Процессоры. История развития. Структура. Архитектура
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: реферат способы, древний египет реферат
| Добавил(а) на сайт: Полищук.
Предыдущая страница реферата | 2 3 4 5 6 7 8 9 10 11 12 | Следующая страница реферата
|Прямая адресация |EA=Disp |
|Косвенная регистровая адресная Register Index Mode |EA=Base |
|Базовая адресации Based Mode |EA=Base+Disp |
|Индексная адресация Index Mode |EA=Index+Disp |
|Масштабированная индексная адресации Scaled Index Mode |EA=Scalex*Index+Disp|
| |* |
|Базово-индексная адресация Based Index Mode |EA=Base+Index* |
|Масштабированная базово-индексная адресация Based Scaled |EA=Base+Scale* Index|
|Index Mode | |
|Масштабированная базово-индексная адресация Based Index |EA=Base+Index+Disp |
|Mode with Displacement | |
|Масштабированная базово-индексная адресации со смещение |EA=Base+Scale*Index+|
|Based Scaled Index with Displacement |Disp* |
Процессор может использовать режимы 32-битной или 16-битной адресации.
Режим 16-битной адресации соответствует режимам процессоров 8086 и 80286, при этом в качестве компонентов адреса используются младшие 16 бит
соответствующих регистров. Режим 32-битной адресации использует расширенные
32-разрядные регистры и имеет дополнительные режимы, использующие
масштабирование индекса. Различия 16- и 32-битных режимов адресации
приведены в табл. 3.2.
В реальном режиме по умолчанию используется 16-битная адресация, но с
помощью префикса изменение разрядн6ости адреса (Address Length Prefix) для
текущей инструкции можно переключится в 32-битный режим. При этом
появляются дополнительные возможности адресации (масштабирования), но
вычисленное значение эффективного адреса все равно не может преодолеть 64-
килобайтный барьер – при такой попытке генерируется исключение 13 – General
Protection Fault.
В защищенном режиме адресация по умолчанию определяется битом D дескриптора используемого кодового сегмента: при D=0 – 15 бит, при D=1 – 32 бита. Префикс разрядности адреса переключает разрядность для текущей инструкции на противоположную.
Таблица 3.2. Различия режимов адресации
|Компоненты |16-битная |32-битная адресации |
| |адресации | |
|Базовый регистр |BX или BP |Любой 32-битный общего назначения |
|Индексный |SI или DI |Любой 32-битный общего назначение, |
|регистр | |кроме ESP |
|Масштаб |Нет (всегда 1) |1, 2, 4 или 8 |
|Смещение |0, 8 или 16 бит |0, 8 или 32 бит |
При обращениях к памяти использование сегментных регистров по умолчанию определяется типом обращения (табл. 3.3.). На время текущей инструкции при необходимости для большинства типов обращения возможно использование альтернативного сегментного регистра, на что указывает префикс замены сегмента (CS:; DS:; ES:; SS:; FS: или GS) перед кодом инструкции.
Таблица 3.3. Использование сегментных регистров при адресации памяти
| |Сегментный регистр |
|Тип обращения к памяти | |
| |по умолчанию |альтернативный |
|Выборка команд |CS |Нет |
|Стековые операции |SS |Нет |
|Строка-приемник |ES |Нет |
|Любые ссылки к памяти, кроме |DS |CS,ES,SS |
|использующих в качестве базового | |FS,GS |
|регистры BP, EBP или ESP | | |
|Ссылки к памяти, использующие в |SS |CS,DS,ES, |
|качестве базового регистры BP, | |FS,GS |
|EBP или ESP | | |
2.1.2. Прерывания и исключения
Прерывания и исключения нарушают нормальный ход выполнения программы для
обработки внешних событий или сообщения о возникновении особых условий или
ошибок.
Прерывания подразделяются на аппаратные (маскируемые и немаскируемые), вызываемые электрическими сигналами на выходах процессора, и программные, вызываемые по команде INT xx. Программные прерывания процессором обрабатываются как разновидность исключений.
Аппаратные прерывания подразделяются на маскируемые и немаскируемые.
Процессор может воспринимать прерывания после выполнения каждой команды, длинные строковые команды имеют для восприятия прерываний специальные окна.
Маскируемые прерывания вызывают переход и высокий уровень сигнала на
входе INTR (Interrupt Request) при установленном флаге разрешения (IF=1). В
этом случае процессор сохраняет с стеке регистр флагов, сбрасывает флаг IF
и вырабатывает два следующих друг за другом (back to back) цикла
подтверждения прерывания, в которых генерируются управляющие сигналы INTA#
(Interrupt Acknowledge). Высокий уровень сигнала INTR должен сохраняться по
крайней мере до подтверждения прерывания. Первый цикл подтверждения
холостой, по второму импульсу внешний контроллер прерываний передает по
шине номер вектора, обслуживающего данный тип аппаратного прерывания.
Прерывание с полеченным номером вектора выполняется процессором также, как
и программное. Обработка текущего прерывания может быть в свою очередь
прервана немаскируемым прерыванием, а если обработчик установит флаг IF, то
и другим маскируемым аппаратным прерыванием.
Немаскируемые прерывания выполняются не зависимо от состояния флага IF по сигналу NMI (Non Mascable Interrupt). Высокий уровень на этом входе вызовет прерывание с типом (вектором) 2, которое выполняется также, как и маскируемое. Его обработка не может прерваться под действием сигнала на входе NMI до выполнения команды IRET.
Исключения (Exceptions) подразделяются на отказы, ловушки и аварийные завершения.
Отказ (fault) – это исключение, которое обнаруживается и обслуживается до выполнения инструкции, вызывающей ошибку. После обнаружения этого исключения выполнение возвращается снова на туже инструкцию (включая все префиксы), которая вызвала отказ. Отказы, использующиеся в системе виртуальной памяти, позволяют, например, подкачать с диска в оперативную память затребованную страницу или сегмент.
Ловушка (trap) – это исключение, которое обнаруживается и обслуживается после выполнения инструкции, его вызывающей. После обслуживания этого исключения управление возвращается на инструкцию, следующей за вызывающей ловушку. К классу ловушек относятся и программные прерывания.
Аварийное завершение (abort) – это исключение, которое не позволяет точно установить инструкцию, его вызвавшую. Оно используется для сообщения о серьезной ошибке, такой как аппаратное ошибка или повреждение системных таблиц.
Набор и обработка исключений реального и защищенного режимов различны.
Под исключения Intel резервирует векторы 0-31 в таблице прерываний, однако
в РС часть из них перекрывается системными прерываниями BIOS и DOS.
2.1.3. Начальный сброс и самотестирование
По высокому уровню сигнала на входе RESET процессор прекращает выполнение
инструкции и перестает управлять локальной шиной. После аппаратного сброса
процессор переходит к выполнению команды, считанной по физическому адресу
FFFFFFF0h. Сброс переводит процессор в реальный режим и устанавливает
значения некоторых регистров:
FLAGS = 0002h и биты VM и RF его расширения обнуляются; в регистре CR0 обнуляются биты PG, TS, EM, MP и РЕ;
CS = F000h (база устанавливается FFFF0000h, лимит – 0FFFFh);
DS = ES = SS = FS = GS = 0000h
Регистр DH после сброса содержит идентификатора процессора Component
Id (03-386, 04-486, 05-Pentium, 06-Pentium Pro или Pentium II), DL – номер
модели (Revision Id).
Только после сброса и до первой команды межсегментного перехода или
вызова на шине адреса в реальном режиме биты A[20:31] в циклах выборки
команд имеют единичное значение. Из этого следует, что по крайней мере на
начальный период времени после сигнала RESET компьютер должен иметь образ
BIOS в адресах FFFFFFF0-FFFFFFFFh, в то время, как в РС 8086/88 имели образ
под границей 16-го мегабайта (FFFFFFh). Перемещение BIOS из первого
мегабайта памяти в режиме нормальной работы невозможно, поскольку векторы
прерывания, ссылающиеся на сервисы BIOS, в реальном режиме могут
адресоваться только к памяти в диапазоне адресов 0-0FFFFFh (0-10FFEF) при
открытом вентиле Gate A20).
Если во время спада сигнала RESET на определенном входе процессора удерживать низкий уровень сигнала, процессор начнет выполнять внутренний тест BIST (Built-In Self-Test). Тест для 386-го и 486-го процессоров выполняется примерно за 2 в 20-ой степени тактов, что занимает десятки миллисекунд. По окончанию самотестирования процессор начинает работу, как после обычного сброса, а регистр EAX содержит сигнатуру результата тестирования. Об успешном выполнении теста свидетельствует нулевое значение сигнатуры.
Рекомендуем скачать другие рефераты по теме: реферат по русскому языку, урок реферат.
Категории:
Предыдущая страница реферата | 2 3 4 5 6 7 8 9 10 11 12 | Следующая страница реферата