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トランザクションフローの手順は以下の通りである:
- RN-FはHN-Fに
ReadShared
要求を送る。
- HN-FはSN-Fに
ReadNoSnp
要求を送る。
- SN-Fは、
CompData_UC
を使用して、データ応答を直接RN-Fに送る。
- 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
トランザクションフローの手順は以下の通りである:
- RN-F0はHN-Fに
ReadShared
要求を送る。
- HN-FはRN-F1に
SnpShared
要求を送信する。RN-F1はSnpResp_I
応答をHN-Fに返す。
- HN-FはRN-F1からSnoop応答を受信した後、SN-Fに
ReadNoSnp
要求を送信する。これはRN-F1がデータで応答していないことを保証する。
- SN-Fは
CompData_UC
を使用して、RN-F0に直接データ応答を送信する。
- RN-F0は、要求が
ReadShared
であり、トランザクションを完了するために CompAck
を必要とするので、HN-FにCompAckを送信する。