Управление кэшированием
Команды идентификации и управления архитектурой
Команды обмена с управляющими регистрами
Команда
| Описание
|
MOV CRn,источник
| MOV operand to system register
Загрузка управляющего регистра CRn.
|
MOV приемник,CRn
| MOV operand from system register
Чтение управляющего регистра CRn.
|
MOV DRn, источник
| MOV operand to system register
Загрузка регистра отладки DRn.
|
MOV приемник,DRn
| MOV operand from system register
Чтение регистра отладки DRn.
|
MOV TRn, источник
| MOV operand to system register
Загрузка регистра тестирования TRn.
|
MOV приемник,TRn
| MOV operand from system register
Чтение регистра тестирования TRn.
|
RDTSC
| ReaD from Time Stamp Counter
Чтение счетчика тактов.
|
Команда
| Описание
|
CPUID
| CPU IDentification
Получение информации о текущем процессоре. Требует параметр в регистре EAX.
Если EAX=0, то процессор в регистрах EBX,EDX,ECX возвращает символьную строку, специфичную для производителя. Процессоры AMD возвращают строку "AuthenticAMD", процессоры Intel - "Genuinelntel".
Если EAX=1, то в младшем слове регистра EAX возвращает код идентификации.
Если EAX=2, то в регистрах EAX, EBX, ECX, EDX возвращаются параметры конфигурации процессора.
|
RDMSR
| ReaD from Model Specific Register
Чтение из 64 разрядного модельно-специфического регистра MSR. Номер MSR должен находиться в регистре ECX. Алгоритм:
· Проверить на нулевой привилегий.
· Проверка правильности номера в регистре ECX.
· Если все правильно, то поместить значение адресуемого MSR в регистровую пару EDX:EAX.
|
WRMSR
| Write to Model Specific Register
Запись в 64 разрядный модельно-специфического регистра MSR. Номер MSR должен находиться в регистре ECX. Алгоритм:
· Проверить на нулевой привилегий.
· Проверка правильности номера в регистре ECX.
· Если все правильно, то поместить в адресуемый MSR значние из регистровой пары EDX:EAX.
|
Необходимость управления кэшированием вызвана тем, что большинство мультимедийных приложений оперируют большими объемами данных, при этом может случиться, что данные, загруженные в кэш, никогда не понадобятся. Чтобы оптимизировать работу кэша, в систему команд SSE-расширения и были включены команды управления кэшем.
Мнемоника
| Описание
|
MOVNTI
| MOVe using Non-Temporal of Int32
Сохранение двойного слова из 32-разрядного регистра общего назначения в памяти без использования кэша.
|
Команда
| Описание
|
INVD
| INValiDate cache – недостовеность кэш-памяти. Алгоритм:
· Очистка кэш-памяти первого уровня.
· Генерация сигнала на. очистку кэш-памяти второго уровня.
|
WBINVD
| Write Back and INValiDate cache - обратная запись и недостовеность кэш-памяти. Алгоритм:
· Очистка кэш-памяти первого уровня.
· Записать содежимое кэш-памяти второго уровня в основую память.
· Очистить кэш-памяти второго уровня.
|
INVLPG адрес
| INValiDate PaGe – недостовеность элемента буфера ассоциативной трансляции таблиц каталогов и страниц памяти TLB (Translation Lookaside Buffer). Алгоритм:
· Просмотреть элементы буфера TLB на соответствие его элементов адресу в команде.
· Если соответстчие выявлено, то пометить элемент как недостоверный.
|