37
Вычислительная техника и микропроцессоры Тема 4 32++ разрядные МП и МК и системы на их основе

Вычислительная техника и микропроцессоры

  • Upload
    amil

  • View
    83

  • Download
    0

Embed Size (px)

DESCRIPTION

Вычислительная техника и микропроцессоры. Тема 4 32++ разрядные МП и МК и системы на их основе. Процессоры 80386 и 80486. Содержание Процессор i386 Поддержка многозадачности Ассемблеры, дизассемблеры и отладчики Примеры программ Процессор i486. МП 80386. - PowerPoint PPT Presentation

Citation preview

Page 1: Вычислительная техника  и микропроцессоры

Вычислительная техника и микропроцессоры

Тема 4 32++ разрядные МП и

МК и системы на их основе

Page 2: Вычислительная техника  и микропроцессоры

Процессоры 80386 и 80486

Содержание Процессор i386 Поддержка многозадачности Ассемблеры, дизассемблеры и

отладчики Примеры программ Процессор i486

Page 3: Вычислительная техника  и микропроцессоры

МП 80386

Процессор i386 полностью совместим со своими предшественниками — процессорами 8086-80286. Он выполняет программы, предназначенные для них без необходимости модификации кода (или с минимальными модификациями).

Вместе с тем i386 является серьезной переработкой процессора 80286. По некоторым оценкам, ни до, ни после i386, архитектура процессоров x86 ни разу не переделывались столь кардинально.

Процессор адресует до 4 Гбайт физической памяти и до 64 Тбайт виртуальной памяти.

Page 4: Вычислительная техника  и микропроцессоры

МП 80386

В своей основе МП 80386 состоит из шести блоков, работающих параллельно:

блок интерфейса с магистралью (BIU), блок предварительной выборки команд, блок декодирования команд, исполнительный блок (EU), блок управления сегментами блок разбиения на страницы

Page 5: Вычислительная техника  и микропроцессоры

Структурная схема МП 80386

Page 6: Вычислительная техника  и микропроцессоры

Блок интерфейса с магистралью

Блок BIU обеспечивает интерфейс между МП 80386 и его окружением. Он принимает внутренние запросы для выборки команд от блока предварительной выборки команд и для обмена данными от блока EU и устанавливает приоритет этих запросов. Одновременно он генерирует или обрабатывает сигналы для исполнения текущего цикла магистрали.

К ним относятся сигналы адреса, данных и управления для обращения к внешней памяти и устройствам ввода-вывода. Блок BIU управляет также интерфейсом с внешними арбитрами магистрали и сопроцессорами.

Page 7: Вычислительная техника  и микропроцессоры

Интерфейс локальной магистрали 80386

С интерфейсом локальной магистрали МП 80386 совместимы следующие компоненты:

8041, 8042 Универсальный периферийный интерфейс 8237 Контроллер ПДП 8253, 8254 Программируемый интервальный таймер 8255 Программируемый периферийный интерфейс 82 59А Программируемый контроллер прерываний 8272 Контроллер гибкого диска 8274 Мультипротокольный последовательный контроллер 82062, 82064 Контроллер жесткого диска 82258 Улучшенный контроллер ПДП (удаленный узел)

Page 8: Вычислительная техника  и микропроцессоры

Блок предвыборки команд

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

Page 9: Вычислительная техника  и микропроцессоры

Исполнительный блок

Блок EU выполняет команды из очереди команд и взаимодействует со всеми другими блоками, требуемыми для завершения выполнения команды.

Для ускорения выполнения команд с обращением к памяти блок EU приступает к их выполнению до завершения выполнения предыдущей команды.

В его состав входят РОНы.

Page 10: Вычислительная техника  и микропроцессоры

Регистры 80386

В составе микропроцессора имеются 8 32-битных регистров общего назначения (РОНов)

EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP.

Младшая, 16-битная, половина каждого из этих регистров соответствует регистрам AX, BX, CX, DX, SI, DI, BP, SP в предыдущих процессорах семейства x86.

Как и раньше возможна адресация младших и старших 8-битных половин, младшей 16-битной половины 32-разрядных регистров данных (AL и AH, BL и BH, CL и CH, DL и DH).

Page 11: Вычислительная техника  и микропроцессоры

РОНы 80386 и последующих МП

Page 12: Вычислительная техника  и микропроцессоры

Регистры 80386

Регистр указатель команды и регистр флагов также стали 32-битными (EIP и EFLAGS соответственно), причем в регистре флагов добавлены новая группа флажков.

К 4-м 16-битным сегментным регистрам (ES, CS, SS, DS) прибавились ещё 2 16-битных регистра (FS и GS) и 16-разрядные дескрипторы сегментов.

Добавлены 3 новых группы регистров (каждый регистр размером 32 бит): 3 регистра управления (CR0 (MSW), CR2, CR3), 8 регистров отладки (DR0, DR1, DR2, DR3, DR6, DR7), 2 тестовых регистра (TR6, TR7).

Page 13: Вычислительная техника  и микропроцессоры

Селекторы и дескрипторы сегментов

Page 14: Вычислительная техника  и микропроцессоры

Блок управления сегментами Блок управления сегментами преобразует логические

адреса в линейные по запросу блока EU. Для ускорения этого преобразования текущие

дескрипторы сегментов помещаются во встроенную кэш-память. Во время трансляции адресов блок управления сегментами проверяет, нет ли нарушения сегментации.

Полученный линейный адрес направляется в блок разбиения на страницы.

Если страничная трансляция отключена, то сформированный линейный адрес считается физическим и выставляется на шину процессора для выполнения цикла чтения или записи памяти.

Page 15: Вычислительная техника  и микропроцессоры

Преобразование логического адреса в линейный

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

Для вычисления линейного адреса процессор выполняет следующие действия:

анализирует дескриптор сегмента, контролируя права доступа (сегмент доступен с текущего уровня привилегий) и предел сегмента (смещение не превышает предел);

добавляет смещение к базовому адресу сегмента и получает линейный адрес.

Page 16: Вычислительная техника  и микропроцессоры

Механизм формирования адреса

Page 17: Вычислительная техника  и микропроцессоры

Механизм формирования адреса Индекс выбирает один из 8192 дескрипторов в

таблице дескрипторов. Процессор умножает значение этого индекса на восемь (длину дескриптора) и добавляет результат к базовому адресу таблицы дескрипторов. Таким образом получается линейный адрес требуемого дескриптора.

TI - индикатор таблицы определяет таблицу дескрипторов, на которую ссылается селектор: TI=0 означает глобальную дескрипторную таблицу (GDT), а TI=1 - используемую в настоящий момент локальную дескрипторную таблицу (LDT).

RPL - запрашиваемый уровень привилегий (Requested Privilege Level). Используется механизмом защиты.

Page 18: Вычислительная техника  и микропроцессоры

МП 80386

Поддержка многозадачности в процессорах x86 (начиная с 80286) обозначает аппаратную поддержку «прозрачного» переключения с одной обычной программы (задачи) на другую.

При переключении процессор сохраняет свое состояние (включая адрес следующей команды, и селекторы сегментов) в сегменте состояния (TSS; сегмент памяти, с селектором из регистра TR) одной задачи, после чего восстанавливает состояние другой задачи из ее сегмента состояния (селектор сегмента состояния новой задачи загружается из дескриптора ее сегмента кода).

Page 19: Вычислительная техника  и микропроцессоры

МП 80386

Переключение между задачами обычно осуществляется:

прерыванием таймера; время, на которое настроен таймер, называется квантом времени для задачи

системным вызовом (вызовом функции операционной системы)

исключением — например, при попытке выполнить недопустимую команду или обращении к отсутствующей памяти

отладкой

Page 20: Вычислительная техника  и микропроцессоры

МП 80386

В i386 механизмы защиты и многозадачности были значительно расширены и улучшены. В зависимости от характера нарушений, они могут тихо игнорироваться (например, некоторые биты регистра EFLAGS нельзя изменить загрузкой флагов из стека), вызывать обработчик исключения (операционной системы).

Серьезные ошибки на уровне операционной системы (или в реальном режиме) могут привести процессор в режим аварийного останова из которого можно выйти только аппаратным сбросом процессора.

Page 21: Вычислительная техника  и микропроцессоры

Аппаратный сбросАппаратный сброс (hardware reset) выполняется процессором при

включении питания и по сигналу RESET#. В микропроцессоре предусмотрены средства проверки

функционирования трех основных программируемых логических матриц - точки входа, управления и тестирования, а также содержимого управляющего ПЗУ (CROM).

Самотестирование запускается, когда в процессе инициализации становится активным вход BUSY#. Результат тестирования заносится в регистр ЕАХ. Если соответствующий элемент процессора успешно проходит тестирование, содержимое ЕАХ равно нулю. Если в ЕАХ не ноль, это значит, что самотестирование обнаружило неисправность.

Для МП 80386 при частоте 16 МГц на самотестирование уходит около 219 тактов или приблизительно 33 мс.

Page 22: Вычислительная техника  и микропроцессоры

Аппаратный сброс После сброса процессор начинает выполнение

инструкции, считанной по физическому адресу FFFFFFF0.

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

Из этого следует, что, по крайней мере, на начальный период времени после сигнала RESET# компьютер должен иметь адрес BIOS в облсти FFFFFFF0-FFFFFFFF

Page 23: Вычислительная техника  и микропроцессоры

Набор инструкций 80386

Набор инструкций i386 был расширен, в основном, за счет добавления 32-битных вариантов существующих инструкций (образованных 32-битными префиксами), включая те у которых 32-битные варианты имеют другие мнемоники (pushad/popad, pushfd/popfd, cwd*/cdq, movsd/cmpsd/scasd/lodsd/insd/outsd, iretd), а также команды mov для новых регистров. Другие новые инструкции:

установка байта по условию (set*) команды переходов (jmp, j*) с относительным 16-битным

смещением команды загрузки полного адреса для новых сегментных

регистров (lfs, lgs)

Page 24: Вычислительная техника  и микропроцессоры

Примеры команд 80386

add eax, ebx ; eax += ebx;

add eax, [ebx] ; eax += ebx[0];

inc eax ; eax++;

mov eax, DWORD PTR [ebx] ; Load int from memory: eax= ebx[0];

mov eax, DWORD PTR [ebx+4] ; Load next int: eax= ebx[1];

Page 25: Вычислительная техника  и микропроцессоры

Директивы ассемблера Программа на ассемблере может содержать директивы:

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

определение данных (констант и переменных) управление организацией программы в памяти и

параметрами выходного файла задание режима работы компилятора всевозможные абстракции (то есть элементы языков

высокого уровня) — например, оформления процедур и функций макросы

Page 26: Вычислительная техника  и микропроцессоры

Hello world для MS-DOS для архитектуры x86 на диалекте TASM:

.MODEL TINY CODE SEGMENT ASSUME CS:CODE, DS:CODE ORG 100h START: mov ah,9 mov dx,OFFSET Msg int 21h int 20h Msg DB 'Hello World',13,10,'$' CODE ENDS END START

Page 27: Вычислительная техника  и микропроцессоры

Отладчик и дизассемблер

Дизассе7мблер — транслятор, преобразующий машинный код, объектный файл или библиотечные модули в текст программы на языке ассемблера.

По режиму работы с пользователем делятся на Автоматические Интерактивные Дизассемблеры бывают однопроходные и

многопроходные.

Page 28: Вычислительная техника  и микропроцессоры

Отладчик и дизассемблер

Основная трудность при работе дизассемблера — отличить данные от машинного кода, поэтому на первых проходах автоматически или интерактивно собирается информация о границах процедур и функций, а на последнем проходе формируется итоговый листинг.

Обычно однопроходный дизассемблер (как и построчный ассемблер) является составной частью отладчика.

Page 29: Вычислительная техника  и микропроцессоры

Версии ассемблеров (Assemblers)

Содержимое диска:

MASM 32 v7.0Microsoft Macro Assembler v6.1Borland Turbo Assembler v5.0Flat Assembler v1.20NASM for Win 32NewBasic Assembler v00.24.87Pass32 - 32 Bit AssemblerSpAsm v3.07d

Page 30: Вычислительная техника  и микропроцессоры

МП 80486

Разработан фирмой Intel. Выпускался разными фирмами в модификациях SX, DX2, DX4.Достоинства МП 80486 Внутренний кэш первого уровня Встроенный математический сопроцессор (версии DX) Конвейерная обработка инструкций (команд) Усовершенствованный модуль интерфейса шины Укороченные циклы памяти Использование буферов записи.Процессор обладал 32-битными шинами адреса и данных. Это

требовало наличия памяти в виде четырёх 30-контактных модулей SIMM или одного 72-контактного модуля SIMM.

Page 31: Вычислительная техника  и микропроцессоры

Основные характеристики 80486

Полная программная совместимость с ЦПУ 386 DX, 386 SX,

встроенным 376(TM) и процессорами 80286, 8086 и 8088; 32-разрядный CPU для выполнения арифметических и

логических операций; Встроенный модуль FPU для обработки арифметических

операций с плавающей точкой для поддержки 32, 64, и 80-разрядных форматов, заданных в соответствии со стандартом IEEE 754

Сигналы управления шиной для поддержки непротиворечивости кэша;

Page 32: Вычислительная техника  и микропроцессоры

Кэш МП 80486

Intel486 имел, расположенную на кристалле, кэш память объёмом 8 КБ, а позднее и 16 КБ, работающую на частоте ядра. Наличие кэша позволило существенно увеличить скорость выполнения операций микропроцессором. Изначально кэш Intel486 работал по принципу сквозной записи (англ. write-through или WT), но позже, в рамках семейства Intel486, были выпущены модели с внутренним кэшем работающим по принципу обратной записи (англ. write-back или WB).

Процессор мог использовать и внешний кэш, скорость чтения-записи которого, однако, была заметно ниже чем у внутреннего кэша. При этом внутренний кэш стали называть кэшем первого уровня (Level 1 Cache), а внешний кэш, расположенный на материнской плате, кэшем второго уровня (Level 2 Cache).

Page 33: Вычислительная техника  и микропроцессоры

Математический сопроцессор

В Intel486 был использован встроенный математический сопроцессор (FPU), это был первый микропроцессор со встроенным FPU. Встроенный FPU был программно совместим с микросхемой Intel 80387 – математическим сопроцессором, применявшимся в системах с процессором Intel386. Благодаря использованию встроенного сопроцессора удешевлялась и ускорялась система за счёт уменьшения общего числа контактов и корпусов микросхем.

Page 34: Вычислительная техника  и микропроцессоры

Математический сопроцессор Изначально все выпускавшиеся

микропроцессоры Intel486 оснащались работающим сопроцессором, эти процессоры получили имя Intel486DX. Позже Intel решает выпустить процессоры с отключённым сопроцессором, и эти процессоры получили наименование Intel486SX. Системы построенные на этих процессорах могли оснащаться отдельным сопроцессором, например, Intel487SX или сопроцессором других производителей.

Page 35: Вычислительная техника  и микропроцессоры

Структурная схема МП 80486DX

Page 36: Вычислительная техника  и микропроцессоры

Упрощенная схема 32-разр х86

Page 37: Вычислительная техника  и микропроцессоры

Контрольные вопросы

Перечислите РОН МП 80386. Как изменились сегментные регистры в

80386 МП? Поясните структурную схему МП 80386. Перечислите группы команд МП 80386. Поясните механизм поддержки

многозадачности в 32-разрядных МП.