Реклама:

Процессор Pentium 4 развивался на протяжении многих лет. Как отмечалось в главе 1, его история восходит к самым первым микропроцессорам. Основная архитектура команд обеспечивает выполнение программ, написанных для процессоров 8086 и 8088 (которые имеют одну и ту же архитектуру команд), и отчасти даже для 8080 - 8-разрядного процессора, который был популярен в 70-е годы. На 8080, в свою очередь, в значительной степени повлияли требования совместимости с процессором 8008, построенным на базе процессора 4004 (4-разрядной микросхемы, применявшейся еще в каменном веке).

С точки зрения программного обеспечения компьютеры 8086 и 8088 были 16-разрядными (хотя компьютер 8088 содержал 8-разрядную шину данных). Их последователь, 80286, также был 16-разрядным. Его главным преимуществом был больший объем адресного пространства, хотя очень немногие программы его использовали, поскольку оно состояло из 16 384 64-килобайтных сегментов, а не представляло собой линейную 230-байтную память.

Процессор 80386 был первой 32-разрядной машиной, выпущенной компанией Intel. Все последующие процессоры (80486, Pentium, Pentium Pro, Pentium II, Pentium III, Pentium 4, Celeron, Xeon, Pentium M, Centrino и т. д.) имеют точно такую же 32-разрядную архитектуру, которая называется IA-32, поэтому мы сосредоточим наше внимание именно на этой архитектуре. Единственным существенным изменением архитектуры со времен процессора 80386 было введение в более поздние версии Pentium ММХ-команд. Эти команды выполняют совершенно определенную функцию - повышают производительность мультимедийных приложений.

Pentium 4 имеет 3 операционных режима, в двух из которых он работает как 8086. В реальном режиме все функции, которыми был наделен процессор со времен 8088, отключаются, и Pentium 4 работает как простой процессор 8088. При программной ошибке происходит полный отказ системы. Если бы компания Intel занималась разработкой человеческих существ, то внутрь каждого такого существа непременно помещался бы специальный бит, возвращающий человека в режим функционирования своих предков (примитивный мозг, отсутствие речи, обитание на деревьях, сугубо банановая диета и т. д.).

На следующей ступени находится режим виртуального процессора 8086, который делает возможным исполнение старых программ, написанных для 8088, но с защитой. Чтобы запустить старую программу 8088, операционная система создает специальную изолированную среду, которая работает как процессор 8088, если не считать того, что при программном сбое операционной системе передается соответствующая информация, и полного краха системы не происходит. Когда пользователь Windows открывает окно MS-DOS, запускаемая в этом окне программа выполняется в режиме виртуального процессора 8086 - это позволяет защитить Windows от возможных вольностей DOS-программ.

Последний режим - это защищенный режим, в котором Pentium 4 работает как Pentium 4, а не как 8088. В этом режиме доступны 4 уровня привилегий, задаваемые битами во флаговом регистре (PSW). Уровень 0 соответствует привилегированному режиму на других компьютерах и обеспечивает полный доступ к машине. Этот уровень используется операционной системой. Уровень 3 предназначен для пользовательских программ. На этом уровне блокируется доступ к определенным командам и регистрам управления, чтобы сбой какой-нибудь пользовательской программы не привел к краху всей системы. Уровни 1 и 2 применяются редко.

Pentium 4 имеет огромное адресное пространство. Память разделена на 16 384 сегмента, каждый из которых занимает адреса от 0 до 232 - 1. Однако большинство операционных систем (включая UNIX и все версии Windows) поддерживают только один сегмент, поэтому для прикладных программ обычно доступно линейное адресное пространство размером 232 байт, причем иногда часть этого пространства занимает сама операционная система. Каждый байт в адресном пространстве имеет свой адрес. Слова состоят из 32 бит. Байты нумеруются справа налево (то есть самый первый адрес соответствует самому младшему байту).

Регистры процессора Pentium 4 показаны на рис. 5.3. Первые четыре регистра, ЕАХ, ЕВХ, ЕСХ и EDX, - 32-разрядные. Это регистры общего назначения, хотя у каждого из них есть определенные особенности. ЕАХ - основной арифметический регистр; ЕВХ предназначен для хранения указателей (адресов памяти); ЕСХ связан с организацией циклов; EDX нужен для умножения и деления - этот регистр вместе с ЕАХ содержит 64-разрядные произведения и делимые.

Общий обзор уровня архитектуры набора команд Pentium 4

Рис. 5.3. Основные регистры процессора Pentium 4

Младшие 16 и 8 бит в каждом из рассматриваемых регистров - это самостоятельные 16- и 8-разрядный регистры соответственно, позволяющие легко манипулировать 16- и 8-разрядными значениями. В компьютерах 8088 и 80286 имеются только 8- и 16-разрядные регистры, 32-разрядные регистры появились в системе 80386 вместе с приставкой Е (Extended - расширенный).

Следующие три регистра также являются регистрами общего назначения, но с большей степенью специализации. Регистры ESI и EDI предназначены для хранения указателей и в основном ориентированы на аппаратную поддержку строковых команд: ESI указывает на исходную строку, EDI - на целевую. Регистр ЕВР тоже предназначен для хранения указателей и обычно используется для указания на базу текущего фрейма локальных переменных, как и регистр LV в машине IJVM. Такой регистр обычно называют указателем фрейма. Наконец, регистр ESP - это указатель стека.

Следующая группа регистров от CS до GS - сегментные регистры. Это электронные трилобиты - атавизмы, оставшиеся от процессора 8088, которому через 16-разрядные адреса было доступно 220 байт памяти. Достаточно сказать, что когда Pentium 4 работает в режиме использования единого линейного 32-разрядного адресного пространства, их можно смело игнорировать. Регистр EIP (Extended Instruction Pointer - расширенный указатель команд) представляет собой счетчик команд. Регистр EFLAGS - флаговый.

Команды5 || Оглавление || Общий обзор уровня архитектуры набора команд UltraSPARC III