Семинар2 (Семинары), страница 2
Описание файла
Файл "Семинар2" внутри архива находится в папке "Семинары". Документ из архива "Семинары", который расположен в категории "". Всё это находится в предмете "микропроцессорная техника" из 5 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. .
Онлайн просмотр документа "Семинар2"
Текст 2 страницы из документа "Семинар2"
Сопроцессор поддерживает 7 типов данных: 16-, 32-, 64-битные целые числа; 32-, 64-, 80-битные числа с плавающей точкой и 18-разрядные числа в двоично-десятичном формате.
Сопроцессор выполняет математические операции аппаратно с производительностью, превосходящей их программную эмуляцию основным процессором более чем в 100 раз.
Иногда сопроцессор обозначают как FPU (Floating Point Unit –процессор с плавающей точкой) или NPU (Numeric Processing Unit – числовой процессор).
С программной точки зрения связка CPU+NPX выглядит как единое целое, где CPU осуществляет общее управление процессом и отработку команд основного набора, а NPX исполняет только свои специфические команды.
Процессор i80286
Процессор 80286, выпущенный в 1982 году, представляет второе поколение 16-разрядных процессоров. Он имеет специальные средства для работы в многопользовательских и многозадачных системах. Самым существенным отличием от 8088/86 является механизм управления адресацией памяти, который обеспечивает четырехуровневую систему защиты и поддержку виртуальной памяти.
Процессор может работать в двух режимах:
8086 Real Address Mode - режим реальной адресации (или просто реальный режим - Real Mode), полностью совместимый с 8086. В этом режиме возможна адресация до 1 Мбайт физической памяти (на самом деле за счет «удачной» ошибки - почти на 64 Кбайт больше).
Protected Virtual Address Mode - защищенный режим виртуальной адресации (или просто защищенный режим - Protected Mode). В этом режиме процессор позволяет адресовать до 16 Мбайт физической памяти, через которые при использовании механизма страничной адресации могут отображаться до 1 гигабайта виртуальной памяти каждой задачи.
Переключение в защищенный режим осуществляется одной инструкцией (с предварительно подготовленными таблицами дескрипторов) достаточно быстро. Обратное переключение в реальный режим возможно только через аппаратный сброс процессора, что требует значительных затрат времени.
Система команд 80286 включает все команды 8088/86 и имеет ряд дополнительных команд, из которых разработчику аппаратуры наиболее интересны инструкции ввода/вывода байта (слова) в строку памяти, одиночные (INSB, INSW, OUTSB, OUTSW) или по счетчику в регистре СХ (те же команды с префиксом REP). Эти инструкции обеспечивают возможность программного ввода/вывода PIO (Programmable Input/Output), производительность которого выше, чем у стандартного канала прямого доступа к памяти PC.
По составу и назначению в реальном режиме регистры 80286 в основном совпадают с регистрами 8088/86. Изменения касаются назначения бит регистра флагов и использования сегментных регистров в защищенном режиме. Как и 8088/86, процессор 80286 имеет 16-битную шину данных и очередь команд 6 байт. За счет архитектуры сокращено время выполнения операций: процессор 80286 с тактовой частотой 12,5 МГц работает более чем в 6 раз быстрее, чем 8086 с тактовой частотой 5 МГц. Предусмотрена возможность использования высокопроизводительного математического сопроцессора 80287, программно совместимого с 8087.
Шина адреса разрядностью 24 бита позволяет адресовать 16 Мбайт физической памяти, но в реальном режиме доступен только 1 Мбайт, начинающийся с младших адресов. С программной точки зрения, память так же, как и в 8088/86, организуется в виде сегментов, но управление сегментацией имеет существенные различия для реального и защищенного режимов.
В реальном режиме по адресации памяти декларируется полная совместимость с процессором 8088/86, который своей 16-битной адресной шиной охватывает пространство физической памяти в 1 Мбайт.
На самом деле, на радость разработчикам программного обеспечения PC, 80286 имеет ошибку, «узаконенную» и в следующих поколениях процессоров. При вычислении физического адреса возможно возникновение переполнения, которое с 20-битной шиной адреса просто игнорируется. Если, например, Seg=FFFFh и EA=FFFFh, физический адрес, вычисленный по формуле РА=16Seg+EA=10FFEF, процессором 8088/86 трактуется как OFFEF - адрес, принадлежащий первому мегабайту. Однако на выходе А20 процессора 80286 в этом случае установится единичное значение, что соответствует адресу ячейки из второго мегабайта физической памяти. Для обеспечения полной программной совместимости с 8086 в схему PC был введен специальный вентиль Gate A20, принудительно обнуляющий бит A20 системной шины адреса. Не оценив потенциальной выгоды от этой ошибки, управление вентилем узаконили через программно-управляемый бит контроллера клавиатуры 8042. Когда оперативная память подешевела, а «аппетит» программного обеспечения вырос, в эту небольшую область (64К-16 бит) стали помещать некоторые резидентные программы или даже часть операционной системы, а для ускорения управления вентилем появились более быстрые способы (Gate A20 Fast Control).
В отличие от 8088/86 процессор 80286 имеет средства контроля за переходом через границу сегмента, работающие и в реальном режиме. При попытке адресации к слову, имеющему смещение FFFFh (его старший байт выходит за границу сегмента), или выполнения инструкции, все байты которой не умещаются в данном сегменте, процессор вырабатывает прерывание - исключение типа 13 (0Dh) - Segment Overrun Exception.
В защищенном режиме работают все режимы адресации, допустимые для 8088/86 и реального режима 80286. Отличия касаются определения сегментов:
-
сегментные регистры CS, DS, SS и ES хранят не сами базовые адреса сегментов, а селекторы, по которым из таблицы, хранящейся в ОЗУ, извлекаются дескрипторы сегментов;
-
дескриптор описывает базовый адрес, размер сегмента (1—64 Кбайт) и его атрибуты;
-
базовый адрес сегмента имеет разрядность 24 бита, что и обеспечивает адресацию 16 Мбайт физической памяти.
Как и 8088/86, процессор 80286 позволяет адресовать до 64К однобайтных или 32К двухбайтных регистров в пространстве, отдельном от памяти. В адресном пространстве ввода/вывода область 00F8 - 00FF зарезервирована для использования сопроцессором. При операциях ввода/вывода старшие биты адреса (линии А[16:20]) не используются .
В защищенном режиме инструкции ввода/вывода являются привилегированными. Это означает, что они могут исполняться задачами только с определенным уровнем привилегий, определяемым полем IOPL регистра флагов.
Как и 8088/86, процессор 80286 может обслуживать до 256 типов прерываний.
Сопроцессор 80287 предназначен для расширения вычислительных возможностей центрального процессора 80286. Функционально он напоминает сопроцессор 8087, но имеет возможность работы в реальном и защищенном режимах, выполняет некоторые дополнительные инструкции и иначе обрабатывает некоторые типы прерываний.
2.32-разрядные процессоры.
История32-разрядных процессоров Intel началась с процессора i386, затем были 486, Pentium, Pentium Pro.
Они вобрали в себя все свойства своих 16-разрядных предшественников и обеспечивали полную совместимость со всем ПО.
Все 32-разрядные процессоры могут работать в двух режимах, между которыми обеспечивается достаточно быстрое переключение в обе стороны:
Real Address Mode - режим реальной адресации (или просто реальный режим - Real Mode), полностью совместимый с 8086. В этом режиме возможна адресация до 1 Мбайт физической памяти (на самом деле, как и у 80286, - почти на 64 Кбайт больше).
Protected Virtual Address Mode - защищенный режим виртуальной адресации (или просто защищенный режим - Protected Mode). В этом режиме процессор позволяет адресовать до 4 Гбайт физической памяти, через которые при использовании механизма страничной адресации могут отображаться до 16 терабайт виртуальной памяти каждой задачи.
Существенным дополнением является Virtual 8086 Mode - режим виртуального процессора 8086 (V86). Этот режим является особым состоянием задачи защищенного режима, в котором процессор функционирует как 8086. На одном процессоре в таком режиме могут одновременно исполняться несколько задач с изолированными друг от друга реальными ресурсами. При этом использование физического адресного пространства памяти управляется механизмами сегментации и трансляции страниц.
Защищенный режим появился еще в процессоре 80286, но имел не все возможности, доступные в 32-разрядных процессорах.
Попытки выполнения недопустимых команд, выхода за рамки отведенного пространства памяти и разрешенной области ввода/вывода контролируются системой защиты.
Процессоры могут оперировать с 8, 16 и 32-битными операндами, строками байт, слов и двойных слов, а также с битами, битовыми полями и строками бит. Для обработки чисел в формате с плавающей точкой и выполнения трансцендентных функций 32-разрядные процессоры предполагают использование мощного математического сопроцессора. У процессоров 486 и старше сопроцессор является встроенным (правда, в некоторых моделях его может и не быть). Для процессора 386 предназначен сопроцессор 80387, программно-совместимый с 8087 и 80287 (хотя они имеют и некоторые различия).
Организация памяти аналогична 16-разрядным процессорам семейства.
Применительно к памяти различают три адресных пространства: логическое, линейное и физическое. Основным режимом работы 32-разрядных процессоров считается защищенный режим, в котором работают все механизмы преобразования адресных пространств (рис. 2.3).
Рис.2.3
![](/z.php?f=/uploads/unziped/real/207577/doc/213975/213975-49656_html_2c7dc1e0146bcd4e.gif)
![](/z.php?f=/uploads/unziped/real/207577/doc/213975/thumbs/213975-49656_html_148e409a514be692.png)
Логический адрес, также называемый виртуальным, состоит из селектора (в реальном режиме - просто адреса сегмента) и смещения. Смещение формируется суммированием компонентов (base, index, disp) в эффективный адрес. Поскольку каждая задача может иметь до 16К селекторов, а смещение, ограниченное размером сегмента, может достигать 4 Гбайт, логическое адресное пространство для каждой задачи может достигать 64 терабайт. Все это пространство виртуальной памяти в принципе доступно программисту (этот «принцип» должна реализовать операционная система).
Блок сегментации транслирует логическое адресное пространство в 32-битное пространство линейных адресов. Линейный адрес образуется сложением базового адреса сегмента с эффективным адресом. Базовый адрес сегмента в реальном режиме образуется умножением содержимого используемого сегментного регистра на 16 (как и в 8086). В защищенном режиме базовый адрес загружается из дескриптора, хранящегося в таблице, по селектору, загруженному В используемый сегментный регистр.
Физический 32-битный адрес памяти образуется после преобразования линейного адреса блоком страничной переадресации. В простейшем случае (при отключенном блоке страничной переадресации) линейный адрес совпадает с физическим - присутствующим на внешней шине адреса процессора. Включенный блок страничной переадресации осуществляет трансляцию линейного адреса в физический блоками (страницами) размером 4 Кбайт. Этот блок может включаться только в защищенном режиме.
Как и у процессоров 8086/8088, для обращения к памяти процессор (совместно с внешней схемой) формирует шинные сигналы MEMWR# и MEMRD# для операций записи и считывания соответственно. Шина адреса разрядностью 32 бита позволяет адресовать 4 Гбайт физической памяти, но в реальном режиме доступен только 1 Мбайт, начинающийся с младших адресов.
32-разрядные процессоры позволяют адресовать до 64К однобайтных или 32К двухбайтных регистров в пространстве, отдельном от памяти. Дополнительно имеется возможность обращения к 32-битным портам. При операциях ввода/вывода линии А[16:31] не используются. Адрес устройства задается либо в команде (только младший байт, старший - нулевой), либо берется из регистра DX (полный 16-битный адрес)/
Начиная с некоторых модификаций 486, модели 32-разрядных процессоров, кроме обычных режимов - реального, защищенного и режима V86, - имеют дополнительный режим системного управления SMM (System Management Mode). Этот режим предназначен для выполнения некоторых действий с возможностью их полной изоляции от прикладного программного обеспечения и даже операционной системы. Этот режим в основном предназначен для реализации системы управления энергопотреблением.
Процессоры 386/387
Процессор Intel386, выпущенный в 1985 году, был первым 32-разрядным процессором. Он имел 32-битные раздельные шины адреса и данных с возможностью динамического управления конвейерной адресацией и разрядностью (16/32) шины данных. Позже, в 1988 году фирмой Intel был выпущен вариант процессора Intel 386™ SX с 16-разрядной шиной данных и 24-разрядной шиной адреса, а полноразрядпый вариант получил официальное название Intel 386ТМDX. Как и в случае с 8088, это было сделано с целью удешевления компьютера, собранного на базе данного процессора. Это удешевление, конечно же, обернулось и снижением производительности компьютера примерно в полтора раза по сравнению с использованием DX на той же тактовой частоте. Процессоры Intel386™ SX и Intel386™ DX отличаются только внешней шиной данных и адреса, их программные модели идентичны. В 1990 году появился процессор Intel386™SL со средствами управления энергопотреблением, разработанный специально для портативных компьютеров.
Процессоры 486
Процессоры Intel486™ представляют второе поколение 32-разрядных процессоров. Обладая всеми свойствами процессора 386 и обеспечивая полную обратную совместимость с прежними представителями семейства 80х86, эти процессоры имеют ряд существенных изменений:
-
в процессор введен внутренний кэш первого уровня (Internal cache Level 1) и предусмотрены все необходимые средства для построения памяти с двухуровневым кэшированием, допускающей работу и в мультипроцессорных системах;
-
повышена производительность локальной шины - введены пакетные циклы, позволяющие передавать очередное слово данных в каждом такте шины (а не через такт, как в обычном режиме);
-
ведены буферы отложенной записи, позволяющие задерживать физические операции записи в память до освобождения шины, продолжая исполнение текущих инструкций;
-
в архитектуре применено RISC-ядро, позволяющее наиболее часто встречающиеся инструкции выполнять за 1 такт - средняя производительность процессора на той же тактовой частоте по сравнению с 386 удвоилась;
-
в состав процессора введен высокопроизводительный математический сопроцессор FPU (Floating Point Unit), программно-совместимый с сопроцессором 387 (в 486SX сопроцессор отсутствует, в 486SL - имеется в некоторых моделях);
-
увеличена очередь команд до 16 байт;
-
введены новые инструкции (BSWAP, XADD, CMPXCHG, INVLD, WBINVD);
-
добавлена защита страниц памяти от записи на уровне супервизора;
-
введены функции контроля выравнивания операндов;
-
расширены средства тестирования - введены регистры TR3, TR4, TR5 для тестирования внутреннего кэша;
-
введено умножение тактовой частоты системной платы (внутренняя частота DX2 равна двукратной внешней, в DX4 кратность может быть 2, 2,5 и 3).
Существует несколько разновидностей процессоров Intel486, различающихся наличием сопроцессора, средств энергосбережения, возможностью умножения внешней тактовой частоты, политикой записи внутреннего кэша и напряжением питания: