本記事は、日経WinPC2012年12月号に掲載した連載「PC技術興亡史」を再掲したものです。社名や肩書などは掲載時のものです。

 DRAMはプラットフォームに応じて進化してきた。そこでプラットフォームの変化を紹介しよう。初代のIBM PCはCPUが8088(8086の外部バス8ビット版)で、動作周波数は4.77MHzと遅かった。この世代だと、DRAMも8ビット幅、4.77MHzの拡張バスを通してアクセスした(図1)。少なくとも性能の点では拡張バスにDRAMを接続しても何の問題も無かった。ちなみに基板上には64KB分のDRAMを搭載しており、これより大量のメモリーを利用する(IBM PCは最大256KBまで搭載できた)場合はメモリーボードを拡張スロットに装着した(図2)。この頃はまだ64KビットのDRAMは普及しておらず、16KビットDRAMを使った製品がほとんどだった。64KビットのDRAMが高価で入手が難しかったこともあるが、当時はまだ大容量メモリーへのニーズが少なかった。

図1 CPUのデータバスが直接、拡張スロットに接続している。メモリー専用のバスは存在せず、周辺機器と同じようにメモリーもデータバスに接続する。このため、メモリーを増設する場合は拡張スロットに装着することになる。
図2 手前左側にメモリーが大量に並べられている。1行に8個+1個の構成になっていて、1個をパリティ用に使っている。当時のビジネス用途を意識した16ビットPCでは大型コンピューターなどと同じように、ワードの中に修正用のパリティビットを付けていることが多かった。

 この状態は1984年に登場したIBM PCATでも続いた。CPUは80286、拡張バスは16ビット化されたが、動作周波数は6MHzないし8MHzで、ATバスの速度も当然これに合わせた。PC ATもCPUがそのまま拡張バスであるISAバスに直接接続されており、DRAMもこのISAバスに直結されていた(図3)。IBM PC ATでは512KBのDRAMをマザーボードに搭載しており、これを超える分はISAスロットに装着するメモリーボードで増設する。この頃にはDRAMも64Kビット品が出回るようになった。

図3 IBM PC ATになってバス幅は16ビットに拡張されたが、本質的な構造はIBM PCとあまり変わらない。CPUのデータバスに直接、メモリーや拡張スロットを接続する。周辺機器やメモリーが同じバスを共有する。

 こんな具合にDRAMを拡張バス経由で装着するパターンが崩れたのは、CPUの高性能化に起因する。80286は当初こそ8MHz程度の動作周波数だったが、最終的には12MHzまで動作周波数が上がった。さらに互換品は最高25MHzまで達した。これに続き、非IBM製のAT互換機が80386を搭載するようになった。

 ここで、プラットフォームの変革が必要になってきた。理由は2つある。一つはCPUの動作周波数に合わせて、拡張バスの速度を引き上げるのが難しくなったこと。IBMはISAバスの後継として、高速な拡張バス「マイクロチャネル・アーキテクチャ(MCA)」を開発したが、この仕様を特許で守り、高額なライセンス料を要求した。その結果採用したPCメーカーはほとんどなかった。一方、互換機メーカーはこれに対抗してISAバスとの互換性を重視した「EISA」を策定したものの、信号速度を8MHzにすえ置いたため、CPUの速度向上には追いつけなかった。もう一つの理由は、DRAMのアクセス速度もCPUほど性能が上がらなかったことだ。DRAMを拡張バス側に接続していると性能面で十分ではなくなった。

 結果、必然的にCPUバスと拡張バスを分離する必要性が出てきた(図4)。CPUに直接つながるバスはCPUバスと呼ばれ、ここにI/Oブリッジ(CPUバスと拡張バスを双方向でつなぐもの)とメモリーコントローラーを接続する。拡張スロットや周辺回路は拡張バスの先に接続される形だ。この後、CPUバスはFSB(Front Side Bus)と呼ばれるようになり、I/Oブリッジとメモリーコントローラーを一体化したものを「ノースブリッジ」、拡張バスの先に接続する周辺回路を一体化したものを「サウスブリッジ」と呼ぶようになる。

図4 CPU性能が上がった一方で、メモリーの動作性能はそれほど上がらなかった。このためCPUバスを直接入出力やメモリーに割り当てると、遅い機器がCPU性能の足を引っ張ってしまう。そこでCPUバスからI/Oブリッジやメモリーコントローラーを介して接続するようにして、CPU性能を生かしつつメモリーや周辺機器も接続できるようにした。