High Bandwidth Memory (HBM2) Interface Intel® FPGA IPユーザーガイド

ID 683189
日付 10/05/2020
Public
ドキュメント目次

6.6.1. HBM2 IPカタログGUIでのAXIスイッチの選択

1つのAXIスイッチ・コンポーネント/モジュールが2つのHBM2チャネルに接続されています。したがって、HBM2チャネルの各ペア (CH0とCH1など) に、そのHBM2チャネルペアのAXIスイッチをイネーブルするパラメーターがあります。 同等のパラメーターを使用して、後続チャネルのペア (CH2とCH3、CH4とCH5、CH6とCH7) のAXIスイッチをイネーブルすることができます。

次の図に示すように、AXIスイッチをイネーブルするパラメーターが編集可能なのは、チャネルのペアの両方のチャネルがイネーブルされている場合のみです。 AXIスイッチをイネーブルする場合、対応する4つのコントローラーすべてで、同じAXI Data WidthとEnable Reorder Buffer オプションを使用する必要があります。

図 32. AXIスイッチの選択

複数のHBMチャネルをイネーブルする場合は、AXIスイッチを特定のチャネルのペアに対してイネーブルし、残りのチャネルはAXIマスター (ユーザーロジック側) に直接AXI接続することができます。例えば、CH0とCH1のAXIスイッチモジュールはイネーブルし、CH2とCH3は、AXIスイッチをディスエーブルして直接AXI接続することができます。

AXIスイッチをイネーブルすると、マスターのアービトレーション・スキーム・パラメーター・テーブルの編集ができます。デフォルトでは、スイッチはラウンドロビン・アービトレーションを使用します (Honorは未選択、トランザクション数は0)。

ソフト4×4 AXIスイッチは、次の機能を提供します。

  • 各AXIマスターからHBM2 Pseudo Channel 4つ (HBM2チャネル2つ) のメモリースペースにアクセスできるようにします。
  • スイッチによるアクセスの提供は、4×4コンフィグレーションでのみです。つまり、このスイッチのコンフィグレーションを2×2に変更したり、8×8に拡張したりすることはできません。
  • スイッチによりサポートされる4×4アクセスの範囲は、AXI Writeアドレス、AXI Writeデータ、AXI Write応答、AXI Readアドレス、AXI ReadデータなどのAXIインターフェイス信号です。このスイッチには、APBサイドバンド・インターフェイスでのスイッチ機能はありません。
  • スイッチへのアクセスは次のとおりです。
    • すべてのAXIマスターで、コマンドの送信と任意のスレーブチャネルからの応答の受信ができます。
    • あるスレーブから別のスレーブへの切り替えは、ポストされていないトランザクションとして扱われます。つまり、マスターは、スレーブからすべての応答が返されるのを待機してから、次のスレーブに切り替えます。
  • AXI Switchがイネーブルされている場合のAXI IDの使用法は次のとおりです。
    • AXIスイッチ対応モードでは、9ビットAXI IDの上位2ビット (awid/arid) は使用できません。7ビット (128 AXI ID) のみが、AXI ID (awid/arid) として使用できます。
    • AXIスイッチをイネーブルしない場合は、9ビットをAXI IDとして使用できます。
    • AXI Switchのユーザー・インターフェイスでは、対応する書き込みデータは、次の書き込みコマンドを受け入れる前に使用可能であることを想定しています。したがって、スレーブでコマンドを受け入れる準備ができている場合でも、書き込みコマンドReady信号 (awready) に不連続性が見られることがあります。これによって効率が低下することはありません。書き込みコマンドがストリームで送信されている場合、ユーザーロジックによる書き込みコマンドのバッファリングが必要です。
  • AXI Switchがイネーブルされている場合のAXIアドレスの使用法は次のとおりです。
    • AXIアドレスバス (awaddr/araddr) は、8GB HBM2を使用する場合は31ビット幅、4GB HBM2を使用する場合は30ビット幅です。
      • これに対し、AXIスイッチがイネーブルされていない場合、AXIアドレスバスは、8GB HBM2が使用されている場合は29ビット幅、4GB HBM2が使用されている場合は28ビット幅です。
    • AXIアドレスバスの上位2ビットを使用して、対応するAXI要求のスレーブを識別します。

      HBM2 IPを生成する際、AXI Switchオプションがイネーブルされている場合、アドレス指定されたスレーブに基づいて、次の値を上位ビットで駆動してください。すべてのHBM2チャネルのペア、例えばHBM2 Channel 2と3、4と5、および6と7について同じ値が続きます。

      表 41.  AXIアドレスの上位ビットおよび対応するスレーブアドレス
      AXIアドレス (上位2ビット) スレーブアドレス
      00 HBM2 Channel 0/Pseudo Channel 0
      01 HBM2 Channel 0/Pseudo Channel 1
      10 HBM2 Channel 1/Pseudo Channel 0
      11 HBM2 Channel 1/Pseudo Channel 1
      注: AXIスイッチには、特定のスレーブへのアクセスを制限するオプションはありません。マスターの責任において、必要に応じて特定のスレーブへのアクセスをマスクし、正しいスレーブにアクセスするために正しいSlave Addressを提供します。

      1つ以上のAXIモジュールをLogic Lockリージョンに割り当てるオプションは、HBM2のデザイン例で参照可能です。これを実際のデザインで使用して、タイミングを向上させることができます。最終的なタイミング・クロージャーは、いくつかの要因に基づきます。例えば、 インテル® Quartus® Primeタイミング・クロージャー、コアロジックの使用率、コアクロック周波数などです。

  • スイッチのHBM2 Channelのコントローラーのコンフィグレーションは次のとおりです。
    • AXIスイッチをイネーブルする場合、対応する2つのHBM2チャネルのコントローラーのコンフィグレーションは、同じAXI Dataのコンフィグレーション (AXIバースト・コンフィグレーション、データ幅など) 、およびEnable Reorderバッファーオプションを使用する必要があります。

コマンド・アービトレーションが必要になるのは、単一のスレーブへのアクセスをめぐって複数のマスターによる競合があり、トランザクションを効率的にスケジューリングするための支援が必要な場合です。使用可能なオプションは、トランザクションの効率改善やAXIマスターの優先順位付けに役立ちます。特定のスレーブへのアクセスをめぐってAXIマスターによる競合がない場合、すべてのトランザクションはポイントツーポイントと見なされ、それに応じて処理されます。次のアービトレーション・スキームがサポートされています。

  • アービトレーション・スキーム1: ラウンドロビン
    • これは、デフォルトのアービトレーションスキームです。AXIマスター0から3の順序に従います。MasterのTransaction Countは0に設定され、Honorは選択されません。各マスターから発行できるトランザクションは1つのみです。その後、次のマスターへのアクセスが許可されます。(1つのAXIトランザクションは、1つのBL4または1つのBL8トランザクションを意味します。選択したバースト・コンフィグレーションに基づきます。)
  • アービトレーション・スキーム2: Honorマスター
    • このオプションを使用すると、4つのAXIマスターのいずれかをHonorに選択して、Transaction Countを0に設定できます。
    • このオプションを選択すると、選択したマスターには、ほかのAXIマスターよりも高いプライオリティーが付与されます。
    • このマスターが処理されると、残りのマスターはラウンドロビン・アービトレーションによって処理されます。
    • どのマスターにもHonorを選択しない場合、すべてのマスターはラウンドロビン・プライオリティーに従います (アービトレーション・スキーム1)。
  • アービトレーション・スキーム3: トランザクション数
    • このアービトレーション・スキームでは、トランザクション数を使用します。Honor Masterオプションを使う場合と使わない場合があります。このスキームでは、各マスターのトランザクション数を設定します。トランザクション数により、AXIマスターが任意の時点で発行するトランザクションの総数を定義します。各トランザクション数は、AXIインターフェイスでの単一のバースト長4トランザクション (32B) または単一の疑似バースト長8トランザクション (64B) を参照します。例えば、トランザクション数が10の場合、10個のAXIコマンド・トランザクションの発行が、マスターにより可能であることを指します (アクセスが許可された場合)。AXIマスターでは、10個のトランザクションすべてを1つのAXIスレーブに発行するか、必要に応じてすべてのAXIスレーブに分割するか、10個未満のAXIトランザクションを発行するかを選択できます。
    • マスターからスレーブへのアクセスが許可されたら、マスターでは、すべての「Transaction Count」の数のトランザクションの発行ができます。ただしこれは、マスターによるトランザクションの発行が可能で、対応するスレーブで要求を処理する準備ができている場合です。スレーブでマスターへサービスを提供する準備ができていない場合や、マスターが想定される合計トランザクションの発行準備ができていない場合、ラウンドロビン方式によって次のマスターにアクセスが許可されます。マスターにアクセスが許可されるたびに、許可されるトランザクションの数はTransaction Count 値にリセットされます 。例えば、マスター0のTransaction Count の設定が50の場合、マスター0がトランザクションを20回発行してアイドル状態になると、マスター1にアクセスが許可されます。マスター0に再度アクセスが許可されると、マスター0はトランザクションを50回実行できます。
    • Honorモードを選択すると、そのマスターのトランザクション数はディスエーブルされ、値の設定は0になります。これは、最も高いプライオリティーを示します。このマスターでは、すべてのトランザクションを発行できます。その後、ラウンドロビン・スキームにより次のマスターにアクセス権が付与されます。
    • トランザクション数は最大65535までサポートされています。ただし、トランザクション数が増えるとタイミング・クロージャーに悪影響を与える可能性があるため、アプリケーションのニーズに基づいて適切なトランザクション数を選択してください。
注:
  • コマンド・アービトレーションのすべてのコンフィグレーションは、実行時ではなく、IP生成時に行われます。
  • 代表的なトラフィック・パターンのRTLシミュレーションをアプリケーションに対して実行し、アービトレーション・スキームをイネーブルして最適化することをお勧めします。

スイッチによるエリア・オーバーヘッド

4×4 AXIスイッチの4つのインスタンスによるエリア使用率は、4×4 AXIスイッチの4つのインスタンスでのメモリースタック1つに対して約7.1% (合計約700,000のALMのうち約50,000) です。デザイン例によって提供されるLogic Lock制約の例は、タイミング・クロージャーの向上のためです。

レイテンシー

AXIポート間で最大20 AXIクロックサイクルのラウンドトリップ・レイテンシーです。 ただし、トランザクションがポイントツーポイントの場合です。(これは、コマンドが受信されてから読み出しデータがユーザー・インターフェイスで使用可能になるまでの物理的レイテンシーを指します。コマンドのスケジューリングやコマンドキューでの待機時間は含まれません。) スイッチを使用する場合の追加のレイテンシーは、コマンド・アービトレーション・ロジックに基づきます。AXIマスターは、すべてのスレーブ応答が戻るのを待機してから、別のスレーブに切り替える必要があります。