ほとんど同じようにも見えるのですが何か違いはあるのでしょうか?
プリフェッチは、まだ使ってないデータを、あらかじめ取り込んでおくこと。
キャッシュは、一度、使ったデータを、次の利用のために、手近(メモリとか)に置いておくこと。
「一度、使った」というのが、利用者の操作によらず、初期処理での利用も指すこともあるので、
広い意味でとらえれば、キャッシュの中にプリフェッチが含まれます。
プリフェッチは、まだ使ってないデータを、あらかじめ取り込んでおくこと。
キャッシュは、一度、使ったデータを、次の利用のために、手近(メモリとか)に置いておくこと。
「一度、使った」というのが、利用者の操作によらず、初期処理での利用も指すこともあるので、
広い意味でとらえれば、キャッシュの中にプリフェッチが含まれます。
違いがとてもよく分かりました。やはり「キャッシュの中にプリフェッチが含まれる」と考えることもできるのですね。
prefetchはまだ使われていないデータを読み込むことを意味しており,投機的実行(speculative execution)の一技法です。
これは「未来への投資」という意味を持ちます。
一方cahceは一度用いられたデータのうちまた使われそうなものを近接する記憶領域へ格納することで,(一般的には)主記憶装置へのアクセスコストを軽減するために行われます。
これは「過去の資産の活用」という意味を持ちます。
「投機的実行」「未来への投資」「過去の資産の活用」という言葉は的確にそれぞれの概念を表しており、ナルホド!と思いました。
違いがとてもよく分かりました。やはり「キャッシュの中にプリフェッチが含まれる」と考えることもできるのですね。
2012/07/11 23:33:11