Linux - есть ли способ определить скорость вашей памяти с помощью программного обеспечения?

9

Есть ли способ определить скорость вашей памяти с помощью программного обеспечения? Я нахожусь на Fedora 9 и ищу скорость DIMM, которая у меня есть в настоящее время.

Я пробовал lshw, но он не отображает скорость. Я знаю, что материнская плата поддерживает 3 разные скорости, но я не знаю, что там, и не хочу выключать коробку.

Любые идеи?

Спасибо,

РЕДАКТИРОВАТЬ: я обнаружил, что оперативной памяти '30 нс 'в соответствии с dmidecode. Как может быть 33 МГц, если плата поддерживает только 400, 533, 667 МГц ОЗУ?

РЕДАКТИРОВАТЬ 2: Есть ли другие инструменты для этого?



РЕДАКТИРОВАТЬ 3: Я фактически сдался и закончил тем, что выключил на несколько минут и открыл дело. Оказалось, 667 МГц - это модель: http://www.directron.com/rm12864aa667.html . Несмотря на то, что я не смог выяснить, что это был 667 с помощью программного обеспечения, я отметил ответ HD как правильный, так как он кажется лучшим инструментом для работы.




Вот вывод demidecode --type memory

# 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
источник
От какого производителя машина? Вы не можете найти это на их сайте?
MDMarra
Нет, это изготовленная на заказ машина
барфун

Ответы:

18

dmidecode - это инструмент, который вы ищете.

hdanniel
источник
Здесь много информации - но скорость в нс, я хочу скорость в МГц?
Барфун
Мой dmidecode дает мне скорости в нс и МГц, но несколько секунд арифметических (или работающих единиц) выполнят преобразование в случае необходимости.
womble
1
Итак, 30 нс памяти = 33 МГц? Верна ли моя математика? 1 / (
30/1
3
@ barfoon: Да, 30 нс == 33 МГц. Более быстрый расчет составляет 1000 / (нс) == скорость в МГц.
womble
13

На моем Debian я предоставлю эту информацию.

# 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
источник
это здорово, но на моей версии не показывает скорость по описанию. Спасибо в любом случае,
Барфун
2

Можете ли вы опубликовать вывод dmidecode для раздела памяти? ( dmidecode - тип памяти )

Вы можете прочитать это: http://www.howtoforge.com/dmidecode-finding-out-hardware-details-without-opening-the-computer-case

«NS» обозначает «наносекунду» скорость, с которой память может ответить. Чем ниже число, тем выше скорость. К сожалению, это не ссылается на точное число МГц. DMIDECODE должен также выводить МГц. Проверьте в самом низу вывода или просто dmidecode --type memory | grep Mhz

Дэвид Рикман
источник
Могу ли я предложить вам обновить версию dmidecode до версии 2.8 или новее. Вы можете получить rpm здесь: icewalkers.com/rpm/dmidecode/fedora-core-9/download/… и просто rpm -i dmidecode * rpm Ver. 2.7 не поддерживает отображение Mhz, на котором работает ваша память.
Дэвид Рикман
1

Если вы действительно хотите измерить скорость памяти, вы не сможете сделать это в защищенном режиме с 32-битным процессором 386, так как ошибки страниц и расположение таблиц страниц значительно повлияют на результаты.

Лучше всего ставить код в 16-битном «реальном режиме», где у вас есть прямой доступ к физическим адресам памяти.

Хороший загрузочный код, который можно легко настроить, проверьте исходный код GRUB bootloader stage1. stage1 - это MBR, который находится в первых 512 байтах вашего жесткого диска. Вы найдете его в файле исходного каталога stage1 / stage1.S; это сильно прокомментировано и легко понятно.

После того, как MBR настроен под ваши нужды, скомпилируйте его, используя следующий метод:

$ 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

Теперь у вас есть готовый x86 MBR. Желательно проверить ваш код на виртуальной машине, такой как Qemu или Bochs, прежде чем запускать его на реальной машине; это также облегчит цикл компиляции / отладки.

Надеюсь, поможет


источник
1
Я думаю, что он просто хочет знать, на какой частоте оценивается его ОЗУ, не открывая машину.
MDMarra
1

Если вам действительно повезло, инструмент, который вы ищете, это фонарик. Некоторая память вы можете открыть чехол вверх и посмотреть и увидеть наклейку с этим на этикетке. Полностью зависит от вашего случая, хотя, насколько легко добраться до него, и вам не нужно выключать машину, пока вы на самом деле действительно ДЕЙСТВИТЕЛЬНО осторожны. Я не знаю, насколько вы опытны в работе с внутренними компонентами машин, но это следующее, что я пробую, когда не могу использовать программные команды Linux, чтобы понять это.

Барт Сильверстрим
источник
1

РЕДАКТИРОВАТЬ: я обнаружил, что оперативной памяти '30 нс 'в соответствии с dmidecode. Как может быть 33 МГц, если плата поддерживает только 400, 533, 667 МГц ОЗУ?

Я предполагаю, что это что-то вроде этого:

Каждый отдельный чип на SIMM / DIMM работает на частоте 30 нс или 33 МГц. На SIMM приходится 8 чипов, поэтому 8 x 33 МГц = 266 МГц; или 16 чипов на DIMM, что дает 533 МГц.

Таким образом, хотя каждый чип работает на частоте 33 МГц, весь модуль памяти может передавать данные на частоте 533 МГц.

PGS
источник
Я полагаю, что этот ответ имеет больше смысла, я опубликовал вывод dmidecode выше
барфун
К сожалению, это не так просто, поскольку я видел такую ​​вещь, как заявленная скорость 30 нс и фактическая скорость памяти 667 МГц ... Так что я не уверен, что между ними есть четкая связь.
olefebvre
@pgs - Синхронный драм не работает так. Все чипы доступны параллельно. Более вероятно, что эти 30 нс - общее время доступа к первому слову с учетом задержек адресов строк и столбцов. Даже если для доступа к первому слову требуется всего 30 нс, последующие слова должны появляться намного быстрее. Современные процессоры тратят много усилий на сокрытие таких задержек, используя кеш, предсказание ветвлений и другие оптимизации.
Марк Бут
1

Я знаю, что уже немного поздно, но:

Если вы возьмете поддерживаемые тайминги и разделите их пополам, они подойдут с заданной скоростью 30. Тогда, если вы вдвое уменьшите это число и поделите на него 10000, вы получите (800, 666, 571.4).

Я понятия не имею, почему, хотя мне кажется, что связь между таймингами и скоростью передачи данных может быть сложной; Кроме того, одним из них может быть двойная скорость передачи данных.

Chris2048
источник
1

Просто чтобы уточнить, память 33 МГц, которую вы видите в конце, - это ваша память BIOS :)

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

Если вы хотите использовать лучший инструмент, установите lm_sensors ( https://wiki.archlinux.org/index.php/Lm_sensors ) и i2c-tools ( https://www.archlinux.org/packages/?name=i2c- инструменты )

Затем вы можете получить гораздо более подробную информацию о вашей памяти с помощью dimm-decode (вот пример вывода):

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
источник
1
dimm-decode? Я думаю, что вы имели в виду decode-dimms. Во всяком случае, это не работает для меня: говорит, что 0 SDRAM DIMM были обнаружены.
underscore_d
0

Если возможно, попробуйте запустить Memtest, IIRC показывает минимальное значение, а также скорость памяти в верхнем левом углу (например, 20000 МБ / с при 667 МГц).

olefebvre
источник
0

Синхронизация с DDR SDRAM кратна 8 И 2. Насколько я помню, DDR означает двойную скорость передачи данных (пожалуйста, отметьте это, потому что я не смог найти информацию для повторной проверки). Эта память может передавать оба пути (вход и выход) в то же время.

Причина проста. DDR рассчитан в два раза быстрее, чем заданная частота шины. Пожалуйста, не путайте частоту шины и пропускную способность шины. Шина передает 32, 64, 128 или 256 бит на частоте шины. Один набор из 128 бит данных на цикл - это огромный объем данных.

Как пример: DDR400 был обнаружен на шинах с частотой 200 МГц. Другое имя - PC3200. Чтобы получить от 400 до 3200, вы найдете коэффициент 8. Этот фактор ВСЕГДА проверяется независимо от DDR (1/2/3/4 ...)

Следующая ссылка достаточно хороша, чтобы получить основы (и, вероятно, лучше и полнее, чем мои объяснения :))

SpeedStream
источник