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

ID 683192
日付 8/14/2020
Public
ドキュメント目次

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