メモリバスを高速化する理由
ボトルネックとなるFSB
さて、925X、および915P/915GチップセットではデュアルチャネルのDDR2-533をサポートすることでメモリ帯域を8.53GB/秒(デュアルチャネルDDR400では6.4GB/秒)に拡張した。これまでと異なる規格を採用してまでメモリ帯域を拡張する理由は何か。それはCPUが計算に使う命令もデータも、メモリから読み込むためである。いくらCPUが高速化し速く計算できるようになってもデータや命令が到達しなければ、CPUは待っているしかない。CPUが高速化する以上、メモリバスもそれに合わせて高速化していく必要があるわけだ。
●図2 ボトルネックとなるFSB
![]() |
---|
925X、915P/915Gではデュアルチャネルメモリ帯域は8.53GB/秒へと向上したが、FSBは6.4GB/秒のまま。FSBがボトルネックとなって、メモリバスの高速化を生かしきれていない。 |
ところが、Pentium 4システムでは、メモリとの間にチップセット(ノースブリッジ)を挟む。つまり、Intelアーキテクチャでいう「メモリバス」とはメモリとノースブリッジの間に過ぎない。実際にCPUとメモリの間で高速にデータをやりとりするためには、CPUとノースブリッジの間(FSB)も同じように高速化しなければならない。Intelもこれまでは基本的にFSBとメモリバスはセットで高速化してきたのだが、今回はメモリバスだけが先行して拡張され、FSBの帯域は6.4GB/秒のままだ。そのためDDR2-533を使ってもDDR400からの高速化はあまり期待できない(図2)。
グレード (1クロックあたりの時間) | リードレイテンシ(クロック) | ||
---|---|---|---|
3 | 4 | 5 | |
DDR400/DDR2-400(5ns) | 15ns | 20ns | 25ns |
DDR2-533(3.75ns) | 11.25ns | 15ns | 18.75ns |
DDR2-677(3ns) | 9ns | 12ns | 15ns |
DDR2-800(2.5ns) | 7.5ns | 10ns | 12.5ns |
なお、925Xは、915P/Gにはないメモリアクセス最適化技術が導入されている。875PのPATのように分かりやすい名前が与えられておらず、仕組みも異なるようだが、「メンテナンスコマンドを送ることでメモリアクセスを最適化する」という以外に十分な仕組みの説明がなされていない。マザーボードメーカー側にコピーされないための対策だとも言われている。
●3-3-3、4-4-4とは?
メモリのレイテンシのスペックはよく「4-4-4」「3-3-3」などと表記される。内訳はtCAS(CASレイテンシ)-tRCD(RAS to CASディレイ)-tRP(RASプリチャージタイム)。CASレイテンシのみを「CL=3」などと表記する場合も多い。
DDR/DDR2を含むSDRAM系のメモリでは、コマンドバスにACTコマンドを出してメモリのバンク(メモリの全領域をいくつかに分割したうちの一区画)と行アドレスを指定し、一定時間(これがRAS to CASディレイ)待った後に、列アドレスを指定するリードコマンドを出して、データを読み出す。このリードコマンドを出してから実際にデータが出力されるまでの時間がCASレイテンシである。
また、一度指定して読み出したメモリのバンクのデータは消えてしまうので、データを書き戻してやる必要がある。それが「プリチャージ」という作業で、RASプリチャージタイムは、プリチャージ(PRE)コマンドを出してから実際にプリチャージが完了するまでの時間だ。
なお、3-3-3の後に3-3-3-8などとして表記されることがあるtRAS(RASプリチャージディレイ、またはアクティブトゥプリチャージディレイ)は、ACTコマンドを出してからプリチャージコマンドを出せるまでの最短時間。ACTコマンドを出してからもう一度同じバンクに対して次のACTコマンドを出すまでには「tRAS」と「tRP」の合計時間待つ必要があるが、連続したアドレスを別バンクに割り振ることでプリチャージ時間の遅延を隠蔽するしくみ(バンクインターリーブ)によってカバーされている。
