FPGA開発日記

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

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

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

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

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

B5.1 読み出しトランザクションフロー

この節では、読み出しトランザクションのインターコネクトプロトコルフローの例を示す。

B5.1.1 DMTを使用するReadトランザクションとスヌープを使用しないReadトランザクション

スヌープを使用しないReadトランザクションでは、DMTを使用することを推奨する。 - Direct Memory Transfer (DMT): Subordinateが直接データを送信することが許されている転送形態のこと。

図B5.1に、ReadSharedトランザクションを使用したDMTトランザクションフローの例を示す。 図B5.1では、RequesterからのCompAckがHomeでのリクエストの割り当て解除に使用される ため、SN-FからHN-Fへの応答は必要ない。

図B5.1のReadSharedトランザクションフローの手順は以下の通りである:

  1. RN-FはHN-FにReadShared要求を送る。
  2. HN-FはSN-FにReadNoSnp要求を送る。
  3. SN-Fは、CompData_UCを使用して、データ応答を直接RN-Fに送る。
  4. RN-Fは、要求がReadSharedであり、トランザクションを完了するために CompAckを必要とするので、HN-FにCompAckを送る。

B5.1.2 DMTとスヌープを使用するReadトランザクション

スヌープとメモリからのデータを使用するReadトランザクションでは、DMTを推奨する。

図B5.2に、ReadSharedトランザクションを使用したDMTトランザクションフローの例を示す。 SN-FからHN-Fへは、RequesterからのCompAckがHomeでのリクエストの割り当て解除に使用 されるため、応答は必要ない。

図B5.2のReadSharedトランザクションフローの手順は以下の通りである:

  1. RN-F0はHN-FにReadShared要求を送る。
  2. HN-FはRN-F1にSnpShared要求を送信する。RN-F1はSnpResp_I応答をHN-Fに返す。
  3. HN-FはRN-F1からSnoop応答を受信した後、SN-FにReadNoSnp要求を送信する。これはRN-F1がデータで応答していないことを保証する。
  4. SN-FはCompData_UCを使用して、RN-F0に直接データ応答を送信する。
  5. RN-F0は、要求がReadSharedであり、トランザクションを完了するために CompAckを必要とするので、HN-FにCompAckを送信する。