FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

AMBA5 の CHI (Coherence Hub Interface)についての調査 (4. オーダリング制約)

developer.arm.com

developer.arm.com

CHIのオーダリングの章を読んでいたのだが、正直概念的な話が多すぎて良く分からん。

CHIのオーダリングについて

CHIがオーダリングの要求をサポートするためのプロトコルのメカニズムについて説明する。

  • マルチコピーアトミック性
  • 完了レスポンスとオーダリング
  • 完了Acknowlegdement
  • トランザクションオーダリング

マルチコピーアトミック性

同じ場所への書き込みはすべてシリアライズする必要がある。つまり、いくつかのリクエストについてはすべての書き込みが見えていないとしても、すべてのリクエスターからは同じ順序に見えている必要がある。

全てのリクエスターが書き込みを監視するできるようになるまで、その場所の読み込み要求に対する値は、その書き込んだ値は見えない。

完了レスポンスとオーダリング

トランザクションが後続のトランザクションとの順序性を保証するために、同じエージェントもしくは異なるエージェントからの要求について、Comp, RespSepData, CompData, Persistのレスポンスを操作する制約がある。しかしこのリストをいくら読んでも全く想像がつかないので、これについては読み飛ばしたい。

完了Acknowledgement

直訳する。

リクエスターが発行したトランザクションと、異なるリクエスターからのトランザクションによって引き起こされたSnoopトランザクションの相対的な順序は、完了Acknowledgementの使用によって制御されます。これにより、Requesterからのトランザクションの後にオーダーされたSnoopトランザクションが、トランザクションレスポンスの後に受信されることが保証されます。

うーん?良く分からん。

トランザクションオーダリング

RN, HNペアとHN-I, SN-Iペアに対するリクエストのオーダリングのメカニズムについて定義している。HN-FとSN-Fのペアについてのオーダリングはオーダーフィールドが使用される。

  • リクエストオーダ:同一エージェントから同じアドレス場所への複数のトランザクションに対するオーダリングを保証する。
  • エンドポイントオーダ:同一エージェントから同じエンドポイントアドレス領域への複数のトランザクションに対するオーダリングを保証する。
  • 順序付き書き込みの監視:システム中の他のエージェントからの、単一エージェントからのの書き込みトランザクションのシーケンスの監視について保証する。
  • リクエスト受け入れ:CompleetrがAcknowlegdementを返すのは、リクエストが受け入れられた場合のみであることを示す。

いくつかのリクエストについての確認

  • ReadNoSnp : 他のマスターからのスヌープが必要ない場合の読み込みリクエストを行いたい場合に使用する。レスポンスはスレーブノードからダイレクトに返される。
  • ReadOne, ReadOnceCleanInvalid, ReadOnceMakeInvalidトランザクションは他のマスターに対するスヌープが必要な時に使用する。リクエスターは自分自身のキャッシュに対してキャッシュラインを割り当てるつもりがないときに使用する。