エンベデッドシステムスペシャリスト 2015年 午前2 問02
問題文
キャッシュメモリに関する記述のうち、適切なものはどれか。
選択肢
ア:キャッシュメモリの最適容量は、プログラムサイズから求めることができる。
イ:キャッシュメモリの最適容量は、プロセッサの演算速度と主記憶容量から求めることができる。
ウ:キャッシュメモリのヒット率は、キャッシュメモリの容量とほぼ正比例の関係にある。
エ:キャッシュメモリのヒット率は、プログラムの構造によって変化する。(正解)
🔒 解説は解答すると表示されます
キャッシュメモリのヒット率【午前2解説】
正解の理由
キャッシュメモリのヒット率は、必要なデータがキャッシュメモリに存在する割合です。この割合は、容量だけでなく、プログラムがどのような順序や頻度でデータにアクセスするかによって変化します。
たとえば、直前に使ったデータを再び使う「時間的局所性」や、近くにあるデータを続けて使う「空間的局所性」が高いプログラムでは、ヒット率が高くなりやすいです。したがって、「プログラムの構造によって変化する」とするエが適切です。
解法ステップ
- ヒット率とは、データへのアクセス時にキャッシュメモリ上でデータを見つけられる割合だと確認します。
- ヒット率を左右する要因として、キャッシュ容量だけでなく、プログラムのデータアクセスの仕方を考えます。
- プログラムの構造によってアクセスの仕方が変わるため、ヒット率も変化すると判断します。
選択肢別の誤答解説
- ア:プログラムサイズだけでは、最適なキャッシュ容量は求められません。プログラムのサイズが大きくても、実際によく使うデータが限られていれば、小さなキャッシュで高いヒット率を得られることがあります。
- イ:プロセッサの演算速度や主記憶容量だけから、最適なキャッシュ容量を求めることはできません。実際のアクセスパターンや、キャッシュの構成なども関係します。
- ウ:容量を大きくするとヒット率が上がる場合はありますが、ほぼ正比例するとは限りません。アクセスパターンによって効果は異なり、容量を増やしてもヒット率があまり変わらない場合があります。
- エ:プログラムの構造がデータのアクセス順序や再利用の頻度に影響するため、ヒット率が変化します。
よくある誤解
- 容量を増やせば、ヒット率も同じ割合で上がると思う:容量を増やしても、プログラムがデータを再利用しない場合は、ヒット率の改善が小さいことがあります。
- プログラムサイズが大きいほど、大容量キャッシュが必要だと思う:プログラム全体のサイズより、実行中に頻繁にアクセスするデータが重要です。
- ヒット率はハードウェアだけで決まると思う:ハードウェアの構成に加えて、プログラムのアクセス特性も影響します。
補足コラム
キャッシュメモリは、プロセッサと主記憶の速度差を補うために使われます。ヒット率を高めるには、よく使うデータをキャッシュに保持できることが重要です。そのため、キャッシュ設計では、容量だけでなく、データの配置方法や置換方式なども考慮されます。
FAQ
Q. ヒット率が高いと、必ず処理が速くなりますか?
A. 多くの場合、主記憶へのアクセス回数が減るため処理の高速化につながります。ただし、ヒット時・ミス時の処理時間や、アクセスするデータの特性なども関係します。
A. 多くの場合、主記憶へのアクセス回数が減るため処理の高速化につながります。ただし、ヒット時・ミス時の処理時間や、アクセスするデータの特性なども関係します。
Q. 局所性とは何ですか?
A. プログラムが、最近使ったデータや、最近使ったデータの近くにあるデータへ再びアクセスしやすい性質です。時間的局所性と空間的局所性があります。
A. プログラムが、最近使ったデータや、最近使ったデータの近くにあるデータへ再びアクセスしやすい性質です。時間的局所性と空間的局所性があります。
関連キーワード: キャッシュメモリ、ヒット率、時間的局所性、空間的局所性、データアクセスパターン

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

