Об авторе
Предисловие
Глава 1. Предисловие
Многоуровневая компьютерная организация
Языки, уровни и виртуальные машины
Современные многоуровневые машины
Развитие многоуровневых машин
Развитие компьютерной архитектуры
Нулевое поколение — механические компьютеры (1642–1945)
Первое поколение — электронные лампы (1945–1955)
Второе поколение — транзисторы (1955–1965)
Третье поколение — интегральные схемы (1965–1980)
Четвертое поколение — сверхбольшие интегральные схемы (1980–?)
Типы компьютеров
Технологические и экономические аспекты
Широкий спектр компьютеров
Семейства компьютеров
Pentium II
UltraSPARC II
PicoJava II
Краткое содержание книги
Вопросы и задания
Глава 2. Организация компьютерных систем
Процессоры
Устройство центрального процессора
Выполнение команд
RISC и CISC
Принципы разработки современных компьютеров
Параллелизм на уровне команд
Параллелизм на уровне процессоров
Основная память
Бит
Адреса памяти
Упорядочение байтов
Код с исправлением ошибок
Кэш-память
Сборка модулей памяти и их типы
Вспомогательная память
Иерархическая структура памяти
Магнитные диски
Дискеты
Диски IDE
SCSI-диски
RAID-массивы
Компакт-диски
CD-R
CD-RW
DVD
Процесс ввода-вывода
Шины
Терминалы
Мыши
Принтеры
Модемы
Коды символов
Краткое содержание главы
Вопросы и задания
Глава 3. Цифровой логический уровень
Вентили и булева алгебра
Вентили
Булева алгебра
Реализация булевых функций
Эквивалентность схем
Основные цифровые логические схемы
Интегральные схемы
Комбинационные схемы
Арифметические схемы
Тактовые генераторы
Память
Защелки
Триггеры (flip-flops)
Регистры
Организация памяти
Микросхемы памяти
ОЗУ и ПЗУ
Микросхемы процессоров и шины
Микросхемы процессоров
Шины
Ширина шины
Синхронизация шины
Арбитраж шины
Принципы работы шины
Примеры центральных процессоров
Pentium II
UltraSPARC II
PicoJava II
Примеры шин
Шина ISA
Шина PCI
Шина USB
Средства сопряжения
Микросхемы ввода-вывода
Декодирование адреса
Краткое содержание главы
Вопросы и задания
Глава 4. Микроархитектурный уровень
Пример микроархитектуры
Тракт данных
Микрокоманды
Управление микрокомандами: Mic-1
Пример архитектуры команд: IJVM
Стек
Модель памяти IJVM
Набор команд IJVM
Компиляция Java для IJVM
Пример реализации микроархитектуры
Микрокоманды и их запись
Реализация IJVM с использованием Mic-1
Разработка микроархитектурного уровня
Скорость и стоимость
Сокращение длины пути
Микроархитектура с упреждающей выборкой команд из памяти: Mic-2
Конвейерная архитектура: Mic-3
Конвейер с 7 стадиями: Mic-4
Увеличение производительности
Кэш-память
Прогнозирование ветвления
Исполнение с изменением последовательности и подмена регистров
Спекулятивное выполнение
Примеры микроархитектурного уровня
Микроархитектура процессора Pentium II
Микроархитектура процессора UltraSPARC II
Микроархитектура процессора picoJava II
Сравнение Pentium, UltraSPARC и picoJava
Краткое содержание главы
Вопросы и задания
Глава 5. Уровень архитектуры команд
Общий обзор уровня архитектуры команд
Свойства уровня команд
Модели памяти
Регистры
Команды
Общий обзор уровня команд машины Pentium II
Общий обзор уровня команд системы UltraSPARC II
Общий обзор виртуальной машины Java
Типы данных
Числовые типы данных
Нечисловые типы данных
Типы данных процессора Pentium II
Типы данных машины UltraSPARC II
Типы данных виртуальной машины Java
Форматы команд
Критерии разработки для форматов команд
Расширение кода операций
Форматы команд процессора Pentium II
Форматы команд процессора UltraSPARC II
Форматы команд JVM
Адресация
Способы адресации
Непосредственная адресация
Прямая адресация
Регистровая адресация
Косвенная регистровая адресация
Индексная адресация
Относительная индексная адресация
Стековая адресация
Способы адресации для команд перехода
Ортогональность кодов операций и способов адресации
Способы адресации процессора Pentium II
Способы адресации процессора UltraSPARC II
Способы адресации машины JVM
Сравнение способов адресации
Типы команд
Команды перемещения данных
Бинарные операции
Унарные операции
Сравнения и условные переходы
Команды вызова процедур
Управление циклом
Команды ввода-вывода
Команды процессора Pentium II
Команды UltraSPARC II
Команды компьютера picoJava II
Сравнение наборов команд
Поток управления
Последовательный поток управления и переходы
Процедуры
Сопрограммы
Ловушки
Прерывания
Ханойская башня
Решение задачи «Ханойская башня» на ассемблере Pentium II
Решение задачи «Ханойская башня» на ассемблере UltraSPARC II
Решение задачи «Ханойская башня» на ассемблере для JVM
Intel IA-64
Проблема с Pentium II
Модель IA-64: открытое параллельное выполнение команд
Предикация
Спекулятивная загрузка
Проверка в реальных условиях
Краткое содержание главы
Вопросы и задания
Глава 6. Уровень операционной системы
Виртуальная память
Страничная организация памяти
Реализация страничной организации памяти
Вызов страниц по требованию и рабочее множество
Политика замещения страниц
Размер страниц и фрагментация
Сегментация
Как реализуется сегментация
Виртуальная память в процессоре Pentium II
Виртуальная память UltraSPARC II
Виртуальная память и кэширование
Виртуальные команды ввода-вывода
Файлы
Реализация виртуальных команд ввода-вывода
Команды управления директориями
Виртуальные команды для параллельной обработки
Формирование процесса
Состояние гонок
Синхронизация процесса с использованием семафоров
Примеры операционных систем
Введение
Примеры виртуальной памяти
Примеры виртуального ввода-вывода
Примеры управления процессами
Краткое содержание главы
Вопросы и задания
Глава 7. Уровень языка ассемблера
Введение в язык ассемблера
Что такое язык ассемблера?
Зачем нужен язык ассемблера?
Формат оператора в языке ассемблера
Директивы
Макросы
Макроопределение, макровызов и макрорасширение
Макросы с параметрами
Расширенные возможности
Реализация макросредств в ассемблере
Процесс ассемблирования
Двухпроходной ассемблер
Первый проход
Второй проход
Таблица символов
Связывание и загрузка
Задачи компоновщика
Структура объектного модуля
Время принятия решения и динамическое перераспределение памяти
Динамическое связывание
Краткое содержание главы
Вопросы и задания
Глава 8. Архитектуры компьютеров параллельного действия
Вопросы разработки компьютеров параллельного действия
Информационные модели
Сети межсоединений
Производительность
Метрика программного обеспечения
Программное обеспечение
Классификация компьютеров параллельного действия
Компьютеры SIMD
Массивно-параллельные процессоры
Векторные процессоры
Мультипроцессоры с памятью совместного использования
Семантика памяти
Архитектуры UMA SMP с шинной организацией
Мультипроцессоры UMA с координатными коммутаторами
Мультипроцессоры UMA с многоступенчатыми сетями
Мультипроцессоры NUMA
Мультипроцессоры CC-NUMA
Мультипроцессоры COMA
Мультикомпьютеры с передачей сообщений
MPP — процессоры с массовым параллелизмом
COW — Clusters of Workstations (кластеры рабочих станций)
Планирование
Связное программное обеспечение для мультикомпьютеров
Совместно используемая память на прикладном уровне
Краткое содержание главы
Вопросы и задания
Глава 9. Библиография
Литература для дальнейшего чтения
Организация компьютерных систем
Цифровой логический уровень
Микроархитектурный уровень
Уровень команд
Уровень операционной системы
Уровень языка ассемблера
Архитектуры компьютеров параллельного действия
Двоичные числа и числа с плавающей точкой
Алфавитный список литературы
Приложение А. Двоичные числа
Числа конечной точности
Позиционные системы счисления
Преобразование чисел из одной системы счисления в другую
Отрицательные двоичные числа
Двоичная арифметика
Вопросы и задания
Приложение Б. Числа с плавающей точкой
Принципы представления с плавающей точкой
Стандарт IEEE 754
Вопросы и задания
Алфавитный указатель