|
Содержание Об авторе 14 Предисловие 15 Глава 1. Предисловие 18 Многоуровневая компьютерная организация 18 Языки, уровни и виртуальные машины 19 Современные многоуровневые машины 21 Развитие многоуровневых машин 24 Развитие компьютерной архитектуры 29 Нулевое поколение — механические компьютеры (1642-1945) 29 Первое поколение —электронные лампы (1945-1955) ;.... 32 Второе поколение - транзисторы (1955-1965) 35 Третье поколение — интегральные схемы (1965-1980) 37 Четвертое поколение - сверхбольшие интегральные схемы (1980-?) 39 Типы компьютеров 40 Технологические и экономические аспекты 41 Широкий спектр компьютеров 42 Семейства компьютеров 45 Pentium II 45 UltraSPARC II 48 PicoJavall 50 Краткое содержание книги 52 Вопросы и задания 54 Глава 2. Организация компьютерных систем 56 Процессоры 56 Устройство центрального процессора 57 Выполнение команд 58 RISC и CISC 62 Принципы разработки современных компьютеров 64 Параллелизм на уровне команд 65 Параллелизм на уровне процессоров 69 Основная память 73 Бит 73 Адреса памяти 74 Упорядочение байтов 75 Код с исправлением ошибок Кэш-память 81 Сборка модулей памяти и их типы 84 Вспомогательная память 85 Иерархическая структура памяти 85 Магнитные диски 87 Дискеты 90 Диски IDE 91 SCSI-диски 92 RAID-массивы 93 Компакт-диски 98 CD-R 102 CD-RW 105 DVD 105 Процесс ввода-вывода 108 Шины 108 Терминалы 111 Мыши 119 Принтеры 121 Модемы 126 Коды символов 129 Краткое содержание главы 133 Вопросы и задания 134 Глава 3. Цифровой логический уровень. 139 Вентили и булева алгебра 139 Вентили 139 Булева алгебра 142 Реализация булевых функций 144 Эквивалентность схем 145 Основные цифровые логические схемы 149 Интегральные схемы 149 Комбинационные схемы 151 Арифметические схемы 157 Тактовые генераторы 161 Память 163 Защелки 163 Триггеры (flip-flops) 165 Регистры 168 Организация памяти 168 Микросхемы памяти 172 ОЗУ и ПЗУ 174 Микросхемы процессоров и шины 177 Микросхемы процессоров 177 Шины 179 Ширина шины 182 Синхронизация шины 183 Арбитраж шины 188 Принципы работы шины 191 Примеры центральных процессоров 193 Pentium II 193 UltraSPARC II 200 PicoJavall 203 Примеры шин 205 Шина ISA 206 Шина PCI 207 Шина USB 215 Средства сопряжения 219 Микросхемы ввода-вывода 219 Декодирование адреса 220 Краткое содержание главы 223 Вопросы и задания 224 Глава 4. Микроархитектурный уровень 230 Пример микроархитектуры 230 Тракт данных 231 Микрокоманды 237 Управление микрокомандами: Mic-1 240 Пример архитектуры команд: IJVM 244 Стек 245 Модель памяти IJVM 247 Набор команд IJVM 248 Компиляция Java для IJVM 252 Пример реализации микроархитектуры 254 Микрокоманды и их запись. 254 Реализация IJVM с использованием Mic-1 258 Разработка микроархитектурного уровня 271 Скорость и стоимость 271 Сокращение длины пути 274 Микроархитектура с упреждающей выборкой команд из памяти: Mic-2 280 Конвейерная архитектура: Mtc-З 284 Конвейер с 7 стадиями: Mic-4 290 Увеличение производительности 293 Кэш-память 294 Прогнозирование ветвления 300 Исполнение с изменением последовательности и подмена регистров 306 Спекулятивное выполнение 311 Примеры микроархитектурного уровня 314 Микроархитектура процессора Pentium II 314 Микроархитектура процессора UltraSPARC II 319 Микроархитектура процессора picoJava II 322 Сравнение Pentium, UltraSPARC и picoJava 327 Краткое содержание главы 329 Вопросы и задания 330 Глава 5. Уровень архитектуры команд 334 Общий обзор уровня архитектуры команд 336 Свойства уровня команд 336 Модели памяти 338 Регистры 340 Команды 342 Общий обзор уровня команд машины Pentium II 342 Общий обзор уровня команд системы UltraSPARC II 345 Общий обзор виртуальной машины Java 348 Типы данных 349 Числовые типы данных 350 Нечисловые типы данных 351 Типы данных процессора Pentium II 351 Типы данных машины UltraSPARC II 352 Типы данных виртуальной машины Java 352 Форматы команд 353 Критерии разработки для форматов команд 354 Расширение кода операций 356 Форматы команд процессора Pentium II 358 Форматы команд процессора UltraSPARC II 360 Форматы командЛУМ 361 Адресация 364 Способы адресации 365 Непосредственная адресация 365 Прямая адресация 366 Регистровая адресация 366 Косвенная регистровая адресация 366 Индексная адресация 367 Относительная индексная адресация 369 Стековая адресация 369 Способы адресации для команд перехода 372 Ортогональность кодов операций и способов адресации 373 Способы адресации процессора Pentium II 375 Способы адресации процессора UltraSPARC II 377 Способы адресации машины JVM 377 Сравнение способов адресации 378 Типы команд 379 Команды перемещения данных 379 Бинарные операции 380 Унарные операции 381 Сравнения и условные переходы 383 Команды вызова процедур 385 Управление циклом 385 Команды ввода-вывода 386 Команды процессора Pentium И 390 Команды UltraSPARC II 394 Команды компьютера picoJava II 397 Сравнение наборов команд 403 Поток управления 404 Последовательный поток управления и переходы 404 Процедуры 405 Сопрограмм ы 410 Ловушки 412 Прерывания 413 Ханойская башня 417 Решение задачи «Ханойская башня» на ассемблере Pentium II 418 Решение задачи «Ханойская башня» на ассемблере UltraSPARC II 419 Решение задачи «Ханойская башня» на ассемблере для JVM 421 Intel IA-64. 423 Проблема с Pentium II 423 Модель IA-64: открытое параллельное выполнение команд 425 Предикация 426 Спекулятивная загрузка 429 Проверка в реальных условиях 430 Краткое содержание главы 430 Вопросы и задания 431 Глава 6. Уровень операционной системы 437 Виртуальная память 438 Страничная организация памяти 439 Реализация страничной организации памяти 441 Вызов страниц по требованию и рабочее множество 444 Политика замещения страниц 445 Размер страниц и фрагментация 448 Сегментация 449 Как реализуется сегментация 452 Виртуальная память в процессоре Pentium II 455 Виртуальная память UltraSPARC II 460 Виртуальная память и кэширование 463 Виртуальные команды ввода-вывода 463 Файлы 464 Реализация виртуальных команд ввода-вывода 465 Команды управления директориями 469 Виртуальные команды для параллельной обработки 470 Формирование процесса 471 Состояние гонок 472 Синхронизация процесса с использованием семафоров 476 Примеры операционных систем 479 Введение 480 Примеры виртуальной памяти 489 Примеры виртуального ввода-вывода 493 Примеры управления процессами 504 Краткое содержание главы 510 Вопросы и задания 511 Глава 7. Уровень языка ассемблера 517 Введение в язык ассемблера 518 Что такое язык ассемблера? 518 Зачем нужен язык ассемблера? 519 Формат оператора в языке ассемблера 521 Директивы 524 Макросы 527 Макроопределение, макровызов и макрорасширение 527 Макросы с параметрами 529 Расширенные возможности 530 Реализация макросредств в ассемблере 530 Процесс ассемблирования 531 Двухпроходной ассемблер 531 Первый проход 532 Второй проход 536 Таблица символов 537 Связывание и загрузка 538 Задачи компоновщика 540 Структура объектного модуля 543 Время принятия решения и динамическое перераспределение памяти 545 Динамическое связывание 547 Краткое содержание главы 551 Вопросы и задания 552 Глава 8. Архитектуры компьютеров параллельного действия 556 Вопросы разработки компьютеров параллельного действия 557 Информационные модели 559 Сети межсоединений 564 Производительность 572 Метрика программного обеспечения 574 Программное обеспечение 579 Классификация компьютеров параллельного действия 584 Компьютеры SIMD 587 Массивно-параллельные процессоры 587 Векторные процессоры 588 Мультипроцессоры с памятью совместного использования 592 Семантика памяти 593 Архитектуры UMASMP с шинной организацией 597 Мультипроцессоры UMA с координатными коммутаторами 603 Мультипроцессоры UMAc многоступенчатыми сетями 605 Мультипроцессоры NUMA 607 Мультипроцессоры CC-NUMA 609 Мультипроцессоры СОМА 619 Мультикомпьютеры с передачей сообщений 621 МРР — процессоры с массовым параллелизмом 622 COW - Clusters of Workstations {кластеры рабочих станций) 626 Планирование 627 Связное программное обеспечение для мультикомпьютеров 632 Совместно используемая память на прикладном уровне 635 Краткое содержание главы 642 Вопросы и задания 643 Глава 9. Библиография 647 Литература для дальнейшего чтения 647 Организация компьютерных систем 648 Цифровой логический уровень 649 Микроархитектурный уровень 649 Уровень команд 650 Уровень операционной системы 651 Уровень языка ассемблера 652 Архитектуры компьютеров параллельного действия 652 Двоичные числа и числа с плавающей точкой 653 Алфавитный список литературы 654 Приложение А. Двоичные числа 665 Числа конечной точности 665 Позиционные системы счисления 667 Преобразование чисел из одной системы счисления в другую 669 Отрицательные двоичные числа 670 Двоичная арифметика 673 Вопросы и задания 674 Приложение Б. Числа с плавающей точкой 676 Принципы представления с плавающей точкой 676 Стандарт IEEE 754 680 Вопросы и задания 683 Алфавитный указатель 685
|