用語の意味を教えてください。


Cache Flushといった時、それによって指し示す意味はCacheのInvalidateなのでしょうか。
それとも、CacheのWriteback Invalidateなのでしょうか。

例えば、x86の命令であるINVD(Invalidate Internal Caches)の説明には、下記のような説明がありあたかもInvalidateとFlushが同じ概念のように記載されています。

"Invalidates (flushes) the processor’s internal caches and issues a special-function bus cycle that directs external caches to also flush themselves. Data held in internal caches is not written back to main memory."
http://www.felixcloutier.com/x86/INVD.html

一方、同じx86の命令であるclflush(CLFLUSH—Flush Cache Line)の説明は下記のようになっており、WriteBack Invalidateの意味で使われているようです。
"If, at any level of the cache hierarchy, the line is inconsistent with memory (dirty) it is written to memory before invalidation. The source operand is a byte memory location."

概念的には、Writeback InvalidateとInvalidateはかなり違うものと思っているので、Cache Flushといったあいまいな単語が使われているのに気持ち悪さを感じるのですが、どのような概念の単語なのか解説いただければ幸いです。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2017/02/15 10:30:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:tea_cup No.1

回答回数1071ベストアンサー獲得回数194

ポイント100pt

Linux用語では、キャッシュ操作は、以下の3種類です。

Linuxメモ : キャッシュ操作(Invalidate、clean、flush)の意味

キャッシュ操作(Invalidate、clean、flush)の意味
・Invalidate (discard)
 書き戻しを行わずにキャッシュラインを無効化する。
・Clean (write back)
 キャッシュラインを書き戻す。キャッシュラインは有効で、物理メモリの内容と一致する。
・flush (Clean and invalidate)
 キャッシュラインを書き戻し、かつ、キャッシュラインを無効化する。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません