blogのネタがないので、しばらくPCIについて勉強したり実装した内容について、少し書こうかと思っています。画像が多いので少しずつ^-^;
PCIはよく知られているようにPCに標準的に採用されているバスです。PCI Expressも増えてはきていますが、あのシリアルバスを拡張カードに乗せるのはもうちょっと先になるかもれません。しばらくしたら必要になるかも。まずはバスの概要について説明しておきます。
・同期バス
PCIのバスは、バスラインと信号線がすべてPCIの33MHz(66MHz)のクロックに同期して動作します。ISAバスのように非同期とかは混在しないので設計上のタイミング規定はかなりシンプルです。
・マルチプレクスバス
PCIは、アドレス線とデータがマルチプレクスされていて、ラインを時分割で分割して使用します。実際のデータ転送時にはバースト転送といって、アドレスの基準を最初に設定して、その後連続的にデータを送信する方法を取ります。
・バスコマンド/バイトイネーブル (C/BE#)
通常のCPUバスでは、WRやRDなどの読み書きを判断する信号線がありますが、PCIにはそういった類のものは存在せず、バスコマンドという4bitの信号線で判断します。また、バイトイネーブルとマルチプレクスされていて、データ転送時にはバイトの有効ビットを設定します。
・メモリ空間とI/O空間
PCIでは最大4GBのメモリ空間があり、このデータはPC内のメモリアクセス空間と同一です。I/O空間はATアーキテクチャの制限によって64kbまでしか使えません。
・プラグアンドプレイ
PCIはプラグアンドプレイに対応しているので、IC内にコンフィギュレーション空間という領域を設けて、ここに自分自身のアドレスやIRQの番号を保存します。この領域は電源を入れたときにBIOSが振ってきます。
ちょっと長くなるので、次のときに信号線の種類について書きます。。
投稿日時 : 2007年7月16日 11:10