回路上を伝わる信号の遅れがパソコンやPCサーバの高速化にとって大きな壁となっている。ギガを超えるクロック周波数の時代、CPUの高速化に見合った大量のデータを扱えることがシステム全体の高速・高性能化に直結する。
だが、32ビットや64ビットなどのPCIやAGP、そしてメモリなどで使われているパラレルデータ伝送の高速化はほぼ限界に近く、原理的にこれ以上の高速化はかなり困難な状況になっている。
これを乗り切り、さらなる高速化を行うには、シリアル伝送しかない。ハードディスクドライブは従来のATAがSerial ATAへ、PCIもPCI Expressへとシリアル化が進みつつある。さらに、2005年にはCPUとメモリの間のデータ伝送すらシリアル伝送によるFB-DIMM(Fully Buffered-DIMM)へと移行が始まろうとしているのは、まさにこういう理由だ。
本来なら、1度に複数のビットを同時にやりとりできるパラレル伝送のほうが、シリアル伝送より伝送効率や速度面でも高速なのは言うまでもない。
例えば、従来よりコンピュータの高速化、高性能化は、より大量のデータをより短時間に処理するため、一度に送るデータのビット数を増やす方向で進化してきた。
CPUの内部処理単位が8ビットから16ビット、32ビット、そして64ビットへと拡大していったのは、内部処理の単位を多くし、演算効率を高めると同時に、一度に入出力できるデータ量を増やすためだ。
同じ動作クロック周波数なら、同時に転送できるビット数が多いほど単位時間当たりのデータ伝送量も増え、高速化したことと同じ効果が得られる。さらに、動作クロック周波数を高くすれば、それだけ単位時間当たりの処理量が増える。
この典型がインテルのPentium以降のCPUで、内部32ビットのCPUでありながら外部とのやり取りを行うデータバスの幅は64ビットであった。そして、その動作クロック周波数は年々高くなり、また、外部バス(FSB)の動作クロック周波数もオリジナルPentiumの66MHzから最近のPentium 4では800MHz相当にまで上がっている。
今までの高速化は、巧妙な仕組みによってパラレルデータ伝送の限界を回避してきた。例えば、ATAは最大100〜133MHz(133MHzは一部で使われている独自インタフェース)、PCIは最大66MHz、PCI-Xが1スロット構成時のみ133MHzで動作している。
また、グラフィック用のAGPも基本クロックは66MHzで、x4やx8といったデータ伝送モードも、巧妙に複数の信号を交互にインタリーブして伝送することで最大133MHzを超えない範囲で動作している。
メモリも同様だ。FSB533のCPUでは、最大133MHzのクロックに同期してデータ転送を行うDDR2-SDRAMが使われている。つまり133MHz×4=533MHzだ。
最近のFSB800MHzの場合、FSB400MHz相当のデータチャネルを2系列持ち、交互に読み書きするインタリーブを行っている。それぞれの内訳は、100MHzのクロックに同期して読み書きするDDR2-SDRAMを組み合わせ、見かけ上は800MHzで動作しているかのように見える。つまり、基準となるクロック周波数は100MHzで、巧妙な仕組みによって高速アクセスできるように工夫されているわけだ。
しかし、これらの例を見れば分かるように、現状ではパラレルデータ伝送で使われる同期クロックの上限は100〜133MHzあたりにあることが推測できるだろう。実際、これは正しい。その理由をもう少し掘り下げてみよう。
パラレルデータ伝送では、32ビットあるいは64ビットなどのデータがすべて同時に送出され、受信側もすべてのビットのデータが同時に届くことを前提にしている。
だが、動作クロック周波数を高くしていくと、やがてビットをあらわす信号が常に同じ速度で回路中を伝わるわけではない……ということが無視できなくなってくる。実際、送信側から送られた信号が受信側に伝わるまでの時間は、配線の長さや形状その他の条件で変化する。
例えば32ビットなら32本の信号が受信側に伝わるまでに要する時間はすべて同じではないのだ。このように、信号が伝わる速度がビットごとに異なり、同時には届かなくなる現象をスキューと呼ぶ。
スキューの幅、すなわち最初に届いたビットと最後に届いたビットとの時間差は、現在のパソコンで使われる一般的な論理回路とプリント基板の組み合わせでは、常識的な配線長であっても数ナノ秒程度になるという。もちろん、動作クロック周波数が低ければこの程度の差は無視できる。
だが、100MHzクロックでの伝送になると無視できない。なぜなら、100MHzでの1回の伝送は10ナノ秒以下で行われるため、この数ナノ秒の遅れはマージン(余裕度)がほとんどない状態に等しいのだ。
配線の最大長を制限したり、すべてのデータ信号線の長さをできるだけ同じにする等長配線したりといったテクニックを駆使して影響を最小限に抑える必要がある。だが100MHzを超える高速なクロックになると、スキューによって正しくデータの送受信ができなくなる可能性が高い。クロック周期に対するスキューの影響が大きすぎるからだ。
つまり、クロックの高速化が100〜133MHzあたりが限度、という根拠はスキューの幅にある。スキューの影響を無視できなくなるクロック周波数は、インタフェースや配線の電気的条件によっても異なるが、パソコン内で起きている現象としては、以上の認識でほぼ正しい。
では、なぜスキューが起きるのか。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR