MSR

Материал из Wiki.ROM.by
Перейти к: навигация, поиск

Данная статья составлена по материалам сайтов www.wasm.ru и www.computerbooks.ru.

MSR регистры.

Что такое MSR?

MSR расшифровывается как Model-Specific Registers – модельно-специфические регистры.

Эти регистры предоставляют средства программной связи с микроархитектурой процессора, все важнейшие настройки которые можно менять программно находятся именно там.

Существует два уровня архитектуры процессора: модельно-независимый и модельно-зависимый. К первому относится все то, что обеспечивает совместимость процессоров от поколения к поколению: регистры общего назначения, система команд и т.д.

Модельно-зависимый уровень составляют средства, которые могут поддерживаться в одном процессоре, и не поддерживаться в последующих. Эти средства нужны, например, для программного взаимодействия с какими-либо функциями процессора, которые присутствуют только в данном процессоре, эти функции поддерживаются с помощью особых 64-разрядных регистров MSR.

Например, управление параметрами кэша, множителем частоты и т.д. всегда осуществляется через MSR, поскольку все эти вещи существенно меняются от процессора к процессору.

Программное взаимодействие с MSR.

  • Команда RDMSR (ReaD from Model Specific Register) выполняет чтение из MSR-регистра. Действие команды заключается в проверке двух условий: во-первых, проверяется наличие нулевого уровня привилегированности кода, во-вторых, проверяется наличие в регистре ЕСХ значения, адресующего один из MSR-регистров. Если хотя бы одно из этих условий не выполняется, то выполнение команды RDMSR заканчивается. Если выполняются оба условия, то значение MSR-регистра, адресуемого содержимым регистра ЕСХ, помещается в пару 32-битных регистров EDX:EAX.
  • Команда WRMSR (WRite to Model Specific Register) производит запись значения в один из 64-разрядных MSR-регистров. Действие команды заключается в проверке тех же двух условий: во-первых, проверяется наличие нулевого уровня привилегированности кода, во-вторых, проверяется наличие в регистре ЕСХ значения, адресующего один из MSR-регистров. Если хотя бы одно из этих условий не выполняется, то работа команды WRMSR заканчивается. Если выполняются оба условия, то значение пары 32-битных регистров EDX:ЕАХ пересылается в 64-битный MSR-регистр, номер которого задан в регистре ЕСХ.

Персональные инструменты
Google