PCI の仕組み

数十年前にデスクトップ コンピュータが初めて開発されて以来、コンピュータ コンポーネントの能力と速度は着実に向上してきました。ソフトウェア メーカーは、プロセッサの速度とハード ドライブの容量における最新の進歩を活用できる新しいアプリケーションを作成します。一方、ハードウェア メーカーは、ハイエンド ソフトウェアの要求に応えるためにコンポーネントの改良と新しいテクノロジの設計を急いでいます。

ただし、見過ごされがちな要素が 1 つあります。それは、バスです。基本的に、バスはコンピュータ内のコンポーネント間のチャネルまたはパスです。高速バスを利用することは、自動車のトランスミッションが良好であることと同じくらい重要です。 700 馬力のエンジンと安価なトランスミッションを組み合わせた場合、そのパワーをすべて道路に伝えることはできません。バスにはいろいろな種類があります。

バスの概念は単純です。バスを使用すると、コンポーネントをコンピュータのプロセッサに接続できます。接続するコンポーネントには、ハードディスク、メモリ、サウンド システム、ビデオ システムなどが含まれます。たとえば、コンピュータが何をしているかを確認するには、通常、CRT またはLCD画面を使用します。画面を駆動するには特別なハードウェアが必要なので、画面はグラフィック カードによって駆動されます。グラフィックス カードは、バスに接続するように設計された小さなプリント基板です。グラフィックス カードは、コンピュータのバスを通信パスとして使用してプロセッサと通信します。

バスの利点は、部品の互換性が高いことです。より優れたグラフィックス カードを入手したい場合は、古いカードをバスから取り外し、新しいカードを差し込むだけです。コンピュータに 2 つのモニタが必要な場合は、2 つのグラフィックス カードをバスに接続します。等々。

この記事では、それらのバスのいくつかについて学びます。ここでは、Peripheral Component Interconnect (PCI) として知られるバスに焦点を当てます。 PCI とは何なのか、どのように動作し、どのように使用されるのかについて説明し、バス技術の将来について考察します。

システムバスと PCI バス

 PCI の仕組み

20 年か 30 年前、プロセッサは非常に遅かったので、プロセッサとバスは同期していました。バスはプロセッサと同じ速度で動作し、マシンには 1 つのバスがありました。現在、プロセッサーは非常に高速に動作するため、ほとんどのコンピューターには 2 つ以上のバスが搭載されています。各バスは特定の種類の交通に特化しています。

現在の一般的なデスクトップ PC には、次の 2 つのメイン バスがあります。

  • 2 つ目は、ハードディスクやサウンド カードなどと通信するための低速バスです。このタイプの非常に一般的なバスの 1 つは、PCI バスとして知られています。これらの低速バスはブリッジを介してシステム バスに接続します。ブリッジはコンピュータのチップセットの一部で交通警官として機能し、他のバスからシステム バスにデータを統合します。

厳密には他のバスもあります。たとえば、ユニバーサル シリアル バス ( USB ) は、カメラ、スキャナ、プリンタなどをコンピュータに接続する方法です。細いワイヤを使用してデバイスに接続し、多くのデバイスがそのワイヤを同時に共有できます。 Firewireもバスの 1 つで、現在は主にビデオ カメラや外付けハード ドライブに使用されています。

次に、PCI バスの歴史について学びます。

PCIの歴史

オリジナルの IBM PC (1982 年頃) のオリジナルの PC バスは 16 ビット幅で、4.77 MHz で動作していました。正式にはISAバスとして知られるようになりました。このバス設計は、最大 9 MBps (メガバイト/秒) 程度の速度でデータを渡すことができ、今日のアプリケーションの多くにとっても十分な速度です。

数年前、ISA バスはまだ多くのコンピュータで使用されていました。このバスは、1980 年代初頭に初代 IBM PC 用に開発されたコンピューター カードを受け入れました。 ISA バスは、より高度なテクノロジーがそれに代わるようになった後も使用され続けました。

その長寿命には、いくつかの主な理由がありました。

  • 多数のハードウェア メーカーとの長期的な互換性。
  • マルチメディアが台頭する前は、新しいバスの速度を十分に活用できるハードウェア周辺機器はほとんどありませんでした。

技術が進歩し、ISA バスが追いつかなくなると、他のバスが開発されました。これらの中で重要なのは、8 MHz で 32 ビットの Extended Industry Standard Architecture (EISA) と Vesa Local Bus (VL-Bus) でした。 VL-Bus (規格を作成した VESA、Video Electronics Standards Association にちなんで命名されました) の優れた点は、それが 32 ビット幅で、通常はプロセッサ自体の速度であるローカル バスの速度で動作することです。 VL-Bus は基本的に CPU に直接接続されています。これは 1 台のデバイスでも、場合によっては 2 台のデバイスでも問題なく機能しました。ただし、3 つ以上のデバイスを VL-Bus に接続すると、CPU のパフォーマンスに干渉が生じる可能性があります。このため、VL-Bus は通常、CPU への高速アクセスの恩恵を受けるコンポーネントであるグラフィックス カードの接続にのみ使用されていました。

1990 年代初頭、Intel は新しいバス規格であるPeripheral Component Interconnect (PCI) バスを検討対象として導入しました。 PCI は、ISA と VL-Bus の間の一種のハイブリッドを提供します。接続されたデバイスのシステム メモリへの直接アクセスを提供しますが、ブリッジを使用してフロントサイド バス、つまり CPU に接続します。基本的に、これは、CPU との干渉の可能性を排除しながら、VL-Bus よりもさらに高いパフォーマンスが可能であることを意味します。

PCI バスと PCI カードの開発については、次のページで詳しく説明します。

フロントサイド バス、バックサイド バス、および PCI カード

バスの種類

フロントサイド バスは、プロセッサを、メイン メモリ ( RAM )、ハード ドライブ、PCI スロットなど、コンピュータ内の他のほとんどのコンポーネントに実際に接続する物理接続です。最近では、フロントサイド バスは通常 400 MHz で動作し、新しいシステムは 800 MHz で動作します。

バックサイド バスは、プロセッサとレベル 2キャッシュの間の別個の接続です。このバスはフロントサイド バスよりも高速で動作し、通常はプロセッサと同じ速度で動作するため、すべてのキャッシュが可能な限り効率的に機能します。バックサイドバスは長年にわたって進化してきました。 1990 年代、バックサイド バスはメイン プロセッサをオフチップ キャッシュに接続するワイヤでした。このキャッシュは実際には高価なメモリを必要とする別個のチップでした。それ以来、レベル 2 キャッシュがメイン プロセッサに統合され、プロセッサが小型化され、安価になりました。キャッシュはプロセッサ自体にあるため、ある意味ではバックサイド バスは実際にはバスではなくなりました。

PCI は、VL-Bus よりも多くのデバイス (最大 5 つの外部コンポーネント) を接続できます。外部コンポーネント用の 5 つのコネクタはそれぞれ、マザーボード上の 2 つの固定デバイスに置き換えることができます。また、これが行われることはほとんどありませんが、同じコンピュータ上で複数の PCI バスを使用することもできます。 PCI ブリッジ チップは、 CPU の速度とは独立して PCI バスの速度を調整します。これにより、より高度な信頼性が提供され、PCI ハードウェアのメーカーが何を目的に設計すべきかを正確に把握できるようになります。

PCI は当初、32 ビット幅のパスを使用して 33 MHz で動作していました。標準の改訂には、速度が 33 MHz から 66 MHz に増加し、ビット数が 2 倍の 64 に増加することが含まれています。現在、PCI-X は、133 MHz の速度で 64 ビット転送を実現し、驚異的な 1 GBps (ギガバイト/秒) を実現しています。転送速度!

 PCI の仕組み

PCI カードは接続に 47 ピンを使用します (マスタリング カードの場合は 49 ピンで、CPU 介入なしで PCI バスを制御できます)。 PCI バスは、ハードウェア多重化により非常に少ないピンで動作できます。つまり、デバイスは 1 つのピンで複数の信号を送信します。また、PCI は 5 ボルトまたは 3.3 ボルトを使用するデバイスをサポートします。

Intel は 1991 年に PCI 標準を提案しましたが、Windows 95 が登場する (1995 年) まで普及しませんでした。 PCI に対するこの突然の関心は、Windows 95 がプラグ アンド プレイ(PnP) と呼ばれる機能をサポートしたという事実によるもので、これについては次のセクションで説明します。

プラグアンドプレイ

プラグ アンド プレイ (PnP) とは、デバイスを接続したり、カードをコンピュータに挿入したりすると、自動的に認識され、システムで動作するように設定されることを意味します。 PnP は単純な概念ですが、それを実現するにはコンピュータ業界の協力的な努力が必要でした。 Intel は PnP 標準を作成し、それを PCI の設計に組み込みました。しかし、主流のオペレーティング システムである Windows 95 が PnP をシステム レベルでサポートするようになったのは、数年後のことでした。 PnP の導入により、PCI を搭載したコンピューターの需要が加速し、すぐにバスの選択肢として ISA に取って代わりました。

PnP を完全に実装するには、次の 3 つのことが必要です。

PnP BIOS – PnP を有効にし、PnP デバイスを検出するコア ユーティリティ。 BIOS は、既存の PnP デバイスの構成情報の ESCD も読み取ります。

拡張システム構成データ (ESCD) – インストールされている PnP デバイスに関する情報が含まれるファイル。

PnPオペレーティング システム– PnP をサポートする Windows XP などのオペレーティング システム。オペレーティング システムの PnP ハンドラーは、BIOS によって開始された各 PnP デバイスの構成プロセスを完了します。 PnP は、通常は手動で、またはハードウェア メーカーが提供するインストール ユーティリティを使用して実行されていたいくつかの主要なタスクを自動化します。これらのタスクには次の設定が含まれます。

  • 割り込み要求 (IRQ) – IRQ はハードウェア割り込みとも呼ばれ、CPU の注意を引くためにコンピューターのさまざまな部分で使用されます。たとえば、マウスは移動するたびに IRQ を送信して、CPU に何かを行っていることを知らせます。 PCI が登場する前は、すべてのハードウェア コンポーネントに個別の IRQ 設定が必要でした。ただし、PCI はバス ブリッジでハードウェア割り込みを管理するため、複数の PCI デバイスに対して単一のシステム IRQ を使用できます。
  • ダイレクト メモリ アクセス (DMA) – これは単に、最初に CPU に問い合わせずにシステム メモリにアクセスするようにデバイスが構成されていることを意味します。
  • メモリ アドレス – 多くのデバイスには、そのデバイス専用のシステム メモリのセクションが割り当てられます。これにより、ハードウェアが適切に動作するために必要なリソースが確実に確保されます。
  • 入出力 (I/O) 構成 – この設定は、デバイスが情報の送受信に使用するポートを定義します。

PnP を使用すると、コンピューターへのデバイスの追加がはるかに簡単になりますが、確実ではありません。

PnP BIOS 開発者、PCI デバイス メーカー、マイクロソフトが使用するソフトウェア ルーチンのバリエーションにより、多くの人が PnP を「プラグ アンドプレイ」と呼ぶようになりました。しかし、PnP の全体的な効果は、新しいデバイスを追加したり、既存のデバイスを置き換えたりするためにコンピューターをアップグレードするプロセスを大幅に簡素化することです。

PCI と AGP の比較

PCI バスは長年にわたって適切であり、ほとんどのユーザーが接続を希望するすべての周辺機器に十分な帯域幅を提供していました。 1 つを除くすべて: グラフィックス カード。 1990 年代半ば、グラフィックス カードはますます高性能になり、3D ゲームにはより高いパフォーマンスが求められました。 PCI バスは、メイン プロセッサとグラフィック プロセッサ間でやり取りされるすべての情報を処理できませんでした。その結果、Intel は Accelerated Graphics Port (AGP) を開発しました。 AGP は、グラフィックス カード専用のバスです。 AGP バス全体の帯域幅は他のコンポーネントと共有されません。 PCI は引き続きほとんどの周辺機器にとって最適なバスですが、AGP はグラフィックス処理の特殊なタスクを引き継ぎました。しかし、AGP に終焉をもたらす可能性のある新しいバス技術が市場に登場しました。これについては後ほど記事で詳しく説明しますので、お楽しみに…。

PCIデバイスの追加

 PCI の仕組み

新しい PCI ベースのサウンド カードをWindows XP コンピュータに追加したとします。これがどのように機能するかの例を示します。

  1. コンピュータのケースを開け、サウンド カードをマザーボードの空の PCI スロットに差し込みます。
  2. コンピューターのケースを閉じて、コンピューターの電源を入れます。
  3. システムBIOS はPnP BIOS を開始します。
  4. PnP BIOS は PCI バスをスキャンしてハードウェアを探します。これは、バスに接続されているデバイスに信号を送信し、そのデバイスが誰であるかを尋ねることによって行われます。
  5. サウンド カードは、それ自体を識別して応答します。デバイス ID はバスを介して BIOS に送り返されます。
  6. PnP BIOS は ESCD をチェックして、サウンド カードの構成データがすでに存在するかどうかを確認します。サウンド カードは取り付けられたばかりなので、既存の ESCD レコードはありません。
  7. PnP BIOS は、IRQ、DMA、メモリ アドレス、および I/O 設定をサウンド カードに割り当て、データを ESCD に保存します。
  8. Windows XPが起動します。 ESCD と PCI バスをチェックします。オペレーティング システムは、サウンド カードが新しいデバイスであることを検出し、Windows が新しいハードウェアを検出し、それが何であるかを判断していることを示す小さなウィンドウを表示します。
  9. 多くの場合、Windows XP がデバイスを識別し、必要なドライバーを見つけてロードすれば、準備は完了です。そうでない場合は、「新しいハードウェアの検出ウィザード」が開きます。これにより、サウンド カードに付属のディスクからドライバーをインストールするように指示されます。
  10. ドライバーがインストールされると、デバイスを使用できるようになります。一部のデバイスでは、使用する前にコンピュータを再起動する必要がある場合があります。この例では、サウンド カードはすぐに使用できるようになります。
  11. サウンド カードに接続した外部テープ デッキからオーディオをキャプチャしたいとします。サウンド カードに付属の録音ソフトウェアをセットアップし、録音を開始します。
  12. オーディオは、外部オーディオ コネクタを介してサウンド カードに入力されます。サウンドカードはアナログ信号をデジタル信号に変換します。
  13. サウンド カードからのデジタル オーディオ データは、PCI バスを介してバス コントローラーに伝送されます。コントローラーは、PCI デバイス上のどのデバイスが CPU にデータを送信する優先権を持つかを決定します。また、データが CPU に直接送信されているか、システム メモリに送信されているかも確認します。
  14. サウンド カードは録音モードにあるため、バス コントローラはサウンド カードからのデータに高い優先順位を割り当て、サウンド カードのデータをバス ブリッジ経由でシステム バスに送信します。
  15. システム バスはデータをシステム メモリに保存します。録音が完了したら、サウンド カードのデータをハード ドライブに保存するか、追加の処理のためにメモリに保持するかを決定できます。

PCI規格とPCI Express

 PCI の仕組み

プロセッサの速度が GHz 範囲で着実に上昇する中、多くの企業が次世代のバス規格の開発に熱心に取り組んでいます。 PCI は、以前の ISA と同様に、実行できる機能の上限に急速に近づいていると多くの人が感じています。

提案されたすべての新しい標準には共通点があります。彼らは、PCI で使用されている共有バス技術を廃止し、ポイントツーポイントのスイッチング接続に移行することを提案しています。これは、バス上の 2 つのデバイス (ノード) が相互に通信している間に、それらの間の直接接続が確立されることを意味します。基本的に、これら 2 つのノードが通信している間は、他のデバイスはそのパスにアクセスできません。このようなバスでは、複数の直接リンクを提供することで、複数のデバイスが相互に速度を低下させることなく通信できるようになります。

Advanced Micro Devices, Inc. (AMD) によって提案された標準である HyperTransport は、PCI からの自然な発展として AMD によって宣伝されています。ノード間のセッションごとに、2 つのポイントツーポイント リンクが提供されます。各リンクの幅は 2 ビットから 32 ビットまでで、1 秒あたり 6.4 GB の最大転送速度をサポートします。 HyperTransport は、リムーバブル ドライブなどの外部デバイスを接続するためではなく、コンピューターの内部コンポーネントを相互に接続するために特別に設計されています。ブリッジ チップの開発により、PCI デバイスが HyperTransport バスにアクセスできるようになります。

Intel によって開発されたPCI-Express (以前は 3GIO または第 3 世代 I/O として知られていました) は、バス テクノロジの「次の目玉」になるようです。当初、より高速なバスはハイエンド サーバー向けに開発されました。これらは PCI-X および PCI-X 2.0 と呼ばれていましたが、PCI-X でマザーボードを製造するのは非常に高価であったため、家庭用コンピュータ市場には適していませんでした。

PCI-Express はまったく異なる猛獣です。家庭用コンピュータ市場をターゲットとしており、コンピュータのパフォーマンスだけでなく、家庭用コンピュータ システムの形状そのものにも革命を起こす可能性があります。この新しいバスは、PCI よりも高速で、より多くの帯域幅を処理できるだけではありません。 PCI-Express はポイントツーポイント システムであるため、パフォーマンスが向上し、マザーボードの製造コストも安くなる可能性があります。 PCI-Express スロットは古い PCI カードも受け入れるため、すべての PCI コンポーネントが突然役に立たなくなった場合よりも早く普及することができます。

拡張性もあります。基本的な PCI-Express スロットは 1x 接続になります。これにより、高速インターネット接続やその他の周辺機器に十分な帯域幅が提供されます。 1x は、データを伝送するレーンが 1 つあることを意味します。コンポーネントにさらに多くの帯域幅が必要な場合は、PCI-Express 2x、4x、8x、および 16x スロットをマザーボードに組み込むことができ、レーンを追加して、システムが接続を通じてより多くのデータを伝送できるようにします。実際、一部のマザーボードでは、 AGPグラフィックス カード スロットの代わりに PCI-Express 16x スロットがすでに利用可能です。 PCI-Express 16x ビデオ カードは現在最先端のもので、価格は 500 ドル以上です。価格が下がり、新しいカードを処理できるように作られたマザーボードがより一般的になるにつれて、AGP は歴史の中に消えていく可能性があります。

PCI Express と未来

PCI-Express は、より高速なコンピューター以上の意味を持つ可能性があります。テクノロジーが発展するにつれて、コンピューター メーカーは特別なケーブルに接続する PCI-Express コネクタを備えたマザーボードを設計する可能性があります。これにより、家庭用ステレオ システムと同様に、完全にモジュール式のコンピュータ システムが可能になる可能性があります。マザーボード、プロセッサー、および一連の PCI-Express 接続ジャックを備えた小さな箱があります。外付けハードドライブは、USB 2.0 または PCI-Express 経由で接続できます。サウンド カード、ビデオ カード、モデムを含む小さなモジュールも接続できます。 1 つの大きな箱の代わりに、コンピューターを好きなように配置でき、必要なコンポーネントと同じ大きさにすることができます。

関連する 「コンピューター入門」 リンク

  • http://www.pcstats.com/articleview.cfm?articleID=1087