以下の内容はhttps://msyksphinz.hatenablog.com/entry/2025/03/23/040000より取得しました。


キャッシュコヒーレンスを管理するバスプロトコルの勉強 (14. キャッシュ・スタッシングについて)

developer.arm.com

msyksphinz.hatenablog.com

Cache Stashing (続き)

データを書き込むトランザクション

Requester は、新しいデータの書き込みを行い、ターゲットがそのデータをStashする必要がある場合、WriteUniqueStash Transactionを発行する。書き込まれるデータは、完全なキャッシュ・ラインでも部分的なキャッシュ・ラインでもよい。

CHIは以下のオペコードのいずれかを使用して、スタッシュ・ヒントによる書き込みを示す:

  • WriteUniquePtlStash: 部分的なキャッシュ・ライン書き込みの場合
  • WriteUniqueFullStash: 完全キャッシュ・ライン書き込み用

このセクションでは、I/Oリクエスタが書き込みデータを持つスタッシュヒントを発行する方法について説明する。Stash Transactionのターゲットはシステム内のRN-Fである。

イベントの順序は以下の通りである:

1. RN-I は、書き込みデータを持つ WriteUniqueFullStash リクエストを発行する。 簡単のため、この例ではHN-FからのDBIDRespを記述しない。

2. HN-Fは Stash Request を受け入れ、RN-Fに SnpMakeInvalidStash 要求を発行する:

3. RN-FはNH-FからSnoopを受信する。

4. RN-FはStashヒントを受け入れ、図に示すようにSnoop Responseを発行する:

5. DataPull メカニズムが使用される場合、RN-Fは暗黙の Read Request とともにSnoop Responseを発行するか、または Snoop Response と別の Read Request を発行する。簡単のため、この例では暗黙の Snoop Response と Read Request が使用されているが、完全な DataPull フローではない。

6. HN-FはRN-Iから受け取った書き込みデータをRN-Fに送る。

書き込みデータのないトランザクション

データを書き込まずにキャッシュをスタッシュ・ターゲットとして使用する場合、リクエスタはDataless Stash Transactionを使用する。 CHI はデータなしStash Requestに対して以下のオペコードを使用します:

  • StashOnceShared: キャッシュ・ラインがStash Targetによって読み取られると予想される場合に発行される。このオペコードは、キャッシュ・ラインが割り当て後に共有状態に保持されるべきであることを示す。
  • StashOnceUnique: キャッシュ・ラインがStash Target によって書き込まれると予想される場合に発行される。 このオペコードは、キャッシュ・ラインを Unique 状態で保持する必要があることを示し、スタッシュ・ターゲットが将来そのキャッシュ・ラインに書き込む必要があるときに、すぐに書き込めるようにする。

以下の例では、書き込みデータのないスタッシュ・ヒントを説明する。 RN-IはRN-FをStash TargetとしてStash Requestを送信し、HN-FとRN-Fの両方がスタッシュ・ヒントを受け入れる。

一連の流れは以下の通りである:

1.RN-Iは、StashOnceUnique RequestをHN-Fに発行し、RN-Fがターゲットであり、書き込みデータが存在しないことを示す。

2. HN-FはStash Requestを受け入れる。

3. HN-Fは、ReadNoSnp Requestをメインメモリに発行してキャッシュ・ラインをフェッチし、SnpStashUnique SnoopをRN-Fに発行する:

4. メイン・メモリは、キャッシュ・ラインをHN-Fに返す:

5. RN-FはSnoopに応答し、キャッシュ・ラインを要求する。

6. HN-Fはキャッシュ・ラインをRN-Fに転送する。




以上の内容はhttps://msyksphinz.hatenablog.com/entry/2025/03/23/040000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14