|
Архитектура компьютера. Э. Таненбаум Э. Таненбаум 5-е изд. - СПб.: Питер, 2007. — 844 с. Книга Эндрю Таненбаума, всемирно известного специалиста в области информационных технологий, писателя и преподавателя, выходящая уже в пятом издании, посвящена структурной организации компьютера. В ее основе лежит идея иерархической структуры, в которой каждый уровень выполняет вполне определенную функцию. В рамках этого нетрадиционного подхода подробно описываются цифровой логический уровень, уровень архитектуры команд, уровень операционной системы и уровень языка ассемблера. Книга рассчитана на широкий круг читателей: как на студентов, изучающих компьютерные технологии, так и на тех, кто самостоятельно знакомится с архитектурой компьютера. Прилагаемый к изданию диск CD-ROM упакован в специальный целлофановый конверт и вложен внутрь книги. Содержание От издателя перевода 16 Глава 1. Введение 17 Многоуровневая компьютерная организация 17 Языки, уровни и виртуальные машины 17 Современные многоуровневые машины 20 Развитие многоуровневых машин 23 Развитие компьютерной архитектуры 28 Нулевое поколение — механические компьютеры (1642-1945) 30 Первое поколение — электронные лампы (1945-1955) 32 Второе поколение — транзисторы (1955-1965) 35 Третье поколение — интегральные схемы (1965-1980) 37 Четвертое поколение — сверхбольшие интегральные схемы (1980-?) 39 Пятое поколение — невидимые компьютеры 41 Типы компьютеров 42 Технологические и экономические аспекты 42 Широкий спектр компьютеров 44 Одноразовые компьютеры 45 Микроконтроллеры 47 Игровые компьютеры 49 Персональные компьютеры 50 Серверы 52 Комплексы рабочих станций 52 Мэйнфреймы 52 Семейства компьютеров 53 Pentium 4 54 Знакомство с микросхемой UltraSPARC III 59 Знакомство с микросхемой 8051 61 Единицы измерения 64 Краткое содержание книги 65 Вопросы и задания 66 Глава 2. Организация компьютерных систем 69 Процессоры 69 Устройство центрального процессора 70 Выполнение команд 71 Системы RISC и CISC 75 Принципы разработки современных компьютеров 77 Параллелизм на уровне команд 78 Параллелизм на уровне процессоров 83 Основная память 87 Бит 87 Адреса памяти 88 Упорядочение байтов 89 Код исправления ошибок 91 Кэш-память 95 Сборка модулей памяти и их типы 98 Вспомогательная память 99 Иерархическая структура памяти 100 Магнитные диски 101 Дискеты 105 IDE-диски 105 SCSI-диски 107 RAID-массивы 109 Диски CD-ROM 113 Диски CD-R 117 Диски CD-RW 120 DVD-диски 120 Диски Blu-Ray 123 Ввод-вывод 123 Шины 123 Терминалы 127 Видеопамять 131 Мыши 132 Принтеры 134 Телекоммуникационное оборудование 140 Цифровые фотокамеры 149 Коды символов 151 Краткое содержание главы 155 Вопросы и задания 156 Глава 3. Цифровой логический уровень 161 Вентили и булева алгебра 161 Вентили 161 Булева алгебра 164 Реализация булевых функций 166 Эквивалентность схем 168 Основные цифровые логические схемы 171 Интегральные схемы 171 Комбинаторные схемы 173 Арифметические схемы 179 Тактовые генераторы 183 Память 185 Защелки 185 Триггеры 187 Регистры 190 Организация памяти 190 Микросхемы памяти 194 ОЗУ и ПЗУ 197 Микросхемы процессоров и шины 200 Микросхемы процессоров 201 Компьютерные шины 203 Ширина шины 205 Синхронизация шины 207 Арбитраж шины 212 Принципы работы шины 215 Примеры центральных процессоров 217 Pentium 4 217 UltraSPARC III 225 8051 229 Примеры шин 231 Шина ISA 232 Шина PCI 234 PCI Express 243 Шина USB 248 Интерфейсы 252 Микросхемы ввода-вывода 252 Декодирование адреса 254 Краткое содержание главы 257 Вопросы и задания 257 Глава 4. Уровень микроархитектуры 263 Пример микроархитектуры 263 Тракт данных 264 Микрокоманды 270 Управление микрокомандами — микроархитектура Mic-1 273 Пример архитектуры набора команд —IJVM 278 Стек 278 Модель памяти IJVM 280 Набор IJVM-команд 281 Компиляция IJVM 286 Пример реализации микроархитектуры 287 Микрокоманды и их запись 288 Реализация IJVM с использованием микроархитектуры Mic-1 292 Разработка уровня микроархитектуры 306 Быстродействие и стоимость 306 Сокращение длины пути 308 Упреждающая выборка команд из памяти — микроархитектура Mic-2 315 Конвейерная конструкция — микроархитектура Mic-З 320 Семиступенчатый конвейер — микроархитектура Mic-4 326 Повышение производительности 329 Кэш-память 330 Прогнозирование ветвлений 336 Исполнение с изменением последовательности и подмена регистров 342 Спекулятивное исполнение 348 Примеры уровня микроархитектуры 351 Микроархитектура процессора Pentium 4 351 Микроархитектура процессора UltraSPARC III Си 357 Микроархитектура процессора 8051 364 Сравнение процессоров Pentium, UltraSPARC и 8051 366 Краткое содержание главы 367 Вопросы и задания 368 Глава 5. Уровень архитектуры набора команд 373 Общий обзор уровня архитектуры набора команд 375 Свойства уровня архитектуры набора команд 375 Модели памяти 377 Регистры 379 Команды 381 Общий обзор уровня архитектуры набора команд Pentium 4 381 Общий обзор уровня архитектуры набора команд UltraSPARC III 384 Обзор уровня архитектуры набора команд микросхемы 8051 387 Типы данных 390 Числовые типы данных 391 Нечисловые типы данных 392 Типы данных процессора Pentium 4 393 Типы данных машины UltraSPARC III 393 Типы данных 8051 394 Форматы команд 394 Критерии разработки форматов команд 395 Расширение кода операций 398 Форматы команд процессора Pentium 4 400 Форматы команд процессора UltraSPARC III 402 Форматы команд 8051 403 Адресация 404 Режимы адресации 404 Непосредственная адресация 405 Прямая адресация 405 Регистровая адресация 405 Косвенная регистровая адресация 406 Индексная адресация 407 Относительная индексная адресация 408 Стековая адресация 409 Режимы адресации в командах перехода 412 Ортогональность кодов операций и режимов адресации 413 Режимы адресации процессора Pentium 4 415 Режимы адресации процессора UltraSPARC III 417 Режимы адресации процессора 8051 417 Сравнение режимов адресации 418 Типы команд 419 Команды перемещения данных 419 Бинарные операции 420 Унарные операции 421 Сравнения и условные переходы 423 Команды вызова процедур 425 Управление циклами 426 Команды ввода-вывода 427 Команды процессора Pentium 4 431 Команды UltraSPARC III 435 Команды 8051 439 Сравнение наборов команд 442 Поток управления 443 Последовательный поток управления и переходы 443 Процедуры 444 Сопрограммы 449 Перехват исключений 451 Прерывания 452 Ханойская башня 456 Решение задачи «Ханойская башня» на ассемблере Pentium 4 457 Решение задачи «Ханойская башня» на ассемблере UltraSPARC III 458 Архитектура IA-64 и процессор Itanium 2 460 Проблема Pentium 4 461 Модель IA-64 — вычисления с явным параллелизмом команд 462 Сокращение числа обращений к памяти 463 Планирование команд 464 Сокращение числа условных переходов — предикация 466 Спекулятивная загрузка 468 Краткое содержание главы 469 Вопросы и задания 470 Глава 6. Уровень операционной системы 475 Виртуальная память 476 Страничная организация памяти 477 Реализация страничной организации памяти 479 Вызов страниц по требованию и рабочее множество 482 Политика замещения страниц 483 Размер страниц и фрагментация 485 Сегментация 486 Реализация сегментации 489 Виртуальная память Pentium 4 492 Виртуальная память UltraSPARC III 497 Виртуальная память и кэширование 500 Виртуальные команды ввода-вывода 501 Файлы 502 Реализация виртуальных команд ввода-вывода 503 Команды управления каталогами 506 Виртуальные команды для параллельной работы 508 Формирование процесса 509 Состояние гонок 509 Синхронизация процесса с использованием семафоров 514 Примеры операционных систем 517 Знакомство с операционными системами UNIX и Windows XP 518 Примеры виртуальной памяти 527 Примеры виртуального ввода-вывода 531 Примеры управления процессами 543 Краткое содержание главы 549 Вопросы и задания 550 Глава 7. Уровень ассемблера 557 Знакомство с ассемблером 558 Понятие ассемблера 558 Назначение ассемблера 559 Формат оператора в ассемблере 561 Директивы 564 Макросы 567 Макроопределение, макровызов и макрорасширение 567 Макросы с параметрами 569 Дополнительные возможности 570 Реализация макросов в ассемблере 570 Процесс ассемблирования 571 Ассемблирование за два прохода 571 Первый проход 572 Второй проход 576 Таблица символов 578 Компоновка и загрузка 580 Задачи компоновщика 581 Структура объектного модуля 584 Время компоновки и динамическое перераспределение памяти 585 Динамическая компоновка 588 Краткое содержание главы 592 Вопросы и задания 593 Глава 8. Параллельные компьютерные архитектуры 597 Внутрипроцессорный параллелизм 599 Параллелизм на уровне команд 599 Внутрипроцессорная многопоточность 606 Однокристальные мультипроцессоры 613 Сопроцессоры 619 Сетевые процессоры 619 Мультимедиа-процессоры 628 Криптопроцессоры 634 Мультипроцессоры 634 Мультипроцессоры и мультикомпьютеры 635 Семантика памяти 642 UMA-мультипроцессоры в симметричных мультипроцессорных архитектурах . . 647 NUMA-мультипроцессоры 656 СОМА-мультипроцессоры 664 Мультикомпьютеры 666 Коммуникационные сети 667 Процессоры с массовым параллелизмом 671 Кластерные вычисления 681 Коммуникационное программное обеспечение для мультикомпьютеров .... 687 Планирование 689 Общая память на прикладном уровне 691 Производительность 698 Распределенные вычисления 704 Краткое содержание главы 707 Вопросы и задания 708 Глава 9. Библиография 711 Литература для дополнительного чтения 711 Вводная и неспециальная литература 711 Организация компьютерных систем 713 Цифровой логический уровень 714 Уровень микроархитектуры 714 Уровень архитектуры набора команд 715 Уровень операционной системы 716 Уровень ассемблера 717 Параллельные компьютерные архитектуры 717 Двоичные числа и числа с плавающей точкой 719 Программирование на языке ассемблера 719 Алфавитный список литературы 720 Приложение А. Двоичные числа 733 Числа конечной точности 733 Позиционные системы счисления 735 Преобразование чисел из одной системы счисления в другую 737 Отрицательные двоичные числа 739 Двоичная арифметика 741 Вопросы и задания 742 Приложение Б. Числа с плавающей точкой 745 Принципы представления чисел с плавающей точкой 745 Стандарт IEEE 754 749 Вопросы и задания 752 Приложение В. Программирование на языке ассемблера . . . 754 Основные понятия 755 Язык ассемблера 755 Небольшая программа на языке ассемблера 756 Процессор 8088 757 Цикл процессора 757 Регистры общего назначения 759 Регистры-указатели 760 Память и адресация 762 Организация памяти и сегменты 762 Адресация 764 Набор команд 8088 768 Перемещение, копирование и арифметические команды 770 Логические операции, побитовые операции и операции сдвига 772 Операции организации циклов и повторяющиеся строковые операции 773 Команды перехода и вызова 773 Вызовы подпрограмм 775 Системные вызовы и системные подпрограммы 777 Заключительные замечания о наборе команд 779 Ассемблер 780 Введение 780 Ассемблер as88 из набора АСК 781 Некоторые отличия от других ассемблеров 8088 785 Трассер 786 Команды трассера 788 Подготовительные действия 790 Примеры 791 Hello World 791 Регистры общего назначения 795 Вызов регистров команд и указателя 796 Отладка программы вывода массива 800 Обработка символьных строк и строковые команды 803 Таблицы диспетчеризации 806 Буферизованный и произвольный доступ к файлам 809 Вопросы и задания 813 Список терминов 815 Алфавитный указатель 825 |
Loading
|