2017-07-08 21 views
-1

私は運動に問題があります:ダイレクトマップキャッシュ、ヒットまたはミス?

キャッシュDM。キャッシュサイズ - 64kB、1行サイズ - 64B。オンにした後、までプロセッサ住所が読んでいる:になりますときに私は、言っている

  • 0x00000
  • 0x0003C
  • 0x0013C
  • 0xF0038
  • 0x00015
  • 0x00130

をミス、そしていつヒットするのか。私はこれに似た演習のいくつかの例を見つけましたが、16進数の住所とは何をするべきかわかりません。私はそれを知っています:Cache address = Memory Address **mod** Cache Sizeしかし、私はどのように私はこの運動を解決することができないのか分かりません。 ありがとうございます。

答えて

0

このような質問に答える1つの方法は、指定されたキャッシュデザインのtag,indexおよびoffsetビットを見つけることです。その後、アドレスアクセスパターンを対応するタグindexにマップして、ヒット/ミス情報を取得する。

例として、アクセスが0xF0038に対処するために考えてみます。

Cache Size = 64kB 
Line Size = 64B 
Offset bits = log2(64) = 6 
Index bits = log2(6kB/64B) = 10 
Considering 20-bit address line 
Tag bits = 20 - 10 - 6 = 4 
Address accessed - 0xF0038 
Converting into bits - 
1111_0000_0000_0011_1000 
Tag - 1111 
Index - 0000_0000_00 
Offset - 11_1000 

は今、あなたはアクセスが0xFとしてタグが付けられたインデックス0x0にあることを知っています。以前のアクセスに応じて、ミスやヒットになります。同様に、他のすべてのアドレスに対しても同様に実行できます。

関連する問題