インテルのみ表示可能 — GUID: kxe1491782089674
Ixiasoft
インテルのみ表示可能 — GUID: kxe1491782089674
Ixiasoft
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の図を参照ください。
各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ポートを介してデータを移動するデザイン例を提供しています。このデザインでは、さまざまなバーストサイズでの各インターフェイスのスループットを測定するため、さまざまな条件下でメモリーの帯域幅がどのように変化するかを確認することができます。