インテル® FPGA SDK for OpenCL: カスタム・プラットフォーム・ツールキット・ユーザーガイド

ID 683085
日付 10/31/2016
Public
ドキュメント目次

2.1.1.3. OpenCL Memory Bank Divider

OpenCL™Memory Bank Divider は、Avalon®-MM スレーブポート上のホスト・インターフェイスからの受信要求を受け取り、適切なバンク・マスター・ポートに配線する Qsys コンポーネントです。 このコンポーネントは、ホストとグローバルメモリー・インターフェイス間のパス上に存在していなければなりません。加えて、カーネルとグローバルメモリー・インターフェイス間のパスの外側に存在している必要があります。
表 9.  OpenCL Memory Bank Divider でのパラメーター設定
パラメーター 説明
Number of banks ボードに含まれる各グローバルメモリー・タイプごとでのメモリーバンクの数です。
Separate read/write ports このパラメーターを有効にすると、各バンクにリード動作用とライト動作用のポートが 1 つずつあります。
Add pipeline stage to output このパラメーターを有効にし、潜在的なタイミング改善を可能にします。
Data Width メモリーへのデータバスの幅 ( ビット単位 ) です。
Address Width (total addressable) すべてのグローバルメモリーのアドレス指定に必要なアドレスビットの総数です。
Burst size (maximum) board_spec.xmlファイルにあるglobal_memエレメントの interface属性で定義されているmaxburstの値です。
Maximum Pending Reads コンポーネントがwaitrequest信号をアサートせずに処理が可能な保留中のリード送信の最大数です。
注意:
高いMaximum Pending Reads値は、Qsys はコンポーネントのマスターとスレーブの間で多くのデバイスリソースを消費するディープ応答 FIFO バッファーを挿入します。また、ホストとメモリー・インターフェイス間の達成可能な帯域幅も増加します。
Split read/write bursts on burst word boundary バースト・ワード・バウンダリーでのリードとライトのバーストの分割を有効にします。

Number of banksパラメーターの値を 1 より大きく、ホスト・コントローラーがスレーブポートに送信するバーストのリードとライトがバースト・ワード・バウンダリーを交差する場合は、このパラメーターを有効にします。

表 10.  OpenCL Memory Bank Divider コンポーネントでの信号とポート
信号とポート 説明
clk バンク・ディバイダー・ロジックが使用するこのクロック入力です。ホストおよびメモリー・インターフェイスの IP が異なるクロックを有する場合、clkクロックレートは、2 つの IP クロックの一番遅いものよりも遅くないようにします。
reset ボードをパワーオンリセットに接続するリセット入力です。
s ホスト・インターフェイス・コントローラーに接続するスレーブポートです。
kernel_clk このクロック入力をドライブする OpenCL Kernel Clock Generator からのkernel_clk出力です。
kernel_reset このクロック入力を駆動する OpenCL Kernel Interface からのkernel_reset出力です。
acl_bsp_snoop このAvalon® Streaming (Avalon-ST) ソースをエクスポートします。board_spec.xmlファイルにあるinterfacesインターフェイスには、デフォルトメモリー (acl_internal_snoop) のスヌープ・インターフェイスのみが記述されています。ヘテロジニアス・メモリー・デザインがある場合、これらのタスクは、デフォルトメモリーに関連付けられた OpenCL Memory Bank Divider コンポーネントに対してのみ実行してください。
重要: Qsys でビルドしたメモリーシステムは、acl_bsp_snoopの幅を改変します。acl_bsp_snoopの幅と一致するように、board_spec.xmlファイルにあるchannelsエレメント内のstreamsourceインターフェイスの幅を更新する必要があります。
重要: board_spec.xmlファイルでは、interfacesエレメント内のstreamsourceカーネル・インターフェイスで指定されたスヌープ・インターフェイス (acl_internal_snoop) の幅を更新します。幅の更新は、board_spec.xmlにあるglobal_memインターフェイス・エントリーが、デフォルトメモリーで対応する OpenCL Memory Bank Divider コンポーネントからのbank<N> Avalon-MM マスターの特性と一致している必要があります。
acl_bsp_memorg_host OpenCL Kernel Interface のacl_bsp_memorg_hostインターフェイスに接続するコンデュイットです。
bank1, bank2, ..., bank8 OpenCL Memory Bank Divider で使用可能なメモリーマスター数は、ユニットがインスタンス化されたときに含まれているメモリーバンク数によって異なります。board_spec.xmlファイルで指定された対応するカーネル・メモリー・インターフェイスの開始アドレスと同じ順序で、各バンクを各メモリー・インターフェイスに接続します。

例えば、 アドレス 0 で始まるglobal_memインターフェイスは、OpenCL Memory Bank Divider からのメモリーマスターbank1に対応している必要があります。