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

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

3.1.5. インターフェイス帯域幅

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

図 12. Stratix 10 HPSのメモリーマップド帯域幅略語についてはHPSメモリーマップド・インターフェイスの概要の図を参照ください。

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

インターフェイス

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

レイテンシー

スループット

HPS-to-FPGA

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

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

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

FPGA-to-HPS

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

FPGA-to-HPS

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

FPGA-to-HPS

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

中から高

FPGA-to-SDRAM

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

FPGA-to-SDRAM

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

非常に高い

注: コンフィグレーションが推奨されていないインターフェイスに関しては、対応する「HPS-to-FPGAブリッジ」、「Lightweight HPS-to-FPGAブリッジ」、「FPGA-to-HPSブリッジ」インターフェイスの章を参照ください。

ガイドライン: 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) に向け最適化されています。そのため、非コヒーレントなアクセスを実行してSDRAMに直接アクセスすると、FPGA-to-SDRAMポートへのアクセスに比べてレイテンシーが増加し、スループットが制限されます。

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

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