stringtranslate.com

Регистр конкретной модели

Регистр , специфичный для модели ( MSR ), — это любой из различных регистров управления в архитектуре системы x86 , используемый для отладки , отслеживания выполнения программ, мониторинга производительности компьютера и переключения определенных функций ЦП .

История

С появлением процессора 80386 компания Intel начала внедрять «экспериментальные» функции, которые не обязательно будут присутствовать в будущих версиях процессора. Первыми из них были два «тестовых регистра» (TR6 и TR7), которые позволяли тестировать буфер TLB ( translation lookaside buffer ) процессора; специальный вариант инструкции 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) . Конспект лекций, курс программирования микрокомпьютеров, Университет Сан-Франциско, 2006 .
  5. ^ "2.1 ARCHITECTURAL MSRS". Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 4: регистры, специфичные для модели. Intel . Май 2020 г.
  6. ^ msr-tools на 01.org

Внешние ссылки