FPGA開発日記

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

AMBA CHIプロトコルの勉強 (7. Writeのトランザクションについて)

記事カテゴリトップ:AMBA CHIプロトコルについての勉強 - FPGA開発日記

AMBA CHIについて今更勉強している。

まずは基本的な読み込みリクエストについて。マニュアルを読んでいく。


B5.3 書き込みトランザクション

このセクションでは、書き込みトランザクションの相互接続プロトコル・フローの例を示す。

5.3.1 スヌープなしの書き込みトランザクション & 分離されたレスポンス

ここでは、WriteNoSnpリクエストの処理方法について示す。

登場人物は、

  • RN-F0 / RN-F1 / RN-F2 : リクエストノード。今回はRN-F0がリクエストを出すことになる
  • HN-F: ホームノード。リクエストを受け付け、スレーブノードにリクエストを渡す
  • SN-F: スレーブノード。ホームノードからリクエストを受け付ける。

図 B5.15 の WriteNoSnp トランザクション フローの手順は次のとおりである。

  1. RN-F0 が HN-F に WriteNoSnp トランザクションを発行する。HN-F は要求を受信して​​割り当てる。
  2. HN-F は Comp なしで DBIDResp を送信する。その間、HN-F は SN-F に WriteNoSnp を送信する。
    • DBIDとはData Buffer Identifierのこと。データバッファの場所を識別するIDだと思われる。
    • WriteNoSnp 自体はデータを送信しないが、DBIDを返すというのは、ホームノードに書き込みデータを格納する場所が確保されている、ということを意味している、気がしている。
  3. RN-F0 はデータ NCWrData で応答する。SN-F は HN-F に CompDBIDResp を返す。
    • スレーブノードがリクエストを受け入れ、後続のデータ受信に備えてリソースを確保した、という意味になるのか。
  4. HN-F は SN-F から CompDBIDResp を受信した後に Comp を送信する。HN-F は SN-F に NCBWrData を送信する。
  5. RN-F0 は HN-F からの Comp を待機し、その要求の割り当てを解除する。

注: このフローの例では、SN-F から CompDBIDResp を受信した後に Comp が送信される。 ただし、HN-F は RN-F0 から WriteNoSnp 要求を受信した後はいつでも Comp を送信できる。