1

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

私の答えは正しいですか?事前にどうもありがとうございました。

4

1 に答える 1