このページの本文へ

前へ 1 2 3 次へ

ロードマップでわかる!当世プロセッサー事情 第98回

メモリーの大容量化を支える技術 Registered DIMM

2011年04月25日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/

  • この記事をはてなブックマークに追加
  • 本文印刷

 今回は前回に引き続き、メモリーに使われる技術について解説したい。まずは「Registered DIMM」について解説しよう。

メモリーチップやパリティを追加しても安定動作
Registered DIMMの仕組み

 例えばサーバー向け用途の場合、「マルチバンクのメモリーを多数実装したい」というニーズは多い。サーバー向けのアプリケーション(例えばデータベースなど)の場合、メモリーの速度やレイテンシのわずかな差よりも、とにかくメモリーの搭載量がそのまま性能に直結しがちだ。そのため「積めるだけ積みたい」というニーズが多く、これに対応する必要がある。

 ここで問題となるのは、既存のDIMMを複数枚装着した場合の、信号ラインの負荷である。図1は3枚の「Non Parity 1-Bank DIMM」を装着したケースを想定したものだ。ひとつのメモリーチップが8bit分のデータ幅をサポートするので、8個のチップで64bitになる。

図1 Non Parity 1-Bank DIMM(Unbuffered DIMM)での信号ライン

 図の「D0」~「D63」はデータバスで、3枚のDIMMを装着すると1本の信号ラインに3個のメモリーチップがぶら下がる計算になる。この程度ならそれほど問題はない。これが2バンクに増えると6個がぶら下がることになるが、それでもまだ問題にはならない。問題なのは、赤で示した「Address/Command」線の方だ。

 Address/Command線はひとつのDIMMの中でさらに分岐するので、図1のケースでは8×3=24個のメモリーチップに信号を渡す必要がある。これがパリティ付の場合は27個に増えるし、それが2バンク構成だと54個にもなる。Address/Command線が駆動すべきメモリーチップの数は、データバスに比べて猛烈に多いわけだ。

 その結果として、1枚や2枚のDIMMなら動くが、3~4枚やマルチバンクタイプのDIMMを利用するケースなどで動作がおかしくなる、という現象が生じることになった。

 これに対する解決策が、「DIMM上にレジスター(バッファ)を置き、ここで信号を整えてやる」というアイデアだ。図2のように、DIMM上に小さなレジスターを置き、Address/Commandの信号をいったんここで受ける。そしてレジスターから各メモリーチップに分配する。これにより、Address/Commandの信号はDIMMあたり1個のレジスターのみを駆動すればいいので、データバスと同じ条件になるわけだ。

図2 Registered DIMMでの信号ライン。DIMM上にある赤い四角がレジスター

 このレジスターを搭載したタイプのDIMMを「Registered DIMM」、逆に搭載しないDIMMを「Unbuffered DIMM」と呼ぶ。Registered DIMMではパリティの有無やバンクの有無も、バッファから先の問題になる。そのためAddress/Command線もデータバスと同じ条件になり、バンクの増加やパリティの影響も受けなくなった。むしろデータバスはバンクの数に合わせて駆動するメモリーチップの数が増えるのに対し、Address/Commandはレジスターがまとめるおかげで数が増えない。だからバンクに関しては、Registered DIMMの方が有利になっているとも言える(図3)。

図3 マルチバンクでのUnbuffered DIMM(左)とRegistered DIMM(右)の信号ラインの違い。赤線がAddress/Command線で青線はデータバス

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン