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

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

3.2.2. FPGAとデータを共有するMPU

データのスループットは、HPSとFPGA間においてデータを共有する正しい方法を選択することで最適化することができます。この章では、HPS SDRAMがデータソースであり、FPGAがそれにアクセスする必要があると仮定します。FPGAがHPS SDRAMを起源とするデータにアクセスする方法は、主に3つあります。

  • FPGAがFPGA-to-SDRAMポートを介して直接データにアクセスする
  • FPGAがFPGA-to-HPSブリッジを介して直接データにアクセスする
  • FPGAがHPS DMAを介してFPGAに移されたデータのコピーにアクセスする (非推奨)

SDRAMのデータがデータの最新コピーである (ソフトウェア管理のコヒーレンシーがある) 場合 、最高のスループットでデータにアクセスする方法は、FPGAのマスターがFPGA-to-SDRAMポートを介してデータに直接アクセスすることです。

SDRAMのデータがデータの最新のコピーではない可能性があり、ソフトウェアがMPUキャッシュをフラッシュしてシステム全体のコヒーレンシーを維持しない場合、FPGAマスターがFPGA-to-HPSブリッジにキャッシュ可能なトランザクションを実行し、確実に最新のデータにアクセスするようにします。

HPS DMAコントローラーをFPGAとHPS間のデータ移動に使用することは避けてください。代わりにFPGAファブリックのソフトDMAコントローラーを使用します。HPS DMAコントローラーは、HPS内にとどまるメモリーコピーまたはペリフェラル・データの移動にのみ使用します。

HPS DMAを使用しデータをFPGAに移動させることは、HPS SDRAMへのDMA帯域幅が制限されているため非推奨です。HPS DMAは、MPUに代わってバッファーを移動させるために使用する、もしくはペリフェラルとメモリー間の転送に使用することを目的としています。そのため、FPGAがHPSメモリーのバッファーにアクセスする必要がある場合、もしくはHPSがFPGAに保存されているデータにアクセスする必要がある場合は、HPSがこれらの転送を開始するのではなく、FPGAのマスターがこれらの転送を実行することが常に推奨されます。