如何破译decode-dimms输出

如何破译decode-dimms输出

我想找出真实的 RAM 时序。该棒的频率为 2400Mhz,但该 CPU 上的内存时钟限制为 2133MHz。我可以通过以下方式确认:

$ sudo dmidecode
... 
Handle 0x0004, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x0003
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 8192 MB
        Form Factor: SODIMM
        Set: None
        Locator: ChannelA-DIMM0
        Bank Locator: BANK 0
        Type: DDR4
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 2133 MT/s
        Manufacturer: Samsung
        Asset Tag: None
        Part Number: M471A1K43BB1-CRC    
        Rank: 1
        Configured Memory Speed: 2133 MT/s
...

检查当前的内存时序:

$ decode-dimms
# decode-dimms version $Revision$

Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare, Trent Piepho and others


Decoding EEPROM: /sys/bus/i2c/drivers/ee1004/0-0050
Guessing DIMM is in                              bank 1

---=== SPD EEPROM Information ===---
EEPROM CRC of bytes 0-125                        OK (0xFE3E)
# of bytes written to SDRAM EEPROM               384
Total number of bytes in EEPROM                  512
Fundamental Memory type                          DDR4 SDRAM
SPD Revision                                     1.1
Module Type                                      SO-DIMM
EEPROM CRC of bytes 128-253                      OK (0x55EF)

---=== Memory Characteristics ===---
Maximum module speed                             2400 MHz (PC4-19200)
Size                                             8192 MB
Banks x Rows x Columns x Bits                    16 x 16 x 10 x 64
SDRAM Device Width                               8 bits
Ranks                                            1
AA-RCD-RP-RAS (cycles)                           17-17-17-39
Supported CAS Latencies                          18T, 17T, 16T, 15T, 14T, 13T, 12T, 11T, 10T

---=== Timings at Standard Speeds ===---
AA-RCD-RP-RAS (cycles) as DDR4-2400              17-17-17-39
AA-RCD-RP-RAS (cycles) as DDR4-2133              15-15-15-35
AA-RCD-RP-RAS (cycles) as DDR4-1866              13-13-13-30
AA-RCD-RP-RAS (cycles) as DDR4-1600              11-11-11-26

---=== Timing Parameters ===---
Minimum Cycle Time (tCKmin)                      0.833 ns
Maximum Cycle Time (tCKmax)                      1.600 ns
Minimum CAS Latency Time (tAA)                   13.750 ns
Minimum RAS to CAS Delay (tRCD)                  13.750 ns
Minimum Row Precharge Delay (tRP)                13.750 ns
Minimum Active to Precharge Delay (tRAS)         32.000 ns
Minimum Active to Auto-Refresh Delay (tRC)       45.750 ns
Minimum Recovery Delay (tRFC1)                   350.000 ns
Minimum Recovery Delay (tRFC2)                   260.000 ns
Minimum Recovery Delay (tRFC4)                   160.000 ns
Minimum Four Activate Window Delay (tFAW)        21.000 ns
Minimum Row Active to Row Active Delay (tRRD_S)  3.300 ns
Minimum Row Active to Row Active Delay (tRRD_L)  4.900 ns
Minimum CAS to CAS Delay (tCCD_L)                5.000 ns
Minimum Write Recovery Time (tWR)                15.000 ns
Minimum Write to Read Time (tWTR_S)              2.500 ns
Minimum Write to Read Time (tWTR_L)              7.500 ns

这是什么意思?时钟确实是 2133,我明白了,但是现在的时间是多少? 17-17-17-39? 13-13-13-32?这些都不符合 的“标准计时” AA-RCD-RP-RAS (cycles) as DDR4-2133 15-15-15-35。这是为什么?

答案1

由decode-dimms 读取的串行存在检测(SPD) 包含有关模块的一般物理特性的信息,但不包含其当前操作模式的信息。要检查当前的频率配置,请访问 BIOS 并检查 DRAM 频率的配置。

根据其频率,列出的延迟将根据“tCK”进行设置,即 DRAM 内部使用的周期(与 DIMM 列出的总线频率不同!)。作为示例,我们以 tAA 延迟 13.750ns 为例。就“内部周期”而言,tAA 的最短时间为 13.750ns/0.833ns = 16.5 个周期(0.833ns 是 TCKmin,即器件的最小周期时间);但不存在半个周期这样的东西,因此我们必须将 AA 安全地设置为 17 个周期。
如果我们的内存频率被称为 2400 Mhz,我们必须首先忽略“双倍数据速率”,因为它只对总线传输有利,而仅考虑总线的“周期”(周期时间)为 1/1200Mhz(一半) 2400) = 0.833ns(即 tCKmin!)。如果我们将内存频率设置得较低,则会增加内部周期的周期。例如,如果我们使用2133 Mhz,则计算结果为13.750ns / 0.937ns = 14.67~,因此我们将AA设置为15个周期。在 DDR 1866 下,13.750ns / 1.071ns = 12.82,因此我们将 AA 设置为 13 个周期。在 DDR 1600 下,13.750ns / 1.25ns = 11,因此我们将 AA 设置为 11 个周期。

这些正是时序标准速度中显示的 tAA 时序,表示为设备的“周期”。您也可以在其他时间重复此练习。

相关内容