インテルのみ表示可能 — GUID: nik1412467942812
Ixiasoft
3.5.4.1. 可変レイテンシーでのパイプライン読み出し転送
アドレスおよびコントロール信号をキャプチャー後、 Avalon® -MM のパイプライン・エージェントは、1 サイクルもしくは複数サイクルを費やしデータを生成します。パイプライン・エージェントでは、複数の保留中の読み出し転送をいつでも保持することができます。
- readdatavalid 信号が追加で必要になります。この信号は、読み出しデータが有効なことを示します。
- パイプライン化されていない読み出し転送と同じ信号セットを含みます。
エージェントは、読み出しコマンドの受け入れ順と同じ順序で readdata を返す必要があります。可変レイテンシーを備えるパイプライン・エージェント・ポートでは、waitrequest を使用する必要があります。エージェントでは、waitrequest をアサートして転送をストールすることで、保留中の転送を許容数に維持することができます。エージェントが waitrequest で新しいコマンドをストールしているかいないかにかかわらず、エージェントでは、readdatavalid をアサートしてホストにデータを転送することができます。
次の図は、複数のエージェント読み出し転送を表しています。エージェントは可変レイテンシーでパイプライン化されています。この図では、エージェントは最大 2 つの保留中の転送を許容することができます。エージェントは waitrequest を使用して、この最大値を超えないようにします。
このタイミング図内の数字は、次の遷移を示しています。
- ホストが address および read をアサートし、読み出し転送を開始します。
- エージェントは addr1 をキャプチャーします。
- エージェントは addr2 をキャプチャーします。
- エージェントは waitrequest をアサートします。エージェントはすでに最大の 2 つの保留中の読み出しを受け入れているため、3 番目の転送はストールします。
- エージェントは、addr1 への応答である data1 をアサートします。エージェントは、waitrequest をデアサートします。
- エージェントは addr3 をキャプチャーします。インターコネクトで data1 をキャプチャーします。
- エージェントは addr4 をキャプチャーします。インターコネクトで data2 をキャプチャーします。
- エージェントは、3 番目の読み出し転送に対する readdatavalid と readdata を駆動します。
- エージェントは addr5 をキャプチャーします。インターコネクトで data3 をキャプチャーします。read 信号がデアサートされます。waitrequest の値が該当しなくなります。
- インターコネクトで data4 をキャプチャーします。
- エージェントが data5 を駆動し、readdatavalid をアサートして、最後の保留中の読み出し転送のデータフェーズを完了します。
保留中の読み出し転送の処理中にエージェントで書き込み転送を処理できない場合は、エージェントで waitrequest をアサートし、保留中の読み出し転送が完了するまで書き込み操作をストールする必要があります。 Avalon® -MM の仕様では、現在保留されている読み出し転送と同じアドレスへの書き込み転送をエージェントが受け入れた場合の readdata の値を定義していません。