Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Модель конкретного регистра ( MSR ) представляет собой любую из различных регистров управления в х86 набора команд , используемых для отладки , трассировки выполнения программы, производительность компьютера мониторинга и переключая определенные CPU функции.

История [ править ]

С выпуском процессора 80386 Intel начала внедрять «экспериментальные» функции, которые не обязательно будут присутствовать в будущих версиях процессора. Первыми из них были два «тестовых регистра» (TR6 и TR7), которые позволяли тестировать резервный буфер трансляции процессора (TLB); специальный вариант инструкции MOV позволял переходить к тестовым регистрам и обратно. [1] В 80486 (TR3 – TR5) следовали три дополнительных тестовых регистра, которые позволяли тестировать кеши процессора на предмет кода и данных. [2] Ни один из этих пяти регистров не был реализован в последующем процессоре Pentium; специальный вариант MOV сгенерировал исключение недопустимого кода операции. [3] [4]

С появлением процессора Pentium Intel предоставила пару инструкций ( RDMSR и WRMSR ) для доступа к текущим и будущим «регистрам, зависящим от модели», а также инструкцию CPUID для определения того, какие функции присутствуют в конкретной модели. Многие из этих регистров оказались достаточно полезными, чтобы их можно было сохранить. Intel классифицировала их как регистры для архитектурных моделей и взяла на себя обязательство включить их в будущие линейки продуктов. [5]

Использование MSR [ править ]

Чтение и запись в эти регистры обрабатываются с помощью rdmsrи wrmsrинструкции, соответственно. Поскольку это привилегированные инструкции, они могут выполняться только операционной системой. Использование модуля ядра Linux msr создает псевдофайл «/ dev / cpu / x / msr» (с уникальным x для каждого процессора или ядра процессора). Пользователь с разрешениями на чтение и / или запись в этот файл может использовать API файлового ввода-вывода для доступа к этим регистрам. Пакет msr-tools [6] предоставляет эталонную реализацию.

Документация относительно того, какие MSR поддерживает конкретная реализация процессора, обычно находится в документации процессора производителя процессора. Примерами довольно известных MSR являются регистры диапазона типов памяти (MTRR) и регистры диапазона адресов (ARR).

См. Также [ править ]

Ссылки [ править ]

  1. ^ «10.6.2 Тестовые регистры». 80386 СПРАВОЧНОЕ РУКОВОДСТВО ДЛЯ ПРОГРАММАТОРА (PDF) . Intel . 1986 г.
  2. ^ «10.6.2 Тестовые регистры». СПРАВОЧНОЕ РУКОВОДСТВО ДЛЯ ПРОГРАММАТОРА i486 (PDF) . Intel . 1990 г.
  3. ^ «23.2.12 Тестовые регистры». Руководство пользователя процессора Pentium Том 3: Руководство по архитектуре и программированию (PDF) . Intel . 1993 г.
  4. ^ Алан Круз. «Регистры для конкретных моделей» (PPT) . Конспекты лекций, Advanced микрокомпьютер Программирование класс, Университет Сан - Франциско, 2006 .
  5. ^ "2.1 АРХИТЕКТУРНЫЙ MSRS". Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32 Том 4: Регистры для конкретных моделей . Intel . Май 2020.
  6. ^ msr-tools на 01.org

Внешние ссылки [ править ]

  • https://www.coreboot.org/Msrtool