Linux - Gibt es eine Möglichkeit, die Geschwindigkeit Ihres Speichers mithilfe von Software zu ermitteln?

9

Gibt es eine Möglichkeit, die Geschwindigkeit Ihres Speichers mithilfe von Software zu ermitteln? Ich bin auf Fedora 9 und suche nach der Geschwindigkeit der DIMMs, die ich derzeit dort habe.

Ich habe ein 'lshw' ausprobiert, aber es zeigt nicht die Geschwindigkeit an. Ich weiß, dass das Motherboard 3 verschiedene Geschwindigkeiten unterstützt, aber ich weiß nicht, was da drin ist und möchte die Box nicht ausschalten.

Irgendwelche Ideen?

Vielen Dank,

EDIT: Ich habe festgestellt, dass der RAM laut dmidecode '30 ns 'ist. Wie kann es 33 MHz sein, wenn die Karte nur 400, 533, 667 MHz RAM unterstützt?

EDIT 2: Gibt es andere Tools, um dies zu tun?



EDIT 3: Ich habe mich tatsächlich ergeben und bin für ein paar Minuten heruntergefahren und habe den Fall geöffnet. Es stellte sich heraus, 667 MHz - dieses Modell: http://www.directron.com/rm12864aa667.html . Obwohl ich nicht in der Lage war, durch Software herauszufinden, dass es sich um 667 handelte, habe ich die Antwort von HD als die richtige markiert, da dies das beste Werkzeug für diesen Job zu sein scheint.




Hier ist die Ausgabe des Demidecode-Speichers

# dmidecode 2.7
SMBIOS 2.4 present.

Handle 0x0008, DMI type 5, 20 bytes.
Memory Controller Information
    Error Detecting Method: 64-bit ECC
    Error Correcting Capabilities:
        None
    Supported Interleave: One-way Interleave
    Current Interleave: One-way Interleave
    Maximum Memory Module Size: 1024 MB
    Maximum Total Memory Size: 2048 MB
    Supported Speeds:
        70 ns
        60 ns
        50 ns
    Supported Memory Types:
        DIMM
        SDRAM
    Memory Module Voltage: 3.3 V
    Associated Memory Slots: 2
        0x0009
        0x000A
    Enabled Error Correcting Capabilities:
        None

Handle 0x0009, DMI type 6, 12 bytes.
Memory Module Information
    Socket Designation: DIMM0
    Bank Connections: 9 11
    Current Speed: 30 ns
    Type: Unknown FPM Parity SDRAM
    Installed Size: 1024 MB (Single-bank Connection)
    Enabled Size: 1024 MB (Single-bank Connection)
    Error Status: OK

Handle 0x000A, DMI type 6, 12 bytes.
Memory Module Information
    Socket Designation: DIMM1
    Bank Connections: 9 11
    Current Speed: 30 ns
    Type: Unknown FPM Parity SDRAM
    Installed Size: 1024 MB (Single-bank Connection)
    Enabled Size: 1024 MB (Single-bank Connection)
    Error Status: OK

Handle 0x002F, DMI type 16, 15 bytes.
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: None
    Maximum Capacity: 4 GB
    Error Information Handle: Not Provided
    Number Of Devices: 2

Handle 0x0031, DMI type 17, 27 bytes.
Memory Device
    Array Handle: 0x002F
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM0
    Bank Locator: BANK0
    Type: SDRAM
    Type Detail: Synchronous
    Speed: Unknown
    Manufacturer: Manufacturer0
    Serial Number: SerNum0
    Asset Tag: AssetTagNum0
    Part Number: PartNum0

Handle 0x0033, DMI type 17, 27 bytes.
Memory Device
    Array Handle: 0x002F
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM1
    Bank Locator: BANK1
    Type: SDRAM
    Type Detail: Synchronous
    Speed: Unknown
    Manufacturer: Manufacturer1
    Serial Number: SerNum1
    Asset Tag: AssetTagNum1
    Part Number: PartNum1
Barfoon
quelle
Von welchem ​​Anbieter stammt die Maschine? Sie können es nicht auf ihrer Website nachschlagen?
MDMarra
Nein, es ist eine speziell angefertigte Maschine
Barfoon

Antworten:

18

dmidecode ist das Werkzeug, das Sie suchen.

hdanniel
quelle
Hier gibt es viele Informationen - aber die Geschwindigkeit ist in ns, ich möchte die Geschwindigkeit in MHz?
Barfoon
Mein dmidecode gibt mir Geschwindigkeiten in ns und MHz an, aber ein paar Sekunden Arithmetik (oder laufende Einheiten) führen die Konvertierung bei Bedarf durch.
womble
1
Also 30 ns Speicher = 33 MHz? Ist meine Mathematik dort korrekt? 1 / (30 / 1,000,000) = Geschwindigkeit in Hz
Barfoon
3
@barfoon: Ja, 30 ns == 33 MHz. Die schnellere Berechnung ist 1000 / (ns) == Geschwindigkeit in MHz.
womble
13

Auf meinem Debian, lshw mir diese Informationen geben.

# lshw -version
B.02.13
# lshw -short -C memory
H/W path             Device     Class       Description
=======================================================
/0/1                            memory      128KiB BIOS
/0/5/6                          memory      20KiB L1 cache
/0/5/7                          memory      1MiB L2 cache
/0/27                           memory      System Memory
/0/27/0                         memory      256MiB DIMM DDR Synchronous 400 MHz (2.5 ns)
/0/27/1                         memory      256MiB DIMM DDR Synchronous 400 MHz (2.5 ns)
/0/27/2                         memory      256MiB DIMM DDR Synchronous 266 MHz (3.8 ns)
/0/27/3                         memory      256MiB DIMM DDR Synchronous 400 MHz (2.5 ns)
/0/28                           memory      Flash Memory
/0/28/0                         memory      512KiB Chip FLASH Non-volatile
/0/0                            memory      
/0/2                            memory      
sebthebert
quelle
Das ist großartig, aber in meiner Version wird die Geschwindigkeit unter Beschreibung nicht angezeigt. Trotzdem danke
Barfoon
2

Können Sie Ihre Ausgabe von dmidecode für den Speicherbereich veröffentlichen? ( dmidecode - Typspeicher )

Vielleicht möchten Sie dies lesen: http://www.howtoforge.com/dmidecode-finding-out-hardware-details-without-opening-the-computer-case

Das "NS" bezieht sich auf "Nanosekunde" der Geschwindigkeit, mit der der Speicher antworten kann. Je niedriger die Zahl, desto schneller die Geschwindigkeit. Leider bezieht sich dies nicht auf eine genaue MHz-Zahl. DMIDECODE soll auch die MHz ausgeben. Überprüfen Sie ganz unten in der Ausgabe oder einfach dmidecode --type memory | grep Mhz

David Rickman
quelle
Könnte ich vorschlagen, dass Sie Ihre Überprüfung von dmidecode auf 2.8 oder höher aktualisieren. Sie können die Drehzahl hier abrufen : icewalkers.com/rpm/dmidecode/fedora-core-9/download/… und nur rpm -i dmidecode * rpm Ver. 2.7 unterstützt es nicht, die MHz anzuzeigen, mit denen Ihr Speicher ausgeführt wird.
David Rickman
1

Wenn Sie die Geschwindigkeit des Speichers wirklich messen möchten, können Sie dies nicht in einem geschützten Modus mit 32-Bit-Prozessor 386 tun, da die Seitenfehler und das Layout der Pagetables die Ergebnisse stark belasten.

Am besten codieren Sie den Benchmark im 16-Bit-Realmodus, in dem Sie direkten Zugriff auf die physischen Speicheradressen haben.

Einen guten Bootup-Code, der leicht anpassbar ist, finden Sie in der GRUB Bootloader Stage1-Quelle. stage1 ist der MBR, der sich in den ersten 512 Bytes Ihrer Festplatte befindet. Sie finden es im Quellverzeichnis stage1 / stage1.S. es ist stark kommentiert und leicht verständlich.

Wenn Sie den MBR an Ihre Bedürfnisse angepasst haben, kompilieren Sie ihn mit der folgenden Methode:

$ BOOT=mbr
$ gcc -O2 -fno-builtin -nostdinc -falign-jumps=1 -falign-loops=1 -falign-functions=1 -Wundef -g -c $BOOT.S
$ gcc  -g  -nostdlib -Wl,-N,-Ttext,7C00 -o $BOOT.exec  $BOOT.o  
$ objcopy -O binary $BOOT.exec $BOOT

Jetzt haben Sie einen x86 MBR bereit. Es ist wünschenswert, Ihren Code auf einer virtuellen Maschine wie Qemu oder Bochs zu testen, bevor Sie ihn auf der realen Maschine ausführen. Dies erleichtert auch den Kompilierungs- / Debugging-Zyklus.

Ich hoffe es hilft


quelle
1
Ich denke, er möchte nur wissen, mit welcher Frequenz sein RAM bewertet wird, ohne die Maschine zu öffnen.
MDMarra
1

Wenn Sie wirklich Glück haben, ist das Werkzeug, das Sie suchen, eine Taschenlampe. Etwas Speicher können Sie das Gehäuse öffnen und einen Aufkleber sehen, der es auf dem Etikett hat. Hängt ganz von Ihrem Fall jedoch , wie einfach es ist , um es zu bekommen, und Sie nicht die Maschine so lange deaktivieren müssen , wie du bist wirklich wirklich wirklich vorsichtig sein . Ich weiß nicht, wie erfahren Sie mit der Arbeit an Maschineninternalen sind, aber dies ist das nächste, was ich versuche, wenn ich keine Linux-Softwarebefehle verwenden kann, um es herauszufinden.

Bart Silverstrim
quelle
1

EDIT: Ich habe festgestellt, dass der RAM laut dmidecode '30 ns 'ist. Wie kann es 33 MHz sein, wenn die Karte nur 400, 533, 667 MHz RAM unterstützt?

Ich vermute, es ist ungefähr so:

Jeder einzelne Chip auf einem SIMM / DIMM läuft mit 30 ns oder 33 MHz. Es gibt 8 Chips pro SIMM, also 8 x 33 MHz = 266 MHz; oder 16 Chips pro DIMM, was 533 MHz ergibt.

Während also jeder Chip mit 33 MHz läuft, kann das gesamte Speichermodul Daten mit 533 MHz liefern.

pgs
quelle
Ich glaube, dass diese Antwort am sinnvollsten ist. Ich habe die Ausgabe von dmidecode oben veröffentlicht
Barfoon
Leider ist es nicht so einfach, wie ich gesehen habe, dass die gemeldete Geschwindigkeit 30 ns und die tatsächliche Speichergeschwindigkeit 667 MHz beträgt ... Ich bin mir also nicht sicher, ob es eine klare Beziehung zwischen den beiden gibt.
Olefebvre
@pgs - Synchronous Dram funktioniert so nicht. Auf alle Chips wird parallel zugegriffen. Es ist wahrscheinlicher, dass diese 30 ns die Gesamtzeit für den Zugriff auf das erste Wort sind, wobei die Latenzen der Zeilen- und Spaltenadressen berücksichtigt werden. Selbst wenn der Zugriff auf das erste Wort insgesamt 30 ns dauert, sollten nachfolgende Wörter viel schneller wiedergegeben werden. Moderne CPUs geben sich viel Mühe, solche Latenzen mithilfe von Cache, Verzweigungsvorhersage und anderen Optimierungen zu verbergen.
Mark Booth
1

Ich weiß, dass dies etwas spät ist, aber:

Wenn Sie die unterstützten Timings nehmen und halbieren, passen sie mit der angegebenen Rate von 30. Wenn Sie diese halbieren und 10000 durch sie dividieren, erhalten Sie (800, 666, 571,4).

Ich habe keine Ahnung warum, obwohl ich denke, dass der Zusammenhang zwischen Timings und Datenrate kompliziert sein könnte; Eine davon könnte auch eine doppelte Datenrate sein.

Chris2048
quelle
1

Zur Verdeutlichung ist der 33-MHz-Speicher, den Sie am Ende sehen, Ihr BIOS-Speicher :)

    Type: Flash
    Type Detail: Non-Volatile
    Speed: 33 MHz
    Manufacturer: ATMEL

Wenn Sie ein besseres Tool verwenden möchten, installieren Sie lm_sensors ( https://wiki.archlinux.org/index.php/Lm_sensors ) und i2c-tools ( https://www.archlinux.org/packages/?name=i2c- Werkzeuge )

Dann können Sie mit Dimm-Decodierung viel mehr Details zu Ihrem Speicher erhalten (hier ist ein Beispiel für die Ausgabe):

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0055
Guessing DIMM is in                             bank 6

---=== SPD EEPROM Information ===---
EEPROM CRC of bytes 0-116                       OK (0x4422)
# of bytes written to SDRAM EEPROM              176
Total number of bytes in EEPROM                 256
Fundamental Memory type                         DDR3 SDRAM
Module Type                                     RDIMM

---=== Memory Characteristics ===---
Fine time base                                  2.500 ps
Medium time base                                0.125 ns
Maximum module speed                            1066MHz (PC3-8533)
Size                                            16384 MB
Banks x Rows x Columns x Bits                   8 x 15 x 11 x 64
Ranks                                           4
SDRAM Device Width                              4 bits
tCL-tRCD-tRP-tRAS                               7-7-7-20
Supported CAS Latencies (tCL)                   8T, 7T, 6T

---=== Timing Parameters ===---
Minimum Write Recovery time (tWR)               15.000 ns
Minimum Row Active to Row Active Delay (tRRD)   7.500 ns
Minimum Active to Auto-Refresh Delay (tRC)      50.625 ns
Minimum Recovery Delay (tRFC)                   160.000 ns
Minimum Write to Read CMD Delay (tWTR)          7.500 ns
Minimum Read to Pre-charge CMD Delay (tRTP)     7.500 ns
Minimum Four Activate Window Delay (tFAW)       37.500 ns

---=== Optional Features ===---
Operable voltages                               1.5V, 1.35V
RZQ/6 supported?                                Yes
RZQ/7 supported?                                Yes
DLL-Off Mode supported?                         Yes
Operating temperature range                     0-95C
Refresh Rate in extended temp range             1X
Auto Self-Refresh?                              No
On-Die Thermal Sensor readout?                  No
Partial Array Self-Refresh?                     No
Thermal Sensor Accuracy                         0
SDRAM Device Type                               0

---=== Physical Characteristics ===---
Module Height (mm)                              30
Module Thickness (mm)                           4 front, 4 back
Module Width (mm)                               133.5
Module Reference Card                           F

---=== Registered DIMM ===---
# DRAM Rows                                     2
# Registers                                     2
Register manufacturer                           IDT
Register device type                            SSTE32882
Register revision                               0x61
Heat spreader characteristics                   00
SSTE32882 RC0/RC1                               00
SSTE32882 RC2/RC3                               50
SSTE32882 RC4/RC5                               50
SSTE32882 RC6/RC7                               00
SSTE32882 RC8/RC9                               00
SSTE32882 RC10/RC11                             00
SSTE32882 RC12/RC13                             00
SSTE32882 RC14/RC15                             00

---=== Manufacturer Data ===---
Module Manufacturer                             Samsung
DRAM Manufacturer                               Samsung
Manufacturing Location Code                     0x02
Manufacturing Date                              2011-W39
Assembly Serial Number                          xxx
Part Number                                     M393B2K70CM0-YF8
tweak2
quelle
1
dimm-decode? Ich denke du meintest decode-dimms. Auf jeden Fall funktioniert es bei mir nicht: Es wurden 0 SDRAM-DIMMs erkannt.
underscore_d
0

Wenn möglich, versuchen Sie, Memtest IIRC auszuführen. Es zeigt den Tiefpunkt sowie die Speichergeschwindigkeit in der oberen linken Ecke an (z. B. 20000 MB / s bei 667 MHz).

olefebvre
quelle
0

Die Timings mit DDR sdram sind ein Vielfaches von 8 UND von 2. Soweit ich mich erinnere, bedeutet DDR doppelte Datenrate (bitte überprüfen Sie dies, da ich die zu überprüfenden Informationen nicht finden konnte). Dieser Speicher kann in der Zwischenzeit in beide Richtungen (rein und raus) übertragen werden.

Der Grund ist einfach. Die DDR ist zweimal schneller als die angegebene Busfrequenz. Bitte verwechseln Sie nicht die Busfrequenz und die Übertragungsratenkapazität für den Bus. Der Bus überträgt 32, 64, 128 oder 256 Bit mit der Busfrequenz. Ein Satz von 128 Datenbits pro Zyklus ist eine große Datenmenge.

Als Beispiel: DDR400 wurde in Bussen mit 200 MHz gefunden. Der andere Name ist PC3200. Um von 400 auf 3200 zu gelangen, finden Sie einen Faktor 8. Dieser Faktor wird IMMER unabhängig von der DDR überprüft (1/2/3/4 ...)

Der folgende Link ist gut genug, um die Grundlagen zu vermitteln (und wahrscheinlich besser und vollständiger als meine Erklärungen :))

Speedstream
quelle