バッファードモジュール
背景
メモリシステムのバス幅の拡大、そしてピンあたりの信号速度の高速化など、メモリシステムの進化に伴い、メモリシステムのバンド幅もより高いレベルへと進化しています。コントローラのパッケージングコスト、マザーボードのルーティングの複雑さ、そしてシステム空間の制限によって、メモリバスのバンド幅の拡大がさらに困難になっています。そのため、メモリシステムのピンあたりの信号速度の向上に対する重要性が高くなってきました。
従来のメモリシステム(パーソナルコンピュータやワークステーションなど)では一般的に、将来のメモリ容量の拡張を想定して、複数のモジュールをサポートする必要があります。従来のメモリバスは、1データバスワイヤごとに複数のデバイスをサポートすることができるマルチドロップトポロジを利用することで、複数のモジュールをサポートしています。しかし、マルチドロップトポロジはデータバスワイヤごとに複数のデバイスをサポートするため、メモリバスの容量負荷が増加します。さらに、複数のメモリモジュールをサポートするメモリシステムの場合、バスワイヤ長も長くなり、これらバスワイヤに伴う静電容量によって、メモリバスの容量性負荷がさらに増大します。容量性負荷がこのように増大すると、シグナルインテグリティが劣化し、メモリシステムの最大信号速度が制限されることになります。ピンあたりの信号速度を上げるため、メモリバスの長さの短縮化とモジュール数の削減が図られる傾向にあります。このような設計上の決定により、容量性負荷の影響を最小限に抑えて信号速度を上げることはできますが、メモリ容量を縮小し、サポート対象のメモリアップグレード数を制限しなければなりません。
バッファードモジュールとは何でしょうか。
バッファードモジュールは、メモリバス上の容量性負荷を減らすことで、メモリバスの速度を向上させます。しかし、バスの長さやサポート対象のモジュールを制限する従来の方式とは異なり、バッファードモジュールでは、メモリモジュールの数を増やすことによって、大容量のメモリをサポートします。

図 1 は、DDR SDRAM および DDR2 SDRAM をサポートする従来のメモリシステムにおける容量性負荷を示します。図 1 では、データバスワイヤが複数の容量性負荷をサポートできることを示しています。各データバスワイヤは、メモリモジュールにつき最大2つの容量性負荷をサポートすることができます(両面モジュールの場合は、モジュールの前面にある DRAM から1つ、モジュールの背面にある DRAM から1つ)。メモリバスでサポートされるモジュール数が増えるにつれて、バス上の潜在的な容量性負荷も増加します。

図 2 では、一部のモジュールが他のモジュールよりもメモリコントローラから物理的に遠い位置にあることを示しています。高速な信号速度の場合、メモリコントローラから離れた位置にあるモジュールは、コントローラのそばにあるモジュールよりも、アクセス遅延が大きくなります。このようなアクセス遅延の差異により、異なるモジュールにアクセスするバックツーバックのメモリ参照で、メモリバス上に「バブル」が発生し、効率が下がることがあります。効率を向上させるため、バッファが適切な遅延を挿入し、メモリ内のすべてのモジュールのアクセス遅延が均一になるように設計することができます(図 3 を参照)。これにより、バックツーバックのメモリ参照がパイプライン化され、メモリシステムの有効バンド幅を増大することができます。
また、モジュールバッファは、内臓クロックおよびデータの再生成も提供できます。信号が伝搬されるメモリバスの距離が長くなるにつれて、信号は減衰します。また、信号の減衰が大きくなりすぎると、送信される情報が失われる危険もあります。モジュールバッファは、減衰したクロック信号とデータ信号を元の信号レベルまで増幅し、メモリバス上のシグナルインテグリティを向上させます。

モジュールバッファを使用すると、モジュールバッファ間を接続するバス(メモリバス)と、モジュール上の DRAM とモジュールバッファ間を接続するバス(モジュールバス)に対して、異なるバス幅を利用できるようになります。ピン数を減らし、ルーティングの複雑さの軽減、マザーボードのルーティング空間の節約を実現するために、メモリバスの幅がモジュールバスよりも狭くなっている場合があります。このようなシステムでは、メモリバスのバンド幅をモジュールのバンド幅と同じにするか、またはそれ以上にすることが望ましいわけです。つまり、メモリバスをモジュールバス以上の周波数で動作させることが望ましくなります。バンド幅と動作周波数が異なる2本のバス間の情報の流れを管理するため、モジュールバッファは、シリアルからパラレルへ、またパラレルからシリアルへ、効率的に変換できなければなりません。
メリット
モジュールバッファを用いてメモリバス上の容量性負荷を軽減し、DRAM を電気的に分離することにより、バス速度を上げることが可能になり、メモリバスとモジュールバスの両方において、ピンあたりの信号速度とバスバンド幅の高速化を実現できます。これにより、バッファードモジュールは、以下のようなさまざまなメリットをもたらします。
- エンドユーザー: メモリバスから DRAM を電気的に分離することにより、容量性負荷が減少します。容量性負荷を減らすことにより、メモリバスとモジュールバスの両方でバス速度が高速になり、システム性能が向上します。また、バッファードモジュールにより、高速なメモリバス速度で動作する大容量メモリシステムを構築することもできます。これは高性能なサーバを実現するために欠かせない組み合わせとなります。
- コントローラおよびボードの設計者: ピンあたりの転送速度を増加することで、コントローラ設計者はバッファードモジュールを用いて I/O ピン数を減らすことができ、パッケージコスト、コンポーネント数、ルーティングエリア、およびルーティングの複雑さを削減することができます。
- モジュールメーカー: モジュールバスから電気的にメモリバスを分離することで、モジュールバスの長さを短くすることができます。 このようなバスはコネクタと交差する必要がなくなるため、モジュール上のシグナルインテグリティが向上します。
