Linux-是否有任何方法可以通过软件识别内存速度?


9

有什么方法可以通过软件识别您的内存速度吗?我正在使用Fedora 9,希望了解我目前在其中使用的DIMM的速度。

我已经尝试过“ lshw”,但是它不显示速度。我知道主板支持3种不同的速度,但是我不知道里面有什么,也不想关掉盒子。

有任何想法吗?

谢谢,

编辑:根据dmidecode,我发现ram为'30 ns'。如果该板卡仅支持400、533、667 Mhz RAM,它将如何达到33 MHz?

编辑2:还有其他工具可以做到这一点吗?



编辑3:我实际上投降了,并关闭了几分钟的电源并打开了机箱。原来是667 MhZ-此模型: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

机器是什么供应商?您无法在他们的网站上查找?
MDMarra 2009年

不,它是一台定制的机器
barfoon

Answers:


18

dmidecode是您要寻找的工具。


这里有很多信息-但是速度单位是ns,我想要速度单位是MHz?
barfoon

我的 dmidecode给出了ns和MHz的速度,但是如果有必要,几秒钟的算术(或运行单位)将执行转换。
womble


1
那么30 ns的内存= 33 MHz?我的数学在那里吗?1 /(30 / 1,000,000)=速度(Hz)
barfoon

3
@barfoon:是的,30ns == 33MHz。更快的计算速度是1000 /(ns)==速度(MHz)。
womble

13

在我的Debian上,lshw给了我这些信息。

# 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      

这很棒,但是在我的版本中,它并没有显示描述中的速度。无论如何,谢谢
barfoon

2

您可以将dmidecode的输出发布到内存部分吗?(dmidecode --type内存

您可能需要阅读以下内容:http : //www.howtoforge.com/dmidecode-finding-out-hardware-details-without-opening-the-computer-case

“ NS”指的是内存能够回复的速度“纳秒”。数字越低,速度越快。不幸的是,这没有引用确切的Mhz数。DMIDECODE应该也输出Mhz。检查输出的最底部,或者仅检查dmidecode --type memory | grep Mhz


可能我建议您将dmidecode的版本升级到2.8或更高版本。您可以在此处获取rpm:icewalkers.com/rpm/dmidecode/fedora-core-9/download/… 以及rpm -i dmidecode * rpm版本。2.7不支持显示内存运行的Mhz。
大卫·里克曼

1

如果您真的想对内存的速度进行基准测试,则不能在32位处理器386保护模式下执行此操作,因为页面错误和页面表的布局将对结果产生很大的影响。

最好的选择是以16位“实模式”对基准进行编码,在此您可以直接访问内存物理地址。

有关可以轻松自定义的不错的启动代码,请查看GRUB bootloader stage1源代码。stage1是驻留在硬盘前512个字节中的MBR。您可以在源目录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
我认为他只是想知道RAM的额定频率,而无需打开机器。
MDMarra 2009年

1

如果您真的很幸运,那么您正在寻找的工具是手电筒。您可以打开一些记忆体,打开包装盒,然后看看标签上有贴的贴纸。完全取决于你的情况下,虽然以它是多么容易得到它,你不需要在机器关闭,只要你是真的 真的 真的很细心。我不知道您对机器内部进行操作的经验如何,但是当我无法使用Linux软件命令来弄清楚它时,这是我尝试的下一件事。


1

编辑:根据dmidecode,我发现ram为'30 ns'。如果该板卡仅支持400、533、667 Mhz RAM,它将如何达到33 MHz?

我猜是这样的:

SIMM / DIMM上的每个芯片都以30ns或33MHz运行。每个SIMM有8个芯片,因此8 x 33MHz = 266MHz;或每个DIMM 16个芯片,提供533 MHz。

因此,当每个芯片以33 MHz的频率运行时,整个内存模块可以533 MHz的速度传输数据。


我相信这个答案是最有意义的,我在上面张贴了dmidecode的输出
barfoon

不幸的是,这并不是那么简单,因为据我所见,报告的速度为30ns,实际的内存速度为667MHz ...所以我不确定这两者之间是否有明确的关系。
olefebvre

@pgs-同步Dram不能那样工作。所有芯片都是并行访问的。考虑到行和列地址的等待时间,这30ns很有可能是访问第一个单词的总时间。即使它总共需要为30ns的访问的第一个字,随后的话应该站出来快。现代CPU花费大量精力使用缓存,分支预测和其他优化来隐藏此类延迟。
Mark Booth

1

我知道这有点晚了,但是:

如果采用受支持的计时,并将其减半,则它们以给定的30的比率拟合。然后,如果将其减半并除以10000,则得到(800,666,571.4)

我不知道为什么,尽管我认为时序和数据速率之间的联系可能很复杂;同样,其中之一可能是双倍数据速率。


1

为了澄清起见,您最后看到的33MHz内存就是您的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

1
dimm-decode?我想你的意思是decode-dimms。无论如何,它对我不起作用:说检测到0个SDRAM DIMM。
underscore_d 2015年

0

如果可能,请尝试运行Memtest,IIRC会在左上角显示最低点以及内存速度(例如20000MB / s @ 667MHz)。


0

DDR sdram的计时是8到2的倍数。据我所知,DDR表示双倍数据速率(请检查此内容,因为我找不到再次检查的信息)。该内存可以同时传输两种方式(输入和输出)。

原因很简单。DDR的定时时间比给定的总线频率快两倍。请不要混淆总线的频率和传输速率容量。总线以总线频率传输32、64、128或256位。一组每个周期128位数据是大量数据。

例如:在200 MHz的总线上找到DDR400。另一个名称是PC3200。要从400变为3200,您将找到一个因子8。无论DDR(1/2/3/4 ...),无论如何,此因子都经过验证。

以下链接足以使您掌握基础知识(并且可能比我的解释更好,更完整:))

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.