С изменчивые переменные и кэш-память
Кэш контролируется аппаратным обеспечением кеша прозрачно для процессора, поэтому, если мы используем переменные переменные в программе на C, как гарантируется, что моя программа будет считывать данные каждый раз с фактического указанного адреса памяти, но не с кеша.
Насколько я понимаю,
Ключевое слово Volatile говорит компилятору, что ссылки на переменные не должны быть оптимизированы и должны читаться как запрограммировано в коде.
Кэш прозрачно контролируется аппаратным обеспечением кеша, поэтому, когда процессор выдает адрес, он не знает, поступают ли данные из кеша или из памяти.
Итак, если у меня есть требование читать каждый раз адрес памяти, как я могу убедиться, что он ссылается не на кеш, а на требуемый адрес?
В некотором смысле, эти два понятия плохо сочетаются друг с другом. Пожалуйста, уточните, как это делается.
(Представьте, что у нас есть политика обратной записи в кеше (если требуется для анализа проблемы))
Спасибо, Микроядро :)