assembler. Учебник для вузов_Юров В.И_2003 -637с (862834), страница 9
Текст из файла (страница 9)
2.4. Структурная схема процессора Pentium IVМикроархитектура NetBurst поддерживает еще одну новую технологию — НуperThreading. Данная технология позволяет на базе одного физического процессораPentium IV моделировать несколько логических, каждый из которых имеет собственное архитектурное пространство IA-32. Под архитектурным пространством40Глава 2. Программно-аппаратная архитектура IA-32 процессоров IntelIA-32 понимается совокупность регистров данных, сегментных регистров, системных регистров и регистров MSR.
Каждый логический процессор имеет также собственный контроллер прерываний API С.На этом, наверное, следует завершить обсуждение общих вопросов, связанныхс архитектурой процессоров Intel. Более подробную информацию по этой теме,в том числе о логике функционирования и характеристиках микроархитектур Р6и NetBurst, можно получить из материала книги [13].
Наша ближайшая задача —разобраться, как управлять этими сложными процессорами. Программисту совершенно необязательно помнить о схемотехнических тонкостях реализации процессора, ему достаточно знать, какие части процессора ему доступны и как с нимивзаимодействовать для реализации некоторой задачи. Первый шаг в этом направлении — знакомство с программной моделью процессора. Эта модель описываетвидимые для программиста объекты архитектуры процессора, знание которых позволяет программисту эффективно и в полном объеме использовать возможностипроцессора.Программная модель IA-32Любая выполняющаяся программа получает в свое распоряжение определенныйнабор ресурсов процессора.
Эти ресурсы необходимы для обработки и храненияв памяти команд и данных программы, а также информации о текущем состояниипрограммы и процессора. Программную модель процессора в архитектуре IA-32процессоров Intel составляет следующий набор ресурсов (рис. 2.5):' пространство адресуемой памяти до 232 - 1 байт (4 Гбайт), для Pentium III/IV —до 236 - 1 байт (64 Гбайт);- набор регистров для хранения данных общего назначения;набор сегментных регистров;набор регистров состояния и управления;• набор регистров устройства вычислений с плавающей точкой (сопроцессора);набор регистров целочисленного MMX-расширения, отображенных на регистры сопроцессора (впервые появились в архитектуре процессора Pentium MMX);'набор регистров MMX-расширения с плавающей точкой (впервые появилисьв архитектуре процессора Pentium III);9 программный стек — специальная информационная структура, работа с которой предусмотрена на уровне машинных команд (более подробно она будетобсуждена позже).Это основной набор ресурсов.
Кроме того, к ресурсам, поддерживаемым архитектурой IA-32, необходимо отнести порты ввода-вывода, счетчики мониторингапроизводительности.Программные модели более ранних процессоров (i486, первые Pentium) отличаются меньшим размером адресуемого пространства оперативной памяти (232 - 1,так как разрядность их шины адреса составляет 32 бита) и отсутствием некоторыхгрупп регистров. Для каждой группы регистров в скобках показано, начинаяАрхитектура 1А-3241Регистры общего назначенияcax1ahi;Адресноепространствопамятиaxalf| Гi486/!entium3Pentium Pro/ I/III/IVdxcdx1dh8CXdlСтекI clch< — ss:espbxcbx0bXbh1531ebp |esi |1 bl70bp•0Сегментные реги стрыsiIIISespP31015•' I, | ,••',.mmxOmmxlI|ГIРегистры уст ройствас плавающе>i точкой(сопроцес :PP?Jst(0)..( |st(1)s 2i«>st(3)st(4)Ist(5)Ist(6) .'.•|Регистр флаговenags/ttr0Регистр-указатель командыeip|IIP03115.'.-•.•'79III150Регистры состояния и управлениягистры01I|I|xmmOxmmlI|xmm2xmm3I|Immx2ILmmx3II|Immx4I|xmm4|Immx5Immx6mmx7II|xmm5xmm6I|II••'630Регистры целочисленного MMX-расширения(Pentium MMX/II/III/IV)xmm7127I0Регистры MMX-расширения с плавающей точкой(Pentium III/IV)Рис.
2.5. Программная модель архитектуры IA-32 процессоров Intelс какой модели данная группа регистров появилась в программной модели процессоров Intel. Если такого обозначения нет, то это означает, что данная группарегистров присутствовала в процессорах i386 и i486. Что касается еще более ранних процессоров 18086/88, то на самом деле они тоже полностью представлены насхеме, но составляют лишь ее небольшую ее часть. В программную модель данныхпроцессоров входят 8- и 16-разрядные регистры общего назначения, сегментныерегистры, регистры FLAGS, IP и адресное пространство памяти размером до 1 Мбайт.Свойства некоторых перечисленных далее программно-доступных ресурсовопределяются текущим режимом работы процессора.42Глава 2.
Программно-аппаратная архитектура IA-32 процессоров IntelРежимы работы процессора архитектуры IA-32Режим работы процессора определяет поведение, номенклатуру и свойства доступных ресурсов процессора. Перевод процессора из одного режима в другой осуществляется специальными программными и аппаратными методами.В рамках архитектуры IA-32 доступны следующие режимы работы процессора.II Режим реальных адресов, или просто реальный режим (real mode) — это режим,в котором работал 18086. Наличие его в i486 и Pentium обусловлено тем, чтофирма Intel старается обеспечить в новых моделях процессоров возможностьфункционирования программ, разработанных для ранних моделей.II Защищенный режим (protected mode) позволяет максимально реализовать всеидеи, заложенные в процессорах архитектуры IA-32, начиная с i80286.
Программы, разработанные для J8086 (реального режима), не могут функционироватьв защищенном режиме. Одна из причин этого связана с особенностями формирования физического адреса в защищенном режиме.И Режим виртуального процессора 8086 предназначен для организации многозадачной работы программ, разработанных для реального режима (процессора18086), совместно с программами защищенного режима. Переход в этот режим(virtual 8086 mode) возможен, если процессор уже находится в защищенномрежиме. Работа программ реального режима в режиме виртуального 18086 возможна благодаря тому, что процесс формирования физического адреса для нихпроизводится по правилам реального режима.Ш Режим системного управления (System Management Mode, SMM) — это новыйрежим работы процессора, впервые появившийся в процессоре Pentium. Онобеспечивает операционную систему механизмом для выполнения машиннозависимых функций, таких как перевод компьютера в режим пониженного энергопотребления или выполнения действий по защите системы.
Для переходав данный режим процессор должен получить специальный сигнал SMI от усовершенствованного программируемого контроллера прерываний (AdvancedProgrammable Interrupt Controller, APIC), при этом сохраняется состояние вычислительной среды процессора.
Функционирование процессора в этом режиме подобно его работе в режиме реальных адресов. Возврат из этого режимапроизводится специальной командой процессора.Процессор всегда начинает работу в реальном режиме.Набор регистровРегистрами называются области высокоскоростной памяти, расположенные внутрипроцессора в непосредственной близости от его исполнительного ядра. Доступк ним осуществляется несравнимо быстрее, чем к ячейкам оперативной памяти.Соответственно, машинные команды с операндами в регистрах выполняются максимально быстро, поэтому в программах на языке ассемблера регистры используются очень интенсивно.
К сожалению, архитектура IA-32 предоставляет в распоряжение программиста не слишком много регистров, поэтому они являютсякритически важным ресурсом и за их содержимым приходится следить очень внимательно.Архитектура 1А-3243Большинство регистров имеют определенное функциональное назначение.С точки зрения программиста, их можно разделить на две большие группы.is Первую группу образуют пользовательские регистры, к которым относятся:D регистры общего назначения EAX/AX/AH/AL, EBX/BX/BH/BL, EDX/DX/DH/DL, ЕСХ/CX/CH/CL, ЕВР/ВР, ESI/SI, EDI/DI, ESP/SP предназначены для хранения данныхи адресов, программист может их использовать (с определенными ограничениями) для реализации своих алгоритмов;D сегментные регистры CS, DS, SS, ES, FS, GS используются для хранения адресовсегментов в памяти;П регистры сопроцессора ST(0), ST(1), ST(2), ST(3), ST(4), ST(5), ST(6), ST(7) предназначены для написания программ, использующих тип данных с плавающей точкой (глава 17);П целочисленные регистры MMX-расширения ММХО, MMXl, MMX2, ММХЗ, ММХ4,ММХ5, ММХб, ММХ7;D регистры MMX-расширения с плавающей точкой XMMO, XMM1, ХММ2, ХММЗ,,ХММ4,ХММ5,ХММб,ХММ7;D регистры состояния и управления (регистр флагов Е FLAGS/FLAGS и региструказатель команды EIP/IP) содержат информацию о состоянии процессора,исполняемой программы и позволяют изменить это состояние.• Во вторую группу входят системные регистры, то есть регистры, предназначенные для поддержания различных режимов работы, сервисных функций, а также регистры, специфичные для определенной модели процессора.