インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

18.6.2.2. ホスト・トランザクション

ホストとしてコンフィグレーションされている場合、USB OTGコントローラーは、2つの要求キュー (周期的なトランザクション用と非周期的なトランザクション用) のいずれかを介してUSBトランザクションをパイプ処理します。要求キューの各エントリーは、SETUP、IN、またはOUTチャネル番号に加えて、USBリンクでのトランザクションの実行に必要なその他の情報を保持します。要求がキューに書き込まれる順序によって、USBリンクでのトランザクションの順序が決まります。

ホストは、各フレームまたはマイクロフレームの開始時に、次の順序で要求を処理します。

  1. アイソクロナスおよび割り込みトランザクションを含む周期的な要求のキュー
  2. 非周期的な要求のキュー (バルクまたはコントロール転送)

ホストは、有効になっている各チャネルのトランザクションをラウンドロビン方式でスケジュールします。ホスト・コントローラーがチャネルの転送を完了すると、コントローラーはシステムメモリーでDMA記述子のステータスを更新します。

OUTトランザクションの場合、ホスト・コントローラーは2つの送信FIFOバッファーを使用して、送信されるパケットペイロードを保持します。1つの送信FIFOバッファーはすべての非周期的OUTトランザクションに使用され、もう一方はすべての周期的OUTトランザクションに使用されます。

INトランザクションの場合、USBホスト・コントローラーは、1つの受信FIFOバッファーを周期的および非周期的なトランザクションすべてに使用します。コントローラーは、パケットがシステムメモリーに転送されるまで、USBデバイスからのパケットペイロードを受信FIFOバッファーに保持します。また、受信FIFOバッファーには、受信した各パケットのステータスも保持されます。ステータスのエントリーには、INチャネル番号とともに、受信したバイトカウントや有効性のステータスなどのそのほかの情報が保持されます。

汎用ハブの動作の場合、USB OTGコントローラーはSPLIT転送を使用して、ハブのダウンストリームにある低速デバイスと通信します。これらの転送において、トランザクションの蓄積、すなわちバッファリングは汎用ハブで実行され、それに応じてスケジュールされます。USB OTGコントローラーは、ダウンストリームのトランザクションが完了した際、または、蓄積されたデータをアップストリームに送信する準備が整った際に、十分な送信および受信バッファーが割り当てられることを保証します。