2013-11-20 5 views
1

любые приложения или системное ядро ​​могут получить доступ или даже изменить содержимое CPU cahce и/или TLB?Могу ли я сбросить/изменить содержимое x86 кэша процессора/TLB

я нашел краткое описание кэша процессора от этого Webiste:

«Ни один язык программирования не имеет прямой доступ к кэш-памяти процессора чтения и записи кэш что-то происходит автоматически аппаратными средствами, нет никакого способа, чтобы написать. инструкции, которые относятся к кешу как к любому отдельному объекту. Считывание и запись в кеш происходит как побочный эффект для всех инструкций, которые касаются памяти ».

Из этого сообщения кажется, что нет возможности читать/записывать содержимое CPU cahce/TLB.

Однако у меня также есть другая информация, которая противоречит приведенному выше. Эта информация подразумевает, что инструмент отладки может иметь возможность сбросить/показать содержимое кэша процессора.

В настоящее время я смущен. поэтому, пожалуйста, помогите мне.

+1

Возможный дубликат [Дамп содержимого буфера TLB процессора x86] (http://stackoverflow.com/questions/6803762/dump-the-contents-of-tlb-buffer-of-x86-cpu) – adamdunson

+0

Если вы делитесь своим другим источником информации, мы можем объяснить, почему это неправильно/неточно – Leeor

ответ

1

У меня есть ответы от другого поста: dump the contents of TLB buffer of x86 CPU. Спасибо adamdunson.

Люди могли бы читать этот документ о тестовых регистров, но она доступна только на очень старых x86 машинах test registers

Другие описания из вики https://en.wikipedia.org/wiki/Test_register:

тест регистра, в процессоре Intel 80486, был регистром, используемым процессором, как правило, для самопроверки. Большинство из этих регистров были недокументированными и использовались специализированным программным обеспечением. Контрольные регистры были названы TR3-TR7. Обычно для обычных программ эти регистры не работают. С помощью Pentium тестовые регистры были заменены на различными регистрами модели (MSR).

Для тестирования были предоставлены два тестовых регистра, TR6 и TR7. TR6 был регистром тестовой команды, а TR7 - регистрационными данными регистра . К этим регистрам обращались варианты команды MOV . Контрольный регистр может быть либо исходным операндом, либо операндом . Инструкции MOV определены как в режиме реального адреса, так и в защищенном режиме. Контрольные регистры - это привилегированные ресурсы. В защищенном режиме инструкции MOV, которые имеют доступ к ним, могут выполняться только на уровне привилегий 0. Попытка считывать или записывать тестовые регистры при выполнении любой другой привилегии. Уровень вызывает общее исключение защиты. Кроме того, эти инструкции недействительного опкод на любом процессоре новее, чем 80486.

На самом деле, я все еще ожидают некоторые аналогичные функции на Intel i7 или i5. К сожалению, я не могу найти связанного документа об этом. Если у кого-то есть такая информация, пожалуйста, дайте мне знать.