はじめに
先週、DDR5って、DDR4の延長ではなくて、32bit x 2 channel になっているのを知りました。*1
恥ずかしながら、今日、気が付いたんですが、
— Vengineerの妄想 (@Vengineer) 2022年11月24日
DDR5って、64bit ではなく、32bit x 2 channel なんですね。
例えば、DDR5-4800 は、19.2GB/s が 2つになり、連続するアドレスにアクセスする場合、DDR4-3200 (25.6GB/s) の方が速いということなんですかね。。
どうなんでしょうか?
DDR5
下図は、下記の記事からの説明のために引用します。
- 単一のメモリモジュールが2チャンネルに分割されるようになる。
- 64ビットデータチャネルをもつのではなく、DIMM毎に独立した32ビットデータチャネル、あるいはECCを考慮した40ビットのデータチャネルを持つ
- 各チャネルのバースト長がDDR4ではBL8だったが、DDR5ではBL16になる。
DDR4-3200の64ビットデータチャンネルの帯域は25.6GB/s です。DDR5-6400の32ビットデータチャネルの帯域は25.6GB/s です。1枚のDIMMトータルとしての帯域は倍になりますが、チャネルでは同じです。DDR4-3200からDDR5-4800になった場合は、25.6GB/s から 19.2GB/s x 2 になり、全体の帯域は増えますが、チャネル当たりの帯域は減ります。
PCなどでは2枚のDDR4 DIMMを刺してインターリーブしていると思います。DDR5 DIMMの場合は1枚のDIMMの2個のチャネル内でインターリーブするんでしょうかね。。。
Intel CPUのDDR I/O Interleaving
下記に Intel 第12世代 CPUのDDR I/O Ingtrleaving の説明がありました。DDR4の時は2枚刺し、DDR5の時は4枚刺しなんですか?。。。え。いやいや違う Channel なので2枚刺しですね。
これを見ると、DDR4のNon-InterleaveとDDR5は同じ感じのようなので、Interleaveはされていないということですかね。
下記に Intel 第13世代 CPUのDDR I/O Ingtrleaving も同じですね。
12th Generation Intel® Core™ Processors : System Memory Controller Organization Mode (DDR4/5 Only)
おわりに
30年以上前にDRAMコントローラを学びました。その時はStatic Colunm DRAMというものを使いました。それから EDO DRAMというのもあったような気がします。その後は、SDRAMコントローラもちょこっと触りました。
それから30年が経ち、DDR5-6400、つまり、6.4Gbps で動かしているなんてすごいな?と思います。
関連記事
*1:笑