AN 802: インテル® Stratix® 10 SoC デバイスのデザイン・ガイドライン

ID 683117
日付 4/17/2019
Public
ドキュメント目次

3.2.3.3. 例3: FPGAでキャッシュ・コヒーレンシーなデータをHPSから読み取る

この例では、FPGAはHPSを起源とするデータへのアクセスを必要とします。HPSのMPUがこのデータに最近アクセスしたため、データがまだキャッシュに含まれている可能性があります。よって、FPGAがキャッシュされたデータにアクセスすることが最適だと考えられます。ダーティー・キャッシュ・ラインをフラッシュするソフトウェアのオーバーヘッドを回避するために、FPGAはFPGA-to-HPSブリッジに対してキャッシュ・コヒーレンシーな読み取りを実行できます。読み取られるバッファーは比較的小さいことが重要です。そうでない場合、L2キャッシュはほとんどの転送で、SDRAMからのデータの読み取りをスラッシングする可能性があります。大規模なバッファーの転送には、例1で示されているように、FPGAがFPGA-to-SDRAMポートから直接データを読み取るほうがより適切です。

ガイドライン: FPGA-to-HPSブリッジをターゲットとするフルアクセスを実行します。

トランザクションをキャッシュ可能にするには、FPGAマスターがFPGA-to-HPSブリッジから読み取りを行い、ACE-Liteプロトコルのキャッシュ拡張信号を利用する必要があります。キャッシュ・コヒーレンシーなアクセスのためのACE-Liteプロトコル信号拡張の詳細については、「関連情報」を参照ください。

図 15. FPGAでのキャッシュ・コヒーレンシーなデータの読み取り

ガイドライン: FPGA-to-HPSブリッジをターゲットにし、64バイトにアライメントされたキャッシュ可能なアクセスを実行します。

HPSのCCUは、キャッシュラインと同じサイズ (64バイト) のトランザクションに向けて最適化されています。そのため、データを64バイト境界に揃え、データ幅の調整後に、128ビットのFPGA-to-HPSブリッジポートへのバースト長が4ビートであることを確認する必要があります。例えば64ビットのFPGAマスターは、データを64バイトにアライメントし、バースト長8で64ビット全体のアクセスを実行する必要があります。

ガイドライン: キャッシュ可能なトランザクションごとに64バイトにアクセスします。

各バースト・トランザクションが64バイトにアクセスするようにします。各トランザクションは、64バイト境界で開始する必要があります。

表 8.  64バイト・アライメントのバースト長
FPGAマスター幅 (ビット) アクセスサイズ (バイト) バースト長
32 4 16
64 8 8
128 16 4