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

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

16.4.2.5.8. 内部DMAコントローラーの機能のステートマシン†

次のリストは、機能のステートマシンのそれぞれの状態を説明しています。

  1. 内部DMAコントローラーは、4つのアクセスを行い記述子をフェッチします。
  2. DMAコントローラーは内部に記述子情報を格納します。最初の記述子の場合、コントローラーはFIFOバッファーのリセットを発行し、リセットが完了するまで待機します。
  3. 内部DMAコントローラーは、記述子の各ビットの正確性を確認します。ビットの不一致が検出された場合は、適切なエラービットが1に設定され、DES0フィールドのOWNビットを1に設定することにより記述子が閉じられます。

    rintstsレジスターは、次の条件のいずれかを示します。

    • 応答のタイムアウト
    • 応答のCRCエラー
    • データ受信タイムアウト
    • 応答エラー
  4. DMAは、RXウォーターマークに到達するまで待機してからシステムメモリーにデータを書き込みます。もしくは、TXウォーターマークに到達するまで待機して、システムメモリーからデータを読み出します。RXウォーターマークは、DMAがメモリーに書き込みを行う前のFIFOバッファーにローカルに保存されるバイト数を表します。TXウォーターマークは、DMAがメモリーからデータを読み出す前のローカルFIFOバッファーの空きバイト数を表します。
  5. Programmable Burst Length (PBL) フィールドの値がバッファー内の残りのデータ量より大きい場合は、単一の転送が開始します。デュアルバッファーが使用されている際に、2番目のバッファーにデータが含まれていない (バッファーサイズ = 0) 場合は、バッファーはスキップされ、記述子が閉じられます。
  6. 1つの記述子のデータ転送が完了すると、記述子のOWNビットは内部DMAコントローラーによって0に設定されます。転送が複数の記述子に広がる場合、DMAコントローラーは次の記述子をフェッチします。転送が現在の記述子で終了する場合は、idstsレジスターのriビットまたはtiビットを設定後に、内部DMAコントローラーはアイドル状態になります。記述子の構造 (デュアルバッファーまたはチェーン) に応じて、記述子の適切な開始アドレスがロードされます。デュアルバッファー記述子の2番目のデータバッファーの場合は、記述子は再度フェッチされません。