Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Правильніе ответы по АПК.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
5.5 Mб
Скачать

27. Формування 20 розрядної адреси в процесорі i8086, опис блоку й регістрів. Призначення сегментних регістрів cs, ds, ss, es, регістрів покажчиків sp, bp, si, di і регістру ip.

Сегментные регистры

Регистры показчики

Регистр ІР

28. Архітектура процесорів ia32, режими роботи, дескриптори. Захищений режим роботи процесора, особливості адресації в цьому режимі.

Микроархитектуру Р6 поддерживают такие процессоры Intel, как Pentium Pro, Pentium II (Xeon), Celeron, Pentium III (Xeon). Эта микроархитектура является, по определению Intel, трехходовой (three-way) суперскалярной конвейерной архитектурой. Термин «трехходовая» означает поддержку технологий параллельного вычисления, позволяющих процессору одновременно (за один такт) обрабатывать до трех инструкций. Процессоры Intel относятся к группе CISC-процессоров, в которых для выполнения одной команды может требоваться от единиц до нескольких десятков процессорных тактов. Конвейер - специальное устройство, существующее на уровне архитектуры исполнительной части компьютера. Благодаря конвейеру исполнение команды разбивается на несколько стадий, каждая из которых реализует некоторую элементарную операцию общего процесса обработки команды.

Конвейеризация заключается в том, что весь процесс обработки команд разбит на 12 стадий, которые исполняются различными блоками процессора. Сколько именно команд обрабатывается процессором, сказать трудно. Термин трехходовой означает лишь то, что для исполнения из входного потока выбираются до трех команд. Известен верхний предел - в процессоре в каждый момент времени могут находиться до 30 команд в различной стадии исполнения. Структурно процессор микроархитектуры Р6 состоит из нескольких подсистем. Подсистема памяти состоит из системной шины, кэша второго уровня L2, устрой-ства шинного^интерфейса, кэша первого уровня L1 (инструкций и данных), устройства связи с памятью и буфера переупорядочивания запросов к памяти. Устройство выборки/декодированиясостоит из устройства выборки команд, блока предсказания переходов, в который входят блоки меток перехода и вычисления адреса следующей инструкции, устройства декодирования, устройства микропрограммного управления и таблицы псевдонимов регистров.

Режимы работы процессора архитектуры IA-32

В рамках архитектуры IA-32 доступны следующие режимы работы процессора.

Режим реальных адресов, или просто реальный режим (real mode) - это режим, в котором работал i8086. Наличие его в i486 и Pentium обусловлено тем, что фирма Intel старается обеспечить в новых моделях процессоров возможность функционирования программ, разработанных для ранних моделей.

Защищенный режим (protected mode) позволяет максимально реализовать все идеи, заложенные в процессорах архитектуры IA-32, начиная с i80286. Программы, разработанные для i8086 (реального режима), не могут функционировать в защищенном режиме. Одна из причин этого связана с особенностями формирования физического адреса в защищенном режиме. Режим виртуального процессора 8086 предназначен для организации многозадачной работы программ, разработанных для реального режима (процессора i8086), совместно с программами защищенного режима. Переход в этот режим (virtual 8086 mode) возможен, если процессор уже находится в защищенном режиме. Работа программ реального режима в режиме виртуального i8086в о з-можна благодаря тому, что процесс формирования физического адреса для них производится по правилам реального режима. Режим системного управления (System Management Mode, SMM) - это новый режим работы процессора, впервые появившийся в процессоре Pentium. Он обеспечивает операционную систему механизмом для выполнения машинно-зависимых функций, таких как перевод компьютера в режим пониженного энергопотребления или выполнения действий по защите системы. Для перехода в данный режим процессор должен получить специальный сигнал SMI от усовершенствованного программируемого контроллера прерываний (Advanced Programmable Interrupt Controller, APIC), при этом сохраняется состояние вычислительной среды процессора. Функционирование процессора в этом режиме подобно его работе в режиме реальных адресов. Возврат из этого режима производится специальной командой процессора.

Процессор всегда начинает работу в реальном режиме.

Программная модель IA-32

Любая выполняющаяся программа получает в свое распоряжение определенный

набор ресурсов процессора. Эти ресурсы необходимы для обработки и хранения в памяти команд и данных программы, а также информации о текущем состоянии программы и процессора. Программную модель процессора в архитектуре IA-32 процессоров Intel составляет следующий набор ресурсов: пространство адресуемой памяти до 232 - 1 байт (4 Гбайт), для Pentium III/IV -до 236 - 1 байт (64 Гбайт);

набор регистров для хранения данных общего назначения;

набор сегментных регистров;

набор регистров состояния и управления;

набор регистров устройства вычислений с плавающей точкой (сопроцессора); набор регистров целочисленного MMX-расширения, отображенных на регистры сопроцессора (впервые появились в архитектуре процессора Pentium MMX); набор регистров MMX-расширения с плавающей точкой (впервые появились в архитектуре процессора Pentium III);

программный стек - специальная информационная структура, работа с которой предусмотрена на уровне машинных команд (более подробно она будет обсуждена позже).

Это основной набор ресурсов. Кроме того, к ресурсам, поддерживаемым архитектурой IA-32, необходимо отнести порты ввода-вывода, счетчики мониторинга производительности.

Программные модели более ранних процессоров (i486, первые Pentium) отличаются меньшим размером адресуемого пространства оперативной памяти (232 - 1, так как разрядность их шины адреса составляет 32 бита) и отсутствием некоторых групп регистров.

Сегментные регистры

Процессоры Intel аппаратно поддерживают сегментную организацию программы. Это означает, что любая программа состоит из трех сегментов: кода, данных и стека. Логически машинные команды в архитектуре IA-32 построены так, что при выборке каждой команды для доступа к данным программы или к стеку неявно используется информация из вполне определенных сегментных регистров. В зависимости от режима работы процессора по их содержимому определяются адреса памяти, с которых начинаются соответствующие сегменты. В программной модели IA-32 имеется шесть сегментных регистров CS, SS, DS, ES, GS, FS, служащих для доступа к четырем типам сегментов.

Сегмент кода содержит команды программы. Для доступа к этому сегменту служит регистр сегмента кода (Code Segment register) CS. Он содержит адрес сегмента с машинными командами, к которому имеет доступ процессор (эти команды загружаются в конвейер процессора). Сегмент данных содержит обрабатываемые программой данные. Для доступа к этому сегменту служит регистр сегмента данных (Data Segment register) DS, который хранит адрес сегмента данных текущей программы. Сегмент стека представляет собой область памяти, называемую стеком. Работу со стеком процессор организует по следующему принципу: последний записанный в эту область элемент выбирается первым. Для доступа к этой области служат регистр сегмента стека (Stack Segment register) SS, содержащий адрес сегмента стека. № Дополнительный сегмент данных. Неявно алгоритмы выполнения большинства машинных команд предполагают, что обрабатываемые ими данные расположе -ны в сегменте данных, адрес которого находится в регистре сегмента данных DS. Если программе недостаточно одного сегмента данных, то она имеет возможность задействовать еще три дополнительных сегмента данных. Но в отличие от основного сегмента данных, адрес которого содержится в регистре DS, при использовании дополнительных сегментов данных их адреса требуется указывать явно с помощью специальных префиксов переопределения сегментов в команде. Адреса дополнительных сегментов данных должны содержаться в регистрах дополнительного сегмента данных (Extension Data Segment registers) ES, GS, FS.

Системные регистры процессора

Использование их жестко регламентировано. Именно они обеспечивают работу защищенного режима. Их также можно рассматривать как часть архитектуры процессора, которая намеренно оставлена видимой.

Системные регистры можно разделить на три группы:

-четыре регистра управления;

-четыре регистра системных адресов;

-восемь регистров отладки. В состав системных регистров процессоров ряда Pentium введены следующие изменения:

задействован ранее зарезервированный регистр управления CR4;

добавлена группа MSR-РЕГИСТРОВ (MSR — MODEL SPECIFIC REGISTER, модельно-зависимые регистры процессора), назначение и возможности которых подчиняются архитектуре конкретной модели процессора. Ранее их функции частично выполняли тестовые регистры, вошедшие теперь в состав MSR-группы. Для доступа к этим регистрам предусмотрены специальные команды.