Avalon® インターフェイスの仕様書

ID 683091
日付 9/26/2022
Public
ドキュメント目次

3.5.4.1. 可変レイテンシーでのパイプライン読み出し転送

アドレスおよびコントロール信号をキャプチャー後、 Avalon® -MM のパイプライン・エージェントは、1 サイクルもしくは複数サイクルを費やしデータを生成します。パイプライン・エージェントでは、複数の保留中の読み出し転送をいつでも保持することができます。

可変レイテンシーのパイプライン読み出し転送
  • readdatavalid 信号が追加で必要になります。この信号は、読み出しデータが有効なことを示します。
  • パイプライン化されていない読み出し転送と同じ信号セットを含みます。
可変レイテンシーのパイプライン読み出し転送では、readdatavalid を使用するエージェント・ペリフェラルが可変レイテンシーでパイプライン化されているとみなされます。読み出しコマンドに対応する readdata 信号と readdatavalid 信号は、最短で、読み出しコマンドがアサートされた後のサイクルでアサートすることができます。

エージェントは、読み出しコマンドの受け入れ順と同じ順序で readdata を返す必要があります。可変レイテンシーを備えるパイプライン・エージェント・ポートでは、waitrequest を使用する必要があります。エージェントでは、waitrequest をアサートして転送をストールすることで、保留中の転送を許容数に維持することができます。エージェントが waitrequest で新しいコマンドをストールしているかいないかにかかわらず、エージェントでは、readdatavalid をアサートしてホストにデータを転送することができます。

注: 保留される転送の最大数は、エージェント・インターフェイスのプロパティーです。インターコネクト・ファブリックではこの値を使用して、要求を発行しているホストに readdata をルーティングするロジックを構築します。保留されている読み出し数の追跡は、インターコネクト・ファブリックではなく、エージェント・インターフェイスで行う必要があります。エージェントでは、waitrequest をアサートし、保留されている読み出しの数が最大数を超えないようにする必要があります。エージェントで waitrequestAllowance > 0 の場合、そのエージェントでは、waitrequest を十分に早い段階でアサートし、保留されている転送の合計 (waitrequest がアサートされている間に受け入れられる転送を含む) が指定されている保留中の転送の最大数を超えないようにする必要があります。
図 12. 可変レイテンシーでのパイプライン読み出し転送

次の図は、複数のエージェント読み出し転送を表しています。エージェントは可変レイテンシーでパイプライン化されています。この図では、エージェントは最大 2 つの保留中の転送を許容することができます。エージェントは waitrequest を使用して、この最大値を超えないようにします。

このタイミング図内の数字は、次の遷移を示しています。

  1. ホストが address および read をアサートし、読み出し転送を開始します。
  2. エージェントは addr1 をキャプチャーします。
  3. エージェントは addr2 をキャプチャーします。
  4. エージェントは waitrequest をアサートします。エージェントはすでに最大の 2 つの保留中の読み出しを受け入れているため、3 番目の転送はストールします。
  5. エージェントは、addr1 への応答である data1 をアサートします。エージェントは、waitrequest をデアサートします。
  6. エージェントは addr3 をキャプチャーします。インターコネクトで data1 をキャプチャーします。
  7. エージェントは addr4 をキャプチャーします。インターコネクトで data2 をキャプチャーします。
  8. エージェントは、3 番目の読み出し転送に対する readdatavalidreaddata を駆動します。
  9. エージェントは addr5 をキャプチャーします。インターコネクトで data3 をキャプチャーします。read 信号がデアサートされます。waitrequest の値が該当しなくなります。
  10. インターコネクトで data4 をキャプチャーします。
  11. エージェントが data5 を駆動し、readdatavalid をアサートして、最後の保留中の読み出し転送のデータフェーズを完了します。

保留中の読み出し転送の処理中にエージェントで書き込み転送を処理できない場合は、エージェントで waitrequest をアサートし、保留中の読み出し転送が完了するまで書き込み操作をストールする必要があります。 Avalon® -MM の仕様では、現在保留されている読み出し転送と同じアドレスへの書き込み転送をエージェントが受け入れた場合の readdata の値を定義していません。