2012-04-29 14 views
5

これは間違ったスタックエクスチェンジャーであると私の謝罪します。それはちょうどコンピュータアーキテクチャのための助けになることができる場所に最も近いもののように思えた。私はアドレス参照のそれぞれがヒットまたはミスにつながるかどうかを言うことになってるダイレクトマップキャッシュヒット/ミス

Consider three direct mapped caches X, Y, and Z each interpreting an 
8-bit address slightly differently according to the {tag:setIdx:byteOffset} 
format specified. For each address in the reference stream, indicate whether the 
access will hit (H) or miss (M) in each cache. 

        C1  C2  C3 
Address Formats: {2:2:4} {2:3:3} {2:4:2} 

Address References in Binary: 00000010, 00000100... 

が、私はどこを開始するのか分からない:コンピュータシステムにおける宿題の問題のために私は尋ねました。

フォーマットの場合、タグはキャッシュブロック内のデータのタグを意味し、setIdxはキャッシュ内のさまざまなブロックを表すためのビット量を意味し、オフセットはブロック内の特定のバイトから選択できます。

私はヒットやミスが何であるか分かりません。義務、能力、紛争という3つのタイプがあると思いました。既にキャッシュに何が入っているのかわからないと、どのようなことが強制的なミスであるのか分かりますか?どのようにしてタグのフォーマットが与えられたのかキャッシュの容量を知ることができますか?

ヒントやヒントありがとうございます。

答えて

3

たとえば、setIdxには2ビット、byteOffsetには4ビットが使用されます。

このキャッシュは2^2 = 4ブロック(00,01,10,11)を持ち、各ブロックは2^4 = 16バイトになります。

アドレス参照は、現在C1フォーマットに分けることができる:{00 00 0010}

をキャッシュは、デフォルトでは空である、最初のルックアップがミスをもたらすであろうと仮定します。ただし、キャッシュには、ブロック「00」にタグ「00」がロードされます。

次の参照{00 00 0100}はブロック "00"を検索し、タグも "00"であることを認識し、ヒットします。

+0

次に、バイトオフセットは何ですか? – KWJ2104

+0

バイトオフセットは1ブロックの大きさです。例えば、上記と同じ参照を使用して、C1が{00 00 0010}をブロック{00}にロードしたと仮定すると、このブロックは{00 00 0000}から{00 00 1111}までのメモリを含む。ただし、{01 00 0010}を検索しようとすると、タグが異なるためにミスになります。 (これは単方向のセットアソシアティブマッピングであると仮定しています) –

1

私はあなたがヒットしたとは思わない。アドレス00 00 0100は同じブロックをルックアップしますが、メモリ内の別のアドレスを検索します。ダイレクトマップキャッシュヒットでは、連続した命令の同じブロック内のメモリ内の同じアドレスにアクセスしようとするだけでヒットします。メモリ内のアドレスは、ブロック番号ではなくバイトアドレスで与えられます。ダイレクトマップキャッシュは、ブロック内の同じアドレスにアクセスしようとしていない限り、ブロックの内容を置き換えます。 00 00 0100が別の00 00 0100の前にある場合、直接マップされたキャッシュにヒットが存在する。

関連するキャッシュでは、ブロックアドレスで指定されたメモリアドレスがバイトアドレスではなく、ヒットが生成されます。

ブロック番号はフロア(バイトアドレス/ブロックあたりのバイト数)mod(ブロック数)で与えられます。

+0

一般に、キャッシュは要求されたバイトだけでなく、ブロック全体をミスしてロードします。 (いくつかのキャッシュはセクタを使用してブロック当たり複数の有効ビットを提供しますが、メインストリームプロセッサは1バイト当たりまたは4バイトチャンクあたりでも有効ビットを提供しません。パフォーマンスを低下させる可能性があるため、64ビット幅のインターフェイスでは最小* 32バイトの転送が得られます) –

+0

@ PaulA.Claytonこのキャッシュに関する質問もご覧いただけますか? http:// stackoverflow。直接マップされたキャッシュのためのアドレスフィールドにあるhow-many-bits-are/questions/30555623 – committedandroider