- ベストアンサー
実効アクセス時間の公式について疑問
- 基本情報技術者試験の問題を解いていた中で、実効アクセス時間を求める公式に疑問が生じました。
- 公式は(キャッシュメモリのアクセス時間×ヒット率)+主記憶のアクセス時間×(1-ヒット率)で表されます。
- 疑問点は、キャッシュメモリにヒットしなかった場合のアクセス時間の計算方法に関するものです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
考え方はそれで正しいと思います。 ただ、ここではそういう厳密なモデルを想定していないだけでしょう。 ここでの主記憶のアクセス時間というのは、メモリそのもののアクセス時間というよりも、命令がキャッシュへのアクセスを始めて、キャッシュにミスして、主記憶からデータがかえってくるまでの全時間を指していると考えるべきです。 細かいことをいうと、キャッシュにミスした後、すぐに主記憶に要求がでるとは限りませんし、アドレス変換まで必要であれば主記憶に何度もアクセスしてからようやくデータが返ってくるということになります。したがって、「主記憶のアクセス時間」が本当にメモリそのもののアクセス時間を指しているのなら、「(キャッシュメモリのアクセス時間 + 主記憶のアクセス時間) * (1 - ヒット率)」も正しくないことになりますし、実際のマイクロアーキテクチャがわからない限り、厳密には平均アクセス時間は計算できないことになります。 この問題では、そういう細かい話ではなく、キャッシュヒット、ミスの概念的なものを問うていると考えるべきです。
その他の回答 (1)
- celtis
- ベストアンサー率70% (2332/3291)
>一旦キャッシュメモリにあるかどうか確認した上で主記憶にアクセスするのであれば とありますが、そのうち 「一旦キャッシュメモリにあるかどうか確認した上で」が、キャッシュメモリのアクセス時間×ヒット率 「主記憶にアクセスするのであれば」が、主記憶のアクセス時間×(1-ヒット率) にあたります。 http://www.it-license.com/memory/cache_memory_access.html これは確率の問題で、キャッシュメモリにあった場合に読み込む時間と キャッシュメモリに無かった場合(主記憶にあった場合)に読み込む時間を それぞれの場合に分けて計算して、単純に合計したものを実効アクセス時間としています。 もしあなたが書かれているように 「(キャッシュメモリのアクセス時間 + 主記憶のアクセス時間) * (1 - ヒット率)」 という考え方をしたとすると、 キャッシュメモリにデータが見つかった場合はどのような計算式になるでしょうか?
お礼
私が「(キャッシュメモリのアクセス時間 + 主記憶のアクセス時間) * (1 - ヒット率)」 と挙げた箇所は元の公式の第二項に当たる箇所についてでして、ヒットしなかった時に「主記憶のアクセス時間」だけを考えたならばにキャッシュメモリを探索したコストはどうなるんだろう、という疑問でした。 キャッシュメモリにデータが見つかった場合は(キャッシュメモリのアクセス時間×ヒット率)で納得しております。 質問がわかりづらかったようで申し訳ないです、回答ありがとうございました。
お礼
ふと浮かんだこの疑問のみに焦点を当てすぎて、仰るようなケースが見えてませんでした。 「主記憶へのアクセス時間」の言葉を広く解釈すべきでした。 ありがとうございます、理解できました。