2013-04-08 2 views

ответ

2

Когда слово записывается в кэше записи (WT) инструкцией хранилища, оно также отправляется на следующий уровень иерархии памяти (see cache entry at wikipedia). Следовательно, блоки кэша в кэше WT чисты, то есть будут согласованы с их копиями на следующем уровне, и записи не потребуются.

В случае использования памяти Direct Memory Acceses (DMA) может потребоваться недействительность WT, которая делает содержимое кеша устаревшим, но, насколько я знаю, это не ручные операции, а ОС или аппаратные средства.

Связанные вручную промывке, например, в соответствии с Руководстве разработчика архитектуры Intel программиста (Том 2, Instruction Set Reference):

WBINVD - Write Back и Invalidate Cache Эта команда записывает обратно все измененные строки кэша внутреннего кеша процессора к основной памяти и аннулирует (очищает) внутренние кеши.

Так что я думаю, что в случае кэша WT эта инструкция просто отменяет все строки кэша.

+1

Спасибо, chus. Если хранилище резервной копии для строки кэша является изменчивым (DMA), то это не делает недействительным идеальный кеш, чем его промывку? – San

+0

Вы правы. Я отредактировал свой ответ, чтобы сделать его более точным. – chus

+0

Да. Теперь, поскольку записи строки кэша WT всегда чисты, явный поток строки кэша не должен приводить к записи в реальную память, не так ли? CPU должен просто отказаться от инструкции по промывке. – San