インテルのみ表示可能 — GUID: onu1619702466280
Ixiasoft
インテルのみ表示可能 — GUID: onu1619702466280
Ixiasoft
41.3.4. Warp IPの外部メモリー
外部メモリーのメモリー空間割り当て
バッファースペースのコンフィグレーション | 領域サイズ (MB) | 必要なメモリー領域 | アライメント (倍数) |
---|---|---|---|
Sdバッファーサイズ (1024x1024) | 24 | 0x0180_0000 | 0x0200_0000 |
HDバッファーサイズ (2048x2048) | 96 | 0x0600_0000 | 0x0800_0000 |
UHDバッファーサイズ (4096x4096) | 384 | 0x1800_0000 | 0x2000_0000 |
バッファースペースのコンフィグレーション | 領域サイズ (MB) | 必要なメモリー領域 | アライメント (倍数) |
---|---|---|---|
SDバッファーサイズ (1024x1024) | 16 | 0x0100_0000 | 0x0100_0000 |
HDバッファーサイズ (2048x2048) | 64 | 0x0400_0000 | 0x0400_0000 |
UHDバッファーサイズ (4096x4096) | 256 | 0x1000_0000 | 0x1000_0000 |
IPは、構造体の ram_addr 要素を使用して、フレームバッファーに割り当てられたメモリー領域のベースアドレスをソフトウェアAPIに渡します。
係数テーブルが必要とするメモリー領域は、ワープエンジンの数、画像の解像度、およびワープの種類に関連します。IPは、Use easy warpをオフにした場合にのみ、このメモリー領域を必要とします。
ワープエンジン | 領域サイズ (MB) | 必要なメモリー領域 | アライメント (倍数) |
---|---|---|---|
1 | 16 | 0x0100_0000 | 0x0100_0000 |
2 | 32 | 0x0200_0000 | 0x0200_0000 |
外部メモリーへの帯域幅
Warp IPから外部メモリーへのインターフェイスのパフォーマンスは、Warp IPを使用するシステムが正しく動作するために重要です。
Warp IPは、かなりの量のメモリー・トラフィックを生成します。外部メモリーとの間でやり取りされるビデオストリームは最大4つです。さらに、各エンジンには係数テーブルにアクセスするための読み出しストリームが3つあります。これらすべてのストリームが組み合わさって、Warp IPのメモリーアクセスが複雑になります。ストリームは、DDR4などのメモリーにアクセスするときに得られる効率に影響します。
Warp IPメモリー・コントローラーは、これらの複雑なアクセスパターンによって生じる潜在的な非効率性を軽減します。すべての読み出しおよび書き込みアクセスに8ビートのバースト長を使用して、DDR4メモリーのバースト・パフォーマンスを向上させます。また、個々の読み出しおよび書き込みバーストをまとめてクラスター化し、DDR4インターフェイスでの読み出しおよび書き込みターンアラウンド・デッド・タイムに関する問題の一部を排除します。
これらのメモリー・アクセス・パターンは、適用する画像変換によって異なります。一部の複雑な画像変換では、スキップ領域機能によってメモリー・トラフィックが削減される場合があります。Use single memory bounceがオフの場合、生成されたメモリー・トラフィックの最も悪いの変換の1つは、入力ピクセルと出力ピクセルの間に1:1のマッピングを与えるユニティーワープです。Use single memory bounceがオンの場合、メモリー・トラフィックは変換の垂直方向の圧縮量に比例します。垂直方向の変換における圧縮量が高くなるほど、メモリー帯域幅も高くなります。
Warp IPの動作は、システム内のDDR4メモリーの唯一のユーザーである場合に予測しやすくなります。システム内のDDR4メモリーの高帯域幅ユーザーをWarp IPのみにしてください。他の高帯域幅アクセスがWarp IPと同時にメモリーに対して行われる場合、相互作用によってパフォーマンスに悪影響が及ばないようにしてください。
Warp IPのメモリー・トラフィックの合計
Warp IPの3つの異なるコンフィグレーションは、外部メモリーへの接続方法に影響し、したがって合計メモリー・トラフィックに影響します。
- Use easy warpがオンの場合
- Use easy warpはオフ、Use single memory bounceはオンまたはオフの場合
この図では、IPが使用するすべての可能なデータストリームの概略図を示しています。Use easy warpおよびUse single memory bounceの設定に応じて、IPはこれらのストリームのすべてを必要としません。
データストリーム | Use easy warpがオン | Use single memory bounceがオン | Use single memory bounceがオフ |
---|---|---|---|
入力ビデオ | アクティブ | アクティブ | アクティブ |
キャッシュロード | アクティブ | アクティブ | |
ワープされた画像 | アクティブ | ||
係数の読み出し | アクティブ | アクティブ | |
出力ビデオ | アクティブ | アクティブ |
各データストリームの帯域幅は、次のとおりです。
- ビデオストリーム (入力ビデオ、ワープ画像、出力ビデオ)
- 係数ストリーム (係数読み出し)
- キャッシュロード (ビデオストリームの拡大バージョン)
ビデオストリームのピークメモリー帯域幅の概算
この式では、ワープを通過するビデオストリームのピーク帯域幅 (ビット/秒) を計算します (number_of_linesにはブランキングが含まれます)。データの各ピクセルは、32ビット・ワードとして外部メモリーとの間で転送されます。
ピーク帯域幅 = 32 * 1行あたりのピクセル数 * 行数 * フレームレート
解像度 | フレームレート (fps) | ピーク・データ・レート (Gbps) |
---|---|---|
3840x2160 (2250行) | 60 | 16.6 |
3840x2160 (2250行) | 30 | 8.3 |
1920x1080 (1125行) | 60 | 4.2 |
係数ストリームのピークメモリー帯域幅の概算
係数ストリームに必要なメモリー帯域幅は、ビデオストリームの9%と概算できます。
解像度 | フレームレート (fps) | ピーク・データ・レート (Gbps) |
---|---|---|
3840x2160 | 60 | 1.5 |
3840x2160 | 30 | 0.75 |
1920x1080 | 60 | 0.4 |
キャッシュロードのピークメモリー帯域幅の概算
キャッシュロード用にIPが必要とするメモリー帯域幅は、IPが適用するワープ変換と密接に関係しています。メモリー帯域幅は、標準ビデオストリームに必要な帯域幅に比例します。また、Use single memory bounceによっても影響を受けます。
Use single memory bounceがオフの場合、キャッシュロードに必要なワーストケースの場合の帯域幅は1:1またはユニティーワープで発生し、通常のビデオストリームよりも約25%高くなります。ユニティーワープは帯域幅の上限を与えます。他の変換では、より低い値が得られます。
Use single memory bounceがオンの場合、IPが実行する変換での垂直圧縮の量は、キャッシュロードに必要な帯域幅に影響します。1:1またはユニティーワープには、1:1の垂直圧縮があります。結果として得られるキャッシュロード帯域幅は、標準ビデオストリームの帯域幅と同等になります。対照的に、53度の垂直キーストーン・ワープでは、一部の領域で垂直圧縮が2:1に近づきます。このワープの最大キャッシュ ロード帯域幅は、標準ビデオストリーム帯域幅の2倍です。2:1の比率は、推奨される動作のキャッシュロード帯域幅の上限を提供します。
推奨される2:1の圧縮制限は、出力ピクセルを生成する際にバイキュービック・ピクセル補間プロセスで行われるローパス・フィルタリングの制限によります。ただし、圧縮率が2:1を超える変換を生成することもできます。これによって、シングル・メモリー・バウンスのメモリー帯域幅に影響が及び、最終的な画質が低下する可能性があります。
メモリー・インターフェイス帯域幅の要件
解像度 | フレームレート (fps) | 最大バースト・データレート (Gbps) |
3840x2160 | 60 | 34 |
3840x2160 | 30 | 17 |
1920x1080 | 60 | 8.5 |
解像度 | フレームレート (fps) | 最大バースト・データレート (Gbps) |
---|---|---|
3840x2160 | 60 | 51.3 |
3840x2160 | 30 | 25.7 |
1920x1080 | 60 | 8.5 |
解像度 | フレームレート (fps) | 最大バースト・データレート (Gbps) |
---|---|---|
3840x2160 | 60 | 72 |
3840x2160 | 30 | 36 |
1920x1080 | 60 | 18 |
インテルは、これらのバースト・データレートをIPのメモリー・インターフェイスに参照します。使用可能な合計データレートは、インターコネクト・ファブリックのパフォーマンスやメモリー・コントローラーの効率など、IP以外の他の要因の影響を受けます。
メモリーへのアクセスを共有するシステムの例
このシステム例でのWarp IPは、UHDフレームを60 fpsで処理するシステム内のフレームバッファーとDDR4インターフェイスを共有します。システムは、DDR4 EMIFがDDR4メモリーへの2,133 MHzインターフェイスを実行するインテルArria 10 GX開発キットで実行されます。このシステムには、プロセッサー、フレームバッファー読み出し、フレームバッファー書き込み、およびワープという、メモリーにアクセスする4つのメモリーマップド・ホストがあります。

このシステムを機能させるには、
- 読み出しと書き込みに32ビートのバーストを使用するようにFrame Bufferをコンフィグレーションします。
- 256の読み出しおよび書き込みFIFO深度を使用するようにFrame Bufferをコンフィグレーションします。
- Warp IPを優先して、DDR4 EMIFのフロントエンドでのアービトレーションの重み付けを16:1に設定します (mm_vfb_bridge コンポーネントを介して接続されたプロセッサーおよびフレームバッファーの読み出しおよび書き込みインターフェイスとの比較)。
- Avalonメモリーマップド・ポートのパイプライン転送セクションのMaximum pending read transactionsパラメーターを8に設定します。
- DDR4 EMIFのフロントエンドにあるドメインのLimit interconnect pipeline stages toを4に設定します。この制限は、メモリー・インターフェイスのクロックドメインでタイミングを満たします。
プロセッサーからのメモリーアクセスは、システムの残りの部分のパフォーマンスに悪影響を与える可能性があります。パフォーマンスに影響がある場合は、フレームバッファーの読み出しおよび書き込みインターフェイスを優先して、mm_vfb_bridge コンポーネントのアービトレーションの重み付けを1:2:2以上に増やします。もしくは、mm_vfb_bridge に固定優先度のアービトレーション・スキームを実装して、プロセッサーのメモリーアクセスの影響を軽減します。



メモリーへのアクセスを共有する複数のWarp IP
