メモリ(全72問中47問目)
No.47解説へ
キャッシュメモリにおけるダイレクトマップ方式の説明として,適切なものはどれか。
出典:平成21年秋期 問10
- アドレスが連続した二つ以上のメモリブロックを格納するセクタを,キャッシュ内の任意のロケーションに割り当てる。
- 一つのメモリブロックをキャッシュ内の単一のロケーションに割り当てる。
- メモリブロックをキャッシュ内の任意のロケーションに割り当てる。
- メモリブロックをキャッシュ内の二つ以上の配置可能なロケーションに割り当てる
広告
解説
ダイレクトマップ方式(ダイレクトマッピング方式)は、主記憶上のデータとキャッシュメモリ上の格納位置の対応を決める方式のひとつで、主記憶のアドレスを入力値としてハッシュ演算等を行い、その演算結果から導出されたキャッシュメモリのブロックに格納対象の主記憶のブロックを対応付ける方式です。演算で格納位置を求めるので、キャッシュメモリのブロックが一意に定まりますが、異なるアドレスが同じキャッシュメモリのブロックに関連付けられてしまう問題もあります。
一般的にダイレクトマップで主記憶のアドレスから、キャッシュメモリのブロック番号を算出するハッシュ関数として以下の式が使用されます。
主記憶のアドレス mod キャッシュメモリのブロック数
キャッシュメモリの割付方式には、ダイレクトマップのほかにフルアソシエイティブとセットアソシエイティブがあるので、3つをセットにして押さえておきましょう。
一般的にダイレクトマップで主記憶のアドレスから、キャッシュメモリのブロック番号を算出するハッシュ関数として以下の式が使用されます。
主記憶のアドレス mod キャッシュメモリのブロック数
キャッシュメモリの割付方式には、ダイレクトマップのほかにフルアソシエイティブとセットアソシエイティブがあるので、3つをセットにして押さえておきましょう。
- フルアソシエイティブ
- 主記憶のブロックをキャッシュメモリ上のどのブロックにも格納することができる方式です。
どこにでも書き込めるのでキャッシュメモリの使用率は向上しますが、対応状況の管理と検索に要するオーバーヘッドが増大することがデメリットです。 - セットアソシエイティブ
- キャッシュメモリの連続したブロックを"セット"としてまとめ、セットの中であればどこのブロックでも格納することができる方式です。
ダイレクトマップでは、演算で算出されたブロックに既にデータが存在する場合には追い出しが発生しますが、セットアソシエイティブでは、ひとつのセットに複数のブロックが含まれるので追い出しをしなくてもデータを格納できます。
セット内のブロック数がN個のとき、Nウェイ・セットアソシエイティブと言います。現在のコンピュータでは、4ウェイまたは8ウェイが主流となっています。
- ダイレクトマップ方式では、主記憶のブロックとキャッシュ内のブロックは一意に対応します。任意の場所に格納するのはフルアソシエイティブ方式の特徴です。
- 正しい。ダイレクトマップ方式の説明です。
- フルアソシエイティブ方式の説明です。
- セットアソシエイティブ方式の説明です。
広告