1 / 37

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

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

amil
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Процессоры 80386 и 80486 Содержание • Процессор i386 • Поддержка многозадачности • Ассемблеры, дизассемблеры и отладчики • Примеры программ • Процессор i486

  3. МП 80386 Процессор i386 полностью совместим со своими предшественниками — процессорами 8086-80286. Он выполняет программы, предназначенные для них без необходимости модификации кода (или с минимальными модификациями). • Вместе с тем i386 является серьезной переработкой процессора 80286. По некоторым оценкам, ни до, ни после i386, архитектура процессоров x86 ни разу не переделывались столь кардинально. • Процессор адресует до 4 Гбайт физической памяти и до 64 Тбайт виртуальной памяти.

  4. МП 80386 В своей основе МП 80386 состоит из шести блоков, работающих параллельно: • блок интерфейса с магистралью (BIU), • блок предварительной выборки команд, • блок декодирования команд, • исполнительный блок (EU), • блок управления сегментами • блок разбиения на страницы

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

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

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

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

  9. Исполнительный блок • Блок EU выполняет команды из очереди команд и взаимодействует со всеми другими блоками, требуемыми для завершения выполнения команды. • Для ускорения выполнения команд с обращением к памяти блок EU приступает к их выполнению до завершения выполнения предыдущей команды. • В его состав входят РОНы.

  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).

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

  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).

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

  14. Блок управления сегментами • Блок управления сегментами преобразует логические адреса в линейные по запросу блока EU. • Для ускорения этого преобразования текущие дескрипторы сегментов помещаются во встроенную кэш-память. Во время трансляции адресов блок управления сегментами проверяет, нет ли нарушения сегментации. • Полученный линейный адрес направляется в блок разбиения на страницы. • Если страничная трансляция отключена, то сформированный линейный адрес считается физическим и выставляется на шину процессора для выполнения цикла чтения или записи памяти.

  15. Преобразование логического адреса в линейный • Логический адрес состоит из двух элементов: селектор сегмента и смещение. Селектор сегмента может либо находиться непосредственно в коде команды, либо в одном из сегментных регистров. Смещение также может либо непосредственно находиться в коде команды, либо вычисляться на основе значений регистров общего назначения. • Для вычисления линейного адреса процессор выполняет следующие действия: • анализирует дескриптор сегмента, контролируя права доступа (сегмент доступен с текущего уровня привилегий) и предел сегмента (смещение не превышает предел); • добавляет смещение к базовому адресу сегмента и получает линейный адрес.

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

  17. Механизм формирования адреса • Индекс выбирает один из 8192 дескрипторов в таблице дескрипторов. Процессор умножает значение этого индекса на восемь (длину дескриптора) и добавляет результат к базовому адресу таблицы дескрипторов. Таким образом получается линейный адрес требуемого дескриптора. • TI - индикатор таблицы определяет таблицу дескрипторов, на которую ссылается селектор: TI=0 означает глобальную дескрипторную таблицу (GDT), а TI=1 - используемую в настоящий момент локальную дескрипторную таблицу (LDT). • RPL - запрашиваемый уровень привилегий (Requested Privilege Level). Используется механизмом защиты.

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

  19. МП 80386 Переключение между задачами обычно осуществляется: • прерыванием таймера; время, на которое настроен таймер, называется квантом времени для задачи • системным вызовом (вызовом функции операционной системы) • исключением — например, при попытке выполнить недопустимую команду или обращении к отсутствующей памяти • отладкой

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

  21. Аппаратный сброс Аппаратный сброс (hardware reset) выполняется процессором при включении питания и по сигналу RESET#. • В микропроцессоре предусмотрены средства проверки функционирования трех основных программируемых логических матриц - точки входа, управления и тестирования, а также содержимого управляющего ПЗУ (CROM). • Самотестирование запускается, когда в процессе инициализации становится активным вход BUSY#. Результат тестирования заносится в регистр ЕАХ. Если соответствующий элемент процессора успешно проходит тестирование, содержимое ЕАХ равно нулю. Если в ЕАХ не ноль, это значит, что самотестирование обнаружило неисправность. • Для МП 80386 при частоте 16 МГц на самотестирование уходит около 219 тактов или приблизительно 33 мс.

  22. Аппаратный сброс • После сброса процессор начинает выполнение инструкции, считанной по физическому адресу FFFFFFF0. • Обычно по этому адресу расположена команда JMP, осуществляющая переход на программу начальной загрузки. Исполняемый программный код должен обеспечить инициализацию системы. • Из этого следует, что, по крайней мере, на начальный период времени после сигнала RESET# компьютер должен иметь адрес BIOS в облсти FFFFFFF0-FFFFFFFF

  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)

  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];

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

  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

  27. Отладчик и дизассемблер Дизассе́мблер — транслятор, преобразующий машинный код, объектный файл или библиотечные модули в текст программы на языке ассемблера. По режиму работы с пользователем делятся на • Автоматические • Интерактивные Дизассемблеры бывают однопроходные и многопроходные.

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

  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

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

  31. Основные характеристики 80486 Полная программная совместимость с ЦПУ 386 DX, 386 SX, встроенным 376(TM) и процессорами 80286, 8086 и 8088; • 32-разрядный CPU для выполнения арифметических и логических операций; • Встроенный модуль FPU дляобработки арифметических операций с плавающей точкой для поддержки 32, 64, и 80-разрядных форматов, заданных в соответствии со стандартом IEEE 754 • Сигналы управления шиной для поддержки непротиворечивости кэша;

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

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

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

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

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

  37. Контрольные вопросы • Перечислите РОН МП 80386. • Как изменились сегментные регистры в 80386 МП? • Поясните структурную схему МП 80386. • Перечислите группы команд МП 80386. • Поясните механизм поддержки многозадачности в 32-разрядных МП.

More Related