Рефераты

Процессоры. История развития. Структура. Архитектура

Процессоры. История развития. Структура. Архитектура

МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

РОССИЙСКОЙ ФЕДЕРАЦИИ

ВОСТОЧНО-СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ

ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра Систем информатики

Отчет по второй половине учебной практики на тему:

“ПРОЦЕССОРЫ. ИСТРОИЯ РАЗВИТИЯ. СТРУКТУРА. АРХИТЕКТУРА. ”

Выполнил студент группы : 637 – 1

637001 Cruel Angel

Оценка : Дата защиты .

Руководитель :

г. Улан - Удэ, 1998 г.

Оглавление:

ВВЕДЕНИЕ

............................................................................

...................3

1. 16-РАЗРЯДНЫЕ

ПРОЦЕССОРЫ.........................................................

7

1.1. Процессоры

i8086/88..............................................................

.............8

1.1.1. Организация памяти

8086/88............................................................8

1.1.2. Адресация ввода-

вывода................................................................

...9

1.1.3 Система

команд................................................................

..................9

1.2. Процессоры

80186/80188...........................................................

..........10

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

8087.................................................10

1.3. Процессор

80286.................................................................

.................10

1.3.1. Организация памяти

80286...............................................................11

1.3.2. Ввод-

вывод.................................................................

.......................12

1.3.3. Начальный сброс и переход в защищенный

режим.........................12

1.3.4.

Защита......................................................................

...........................13

2. АРХИТЕКТУРА 32-РАЗРЯДНЫХ

ПРОЦЕССОРОВ.............................14

2.1.1. Организация

памяти......................................................................

......15

2.1.2. Прерывания и

исключения..................................................................

18

2.1.3. Начальный сброс и

самотестирование................................................19

2.1.4. Ввод-

вывод.......................................................................

....................19

2.1.5. Режим системного управления

SMM..................................................19

2.1.6. Расширение

ММХ.........................................................................

.......21

2.1.7. Внутренний

кэш.........................................................................

.........22

2.2. Процессор

80386.......................................................................

...............24

2.3. Процессор

80486.......................................................................

...............25

2.4. Процессор

Pentium.....................................................................

..............25

2.5. Процессор

Celeron.....................................................................

...............29

2.6. Процессор PENTIUM® II

XEON®.........................................................30

ПРИЛОЖЕНИЕ............................................................

....................................32

СПИСОК

ЛИТЕРАТУРЫ..................................................................

..............34

ВВЕДЕНИЕ

История процессоров началась в 1979 году, когда фирма Intel выпустила

первый микропроцессор i4004. Он имел разрядность данных 4 бита, способность

адресовать 640 байт памяти, тактовую частоту 108 кГц и производительность

0.06 MIPS. Такой процессор уже мог работать в качестве вычислительного ядра

калькулятора. Он содержал 2300 транзисторов и выполнялся по технологии с

разрешением 10 мкм. Через год появился его 8-битный “родственник” – i8008,

адресующий уже 16 Кб памяти.

В 1974 году появился 8-разрядный процессор i8080, ставший весьма

популярным устройством. Он уже имел частоту 2 Мгц и адресовал 64 Кб памяти.

6000 транзисторов позволила разместить 6-мкм технология изготовления.

Процессор требовал трех источников питания (+5В, +12 В и –5В) и сложной

двух контактной синхронизации. На этом процессоре строились разнообразные

терминалы, контроллеры и даже первый ПК Altair. В нашей стране запоздалым

эхом 8086 стали процессоры 580ИК80 и КР580ВМ80, на базе которых в начале и

середине 80-ых годов строилось много “самодельный ” ПК.

Следующим этапом стал процессор i8085 (5 Мгц, 0.37 MIPS, 6500

транзисторов, 3-мкм технология). Он сохранил популярную регистровую

архитектуру 8080 и программную совместимость, но в него добавился порт

последовательного интерфейса, упразднили специальные ИС поддержки

(тактового генератора и системного контроллера) и несколько изменили

внешний интерфейс. Главным подарком разработчикам аппаратуры стало одно

питающее напряжение +5В.

Вариацию на тему 8080 и 8085 представляет процессор Z80 фирмы Zilog.

Сохранив программную совместимость с 8080, в него ввели дополнительные

регистры, что позволило существенно повысить производительность. Результат

оказался впечатляющим – еще недавно популярные компьютеры Sinclair,

построенные на Z80, демонстрировали на играх графику, не уступающему PC на

16 –разрядном процессоре 286.

Первый 16–разрядный процессор 8086 фирма Intel выпустила в 1978 году.

Частота 5 МГц, производительность 0.33 MIPS, но инструкции уже с 16-битными

операндами (позже появились процессоры 8 и 10 МГц). Технология 3 мкм, 29

тыс. транзисторов. Адресуемая память 1 Мб. Регистровая архитектура и

система команд существенно отличалась от 8080, но естественно

прослеживаются общие идеи. Через год появился 8088 – тот же процессор, но

с 8-битной шиной данных. С него началась история IBM PC, наложившая свой

отпечаток на дальнейшее развитие этой линии процессоров Intel. Массовое

распространение и открытость архитектуры PC привили к лавинообразному

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

мелкими фирмами и энтузиастами-одиночками. Технический требовал (и сейчас

требует) развития процессоров, но груз программного обеспечения PC ,

которое должно работать и на более новых процессорах, в свою очередь

требовал обратной программной совместимости. Таким образом, все

нововведения в архитектуре последующих процессоров должны были

пристраиваться к существующему ядру. А тут еще сама архитектура PC

“подбросила”, например, сложности с использованием вектора прерываний.

Фирма Intel зарезервировала первые 32 вектора “для служебного пользования”,

однако на них “наехали” прерывания BIOS PC. Один из результатов –

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

старших моделях PC.

Процессор 80286, заменяющий следующий этап архитектуры, появился

только в 1982 году. Он уже имел 134 тыс. транзисторов (технология 1.5 мкм)

и адресовал до 16 Мб физической памяти. Его принципиальное новшество –

защищенный режим и виртуальная память размером до 1 Гб – не нашли массового

применения, процессор большей частью использовался как очень быстрый 8088.

Класс 32-разрядных процессоров был открыт в 1985 году моделью 80386

(275 тыс. транзисторов, 1,5 мкм). Разрядность шины данных (как и внутренних

регистров) достигла 23 бит, адресуемая физическая память - 4 Гб. Появились

новые регистры, новые 32-битные операции, существенно доработан защищенный

режим, появился режим V86, страничное управление памятью. Процессор нашел

широкое применение в PC, и на благодатной почве его свойств стал

разрастаться “самый большой вирус” – MS Windows с приложениями. С этого

времени стала заметна тенденция “положительной обратной связи”: на

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

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

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

процессор, но после непродолжительного восторга и его ресурсы быстро

“съедают” и т. д. Это “вечное” движение, конечно, естественно, но есть

обоснованное подозрение, что большие ресурсы развращают (или, по крайней

мере, расслабляют) разработчика ПО, не принуждая его напрягаться в поисках

более эффективных способов решения задачи. Примером эффективного

программирования можно считать игрушки на Sinclair ZX-Spectrum, которые

реализуются на игрушечных ресурсах – 8-битном процессоре и 64 (128) Кбайт

ОЗУ. С противоположными примерами большинство пользователей PC сталкиваются

регулярно, но с процессором Pentium 200 и 32 Мб ОЗУ на них не всегда

обращают внимание.

История процессора 386 напоминает историю 8086: первую модель с 32

битной шиной данных (в последствии названной 386DX) сменил 386 SX с 16

битной шиной. Он довольно легко вписывался в архитектуру PC AT, ранее

базировавшуюся на процессоре 286.

Процессор Intel486DX появился в 1989 году. Транзисторы –1,2 млн.,

технология 1мкм. От 386-го существенно отличается размещением на кристалле

первичного кэша и встроенного математического сопроцессора (предыдущие

процессоры имели возможность использования внешних x87 сопроцессоров).

Кроме того, для повышения производительности в этом CISC-процессоре (как и

в последующих) применено RISC-ядро. Далее появились его разновидности,

отличающиеся наличием или отсутствием сопроцессор, применением внутреннего

умножения частоты, политикой записи кэша и другими. Занялись

энергосбережением (появился режим SMM), что отразилось и в продолжении

линии процессоров 386 (появился процессор Intel386SL).

В 19993 году появились первые процессоры Pentium частотой 60 и 66 МГц

– 32 разрядные процессоры с 64-битной шиной данных. Транзисторов 3,1 млн,

технология 0,8 мкм, питание 5 В. От 486-го его принципиально отличается

суперскалярной архитектурой – способностью за один такт выпускать с

конвейеров до двух инструкций (что, конечно не означает возможность

прохождение инструкций через процессор за полтакта, или один такт).

Интерес к процессору со стороны производителей и покупателей PC

сдерживался его очень высокой ценой. Кроме того, возник скандал с

обнаружением ошибки сопроцессора. Хотя фирма Intel математически обосновала

не высокую вероятность ее проявления (раз в несколько лет), она все-таки

пошла на бесплатную замену уже проданных процессоров на исправленные.

Процессоры Pentium с частотой 75, 90 и 100МГц, появившиеся в 1994

году, представили уже второе поколение процессоров Pentium. При почти том

же числе транзисторов они выполнялись по технологии 0,6 мкм, что позволило

снизить потребляемую мощность. От первого поколения они отличались

внутреннем умножением частоты, поддержкой мультипроцессорных конфигураций и

имели другой тип корпуса. Появились версии (75 МГц в миниатюрном корпусе)

для мобильных применений (блокнотные ПК). Процессоры Pentium второго

поколения стали весьма популярны в PC. В 1995 году появились процессоры на

120 и 133 МГЦ, выполненные уже по технологии 0,35 мкм (первые процессоры на

120 МГЦ делались еще по технологии 0,6 мкм). 1996-й называют годом Pentium

–появились процессоры на 150, 166 и 200 МГЦ, и Pentium стал рядовым

процессором для PC широкого применения.

Параллельно с Pentium развился и процессор Pentium Pro, который

отличался новшествами “динамического исполнения инструкций”. Кроме того, в

его корпусе разместили и вторичный кэш, для начала объемом 256 Кб. Однако

на 16-битных приложениях, а также в среде Windows 95 его применение на дает

преимуществ. Процессор содержит 5,5 млн транзисторов ядра, и 15,5 млн

транзисторов для вторичного кэша объемом 256 Кб. Первый процессор с

частотой 150 МГц появился в начале 1995 года (технология 0,6 мкм), а уже в

конце года появились процессоры с частотой 166, 180, 200 МГц (технология

0,35 мкм), у которых кэш достигал 512 Кб.

После долгих обещаний в начале 1997 года появились процессоры Pentium

MMX. Расширение ММХ предполагает параллельную обработку группы операндов

одной инструкцией. Технология ММХ призвана ускорять выполнение

мультимедийных приложений, в частности операции с изображениями и обработку

сигналов. Ее эффективность вызывает споры в среде разработчиков, поскольку

выигрыш в самих операциях обработки компенсируется проигрышем на

дополнительных операциях упаковки-распаковки. Кроме того ограниченная

разрядность ставит под сомнение применение ММХ в декодерах MPEG-2, в

которых требуется обработка 80-битных операндов. Кроме расширения ММХ эти

процессоры, по сравнению с обычным Pentium, имеют удвоенный объем

первичного кэша, и некоторые элементы архитектуры, позаимствованные у

Pentium Pr, что повышает производительность процессора Pentium ММХ и на

обычных приложениях. Процессоры Pentium ММХ имеют 4,5 млн транзисторов и

выполнены по технологии -,35 мкм. По состоянию на июнь 1997 г. имеются

процессоры с тактовыми частотами 166, 200 и 233 МГц.

Технология ММХ была соединена с архитектурой Pentium Pro – и в мае

1997 года появился процессор Pentium II. Он представляет собой слегка

урезанный вариант ядра Pentium Pro с более высокой внутренней тактовой

частотой, в которое внесли поддержку ММХ. Трудности размещения вторичного

кэша в одном корпусе с процессором преодолели нехитрым способом – кристалл

с ядром процессора и набор кристаллов статической памяти и дополнительных

схем, реализующих вторичный кэш, разместили на небольшой печатной плате-

картридже. Все кристаллы закрыты общей специальной крышкой и охлаждаются

специальным вентилятором. Тактовые частоты ядра – 233, 266 и 300 МГц.

Конечно же, перечисленным моделями не исчерпывается весь мировой

ассортимент микропроцессоров. Это только представители семейства

процессоров, имеющих обобщенное название х86. Ряд фирм (DEC? Motorola,

Texas Instruments и другие) имею разработки, существенно отличающиеся от

данного семейства; есть другие классы процессоров и у Intel. Среди них есть

гораздо более мощные процессоры относящиеся, к таким классам как RISC, так

и CISC архитектуру. Однако процессоры Pentium особенно с поддержкой ММХ,

имеют самую сложную в мире систему команд.

Процессоры, совместимые с семейством х86, выпускаются не только

фирмой Intel. Традиционный конкурент – AMD – выпускает совместимые

процессоры обычного несколько позже, но заметно дешевле, иногда по ряду

технических свойств они даже опережают аналогичные процессоры Intel. Фирма

Cyrix славится своими быстрыми сопроцессорами.

Как уже упоминалось выше, по системе команд и архитектуре различаются

процессоры RISC и CISC.

RISC – Reduced (Restricted) Instruction Set Computer – процессоры

(компьютеры) с сокращенной системой команд. Эти процессоры обычно имеют

набор однородных регистров универсального назначения, и их система команд

отличается относительной простотой. В результате аппаратная реализация

такой архитектуры позволяет с небольшими затратами выполнить за минимальное

(в пределе 1) число тактов синхронизации.

CISC – Complete Instruction Set Computer – процессоры (компьютеры) с

полным набором инструкций, к которым и относится семейство х86. Состав и

назначения их регистров существенно не однородны, широкий набор усложняет

декодирование инструкций, на что расходуются аппаратные ресурсы. Возрастает

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

В процессорах рассматриваемого семейства, начиная с 486-го,

применяется комбинированная архитектура – CISC-процессор имеет RISC-ядро.

Семейство 80х86 фирмы Intel началось с 16-разрядного процессора 8086.

Все старшие модели процессоров, в том числе 32-разрядные (386-й, 486-й,

Pentium, Pentium Pro) и с 64-разрядным расширением ММХ, включают в себя

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

совместимость с ранее написанным ПО.

ГЛАВА 1

16-разрядные процессоры

16-разрядные процессоры сами по себе уже представляют в основном лишь

исторический интерес. Но именно на них “выехали” миллионы РС,

обеспечивающих живучесть и подстегивающих развития всего семейства.

1.1. Процессоры i8086/8088

Процессоры 8086, выпущенные фирмой Intel в 1978 году, относятся к первому

поколению 16-битных процессоров. Годом позже появилась его модификация

1088. Оба эти процессора выполняют 8/86-битные логические и арифметические

операции, включая умножение и деление, операции с строками и операции ввода-

вывода. Процессоры имеют 20-разрядную шину адреса, которая позволяет

адресовать до 1 Мб памяти. Шина данных у 8086 16-разрядная, у 8088

разрядность внешней шины данных сокращена до 8 бит. Это сокращение,

сделанное с целью удешевления системы в целом, оборачивается некоторым

снижением производительности: 8086 за счет большей разрядности шины

работает примерно на 20-60% быстрее, чем 8088 с той же тактовой частотой.

Функциональные различия этих процессоров, обусловлены разной разрядностью

шины, появляются только в способе подключения 8- и 16-разрядных внешних

устройств. С программной точки зрения эти процессоры идентичны, их система

команд и набор процессоров включены во все процессоры РС- совместимых

компьютеров. От родоначальника - процессора 8086 – пошло общее обозначения

семейства: х86. Процессоры поддерживают аппаратные и программные прерывания

и допускают разделяемое использование шины совместно с другими

процессорами или контроллерами (например к, прямого доступа к памяти – DMA)

. Также предусмотрено использование математического сопроцессора 8087,

существенно повышающего производительность вычислений.

В процессорах применима конвейерная архитектура, позволяющая выполнить

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

внутренних операций. Конвейер повышает производительность процессора за

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

процессора 8086 имеет 6-байтную внутреннюю очередь инструкций. Блок

предварительной выборки при наличии 2 свободных байт в очереди старается ее

заполнить в то время, когда внешняя шина процессора не занята операциями

обмена. Очередь у процессора 8088 сокращена до 4 байт, а предварительная

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

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

при выполнении любой команды передачи управления, даже при переходе на

следующий адрес. Этим свойством часто пользуются при программировании

управления устройствами ввода-вывода, требующими задержки между соседними

операциями обмена.

Процессор имеет 14 регистров разрядностью 16 бит, операнды могут иметь

8 или 16 бит и представлять знаковые и беззнаковые и двоично-десятичные

числа. Система команд имеет 24 режима адресации операндов. Среднее время

выполнения команды занимает 12 тактов синхронизации, один цикл обмена на

внешней шине занимает 2 такта (без тактов ожидания). Тактовая частота

процессора 8088, применяемого в превых РС, была 4,77 МГц, в последствии

появились процессоры с частотой 8 и 10 МГц (применялись в Turbo XT).

1. 1. 1. Организация памяти 8086/88

Память для процессоров 8086/8088 представляется в виде линейной

последовательности байт. Для обращения к памяти процессор (совместно с

внешней схемой) формирует шинные сигналы MEMWR# (Memory Write) и MEMRD#

(Memory Read) для операции записи и считывания соответственно. Охват

пространства размером 1 Мб обеспечивается 20-разрядной шиной адреса.

Логическая память разбивается на сегменты размером 65 Кб. Физический адрес

памяти (поступающий на шину адреса разрядностью 20 бит) состоит из двух 16-

битных частей – адрес сегмента Seg и исполнительного адреса ЕА (executive

address), суммируемых со смещением на 4 бита (рис 2.1).

Рис. 2.1. Формирование физического адреса памяти процессором 8086/8088

Процессор может обращаться к одному байту памяти, так и слову, или

двойному слову. При размещении слова в памяти с адресом, соответствующим

адресу слова, содержит его младшую часть (Low), следующий байт содержит

старшую часть (High). Слово может размещаться в памяти как по четному

(Even), так и по не нечетному (Odd) адресу. Двойное слово обычно

используется для хранения полного адреса, и в нем располагается сначала

слово смещения (в порядке L, H), а затем сегмента (в том же порядке).

Сегментация памяти в порядке L, H являются характерной чертой процессоров

Intel.

Все пространство памяти разбивается на параграфы – области из 16

смежных байт, начиная с нулевого адреса. Вполне очевидно, что любой сегмент

может начинаться только на границе параграфа (четыре младших бита адреса –

нулевые).

1.1.2. Адресация ввода-вывода

Для обращения к устройствам ввода-вывода процессор имеет отдельные команды

IN и OUT, результатом выполнения которых является формирование шинных

сигналов IORD# (Input/ Output Write) для чтения или записи одного или двух

байт. Данные при чтении могут помещаться только в регистр AL или AX и

выводятся из этих же регистров. В циклах ввода-вывода используется только

16 младших бит шины адреса (старшие биты при этом нулевые), что позволяет

адресовать до 64 Кб регистров ввода-вывода. Адрес устройства задается либо

в команде (только младший байт, старший – нулевой), либо берется из

регистра DX (полный 16-битный адрес).

1.1.3. Система команд

Набор команд 8086/88 включает следующие основные группы:

. инструкции пересылки данных

. арифметические и логические инструкции;

. инструкции со строками;

. инструкции передачи управления;

. инструкции управления процессором;

Каждая команда имеет один или два байта инструкции, за которыми может

следовать 1, 2 или 4 байты операнда. Перед кодом инструкции возможно

применение префиксов CS;, DS;, ES;, SS;, указывающих на использование

заданных сегментных регистров вместо обычного, префикса REP, указывающего

на необходимость повтора инструкции указанное в регистре СХ число раз, и

префикса LOCK, блокирующего системную шину на время выполнения инструкции.

С позиции сегодняшнего дня можно считать, что система команд 16-разрядного

процессора 8086/88 является подмножеством команд 32-разрядных процессоров

80х86.

2. . Процессоры 80186/80188

Процессоры i80186/80188 и их модификации 80С186/80С188 не представляют

нового представления архитектуры: как и 8085/8088, они являются

процессорами с 16-разрядной внутренней архитектурой и программно

совместимыми с 8086ю Разрядность шины адреса - 20 бит, шины данных у 80186

– 16 бит, у 80188 – 8 бит. Эти процессоры имеют встроенные периферийные

контроллеры прерывания, прямого доступа к памяти, трехканальный таймер и

генератор синхронизации. За счет архитектурных улучшений сокращенно число

тактов, требуемых для выполнения некоторых команд. Процессоры 80С186/80С188

имеют средства управления энергопотреблением, есть их модификации со

встроенными последовательными портами и контроллерами регенерации

динамической памяти. Встроенная периферия этих процессоров имеет

программный интерфейс, не совместимы с IBM РС - спецификациями. Эти

процессоры используются во встраиваемых контроллерах и компьютерах, не

требующих 100% IBM – совместимости (возможно обеспечение совместимости на

уровне MS DOS).

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

Сопроцессор 8087, официально (фирмой Intel) называемый NPX (Numeric

Processor eXtension), предназначен для расширения вычислительных

возможностей центрального процессора (CPU) 8086/8088, 80186/80188. Его

применение к системе команд 8086 добавляется 68 мнемоник, включающих

арифметические, тригонометрические, экспоненциальные и логарифмические.

3. Процессор 80286

Процессор 80286, выпущенный в 1982 году, представляет второе поколение 16-

разрядных процессоров. Он имеет специальные средства для работы в

многопользовательских и многозадачных системах. Самым существенным отличием

от 8086/88 является механизм управления адресации памяти, который

обеспечивает четырехуровневую систему защиты и поддержки виртуальной

памяти. Специальные средства предназначены для поддержки механизма

переключения задач (Task switching). Процессор имеет расширенную систему

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

и несколько новых команд общего назначения. Процессор может работать в двух

режимах:

8086 Real Address Mode – режим реальной адресации (или просто реальный

режим - Real Mode), полностью совместимый с 8086. В этом режиме возможна

адресация до 1 Мбайт физической памяти (на самом деле, за счет “удачной”

ошибки, почти на 64 Кб больше).

Protect Virtual Address Mode – защищенный режим виртуальной адресации

(или просто защищенный режим - Protect Mode). В этом режиме процессор

позволяет адресовать до 16 Мбайт физической памяти, через которые при

использовании страничной адресации могут отображаться до 1 Гб виртуальной

памяти каждой задачи. Система команд в этом режиме также включает набор

команд 8086, расширенный для обеспечения аппаратной реализации функций

супервизора многозадачной ОС и виртуальной памяти. Переключение в

защищенный режим осуществляется одной командой (с предварительно

подготовленными таблицами дескрипторов) достаточно быстро. Обратное

переключение в реальный режим возможно только через аппаратный сброс

процессора.

По составу и назначению в реальном режиме регистры 80286 в основном

совпадают с регистрами 8086/88. Изменения касаются назначения бит регистра

8086, процессор 80286 имеет 16-битную шину данных и очередь команд 6 байт.

За счет архитектуры сокращенно время выполнения операций: процессор 20286 с

тактовой частотой 12,5 МГц работает более чем в 6 раз быстрее чем 8086 с

тактовой частотой 5 МГц. Предусмотрена возможность использования

высокопроизводительного процессора 80287, программно совместимого с 8087.

Под управлением MSDOS процессор 80286 обычно используют в реальном

режиме работы. Защищенный режим используют ОС типа XENIX, UNIX, OS/2,

NetWare286 и оболочка MS Windows. Хотя его преимущества в РС реализованы

лишь частично (он в основном использовался как быстрый процессор 8086),

именно с этим процессором связан настоящий “бум” на рынке РС.

1.3.1. Организация памяти 80286

Как и у процессоров 8086/8088, для обращения к памяти процессор (совместно

с внешней схемой) формирует шинные сигналы MEMWR# (Memory Write) и MEMRD#

(Memory Read) для операции записи и считывания соответственно. Шина адреса

разрядностью 24 бита позволяет адресовать 16 Мб физической памяти, но в

реальном режиме доступен только 1 Мб, начинающийся с младших адресов. С

программной точки зрения память также организуется в виде сегментов, но

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

защищенного режимов.

В реальном режиме по адресации памяти декларируется полная

совместимость с процессором 8086, который своей 16-битной адресной шиной

охватывает пространство в 1 Мб. На самом деле на радость разработчиков

программного обеспечения РС, 80286 имеет ошибку, “узаконенною” и в

следующих поколения процессоров. При вычислении физического адреса возможно

возникновение переполнения, которое с 20-битной шиной адреса просто

игнорируется. Например, Seg=FFFFh и EA=FFFF, физический адрес, вычисленный

по формуле PA=16*Seg+EA=10FFEF, процессором 8086 трактуется как 0FFEF –

адрес, принадлежащий первому мегабайту. Однако на выходе А20 процессора

80286 в этом случае устанавливается единичное значение, что соответствует

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

полной программной совместимости с 8086 в схему РС был введен специальный

вентиль Gate A20, принудительно обнуляющий бит А20 системной шины адреса.

Не оценив потенциальной выгоды от этой ошибки, управление вентилем

узаконили через программно-управляемы бит контроллера клавиатуры 8042.

Когда оперативная память подешевела, а “аппетит” программного обеспечения

вырос, в эту небольшую область (64К-16 бит) стали помещать некоторые

резидентные программы или даже часть операционный системы, а для ускорения

управлением вентилем появились более быстрые способы (Gate A20 Fast

Control).

В отличии от 8086 процессор 80286 имеет средства контроля за переходом

через границу сегмента, работающие в реальном режиме. При попытке адресации

к слову, имеющему смещение FFFh (его старший байт выходит за границу

сегмента), или выполнения инструкции, все байты которой не умещаются в

одном сегменте, процессор вырабатывает прерывание – исключение 13 (0Dh) –

Segment Overrun Exception. При попытке выполнения инструкции ES-CAPE с

операндом памяти, не умещаемся в сегменте, вырабатывается исключение 9 –

Processor Extension Segment Interrupt.

В защищенном режиме работают не все режимы адресации, допустимые для

8086 и реального режима 80286. Отличия касаются определения сегментов:

. сегментные регистры CS, DS, SS и ES хранят не сами базовые адреса

сегментов, а селекторы, по которым из таблицы, хранящейся в ОЗУ,

извлекаются дескрипторы сегментов;

. дескриптор описывает базовый адрес, размер сегмента (1-64 Кб) и его

атрибуты;

. базовый адрес сегмента имеет разрядность 24 бита, что и обеспечивает

адресацию 16 Мб физической памяти.

Селекторы, загружаемые в 16-битные сегментные регистры, имеют три поля:

RPL (биты 0, 1), TI (бит 2) и INDEX (биты 3-15):

RPL (Requested Privilege Level) – запрошенный уровень привилегий;

TI (Table Indicator) – индикатор использования GDT – глобальный (TI=0) или

LDT – локальной (TI=1) таблицы дескрипторов;

INDEX – номер дескриптора в таблице.

Дескрипторы хранятся в слове и занимают по четыре смежных слова (8

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

ОЗУ и кэшируются во внутренних программно не доступных (и невидимых)

регистрах процессора. До смены значения селектора при обращения к памяти

используются значения дескрипторов только из кэш-регистров. Обращение к

дескрипторам выполняются как заблокированные шинные циклы, что обеспечивает

целостность дескрипторов и при наличии других контроллеров шины.

Для функций передачи управления и переключения задач определенны

специальные типы дескрипторов

1.3.2. Ввод-вывод

Как и 8086, процессор 80286 позволяет адресовать до 64К однобайтных или 32К

двухбайтных регистров в пространстве, отдельном от памяти (команды ввода-

вывода вызывают шинные циклы с активными сигналами IORD#, IOWR#). В

адресном пространстве ввода-вывода область 00F8-00FF зарезервирована для

использования сопроцессором. При операциях ввода-вывода старшие биты

адреса (линии А[16:20]) не используются. Адрес устройства либо задается в

команде (только младший байт, старший – нулевой), либо берется из регистра

DX (полный 16-битный адрес). Строковые команды REP INSB/INSW, REP

OUTSB/OUTSW обеспечивают блочный ввод-вывод со скоростью, превышающей

аналогичные операции со стандартным контроллером DMA.

В защищенном режиме инструкции ввода-вывода являются

привилегированными. Это означает, что они могут исполнятся задачами только

с определенным уровнем привилегий, определяемым полем IOPL регистра флагов.

Несанкционированная попытка выполнения этих инструкций вызывает исключение

13 – нарушения защиты (знаменитое сообщение “General Protection Error”).

1.3.3. Начальный сброс и переход в защищенный режим

По высокому уровню сигнала на входе RESET процессор прекращает выполнение

инструкций и перестает управлять локальной шиной. После аппаратного сброса

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

FFFF0h. Сброс (и только сброс!) переводит процессор в реальный режим и

устанавливает значения некоторых регистров.

Только после сброса и до первой команды межсегментного перехода или

вызова на шине адреса в реальном режиме бита А[20:23] в циклах выборки

команд имеют единичное значения. Из этого следует, что по крайней мере на

начальный период времени после сигнала RESET компьютер должен иметь образ

BIOS в адресах FFFFF0-FFFFFFh, в то время как РС на 8086/88 ROM BIOS

располагалась под границей 0FFFFFh. Перемещение BIOS из первого мегабайта

памяти в старшие адреса “навсегда” невозможно, поскольку векторы

прерывания, ссылающиеся на сервисы BIOS, в реальном режиме могут

адресоваться только к памяти в диапазоне адресов 0-0FFFFh (0-10FFEF при

открытом вентиле Gate A20). Таким образом, у РС/AT на процессоре 80286 (и

старше) ROM BIOS отображается по крайней мере на две области памяти,

расположенные под верхними границами первого и последнего мегабайтов

физической памяти.

Перевод процессора в защищенный режим осуществляется загрузкой в MSW

слова с единичным значением бита РЕ (Protect Enable). Перед этим в памяти

должны быть проинициализированы необходимые таблицы дескрипторов IDT и

GDT, а в базовые регистры IDT и GDT должны быть занесены их физические

адреса (24-битные) и размер. После выполнения инструкции LMSW,

устанавливающий бит РЕ, сразу должна выполнятся команда внутрисегментного

перехода JMP для очистки очереди инструкций, декодированных в реальном

режиме.

Для установки регистров процессора в начальное состояние защищенного

Страницы: 1, 2


© 2010 Современные рефераты