• ベストアンサー
  • 困ってます

実効アクセス時間の公式について疑問

  • 質問No.8878271
  • 閲覧数111
  • ありがとう数12
  • 回答数2

お礼率 95% (43/45)

基本情報技術者試験の問題を解いていたのですが、

> 実効アクセス時間を求めるための公式は、
>   (キャッシュメモリのアクセス時間×ヒット率)+主記憶のアクセス時間×(1-ヒット率)
> で表すことができます。

という解説を見て疑問に思ったことがありましたので、質問させて下さい。

ここで実効アクセス時間を求める時、キャッシュメモリにヒットしなかった場合は主記憶にアクセスする物だと解釈しています。
上の公式でいう「主記憶のアクセス時間×(1-ヒット率)」の項がこのケースにおける時間の計算だと思うのですが、一旦キャッシュメモリにあるかどうか確認した上で主記憶にアクセスするのであれば「(キャッシュメモリのアクセス時間 + 主記憶のアクセス時間) * (1 - ヒット率)」になるのではないでしょうか?
それとも、キャッシュメモリにあるかどうかは一般にアクセスする前にリスト等で確認できる仕様になっているという事でしょうか?

どなたか教えてくださると助かります。
宜しくお願いします。

質問者が選んだベストアンサー

  • 回答No.2
  • ベストアンサー

ベストアンサー率 50% (220/437)

考え方はそれで正しいと思います。
ただ、ここではそういう厳密なモデルを想定していないだけでしょう。
ここでの主記憶のアクセス時間というのは、メモリそのもののアクセス時間というよりも、命令がキャッシュへのアクセスを始めて、キャッシュにミスして、主記憶からデータがかえってくるまでの全時間を指していると考えるべきです。
細かいことをいうと、キャッシュにミスした後、すぐに主記憶に要求がでるとは限りませんし、アドレス変換まで必要であれば主記憶に何度もアクセスしてからようやくデータが返ってくるということになります。したがって、「主記憶のアクセス時間」が本当にメモリそのもののアクセス時間を指しているのなら、「(キャッシュメモリのアクセス時間 + 主記憶のアクセス時間) * (1 - ヒット率)」も正しくないことになりますし、実際のマイクロアーキテクチャがわからない限り、厳密には平均アクセス時間は計算できないことになります。
この問題では、そういう細かい話ではなく、キャッシュヒット、ミスの概念的なものを問うていると考えるべきです。
お礼コメント
ppmcn

お礼率 95% (43/45)

ふと浮かんだこの疑問のみに焦点を当てすぎて、仰るようなケースが見えてませんでした。
「主記憶へのアクセス時間」の言葉を広く解釈すべきでした。
ありがとうございます、理解できました。
投稿日時:2015/01/03 20:26

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 68% (1684/2455)

他カテゴリのカテゴリマスター
>一旦キャッシュメモリにあるかどうか確認した上で主記憶にアクセスするのであれば
とありますが、そのうち
「一旦キャッシュメモリにあるかどうか確認した上で」が、キャッシュメモリのアクセス時間×ヒット率
「主記憶にアクセスするのであれば」が、主記憶のアクセス時間×(1-ヒット率)
にあたります。
http://www.it-license.com/memory/cache_memory_access.html

これは確率の問題で、キャッシュメモリにあった場合に読み込む時間と
キャッシュメモリに無かった場合(主記憶にあった場合)に読み込む時間を
それぞれの場合に分けて計算して、単純に合計したものを実効アクセス時間としています。

もしあなたが書かれているように
「(キャッシュメモリのアクセス時間 + 主記憶のアクセス時間) * (1 - ヒット率)」
という考え方をしたとすると、
キャッシュメモリにデータが見つかった場合はどのような計算式になるでしょうか?
お礼コメント
ppmcn

お礼率 95% (43/45)

私が「(キャッシュメモリのアクセス時間 + 主記憶のアクセス時間) * (1 - ヒット率)」
と挙げた箇所は元の公式の第二項に当たる箇所についてでして、ヒットしなかった時に「主記憶のアクセス時間」だけを考えたならばにキャッシュメモリを探索したコストはどうなるんだろう、という疑問でした。
キャッシュメモリにデータが見つかった場合は(キャッシュメモリのアクセス時間×ヒット率)で納得しております。

質問がわかりづらかったようで申し訳ないです、回答ありがとうございました。
投稿日時:2015/01/03 20:33
関連するQ&A

ピックアップ

ページ先頭へ