АРХИТЕКТУРА. Рекомендовано УМО по образованию в области инновационных
А. П. Жмакин
ЭВМ Рекомендовано УМО по образованию в области инновационных междисциплинарных образовательных программ в качестве учебного пособия по специальности «Математическое обеспечение и администрирование информационных систем» — 010503 Санкт - Петербург «БХВ - Петербург» УДК 681.3(075.8) ББК 32.973 - 02я73 Ж77 Жмакин А. П. Ж77 Архитектура ЭВМ. — СПб.: БХВ - Петербург, 2006. — 320 с: ил. ISBN 5 - 94157 - 719 - 2 Пособие объединяет в одном издании теоретическую часть одноименной дисциплины и лабораторный практикум. Рассмотрены базовые вопросы организации ЭВМ: функциональная организация ЭВМ, системы команд и командный цикл. Большое внимание уделено арифметическим основам ЭВМ, принципам построения различных усройств и их взаимодействию. Обсуждаются вопросы построения микропроцессорных систем. Лабораторный практикум проводится на программной модели ЭВМ, представленной на прилагаемом компакт-диске. Также пособие содержит материалы для выполнения курсового проектирования. Для студентов и преподавателей технических вузов УДК 681.3(075.8) ББК 32.973 - 02я73 Группа подготовки издания: Главный редактор Екатерина Кондукова Зам. главного редактора Людмила Еремеевская Зав. редакцией Григорий Добин Редактор Анна Кузьмина Компьютерная верстка Ольги Сергиенко Корректор Зинаида Дмитриева Дизайн серии Игоря Цырульникова Оформление обложки Елены Беляевой Зав. производством Николай Тверских Рецензенты: Терехов А. Н., д. ф. - м. н., профессор, заведующий кафедрой системного программирования Санкт - Петербургского государственного университета Костин В. А., к. ф. - м. н., доцент кафедры информатики Санкт - Петербургского государственного университета Лицензия ИД № 02429 от 24.07.00. Подписано в печать 12.12.05. Тираж 3000 экз. Заказ No 4499 •БХВ - Петербург", 194354. Санкт - Петербург, ул. Есенина. 5Б. Санитарно - эпидемиологическое заключение на продукцию № 77.99.02.953.Д.006421.11.04 от 11.11.2004 г. выдано Федеральной службой по надзору ■ сфере защиты прав потребителей и благополучия человека. Отпечатано с готовых диапозитивов в ГУЛ Типография "Наука* 199034. Санкт - Петербург, 9 линия, 12 ISBN 5 - 94157 - 719 - 2 О Жмакин А.П., 2006 О Оформление, издательство "БХВ - Петербург", 2006 Оглавление Предисловие 9 ЧАСТЬ I. ПРИНЦИПЫ ОРГАНИЗАЦИИ ЭВМ 10 Глава 1. Начальные сведения об ЭВМ 11 1.1 История развития вычислительной техники 11 1.2 Цифровые и аналоговые вычислительные машины 12 1.3 Варианты классификации ЭВМ 13 1.4 Классическая архитектура ЭВМ 16 1.5 Иерархическое описание ЭВМ 18 Глава 2. Функциональная организация ЭВМ 19 2.1 Командный цикл процессора 20 2.2 Система команд процессора 21 2.2.1 Форматы команд 21 2.2.2 Способы адресации 22 2.2.3 Система операций 23 Глава 3. Арифметические основы ЭВМ 25 3.1 Системы счисления 25 3.2 Представление чисел в различных системах счисления 27 3.2.1. Перевод целых чисел из одной системы счисления в другую 28 Преобразование Zp → Z1 → Zq 28 Преобразование Zp → ZW → Zq 28 3.2.2 Перевод дробных чисел из одной системы счисления в другую 30 3.2.3 Перевод чисел между системами счисления 2 ↔ 8 ↔16 32 3.2.4 Понятие экономичности системы счисления 33 3.3. Представление информации в ЭВМ. Прямой код 35 3 4. Алгебраическое сложение/вычитание в прямом коде 35 3 5. Обратный код и выполнение алгебраического сложения в нем 37 3 5.1. Алгебраическое сложение в обратном коде 38 3.6. Дополнительный код и арифметические операции в нем 41 3.6. 1. Алгебраическое сложение в дополнительном коде 42 3.6.2. Модифицированные обратный и дополнительный коды 45 3 7. Алгоритмы алгебраического сложения в обратном и дополнительном коде 45 3.8.Алгоритмы умножения 47 3.8.1 Умножение в дополнительном коде 48 3.8.2Методы ускорения умножения 49 3.9. Алгоритмы деления 52 3.9.1. Деление без восстановления остатка 53 3.10. Арифметические операции с числами, представленными в формате с плавающей запятой 54 3.10.1 Сложение и вычитание 55 3.10.2 Умножение и деление 58 3.11.Арифметические операции над десятичными числами 58 3.11.1 Кодирование десятичных чисел 58 3.11.2 Арифметические операции над десятичными числами 59 3.12. Машинная арифметика в остаточных классах 62 3.12.1. Представление чисел в системе остаточных классов 62 3.12.2. Арифметические операции с положительными числами 63 3.12.3.Арифметические операции с отрицательными числами 65 Глава 4. Организация устройств ЭВМ. 66 4.1 Принцип микропрограммного управления 66 4.2 Концепция операционного и управляющего автоматов 66 4.3 Операционный автомат 67 4.3.1. Пример проектирования операционного автомата АЛУ 68 Определение форматов данных 68 Разработка алгоритма деления 69 Разработка структуры операционного автомата 71 4.4. Управляющий автомат 74 4.4.1. Управляющий автомат с "жесткой" логикой 75 Пример проектирования УАЖЛ 75 4.4.2. Управляющий автомат с программируемой логикой 81 Принципы организации 81 Адресация микрокоманд 82 Кодирование микроопераций 87 Пример проектирования УАПЛ 89 Определение формата микрокоманды 90 Кодировка микроопераций и логических условий 92 Глава 5. Организация памяти в ЭВМ 95 5.1 Концепция многоуровневой памяти 95 5.2 Сверхоперативная память 96 5.2.1 СОЗУ с прямым доступом 97 5.2.2 СОЗУ с ассоциативным доступом 97 5.3. Виртуальная память 104 5.3.1 Алгоритмы замещения 105 5.3.2 Сегментная организация памяти 107 ЧАСТЬ П. АРХИТЕКТУРА МИКРОПРОЦЕССОРНЫХ СИСТЕМ 107 Глава 6, Базовая архитектура микропроцессорной системы 111 6.1. Процессорный модуль 112 6.1.1 Внутренняя структура микропроцессора 112 6.1.2 Командный и машинный циклы микропроцессора 114 6.1.3 Реализация процессорных модулей и состав линий системного интерфейса 116 6.2. Машина пользователя и система команд 117 6.2.1 Распределение адресного пространства 118 6.2.2 Система команд i8086 119 6.3. Функционирование основных подсистем МПС 120 6.3.1. Оперативная память 121 Диспетчер памяти 122 6.3.2. Ввод/вывод 122 Параллельный обмен 123 Последовательный обмен 126 6.3.3. Прерывания 128 Обнаружение изменения состояния внешней среды 129 Идентификация источника прерывания 130 Приоритет запросов 130 Приоритет программ 131 Обработка прерывания 131 6.3.4. Прямой доступ в память 133 Глава 7. Эволюция архитектур микропроцессоров и микроЭВМ 134 7.1. Защищенный режим и организация памяти 135 7.1.1 Сегментная организация памяти 135 7.1.2 Страничная организация памяти 139 7.1.3 Защита памяти 142 Защита памяти на уровне сегментов 142 Защита доступа к данным 144 Защита сегментов кода 144 Защита памяти на уровне страниц 145 7.2.Мультизадачность 146 7.2.1 Сегмент состояния задачи 147 7.2.2 Переключение задачи 150 7.3.Прерывания и особые случаи 151 7.3.1 Дескрипторная таблица прерываний 151 7.3.2 Учет уровня привилегий 155 7.3.3 Код ошибки 156 7.3.4 Описание особых случаев 156 7.4 Средства отладки 159 7.4.1. Регистры отладки 161 Регистрация нескольких особых случаев 164 7.5.Увеличение быстродействия процессора 164 7.5.1 Конвейеры 165 7.5.2Динамический параллелизм 167 7.5.3 VLIW – архитектура 170 Выводы 172 7.6. Однокристальные микроЭВМ 173 ЧАСТЬ I I I. ЛАБОРАТОРНЫЙ ПРАКТИКУМ И КУРСОВОЕ ПРОЕКТИРОВАНИЕ 177 Глава 8. Описание архитектуры учебной ЭВМ 178 8.1 Структура ЭВМ 178 8.2 Представление данных в модели 180 8.3 Система команд 180 8.3.1 Форматы команд 180 8.3.2 Способы адресации 181 8.3.3 Система операций 181 8.4 Состояния и режимы работы ЭВМ 182 8.5 Интерфейс пользователя 182 8.5.1. Окна основных обозревателей системы 183 Окно Процессор 183 Окно Память 184 Окно Текст программы 185 Окно Программа 186 Окно Микрокомандный уровень 187 Окно Кэш-память 188 8.6.Внешние устройства 188 8.6.1. Контроллер клавиатуры 189 8.6.2. Дисплей 192 8.6.3 Блок таймеров 193 8.6.4 Тоногенератор 195 8.7 Подсистема прерываний 195 8.8 Программная модель памяти 197 8.9 Вспомогательные таблицы 199 Глава 9. Лабораторные работы 203 9.1. Лабораторная работа № 1. Архитектура ЭВМ и система команд 203 9.1.1. Общие положения 203 9.1.2. Пример 1 204 9.1.3 Задание 1 205 9.1.4 Содержание отчета 205 9.1.5 Контрольные вопросы 205 9.2.Лабораторная работа № 2. Программирование разветвляющегося процесса 206 9.2.1 Пример 2 206 9.2.2 Задание 2 207 9.2.3 Содержание отчета 208 9.2.4 Контрольные вопросы 209 9.3.Лабораторная работа № 3. Программирование цикла с переадресацией 209 9.3.1 Пример 3 209 9.3.2 Задание 3 211 9.3.3 Содержание отчета 211 9.3.4 Контрольные вопросы 211 9.4. Лабораторная работа № 4. Подпрограммы и стек 212 9.4.1. Пример 4 212 9.4.2. Задание 4 214 9.4.3 Содержание отчета 215 9.4.4 Контрольные вопросы 215 9.5 Лабораторная работа № 5. Командный цикл процессора 215 9.5.1 Задание 5.1 215 9.5.2 Задание 5.2 215 9.5.3 Контрольные вопросы 216 9.6.Лабораторная работа № 6. Программирование внешних устройств 218 9.6.1 Задание 6 218 9.6.2 Задания повышенной сложности 220 9.6.3 Порядок выполнения работы 220 9.6.4 Содержание отчета 221 9.6.5 Контрольные вопросы 221 9.7. Лабораторная работа № 7. Принципы работы кэш-памяти 221 9.7.1 Задание 7 221 9.7.2 Порядок выполнения работы 222 9.7.3 Содержание отчета 222 9.7.4 Контрольные вопросы 223 9.8. Лабораторная работа № 8. Алгоритмы замещения строк кэш-памяти 223 9.8.1 Задание 8 223 9.8.2 Порядок выполнения работы 223 9.8.3 Содержание отчета 224 9.8.4 Контрольные вопросы 224 Глава 10. Курсовая работа 225 10.1 Цель и содержание работы 225 10.2 Задания 225 10.3 Этапы выполнения работы 228 10.4 Содержание пояснительной записки 229 ПРИЛОЖЕНИЯ 231 Приложение 1. Список сокращений, используемых в тексте 231 Приложение 2. Описание компакт – диска 233 Литература 235 Предметный указатель 236
Предисловие Эта книга создавалась как учебное пособие по архитектуре процессоров и ЭВМ. Материал книги ориентирован на студентов инженерных специальностей, обучающихся в области разработки программного обеспечения и информационных систем, для которых "компьютерное железо" не является основным предметом изучения, но которые хотят (и должны) знать основы построения процессоров, организацию взаимодействия основных устройств ЭВМ, программирование на низком уровне. Книга может быть полезной и студентам педагогических специальностей, в учебных планах которых предусмотрены курсы по изучению архитектуры ЭВМ (физика, математика, информатика). Читателям необходимо владеть начальными знаниями в области цифровой схемотехники (булева алгебра, логические элементы, триггеры, операционные элементы). В основу книги положены материалы курсов лекций, читаемых автором на кафедре вычислительной техники Курского государственного технологического университета (КГТУ) и кафедре программного обеспечения и администрирования информационных систем КГУ. Книга объединяет в себе теоретический материал, цикл лабораторных работ и задания на курсовое проектирование. Пособие состоит из трех частей. В части I рассматриваются общие принципы организации ЭВМ» включая их функциональную и структурную организацию. Достаточно подробно рассмотрены арифметические основы ЭВМ» представление чисел в различных кодах и алгоритмы выполнения арифметических операций. Уделено внимание кодированию десятичных чисел и десятичной машинной арифметике, а также системам счисления в остаточных классах. Далее рассматриваются принципы построения устройств ЭВМ — концепция операционного и управляющего автоматов, подходы к их синтезу. Рассмотрены управляющие автоматы с жесткой и программируемой логикой. Отдельная глава посвящена организации многоуровневой памяти ЭВМ, вопросам взаимодействия устройств памяти разных уровней. (Страница9) Часть II посвящена обсуждению базовой архитектуры систем на основе микропроцессоров х86. Кроме внутренней структуры микропроцессора и его интерфейса рассматривается организация ввода/вывода, прерываний, прямого доступа в память. Кратко рассмотрена эволюция архитектуры процессоров семейства х86. Часть III включает лабораторный практикум и курсовое проектирование. В лабораторном практикуме описывается структура и система команд разработанной под руководством автора программной модели учебной ЭВМ (прилагается компакт-диск с моделью) и предлагается к выполнению ряд работ с этой моделью. Для каждой работы сформулирована цель, индивидуальные задания, требования к оформлению отчета и контрольные вопросы; для некоторых заданий приведены примеры выполнения. Содержанием курсовой работы является разработка арифметико-логического устройства, реализующего заданный набор операций с учетом ограничений на код выполнения операций и способ построения управляющего автомата. Сформулированы индивидуальные задания, определены этапы выполнения работы и содержание пояснительной записки. Автор выражает искреннюю признательность заведующему кафедрой системного программирования СПбГУ профессору, докт. физ.-мат. наук А. Н. Терехову и доценту, канд. физ.-мат. наук В. А. Костину за ценные замечания, сделанные при рецензировании книги.
|