第5回 PCの大動脈、内部バスと外部バス
今回はCPUに直結する周辺のバスについてのお話しです。
CPUに内蔵または直結するバスと、外部バスと呼ばれるCPUとチップセットを結ぶFSB(フロントサイドバス)やメモリを結ぶメモリバスは、PC全体の性能を左右する重要な役目を担っています。チップセットとメモリの話を含めて外部バスのはたらきを解説します。
CPUと4本のバス
CPUのカタログに載っていない重要かつ基本的なバスがあります。CPUの内部バスとアドレスバス、データバス、コントロールバスの4本です。内部バス以外はFSBとしてチップセット(ノースブリッジ)に接続され、そこからさらにメインメモリに接続されています。FSBやメモリバスの説明の前に、これらのバスについて触れます。
内部バス
CPU内部で各種レジスタや制御ユニットなどの、回路や機能ブロックを結ぶ伝送路です。内部のキャッシュメモリとも接続されていますので、超高速で動作します。CPUの性能を左右する重要なバスですが、CPU内部なので、私たちが目にすることはありません。
x86系CPUはi386以降Pentium4にいたるまで、32ビット幅の内部バスを搭載しています。そして、Itaniumはすでに64ビット幅の内部バスを搭載しており、内部バスも64ビットの時代になっています。
アドレスバスとアドレス空間
アドレスバスはCPU内部のアドレスレジスタとチップセットを結んでいます。CPUが読み書きする命令やデータ、I/Oアドレスを指定するためのバスです。このアドレスバス幅が広いほどより多くのアドレスを管理することができます。この管理できるアドレスの範囲をアドレス空間と呼んでいます。
主なCPUのアドレスバスとアドレス空間 |
|
32ビット |
64ビット |
CPU |
Pentium |
Pentium2/3 |
Athlon |
Pentium4 |
Opteron |
アドレスバス幅 |
32ビット |
36ビット |
43ビット |
40ビット |
40ビット |
アドレス空間 |
4GB |
64GB |
8TB |
1TB |
1TB |
|
CPUはメモリだけでなく、周辺装置とも入出力や制御のやりとりをしますので、I/O(入出力装置)にもアドレスが振られています。かつては、メモリのアドレスとI/Oのアドレスを別々のアドレス空間として扱っていましたが、今日ではメモリとI/Oを区別せず、ひとつのアドレス空間として使う方法が主流です。アドレスバス幅が広くなり、十分に広いアドレス空間を扱えるようになり、しくみが単純で、CPUの高速動作に向いているためと考えられます。
この方法を、「メモリマップト I/O (memory mapped I/O)」といいます。これに対して、前者を「I/O マップト I/O (I/O mapped I/O)」といいます。
データバスとFSBの帯域
データバスは、CPUの内部バスとチップセット(ノースブリッジ)を結んでいます。CPUがアドレスバスで指定したアドレスに対して、読み書きするデータや命令をやりとりするためのバスです。
主なCPUのデータバス幅 |
|
32ビット |
64ビット |
CPU |
Pentium |
Pentium2/3 |
Athlon |
Pentium4 |
Opteron |
データバス幅 |
64ビット |
64ビット |
32ビット |
64ビット |
64ビット |
帯域(※1) |
528MB/sec |
1.06GB/sec |
2.13GB/sec |
8.5GB/sec |
6.4GB/sec |
|
※1:帯域は、各CPUシリーズ中の最速のバスクロックと動作周波数で計算したものです。 |
データバスの幅とバスクロックはPC全体の性能に大きく影響します。
FSB(Front Side Bus:フロントサイドバス)の帯域がデータバス幅とバスクロックで決まるからです。帯域が広くなればなるほど高速にデータのやりとりができます。Pentium 3まではバスクロックが最高133MHzでバス幅が64ビットでしたから、帯域は1.06GB/sec(ギガバイト/秒)でしたが、Pentium4でバスクロックが400MHzになり、帯域は3.2GB/sec(ギガバイト/秒)にまで広がりました。現在、バスクロックは1.06GHzのCPUが登場しており、さらなる広帯域化が進んでいます。
コントロールバス
コントロールバスは、CPUの制御ユニットとチップセットを結んでいます。バス幅は4ビット以上。アドレスバスで指定したメモリやI/Oに対して、読み込む、書き込む、待つ、などの制御信号を送ります。
FSBとチップセット
FSBはCPUとチップセットを結ぶ重要なバスで、CPUの内部バスに対して、メモリバスとともに外部バスと呼ばれています。前項で説明したバスのうちCPUの内部バス以外は、すべてFSBの中にそれぞれの信号線が含まれています。FSBとは何か、どんなはたらきをするか、チップセットとはどのような関係があるのか調べてみましょう。
システムバス
FSBと紛らわしいので最初に説明しておきます。システムバスの定義としては、「CPUとメインメモリ、CPUとチップセットを結ぶバスのこと」とするものが多いようです。つまり、FSBとメモリバスをひとまとめにしたバスの名称ということになります。
PentiumやPentium 2ではCPUとチップセット間、CPUとメインメモリ間は同じバスクロックで動作していました。その場合、FSB=メモリバス=システムバスで問題ありませんでした。ところが、i810チップセットの登場以来、FSB、メモリバスが異なるバスクロックで動作するようになりました。しかも、FSBやメモリバスのバスクロックや帯域は、PCの性能を示す重要な指標となっています。そうなると、システムバスとしてひとまとめに性能を表すことはできなくなり、システムバスという言葉が意味を持たなくなってしまいました。
ただし、FSB=システムバスと定義するところも少なくありません。また、意味を曖昧にして用語として便利に使われているような場合もあります。システムバスといわれた場合、どの範囲をシステムバスととらえているか注意しなくてはなりません。
フロントサイドとバックサイド
Front Side Busに対して、Back Side Bus(バックサイドバス)も存在していました。現在では2次キャッシュはダイに内蔵されていますが、Pentium ProやPentium2では、2次キャッシュとしてSRAMなどをCPUのすぐ近くに設置できるようになっていました。このとき2次キャッシュ専用のバスが用意され、これをBack Side Busと呼んでいました。これに対し、従来からのバスをFront Side Busと呼ぶようになりました。
Pentiumでは、CPUコアをバスクロックの数倍という高いクロックで高速に動作させていますが、2次キャッシュをメインメモリと同じバス上に置いたのでは、バスクロックのタイミングでしか2次キャッシュにアクセスできません。そこで、2次キャッシュ専用のバス(Back Side Bus)を独立させることによって、コアクロックの半分のスピード(Pentium2)で、CPUコアと同クロック(Pentium ProやXeon、2次キャッシュ付きのCeleron)で、高速にアクセスできるようにしていたのです。その後、2次キャッシュはCPUのダイに内蔵されて内部バスで接続されるようになり、Back Side Busは姿を消し、Front Side Busの名前だけが残りました。
FSBのはたらき
FSBのはたらきは、このバスを経由するすべての信号を最高速で伝送することにつきます。
FSBは、データバス、アドレスバス、コントロールバス他で構成されます。したがってメインメモリの読み書き、周辺機器や拡張スロットの制御や入出力など、PCを動作させるためのすべての信号がこのFSBを経由します。そのためFSBの帯域不足はPC全体の性能を低下させることになります。
FSB自体は、マザーボード上のバスの中では最も高速となっており、2006年8月現在、1.06GHzに達しています。データバス幅は、Pentium以降、64ビットが普通になっており、最大6.4GB/secの広帯域を実現しています。
しかし、なおFSBの帯域不足への懸念は消えません。動作クロックの高速化で、徐々に処理能力を向上させてきたCPUは、マルチコア化、64ビット化でいっきに処理能力を倍近くにまで高めており、コア数はさらに増える方向に進んでいます。
一方、メモリも性能を向上させており、DDR2-800(PC-6400)では、メモリバスクロック400MHzで最大値6.4GB/secの帯域を実現しています。Pentium3から飛躍的に広帯域化を実現し、最大6.4GB/secに達したFSBも、すでにボトルネックになる可能性が出てきています。
チップセット、ノースブリッジとサウスブリッジ
FSBはCPUとチップセットを結んでいます。チップセットとは、CPUとメインメモリ、周辺装置などの間で発生するデータの受け渡しを管理するLSIのことをいいます。CPUから出る信号はすべてFSBを経由してチップセットに送り込まれます。CPUに入力される信号もすべてFSB経由でチップセットから送り込まれます。
チップセットは、超高速で動作するCPUと、その何分の一かの速度で動作しているバスやメモリ、ビデオカード、さらに低速で動作している入出力機器との間のデータのやりとりを調整しています。CPUが高速になれば、それにつれてメモリやバス、周辺装置も同様に高速にすればよいのですが、CPUが変わるたびに周辺装置が変わるのでは、経済的でありませんし、現実的ではありません。キーボードやマウス、サウンドカードのようにもともと高速な動作を必要としない周辺機器もあります。そこで、チップセットが、超高速な動作をするもの、高速なもの、低速なものを結びつける一種のバッファとなって、速度やタイミングを調整し、スムーズなデータのやりとりを実現しています。
通常、チップセットはノースブリッジとサウスブリッジの2つのチップ(※2)で構成されます。ノースブリッジはCPU、メインメモリ、ビデオカードを接続するPCI Express、FSBなど動作クロックの高速なデバイスを担当します。サウスブリッジは、ハードディスクインターフェースやUSBコントローラ、PS/2、拡張用のPCIスロットやPCI Expressスロットなど比較的動作クロックの低速なデバイスを担当します。
ノースブリッジとサウスブリッジの間は、かつてPCIバスで接続されていましたが、最大133MB/secという転送速度がボトルネックになっていました。このボトルネックを解消するため、チップセットメーカーは、それぞれ独自のバスでチップセットどうしを接続するようになりました。こうしたバスをプライベートバス(※3)といいます。
※2: Intel社では、ノースブリッジをMCH(Memory Control Hub)、サウスブリッジをICH(Interface Control Hub)と呼び、NVIDIA社では、同じくIGP(Integrated Graphics Processor)、MCP(Media and Communications Processor)と呼んでいます。
※3: 代表的なものに、Intel社のハブ・アーキテクチャ(266Mbps)、AMD社のHyper Transport、VIAテクノロジーズのV-Link(266Mbpsまたは533Mbps)、シリコン・インテグレーテッド・システムズ(SiS)のMuTIOL(533Mbps以上)などがあります。
メモリバスとメインメモリ
もう一つの外部バスが、メモリバスです。CPUとメインメモリは、FSBとチップセット、そしてこのメモリバスを経由して接続されます。(※4)
メモリはDDR-SDRAM以降、順次規格が更新され、大容量・高速化しています。ここではメモリバスとFSBの帯域の釣り合い、メモリの規格、新しい時代のメモリモジュールFB-DIMMに触れます。
※4:直接、CPUとメインメモリが接続されるものもあります。
メモリバスとFSB
CPUが最も頻繁にアクセスするのがメインメモリです。そのときにデータ転送を担うのがメモリバスです。チップセット(ノースブリッジ)とメモリモジュールを結びます。
メモリ側から見ると、FSBがメモリバスの帯域よりも広くないと、メモリの性能をフルに発揮することができません。例えば、DDR2-800を、メモリの動作クロックの規格通りに400MHzで動作させると、帯域は6.4GB/secとなります。Pentiumのように64ビットのデータバス幅があっても、FSBが533MHzの場合には帯域は4.3GHzでしかなく、メモリは時間をもてあますことになります。この場合、少なくとも、FSBは800MHz以上でないとDDR2-800はもったいないということになります。なお、DDR(Double Data Rate:ダブルデータレート)は、動作クロックの倍速でデータにアクセスします。したがって、表記は800であっても、2分の1の400MHzが規格通りの動作クロックとなります。
また、2枚のメモリモジュールを仮想的に1枚のモジュールと見なして、データの転送速度を倍増させる「デュアルチャンネル」という動作方法があります。この場合、チップセットが対応していること、同じ仕様のメモリモジュールを使用することなどの制限はありますが、比較的安価なメモリでも高速化できるメリットがあります。例えば、DDR2-533、2枚をデュアルチャンネル動作で使用すると、帯域は8.5GB/secに及び、FSB1.06GHzのCPUでないとこのデュアルチャンネル動作は性能をフルに発揮することはできません。
DDR3規格のメモリも2007年初頭に予定されており、メモリは大容量化とともに高速化も進んでいます。
いろいろなメモリ
メモリの選択にあたって困るのが、種類が多いこと、規格の表記が解りにくいことです。
本講座の基礎編でも説明した内容を少しおさらいしておきましょう。
下の表はメモリの種類です。現在使用されている種類に限定しました。
なお、「DDR」、「DDR2」、「DDR3」の間には互換性はありません。
名称 |
特長 |
SDRAM (Synchronous DRAM) |
バスクロックに同期してデータにアクセスするDRAMです。モジュールの型番に、PC100(100MHz)、PC133(133MHz)というようにバスクロックを表す数字がついている。 |
DDR-SDRAM (Double Data Rate SDRAM) |
SD-RAMを用いて、バスクロックの立ち上がりと立ち下がりの両方でデータにアクセスして倍のデータ転送を実現した。
動作電圧2.5V、プリフェッチサイズ(※5)2ビット。
|
DDR2 SDRAM (Double Data Rate 2 SDRAM) |
DDR-SDRAMを高速化したもの。DDR-SDRAMよりも低消費電力を実現している。現在、こちらが主流。動作電圧1.8V、プリフェッチサイズ(※5)4ビット。 |
DDR3 SDRAM (Double Data Rate 3 SDRAM) |
DDR-SDRAMの内部構造を変更して、DDR2-SDRAMよりも高速化したもの。現在は一部のビデオボード用のメモリとして利用されている。
動作電圧1.5V、プリフェッチサイズ(※5)8ビット。 |
|
※5:プリフェッチ:CPUがデータを必要とする前にメモリから先読みして取り出す機能。 |
「DDR」、「DDR2」、「DDR3」のラインナップ
メモリの選択にあたっては、PC○○○というモジュール規格だけでなく、DDRかDDR2かのメモリチップ規格も合わないと、メモリスロットに装着できません。
モジュール規格 |
チップ規格 |
動作クロック |
帯域 |
PC2100 |
DDR 266 |
266 |
2.1GB/sec |
PC2700 |
DDR 333 |
333 |
2.7GB/sec |
PC3200 |
DDR 400 |
400 |
3.2GB/sec |
PC1600 |
DDR2-200 |
100 |
1.6GB/sec |
PC2100 |
DDR2-266 |
133 |
2.1GB/sec |
PC2700 |
DDR2-333 |
166 |
2.7GB/sec |
PC3200 |
DDR2-400 |
200 |
3.2GB/sec |
PC4300 |
DDR2-533 |
266 |
4.3GB/sec |
PC5400 |
DDR2-667 |
333 |
5.4GB/sec |
PC6400 |
DDR2-800 |
400 |
6.4GB/sec |
|
DDR3-800(※6) |
400 |
6.4GB/sec |
|
DDR3-1067(※6) |
533 |
8.6GB/sec |
|
DDR3-1333(※6) |
660 |
10.8GB/sec |
|
DDR3-1600(※6) |
800 |
12.8GB/sec |
|
※6:DDR3-800〜DDR3-1600は、2007年初頭に発売予定です。 |
これからのメモリ、FB-DIMM(Fully-Buffered DIMM)
DDR2メモリのモジュールは現状のままで、メモリバスを高速化していくと、前回説明した立ち上がり・立ち下がりの遅延、オーバーシュートやアンダーシュートにより、波形が乱れて正しい伝送ができなくなる現象が出ます。高速化すればするほど、接続するモジュールの数が増えれば増えるほど現象は顕著になります。現状のメモリバスで、これを防ぐためには、バスクロックを遅くするか、モジュールの数を減らすしか方法はありません。つまり高速化をあきらめるか、大容量化をあきらめるかのどちらかになります。
このソリューションとして、注目を集めているのがFB-DIMMです。
FB-DIMMは、メモリモジュール上に、AMB(Advanced Memory Buffer)と呼ぶパラレル−シリアル変換LSIを搭載し、「DDR2」などの現行のDRAMを使いつつ、モジュール間をポイントトゥーポイントで結び、データをシリアル転送するしくみです。
FB-DIMMでは、送受信それぞれに一本ずつ専用の信号線を用意することで、読み出しと書き込みを同時に実行することができるようにしており、従来のメモリバスに対してデータ転送速度を最大で約2倍に上げることができます。
FB-DIMMが注目されていることで、考えておかなければならないのは、メモリバスも、バス配線からポイントトゥーポイント接続へ、パラレル転送からシリアル転送に移りつつあるということです。
CPUのマルチコア化や64ビット化が進めば、さらに広帯域、大容量化の要求が高まります。そうなると、FB-DIMMのようなメモリバスだけでなく、FSBにも同じような伝送路が求められるものと考えられます。
次回は、バスの3回目、拡張バスを解説します。
CPU編 |
|
|
|
|
|
|
|
|
バス編 |
|
|
第5回 PCの大動脈、内部バスと外部バス |
|
|
|
|
|
ディスク編 |
|
|
|
|
|
|
|
|
メディア編 |
|
|
|
|
|
|
|
|
All Rights Reserved, Copyright(C) FUJITSUファミリ会
|