Математика

Физика

Химия

Биология

Техника и    технологии

Микропроцессор I486.Архитектура и программирование-В.Л.Григорьев Москва 1993 стр.350 В новой книге известного автора рассматриваются следующие вопросы: основные программные ресурсы процессора i486 (кроме средств с плавающей точкой); пользовательские и системные регистры, форматы поддерживаемых процессором данных, форматы команд и режимы адресации; организация и управление памятью; средства защиты; обзор команд целочисленного устройства процессора i486 (кроме команд устройства с плавающей точкой); мультизадачность; встроенные средства отладки; инициализация и проверка внутренних устройств; гибкие средства совместимости с предыдущими процессорами фирмы Intel 8086/80286/80386.
Предисловие
За 20-летнюю историю развития микропроцессорной техники ведущие позиции в этой области занимает американская фирма Intel (INTegrated ELectronics). В 1971 г. она разработала и выпустила первый в мире 4-битный микропроцессор 4004, но подлинный успех ей принес 8-битный микропроцессор 8080, который был объявлен в 1973 г. Этот микропроцессор получил очень широкое распространение во всем мире. Сейчас в нашей стране его аналог — микропроцессор КР580ИК80 применяется во многих бытовых персональных компьютерах и разнообразных контроллерах.
В 1979 г. фирма Intel первой выпустила 16-битный микропроцессор 8086, возможности которого были близки к возможностям процессоров миникомпъю-теров 70-х годов. Микропроцессор 8086 оказался "прародителем" целого семейства, которое обычно называют семейством 80x86. Аналог этого микропроцессора К1810ВМ86 применяется в персональных компьютерах, выпускаемых в нашей стране.
Желание расширить адресное пространство памяти до 1 Мбайт в процессоре с 16-битными регистрами заставило использовать в микропроцессоре 8086 сегментную организацию памяти, которая в последующих микропроцессорах фирмы Intel была сохранена ради совместимости.
Несколько позже появился микропроцессор 8088, архитектурно повторяющий микропроцессор 8086 и имеющий 16-битные внутренние регистры, но его внешняя шина данных составляет 8 бит. Широкой популярности микропроцессора 8088 способствовало его применение фирмой IBM в персональных компьютерах PC и PC/XT. Очень быстро для этих компьютеров был накоплен такой огромный объем программного обеспечения, что в последующих, более совершенных процессорах фирме Intel пришлось предусматривать специальный режим эмуляции микропроцессора 8086. Обычно этот режим называется режимом реального адреса (Real Address Mode) или R-режим.
В 1981г. появились микропроцессоры 80186/80188, которые сохраняли базовую архитектуру микропроцессоров 8086/8088, но содержали на кристалле контроллер прямого доступа к памяти, счетчик/таймер и контроллер прерываний. Кроме того, была несколько расширена система команд. Однако широкого распространения эти микропроцессоры (как и персональные компьютеры PCjr на их основе), не получили.
Следующим крупным шагом в разработке новых идей стал микропроцессор 80286, появившийся в 1982г. При разработке (далее этот и последующие микропроцессоры, учитывая их широкие возможности, называются процессорами) были учтены достижения в архитектуре миникомпъютеров и больших компьютеров. Процессор 80286 может работать в двух режимах: в режиме реального адреса он эмулирует микропроцессор 8086, а в защищенном режиме виртуального адреса (Protected Virtual Address Mode) или Р-режиме предоставляет программисту много новых возможностей и средств. Среди них отметим расширенное адресное пространство памяти 16 Мбайт, появление дескрипторов сегментов и дескрип-торных таблиц, наличие защиты по четырем уровням привилегий, поддержку организации виртуальной памяти и мулътизадачности. Процессор 80286 применяется в персональных компьютерах PC/AT и младших моделях PS/2.
При разработке 32-битного процессора 80386 потребовалось решить две основные задачи — совместимость и производительность. Первая из них решена путем введения трех режимов работы.
В R-режиме, который действует после включения питания или системного сброса, процессор копирует работу процессора 8086 и использует 16-битные регистры; адресное пространство памяти составляет 1 Мбайт.
В Р-режиме процессор 80386 может выполнять 16-битные программы (код) процессора 80286 без каких-либо дополнительных модификаций. Вместе с тем, в этом же режиме он может выполнять свои «естественные» 32-битные программы, что обеспечивает повышение производительности системы. Именно в этом режиме реализуются все новые возможности и средства процессора 80386, среди которых отметим масштабированную индексную адресацию памяти, ортогональное использование регистров общего назначения, новые команды, средства отладки и др. Адресное пространство памяти в этом режиме составляет 4 Гбайт.
Операционная система Р-режима может создать задачу, которая работает в режиме виртуального процессора 8086 (Virtual 8086 Mode) или V-режим. Прикладная программа, которая выполняется в этом режиме, полагает, что она работает на процессоре 8086. Однако некоторые команды, в основном, связанные с управлением вводом-выводом, программе выполнять запрещается, поэтому при нарушении правил защиты генерируется прерывание и управление передается операционной системе. Семейство процессоров фирмы Intel продолжает развиваться. Сравнительно недавно появился процессор 80386SX, который полностью совместим с процессором 80386, но имеет внешнюю шину данных 16 бит и адресное пространство 24 Мбайт. Выпущен также процессор 80386SL в миниатюрном корпусе и с пониженным потреблением энергии.
Одной из последних разработок фирмы Intel является процессор i486, содержащий на кристалле более миллиона транзисторов. Два главных его отличия от предыдущих процессоров состоит в том, что математический сопроцессор реализован на одном кристалле вместе с центральным процессором в виде устройства с плавающей точкой FPU (Floating Point Unit) и имеется внутренняя совмещенная кэш-память команд и данных емкостью 8 Кбайт. По существу, этот процессор представляет собой объединение на одном кристалле процессора 386DX и сопроцессора 80387, дополненное внутренней кэш-памятью. Но наряду с этим в процессоре i486 реализовано много аппаратных и программных новинок.
Желание познакомить наших читателей с процессором i486 показало, что вместить его описание в одну книгу практически неосуществимо из-за огромного объема материала. В связи с этим читателям предлагается серия из четырех книг по процессору i486, в которых рассматриваются следующие вопросы:
Книга I. Программная архитектура.
Книга II. Аппаратная архитектура.
Книга III Устройство с плавающей точкой.
Книга ГУ. Справочник по системе команд.
В заключение отметим, что 80-е годы прошли «под знаком» процессоров фирмы Intel. По всей вероятности, аналогичная ситуация сохранится и в 90-е годы. Поэтому для специалистов в области вычислительной техники материал, изложенный в предлагаемых книгах, представляет практический интерес.
Вячеслав Леонидович Григорьев
Оглавление
Глава 1. Базовая архитектура 148(».............................................. 11
1.1. Программная модель процессора............................. 12
1.1.1. Пользовательские регистры процессора....... 13
1.1.2. Системные регистры...................................... 22
1.2. Адресация данных и их форматы............................. 27
1.3. Форматы команд........................................................ 33
1.4. Адресация операндов............,................................... 44
Заключение........................................................................ 49
Глава 2. Управление памятью...................................................... 51
2.1. Сегментная организация памяти............................. 51
2.1.1. Сегментация памяти в процессоре 8086....... 52
2.1.2. Определение сегментов
в процессоре i486............................................ 54
2.1.3. Права доступа сегмента.................................. 59
2.1.4. Дескрипторные таблицы................................ 64
2.1.5. Селекторы сегментов...................................... 67
2.1.6. Локальные дескрипторные таблицы............. 73
2.1.7. Особенности сегментации............................. 75
2.2. Страничная организация памяти............................. 79
2.2.1. Структура страниц.......................................... 80
2.2.2. Страничное преобразование адреса.............. 81
2.2.3. Построение таблиц......................................... 88
2.2.4. Разрешение и запрещение
страничного преобразования......................... 94
2.2.5. Ассоциативный кэш-буфер
страничного преобразования......................... 95
2.2.6. Совместное действие сегментации
и страничного преобразования....................... 97
Заключение........................................................................ 99
Глава 3. Защита по привилегиям.................................................101
3.1. Уровни привилегий................................................... 102
3.2. Определение уровней привилегий........................... 104
3.3. Передача управления
между уровнями привилегий.................................... 111
3.4. Детали передачи управления
через уровни привилегий..........................................121
3.4.1. Вызов процедуры............................................121
3.4.2. Возврат из процедуры....................................124
3.5. Рекомендации по разработке привилегированных процедур..................................126
3.6. Защита на уровне страниц........................................128
3.6.1. Объединение защиты
сегментов и страниц.......................................130
Заключение........................................................................131
Глава 4. Система команд.............................................................132
4.1. Команды передач данных.........................................134
4.2. Арифметические команды........................................142
4.3. Команды логических операций и сдвигов..............150
4.4. Команды передачи управления................................157
4.5. Команды обработки цепочек...................................164
4.6. Команды поддержки языков высокого уровня.......167
4.7. Команды управления процессором.........................176
4.8. Новые команды.........................................................178
Заключение..........,..............................................................180
Глава 5. Мультизадачность.........................................................182
5.1. Контекст задачи и его изменение............................184
5.2. Сегмент состояния задачи........................................185
5.3. Переключение задачи................................................191
5.4. Вложения задач..........................................................199
5.5. Двоичная карта разрешения ввода-вывода.............203
5.6. Взаимодействие между задачами.............................205
5.6.1. Разделение кода..............................................207
5.6.2. Разделение данных.........................................208
Заключение........................................................................213
Глава 6. Прерывания и особые случаи........................................214
6.1. Прерывания и особые случаи
в процессоре 8086......................................................216
6.2. Прерывания в защищенном режиме.......................220
6.3. Дескрипторная таблица прерываний.......................224
6.4. Особенности обработки особых случаев.................230
6.5. Справочные данные по особым случаям................233
6.6. Особенности реакции
на одновременные события......................................245
Заключение........................................................................247
Глава 7. Средства отладки..........................................................248
7.1. Покомандное выполнение программы....................250
7.2. Программные контрольные точки...........................253
7.3. Регистры отладки...................................................... 254
7.3.1. Аппаратные контрольные точки
по командам....................................................256
7.3.2. Аппаратные контрольные точки
по данным.......................................................259
7.3.3. Особенности средств отладки........................263
Заключение........................................................................264
Глава 8. Инициализация и проверка внутренних устройств..........266
8.1. Инициализация.........................................................267
8.1.1. Состояние процессора после сброса.............267
8.1.2. Программная инициализация
в R-режиме......................................................270
8.1.3. Переключение в защищенный режим..........272
8.1.4. Программная инициализация
в защищенном режиме...................................273
8.2. Проверка внутренней кэш-памяти..........................275
8.2.1. Структура кэш-памяти...................................276
8.2.2. Работа внутренней кэш-памяти....................279
8.2.3. Управление кэш-памятью
на уровне страниц...........................................281
8.2.4. Регистры проверки кэш-памяти....................282
8.2.5. Операции проверки........................................284
8.3. Проверка буфера TLB...............................................285
8.3.1. Структура буфера TLB....................................285
8.3.2. Регистры проверки буфера TLB.................... 285
8.3.3. Операции проверки........................................288
Заключение........................................................................289
Глава 9. Совместимостью особенности работы.............................290
9.1. Выполнение программ
процессоров 80286 и 80386.......................................290
9.1.1. Два способа выполнения задач процессора 80286............................................291
9.1.2. Отличия от процессора 80286........................292
9.1.3. Дополнительные особые случаи....................293
9.1.4. Отличия от процессора 80386........................293
9.2. Режим реального адреса............................................294
9.2.1. Преобразование адреса...................................295
9.2.2. Регистры и команды.......................................295
9.2.3. Обработка прерываний
и особых случаев............................................. 296
9.2.4. Вход в R-режим и выход из него..................297
9.2.5. Особые случаи R-режима...............................298
9.2.6. Отличия от процессора 8086..........................299
9.2.7. Отличия от процессора 80286
в R-режиме......................................................302
9.2.8. Отличия от R-режима
процессора 80386............................................303
9.3. Режим виртуального процессора 8086.....................303
9.3.1. Выполнение программ процессора 8086.......304
9.3.2. Регистры и команды.......................................304
9.3.3. Преобразование адреса...................................305
9.3.4. Структура задачи виртуального процессора 8086..............................................305
9.3.5. Вход в V-режим и выход из него...................307
9.3.6. Дополнительные
чувствительные команды............................... 310
9.3.7. Виртуальный ввод-вывод...............................311
9.3.8. Отличия от процессора 8086..........................313
9.3.9. Отличия от процессора
80286 в R-режиме............................................313
9.3.10. Отличия от процессора 80386........................314
9.4. Смешивание 16- и 32-битного кода.........................314
9.4.1. Использование 16- и 32-битной среды.........315
9.4.2. Смешивание 16- и 32-битных операций......316
9.4.3. Разделение данных между сегментами
кода смешанного размера..............................317
9.4.4. Передача управления между
сегментами кода смешанного размера..........318
Заключение........................................................................323
"лава 10. Примеры программирования..........................................324
10.1. Примеры программ...................................................324
ПРОГРАММА 1. Создание дескрипторов
и дескрипторных таблиц...........................................324
ПРОГРАММА 2. Определение
базового адреса сегмента..........................................327
ПРОГРАММА 3. Поиск неиспользуемого
элемента в таблице GDT..........................................328
ПРОГРАММА 4. Задание программной
контрольной точки....................................................329
ПРОГРАММА 5. Установка и снятие аппаратной
контрольной точки по команде...............................330
ПРОГРАММА 6. Установка и снятие аппаратной
контрольной точки по данным................................332
10.2. Рекомендации по программированию.....................334
Заключение........................................................................345
Титература.................................................................................346
Базовая архитектура i486
В этой главе рассматриваются основные программные ресурсы процессора i486 (за исключением средств с плавающей точкой): пользовательские и системные регистры, форматы поддерживаемых процессором данных, форматы команд и режимы адресации. Отметим, что в базовую программную модель не включается ввод-вывод. Разработчик системы может сделать команды ввода-вывода доступными прикчадным программам или реализовать эти функции через операционную систему.
В общем, пользовательские регистры процессора i486 напоминают регистры предыдущих процессоров фирмы Intel с естественным расширением длины регистров до 32 бит, поэтому их изучение и использование в прикладных программах не должно вызывать серьезных затруднений. Системные регистры предназначены для системных программистов; они управляют режимом работы процессора, определяют системные таблицы, позволяют задавать контрольные точки при отладке программ и проверять функционирование внутренней кэш-памяти команд и данных, а также кэш-буфера страничного преобразования.
Процессор i486 поддерживает разнообразные типы данных, представленные двоичными числами различной длины, упакованными и неупакованными десятичными числами, указателями, а также цепочками бит, байт, слов и двойных слов.
Команды процессора i486 имеют довольно сложный формат, а длина их составляет от 1 до 15 байт. Многим командам могут предшествовать префиксные байты (модификаторы), несколько изменяющие операцию команды.
Наконец, в процессоре i486 реализовано много режимов адресации операндов, в том числе несколько новых. Благодаря этому со-ращается длина объектного кода и повышается эффективная производительность системы.

Цена: 100руб.

Назад

Заказ

На главную страницу

Hosted by uCoz