Electronic – DDRx Memory: Memory Clock vs I/O Bus Clock

clockddr2ddr3frequencymemory

When referring to DDR/DDR2/DDR3/DDR4 memories, I am not able to understand the difference between memory clock and I/O clock.

As per: https://en.wikipedia.org/wiki/Double_data_rate

DDR-200 – Memory Clock = 100 MHz, I/O Bus Clock = 100 MHz;
DDR2-800 – Memory Clock = 200 MHz, I/O Bus Clock = 400 MHz;
DDR3-1600 – Memory Clock = 200 MHz, I/O Bus Clock = 800 MHz;
DDR4-3200 – Memory Clock = 400 MHz, I/O Bus Clock = 1600 MHz

Could someone please explain what is memory clock and I/O bus clock here? Because I understand that memory controller provides only a single clock to the memory chip, which is half that of the data rate.

Thank you.

Best Answer

I/O bus clock is always half of bus data rate.
example: DDR2-800: bus data rate is 800 MT/s, IO clock is 400 MHz.

Memory clock is the clock which sync memory controller:
DDR1: 1/2 of bus data rate, because of 2n-prefetch
DDR2: 1/4 of bus data rate, because of 4n-prefetch
DDR3: 1/8 of bus data rate, because of 8n-prefetch

Two different clock in DDR for MC (memory controller and PHY):
DFI clock: value is equal to memory clock
DFI PHY clock: value is equal to IO clock