Организация ЭВМ. К. Хамахер, З. Вранешич, С. Заки

  Очередное издание книги всемирно известных авторов отражает их богатый опыт преподавания курса «Организация ЭВМ» в Университете г. Торонто. В книге на конкретных примерах современных устройств подробно описана архитектура компьютеров и строение их компонентов: процессоров, блоков памяти, устройств ввода-вывода. Аппаратные средства рассматриваются с учетом их взаимодействия с системным программным обеспечением. Большое внимание уделено современным компьютерным технологиям, новым стандартам памяти, а также компьютерным системам на базе встроенных процессоров и мультипроцессорным системам параллельного действия. Отдельная глава посвящена машинным кодам и языку ассемблера.
  Книга может быть рекомендована как учебное пособие для студентов, обучающихся по направлению «Информатика и вычислительная техника», а также всем, кто интересуется устройством современных компьютеров.

                              5-е изд. - СПб.: Питер, 2003. — 848 с. 

Формат: pdf / zip
Размер:  9,67 Мб
Скачать учебник:  http://depositfiles.com/files/n9eugm9tn


 

СОДЕРЖАНИЕ
Об авторах
Предисловие
Глава 1. Базовая структура компьютеров
1.1. Типы компьютеров
1.2. Функциональная структура компьютера
1.2.1. Устройство ввода
1.2.2. Блок памяти
1.2.3. Арифметико-логическое устройство
1.2.4. Блок вывода
1.2.5. Блок управления
1.3. Основные концепции функционирования
1.4. Структура шины
1.5. Программное обеспечение
1.6. Производительность
1.6.1. Частота процессора
1.6.2. Основная формула вычисления производительности
1.6.3. Конвейерная и суперскалярная обработка
1.6.4. Тактовая частота
1.6.5. Система команд процессора
1.6.6. Компилятор
1.6.7. Оценка производительности
1.7. Мультипроцессорные и мультикомпьютерные системы
1.8. Историческая справка
1.8.1. Первое поколение
1.8.2. Второе поколение
1.8.3. Третье поколение
1.8.4. Четвертое поколение
1.8.5. После четвертого поколения
1.8.6. Эволюция производительности
1.9. Резюме
Упражнения
Глава 2. Машинные команды и программы
2.1. Числа, арифметические операции и символы
2.1.1. Представление чисел
2.1.2. Сложение положительных чисел
2.1.3. Сложение и вычитание чисел со знаком
2.1.4. Переполнение в целочисленной арифметике
2.1.5. Символы
2.2. Память и адреса
2.2.1. Байтовая адресация
2.2.2. Прямой и обратный порядок байтов
2.2.3. Расположение слов в памяти
2.2.4. Доступ к числам, символам и символьным строкам
2.3. Операции с памятью
2.4. Команды и последовательности команд
2.4.1. Нотация для описания операций с регистрами
2.4.2. Нотация языка ассемблера
2.4.3. Базовые типы команд
2.4.4. Выполнение команд и линейный код
2.4.5. Ветвление
2.4.6. Флаги кодов условий
2.4.7. Формирование адресов памяти
2.5. Режимы адресации
2.5.1. Реализация переменных и констант
2.5.2. Косвенная адресация и указатели
2.5.3. Индексация и массивы
2.5.4. Относительная адресация
2.5.5. Дополнительные режимы адресации
2.6. Язык ассемблера
2.6.1. Директивы ассемблера
2.6.2. Ассемблирование и выполнение программ
2.6.3. Запись чисел
2.7. Базовые операции ввода-вывода
2.8. Стеки и очереди
2.9. Подпрограммы
2.9.1. Вложенность подпрограмм и стек процессора
2.9.2. Передача параметров
2.9.3. Стековый фрейм
2.10. Дополнительные команды
2.10.1. Логические команды
2.10.2. Команды сдвига
2.10.3. Команды умножения и деления
2.11. Примеры программ
2.11.1. Программа вычисления скалярного произведения векторов
2.11.2. Программа выполнения сортировки байтов
2.11.3. Связные списки
2.12. Кодирование машинных команд
2.13. Резюме
Упражнения
Глава 3. Системы команд процессоров ARM, Motorola и Intel
Система команд процессоров ARM
3.1. Регистры, доступ к памяти и пересылка данных
3.1.1. Регистры
3.1.2. Команды доступа к памяти и режимы адресации
3.1.3. Регистровые команды пересылки
3.2. Арифметические и логические команды
3.2.1. Арифметические команды
3.2.2. Логические команды
3.3. Команды перехода
3.3.1. Установка кодов условий
3.3.2. Программа с циклом для сложения чисел
3.4. Язык ассемблера
3.4.1. Псевдокоманды
3.5. Команды ввода-вывода
3.6. Подпрограммы
3.7. Примеры программ
3.7.1. Программа для вычисления скалярного произведения двух векторов
3.7.2. Программа сортировки байтов
3.7.3. Подпрограммы для вставки и удаления элементов связного списка
Система команд процессора Motorola 68000
3.8. Регистры и адресация
3.8.1. Регистры процессора 68000
3.8.2. Адресация
3.9. Команды
3.10. Язык ассемблера
3.11. Управление потоком выполнения программы
3.11.1. Флаги кодов условий
3.11.2. Команды перехода
3.12. Операции ввода-вывода
3.13. Стеки и подпрограммы
3.14. Логические команды
3.15. Примеры программ
3.15.1. Программа для вычисления скалярного произведения двух векторов
3.15.2. Программа сортировки байтов
3.15.3. Подпрограммы вставки и удаления элементов связного списка
Система команд процессоров IA-32 Pentium
3.16. Регистры и адресация
3.16.1. Структура регистров процессоров IA-32
3.16.2. Режимы адресации
3.17. Команды IA-32
3.17.1. Формат машинных команд
3.18. Язык ассемблера IA-32
3.19. Управление потоком выполнения программы
3.19.1. Условные переходы и флаги кодов условий
3.19.2. Безусловный переход
3.20. Логические команды, команды сдвига и циклического сдвига
3.20.1. Логические операции
3.20.2. Операции сдвига и циклического сдвига
3.21. Операции ввода-вывода
3.21.1. Ввод-вывод с отображением в память
3.21.2. Изолированный ввод-вывод
3.21.3. Блочная пересылка
3.22. Подпрограммы
3.23. Другие команды
3.23.1. Команды умножения и деления
3.23.2. Команды мультимедийного расширения
3.23.3. Векторные команды
3.24. Примеры программ
3.24.1. Программа для вычисления скалярного произведения двух векторов
3.24.2. Программа сортировки байтов
3.24.3. Подпрограммы для вставки и удаления элементов связного списка
3.25. Резюме
Упражнения
Процессоры ARM
Процессор Motorola 68000
Процессоры Intel IA-32
Глава 4. Ввод-вывод
4.1. Доступ к устройствам ввода-вывода
4.2. Прерывания
4.2.1. Аппаратное обеспечение для поддержки прерываний
4.2.2. Запрет и разрешение прерываний
4.2.3. Обслуживание нескольких устройств
4.2.4. Управление запросами устройств
4.2.5. Исключения
4.2.6. Прерывания в операционных системах
4.3. Примеры обработки прерываний различными процессорами
4.3.1. Механизм прерываний процессора ARM
4.3.2. Механизм прерываний процессора 68000
4.3.3. Механизм прерываний процессора Pentium
4.4. Прямой доступ к памяти
4.4.1. Разрешение конфликтов на шине
4.5. Шины
4.5.1. Синхронная шина
4.5.2. Асинхронные шины
4.5.3. Заключительные замечания
4.6. Интерфейсные схемы
4.6.1. Параллельный порт
4.6.2. Последовательный порт
4.7. Стандартные интерфейсы ввода-вывода
4.7.1. Шина PCI
4.7.2. Шина SCSI
4.7.3. Шина USB
4.8. Резюме
Упражнения
Глава 5. Система памяти
5.1. Базовые концепции
5.2. Полупроводниковая RAM-память
5.2.1. Организация микросхем памяти
5.2.2. Статическая память
5.2.3. Асинхронная динамическая память
5.2.4. Синхронная DRAM
5.2.5. Структура памяти большого объема
5.2.6. Замечания относительно системы памяти
5.2.7. Память Rambus
5.3. Память, доступная только для чтения
5.3.1. ROM
5.3.2. PROM
5.3.3. EPROM
5.3.4. EEPROM
5.3.5. Флэш-память
5.4. Быстродействие, объем и стоимость
5.5. Кэш-память
5.5.1. Функция отображения
5.5.2. Алгоритмы замещения
5.5.3. Примеры технологий отображения
5.5.4. Организация кэша в коммерческих процессорах
5.6. Производительность
5.6.1. Чередование операций
5.6.2. Частота попаданий и накладные расходы при промахах
5.6.3. Кэши на микросхеме процессора
5.6.4. Другие способы увеличения быстродействия
5.7. Виртуальная память
5.7.1. Преобразование адресов
5.8. Требования к управлению памятью
5.9. Внешние запоминающие устройства
5.9.1. Жесткие магнитные диски
5.9.2. Оптические диски
5.9.3. Накопители на магнитных лентах
5.10. Резюме
Упражнения
Глава 6. Арифметика
6.1. Сложение и вычитание чисел со знаком
6.1.1. Логический блок сложения/вычитания
6.2. Архитектура быстродействующих сумматоров
6.2.1. Сложение с параллельным переносом
6.3. Умножение положительных чисел
6.4. Умножение чисел со знаком
6.4.1. Алгоритм Бута
6.5. Быстрое умножение
6.5.1. Перекодировка пар разрядов множителя
6.5.2. Сложение с сохранением переноса
6.6. Целочисленное деление
6.7. Обработка чисел с плавающей запятой
6.7.1. Стандарт IEEE для чисел с плавающей запятой
6.7.2. Арифметические операции над числами с плавающей запятой
6.7.3. Разряды защиты и усечение
6.7.4. Операции с плавающей запятой
6.8. Резюме
Упражнения
Глава 7. Процессор
7.1. Базовые концепции
7.1.1. Пересылка данных между регистрами
7.1.2. Выполнение арифметической или логической операции
7.1.3. Выборка слова из памяти
7.1.4. Сохранение слова в памяти
7.2. Выполнение всей команды
7.2.1. Команды перехода
7.3. Многошинная архитектура
7.4. Аппаратное управление
7.4.1. Структура процессора
7.5. Микропрограммное управление
7.5.1. Микрокоманды
7.5.2. Управление выполнением микропрограмм
7.5.3. Адресация с сильным ветвлением
7.5.4. Микрокоманды с полем следующего адреса
7.5.5. Упреждающая выборка микрокоманд
7.5.6. Эмуляция
7.6. Резюме
Упражнения
Глава 8. Конвейерная обработка команд
8.1. Базовые концепции
8.1.1. Роль кэш-памяти
8.1.2. Производительность конвейерной обработки команд
8.2. Конфликты по данным
8.2.1. Продвижение операндов
8.2.2. Программная обработка конфликтов по данным
8.2.3. Побочные эффекты
8.3. Конфликты по управлению
8.3.1. Безусловный переход
8.3.2. Условные переходы и предсказание переходов
8.4. Конвейерная обработка и система команд
8.4.1. Режимы адресации
8.4.2. Коды условий
8.5. Тракты данных и управление
8.6. Суперскалярная обработка команд
8.6.1. Внеочередное завершение команд
8.6.2. Завершение выполнения
8.6.3. Операция диспетчеризации
8.7. Процессор UltraSPARC II
8.7.1. Архитектура SPARC
8.7.2. UltraSPARC II
8.7.3. Структура конвейера
8.8. Производительность
8.8.1. Конфликты по управлению
8.8.2. Количество ступеней конвейера
8.9. Резюме
Упражнения
Глава 9. Встроенные системы
9.1. Примеры встроенных систем
9.1.1. Микроволновая печь
9.1.2. Цифровой фотоаппарат
9.1.3. Домашняя телеметрия
9.2. Процессорные микросхемы для встроенных систем
9.3. Простой микроконтроллер
9.3.1. Параллельные порты ввода-вывода
9.3.2. Последовательный интерфейс
9.3.3. Счетчик/таймер
9.3.4. Механизм управления прерываниями
9.4. Программирование
9.4.1. Использование опроса
9.4.2. Использование прерываний
9.5. Временные ограничения устройств ввода-вывода
9.5.1. Программа на языке С для пересылки символов с использованием циклического буфера
9.5.2. Программа на языке ассемблера для пересылки символов с использованием циклического буфера
9.6. Таймер реакции
9.6.1. Программа для таймера реакции на языке C
9.6.2. Программа для таймера реакции на языке ассемблера
9.7. Семейства встраиваемых процессоров
9.7.1. Микроконтроллеры на основе процессоров Intel 8051
9.7.2. Микроконтроллеры компании Motorola
9.7.3. Микроконтроллеры ARM
9.8. Особенности разработки микроконтроллеров
9.9. Система на одной микросхеме
9.9.1. Контроллеры на основе микросхем FPGA
9.10. Резюме
Упражнения
Глава 10. Периферийные устройства
10.1. Устройства ввода
10.1.1. Клавиатура
10.1.2. Мышь
10.1.3. Трекбол, джойстик и сенсорная панель
10.1.4. Сканеры
10.2. Устройства вывода
10.2.1. Дисплеи
10.2.2. Плоскопанельные дисплеи
10.2.3. Принтеры
10.2.4. Графические акселераторы
10.3. Последовательные коммуникационные соединения
10.3.1. Асинхронная передача
10.3.2. Синхронная передача
10.3.3. Стандартные коммуникационные интерфейсы
10.4. Резюме
Упражнения
Глава 11. Семейства процессоров
11.1. Семейство процессоров ARM
11.1.1. Система команд Thumb
11.1.2. Ядра процессоров
11.2. Семейство процессоров Motorola 680X0 и ColdFire
11.2.1. Процессор 68020
11.2.2. Процессоры 68030 и 68040
11.2.3. Процессор 68060
11.2.4. Семейство процессоров ColdFire
11.3. Семейство процессоров Intel IA-32
11.3.1. Сегментация памяти для семейства процессоров IA-32
11.3.2. 16-разрядный режим
11.3.3. Процессоры 80386 и 80486
11.3.4. Процессор Pentium
11.3.5. Процессор Pentium Pro
11.3.6. Процессоры Pentium II и Pentium III
11.3.7. Процессор Pentium 4
11.3.8. Процессоры Advanced Micro Devices IA-32
11.4. Семейство процессоров PowerPC
11.4.1. Набор регистров
11.4.2. Режимы адресации памяти
11.4.3. Команды
11.4.4. Процессоры PowerPC
11.5. Семейство процессоров SPARC компании Sun Microsystems
11.6. Семейство процессоров Compaq Alpha
11.6.1. Форматы команд и режимы адресации
11.6.2. Процессор Alpha 21064
11.6.3. Процессор Alpha 21164
11.6.4. Процессор Alpha 21264
11.7. Семейство процессоров Intel IA-64
11.7.1. Блоки команд
11.7.2. Условное выполнение
11.7.3. Упреждающая загрузка
11.7.4. Регистры и стек регистров
11.7.5. Процессор Itanium
11.8. Стековый процессор
11.8.1. Структура стека
11.8.2. Стековые команды
11.8.3. Аппаратные регистры в стеке
11.9. Резюме
Упражнения
Глава 12. Большие компьютерные системы
12.1. Виды параллельной обработки
12.1.1. Классификация систем параллельной обработки
12.2. Матричная обработка данных
12.3. Архитектура мультипроцессорных систем общего назначения
12.4. Коммуникационные сети
12.4.1. Общая шина
12.4.2. Сети с координатной коммутацией
12.4.3. Многоступенчатые сети
12.4.4. Сети с топологией гиперкуба
12.4.5. Сети с ячеистой топологией
12.4.6. Сети с древовидной топологией
12.4.7. Сеть с кольцевой топологией
12.4.8. Практические рекомендации
12.4.9. Сети смешанной топологии
12.4.10. Симметричные мультипроцессорные системы
12.5. Организация памяти в мультипроцессорных системах
12.6. Программный параллелизм и общие переменные
12.6.1. Доступ к общим переменным
12.6.2. Согласованность кэша
12.6.3. Блокировка и согласованность кэш-памяти
12.7. Мультикомпьютерные системы
12.7.1. Локальные сети
12.7.2. Протокол Ethernet
12.7.3. Протокол Token Ring
12.7.4. Сеть рабочих станций
12.8. Общая память и передача сообщений
12.8.1. Система с общей памятью
12.8.2. Система с передачей сообщений
12.9. Производительность мультипроцессорных систем
12.9.1. Закон Амдала
12.9.2. Показатели производительности
12.10. Резюме
Упражнения
Приложение А. Логические схемы
А.1. Базовые логические функции
А.1.1. Электронные логические вентили
А.2. Объединение логических функций
А.3. Минимизация логических выражений
А.3.1. Минимизация функций с использованием карты Карно
А.3.2. Безразличные значения
А.4. Синтез вентилей И-НЕ и ИЛИ-НЕ
А.5. Практическая реализация логических вентилей
А.5.1. Схемы КМОП
А.5.2. Задержка на распространение сигнала
А.5.3. Ограничения по входу и выходу
А.5.4. Буферы с тремя состояниями
А.5.5. Модули интегральных микросхем
А.6. Триггеры
А.6.1. Вентильные защелки
А.6.2. Двухступенчатые триггеры
А.6.3. Тактирование фронтом сигнала
А.6.4. T-триггеры
А.6.5. JK-триггеры
А.6.6. Триггеры с дополнительными входами для установки и очистки
А.7. Регистры и сдвиговые регистры
А.8. Счетчики
А.9. Дешифраторы
А.10. Мультиплексоры
А.11. Программируемые логические устройства
А.11.1. Программируемая логическая матрица
А.11.2. Программируемая матричная логика
А.11.3. Сложные программируемые логические устройства
А.12. Программируемые вентильные матрицы
А.13. Последовательные схемы
А.13.1. Пример счетчика с прямым/обратным счетом
А.13.2. Временные диаграммы
А.13.3. Модель конечного автомата
А.13.4. Синтез конечных автоматов
А.14. Резюме
Упражнения
Приложение Б. Система команд процессора ARM
Б.1. Кодирование команд
Б.1.1. Арифметические и логические команды
Б.1.2. Команды загрузки данных из памяти и их сохранения в памяти
Б.1.3. Команды блочной загрузки и сохранения
Б.1.4. Команды перехода и перехода со связыванием
Б.1.5. Команды управления компьютером
Б.2. Другие команды ARM
Б.2.1. Команды сопроцессора
Б.2.2. Команды версий v4 и v5
Б.3. Программирование
Приложение В. Система команд процессора Motorola 68000
Адресация и коды операций
Приложение Г. Система команд процессоров IA-32
Г.1. Кодирование команд
Г.1.1. Режимы адресации
Г.2. Основные команды
Г.2.1. Команды условного перехода
Г.2.2. Команды безусловного перехода
Г.3. Префиксные байты
Г.4. Дополнительные команды
Г.4.1. Команды обработки строк
Г.4.2. Команды с плавающей запятой, MMX и SSE
Г.5. Обработка 16-разрядных адресов и данных
Г.6. Программирование
Приложение Д. Коды символов и преобразование чисел
Д.1. Коды символов
Д.2. Десятично-двоичное преобразование
Алфавитный указатель