MESI プロトコルについて質問があります。
(1) MESI キャッシュ コヒーレンス プロトコルを実装するユニプロセッサ システムで実行される次のコード フラグメントを考えてみましょう。
I1: ロード $s1, [A] I2: ロード $s2, [B] I3: 追加 $s1, $s2, $s3 I4: ストア $s3, [C] I5: サブ $s3, 1, $s4 I6: $s3 を保存、[A]
ライトスルー キャッシュ ポリシーを仮定します。メモリ ブロック A、B、および C が (必要に応じて) 1 つのプロセッサ上の 2 つの異なるキャッシュ ブロック (最初は空) に読み込まれる場合、次の表を完成させて、それぞれの後に A、B、C を含むブロックのキャッシュ状態を特定します。命令が実行されます。
それに対する私の答えは次のとおりです。
Step/State A B C
I1 E I I
I2 E E I
I3 E E I
I4 I I E
I5 I I E
I6 E I I
(2) 次の RTL では
I1: R1 <-[6]
I2: R2 <-[4]
I3: R3 <- R1 + R2
I4: [6]<- R3
I5: R4 <- R4 - 1
I6: [4]<- R4
ライトスルー キャッシュ ポリシーを仮定します。メモリ ブロック 4 と 6 が単一のプロセッサの 2 つの異なるキャッシュ ブロック (最初は空) にロードされている場合
私の答えは
Step/state Block 4 Block 6
Initial I I
I1 I E
I2 E E
I3 E E
I4 I E(write miss, AOW)
I5 I E
I6 E(write miss, AOW) I
私の答えは正しいですか?事前にどうもありがとうございました。