インテルのみ表示可能 — GUID: ngj1557106908900
Ixiasoft
インテルのみ表示可能 — GUID: ngj1557106908900
Ixiasoft
5.1.8.2.1. システムレベルのキャッシュ・コヒーレンシー
番号 | チェック欄 | チェック項目 |
---|---|---|
1 | 使用するマスターとその数を検討します | |
2 | キャッシュ可能なアクセスの管理方法を決定します |
- MPU
- DMA
- マスター・インターフェイスを備えるペリフェラル
- HPSに接続するFPGA内のマスター
キャッシュ・コヒーレンシーは、システム内の複数のマスター間でデータを共有する必要がある場合に理解すべき基本的な内容です。SoCデバイスにおけるこのマスターは、MPU、DMA、マスター・インターフェイスを備えるペリフェラル、およびHPSに接続するFPGA内のマスターになります。MPUには、レベル1およびレベル2のキャッシュ・コントローラーが含まれているため、システム内のメインメモリーよりも多くの最新の内容を保持することができます。HPSでは、システム内のマスターがメモリーの一貫したビューを得るための2つのメカニズム (メインメモリーに最新の値が含まれるようにするメカニズム、もしくはACE-Liteインターフェイスを使用してマスターからディレクトリー・ベースのCCUファブリックにアクセスするメカニズム) をサポートします。
MPUでは、バッファーをキャッシュ不可になるように割り当てることで、データがL1およびL2キャッシュでキャッシュされないようにすることができます。MPUではまた、キャッシュ可能なデータにアクセスし、ほかのマスターがデータへのアクセスを試みる前にデータをメインメモリーにフラッシュする、もしくはキャッシュ不可のバッファーにコピーすることができます。オペレーティング・システムは通常、キャッシュ・コヒーレンシーを維持する上記の両方のメカニズムを備えています。
システム内のマスターからのコヒーレント・データへのアクセスは、MPUに依存してデータをキャッシュせずにメインメモリーに配置する、もしくはシステム内のマスターがCCUを介してキャッシュ可能なアクセスを実行することによって行われます。使用するメカニズムは、マスターがアクセスしているメモリーのバッファーサイズによって異なります。
詳細は、FPGAとのインターフェイス接続のセクションを参照してください。
ガイドライン: CCUを介してアクセスするデータが1MBのL2キャッシュに収まることを確認し、スラッシングによるオーバーヘッドを回避します
L2キャッシュのサイズは1MBであるため、合計サイズが1MBを超えるバッファーにシステム内のマスターが頻繁にアクセスするとスラッシングが発生します。
キャッシュのスラッシングは、データサイズがキャッシュサイズを超え、キャッシュで頻繁にエビクションとメインメモリーへのプリフェッチが引き起こされる状況です。スラッシングは、データをキャッシュすることによるパフォーマンス上の利点を打ち消します。
スラッシングの可能性がある状況では、マスターから非キャッシュ・コヒーレント・データにアクセスし、MPUで実行されるソフトウェアでシステム全体のデータ・コヒーレンシーを維持する方法がより合理的です。
ガイドライン: MPUとシステムマスターで共有される小さなデータバッファーの場合は、システムマスターでキャッシュ可能なアクセスを実行し、キャッシュのフラッシュ動作によるオーバーヘッドを回避することを検討します
システム内のマスターからより小さなコヒーレント・データ・ブロックへのアクセスが必要な場合は、MPUでキャッシュ可能なメモリーとしてバッファーにアクセスし、システム内のマスターでデータへのキャッシュ可能なアクセスを実行することを検討します。FPGA-to-HPSブリッジでサポートされるACE-LiteプロトコルによるCCUへのキャッシュ可能なアクセスは、マスターとMPUがデータの同じコピーにアクセスすることを保証しています。MPUでキャッシュ可能なバッファーを使用し、システムマスターによってキャッシュ可能なアクセスを実行することで、ソフトウェアでは、MPUとシステムマスターがデータの同じコピーを得られるようにシステム全体のコヒーレンシーを維持する必要がなくなります。