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

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

17.6.2.5.2. TX DMAの動作: OSFモード

レジスター6 (Operation Mode Register) のビット2 (OSF) が設定されている場合は、Run状態の際に、送信プロセスでは、最初のStatus記述子を閉じることなく2つのフレームを同時に取得することができます。送信プロセスで最初のフレームの転送が完了すると、すぐに2番目のフレームの送信記述子リストがポーリングされます。2番目のフレームが有効な場合、送信プロセスでは、最初のフレームのステータス情報を書き込む前にこのフレームを転送します。

OSFモードでは、Run状態の送信DMAは次のシーケンスで動作します。

  1. DMAは、「TX DMAの動作: デフォルト (OSFなし) モード」のセクションのステップ1から6で説明されているように動作します。
  2. 前のフレームの最後の記述子を閉じることなく、DMAは次の記述子をフェッチします。
  3. 取得した記述子をDMAが所有している場合、DMAはこの記述子内の送信バッファーアドレスをデコードします。DMAが記述子を所有していない場合、DMAはSuspendモードになり、7 に進みます。
  4. DMAはホストメモリーから送信フレームをフェッチし、EOF (End‑of‑Frame) のデータが転送されるまでフレームをMTLに転送します。このフレームが複数の記述子に分割されている場合は、中間の記述子は閉じられます。
  5. DMAは、前のフレームのフレーム送信ステータスとタイムスタンプを待機します。ステータスが利用可能になると、DMAは、タイムスタンプがキャプチャーされている場合 (ステータスビットで示されています) は、TDES2およびTDES3にタイムスタンプを書き込みます。DMAはその後、Ownビットがクリアされた状態でステータスを対応するTDES0に書き込むことにより、記述子を閉じます。前のフレームでタイムスタンプが有効になっていない場合は、DMAはTDES2およびTDES3の内容を変更しません。
  6. 有効になっている場合は、送信割り込みが設定され、DMAは次の記述子をフェッチした後、3 に進みます (ステータスが正常の場合)。前の送信のステータスがアンダーフロー・エラーを示している場合、DMAはSuspendモードになります (7)。
  7. Suspendモードでは、保留中のステータスとタイムスタンプをMTLから受信すると、DMAはタイムスタンプ (現在のフレームで有効な場合) をTDES2とTDES3に書き込み、対応するTDES0にステータスを書き込みます。その後、関連する割り込みを設定し、Suspendモードに戻ります。
  8. DMAは、Transmit Poll要求 (レジスター1のTransmit Poll Demand Register) を受信した後にのみ、Suspendモードを終了してRun状態に入ることができます。この場合、保留状態に応じて1 または2 に進みます。
注: DMAは現在の記述子を閉じる前に事前に次の記述子をフェッチするため、正しく適切な動作を実現するには、記述子チェーンに3つ以上の異なる記述子が必要です。
図 69. OSFモードでのTX DMA動作