インテルのみ表示可能 — GUID: nik1412467951097
Ixiasoft
3.5.5. バースト転送
バーストでは、すべてのワードを個別に処理するのではなく、複数の転送を1つの単位として実行します。バーストにより、一度に複数のワードを処理することで効率が上がるスレーブポートのスループットを向上させることができます (SDRAMなど)。バーストを行うことによる実際の影響は、バーストの期間中に調停がロックされることです。バーストを行うAvalon-MMインターフェイスが読み出しと書き込みの両方をサポートする場合は、読み出しバーストと書き込みバーストの両方をサポートする必要があります。
バーストを行うAvalon-MMインターフェイスには、burstcount出力信号が含まれます。スレーブにburstcount入力がある場合、そのスレーブはバーストに対応しています。
burstcount信号は次のように動作します。
- バーストの開始時に、burstcountはバースト内のシーケンシャルな転送数を示します。
- burstcountの幅が <n> の場合、最大のバースト長は、2(<n>-1) です。正当な最小バースト長は1です。
スレーブ読み出しバーストをサポートするには、スレーブでは次の内容もサポートする必要があります。
- 待機状態 (waitrequest信号を使用)
- 可変レイテンシーでのパイプライン転送 (readdatavalid信号を使用)
バーストの開始時に、スレーブは、addressとバースト長の値であるburstcountを確認します。アドレスが <a> でburstcountの値が <b> のバーストの場合、スレーブでは、アドレス <a> から開始する <b> の数の連続する転送を行う必要があります。バーストは、スレーブが <b番目> のデータワードを受信 (書き込み時) または返信 (読み出し時) した後に完了します。バーストを行うスレーブでは、それぞれのバーストで1度だけaddressとburstcountをキャプチャーする必要があります。スレーブロジックでは、バースト内の最初の転送以外のアドレスを推断する必要があります。スレーブでは、入力信号のbeginbursttransferを使用することもできます。この信号は、インターコネクトがそれぞれのバーストの最初のサイクルでアサートするものです。