Регистр конкретной модели
Регистр конкретной модели ( MSR ) — это любой из различных регистров управления в x86 системной архитектуре , используемый для отладки , отслеживания выполнения программ, мониторинга производительности компьютера и переключения определенных функций ЦП .
История
[ редактировать ]С выпуском 80386 процессора компания Intel начала внедрять «экспериментальные» функции, которые не обязательно будут присутствовать в будущих версиях процессора. процессора Первыми из них были два «тестовых регистра» (TR6 и TR7), которые позволяли тестировать резервный буфер трансляции (TLB) ; специальный вариант Инструкция MOV позволяла переходить в тестовые регистры и обратно. [1] В 80486 последовали три дополнительных тестовых регистра (TR3–TR5), которые позволяли тестировать кэши процессора на наличие кода и данных. [2] Ни один из этих пяти регистров не был реализован в последующем процессоре Pentium; специальный вариант MOV сгенерировал исключение недопустимого кода операции . [3] [4]
С появлением процессора Pentium компания Intel предоставила пару инструкций ( РДМСР и WRMSR ) для доступа к текущим и будущим «регистрам конкретной модели», а также Инструкция CPUID для определения того, какие функции присутствуют в конкретной модели. Многие из этих реестров оказались достаточно полезными, чтобы их можно было сохранить. Корпорация Intel классифицировала их как регистры, специфичные для конкретной модели архитектуры , и обязалась включить их в будущие линейки продуктов. [5]
Использование MSR
[ редактировать ]Чтение и запись в эти регистры осуществляется rdmsr
и wrmsr
инструкции соответственно. Поскольку это привилегированные инструкции, они могут выполняться только операционной системой. Использование модуля ядра Linux msr создает псевдофайл «/dev/cpu/ x /msr» (с уникальным x для каждого процессора или ядра процессора). Пользователь с разрешениями на чтение и/или запись в этот файл может использовать API файлового ввода-вывода для доступа к этим регистрам. MSR -инструменты [6] пакет предоставляет эталонную реализацию.
Документация о том, какие MSR поддерживает определенная реализация процессора, обычно находится в документации процессора поставщика ЦП. Примерами довольно известных MSR являются регистры диапазона типа памяти (MTRR) и регистры диапазона адресов (ARR).
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «10.6.2 Тестовые регистры». 80386 СПРАВОЧНОЕ РУКОВОДСТВО ДЛЯ ПРОГРАММИСТА (PDF) . Интел . 1986.
- ^ «10.6.2 Тестовые регистры». СПРАВОЧНОЕ РУКОВОДСТВО ПРОГРАММИСТОРА ПРОЦЕССОРА i486 (PDF) . Интел . 1990.
- ^ «23.2.12 Тестовые регистры». Руководство пользователя процессора Pentium, том 3: Руководство по архитектуре и программированию (PDF) . Интел . 1993.
- ^ Алан Круз. «Регистры конкретной модели» (PPT) . Конспект лекций, курс продвинутого микрокомпьютерного программирования, Университет Сан-Франциско, 2006 г.
- ^ «2.1 АРХИТЕКТУРНЫЙ МСРС». Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 4: Регистры для конкретной модели . Интел . Май 2020.
- ^ msr-инструменты на 01.org