Peripheral Component Interconnect

Peripheral Component Interconnect（ペリフェラル コンポーネント インターコネクト）、略してPCIとはコンピュータのプロセッサと周辺機器との間の通信を行うためのバスアーキテクチャの一つ。 おおむね2000年代初頭を中心とした前後数年間において、PCIバスはパーソナルコンピュータ（パソコン）またはワークステーション、サーバ、オフィスコンピュータ用の拡張カードを増設するための業界標準のバスとして広く採用されていたが、2004年に登場した後継規格のPCI Expressがまずグラフィックカードの分野で急速に普及し、その他の拡張カードも2010年代中盤頃にかけて次第に代替されていった。 2003年現在、最新のバージョンはPCI 3.0である。 一般のパソコンではPCI 2.3準拠の 32ビットの33MHz、5VのPCIバスが採用されている。 動作クロックは最大33MHzまたは最大66MHzで下限クロック数は規定されていない。 これはPCIの動作単位がクロックではなく実時間（例:Output Delayはクロック立ち上がりより12ns後）で規定されている為である。 バス幅は32ビットまたは64ビットで、1バスセグメント内で10デバイスをサポートする。それ以上の数のデバイスを接続する場合は、PCIバス-PCIバスブリッジを使用しバスセグメントを拡張するか、バスコントローラそのものを増設しセグメント数を増やす。 拡張スロットは33MHzの場合2デバイス、66MHzの場合4デバイス扱いで、チップセットなどのバスコントローラも1デバイスないしは2デバイスとして扱われるため、1バスセグメントで最大4スロットまでの実装が可能となる。 また、32ビットスロットに64ビットの拡張カードを挿入して使用することやその逆も可能であるように設計されている。ただしこれはバス設計に於いてであって、挿入するカードがその互換性を持っているか否かは別問題であり、特に64ビットカードを32ビットスロットに装着した場合、宙に浮いた32ビット分の処理はカード側の処理（すなわち設計）に依る。 動作電圧は5Vまたは3.3Vであり、カードの切り欠き、スロット突起の有無により誤挿入を防止している。 PCIカードの表を正面に見て右にだけ切り欠きがあるものが5V専用、左にのみ切り欠きがあるものは3.3V専用、左右に切り欠きが有るものは両方対応している。 PCIデバイスは、各々のベンダが固有のPCI IDを持つ。 マザーボードや相性にもよるが、AGPコネクタの隣に位置するPCIコネクタはリソース等の競合が起こる事があり、正常に動作しない場合は、別のPCIスロットを使用して再確認する事が推奨されている。大型のクーラーを装備するビデオカードの場合、隣のPCIスロットが物理的に使えないこともしばしばである。 特に規定があるわけではないが、スロットのコネクタ色は白色が多い。 ISAバスとは、部品を実装する面が向きが逆であり、ATXの縦型ケースでは、部品面が下になる。これはAGP、PCI-EXpressにも引き継がれた。 ISAバスとPCIバスが混在した時期においては、隣接するISAバスとPCIバスは、PCケースの細長い穴を共用するために、同時には使えないことが多かった。このためPCI,ISA3本ずつでも、PCI2,ISA2,PCI/ISA1と表記される事もあった。 PCIバスは、当初CPUアーキテクチャに全く依存しないデバイス間を結ぶ内部高速バスLocal Glueless Busとして、1991年にインテルから提案された。 その当時、PC/AT互換機においては、標準の拡張バスであるISAバス（いわゆるATバス）が低速、かつバス調停機能が存在しなかったため、高速なデバイス（VGAやLAN、SCSI等）の接続、マルチタスクオペレーティングシステムの運用などの際ボトルネックになっていた。 そのため、全く新しい設計の16/32ビットバスであるMCAバス、ISAバスを拡張しそれに対する上位互換機能を備えた32ビットバスであるEISAバス、i486のメモリバスをそのまま引き出したVLバスなどが登場したが、MCAバスは高度なバス調停機能を持つがISAバスとの互換性が無く、また特許権の問題からIBM以外にはほとんど普及せず、EISAバスは高度なバス調停機能による高価格化とISA互換によるデータ転送速度の不足、VLバスは転送速度は充分（50MHz駆動時200MB/秒）だがi486アーキテクチャに強く依存し互換性・安定性が不十分でバス調停機能は存在しない、などの理由で、それぞれ限定的にしか普及しなかった。 このため、インテルの提案を受けた各社から、ISAを代替する高速な標準汎用バスとしてLocal Glueless Busを外部バス化する要求が多く寄せられた。 この要求に対し、PC/AT互換機やPC-9821シリーズへの実装を目的とした機種依存仕様の追加、64ビットバスへの拡張対応、拡張スロット形状を含めた最終の形に近いPCIバスの仕様が、インテルを中心として策定された。 PCIバスは、策定当初からアーキテクチャに依存しない汎用高速バスとして設計されていたが、PC/AT互換機における標準バスとしての地位が約束されていた訳ではなかった。このため、PCIバスを搭載した初期のマザーボードにはEISAバスとVLバスも搭載するという変則的な製品やVLバス上にPCIブリッジを実装する製品も存在した。 また、PCIバスはワークステーションやサーバ、オフィスコンピュータなどの方面にも同時に取り入れられていった。この方面ではEISAバス、APバス、VMEバスなどを使用していたが、特にコンピュータグラフィックや衛星画像処理などで大規模な画像データを表示する必要に迫られたり、大規模なデータを取り扱うSCSI等にいちはやく取り入れられていった。同時に、i486系のCPUを持つワークステーションのみならず、R4400、R10000等、MIPS系のRISC型CPUを持つワークステーションやサーバ等でも利用できるよう、PCIコントローラーが開発され実装されていった。また、サーバなどのボードの拡張を容易にするため、PCIブリッジと呼ばれる外部筐体にPCIバスを拡張するコントローラーも開発され、i486系、MIPS系のサーバに使用されている。 2002年には、PCIとAGPの後継規格であるPCI Expressが発表される。 1991年 原案である「Local Glueless Bus」が発表。 「PCI Local Bus」として規格化すべく PCI SIG が設立された。 1992年 PCI 1.0策定。 内部接続バスとしての仕様のみ規定され、見切り発車などとも言われた。 1993年 PCI 2.0策定。 64bit規格、コネクタ仕様等が制定され、製品への本格的な実装が開始された。 1994年 PCI 2.1へ改訂。 Delayed Transactionの明文化、PCIバスブリッジや66MHzの仕様が盛り込まれる。 1999年 PCI 2.2へ改訂。 MSI (Message Signaled Interrupt) と言うサイドバンド信号線無しで割り込み通知等の機能が追加され、これに準拠した別ケーブル無しでのWOL対応イーサネットカードやPCMCIAインタフェースが販売された。 2000年 PCI 2.3へ改訂。 5Vのみで動作する拡張カードの廃止。マザーボード側スロットへの5V給電（配電）は引き続き許される。 2002年 PCI 3.0制定。 マザーボード側スロットへの5V給電（配電）を廃止。 2002年 派生規格 PCI-X 1.0b 及び PCI-X 2.0制定。 64bitPCIの後継規格で、1バスセグメント内で66MHzなら4本、100MHzなら2本、133MHz動作なら1本のスロットが使用可能などの機能拡張が行われている。 PCI-X 2.0では、信号電圧の1.5Vへの動的変更を行うことで、DDR (Double Data Rate:倍速)やQDR（Quad Data Rate : 4倍速）でのデータ転送をサポートする。 2002年 後継規格 PCI Express 1.0制定。 プロトコルと信号が混在していたPCIを見直し、各層を完全に分割し、スケーラビリティを確保した規格。これ以降のPCの標準汎用拡張バスとなった。PCカードにおいてもPCI Express派生規格のExpressCardによる置き換えが進んだ。 ^ ただし、これはPCI規格を提唱したIntelのガイドラインで示された、拡張スロットの電気的負荷を考慮し一定の余裕を確保した値である。そのため、PCIバス全盛期のPC/AT互換機用マザーボードでは基板の回路設計を工夫してバスの負荷を軽減し、4スロット前提のIRQルーティングを拡張・整合させる回路を付加することで、最大6スロットの32ビット33MHz PCIバススロットを1バスセグメント接続で実装する製品が多数存在した。 PCI Express - 後継規格 PCI設定空間（英語版） Accelerated Graphics Port (AGP) Extended Industry Standard Architecture (EISA) Industry Standard Architecture (ISA) Micro Channel Architecture (MCA) VESA ローカルバス（VLバス） APバス XTバス ロープロファイルPCI コンパクトPCI PCI-SIG PCI ID PCI Rev間差異の比較 Linux with miniPCI cards PCIの5Vと3.3Vに付いて