Ram timings are technical specs about ram modules that are installed in laptops or desktops. These number indicate the performance of the ram module interms of how fast they can read and write data.
The appear as 4 number set separated by a hyphen, for example like this: 16-16-16-39. Now these numbers tell us how fast the ram would potentially be able to handle data read/write requests from the cpu.
The timings are indicative of clock cycles required for circuit level operations inside the ram module, and usually higher timing means slower performance. So ideally you want ram with low timings. But yes faster ram is also more expensive.
On Windows there are plenty of gui tools to check the ram timings for example Rammon, HwInfo, CPU-Z etc. However on Linux there are limited gui tools for this feature. However there are commond line tools that can report ram timings
Get memory module info on Linux
On linux there are multiple commands to show memory module information including decode-dimms
and dmidecode
. In this particular we shall be check the decode-dimms command that comes from the i2c-tools package on ubuntu/debian linux.
The decode-dimms command can be used to get or extract the following information about ram modules:
- Memory Timings
- RAM Manufacturer Details
- RAM Model or Part Number
- RAM DDR Type
Instal i2c-tools
The first step is to install the i2c-tools package and then load the eeprom module from it.
sudo apt-get install i2c-tools sudo modprobe eeprom
Now you can run the decode-dimms command and get the spd information the ram's spd eeprom chips.
decode-dimms
According to the man page for decode-dimms: "decode-dimms - decode the information found in memory module SPD EEPROMs". So its pretty self explanatory. We shall try running this command on multiple systems like desktops and laptops all of which are physical hardware located near me.
Command Examples - decode-dimms
In this example we shall run decode-dimms command on multiple systems and compare the output, to estimate the performance of the ram module. In general faster ram means faster read/write speeds and overall better system performance.
1. Ubuntu system
The first one is a Ubuntu desktop machine with Gigabyte motherboard and Corsair ram (2400 MT/s-DDR) in 16G+16G configuration with identical sticks. Lets run the decode-dimms command and see the output:
$ decode-dimms # decode-dimms version 4.3 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 Kernel driver used ee1004 ---=== SPD EEPROM Information ===--- EEPROM CRC of bytes 0-125 OK (0x085B) # of bytes written to SDRAM EEPROM 384 Total number of bytes in EEPROM 512 Fundamental Memory type DDR4 SDRAM SPD Revision 1.0 Module Type UDIMM EEPROM CRC of bytes 128-253 OK (0x27DE) ---=== Memory Characteristics ===--- Maximum module speed 2400 MT/s (PC4-19200) Size 16384 MB Banks x Rows x Columns x Bits 16 x 16 x 10 x 64 SDRAM Device Width 8 bits Ranks 2 Rank Mix Symmetrical Primary Bus Width 64 bits AA-RCD-RP-RAS (cycles) 16-16-16-39 Supported CAS Latencies 25T, 20T, 19T, 18T, 17T, 16T, 15T, 14T, 13T, 12T, 11T, 10T, 9T ---=== Timings at Standard Speeds ===--- AA-RCD-RP-RAS (cycles) as DDR4-2400 16-16-16-39 AA-RCD-RP-RAS (cycles) as DDR4-2133 15-15-15-35 AA-RCD-RP-RAS (cycles) as DDR4-1866 13-13-13-31 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.500 ns Minimum CAS Latency Time (tAA) 13.320 ns Minimum RAS to CAS Delay (tRCD) 13.320 ns Minimum Row Precharge Delay (tRP) 13.320 ns Minimum Active to Precharge Delay (tRAS) 32.375 ns Minimum Active to Auto-Refresh Delay (tRC) 45.810 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) 22.000 ns Minimum Row Active to Row Active Delay (tRRD_S) 4.160 ns Minimum Row Active to Row Active Delay (tRRD_L) 5.820 ns Minimum CAS to CAS Delay (tCCD_L) 5.356 ns ---=== Other Information ===--- Package Type Monolithic Maximum Activate Count (MAC) Unlimited Post Package Repair Not supported Module Nominal Voltage 1.2 V Thermal Sensor No ---=== Physical Characteristics ===--- Module Height 32 mm Module Thickness 2 mm front, 2 mm back Module Reference Card B revision 0 ---=== Manufacturer Data ===--- Module Manufacturer Corsair DRAM Manufacturer Micron Technology Part Number CMK16GX4M1A2400C16 Decoding EEPROM: /sys/bus/i2c/drivers/ee1004/0-0052 Guessing DIMM is in bank 3 Kernel driver used ee1004 ---=== SPD EEPROM Information ===--- EEPROM CRC of bytes 0-125 OK (0x085B) # of bytes written to SDRAM EEPROM 384 Total number of bytes in EEPROM 512 Fundamental Memory type DDR4 SDRAM SPD Revision 1.0 Module Type UDIMM EEPROM CRC of bytes 128-253 OK (0x27DE) ---=== Memory Characteristics ===--- Maximum module speed 2400 MT/s (PC4-19200) Size 16384 MB Banks x Rows x Columns x Bits 16 x 16 x 10 x 64 SDRAM Device Width 8 bits Ranks 2 Rank Mix Symmetrical Primary Bus Width 64 bits AA-RCD-RP-RAS (cycles) 16-16-16-39 Supported CAS Latencies 25T, 20T, 19T, 18T, 17T, 16T, 15T, 14T, 13T, 12T, 11T, 10T, 9T ---=== Timings at Standard Speeds ===--- AA-RCD-RP-RAS (cycles) as DDR4-2400 16-16-16-39 AA-RCD-RP-RAS (cycles) as DDR4-2133 15-15-15-35 AA-RCD-RP-RAS (cycles) as DDR4-1866 13-13-13-31 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.500 ns Minimum CAS Latency Time (tAA) 13.320 ns Minimum RAS to CAS Delay (tRCD) 13.320 ns Minimum Row Precharge Delay (tRP) 13.320 ns Minimum Active to Precharge Delay (tRAS) 32.375 ns Minimum Active to Auto-Refresh Delay (tRC) 45.810 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) 22.000 ns Minimum Row Active to Row Active Delay (tRRD_S) 4.160 ns Minimum Row Active to Row Active Delay (tRRD_L) 5.820 ns Minimum CAS to CAS Delay (tCCD_L) 5.356 ns ---=== Other Information ===--- Package Type Monolithic Maximum Activate Count (MAC) Unlimited Post Package Repair Not supported Module Nominal Voltage 1.2 V Thermal Sensor No ---=== Physical Characteristics ===--- Module Height 32 mm Module Thickness 2 mm front, 2 mm back Module Reference Card B revision 0 ---=== Manufacturer Data ===--- Module Manufacturer Corsair DRAM Manufacturer Micron Technology Part Number CMK16GX4M1A2400C16 Number of SDRAM DIMMs detected and decoded: 2 $
The currently active ram timings and speed is indicated in the section titled Memory Characteristics :
---=== Memory Characteristics ===--- Maximum module speed 2400 MT/s (PC4-19200) ... AA-RCD-RP-RAS (cycles) 16-16-16-39 ...
The SPD timings supported by the ram modules is shown by this particular section titled, Timings at Standard Speeds:
---=== Timings at Standard Speeds ===--- AA-RCD-RP-RAS (cycles) as DDR4-2400 16-16-16-39 AA-RCD-RP-RAS (cycles) as DDR4-2133 15-15-15-35 AA-RCD-RP-RAS (cycles) as DDR4-1866 13-13-13-31 AA-RCD-RP-RAS (cycles) as DDR4-1600 11-11-11-26
And the ram module is actively running in this particular timing configuration:
DDR4-2400 16-16-16-39
From the output we are able to check a lot of information about the ram modules like, the brand, module, total memory size, number of ranks, lots of timing parameters and other useful information.
Note that there are 2 sections with similar information because there are 2 sticks of ram present. The sections start with the following lines
Decoding EEPROM: /sys/bus/i2c/drivers/ee1004/0-0050 Guessing DIMM is in bank 1 ...
Decoding EEPROM: /sys/bus/i2c/drivers/ee1004/0-0052 Guessing DIMM is in bank 3 ...
Looking at this data it is not possible to tell whether the ram is in separate channels or same channels. If you need to check the channel of each memory module then use the dmidecode command and fetch the memory details like this:
sudo dmidecode -t memory
Look for the "locator" field to know which channel each ram stick is in.
Can also use the lshw command for memory channel details.
sudo lshw -class memory
This tells us that the ram sticks are installed in 2 channels which matches with the actual hardware configuration. Good job here!
Check RAM DDR Type
Look at the field titled Fundamental Memory type
. It tells about the ram ddr type, which in this case is DDR4.
Fundamental Memory type DDR4 SDRAM
Check RAM Manufacturer
To check the ram manufacturer details check the section titled "Manufacturer Data" in the decode-dimms command output. It shows the RAM chip manufacturer, the module manufacturer and the specific model or part number.
---=== Manufacturer Data ===--- Module Manufacturer Corsair DRAM Manufacturer Micron Technology Part Number CMK16GX4M1A2400C16
In the above output, Micron is manufacturer of the dram chips, corsair is the maker of the full ram stick (memory module) and the part number indicates the specific model. We can then lookup further details online using the part number.
Note that the full manufacturer details may not always be present in the spd data.
2. Asus TUF A17
The next machine that we are testing is an Asus TUF A17 gaming laptop with 16GB ram in 8G+8G configuration.
ubuntu@ubuntu:~$ decode-dimms # decode-dimms version 4.3 Memory Serial Presence Detect Decoder By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner, Jean Delvare, Trent Piepho and others WARNING: /sys/bus/i2c/drivers/eeprom/1-0050/eeprom is smaller than expected WARNING: Fewer data bytes available (256) than needed (384) HINT: You should be using the ee1004 driver instead of the eeprom driver WARNING: /sys/bus/i2c/drivers/eeprom/1-0051/eeprom is smaller than expected WARNING: Fewer data bytes available (256) than needed (384) HINT: You should be using the ee1004 driver instead of the eeprom driver Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/1-0050 Guessing DIMM is in bank 1 Kernel driver used eeprom ---=== SPD EEPROM Information ===--- EEPROM CRC of bytes 0-125 OK (0x2850) # 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 (0xE2C0) ---=== Memory Characteristics ===--- Maximum module speed 3200 MT/s (PC4-25600) Size 8192 MB Banks x Rows x Columns x Bits 8 x 17 x 10 x 64 SDRAM Device Width 16 bits Ranks 1 Primary Bus Width 64 bits AA-RCD-RP-RAS (cycles) 22-22-22-52 Supported CAS Latencies 28T, 26T, 25T, 24T, 23T, 22T, 21T, 20T, 19T, 18T, 17T, 16T, 15T, 14T, 13T, 12T, 11T, 10T ---=== Timings at Standard Speeds ===--- AA-RCD-RP-RAS (cycles) as DDR4-3200 22-22-22-52 AA-RCD-RP-RAS (cycles) as DDR4-2933 21-21-21-47 AA-RCD-RP-RAS (cycles) as DDR4-2666 19-19-19-43 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.625 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) 30.000 ns Minimum Row Active to Row Active Delay (tRRD_S) 5.300 ns Minimum Row Active to Row Active Delay (tRRD_L) 6.400 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 ---=== Other Information ===--- Package Type Monolithic Maximum Activate Count (MAC) Unlimited Post Package Repair One row per bank group Soft PPR Supported Module Nominal Voltage 1.2 V Thermal Sensor No ---=== Physical Characteristics ===--- Module Height 30 mm Module Thickness 2 mm front, 1 mm back Module Reference Card C revision 0 Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/1-0051 Guessing DIMM is in bank 2 Kernel driver used eeprom ---=== SPD EEPROM Information ===--- EEPROM CRC of bytes 0-125 OK (0x2850) # 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 (0xE2C0) ---=== Memory Characteristics ===--- Maximum module speed 3200 MT/s (PC4-25600) Size 8192 MB Banks x Rows x Columns x Bits 8 x 17 x 10 x 64 SDRAM Device Width 16 bits Ranks 1 Primary Bus Width 64 bits AA-RCD-RP-RAS (cycles) 22-22-22-52 Supported CAS Latencies 28T, 26T, 25T, 24T, 23T, 22T, 21T, 20T, 19T, 18T, 17T, 16T, 15T, 14T, 13T, 12T, 11T, 10T ---=== Timings at Standard Speeds ===--- AA-RCD-RP-RAS (cycles) as DDR4-3200 22-22-22-52 AA-RCD-RP-RAS (cycles) as DDR4-2933 21-21-21-47 AA-RCD-RP-RAS (cycles) as DDR4-2666 19-19-19-43 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.625 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) 30.000 ns Minimum Row Active to Row Active Delay (tRRD_S) 5.300 ns Minimum Row Active to Row Active Delay (tRRD_L) 6.400 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 ---=== Other Information ===--- Package Type Monolithic Maximum Activate Count (MAC) Unlimited Post Package Repair One row per bank group Soft PPR Supported Module Nominal Voltage 1.2 V Thermal Sensor No ---=== Physical Characteristics ===--- Module Height 30 mm Module Thickness 2 mm front, 1 mm back Module Reference Card C revision 0 Number of SDRAM DIMMs detected and decoded: 2 ubuntu@ubuntu:~$
This is the section which shows clock speed and compatible timings, and tells us how the ram will likely perform. The ram on this laptop supports lots of clock speeds and timing settings. Note that with faster clock speed the timings also increase to keep the data operations stable and reliable.
---=== Timings at Standard Speeds ===--- AA-RCD-RP-RAS (cycles) as DDR4-3200 22-22-22-52 AA-RCD-RP-RAS (cycles) as DDR4-2933 21-21-21-47 AA-RCD-RP-RAS (cycles) as DDR4-2666 19-19-19-43 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
Though the ram operates at 3200 MT/s the timings are quite high. Comparing it with the 2400 MT/s memory on the ubuntu desktop, their performance will be close and will not have a huge difference.
DDR4-3200 22-22-22-52 DDR4-2400 17-17-17-39
3. Acer Swift 3
This Acer Swift 3 laptop has 16GB of ram in 8G+8G configuration, but the ram is not slotted dimm. It is onboard ram. In case of onboard soldered ram, the spd information is not available, so the decode-dimms command won't show much information.
acerlight@acerlight-laptop:~$ decode-dimms # decode-dimms version 4.3 Memory Serial Presence Detect Decoder By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner, Jean Delvare, Trent Piepho and others Number of SDRAM DIMMs detected and decoded: 0 acerlight@acerlight-laptop:~$
However there are other ways to find the memory timing information. For example, the cpu-z windows utility might show the timing information. On this particular laptop the timings (as shown by cpu-z) are :
36-39-39-90
Comparing the Timings and Speed
Once we know the DDR4-speed and timings, we can estimate the latency using the following equation:
Absolute latency = (CAS latency*2000) / Frequency
The latency is an indication (not an exact measure) of how fast or slow the ram is. Lower timings means faster ram and vice-versa.
Machine | 2400 MT/s | 3200 MT/s | 4267 MT/s |
ubuntu | 16-16-16-39 (13.3ns) | - | |
asus tuf a17 | 17-17-17-39 | 22-22-22-52 (13.8ns) | |
acer swift 3 | - | - | 36-39-39-90 (10.3) |
acer aspire 5 | - | 22-22-22-52 (13.8ns) | - |
Links and Resources
https://en.wikipedia.org/wiki/Memory_timings - Wikipedia page explaining Memory Timing numbers on RAM modules.