キャッシュはプロセッサに対して透過的にキャッシュ ハードウェアによって制御されるため、C プログラムで揮発性変数を使用する場合、プログラムがキャッシュではなく指定された実際のメモリ アドレスから毎回データを読み取ることがどのように保証されるのでしょうか。
私の理解では、
Volatile キーワードは、変数参照を最適化せず、コードでプログラムされたとおりに読み取る必要があることをコンパイラに伝えます。
キャッシュはキャッシュ ハードウェアによって透過的に制御されるため、プロセッサがアドレスを発行するとき、データがキャッシュからのものかメモリからのものかはわかりません。
したがって、必要なたびにメモリアドレスを読み取る必要がある場合、キャッシュからではなく必要なアドレスから参照されるようにするにはどうすればよいですか?
どういうわけか、これら 2 つの概念はうまく適合しません。その方法を明確にしてください。
(キャッシュにライトバック ポリシーがあると仮定します (問題の分析に必要な場合))
ありがとう、マイクロカーネル:)