Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CPU.DOC
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
405 Кб
Скачать
☆

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.1.4. Ввод-вывод

Как и 8086, 32-разрядные процессоры позволяют адресовать до 64К однобайтных или 32К двухбайтных регистров в пространстве, отдельном от памяти. Дополнительно имеется возможность обращения к 32-битным портам. При операциях ввода-вывода линии A[16:31] не используются. Адрес устройства задерживается либо в команде (только младший байт, старший – нулевой), либо берется из регистра DX (полный 16-битытный адрес). Команды ввода-вывода вызывают шинные циклы с активными сигналами IORD#, IOWR#. Строковые команды обеспечивают блочный ввод-вывод со скоростью, превышающей аналогичные операции со стандартным контроллером DMA. В адресном пространстве ввода-вывода область 0F8-0FF зарезервирована для использования сопроцессором (при обращении к сопроцессору 386 выставляет единицу на линии А31 шины адреса, что используется для упрощения дешифрации адресов).

В защищенном режиме инструкции ввода-вывода являются привилегированными. Это означает, что они могут исполнятся задачами только с определенным уровнем привилегий, определяемым полем IOPL регистра флагов или битовой картой разрешения ввода-вывода (I/O Remission Bitmap), хранящийся в сегменте состояния задачи. Несанкционированная попытка выполнения этих инструкций вызовет исключение 13 – нарушение защиты (знаменитое сообщение “General Protection Error ”).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]