Любая выполняющаяся программа получает в свое распоряжение определенный
набор ресурсов процессора. Эти ресурсы необходимы для обработки и хранения в памяти команд и данных программы, а также информации о текущем состоянии программы и процессора. Программную модель процессора в архитектуре IA-32 процессоров Intel составляет следующий набор ресурсов (рис. 5):
пространство адресуемой памяти до 232 – 1 байт (4 Гбайт), для Pentium III/IV -до 236 – 1 байт (64 Гбайт);
набор регистров для хранения данных общего назначения;
набор сегментных регистров;
набор регистров состояния и управления;
набор регистров устройства вычислений с плавающей точкой (сопроцессора);
набор регистров целочисленного MMX-расширения, отображенных на регистры сопроцессора (впервые появились в архитектуре процессора Pentium MMX);
набор регистров MMX-расширения с плавающей точкой (впервые появились в архитектуре процессора Pentium III);
программный стек – специальная информационная структура, работа с которой предусмотрена на уровне машинных команд (более подробно она будет обсуждена позже).
|
|
Рис. 5. Программная модель архитектуры IA-32 процессоров Intel
Это основной набор ресурсов. Кроме того, к ресурсам, поддерживаемым архитектурой IA-32, необходимо отнести порты ввода-вывода, счетчики мониторинга производительности.
Программные модели более ранних процессоров (i486, первые Pentium) отличаются меньшим размером адресуемого пространства оперативной памяти (232 – 1, так как разрядность их шины адреса составляет 32 бита) и отсутствием некоторых групп регистров. Для каждой группы регистров в скобках показано, начиная с какой модели данная группа регистров появилась в программной модели процессоров Intel. Если такого обозначения нет, то это означает, что данная группа регистров присутствовала в процессорах i386 и i486. Что касается еще более ранних процессоров i8086/88, то на самом деле они тоже полностью представлены на схеме, но составляют лишь ее небольшую ее часть. В программную модель данных процессоров входят 8- и 16-разрядные регистры общего назначения, сегментные регистры, регистры FLAGS, IP и адресное пространство памяти размером до 1 Мбайт. Свойства некоторых перечисленных далее программно-доступных ресурсов определяются текущим режимом работы процессора.