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

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

17.6.2.5.1. TX DMAの動作: デフォルト (OSFなし) モード

デフォルトモードの送信DMAエンジンは、次のように進行します。
  1. ホストは、対応するデータバッファーにイーサネット・フレーム・データを設定後、送信記述子 (TDES0からTDES3) を設定し、Ownビット (TDES0[31]) を設定します。
  2. レジスター6 (Operation Mode Register) のビット13 (ST) が設定されると、DMAはRun状態になります。
  3. Run状態の間、DMAは送信が必要なフレームの送信記述子リストをポーリングします。ポーリングは開始後、連続的な記述子リングの順序またはチェーンになっている順序で継続します。ホストが所有しているとフラグが付けられた記述子 (TDES0[31] = 0) をDMAが検出した場合、もしくはエラー状態が発生した場合、送信は一時停止し、レジスター5 (Status Register) のビット2 (Transmit Buffer Unavailable) とビット16 (Normal Interrupt Summary) が設定されます。送信エンジンは9 に進みます。
  4. 取得した記述子にDMAが所有しているとフラグが付けられている場合 (TDES0[31] = 1)、DMAは、取得した記述子から送信データ・バッファー・アドレスをデコードします。
  5. DMAはホストメモリーから送信データをフェッチし、そのデータを送信に向けてMTLに転送します。
  6. イーサネット・フレームが複数の記述子のデータバッファーに格納されている場合、DMAは中間の記述子を閉じて次の記述子をフェッチします。イーサネット・フレームの終わりのデータがMTLに転送されるまで、34、および5 を繰り返します。
  7. フレームの送信が完了すると、フレームでIEEE 1588タイムスタンプが有効になっている場合 (送信ステータスに示されています) は、MTLから取得したタイムスタンプ値が、フレームの終わりのバッファーを含む送信記述子 (TDES2およびTDES3) に書き込まれます。ステータス情報はその後、この送信記述子 (TDES0) に書き込まれます。このステップ中にOwnビットはクリアされるため、ホストがこの記述子を所有するようになります。このフレームでタイムスタンプが有効になっていない場合は、DMAはTDES2およびTDES3の内容を変更しません。
  8. レジスター5 (Status Register) のビット0 (Transmit Interrupt) は、Last DescriptorでInterrupt on Completion (TDES1[31]) が設定されているフレームの送信完了後に設定されます。DMAエンジンはその後、3 に戻ります。
  9. Suspend状態の場合、DMAは、Transmit Poll要求を受信し、Underflow Interrupt Statusビットがクリアされると、記述子の再取得を試みます。よって、3 に戻ります。
図 68. デフォルトモードでのTX DMA動作