Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архитектура компьютера - Таненбаум Э

..pdf
Скачиваний:
463
Добавлен:
24.05.2014
Размер:
5.67 Mб
Скачать

НЛНССИНП COmPUTER SCIENCE

Э. ТАНЕНБАУМ

АРХИТЕКТУРА

КОМПЬЮТЕРА

4-Е ИЗДАНИЕ

С^ППТЕР

Москва • Санкт-Петербург• Нижний Новгород• Воронеж Ростов-на-Дону • Екатеринбург • Самара

Киев•Харьков•Минск

2003

Краткое содержание

Предисловие

15

Глава 1. Предисловие

18

Глава 2. Организация компьютерных систем

56

Глава 3. Цифровой логический уровень

139

Глава 4. Микроархитектурный уровень

230

Глава 5. Уровень архитектуры команд

334

Глава 6. Уровень операционной системы

437

Глава 7. Уровень языка ассемблера

517

Глава 8. Архитектуры компьютеров параллельного действия

556

Глава 9. Библиография

647

Приложение А. Двоичные числа

663

Приложение Б. Числа с плавающей точкой

674

Алфавитный указатель

683

Содержание

Об авторе

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

Код с исправлением ошибок

77

Кэш-память

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

8

Содержание

^

 

 

Примеры шин

 

 

 

 

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

Содержание

9

Типы данных

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

10

Содержание

 

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

Содержание

11

Второй проход

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

12 Содержание

Приложение А. Двоичные числа

665

Числа конечной точности

665

Позиционные системы счисления

667

Преобразование чисел из одной системы счисления в другую

669

Отрицательные двоичные числа

670

Двоичная арифметика

673

Вопросы и задания

674

Приложение Б. Числа с плавающей точкой

676

Принципы представления с плавающей точкой

676

Стандарт IEEE 754

680

Вопросы и задания

683

Алфавитный указатель

685