AN 886: インテル® Agilex™ デバイスのデザイン・ガイドライン

ID 683634
日付 1/07/2022
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

5.1.8.2.1. システムレベルのキャッシュ・コヒーレンシー

表 26.  デバイスバリアントのチェックリスト
番号 チェック欄 チェックリストの項目
1   使用するマスターとその数を検討します。
2   キャッシュ可能なアクセスの管理方法を決定します。
使用するマスターとその数を次のとおり検討します。
  • MPU
  • DMA
  • マスター・インターフェイスを備えたペリフェラル
  • HPSに接続しているFPGA内のマスター

    キャッシュ・コヒーレンシーは重要なテーマとして、システム内の複数のマスター間でデータを共有する必要がある場合に理解すべきです。SoCデバイスの場合は、こうしたマスターは、MPU、DMA、マスター・インターフェイスを備えたペリフェラル、およびHPSに接続しているFPGA内のマスターです。MPUには、レベル1およびレベル2のキャッシュ・コントローラーが含まれているため、システム内のメインメモリーよりも最新の内容を多く保持できます。HPSでは、2つのメカニズムをサポートし、システム内のマスターによってメモリーのコヒーレント・ビューを確実に監視することができます。2つのメカニズムとは、1つはメインメモリーに最新の値が含まれるようにすることです。もう1つは、ACE-Liteインターフェイスを使用して、マスターからディレクトリー・ベースのCCUファブリックにアクセスすることです。

    MPUでは、バッファーを割り当てて、キャッシュ不能にします。これにより、データのキャッシュが、L1およびL2キャッシュによってされることがなくなります。MPUではまた、キャッシュ可能なデータにアクセスし、ほかのマスターからデータへのアクセスが試行される前に、データをメインメモリーにフラッシュするか、キャッシュ不能のバッファーにコピーすることができます。オペレーティング・システムには、通常、キャッシュ・コヒーレンシーを維持するメカニズムとして上に挙げた2通りの方法が用意されています。

    システム内のマスターからコヒーレント・データにアクセスするには、MPUに依存してデータをキャッシュせずにメインメモリーに配置するか、システム内のマスターを使ってキャッシュ可能なアクセスをCCUを介して実行します。使用するメカニズムは、マスターがアクセスしているメモリーのバッファーサイズによって異なります。

    詳しくは、FPGAに対するインターフェイス のセクションを参照してください。

ガイドライン: CCUを介してアクセスするデータが1MB L2キャッシュに収まることを確認して、オーバーヘッドのスラッシングを回避します。

L2キャッシュのサイズは1MBです。そのため、システム内のマスターから合計サイズが1MBを超えるバッファーに頻繁にアクセスすると、スラッシングが発生します。

キャッシュ・スラッシングの状況になると、データのサイズがキャッシュのサイズを超えるため、キャッシュによる頻繁な削除とメインメモリーへのプリフェッチの実行が起きます。スラッシングにより、データのキャッシュによるパフォーマンス上の利点が打ち消されます。

スラッシングの可能性がある状況では、マスターから非キャッシュ・コヒーレント・データにアクセスし、MPU上で実行されるソフトウェアによってシステム全体のデータ・コヒーレンシーが維持できるようにする方が理にかなっています。

ガイドライン: データの小さなバッファーをMPUとシステムマスターとの間で共有する場合は、キャッシュ可能なアクセスをシステムマスターから実行することで、キャッシュフラッシュ動作が原因で発生するオーバーヘッドを回避することを検討してください。

システム内のマスターからより小さなコヒーレント・データ・ブロックへのアクセスが必要な場合に検討が必要な事項は、MPUからバッファーへのアクセスをキャッシュ可能なメモリーとして実行させ、システム内のマスターからデータへキャッシュ可能なアクセスを実行させることです。ACE-Liteプロトコルを介したCCUへのキャッシュ可能なアクセス は、FPGA-to-HPSブリッジによってサポートされ、マスターとMPUの両方からアクセスするデータが同じコピーであることが保証されます。MPUによるキャッシュ可能なバッファーの使用と、システムマスターによるキャッシュ可能なアクセスの実行により、ソフトウェアでは、システム全体のコヒーレンシーを維持する必要がなくなり、MPUとシステムマスターの両方によって同じデータのコピーの監視ができるようになります。