Звоните: (067) 644-70-74
Напишите нам burtrest@gmail.com

Книга Архитектура компьютера и проектирование компьютерных систем. Классика Computers Science. 4-е изд. Паттерсон

328.90 грн.

Артикул: 4d37ad4dd2cf Категория:

Описание

год-2012

784 страниц

Книга  Архитектура компьютера и проектирование компьютерных систем. Классика Computers Science. 4-е изд. Паттерсон, выходящая уже в 4-м издании, посвящена структурной организации компьютера и отражает революционные изменения, происходящие в области аппаратного обеспечения, в частности стремительный переход от однопроцессорных систем к многоядерным микропроцессорам. В издании подробно описывается архитектура компьютера и устройство всех его компонентов: процессоров, блоков памяти, средств ввода-вывода и хранения данных. Отличительной особенностью книги является демонстрация взаимодействий между аппаратными средствами и системным программным обеспечением. Особое внимание уделяется многоядерным вычислительным системам и параллельному программированию. Многочисленные упражнения и задачи, приводимые после каждой темы, помогают закрепить материал. Книга рассчитана на широкий круг читателей: от студентов, изучающих компьютерные технологии, до опытных разработчиков, которые хотят освоить современные концепции многопроцессорного программирования.
Оглавление книги
Архитектура компьютера и проектирование компьютерных систем. Классика Computers Science. 4-е изд. Паттерсон
Предисловие   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Глава 1. Компьютерные абстракции и технологии    . . . . . . . . . . . . . . . . . . . .  18
1.1. Введение   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  18
1.2. Что находится ниже вашей программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  26
1.3. Что скрывается под крышкой корпуса компьютера   . . . . . . . . . . . . . . . . . . . .  30
1.4. Производительность   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  47
1.5. Барьер потребляемой мощности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  60
1.6. Коренное изменение: переход от одного к нескольким процессорам   . . . .  62
1.7. Реальное оборудование: производство и оценочное тестирование
AMD Opteron X4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  67
1.8. Заблуждения и недоразумения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  74
1.9. Заключительные комментарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  79
1.10. Упражнения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  81
Глава 2. Инструкции: язык компьютера   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
2.1. Введение   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  97
2.2. Операции, осуществляемые компьютерным оборудованием   . . . . . . . . . . .  99
2.3. Операнды компьютерного оборудования . . . . . . . . . . . . . . . . . . . . . . . . . . . .  104
2.4. Числа со знаком и без знака  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  111
2.5. Представление инструкций в компьютере  . . . . . . . . . . . . . . . . . . . . . . . . . . .  118
2.6. Логические операции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  125
2.7. Инструкции для принятия решения  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  128
2.8. Поддержка процедур в компьютерном оборудовании . . . . . . . . . . . . . . . . .  134
2.9. Общение с людьми . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  144
2.10. Адресация MIPS для 32-разрядных непосредственных значений
и адресов   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  150
2.11. Параллелизм и инструкции: синхронизация    . . . . . . . . . . . . . . . . . . . . . . . . .  159
2.12. Трансляция и запуск программы   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  162
2.13. Объединение всего ранее рассмотренного в упражнении
по сортировке на языке С   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  173
2.14. Сравнение массивов и указателей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  181
2.15. Реальное оборудование: инструкции ARM . . . . . . . . . . . . . . . . . . . . . . . . . . .  185
2.16. Реальное оборудование: инструкции x86 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  190
2.17. Заблуждения и недоразумения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  202
2.18. Заключительные комментарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  204
2.19. Упражнения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  207
Ответы на вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  243
Глава 3. Арифметика для компьютеров   . . . . . . . . . . . . . . . . . . . . . . . . . . . .  245
3.1. Введение   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  245
3.2. Сложение и вычитание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  246
3.3. Умножение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  252
3.4. Деление   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  258
3.5. Числа с плавающей точкой   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  269
3.6. Параллелизм и компьютерная арифметика: ассоциативность . . . . . . . . . .  297
3.7. Реальное оборудование: вычисления чисел с плавающей точкой в x86        299
3.8. Заблуждения и недоразумения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  303
3.9. Заключительные комментарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  307
3.10. Упражнения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  316
Ответы на вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  331
Глава 4. Процессор   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  332
4.1. Введение   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  332
4.2. Соглашения по логическому проектированию . . . . . . . . . . . . . . . . . . . . . . . .  337
4.3. Создание операционного блока . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  341
4.4. Простая схема реализации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  350
4.5. Обзор конвейеризации   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  365
4.6. Операционный блок и система управления, оснащенные конвейером    . .  381
4.7. Конфликты данных: сравнение препровождения данных и задержки . . . .  403
4.8. Конфликты управления   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  416
4.9. Исключения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  427
4.10. Параллелизм и расширенный параллелизм на уровне инструкций . . . . . .  435
4.11. Реальное оборудование: конвейер AMD Opteron X4 (Barcelona) . . . . . . . . .  451
4.12. Заблуждения и недоразумения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  454
4.13. Заключительные комментарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  455
4.14. Упражнения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  456
Ответы на вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  497
Глава 5. Объемная и быстродействующая: анализ иерархии памяти   . . . .  498
5.1. Введение   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  499
5.2. Основы кэш-памяти   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  505
5.3. Измерение и повышение производительности кэш-памяти . . . . . . . . . . . .  525
5.4. Виртуальная память   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  543
5.5. Общая среда для иерархий памяти  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  573
5.6. Виртуальные машины . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  582
5.7. Использование конечного автомата для управления простой
кэш-памятью  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  587
5.8. Параллелизм и иерархии памяти: целостность данных в кэш-памяти   . . .  592
5.9. Реальное оборудование: иерархии памяти AMD Opteron X4 (Barcelona)
и Intel Nehalem   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  597
5.10. Заблуждения и недоразумения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  603
5.11. Заключительные комментарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  607
5.12. Упражнения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  609
Ответы на вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  628
Глава 6. Хранение информации и другие темы, связанные
с вводом-выводом   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  629
6.1. Введение   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  630
6.2. Безотказность, надежность и готовность . . . . . . . . . . . . . . . . . . . . . . . . . . . .  633
6.3. Дисковое запоминающее устройство . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  636
6.4. Флэш-накопители . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  642
6.5. Соединение процессоров, памяти и устройств ввода-вывода . . . . . . . . . .  644
6.6. Организация интерфейса устройств ввода-вывода с процессором,
памятью и операционной системой   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  650
6.7. Оценки производительности ввода-вывода: примеры, связанные
с дисками и файловыми системами   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  660
6.8. Разработка систем ввода-вывода  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  663
6.9. Параллелизм и ввод-вывод: избыточные массивы недорогих дисков   . . .  664
6.10. Реальное оборудование: сервер Sun Fire x4150   . . . . . . . . . . . . . . . . . . . . . .  672
6.11. Заблуждения и недоразумения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  679
6.12. Заключительные комментарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  685
6.13. Упражнения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  686
Ответы на вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  696
Глава 7. Многоядерность, мультипроцессорные системы и кластеры   . . .  697
Мультипроцессор или кластерная организация . . . . . . . . . . . . . . . . . . . . . . . . . .  697
7.1. Введение   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  698
7.2. Сложности создания программ, выполняемых в параллельном режиме   .  701
7.3. Мультипроцессоры с общей памятью . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  705
7.4. Кластеры и другие мультипроцессоры с передачей сообщений   . . . . . . . .  708
7.5. Аппаратная многопоточность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  713
7.6. SISD, MIMD, SIMD, SPMD и использование векторов . . . . . . . . . . . . . . . . . .  717
7.7. Введение в графические процессоры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  723
7.8. Введение в топологию мультипроцессорных сетей   . . . . . . . . . . . . . . . . . . .  731
7.9. Контрольные задачи для мультипроцессоров  . . . . . . . . . . . . . . . . . . . . . . . .  735
7.10. Roofline: Простая модель производительности . . . . . . . . . . . . . . . . . . . . . . .  738
7.11. Реальное оборудование: выполнение контрольных задач для четырех много-
ядерных процессоров с использованием модели Roofline   . . . . . . . . . . . . .  748
7.12. Заблуждения и недоразумения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  758
7.13. Заключительные комментарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  760
7.14. Упражнения   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  763
Ответы на вопросы для самопроверки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  777