プロトコルには、バスおよびバス調停ごとに、SBus および PCI 基本トランザクションサイクルがあります。
各バスの SBus 基本トランザクションサイクルの定義を以下に示します。
調停フェーズ - このフェーズでは、マスターがバスアクセスを要求します。マスター間で競合がある場合は、コントローラが次の転送を行うマスターを決定します。調停後は、コントローラが転送を監視します。
変換フェーズ - マスターとコントローラが、仮想アドレスを物理アドレスに変換し、選択信号を変換します。選択信号は、マスターとスレーブによって使用されます。
拡張転送情報フェーズ - このフェーズは、マスターが要求したサイクルで、拡張転送の値が SIZ[2:0] の場合のみ使用されます。
転送フェーズ - 転送フェーズ (スレーブサイクル) では、データはスレーブへ、またはスレーブから移動します。
動的バスサイズ変更 - この機能によって、マスターが可変幅のスレーブと容易に通信できるようになります。
バースト転送 - SBus のバースト転送プロトコルは、SBus の基本トランザクションと同じです。ただし、複数のワードが転送されます。動的バスサイズ変更と可変幅のスレーブを使用することはできません。
拡張転送モード - 64 ビット転送によって性能が向上します。データパスの幅が 2 倍であるため、最大で 2 倍の帯域幅が可能です。
各バスの PCI 基本データトランザクションサイクルを以下に示します。
アドレスフェーズ - すべての PCI トランザクションは、このフェーズから開始されます。このフェーズは並行隠れ調停を含みます。
イニシエータが、ターゲットの装置とトランザクションの種類を識別します。
データフェーズ - アドレスフェーズの後、アドレス/データバスが 1 つ以上のデータフェーズでデータを転送します。アドレスフェーズの直後のクロックが、データフェーズを開始します。
データフェーズでは、PCI バスクロックのすべての立ち上がりエッジの間にイニシエータとターゲットの間でデータオブジェクトが転送されます。
バスのアイドル状態 - 最後のデータ転送が終了したら、イニシエータはバスをアイドル状態に戻します。アイドル状態とは、バス上でトランザクションが行われていない状態です。
SBus によるバスの調停では、調停と転送を並行して実行することができます。PCI によるバスの調停は、アクセスの応答時間を最小限にするために、タイムスロット単位ではなく、アクセス単位になっています。
複数の SBus のマスターがバスアクセスを要求した場合は、コントローラがいずれかの要求元にアクセスを許可します。マスターがデータ転送を実行している間に、並行して行われる調停は、隠れ調停と呼ばれます。
PCI の調停では、バスマスターがそれぞれのバスアクセスの調停を行う必要があります。
PCI の仕様では、PCI のバス調停方式が定義されていません。アービタは任意の方式を使用することができます。ただし、2.1 の仕様では、アービタが「公平な」アルゴリズムを実装し、デッドロックを防ぐことを義務付けています。