システムバス

システムバス英語: system bus)は、情報を運ぶためのデータバス英語版、送信先を決定するためのアドレスバス、動作を決定するためのコントロールバス英語版の3種類のバスの機能を単一のバスで実現したものである。この技術は、コスト削減とモジュール性の向上のために開発され、1970年代から1980年代かけて主流となったが、現代のコンピュータでは用途ごとに別のバスを使用している。

システムバスの概念図

背景

現代のコンピュータのほとんどは、1945年に発表されたEDVACに関する報告書の第一草稿に基づいて設計されている。この報告書に基づくコンピュータ(一般にノイマン型と呼ばれる)は、中央制御装置と演算論理装置(ALU。報告書では中央演算部〈central arithmetic part〉と呼ばれる)をメモリ入出力装置と組み合わせて、プログラム内蔵型コンピュータを構成する[1]。この報告書では、コンピュータの一般的な構成と理論モデルは示されたが、そのモデルの実装は示されなかった[2]。やがて、制御装置とALUが統合されて、中央処理装置(CPU)となった。

1950年代から1960年代にかけてのコンピュータは、一般的にアドホックな方法で構築されていた。例えば、当時のコンピュータにおけるCPU、メモリ、入出力装置は、それぞれが1つまたは複数個に別れた筐体に格納されており、ケーブルで接続されていた。当時のエンジニアは、プリント基板を相互接続するためのバックプレーンの概念を拡張する形で、このケーブルの束の規格を標準化した。「バス」(bus)という名称は、初期の機械式計算機を含む電気機械の各部に電力を運ぶ「バスバー」(bus bar)としてすでに使用されていた[3]集積回路(IC)の出現により、コンピュータの各ユニットが大幅に小さくなり、バスはさらに標準化された[4]。標準化されたモジュールは、より均一な方法で相互接続することができ、開発や保守が容易になった。

概要

低コスト化とモジュール性のために、メモリバス英語版、入出力バス、コントロールバス英語版、電源バスが1つの統一された「システムバス」にまとめられるようになった[5]。コンピュータが単一の筐体に収まるほど小さくなるにつれ、モジュール性と低コスト化が重要になってきた(そして、顧客も低価格化を期待していた)。デジタル・イクイップメント・コーポレーション(DEC)は、大量生産によりミニコンピュータのコストをさらに削減し、メモリバスにメモリマップドI/Oを搭載して、入出力装置とメモリが同一のアドレス空間上に見えるようにした。これは1969年頃のPDP-11Unibusとして実装されたもので、I/Oバスを別に用意する必要がなくなった[6]。PDP-8のようなメモリマップドI/Oを持たないコンピュータでも、すぐにシステムバスが実装され、モジュールを任意のスロットに差し込むことができるようになった[7]。一部の著者は、これをコンピュータアーキテクチャの新しい合理化されたモデルと呼んだ[8]

一般的に単一の集積回路上にCPUを搭載している初期のマイクロコンピュータの多くは、1975年頃のAltair 8800S-100バスを皮切りに、単一のシステムバスを使用して構築された[9]IBM PCは、1981年にIndustry Standard Architecture(ISA)バスをシステムバスとして使用した。初期モデルにおけるパッシブバックプレーンは、CPUとRAMをマザーボード上に配置し、システムバススロットにオプションの拡張カードのみを配置するという標準に置き換えられた。

システムバスを使用した単純な対称型マルチプロセッシング

1983年にマルチバスがIEEE 796として規格化された[10]サン・マイクロシステムズは1989年に、より小型の拡張カードに対応するSBusを開発した[11]対称型マルチプロセッシングを実装する最も簡単な方法は、2つ以上のCPUを共有システムバスに接続することであり、1980年代まで使用されていた。しかし、共有バスはすぐにボトルネックとなり、より洗練された接続技術が模索された[12]

デュアルインディペンデントバス

CPU設計が、より高速な内部バスとより低速なペリフェラルバスを使用するように進化したことにより、インテルは、メインシステムメモリとの間の外部フロントサイドバスと、1つまたは複数のCPUとCPUキャッシュとの間の内部バックサイドバス英語版を使用する、デュアルインディペンデントバス (Dual Independent Bus, DIB) という言葉を使用するようになった。これは、1990年代半ばから後半にかけてPentium ProPentium IIに導入された[13]。CPUがメインメモリや入出力装置との間でデータ通信するためのプライマリバスをフロントサイドバスと呼び、バックサイドバスは2次キャッシュにアクセスする。

現代のPCやサーバでは、HyperTransportインテル QuickPath インターコネクトなどの高性能な相互接続技術が使用されているが、よりシンプルな組み込みマイクロプロセッサではシステムバス・アーキテクチャが使用され続けている。システムバスを単一の集積回路の内部に内蔵することにより、System-on-a-chipを実現することもできる。その例として、AMBA英語版CoreConnect英語版Wishbone英語版などがある[14]

脚注

関連項目