2016-07-10 73 views
0

8つのフレームで与えられたキャッシュがあり、それは直接マップされています。メインメモリブロック上の次のアクセスシーケンスが観察されています。ダイレクトマップキャッシュのヒット率はどのくらい正確に数えますか?

2 5 0 13 2 5 10 8 0 4 5 2 

この組織化されたキャッシュのヒット率をカウントします。

ソリューション: enter image description here

私はどのように理解し、なぜ数字がそのようにテーブルに配置されています。しかし、なぜ2と5が大胆に印刷されたのか、なぜヒット率が17%になったのか理解できません。

これは私たちの教授によって解決されましたが、私は完全に理解していません。

+4

あなたの教授は、あなたがそれを説明するように頼んだとき、何を言ったのですか? –

+0

ボルト=キャッシュヒット。 17%= 12のうち2つですが、私たちはあなたと同じ場所で同じクラスを試していません。 –

+0

dwelch私は恥ずかしがられているので、私は彼に尋ねなかった:/ – rpbudd

答えて

3

@Margaret Bloomがコメント欄に挙げたように、太字の数字はcache-hitsを表しています。非太字はキャッシュミスを示します。

あなたはこのシミュレータを使用することによって、より良いそれを理解可能性がありますcachesimulator.com

ザ・シミュレータは、ので、あなたの割り当ての小さな変換はそれをシミュレートするためになされる必要がある、唯一のWORD命令で動作します:

をキャッシュサイズ: 32バイト(8行)

ブロック・サイズ: 4バイト(行ごとにワード)

連想: 1(ダイレクトマップキャッシュ)

置換アルゴリズム: LRU

メモリサイズ:()* 4 14(より大きい任意の数の動作)例えば:1024

シミュレータはWORD命令と連動しているので、各数字に4を掛けてアクセスシーケンスを変換する必要があります。シミュレータでは16進数でアドレスを入力するので、4を掛けた後に16進数に変換すると、

フォーム上の指示を入力するシミュレータで

:あなたのケースでは

<operationtype><space><register><space><address> 

OPERATIONTYPEはLO​​ADで、レジスタが問題does'nt 。たとえば、次のようなレジスタを使用できます。

LOAD 1 8 
LOAD 1 14 
LOAD 1 0 
LOAD 1 34 
LOAD 1 8 
LOAD 1 14 
LOAD 1 28 
LOAD 1 20 
LOAD 1 0 
LOAD 1 10 
LOAD 1 14 
LOAD 1 8 

シミュレータのテキスト領域に上記の手順を入力し、[実行]をクリックします。キャッシュヒットとミスをリアルタイムで表示し、シミュレーションが完了したら、キャッシュメモリの内容と命令結果のリストを調べることで結果を分析できます。キャッシュ内の各要素が参照するメインメモリアドレスは、その上にカーソルを置くと表示されます。

Cache Information

Cache Content

Instruction Results

2

私はどのように理解し、なぜ数字がそのようにテーブルに配置されています。

どのようにアドレスがキャッシュラインにマップされ、縦軸が時間であるかを理解しています。

しかし、なぜ2と5が太字で印刷されているのか、なぜヒット率が17%になったのか分かりません。

以前の同じキャッシュラインへのアクセスが同じアドレスにあった場合、テーブルエントリは太字(キャッシュヒット)です。同じキャッシュラインにマップされる異なるアドレスは、キャッシュミス(古いコンテンツを取り除く)を引き起こす。

視覚的に/グラフィカルに:同じ列で垂直方向に上向きに見て、現在どのデータがキャッシュラインで熱くなっているかを確認します。

キャッシュヒット数がわかったら明らかにヒット率を計算するのは簡単です。


通常、教授にこのような非常に基本的な質問をする必要があります。しかし、あなたのダイアグラムは本当に分かりやすいので、この簡単な質問を理解して答えるのが簡単でした。

関連する問題