Сборник по задачам и примерам Assembler



Расширение традиционной архитектуры Intel

С появлением микропроцессоров пятого поколения (Pentium, Pentium MMX...) программисту следует различать два слоя микропроцессоров архитектуры Intel: базовый и модельно-зависимый.
Слой базовой архитектуры включает в себя элементы архитектуры, поддержку неизменность которых производитель (Intel) гарантирует. Это набор и структура cистемных регистров и регистров общего назначения, архитектура памяти и т. д.
Модельно-зависимый слой архитектуры включает в себя средства, поддержка Всоторых зависит от конкретной модели процессора (как правило, снизу вверх). Для того чтобы программа, исполняемая процессором, могла получить сведения о возможностях этого процессора, в систему команд включена команда CPUID Данная команда позволяет программе в любой момент времени получить сведения о классе, модели и архитектурных особенностях текущего процессора. Подробное описание данной команды приведено ниже.
Физически модельно-зависимые средства представляют собой набор модель-но-зависимых регистров — MSR (Model Specific Registers). Наличие и назначение этих регистров по определению зависит от конкретной модели процессора, что, в свою очередь, не гарантирует их поддержку будущими процессорами архитектуры Intel. MSR-регистры обеспечивают управление различными аппаратно-и программно-зависимыми средствами, включая следующие:

  • счетчики мониторинга производительности;
  • расширения отладки;
    И поддержка исключения машинной ошибки и архитектуры машинного контроля (МСА);
  • регистры MTRR для поддержки расширенных средств кэширования.

Чтение и запись в MSR-регистры осуществляются командами RDMSR и WRMSR. Большинство MSR-регистров инициализируются при программной инициализации процессора, многие из них можно впоследствии установить в соответствии с конкретными потребностями программы. Приведем «краткое описание команд RDMSR, WRMSR И CPUID.