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

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

8.3. DMAコントローラーの機能の説明

この章では、DMACの主要なインターフェイスとコンポーネント、およびその動作について説明します。

DMACには8つのDMAチャネルがあります。各チャネルは、DMAの動作の単一の並行スレッドをサポートします。さらに、単一のDMAマネージャー・スレッドがあり、それを使用してDMAチャネルスレッドを初期化することができます。

詳細は、 ARM® Infocenterのウェブサイトで提供されているCoreLink DMA-330 DMA Controller Technical Reference Manualを参照してください。

DMACには16ラインの命令キャッシュが含まれており、命令フェッチのパフォーマンスを向上させています。それぞれの命令キャッシュラインには8つの4バイト・ワードが含まれており、合計キャッシュ・ライン・サイズは32バイトです。DMACの命令キャッシュサイズは、16ライン × 各ライン32バイトで、512バイトになります。対応するスレッドが実行を開始する前にプログラムコードをDMAキャッシュにプリロードするメカニズムはありません。コードをキャッシュに入れて実行を開始する際の最初のレイテンシーは、コードが存在する位置によって異なります。この最初のレイテンシーをシステムレベルで考慮し、DMA転送および想定されるパフォーマンスを最適化する必要があります。スレッドでアドレスからの命令が要求されると、キャッシュでルックアップが実行されます。キャッシュヒットが発生した場合、キャッシュはすぐに命令を提供します。そうでない場合は、DMACがAXIマスター・インターフェイスを介してキャッシュ・ライン・フィルを実行している間、スレッドはストールします。命令がキャッシュラインの終わりまでおよぶ場合、DMACは複数のキャッシュアクセスを実行して命令をフェッチします。

注: キャッシュ・ライン・フィルが進行している際に、DMACは、他のスレッドによるキャッシュへのアクセスを可能にします。ただし、別のキャッシュフィルが発生すると、最初のラインフィルが完了するまでそのパイプラインはストールします。

DMAチャネルスレッドでロードまたはストア命令が実行されると、DMACはその命令を関連する読み出しキューまたは書き込みキューに追加します。DMACはこれらのキューを、AXIバスで命令を発行する前の命令ストレージバッファーとして使用します。DMACにはMFIFOデータバッファーも含まれており、DMACがDMA転送時に読み出す、または書き込むデータが格納されます。

DMACは9つの割り込み出力を提供し、システムのCPUへの効率的なイベントの通信を可能にします。ペリフェラル要求インターフェイスはDMA対応ペリフェラルの接続をサポートし、マイクロプロセッサーからの介入のないメモリーからペリフェラル、またはペリフェラルからメモリーへのDMA転送を可能にします。

デュアル・スレーブ・インターフェイスにより、DMACの動作をセキュア状態と非セキュア状態に分けることができます。スレーブ・インターフェイスにより、ステータスレジスターにアクセスしたり、DMACで直接命令を実行したりすることができます。