Здравствуйте! Читая справочник по командам проца, нашел команды управления кешерованием. Приведу пример. INVD - Аннулирование данных в первичном кеше без обратной записи WBINVD - Обратная запись модифицированных строк и аннулирование кеш-памяти Команды есть, а где им найти применение в проге не знаю, но ведь зачем-то их сделали. Если у кого есть другие инструкции управления кешем, то напишите их. Я всего три видел, две из которых тут написал.
INVD, WBINVD и INVLPG это привелегированные системные инструкции, поэтому в защищенном режиме в юзермодной проге их использовать нельзя - и слава богу, иначе бы ты со своей любознательностью мог таких дров наломать ) У меня лично никаких инструкций нет , а вот в расширениях SSE\SSE2 есть юзермодные инструкции, связанные с работой кэша MOVNTxxx - инструкции записи в память минуя кэш PREFETCHxxx - предзагрузка данных в кэш CLFLUSH - аналог WBINVD для одной линейки кэша
вообще говоря WBINVD применяют в частности для изменения типов кэширования областей, которые заданы через MTRR Код (Text): ... cli mov ebx, cr4 ; save CR4 mov eax, cr0 or eax, 0x60000000 mov cr0, eax ; disable caching wbinvd mov eax, cr3 mov cr3, eax ; flush TLB mov ecx, 0x2FF rdmsr and eax, 0xFFFFF7FF wrmsr ; disable MTRRs ; change MTRRs ...