- ベストアンサー
キャッシュメモリのヒット率とは
キャッシュメモリのヒット率とはどういった概念なのでしょうか。テキストの字面はわかりますが。 メモリのデータのうち、よくつかうと考えられるものが、キャッシュメモリに移される。CPUが必要なデータを探しにいくときに、キャッシュメモリにそれが存在する確率が、ヒット率ということでよいのでしょうか。 どれだけ合理的に、必要なデータが、キャッシュメモリに移されているか、というそのレベルのことを言うわけでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
キャッシュメモリーにはアクセス回数が多いメモリーデータが順に並ぶように作られています。自然に、読み出し回数や書き込み回数が多いアドレスやデータがキャッシュメモリーに保存されるわけです。 たとえば、同じメモリー上のデータを読み出して、加算し、別のアドレスに書き込む処理を繰り返すと、キャッシュメモリーには、読み出したデータが保存され、毎回キャッシュメモリーから読み出されて使われるので、アクセス速度は10倍ぐらい速くなります。 これだけならば、単に高速化されるだけのメモリーと思うでしょうが、良く考えればわかるように、キャッシュメモリーばかり使っていると、本来のメモリーは使われなくなって、その間の時間は無駄になります。そこで、マルチコアという方法で、複数のCPUを使われていない空き時間に振り分けて実行する事で、無駄な時間を省略するわけです。 キャッシュメモリーはCPU内の同じレジスタばかり多用したり、メモリー上の同じメモリーばかり多用すると、ヒット率が上がって高速化しますが、もちろん、それだけでキャッシュメモリーが最適化されるわけではありません。キャッシュメモリーを最適化する手法を駆使してプログラムを作る必要があります。
その他の回答 (2)
- hue2011
- ベストアンサー率38% (2801/7250)
そうなんですけど、何を言っているかのご理解大丈夫ですか。 この話はそのPCの能力ということですよ。 つまり、Webサイトをブラウザで見るとしたとき、A,Bのサイトをまずみたとします。少したって、Cを見て、ああAはどうだっけ、とAもみたとします。ついでにD,Eをみたとします。 お茶飲んでから、レポートを書こうとしてF,Gを見てAとCを参照したとします。 このとき全部で見たページは10です。 だけど実質はAからGまでの7つですね。 サーバーに対する実アクセスは7なんです。 Aは3回みたんですが、2回目と3回目は前のを覚えていたから表示できたんです。Cも2回みていてやっぱり覚えていました。 2回目や3回目は「覚えていた」つまりキャッシュメモリを使ったんです。 これは、実アクセスが時間がかかるので、一度覚えたらそれを使えという考えです。 どういうときにこれが魔術になるかというと動画の場合です。一度再生した動画を気に入ってもう一度みたいと考えたら、前に比べて動きがサクサクしていると思いませんか。これはキャッシュしているからです。 キャッシュは、実メモリと仮想記憶つまりHDなんかが豊かだったらかなりのことが一次記憶として記憶できますから、ようするにPCの環境が豊かであるほどカシこく見えるということなんです。 とはいえ、うろ覚えでしごとするんじゃない、という考えもあるわけです。 必要なデータだから覚えておこう、はいいけど、それで大丈夫か、です。 こんなことはPCにできる話じゃなく、操作している人間が意図的に行わなければいけないことです。キャッシュを忘れろです。 さっきのサイトの例でいうと、実はAは巡回で見ているうちに更新されている場合もあるわけです。その時は実際に読み直してもらわないといけないということになります。このときはどのOSでも「更新」と言う機能がありますのでそれを使います。WindowsならF5のキーがそのスイッチになっていますが、これを押すと、いま見ているページ自体をまた実読み込みし直すということになります。
お礼
具体例いろいろありがとうございます。大変勉強になりました
- 中京区 桑原町(@l4330)
- ベストアンサー率22% (4373/19606)
>キャッシュメモリにそれが存在する確率が、ヒット率ということでよいのでしょうか。 その通りです。 ヒット率が高いと「合理的に、必要なデータが、キャッシュメモリに移されている」と言えますね。
お礼
ありがとうございます。いろいろ勘案する必要があるのですね。そうしますと、このヒット率というのは、単純に高ければいいというものではないのかもしれませんが、基本的に何の性能をみるための指標となるのでしょうか。os なのかソフトウェアなのか、...?