PCI と SBus の機能比較

第 1 章 機能比較

本書では、PCI の主な機能と、それに対応する SBus の機能との比較情報を提供します。また、PCI のみが持つ機能についても説明します。

機能比較表

以下の表は、電気、ファームウェア、ハードウェア、ソフトウェア、通常のトランザクションの各機能について、SBus と PCI の機能を比較したものです。

表 1-1 電気的な機能の比較

機能 

SBus 

PCI 

違い 

消費電力 

P = VI 

25W (5V × 5A) 

なし 

供給電力 

5V +/-.25V 最大 2A/コネクタ 

12V +/-.75V 最大 30mA/コネクタ 

5V +/-5% 最大 5A/コネクタ 

3.3V +/-0.3V 最大 0.6A/コネクタ 

12V +/-5% 500mA/コネクタ 

-12V +/-10% 100mA/コネクタ 

なし 

表 1-2 ファームウェアの機能比較

機能 

SBus 

PCI 

違い 

FCode が必要 

すべての装置 

起動装置とコンソール装置 

なし 

表 1-3 ハードウェアの機能比較

機能 

SBus 

PCI 

違い 

アドレス割り当て 

静的割り当て。スロットは既知の開始アドレスと長さを持ちます。 

入出力およびメモリーアドレス空間用には動的割り当て。スロットは、設定空間のヘッダーのアドレスによってのみ区別されます。 

なし 

アドレス指定モード 

仮想アドレスを指定します。SBus コントローラとアドレスの変換に MMU が必要となります。 

マスターには 32 ビットの仮想アドレスを使用し、1 スレーブあたり 28 ビットの物理アドレス空間を使用します。 

通常アドレスモード 

なし 

アドレス空間 

メモリーに割り当てられた標準の空間 

(28 ビット/スロット) 

3 つの物理アドレス空間 (メモリー、入出力、設定) 

なし 

自動設定 

 

 

 

バースト転送モードの 大きさ 

使用可能。最大 64 バイトで、大きさは SIZ[2:0] で事前に宣言されます。 

あり。大きさは可変で、制限はありません。PCI 装置と PCI ブリッジによって判定されます。 

なし 

バス帯域幅 (データ転送速度) 

最大 25MHz/32 ビット。 

32 ビットでは 100 MB/秒。 

64 ビットでは 200 MB/秒。 

PCI/66 では 33 MHz (バージョン 2.0) または 66 MHz。32/64 ビット。最大速度 132 MB/秒 (33MHz/32 ビット) 〜 528 MB/秒 (66MHz/64 ビットおよび 66MHz)。 

なし 

バス パーキング 

なし 

あり。バスがアイドル状態でマスターがバスに対する要求を出していない場合に、アービタは、マスターにバスを与えることができます。 

なし 

バス幅 

 

 

× 32 〜 64 ビット 

クロック周波数/ バス速度 

最大 CLK 25 MHz 

CLK 出力: 22 ns 

入力設定: 15 ns 

最大 CLK 33 MHz 

CLK 出力: 22 ns 

入力設定: 7 ns 

同期。信号は立ち上がりクロックエッジを基準とします。 

コネクタ 

コネクタの種類は 1 つ 

5 V または 3.3 V の 32 ビットおよび 64 ビットコネクタ。64 ビットコネクタは 32 ビットコネクタを拡張したものです。 

なし 

データパス 

32 ビット。拡張転送にかぎり 64 ビット 

32/64 ビット 

なし 

動的バスサイズ変更 

あり。非バースト転送で受け取るデータ幅をスレーブが制御することができます。 

なし。ただし、データフェーズでのバイトの有効化設定によって同様の機能が実行されます。 

なし 

フォームファクタ 

1 フォームファクタ/1 スロット (2 倍または 3 倍幅のスロットを共有可能) 

短、長、可変高短の 3 つのフォームファクタ 

なし 

割り込み 

7 レベル 

4 レベル (INT A-D) 

なし 

1 バスあたりの最大装置数 

通常は、電気負荷によって制限されます。 

32 スロット 

 

1 バスあたりの最大マスター数 

32 

 

装置あたりの最大演算数 

 

ピン数 (コネクタ) 

96 

32 ビットおよび 64 ビットコネクタの両方について 96 ピン 

 

表 1-4 ソフトウェアの機能比較

機能 

SBus 

PCI 

違い 

パリティー 

コントローラとインストール済みのマスターおよびスレーブにパリティーの生成と検査が実装されている場合は、データと仮想アドレスの転送について選択可能です。 

アドレスフェーズとデータフェーズではデフォルトです。PCI に準拠したすべての装置で実行する必要があります。 

なし 

表 1-5 標準のトランザクションサイクル

機能 

SBus 

PCI 

アドレスのデコード 

スレーブは、コントローラからデコードによって選択されます。 

各ターゲットは完全な 32 ビットデコードを実行し、選択されている場合は DEVSEL# を駆動します。 

バーストの大きさ 

32 ワード 

制限なし 

バスの駆動と送受反転 

なし 

バスを駆動するエージェントが信号を転送する場合は、複数のエージェントによって駆動された信号について競合を避けるために、送受反転サイクルが必要になります。 

バイトの配置 

バイトレーンのスワッピング 

DWORD スワッピングによって、バイトがバイトアドレスに正しく配置されます。 

バイトの順序 

ビッグエンディアン 

リトルエンディアン 

サイクルに参加するプログラム 

コントローラ、マスター、スレーブ 

PCI エージェント (マスター/イニシエータ、ターゲット) 

サイクルの用語と構成 

転送 = 

1. 調停フェーズ 

2. 変換フェーズ 

3. 拡張転送情報フェーズ 

4. 転送フェーズ (スレーブサイクル) 

転送 = 1 つ以上のクロックサイクル 

フェーズ = 1 つ以上の読み取りまたは書き込み転送で、現在のイニシエータがデータ転送を実行している間の (隠し) 調停も含まれます。 

 

読み取りまたは書き込みトランザクション = 1 アドレスフェーズ + 1 つ以上のデータフェーズ 

バスのトランザクションに参加する要素

バスのトランザクションの要素には、SBus コントローラ、PCI アービタ、SBus および PCI マスター、SBus および PCI ターゲットが含まれます。

SBus コントローラ

SBus コントローラは、調停フェーズにおいて、バスマスター間の競合の調停を行います。

また、SBus コントローラは以下を行います。

PCI アービタ

PCI アービタは本当の意味でのコントローラを持っていませんが、バスマスター間の調停を行うための機能は、コントローラと同様に持っています。バスマスターは、完了時または時間切れ時にトランザクションを終了することができます。また、ターゲットがトランザクションを終了することもできます。通常、アービタはホスト/PCI または PCI/拡張バスブリッジチップに統合されています。

SBus マスター

SBus マスターは、マスターとスレーブ間でエラーがないデータの読み取りおよび書き込みタスクの生成処理を制御します。

マスターが起動するトランザクションの種類は以下のとおりです。

PCI マスター

PCI マスターは、PCI バスについて、調停を行い、アクセスを獲得したときにイニシエータになります。イニシエータは転送を開始しますが、中止、終了、または時間切れにすることもできます。

また、PCI マスターは以下を行います。

SBus スレーブ/ターゲット

SBus スレーブ/ターゲットは以下を行います。

PCI ターゲット

PCI ターゲットは以下を行います。

プロトコル

プロトコルには、バスおよびバス調停ごとに、SBus および PCI 基本トランザクションサイクルがあります。

SBus の基本サイクル

各バスの SBus 基本トランザクションサイクルの定義を以下に示します。

調停フェーズ — このフェーズでは、マスターがバスアクセスを要求します。マスター間で競合がある場合は、コントローラが次の転送を行うマスターを決定します。調停後は、コントローラが転送を監視します。

変換フェーズ — マスターとコントローラが、仮想アドレスを物理アドレスに変換し、選択信号を変換します。選択信号は、マスターとスレーブによって使用されます。

拡張転送情報フェーズ — このフェーズは、マスターが要求したサイクルで、拡張転送の値が SIZ[2:0] の場合のみ使用されます。

転送フェーズ — 転送フェーズ (スレーブサイクル) では、データはスレーブへ、またはスレーブから移動します。

動的バスサイズ変更 — この機能によって、マスターが可変幅のスレーブと容易に通信できるようになります。

バースト転送 — SBus のバースト転送プロトコルは、SBus の基本トランザクションと同じです。ただし、複数のワードが転送されます。動的バスサイズ変更と可変幅のスレーブを使用することはできません。

拡張転送モード — 64 ビット転送によって性能が向上します。データパスの幅が 2 倍であるため、最大で 2 倍の帯域幅が可能です。

PCI の基本サイクル

各バスの PCI 基本データトランザクションサイクルを以下に示します。

アドレスフェーズ — すべての PCI トランザクションは、このフェーズから開始されます。このフェーズは並行隠れ調停を含みます。

イニシエータが、ターゲットの装置とトランザクションの種類を識別します。

データフェーズ — アドレスフェーズの後、アドレス/データバスが 1 つ以上のデータフェーズでデータを転送します。アドレスフェーズの直後のクロックが、データフェーズを開始します。

データフェーズでは、PCI バスクロックのすべての立ち上がりエッジの間にイニシエータとターゲットの間でデータオブジェクトが転送されます。


注 -

バスのアイドル状態 — 最後のデータ転送が終了したら、イニシエータはバスをアイドル状態に戻します。アイドル状態とは、バス上でトランザクションが行われていない状態です。


バスの調停

SBus によるバスの調停では、調停と転送を並行して実行することができます。PCI によるバスの調停は、アクセスの応答時間を最小限にするために、タイムスロット単位ではなく、アクセス単位になっています。

SBus

複数の SBus のマスターがバスアクセスを要求した場合は、コントローラがいずれかの要求元にアクセスを許可します。マスターがデータ転送を実行している間に、並行して行われる調停は、隠れ調停と呼ばれます。

PCI

PCI の調停では、バスマスターがそれぞれのバスアクセスの調停を行う必要があります。

PCI の仕様では、PCI のバス調停方式が定義されていません。アービタは任意の方式を使用することができます。ただし、2.1 の仕様では、アービタが「公平な」アルゴリズムを実装し、デッドロックを防ぐことを義務付けています。

応答時間

SBus と PCI バスの応答時間に関する特徴は似ています。両方とも応答時間が短く、スループットが高いバスです。ターゲットやマスターがトランザクションに追加することができる待ち状態の数は制限されています。また、マスターにはプログラム可能なタイマーがあり、トラフィックが多いときにバスを使用することができる時間が制限されます。これらの制限と、バス調停の順序によって、任意のバスマスターがバスを獲得するための待ち時間を正確に予測することができます。

PCI および SBus の応答時間には、以下の要素が影響します。

表 1–6 は、バスアクセスの応答時間の構成要素を示しています。バスアクセスの応答時間は、バスマスターがバスアクセスを要求してから、トランザクションの最初のデータ転送が終了するまでの時間です。表 1–6 に、バスアクセスの応答時間の構成要素を示します。

表 1-6 PCI バスアクセスの応答時間の構成要素

構成要素 

説明 

バスアクセスの応答時間 

マスターがバスアクセスを要求してから、トランザクションの最初のデータ転送が終了するまでの時間 

調停の応答時間 

マスターが要求を発行してから、アービタがマスターの許可を表明するまでの時間 

バス獲得の応答時間 

要求を行ったマスターが許可を受信してから、現在のマスターがバスを解放するまでの時間 

ターゲットの応答時間 

トランザクションの開始から、現在のターゲットがトランザクションの最初のデータ転送を終了する準備ができるまでの時間 

PCI ブリッジに関する情報

この節では、PCI ブリッジ装置の PCI の特徴について説明します。バスタイプ A とバスタイプ B の詳細な項目分けについては、表 1–7 を参照してください。

キャッシュラインの大きさによる性能の向上

Sun™ SPARC™ プラットフォームにおけるキャッシュラインの大きさは 64 バイトです。SPARC プラットフォーム用の PCI 装置は、キャッシュラインの大きさが 64 バイトで最高の性能を発揮します。

対応している PCI-PCI ブリッジ装置

表 1-7 サンのホスト/PCI ブリッジの特徴

機能 

バス A 

バス B 

データ転送幅 

64 ビット 

64 ビット 

クロック周波数 

33/66 MHz 

33 MHz 

バーストの大きさ 

64 バイト 

64 バイト 

読み取りバッファーの数 

DMA 用に 64 バイトが 1 つ 

DMA 用に 64 バイトが 1 つ 

書き込みバッファーの数 

DMA 用に 64 バイトが 2 つ 

PIO 用に 64 バイトが 1 つ 

DMA 用に 64 バイトが 2 つ 

PIO 用に 64 バイトが 1 つ 

二重アドレスサイクル 

DMA のみ省略 

DMA のみ省略 

高速背面間接続装置 

ターゲットモードのみ 

ターゲットモードのみ 

バイトスワッピング 

DMA についてはあり 

DMA についてはあり 

割り込み応答時間 

IDU 内部で 6 サイクル 

IDU 内部で 6 サイクル 

キャッシュラインの大きさ 

64 バイト 

64 バイト 

キャッシュラインの数 

16 

16 

キャッシュラインでの切断 

ターゲットモード (DMA) のみ 

ターゲットモード (DMA) のみ 

設定機構 (PCI 2.1 仕様の 3.7.4 節) 

設定機構 #2 

設定機構 #2 

設定空間 

物理アドレスの 1FE.0101.0000 から始まる 256 バイト 

物理アドレスの 1FE.0100.0000 から始まる 256 バイト 

入出力空間 

物理アドレスの 1FE.0200.0000 から始まる 8 K 

物理アドレスの 1FE.0201.0000 から始まる 8 K 

記憶空間 

物理アドレスの 1FF.0000.0000 から始まる 2 G 

物理アドレスの 1FF.8000.0000 から始まる 2 G 

設定サイクル 

マスターモードのみ 

マスターモードのみ 

特殊サイクル 

マスターモードのみ 

マスターモードのみ 

任意のバイトの使用 

一貫性 DMA のみ 

一貫性 DMA のみ 

同列間 DMA 

単一セグメントにおいて 

単一セグメントにおいて 

割り込み 

PCI 装置は 4 つの割り込みを共用します。 

PCI 装置は 4 つの割り込みを共用します。 

IOMMU ページの大きさ 

8 K および 64 K。STC では 8 K のページサイズのみが使用されます。 

8 K および 64 K。STC では 8 K のページサイズのみが使用されます。 

DVMA アドレス指定空間 (pci nexus ドライバによって設定) 

Solaris 2.5.1 では 64 MB。以降のリリースでは変更される可能性があります。 

Solaris 2.5.1 では 64 MB。以降のリリースでは変更される可能性があります。 

PIO 読み取りの大きさ 

メモリーサイクルでは 1、2、4、8、16、64 バイト。入出力サイクルまたは設定サイクルでは 1、2、4 バイト。 

メモリーサイクルでは 1、2、4、8、16、64 バイト。入出力サイクルまたは設定サイクルでは 1、2、4 バイト。 

PIO 書き込みの大きさ 

メモリーサイクルでは任意の 0-16 バイトと境界割り当てされた 64 バイト。入出力サイクルまたは設定サイクルでは任意の 0-4 バイト。 

メモリーサイクルでは任意の 0-16 バイトと境界割り当てされた 64 バイト。入出力サイクルまたは設定サイクルでは任意の 0-4 バイト。 

キャッシュラインの折り返しアドレス指定モード 

サポートなし 

サポートなし 

ローカル (PCI 上) キャッシュ 

サポートなし 

サポートなし 

主記憶への排他的アクセス 

LOCK# 信号の接続なし 

LOCK# 信号の接続なし 

アドレス/データステップ 

サポートなし 

サポートなし 

DOS 互換穴 

サポートなし 

サポートなし 

外部アービタ 

サポートなし 

サポートなし 

消去法的デコード 

サポートなし 

サポートなし