インテルのみ表示可能 — GUID: ewa1402971199180
Ixiasoft
インテルのみ表示可能 — GUID: ewa1402971199180
Ixiasoft
2.2.3. global_mem
<!-- DDR3-1600 -->
<global_mem name="DDR" max_bandwidth="25600" interleaved_bytes="1024"
config_addr="0x018">
<interface name="board" port="kernel_mem0" type="slave" width="512" maxburst="16"
address="0x00000000" size="0x100000000" latency="240"/>
<interface name="board" port="kernel_mem1" type="slave" width="512" maxburst="16"
address="0x100000000" size="0x100000000" latency="240"/>
</global_mem>
<!-- QDRII -->
<global_mem name="QDR" max_bandwidth="17600" interleaved_bytes="8"
config_addr="0x100">
<interface name="board" type="slave" width="64" maxburst="1"
address="0x200000000" size="0x1000000" latency="150" addpipe="1">
<port name="kernel_qdr0_r" direction="r"/>
<port name="kernel_qdr0_w" direction="w"/>
</interface>
<interface name="board" type="slave" width="64" maxburst="1"
address="0x201000000" size="0x1000000" latency="150" addpipe="1">
<port name="kernel_qdr1_r" direction="r"/>
<port name="kernel_qdr1_w" direction="w"/>
</interface>
<interface name="board" type="slave" width="64" maxburst="1"
address="0x202000000" size="0x1000000" latency="150" addpipe="1">
<port name="kernel_qdr2_r" direction="r"/>
<port name="kernel_qdr2_w" direction="w"/>
</interface>
<interface name="board" type="slave" width="64" maxburst="1"
address="0x203000000" size="0x1000000" latency="150" addpipe="1">
<port name="kernel_qdr3_r" direction="r"/>
<port name="kernel_qdr3_w" direction="w"/>
</interface>
</global_mem>
属性 | 説明 |
---|---|
name | インテル® FPGA SDK for OpenCL™ ユーザーがメモリータイプの識別に使用する名前です。それぞれの名前は一意、かつ 32 文字未満でなければなりません。 |
max_bandwidth | 現在のコンフィグレーションに結合されたすべてのグローバルメモリー・インターフェイスの単位 Mb/s ( メガバイト / 秒 ) での最大帯域幅です。 インテル® FPGA SDK for OpenCL™オフライン・コンパイラーは、max_bandwidthを使用し、アプリケーションとボードに適したアーキテクチャーを選択します。 メモリーのデータシートから帯域幅の値を計算します。 800 MHz で動作中の 64 ビット DDR3 インターフェイスでのmax_bandwidthの計算例は次のとおりです。 max_bandwidth = 800 MHz x 2 x 64 ビット ÷ 8 ビット = 12800 MB/s ブロック RAM は、グローバルメモリーとして外部メモリーの代わり、もしくは外部メモリーと結合して、使用することができます。ブロック RAM のmax_bandwidth計算式は、max_bandwidth = ブロック RAM スピード x ( ブロック RAM インターフェイスのサイズ ÷ 8 ビット ) です。 100 MHz で動作中の 512 ビット・ブロック RAM でのmax_bandwidthの計算例は次のとおりです。 max_bandwidth = 100 MHz x 512 ビット ÷ 8 ビット = 6400 MB/s |
interleaved_bytes | 特定のグローバルメモリー・システムで複数のインターフェイスをインスタンス化する際、board_spec.xmlファイル内のinterleaved_bytes属性を含めます。この属性は、オフライン・コンパイラーがインターフェイス間で分配するデータのサイズを制御します。 オフライン・コンパイラーは、現在、1 つのフルバーストのサイズより細かくないバンク間でデータをインターリーブすることができます。この属性は、バイト単位でこのサイズを指定し、通常、burst_size x width_bytesで計算されます。interleaved_bytesの値は、ホスト・インターフェイスとカーネルにおいて等しくなければなりません。したがって、この観点から、OpenCL Memory Bank Divider のコンフィグレーションは、エクスポートされたカーネル・スレーブ・インターフェイスと一致していなければなりません。 ブロック RAM の場合、interleaved_bytesはインターフェイスの幅 ( 単位バイト ) と等しくなります。 |
config_addr | ホスト・ソフトウェアがメモリーの設定に使用する ACL Mem Organization Control Qsys コンポーネント (mem_org_mode) のアドレスです。ボードにホモジニアス・メモリーがある場合、この属性を省略することができます。ソフトウェアは、このコンポーネントのためにデフォルトアドレス (0x18) を使用します。ボードにヘテロジニアス・メモリーがある場合、各メモリータイプのボードシステムに mem_org_mode コンポーネントがあります。 config_addr属性を mem_org_mode コンポーネントのベースアドレス値に入力して設定します。 |
default | デフォルトのメモリー・インターフェイスとして、このオプションの属性を含めて値 1 をグローバルメモリーに割り当てて設定します。 この属性を実装しない場合、board_spec.xmlファイルで定義されている最初のメモリータイプがデフォルトのメモリー・インターフェイスになります。 |
interface | 各インターフェイスで指定すべきパラメーターについては、interfaceの項を参照してください。 |