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

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

2.1.5. インターフェイスの帯域幅

HPSとFPGAファブリック間のデータの移動に使用するインターフェイスを特定するには、各インターフェイスの帯域幅を理解する必要があります。次の図は、HPSとFPGAファブリック間で利用可能なピーク・スループットおよびHPSの内部帯域幅を表しています。この例では、FPGAファブリックは250MHz、MPUは1200MHz、そして64ビットの外部SDRAMは1067MHzで動作することを前提にしています。

FPGAからSDRAMへのインターフェイスには、ポート・コンフィグレーション3が使用されます (FPGA-to-SDRAM0およびFPGA-to-SDRAM2はどちらも128ビット幅)。

略語については、Overview of HPS Memory-Mapped Interfacesの図を参照ください。

図 2. Arria 10 HPSのメモリーマッピングされた帯域幅

各HPSインターフェイスの相対遅延とスループット

この表は、各インターフェイスの使用方法、相対する遅延、およびスループットを示しています。

インターフェイス

トランザクションの使用例

レイテンシー

スループット

使用モデルとして推奨される

HPS-to-FPGA

MPUがFPGAのメモリーにアクセスする場合

はい

HPS-to-FPGA

MPUがFPGAのペリフェラルにアクセスする場合

非常に低い

いいえ — ガイドライン: HPS-to-FPGAブリッジを使用してMPUからFPGAのペリフェラル・レジスターにアクセスすることは避けてください。 を参照してください。

Lightweight HPS-to-FPGA

MPUがFPGAのレジスターにアクセスする場合

はい

Lightweight HPS-to-FPGA

MPUがFPGAのメモリーにアクセスする場合

非常に低い

いいえ — ガイドライン: Lightweight HPS-to-FPGAブリッジを使用してMPUからFPGAのメモリーにアクセスすることは避けてください。 を参照してください。

FPGA-to-HPS

FPGAマスターがキャッシュ・コヒーレントではないSDRAMにアクセスする場合

いいえ — ガイドライン: FPGA-to-HPSブリッジを使用して非キャッシュ・コヒーレントのSDRAMにFPGAのソフトロジックからアクセスすることは避けてください。 を参照してください。

FPGA-to-HPS

FPGAマスターがHPSオンチップRAMにアクセスする場合

はい

FPGA-to-HPS

FPGAマスターがHPSペリフェラルにアクセスする場合

はい

FPGA-to-HPS

FPGAマスターがコヒーレント・メモリーにアクセスし、キャッシュミスになる場合

はい

FPGA-to-HPS

FPGAマスターがコヒーレント・メモリーにアクセスし、キャッシュヒットになる場合

中から高

はい

FPGA-to-SDRAM

FPGAマスターが単一のFPGA-to-SDRAMポートを介してSDRAMにアクセスする場合

High

はい

FPGA-to-SDRAM

FPGAマスターが複数のFPGA-to-SDRAMポートを介してSDRAMにアクセスする場合

非常に高い

はい

ガイドライン: HPS-to-FPGAブリッジを使用してMPUからFPGAのペリフェラル・レジスターにアクセスすることは避けてください。

HPS-to-FPGAブリッジはバースト・トラフィックに最適化されており、ペリフェラル・アクセスは通常、1ビートのみの短いワードサイズのアクセスです。そのため、HPS-to-FPGAブリッジを介してペリフェラルにアクセスした場合、すでにインフライト状態のほかのバースト・トラフィックによってトランザクションがストールする可能性があります。

ガイドライン: Lightweight HPS-to-FPGAブリッジを使用してMPUからFPGAのメモリーにアクセスすることは避けてください。

Lightweight HPS-to-FPGAブリッジは非バーストのトラフィックに最適化されており、メモリーアクセスは通常、バーストとして実行されます (キャッシュ操作のために多くの場合32バイト)。そのため、Lightweight HPS-to-FPGAブリッジを介してメモリーにアクセスすると、スループットが制限されます。

ガイドライン: FPGA-to-HPSブリッジを使用して非キャッシュ・コヒーレントのSDRAMにFPGAのソフトロジックからアクセスすることは避けてください。

FPGA-to-HPSブリッジは、SDRAM以外のアクセス (ペリフェラル、オンチップRAM、ACP) に最適化されています。そのため、非コヒーレントなアクセスを実行してSDRAMに直接アクセスすると、FPGA-to-SDRAMポートからのアクセスに比べてレイテンシーが増加し、スループットが制限されます。

ガイドライン: FPGAのソフトロジック (DMAコントローラーなど) を使用し、共有データをHPSとFPGA間で移動します。MPUおよびHPS DMAコントローラーをこの目的で使用することは避けてください。

HPSとFPGA間で共有データを移動する場合、インテルでは、MPUまたはHPS DMAコントローラーを使用してデータを移動するのではなく、FPGAから行うことを推奨しています。FPGAでキャッシュ・コヒーレントなデータにアクセスする必要がある場合は、FPGA-to-HPSブリッジにアクセスし、適切な信号でキャッシュ可能なトランザクションを発行する必要があります。キャッシュ・コヒーレントではないデータをFPGAまたはHPSに移動する必要がある場合は、FPGAロジックに実装されているDMAエンジンでデータを移動することにより、可能な限り最高のスループットを実現することができます。HPS内には、HPSとFPGAの間でデータを移動することができるDMAエンジンが含まれていますが、その目的は、メモリーのマスターになることがないペリフェラルの支援、またはメモリー間のデータ移動をMPUに代わって提供することです。

ガイドライン: HPS-to-FPGAブリッジもしくはFPGA-to-SDRAMポートを介してデータを移動する必要があるデザインの開始点として、HPS-to-FPGA Bridges Design Exampleを使用します。

インテルでは、Arria 10 SoC開発キットを所有しているユーザーに、FPGA-to-HPSブリッジおよびFPGA-to-SDRAMポートを介してデータを移動するデザイン例を提供しています。このデザインでは、さまざまなバーストサイズでの各インターフェイスのスループットを測定するため、さまざまな条件下でメモリーの帯域幅がどのように変化するかを確認することができます。