Методические указания по лабораторным работам по курсу «Аппаратные средства компьютерных систем», страница 3

С целью получения практических навыков по разработке и выполнению программ, определяющих тип ЦПУ, необходимо самостоятельно составить программу в соответствии с вариантом задания (п. 1.7).

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

Простым и, в то же время, надежным способом идентификации является контроль за изменением разрядов в регистре флагов (EFLAGS). При этом используются следующие биты регистра флагов (рисунок 1.1):

—  флаг идентификации ID. Предназначен для проверки, поддерживается ли процессором команда CPUID. Если в программе можно установить и сбросить этот флаг, значит команда CPUID данным процессором поддерживается;

—  флаг ожидания виртуального прерывания VIP. Как и флаг VIF, позволяет каждой прикладной программе в многозадачном режиме иметь виртуальную версию флага IF;

—  флаг виртуального прерывания VIF. Этот флаг является виртуальным подобием флага IF, используется совместно с VIP;

—  флаг контроля выравнивания AC. Установкой флага AC и бита AM регистра CR0 включается контроль выравнивания при обращении к памяти;

—  флаг виртуального режима VM. Установкой флага VM процессор переключается в режим виртуального 8086;

—  флаг возобновления RF. Временно выключает обработку особых случаев отладки для того, чтобы команда, вызвавшая такую ситуацию, могла быть перезапущена и не стала бы причиной новой особой ситуации. Отладчик устанавливает этот флаг командой IRETD при возврате в прерванную программу;

—  флаг вложенной задачи NT. Процессор устанавливает и проверяет этот флаг для контроля за прерванными задачами и при вызове процедур. Флаг NT влияет на выполнение команды IRET;

—  уровень привилегий ввода-вывода IOPL. Уровень привилегий ввода-вывода используется механизмом защиты для управления доступом к адресному пространству ввода-вывода.

Рисунок 1.1 — Регистр EFLAGS

Флаги ID, VIP и VIF присутствуют в регистре флагов процессоров, начиная с Pentium, AC — в процессорах i486 и выше. Флаги IOPL и NT впервые использованы в процессорах i286, а VM и RF — i386.