In this guide: 15 sections
- Nine reasons RAM runs slower than rated, and the test for each
- Reading the speed a machine is actually running
- What to do on a listing page
- Why 3200MHz memory is 3200 MT/s on a 1600 MHz clock
- Peak bandwidth, worked out
- The label on a server module is a third number again
- The SPD decides what the machine boots at
- XMP and EXPO overclock the processor, not the module
- Gear modes: the memory controller runs its own clock
- Population sets the speed, and the number is published before you buy
- Registered, load-reduced and MRDIMM modules at speed
- Boot-time training is why speed is not simply a setting
- Peak is a ceiling nothing reaches
- What the speed number is worth on the used market
- What cannot be known before you buy
A DDR4-3200 module does not run at 3200 MHz: 3200 is its data rate in MT/s on a 1600 MHz bus clock, and when memory reports less than its sticker, the usual cause is an XMP or EXPO profile that was never switched on. A tool that shows a true frequency, such as CPU-Z, reads 1600 MHz on a healthy DDR4-3200 kit, and the DRAM array behind that bus is cycling at 400 MHz. Memory that underperforms its rating has one of nine causes: six lower the speed the machine trains to (the profile is off, the processor is rated lower, too many modules or ranks share a channel, the modules do not match, the slots are wrong, or training failed and fell back), and three leave the speed reading alone (an empty channel, a memory controller that dropped to a slower gear, or hot memory). Each has a test, and several have no fix except different memory.
Nine reasons RAM runs slower than rated, and the test for each
The last three leave the configured speed alone, which makes them the hardest to find. Reading the speed shows where each number lives.
| # | Cause | How to tell | Fix |
|---|---|---|---|
| 1 | XMP or EXPO profile never enabled | Configured speed is a JEDEC bin such as 4800 or 5600, not the box figure | Enable the profile, then read the speed back |
| 2 | Processor rated for less | The memory line on the CPU’s spec page is below the kit | None, short of a different processor |
| 3 | Too many modules or ranks per channel | Module count and Rank field against the platform’s population table |
Fewer, larger modules |
| 4 | Mismatched modules | Part numbers or Speed differ between slots |
Match the set, or accept the slowest module’s JEDEC speed |
| 5 | Right count, wrong slots | The board manual’s slot diagram | Move the modules, usually to A2 and B2 |
| 6 | Training failed and firmware reverted | Configured speed below a profile you know is enabled | Looser timings, a little more voltage within rating, or a lower speed |
| 7 | Channels left empty | Fewer populated channels than the platform has; speed normal, bandwidth cut in proportion | Populate in pairs, or every channel on a server |
| 8 | Controller dropped to a slower gear | Speed is what you set, performance below the grade beneath | Set the fastest speed that holds 1:1 |
| 9 | Hot memory | Module temperature above 85 °C | Airflow |
1. The profile was never enabled. The most common cause by a wide margin. The module is doing exactly what the JEDEC region of its SPD says, which is what firmware reads by default, for the reason the SPD section sets out. Enabling XMP or EXPO is not the same as it having worked, so read the speed back after.
2. The processor does not support that rate. A DDR5-6000 kit in a machine rated for DDR5-5600 will boot at a JEDEC bin and may or may not hold 6000 with a profile enabled. This is not a defect and the module is not faulty.
3. Too many ranks on the channel. Count modules, read the rank field from
dmidecode -t 17, and look up the platform’s table in
the population section.
Four modules on a two-channel board is the classic. This is the expensive one to
discover after buying, because the fix is different memory.
4. Mismatched modules. When the SPDs differ, the controller trains everything to a profile all of them support, which in practice means the slowest module’s JEDEC speed rather than anybody’s overclocking profile. A fast module added to a slower machine runs at the slower speed and says nothing about it, and the modules that had a profile have given it up.
5. The right count of modules in the wrong slots. Two modules on a four-slot board belong in the second slot of each channel, usually labeled A2 and B2, because the far slot terminates the channel better than the near one. The symptom is a machine that will not train at the rated speed and trains fine one slot over.
6. Training failed quietly and firmware reverted. The symptom is identical to case 1 and the cause is different: the profile is enabled and did not take. Compare the configured speed with the setting you believe is active after every firmware or module change, as boot-time training explains.
7. Not all channels are populated. Read the Locator values against the
board manual rather than guessing from physical position. The symptom is normal
speed and bandwidth cut in proportion to the empty channels (half, on a
two-channel desktop with one module), which no speed field reports.
8. The controller fell back to a wider ratio. The configured speed is what you asked for and performance is worse than the grade below. Nothing in the operating system shows this; the firmware screen does. Setting the lower speed that holds 1:1 is a rare case of buying less and getting more, as gear modes explains.
9. The machine is hot. Above 85 degrees the refresh interval halves and
takes about 14 percent of the channel with it on 16 Gbit dies, by
the refresh arithmetic. Read
the module’s thermal sensor, where one is fitted, with sensors on Linux or a
monitoring utility on Windows. Registered server modules expect airflow and
desktop cases frequently do not provide it.
No entry is “the module has degraded”, because memory does not wear. There is no counter to read and no endurance budget. A module either passes training at a speed or it does not, on its first day and its ten-thousandth. That is the central argument of buying used RAM on eBay, and it is why the speed field on a used listing is worth as much as on a new one.
Reading the speed a machine is actually running
Linux
dmidecode prints what firmware recorded for each slot. For a 16 GB
DDR4-2666 registered module in a two-socket server holding two modules per
channel, the output has this shape (an illustration, not a capture from a
particular machine):
$ sudo dmidecode -t 17
Memory Device
Array Handle: 0x1000
Size: 16 GB
Form Factor: DIMM
Locator: DIMM_A1
Type: DDR4
Type Detail: Synchronous Registered (Buffered)
Speed: 2667 MT/s
Manufacturer: Samsung
Part Number: M393A2K43CB2-CTD
Rank: 2
Configured Memory Speed: 2400 MT/s
Minimum Voltage: 1.2 V
Maximum Voltage: 1.2 V
Configured Voltage: 1.2 V
Speed is what the module is rated for. Configured Memory Speed is what it
is running at. A gap between them is your entire answer. Here a
Samsung M393A2K43CB2-CTD, a DDR4-2666
registered part, is shown running at 2400, the kind of step down a platform’s
table imposes at two modules per channel.
Both fields come from the SMBIOS Type 17 structure and both are in
megatransfers per second. Older dmidecode builds label them Clock Speed and
Configured Clock Speed in MHz; the value was always a transfer rate. The true
DDR4-2666 bin is 2666⅔ MT/s and SMBIOS reports an integer, so 2667 is not a
different speed from 2666.
Windows
Get-CimInstance Win32_PhysicalMemory |
Select-Object BankLabel, PartNumber, Capacity, Speed, ConfiguredClockSpeed, ConfiguredVoltage
Speed and ConfiguredClockSpeed map onto the same two SMBIOS fields. Windows
kept the misleading property name and documents the units as MHz. Read
ConfiguredClockSpeed as MT/s regardless, because that is what firmware wrote
into the structure the property is read from.
On an Intel Mac, system_profiler SPMemoryDataType reports per-slot speed.
Apple Silicon has no memory slots, so nothing here applies to it.
Which number each tool shows
Windows 11 switched Task Manager from MHz to MT/s in Insider build
22635.3570, roughly a quarter-century late. dmidecode has reported MT/s for
years. CPU-Z’s “DRAM Frequency” field is a genuine frequency: it reads 1600.0
MHz on a DDR4-3200 kit, and it is correct.
| Where you read it | What the number is |
|---|---|
| Listing title, “3200MHz” | Data rate, 3200 MT/s |
| CPU-Z, “DRAM Frequency” | Bus clock. Double it |
| Task Manager on a recent Windows 11 | Data rate in MT/s |
dmidecode “Speed” |
Data rate the module is rated for |
dmidecode “Configured Memory Speed” |
Data rate it is currently running at |
| CPU spec sheet, “DDR5-5600” | Data rate the controller supports at JEDEC settings |
| A kit’s XMP or EXPO profile | Data rate the module vendor validated, on some CPU |
| An MRDIMM’s “8800” | Host-side data rate. The DRAM is at 4400 |
The section on buffered modules explains the MRDIMM row.
Reading the SPD, and what no tool shows
To see what the module itself claims rather than what firmware decided, read its presence-detect chip:
$ sudo modprobe ee1004
$ sudo decode-dimms | grep -E 'Part Number|Maximum module speed|Manufacturer'
That gives the module’s own JEDEC ceiling, which is how you tell “the module cannot go faster” from “the machine is not asking it to”. DDR5 needs newer tooling that speaks to the module’s hub device.
There is no standard interface for the controller ratio. SMBIOS carries no
gear mode or UCLK:MCLK ratio, and nothing under /sys exposes one. The same goes
for sub-timings beyond the four primaries, for whether a profile is applied
rather than merely present, and for whether the last boot retrained. For
those, the firmware setup screen is the instrument.
What to do on a listing page
-
Read the MT/s figure and ignore the unit. Every “3200MHz” in a listing title is 3200 MT/s on a 1600 MHz bus. The unit is wrong everywhere, including on manufacturers’ boxes; matching the number is what counts.
-
Check the generation prefix on any PC number first.
PC3-12800andPC4-12800are the same bandwidth on modules that will not fit the same board. -
Look up two numbers before you shop: what your processor supports, and what your board supports at the module count you intend. The lower of the two is the grade to buy. Start from the CPU pages for the first and the compatibility pages for the second.
-
Decide the module count before the module size. Two large modules beat four small ones on speed on every client platform; on a server the goal is to fill every channel. Both rules come out of the same population tables.
-
Do not pay for a grade the machine will downclock. A DDR4-2666 registered module in a platform validated at 2133 runs at 2133 and the premium is gone. Compare grades on the DDR4 server listings and buy the one your table says.
-
Match the set, or expect to lose the profile. A mixed set trains to the slowest module’s JEDEC bin, not anybody’s XMP or EXPO profile. Two separately bought kits of the same part number are not one kit.
-
Read the speed back after every change. Compare
SpeedwithConfigured Memory Speed. Firmware that silently reverted looks identical to firmware that was never configured. -
On a desktop, prefer the grade that holds a 1:1 controller ratio over the highest grade you can afford. DDR5-6000 at 1:1 beats DDR5-6400 at 1:2 for anything latency-sensitive; the CAS time is identical in nanoseconds and the higher grade buys 6.7 percent of peak bandwidth.
-
Check the bin letter when two identical-looking listings differ in price. PC4-2666T and PC4-2666W are both PC4-21300, at CL17 and CL20: 12.75 ns against 15.0 ns to first word, which matters on a latency-bound workload and not at all on a streaming one.
-
Populate every channel before you add capacity. Eight modules in a twelve-channel server is 67 percent of the platform’s memory bandwidth for the life of the machine, and nothing will ever tell you so.
Why 3200MHz memory is 3200 MT/s on a 1600 MHz clock
PC100 and PC133 SDRAM, the generation before DDR, did one transfer per clock period, so MHz and transfers per second were the same number. DDR broke the equivalence in 2000 and the retail vocabulary never updated. This site’s speed pages, such as DDR4-3200, say MHz in their titles because that is what people search for; the field behind them stores MT/s.
Two doublings, and only one of them is the DDR in DDR
The factor between 1600 MHz and 3200 MT/s is double data rate: the I/O pins latch a bit on the rising edge of the clock and another on the falling edge.
The second doubling is bigger and almost never mentioned. DRAM cells are slow,
and have been about as slow for twenty-five years, because a cell is a capacitor
and a sense amplifier and the time to resolve its charge is set by physics that
process shrinks do not improve. So the chip fetches a wide chunk internally on
each access and shifts it out narrow and fast. That is prefetch, written
2n to 16n for the bits fetched per I/O pin per access. DDR4 uses 8n,
serialized across four clock cycles; DDR5 uses 16n, across eight.
The array clock is the number nobody prints
Divide the bus clock by half the prefetch and you get the rate the array is actually being cycled at.
| Generation | Prefetch | Example grade | Data rate | Bus clock | Array clock |
|---|---|---|---|---|---|
| DDR | 2n | DDR-400 | 400 MT/s | 200 MHz | 200 MHz |
| DDR2 | 4n | DDR2-800 | 800 MT/s | 400 MHz | 200 MHz |
| DDR3 | 8n | DDR3-1600 | 1600 MT/s | 800 MHz | 200 MHz |
| DDR4 | 8n | DDR4-3200 | 3200 MT/s | 1600 MHz | 400 MHz |
| DDR5 | 16n | DDR5-6400 | 6400 MT/s | 3200 MHz | 400 MHz |
| DDR5 | 16n | DDR5-8800 | 8800 MT/s | 4400 MHz | 550 MHz |
Across twenty-five years and five generations the DRAM array went from 200 MHz to 550 MHz, while the data rate went up by a factor of twenty-two. Everything else came from prefetching wider and clocking the interface harder.
At DDR5-6400 the array runs at exactly the rate a DDR4-3200 array does. DDR5 did not make DRAM faster; it made the serializer wider. The same fact explains why latency stood still: a DDR4-3200 module at its JEDEC CL22 bin takes 13.75 ns to first word, exactly what a DDR3-1600 module at CL11 took about a decade earlier. The CAS latency guide works through that.
What JEDEC writes down is a period, not a frequency
JESD79-4, the DDR4 standard, does not publish a clock frequency for its speed
bins. It publishes tCK(avg), the average clock period, in nanoseconds, and
every timing in the device is a multiple of that period.
| Speed bin | tCK(avg) from the standard | 1 ÷ tCK | Transfers per second |
|---|---|---|---|
| DDR4-1600 | 1.25 ns | 800 MHz | 1600 million |
| DDR4-1866 | 1.071 ns | 933⅓ MHz | 1866⅔ million |
| DDR4-2133 | 0.938 ns | 1066⅔ MHz | 2133⅓ million |
| DDR4-2400 | 0.833 ns | 1200 MHz | 2400 million |
| DDR4-2666 | 0.750 ns | 1333⅓ MHz | 2666⅔ million |
| DDR4-2933 | 0.682 ns | 1466⅔ MHz | 2933⅓ million |
| DDR4-3200 | 0.625 ns | 1600 MHz | 3200 million |
DDR5 works the same way, and DDR4-3200 and DDR5-3200 have identical bus clocks. They differ in prefetch, bank count, subchannels and where the voltage regulator sits, not in how fast the interface is clocked.
The repeating decimals, and where 133⅓ came from
The PC front side bus settled on 66⅔ MHz, then 100 MHz, then 133⅓ MHz, which is 400 ÷ 3, and every generation since has inherited multiples of it.
133⅓ MHz × 2 (DDR) × 8 (multiplier) = 2133⅓ MT/s sold as DDR4-2133
133⅓ MHz × 2 × 10 = 2666⅔ MT/s sold as DDR4-2666
133⅓ MHz × 2 × 11 = 2933⅓ MT/s sold as DDR4-2933
So DDR4-2666 is genuinely 2666⅔ MT/s, and a machine reporting 2667 MT/s is
rounding, not disagreeing with the label. DDR5 escaped the problem by defining
its bins in steps of 400 MT/s from 3200 upward, which is why no DDR5 grade has
a two-spelling problem the way DDR4-2933 does.
DDR5’s two subchannels are not extra channels
A DDR5 DIMM presents two independent 32-bit subchannels where DDR4 presents one 64-bit path, and Intel and AMD count those subchannels as channels, so a two-slot DDR5 desktop is described as four-channel. It is not wider: 4 × 32 bits is the same 128-bit data path as a two-slot DDR4 board’s 2 × 64, so all of DDR5’s bandwidth advantage there comes from the transfer rate. DDR4 against DDR5 covers what else changed.
Peak bandwidth, worked out
Everything here is multiplication. Where a figure is worked out here rather than published, it is this site’s arithmetic; the short sums are written out below and the longer ones are in the CAS latency guide. A 64-bit channel moves eight bytes per transfer.
bytes per second = transfers per second × width in bytes
DDR4-3200, one 64-bit channel
3200 × 10^6 × 8 bytes = 25,600 MB/s = 25.6 GB/s
DDR5-6000, one DIMM (two 32-bit subchannels, 64 bits total)
6000 × 10^6 × 8 bytes = 48,000 MB/s = 48.0 GB/s
Those MB/s are decimal, 10^6 bytes, which is where the PC number comes from. The full ladder:
| Grade | GB/s per 64-bit channel | Two channels | Eight | Twelve |
|---|---|---|---|---|
| DDR3-1333 | 10.7 | 21.3 | 85.3 | - |
| DDR3-1600 | 12.8 | 25.6 | 102.4 | - |
| DDR4-2133 | 17.1 | 34.1 | 136.5 | - |
| DDR4-2400 | 19.2 | 38.4 | 153.6 | - |
| DDR4-2666 | 21.3 | 42.7 | 170.7 | - |
| DDR4-2933 | 23.5 | 46.9 | 187.7 | - |
| DDR4-3200 | 25.6 | 51.2 | 204.8 | - |
| DDR5-4800 | 38.4 | 76.8 | 307.2 | 460.8 |
| DDR5-5600 | 44.8 | 89.6 | 358.4 | 537.6 |
| DDR5-6000 | 48.0 | 96.0 | 384.0 | 576.0 |
| DDR5-6400 | 51.2 | 102.4 | 409.6 | 614.4 |
| DDR5-8000 | 64.0 | 128.0 | 512.0 | 768.0 |
| DDR5-8800 | 70.4 | 140.8 | 563.2 | 844.8 |
ECC and ranks do not change these figures. A DDR4 ECC DIMM is 72 bits wide and a DDR5 ECC module 80, but the extra bits are check bits, so the payload and the bandwidth match a non-ECC module of the same grade; the ECC guide covers what they are for. A dual-rank module’s two ranks share the same 64 data pins and only one drives the bus at a time, so a 2Rx8 and a 1Rx8 module at the same grade have identical peak bandwidth; ranks and 3DS modules covers what the second rank does buy.
Real platforms multiply the channel figure out a long way, and a published memory bandwidth number on a CPU spec sheet is never a measurement. It is channels times rate times eight:
AMD EPYC 9004 "Genoa" 12 channels × DDR5-4800 × 8 B = 460,800 MB/s = 460.8 GB/s
AMD EPYC 9005 "Turin" 12 × DDR5-6400 × 8 = 614,400 MB/s = 614.4 GB/s
Intel Xeon 4th gen 8 × DDR5-4800 × 8 = 307,200 MB/s = 307.2 GB/s
Intel Xeon 6, MRDIMM 12 × 8800 × 8 = 844,800 MB/s = 844.8 GB/s
Intel Xeon E5-2600 v3 4 × DDR4-2133⅓ × 8 = 68,267 MB/s = 68.3 GB/s
Intel Xeon Scalable 2nd 6 × DDR4-2933⅓ × 8 = 140,800 MB/s = 140.8 GB/s
Divide by core count and the picture inverts: a 96-core EPYC 9004 has 460.8 ÷ 96 = 4.8 GB/s per core, about the same as a twelve-year-old fourteen-core Xeon E5-2697 v3 at 68.3 ÷ 14 = 4.9, and about two fifths of an 8-core desktop on two channels of DDR5-6000 at 96.0 ÷ 8 = 12.0.
PCn-nnnnn, and the rounding that is a habit
The PC number is the peak bandwidth in MB/s, rounded to something marketable. The generation digit is the part that matters.
| Grade | Bus clock | Data rate × 8 | PC number |
|---|---|---|---|
| DDR-200 | 100 MHz | 1,600 | PC1600 |
| DDR-266 | 133⅓ MHz | 2,133 | PC2100 |
| DDR-333 | 166⅔ MHz | 2,667 | PC2700 |
| DDR-400 | 200 MHz | 3,200 | PC3200 |
| DDR2-400 | 200 MHz | 3,200 | PC2-3200 |
| DDR2-533 | 266⅔ MHz | 4,267 | PC2-4200 (also PC2-4300) |
| DDR2-667 | 333⅓ MHz | 5,333 | PC2-5300 (also PC2-5400) |
| DDR2-800 | 400 MHz | 6,400 | PC2-6400 |
| DDR2-1066 | 533⅓ MHz | 8,533 | PC2-8500 (also PC2-8600) |
| DDR3-800 | 400 MHz | 6,400 | PC3-6400 |
| DDR3-1066 | 533⅓ MHz | 8,533 | PC3-8500 |
| DDR3-1333 | 666⅔ MHz | 10,667 | PC3-10600 (also 10666, 10700) |
| DDR3-1600 | 800 MHz | 12,800 | PC3-12800 |
| DDR3-1866 | 933⅓ MHz | 14,933 | PC3-14900 (also PC3-15000) |
| DDR3-2133 | 1066⅔ MHz | 17,067 | PC3-17000 |
| DDR4-1600 | 800 MHz | 12,800 | PC4-12800 |
| DDR4-1866 | 933⅓ MHz | 14,933 | PC4-14900 |
| DDR4-2133 | 1066⅔ MHz | 17,067 | PC4-17000 |
| DDR4-2400 | 1200 MHz | 19,200 | PC4-19200 |
| DDR4-2666 | 1333⅓ MHz | 21,333 | PC4-21300 (also PC4-21333) |
| DDR4-2933 | 1466⅔ MHz | 23,467 | PC4-23400 and PC4-23466 |
| DDR4-3200 | 1600 MHz | 25,600 | PC4-25600 |
| DDR5-4800 | 2400 MHz | 38,400 | PC5-38400 |
| DDR5-5200 | 2600 MHz | 41,600 | PC5-41600 |
| DDR5-5600 | 2800 MHz | 44,800 | PC5-44800 |
| DDR5-6000 | 3000 MHz | 48,000 | PC5-48000 |
| DDR5-6400 | 3200 MHz | 51,200 | PC5-51200 |
| DDR5-6800 | 3400 MHz | 54,400 | PC5-54400 |
| DDR5-7200 | 3600 MHz | 57,600 | PC5-57600 |
| DDR5-8000 | 4000 MHz | 64,000 | PC5-64000 |
| DDR5-8800 | 4400 MHz | 70,400 | PC5-70400 |
The rounding is a habit, not a rule: DDR-266’s 2,133 became PC2100 by rounding down and DDR-333’s 2,667 became PC2700 by rounding up. Every “also” in the table is one grade sold under two spellings, DDR2’s PC2-4200, PC2-5300 and PC2-8500 included. DDR4-2933 is the live case: the arithmetic gives 23,466⅔, the grade appears as PC4-23400 on most listings and PC4-23466 on others, and neither is a JEDEC designation. Searching for one spelling and not the other is a genuine way to miss stock.
The label on a server module is a third number again
A registered module’s sticker says something close to PC4-2666V-RD1-11. That
is JEDEC’s module nomenclature, it states the data rate directly, and the
letter after the rate is a CAS latency bin, not a voltage and not a revision.
The DDR4 bin letters, from the speed bin tables in JESD79-4:
| Data rate | Bin letters and the CL each one qualifies for |
|---|---|
| DDR4-1600 | J = CL10, K = CL11, L = CL12 |
| DDR4-1866 | L = CL12, M = CL13, N = CL14 |
| DDR4-2133 | N = CL14, P = CL15, R = CL16 |
| DDR4-2400 | P = CL15, R = CL16, T = CL17, U = CL18 |
| DDR4-2666 | T = CL17, U = CL18, V = CL19, W = CL20 |
| DDR4-2933 | V = CL19, W = CL20, Y = CL21, AA = CL22 |
| DDR4-3200 | W = CL20, AA = CL22, AC = CL24 |
The sequence skips I, O, Q, X and Z, which are confusable with digits on a small label. Four different parts share one marketplace number: PC4-2666T, U, V and W are all PC4-21300 and are CL17, CL18, CL19 and CL20. At DDR4-2666, CL17 is 12.75 ns and CL20 is 15.0 ns, a 17.6 percent difference in the time to first word and none in streaming bandwidth. Some DDR5 bins carry an N suffix for the 24 Gbit and 48 Gbit dies behind 48 GB and 96 GB modules, and Micron’s DDR5-5600 datasheets list AN, B, BN and C bins at 40-40-40, 46-45-45, 46-46-46 and 50-49-49, so read the CL off the listing rather than inferring it from the letter.
In RD1-11, the first letter is the useful one: R for registered, U for
unbuffered, L for load-reduced, S for a small outline module. The rest is a
JEDEC raw card reference, a PCB layout and not a speed field.
Buying used RAM on eBay decodes the rest of a
label and a part number.
The SPD decides what the machine boots at
Every module carries a small EEPROM, the serial presence detect chip. At power-on the memory controller reads it over a two-wire bus and learns what it is holding. Nothing about the speed of your memory is negotiated. It is looked up.
What is actually in there
For DDR4 the SPD is 512 bytes, defined by JESD21-C, Annex L: a base
configuration of density, banks, rows, columns, width, rank count and timings,
then manufacturing data and a region JEDEC leaves open. DDR4 stores times as a
count of a medium timebase of 125 picoseconds, with a
signed correction in a fine timebase of 1 picosecond. Byte 18 holds
tCKAVGmin, the shortest clock period the module is qualified for, which is the
whole speed rating of the module in two bytes:
DDR4-3200 tCK = 625 ps 625 ÷ 125 = 5 exactly MTB 5, FTB 0
DDR4-2666 tCK = 750 ps 750 ÷ 125 = 6 exactly MTB 6, FTB 0
DDR4-2400 tCK = 833 ps 833 ÷ 125 = 6.664 MTB 7, FTB -42
JEDEC rounds up to the next 125 ps unit and subtracts the difference: a DDR4-2400 module carries 7 and minus 42, and 7 × 125 - 42 is 833.
DDR5 stores timings directly in picoseconds in a 1024-byte SPD defined in a JEDEC
document of its own, behind a hub device on the module. On Linux that needs a
driver that speaks to the hub, where DDR4 SPD is readable with the older ee1004
driver.
The controller takes a minimum over four things
The speed a machine trains to is the lowest of four numbers, and people routinely blame a downclock on the wrong one.
| The limit | Where it is stated | What it looks like when it binds |
|---|---|---|
| The module’s best JEDEC profile | SPD byte 18, tCKAVGmin |
Every module in the machine runs at its own rated speed and that is the answer |
| The processor’s rated support | CPU spec sheet, one line | Machine runs at the CPU number regardless of what is installed |
| The platform’s population rule | Board or server vendor’s memory table | Removing two modules raises the speed of the rest |
| The slowest module present | All of the SPDs, compared | One cheap stick drags the set down, silently |
Nothing in that list is the number printed on a retail kit’s box. A DDR5-6000 kit’s JEDEC region commonly declares DDR5-4800 CL40, because that is a real JEDEC speed bin and DDR5-6000 is not one. The 6000 lives somewhere else.
The vendor region, where XMP and EXPO live
JEDEC leaves the last part of the SPD open, and the overclocking profiles sit there. On DDR4, XMP 2.0 occupies the final 128 bytes of the 512-byte SPD and holds two profiles. DDR5’s XMP 3.0 lives in the equivalent region of the larger SPD, holds more profiles, and made some of them writable so a board or a user can store a tuned set back onto the module. AMD’s EXPO is the same idea in a different vendor block, DDR5 only, with the profile contents published.
Firmware that reads only the JEDEC region is behaving correctly. It is not ignoring your kit. The kit put its headline speed in a region JEDEC does not define, and reading it is opt-in.
XMP and EXPO overclock the processor, not the module
This distinction is the difference between a warranty claim and a wasted afternoon. The module vendor tested its DRAM at the profile speed and sells the result as validated there, so for the DIMM the profile is a rating.
The memory controller is being overclocked, and it is inside the processor. Intel and AMD rate their controllers at specific JEDEC data rates. Running one at DDR5-7200 when the processor’s spec sheet says DDR5-5600 is operating part of the CPU outside the specification it was sold under. Buying a 7200-rated kit does not change what the controller in your particular chip can do.
The voltage is the tell
| Generation | JEDEC operating voltage | What enthusiast profiles commonly ask for |
|---|---|---|
| DDR3 | 1.5 V (1.35 V for DDR3L) | 1.5 V to 1.65 V |
| DDR4 | 1.2 V | 1.35 V, sometimes 1.45 V |
| DDR5 | 1.1 V | 1.35 V to 1.45 V |
A DDR5 profile at 1.35 V is asking for 23 percent more than the standard operating voltage, which is 1.35 ÷ 1.1: an overclock by any definition, however normal and usually harmless.
DDR5 moved voltage regulation onto the module, in a power management IC, where DDR4 boards supplied the rails. The PMIC has a ceiling it will accept, and on many modules that ceiling is locked in a way a board cannot override. Server modules are generally locked and retail overclocking modules generally are not, which is why a server RDIMM will not do enthusiast voltages even in a board that would offer them.
A kit is binned as a set
A 2 × 16 GB kit was tested together, at its profile, on a reference platform. Two separately bought kits of the same part number were not. Four modules from two kits is an untested configuration even when every part number matches, and a four-module configuration is usually a lower speed grade whatever the profile says, as the population tables show. The profile was tuned for the electrical load of two modules, not four.
What the vendors say
Intel describes XMP as a form of memory overclocking and warns in its own support material that altering clock frequency or voltage may void warranties and reduce stability and life; AMD carries an equivalent disclaimer for memory overclocking including EXPO. This is not a hidden term. It is on the page that explains how to turn the feature on. The risk in practice is small. The point is that a memory profile is the one setting people enable without registering that they have overclocked anything.
The DDR5 clock driver, and the speeds that now require one
From 6400 MT/s upward, JEDEC’s DDR5 module specifications require an unbuffered module to carry a clock driver that regenerates the clock on the module. The form factors are named CUDIMM and CSODIMM. A board without clock driver support cannot run a CUDIMM at its rated speed; many such modules have a bypass mode that runs them as ordinary UDIMMs at a reduced rate, so the module posts, works and is slow, with nothing saying why. Check the board’s support list for CUDIMM before buying anything at DDR5-6400 or above.
Gear modes: the memory controller runs its own clock
This explains the result people find impossible: a higher grade of memory, correctly configured, running slower than the grade below it. The memory controller has its own clock, and its ratio to the memory clock is usually the single largest influence on latency in the whole memory path.
Intel’s gears
Intel calls the ratio Gear mode, and the number is the divisor applied to the controller.
| Gear | Controller clock relative to memory clock | Where it appears |
|---|---|---|
| Gear 1 | 1:1 | DDR4 on desktop parts, up to about DDR4-3200 |
| Gear 2 | 1:2 | All DDR5 on the 12th generation desktop parts, and DDR4 above the Gear 1 limit |
| Gear 4 | 1:4 | Very high DDR5 grades on later parts |
Intel’s own platform documentation for the 12th generation lists no Gear 1 configuration with DDR5 at all. The DDR4 side of the same processor supports Gear 1 through DDR4-3200, which is why a 12th-generation DDR4 board could post latency figures a DDR5 board of the same generation could not touch, and why early DDR5 looked so unconvincing in latency-sensitive testing.
AMD’s UCLK, MCLK and FCLK
AMD exposes three clocks rather than a gear number.
| Clock | What it is | Typical relationship |
|---|---|---|
| MCLK | The memory bus clock, half the data rate | DDR5-6000 means MCLK 3000 MHz |
| UCLK | The unified memory controller clock | 1:1 or 1:2 against MCLK |
| FCLK | The Infinity Fabric clock, which carries traffic between the memory controller and the core complexes | Independent on the current generation |
On AM4 all three wanted to be coupled, and the well-known target was FCLK 1800 with DDR4-3600, everything at 1:1:1. On AM5, home of the Ryzen 7000 and Ryzen 9000 desktop processors, the fabric is decoupled, and the question is whether UCLK can hold 1:1 against MCLK.
AMD names DDR5-6000 as the recommended operating point for AM5 rather than as a maximum, and the reason is the ratio, not the DRAM. Above the point where the controller can hold 1:1, it falls back to 1:2, and the fall costs more than the extra transfers return for most workloads. AMD’s recommendation makes DDR5-6000 the grade to start from on AM5.
What the ratio costs
At DDR5-6000 with UCLK 1:1, the controller’s clock period is:
MCLK = 6000 ÷ 2 = 3000 MHz period = 1 ÷ 3000 MHz = 0.3333 ns
UCLK at 1:1 = 3000 MHz period = 0.3333 ns
At DDR5-6400 with UCLK 1:2:
MCLK = 6400 ÷ 2 = 3200 MHz period = 0.3125 ns
UCLK at 1:2 = 1600 MHz period = 0.6250 ns
The controller’s clock period nearly doubles, from 0.3333 ns to 0.6250 ns, an increase of 87.5 percent, while the data rate rises by 6.7 percent.
The cost in nanoseconds depends on how many controller clock periods a transaction spends inside the controller, a pipeline depth no vendor publishes. If the front end is ten stages deep, the added time is 10 × (0.625 - 0.3333) = 2.9 ns; if twenty, 5.8 ns. Those depths are assumptions. The direction is certain, the order of magnitude is a few nanoseconds, and the exact figure is not calculable from outside the company that designed it.
The cliff, stated as a comparison
| DDR5-6000 CL30 at 1:1 | DDR5-6400 CL32 at 1:2 | |
|---|---|---|
| Peak bandwidth per module | 48.0 GB/s | 51.2 GB/s |
| tCK | 0.3333 ns | 0.3125 ns |
| CAS latency in time | 30 × 0.3333 = 10.0 ns | 32 × 0.3125 = 10.0 ns |
| Controller clock period | 0.3333 ns | 0.6250 ns |
The DRAM is exactly as fast in both columns. The entire trade is 6.7 percent more peak bandwidth against a controller running at half rate, and for anything latency-sensitive that is a losing trade. This is why a 6400 kit can benchmark below a 6000 kit in the same board.
Where the cliff stops mattering
Past the cliff the ground is flat, so enough extra speed eventually wins the bandwidth argument back even though the latency never recovers.
DDR5-6000 at 1:1 48.0 GB/s CAS 30 × 0.3333 = 10.00 ns UCLK period 0.3333 ns
DDR5-8000 at 1:2 64.0 GB/s CAS 38 × 0.2500 = 9.50 ns UCLK period 0.5000 ns
Thirty-three percent more peak bandwidth, a slightly better CAS time, and a controller still at half rate. For a workload that streams, DDR5-8000 at 1:2 is the better configuration; for a workload that chases pointers, DDR5-6000 at 1:1 usually still wins. For most desktop buyers the difference between the two is smaller than the price difference.
Past the platform’s 1:1 limit you are paying a premium per gigabyte for peak bandwidth and giving back latency. Below it you are buying both. The limit belongs to your particular chip, not to its model.
Population sets the speed, and the number is published before you buy
A correct module, correctly installed, in a machine that supports its grade, can still run slower for a reason that is not a fault. Every rank and every slot on a channel loads the bus, and past the point where termination and, on DDR5, equalization in the DRAM’s own receiver can compensate, the only lever left is to slow down. A platform’s population table is the speed at which the vendor will guarantee the signaling with that much load on the bus.
Intel’s desktop tables, and what they index on
Intel’s 12th generation DDR5 table is the instructive one, because its left column is not modules. It is slots:
| Slots per channel on the board | Modules per channel | Ranks per module | Supported rate |
|---|---|---|---|
| 1 | 1 | either | DDR5-4800 |
| 2 | 1 | either | DDR5-4400 |
| 2 | 2 | 1 | DDR5-4000 |
| 2 | 2 | 2 | DDR5-3600 |
The first two rows hold the same modules and the same ranks, 400 MT/s apart, and the only difference is whether the board has an empty second slot on each channel. An unpopulated slot costs speed: the branch in the wiring is there whether or not a module sits at the end of it, and an unterminated branch reflects. That is why a two-slot ITX board often supports a higher grade than the full-size board with the same chipset. The DDR4 side of the same generation agrees:
| Modules per channel | Ranks per module | Ranks per channel | Supported rate |
|---|---|---|---|
| 1 | 1 | 1 | DDR4-3200 |
| 1 | 2 | 2 | DDR4-3200 |
| 2 | 1 | 2 | DDR4-2933 |
| 2 | 2 | 4 | DDR4-2667 |
A dual-rank module in one slot holds DDR4-3200; two single-rank modules in two slots do not, at the same rank count on the channel. The second rank on one module is free here, and the second module costs 267 MT/s. The order is slots, then modules, then ranks. The tables are Intel’s data; the stub explanation is a reading of the signaling, not something Intel states.
AM5
AMD’s support table for AM5 drops from DDR5-5200 with two modules to DDR5-3600 with four, a 30.8 percent cut in peak bandwidth from a decision most people make on capacity alone. Four 16 GB modules and two 32 GB modules give the same 64 GB, and the 32 GB module’s second rank costs nothing here: AMD publishes 2x1R DDR5-5200 and 2x2R DDR5-5200 on a Ryzen 9 7950X’s own specification page.
2 × 32 GB at DDR5-5200 2 DIMMs × 5200 × 8 B = 83,200 MB/s = 83.2 GB/s
4 × 16 GB at DDR5-3600 4 DIMMs × 3600 × 8 B = 115,200 MB/s
but the data path is 128 bits either way,
so the honest comparison is per channel:
2 × 32 GB 5200 × 8 × 2 = 83.2 GB/s
4 × 16 GB 3600 × 8 × 2 = 57.6 GB/s
The second line is the one that matters and it is 31 percent less bandwidth. Four modules do not add channels on a two-channel board; they add ranks to the channels that exist. The pair of larger modules wins on speed and leaves two slots for later, though larger modules usually cost more per gigabyte.
Server platforms
Server vendors publish the same tables at more depth, because a server can have three slots per channel. These are the processor vendors’ figures:
| Platform | Channels | 1 module per channel | 2 per channel |
|---|---|---|---|
| Xeon E5-2600 v3 (DDR4) | 4 | 2133 | 1866, and 1600 at three per channel |
| Xeon E5-2600 v4 (DDR4) | 4 | 2400 | 2133 |
| Xeon Scalable 2nd gen, Gold and Platinum (DDR4) | 6 | 2933 | 2666 |
| Xeon Scalable 3rd gen (DDR4) | 8 | 3200 | 2933 |
| Xeon 4th gen (DDR5) | 8 | 4800 | 4400 |
| Xeon 5th gen (DDR5) | 8 | 5600 | 4400 |
| EPYC 7002 and 7003 (DDR4) | 8 | 3200 | 2933 |
| EPYC 9004 (DDR5) | 12 | 4800 | 3600 |
Take the chassis vendor’s table over the processor vendor’s where they disagree, because the chassis vendor’s is the one that binds. A server board adds its own trace lengths, connectors and qualification program, and an HPE, Dell or Lenovo population guide is often more conservative than Intel’s or AMD’s figure for the same silicon. The machines on this site’s compatibility pages, a Dell PowerEdge R730 or an HPE ProLiant DL380 Gen9 among them, carry the chassis vendor’s figures.
Three modules per channel, on older platforms, is where the speed cost becomes the dominant fact:
Xeon E5-2600 v3, four channels, DDR4-2133 modules throughout
4 modules, 1 per channel 4 × 2133⅓ × 8 = 68.3 GB/s at DDR4-2133
8 modules, 2 per channel 4 × 1866⅔ × 8 = 59.7 GB/s at DDR4-1866
12 modules, 3 per channel 4 × 1600 × 8 = 51.2 GB/s at DDR4-1600
Tripling the module count costs 25 percent of the peak bandwidth. Capacity usually justifies it, but it should be a decision rather than a surprise. Server memory capacity limits works the same tables from the capacity side.
Registered, load-reduced and MRDIMM modules at speed
Server RAM against desktop RAM covers which boards take which type; what matters here is what each buffer does to speed. A registered module’s registering clock driver re-drives the command, address and clock signals and does not touch the data bus, so every rank still loads the data bus and a second registered module per channel still costs speed. The register itself adds one clock period of command latency.
A load-reduced module adds buffers on the data path, nine on DDR4, so the host sees one data load per module however many ranks it carries, which is how 128 GB and 256 GB modules exist. On DDR3 and the earliest DDR4 platforms, load reduction bought a higher validated speed at high module counts; on most later DDR4 servers, registered and load-reduced modules get the same speed at two per channel, and the load-reduced module buys capacity, not rate. Stacked 3DS modules present one load and several logical ranks, so they do not cost a speed grade for their ranks; ranks and 3DS modules has the detail. Registered DDR5 has reached 8000 MT/s in shipping product, because the register already regenerates the clock and command bus.
MRDIMM breaks every definition of speed. A multiplexed rank module’s buffers interleave two ranks’ worth of data and present it to the host at double the DRAM’s rate, so a first-generation MRDIMM sold as DDR5-8800 contains DRAM running at 4400 MT/s. Intel’s Xeon 6 is the platform that takes them; AMD’s EPYC 9006 “Venice” takes the faster MRDIMM-12800, whose DRAM runs at 6400 MT/s.
MRDIMM-8800: DRAM at 4400 MT/s, host interface at 8800 MT/s
12 channels × 8800 × 8 B = 844.8 GB/s peak per socket
The bandwidth is real, the array clock is 275 MHz, and the latency is set by the 4400 MT/s devices plus the multiplexing.
Boot-time training is why speed is not simply a setting
Between reading the SPD and running at a speed there is a process that takes seconds on a desktop and minutes on a loaded server.
DDR3 introduced fly-by routing: the command, address and clock traces run past the devices in sequence instead of reaching all of them at once, so the clock arrives at the last device later than the first. Write leveling measures that skew per device and delays each one’s data to match. It has to be done at boot because it depends on the board, the module and the temperature. Around it sit the other calibrations:
| Step | What it establishes |
|---|---|
| ZQ calibration | Output driver impedance and on-die termination, against a 240 ohm reference resistor |
| Write leveling | Per-device data strobe to clock alignment, made necessary by fly-by routing |
| Read gate training | When to open the window that captures returning data |
| Data strobe centering | Where in the bit period to sample, read and write |
| Reference voltage training | The level the receiver compares against, which DDR4 moved on-die and made trainable |
| Equalization training | On DDR5, the decision feedback taps in the DRAM’s receiver |
| Command and address training | On DDR5, the command bus gets its own alignment pass |
Each runs per module, per rank and often per device, which is why the time scales with installed memory and a fully populated two-socket server can take several minutes to reach a display.
Firmware caches the trained values, keyed to the configuration that produced them. Change a module, move a module between slots, or change the speed setting, and the key misses and the machine retrains from scratch. That is why a machine that booted instantly yesterday can sit at a dark screen for minutes after new memory goes in, and not be broken.
Training can fail. Some boards stop and say so. Many retry at a lower speed, or with the JEDEC profile instead of the enabled overclocking profile, and boot normally without telling you anything. A machine reverted from an enabled 6000 profile to DDR5-4800 looks exactly like one never configured; reading the configured speed back after every firmware change is the only test.
Peak is a ceiling nothing reaches
The bandwidth arithmetic assumes every clock period carries data. None do, and the limits behind most of the shortfall are specified in the same standard as the speed bins.
Refresh, the activate window and the bank count
JESD79-4 sets DDR4’s refresh interval at 7.8 microseconds (7.8125 exactly) at or below 85 degrees, and on 16 Gbit dies each refresh occupies the device for 550 ns: 550 ÷ 7,812.5 is 7.0 percent of the channel’s time, which takes DDR4-3200 from 25.6 GB/s to 23.8 GB/s before a useful byte moves. Above 85 degrees the standard halves the interval to 3.9 microseconds and the cost doubles to 14.1 percent, and the module never says a word about it. That is the technical content of the advice to put airflow over server modules: the DRAM does not fail at 86 degrees, the refresh rate doubles and takes bandwidth with it.
Two more limits cap random access. tFAW allows no more than four row
activations per rank in a rolling window, which, by this site’s arithmetic, caps
a single-rank channel where every access opens a new row at between a third and
two thirds of peak (4 × 64 B ÷ 30 ns is 8.5 GB/s and ÷ 15 ns is 17.1 GB/s, against
DDR4-3200’s 25.6). tFAW is specified per rank, so a second rank doubles that
ceiling, the real benefit of dual-rank memory and invisible in any peak figure.
And a bank cannot reopen a row until its row cycle time has passed: by this
site’s arithmetic, DDR4’s 16 banks reach 87 percent of peak in the worst case
(16 × 64 B ÷ 45.75 ns = 22.4 GB/s), and DDR5 doubled the bank count to 32 to stay at about
86 percent of its own, because the row cycle time did not improve and the data
rate did. The CAS latency guide works these timings
in full.
Populate every channel first
None of the per-channel arithmetic survives an unbalanced configuration.
EPYC 9004, 12 channels, DDR5-4800
12 modules 12 × 38.4 = 460.8 GB/s 100 percent
8 modules 8 × 38.4 = 307.2 GB/s 67 percent
6 modules 6 × 38.4 = 230.4 GB/s 50 percent
4 modules 4 × 38.4 = 153.6 GB/s 33 percent
Populating eight of twelve channels because eight modules were what the budget allowed costs a third of the platform’s memory bandwidth, and the machine will not complain. It can be worse than the table suggests, because an interleave that does not divide evenly across channels either falls back to a smaller interleave group or splits the address space into a fast region and a slow one. Populate all channels first, then add capacity. Twelve small modules beat six large ones on every memory-bound workload at the same total capacity.
When you measure, a loaded-latency curve, such as Intel’s Memory Latency Checker produces, is the measurement that answers a buying question, because it shows if the machine is short of bandwidth or of latency, and those two shortages are fixed by buying opposite things. STREAM’s Triad figure, by contrast, counts 24 bytes per element where the bus carries 32, a third more, unless the code uses non-temporal stores, because a normal store first fetches the line it writes.
What the speed number is worth on the used market
Speed is the field on a used listing most likely to be paid for and not used. A machine on the Xeon E5-2600 v3 generation is validated at DDR4-2133 with one module per channel and DDR4-1866 with two. Registered DDR4 modules exist in quantity at 2133, 2400, 2666 and 3200, from different fleet generations, priced accordingly.
DDR4-2400 module in an E5-2600 v3 machine runs at 2133 11 percent of its rating unused
DDR4-2666 module in the same machine runs at 2133 20 percent unused
DDR4-3200 module in the same machine runs at 2133 33 percent unused
Every cent of the premium above the 2133 part buys nothing in that machine. The reverse mistake costs more: buying 2133 parts for a machine that would have run 2666 gives up 20 percent of peak bandwidth permanently, for a saving usually smaller than 20 percent, because the cheap used grades are cheap for reasons of supply rather than specification.
So find the speed the machine is validated at, at the module count you intend to install, and buy that grade. Not higher, because it is wasted. Not lower, because it is permanent. This site’s server memory listings carry the speed as a facet, with pages per grade such as DDR4-2133 and DDR4-2666, and the compatibility pages carry the validated figure for each machine.
Two exceptions. A higher grade is worth buying if you expect to move it into a faster machine later, because memory does not age in a drawer. And it is worth buying when the price difference has collapsed, which happens whenever a fleet generation is decommissioned in bulk. Sort the DDR4 listings by price per gigabyte to see whether it has; prices move weekly, and Trends follows each generation’s price per gigabyte over the last month.
What a listing can and cannot tell you about speed
Specifications on this site are read from the words of the eBay listing title by fixed rules, which the methodology page sets out. A blank speed field means the title did not state a speed, not that the module has none; a listing that never says 2666 does not get quietly filed as 2666. A speed in a title is the seller’s claim, not a reading from the module. It is usually copied off the label, but a mistyped part number produces a wrong speed that looks exactly like a right one, so look the part number up on the part pages or the manufacturer’s site and check the speed it decodes to. And a title’s speed says nothing about what your machine will run it at.
What cannot be known before you buy
Whether a particular processor will hold a particular profile is not published: memory controllers vary between chips of the same model, and a kit rated DDR5-8000 is a statement about the modules, not about your processor. A module part number does not pin the DRAM inside it, because vendors requalify parts onto new die revisions and die vendors within one part number. And real bandwidth on your workload is not predictable from any specification: peak is multiplication, refresh and the timings set a ceiling below it, and the rest is scheduling in a controller nobody documents.
A memory speed grade is a statement about one interface in one validated configuration. Four different numbers are all called speed: the array clock, the bus clock, the transfer rate and, on an MRDIMM, the host-side rate that no DRAM on the module is running at. Knowing which one a listing quotes, and which one your machine will train to, is the difference between buying the right module and buying a faster one.