インテルのみ表示可能 — GUID: nik1412467951833
Ixiasoft
3.5.5.2. 読み出しバースト
読み出しバーストは、可変レイテンシーでのパイプライン読み出し転送に類似しています。読み出しバーストには、明確なアドレスフェーズとデータフェーズがあります。readdatavalidは、スレーブが有効なreaddataを提供していることを示します。パイプライン読み出し転送とは異なり、単一の読み出しバーストアドレスにより、複数のデータ転送が行われます。
次の規則は、読み出しバーストに適用されます。
- マスターがスレーブに直接接続している場合、burstcountの <n> は、スレーブから <n> ワードのreaddataを戻してバーストを完了させる必要があることを意味します。インターコネクトでマスターとスレーブのペアを接続している場合、インターコネクトでは、マスターからスレーブに送信される読み出しコマンドが抑制される場合があります。例えば、マスターでbyteenableの値が0の読み出しコマンドを送信している場合に、インターコネクトで読み出しが抑制される場合があります。その結果、スレーブは読み出しコマンドに応答しません。
- スレーブは、1サイクルの間、readdataを提供してreaddatavalidをアサートすることにより、各ワードを提供します。readdatavalidをデアサートすることで、バーストのデータフェーズは遅延しますが、終了しません。
- burstcount > 1の読み出しの場合、インテルでは、すべてのbyteenableをアサートすることを推奨しています。
注: インテル® では、バーストに対応するスレーブに読み出しの副作用がないことを推奨しています。この仕様は、要求を満たすためにマスターがスレーブから読み出すバイト数を保証するものではありません。
図 15. 読み出しバースト次の図は、2つのバーストマスターが同じスレーブにアクセスするシステムを表しています。マスターBでは、データがマスターAに返される前に読み出し要求を駆動できることに注意してください。
このタイミング図内の数字は、次の遷移を示しています。
- マスターAは、clkの立ち上がりエッジ後にaddress (A0)、burstcount、readをアサートします。スレーブはwaitrequestをアサートし、beginbursttransferを除くすべての入力をあと1クロックサイクルの間一定に保ちます。
- スレーブは、clkのこの立ち上がりエッジでA0およびburstcountをキャプチャーします。新しい転送は、次のサイクルでも開始することができます。
- マスターBは、address (A1)、burstcount、readを駆動します。スレーブはwaitrequestをアサートし、beginbursttransferを除くすべての入力を一定に保ちます。最初の読み出し要求の読み出しデータが最短で返された場合は、この時点になります。
- スレーブは、有効なreaddataを提供し、readdatavalidをアサートすることで、マスターAにデータの最初のワードを転送します。
- マスターAの2番目のワードが転送されます。スレーブはreaddatavalidをデアサートし、読み出しバーストを一時停止します。スレーブポートでは、任意のクロックサイクル数の間、readdatavalidをデアサートすることができます。
- マスターBの最初のワードが返されます。