1. DIMMとは?

DIMMとは、Dual Inline Memory Moduleの略で、複数のDRAMやその他のデバイスをプリント基板上に搭載したメモリモジュールのことです。
エイブリックは、このメモリモジュールに搭載するシリアルEEPROMであるSPD (Serial Presence Detect) を作っています。DIMMにはDDR (Double Data Rate) という規格があり、SPDもこの規格へ対応するように開発しています。
次項からは最新のDDR規格とSPDに関わる特徴についてご紹介します。

DIMMとは

 

2. DDR5とDDR4の違い

DDR5は、PCやデータサーバなどの幅広いアプリケーションにおける効率的なパフォーマンスに対する高まるニーズを満たすように設定された規格です。そのため従来のDDR4規格と比較し、より高い帯域幅と容量を提供します。
また、システム管理のためにSPDの機能も拡張されました。DDR4とDDR5の違いは、以下のようになります。

Feature DDR5 DDR4 DDR5 Advantage
Speed Min 4.8Gbps data rate Min 1.6Gbps data rate - Higher Bandwidth
IO Voltage 1.1V 1.2V - Lower power
Power Management On DIMM PMIC On mother board - Better power efficiency
- Better scalability
Channel Architecture 40-bit data channel (32data + 8ECC)
2 channels per DIMM
72-bit data channel (64data + 8ECC)
1 channel per DIMM
- Higher memory efficiency
- Lower latency
Burst Length 16 8 - Higher memory efficiency
Max. Die Density 64Gb 16Gb - Higher capacity DIMMs
More Intelligence SPD Hub (I3C-Bus) and Temperature Sensor SPD (I2C-Bus) - Enhanced system management
- Greater telemetry for thermal management

 

3. DDR5向けSPDとDDR4向けSPDの違い

DDR5向けSPDは、従来のDDR4向けSPDと比較し、インターフェース規格がI2C-BusからI3C-Bus併用になったこと、Hub機能が加わったことが大きな特徴です。
これらにより、DDR5向けSPDは高速動作と堅牢なシステム管理に貢献します。

Feature SPD for DDR5 SPD for DDR4 DDR5 SPD Advantage
Interface I2C / I3C-Bus I2C-Bus -
Speed Max 12.5MHz Max 1MHz - Higher speed
IO Voltage 1.0V typ. (I3C-Bus)
3.3V typ. (I2C-Bus)
3.3V typ. - Lower power
Memory Capacity 8K-bit 4K-bit - Larger memory capacity
Temperature Accuracy 0.5°C typ. (Ta = +75°C to +95°C) 0.5°C typ. (Ta = +75°C to +95°C) - No difference
Package DFN-8 DFN-8 - No difference
Function Hub function On mother board - Enhanced system management
Packet Error Check (PEC) function (Nothing) - Higher noise immunity
Parity Error Check function (Nothing) - Higher noise immunity
In Band Interrupt (IBI) for Alert function Event Pin for Alert function - Needless Event Pin
Application Combination
- for RDIMM, UDIMM, SODIMM (S-34HTS08AB-A8T5U4)
Separation
- for RDIMM, UDIMM (S-34TS04A0B-A8T3U5)
- for SODIMM (S-34C04AB-A8T3U5)
- All in one

 

4. Hub機能とは?

DDR5ではシステムの電源管理、熱管理を行うため搭載デバイスが増え、モジュール構成が一新されました。
そのため、DDR4と同様にモジュール内の各デバイスと外部コントローラを直接繋いだ場合、バスの電気的負荷が大きくなってしまう恐れがありました。この問題に対応するために、DDR5において外部コントローラとDIMMボード上の各デバイスはSPDを介して接続されます。
これにより外部コントローラから見たモジュール側の電気的負荷は最小限に抑えられ、高速動作を実現します。

DDR5方式

外部コントローラとモジュール内の各デバイスをSPDを中継して接続します。

DDR5方式

DDR4方式

外部コントローラとモジュール内の各デバイスを直接接続します。

DDR4方式

そしてSPDにはHub機能が追加されました。SPDメモリ / 温度センサの役割は、DDR4の時と同じように対応しつつ、外部コントローラからDIMMボード上のデバイスへの命令を適切に管理します。バスの分離で生じる通信課題をHub機能が解決します。

Hub機能

 

5. I3C通信とは?

DDR5では通信の高速化に対応するため、SPDにはHub機能が追加されていますが、通信仕様自体も更新され、I3C通信規格を採用しています。I3CはImproved Inter Integrated Circuitsの略で、従来のI2C (Inter Integrated Circuits) の改良版です。
SDAとSCLの2線式接続という点は同じですが、クロックスピードが1MHzから12.5MHzへ引き上げられました。このクロックスピードの上昇に伴い、従来の通信ノイズ対策は困難になりました。そのため、I3Cでは「Packet Error Check (PEC) 機能」、「Parity Error Check機能」を採用し、通信プロトコルで通信データの誤りを検出できるようにしています。

PEC機能 I3C通信の最後に8-bitのパケットエラーコードを追加します (このコード自体もPECと言います)。このコードは送信データを特定の多項式で割ることで算出されます。
受信者は送信データを同じく特定の多項式で割り算を行い、割り切れればデータに誤りがなく、正しいと判断できます。I3C通信ではこの多項式にCRC-8が用いられています。
Parity Error Check機能 I3C通信の各バイトの最後 (I2C通信におけるACK箇所) にパリティビットを追加します。I3C通信においては奇数パリティが用いられています。1バイト中に含まれる "1" が偶数個であれば "1" を、奇数個であれば "0" をパリティビットとして付けます。
受信者は送信データの各バイトに含まれる "1" の数をカウントし、偶数個でパリティビットに "1"、奇数個でパリティビットに "0" が付けられていれば送信データバイトが正しいと判断できます。

以上の機能はあくまで誤りを検出する機能であり、誤りを訂正する機能ではありません。そのため、データ受信者が送信者に対して誤りがあったことを通知する機能が必要です。
DDR4の場合、データラインとは別に通知用の端子、配線が用意されていました (エイブリックのDDR4向けSPDには温度センサのアラート用にEVENT端子が用意されていました)。この方式では通知の種類ごとに別個の端子、配線を増やす必要があり、通知の種類やDIMMボード上のデバイスも増えてしまうDDR5では不適切です。

DDR5方式

通知用途が増えてもデータラインの中で通知を行うため、端子や配線の追加は不要です。

DDR5方式 I3C通信

DDR4方式

通知用途ごとに端子や配線が必要なため、通知種類が増えると端子や配線も追加が必要です。

DDR4方式 I2C通信

I3CではIn Band Interrupt (IBI) 機能が採用されています。一定時間バスに動きが無かった場合、エラー状態 (Packet Error、Parity Error以外も含む) であるデバイスは、HOSTが出したスタートコンディションに呼応して、自ら通信を開始します。どのデバイスが優先されるかは通信の調停によって決められます。
各bitごとにデータラインの出力が比較され、複数の出力があった場合は "L" 出力が優先、"H" 出力をしているデバイスは自身で出力を停止します。この調停作業により、一番優先されるデバイスが決まります。

In Band Interrupt (IBI) 機能 調停の一例