2

コンピュータは、メイン メモリとプロセッサの間で直接マップされた小さなキャッシュを使用します。図 (a) に示すように、キャッシュには 4 つの 16 ビット ワードがあり、各ワードには関連する 13 ビット タグがあります。読み取り操作中にミスが発生すると、要求されたワードがメイン メモリから読み取られ、プロセッサに送信されます。同時に、キャッシュにコピーされ、そのブロック番号が関連付けられたタグに格納されます。すべての命令とオペランドが 16 ビット長のプログラムで、次のループを考えてみましょう。

LOOP: Add (R1)+,R0
      Decrement R2
      BNE     LOOP


<-13 bits-> <--16bit->
0|TAG     |DATA     |
2|        |         | 
4|        |         |
6|_______ | ______  |

(a)Cache
       .   
       .
    | A03C |<---ADDRESS 054E
    | 05D9 |    
    | 10D7 |
       .
       .

(b)Main Memory

このループに入る前に、レジスタ R0、R1、および R2 にそれぞれ 0、054E、および 3 が格納されていると仮定します。また、メイン メモリには図 (b) に示すデータが含まれていると仮定します。ここで、すべてのエントリは 16 進数表記で示されます。ループは LOOP = 02EC の位置から始まります。(a) ループの各パスの最後にキャッシュの内容を表示します。

4

0 に答える 0