インテグリティな技術コラム(9) ―― メモリ・モジュールのクロック分配
●DDR3は芋づる(フライ・バイ)方式へ
トーナメント方式によるDIMM(Dual Inline Memory Module)へのクロックの分配はDDR2までで,さらに高速化されたDDR3ではついに本方式は破たんし,図8に示す芋づるによるクロック供給に変更されました.この方式はDirect Rambusで採用された手法で,これにならって「フライ・バイ方式」と呼ばれています.航空機の制御が,従来の油圧アクチュエータを介していた方式から電線により伝達される方式に切り替わった際に,フライ・バイ・ワイヤ(Fly-by-wire)と呼ばれたものに似ているからフライ・バイ方式と言われているのではないかと想像します.ちなみに車の場合は,ドライブ・バイ・ワイヤというそうです.
本方式は,一見,データ・バスと同じように見えますが,クロックの場合,メモリ側は常にレシーバのみなので,負荷が軽くなります.また,データの場合と異なり,「信号のデューティ比が変化しない」,「周波数が単一」という点がデータ・バスよりも有利です.ただし,トーナメント方式は基本的にスキューが0(ゼロ)でしたが,フライ・バイ方式では,配線遅延による固定の時間のズレを考慮したタイミング設計を行う必要があります.
●20年前の野辺山天文台のA-D変換ボードで採用
実は,この芋づる方式は,筆者が20数年前に,野辺山天文台向けに320Mサンプル/sのA-D変換ボードを開発した際に使用した経験があったので,感慨深いものがあります.
当時の世界最高速のA-Dコンバータは40Mサンプル/s程度でした.天文台からの要求は,3ビットでいいから320Mサンプル/sにして欲しいというものでした.台数が少ないので,LSI化することは考えられません.そこで,個別のICを用いて,ボード上でA-Dコンバータの機能を実現することを考えました.
当時,たぶん世界最高速だったECL(Emitter Coupled Logic)の中に,差動入力を有するICがあったので,それをコンパレータとして使うことにしました.そこまではよかったのですが,クロックの分配に困りました.320Mサンプル/sで±1/2 LSBの精度に抑えるためには,スキューを±60ps程度に抑えなければなりません.しかし当時の技術では,この実現は困難でした.
そこで考え出したのが,クロックを芋づるで配る方式でした.当時は,分布定数型クロック分配方式と名付けていました.当然,配線による遅延が生じますが,固定値なので,出力の配線をクロック遅延に相当する分だけ短くして,最終的に同じタイミングで取り込むようにしました.
このとき,配線パターンを直角に曲げると,その曲がり角でわずかな反射が生じるため,45度程度の角度で緩やかに曲げる必要があることも分かりました.今では,配線を曲げる際の45度ルールは一般的です.この配線はアナログ信号のデータだったので,ロジック(ディジタル)では問題なかったわずかな反射が周波数解析で見つかったわけです.
なお,この方式を使ったA-D変換ボードは,ほんの数年前まで現役で動いていたそうです.
うすい・ゆうぞう
シグナル インテグリティ コンサルタント
http://home.wondernet.ne.jp/~usuiy/