Computer Organization and Design
Computer Organization and Design (CO&D) — это учебник по компьютерной архитектуре, написанный Дэвидом А. Паттерсоном и Джоном Л. Хеннесси. Книга, впервые опубликованная в 1994 году, является одним из наиболее авторитетных и широко используемых учебных пособий в области вычислительной техники. Она посвящена взаимосвязи между аппаратной организацией компьютера и его программным обеспечением, а также принципам проектирования процессоров, памяти и систем ввода-вывода. За свой вклад в развитие компьютерной архитектуры Паттерсон и Хеннесси были удостоены премии Тьюринга в 2017 году.
История и издания
Первое издание книги вышло в 1994 году под названием «Computer Organization and Design: The Hardware/Software Interface». Оно быстро стало стандартным учебником для курсов по компьютерной архитектуре в университетах по всему миру. Успех книги объясняется её практической направленностью: авторы сосредоточились на объяснении того, как фундаментальные концепции архитектуры влияют на производительность, стоимость и энергопотребление реальных компьютеров.
Книга регулярно переиздаётся с обновлением содержания в соответствии с развитием технологий. Наиболее значимые издания:
- Первое (1994): Основано на архитектуре MIPS. Ввело ключевые концепции, такие как конвейеризация, иерархия памяти и измерение производительности.
- Второе (1998): Добавлены разделы по многопроцессорным системам и современным методам оптимизации.
- Третье (2004): Значительно расширен раздел по памяти, включая кэш-память и виртуальную память. Введено понятие «энергоэффективность».
- Четвёртое (2009): Обновлённый акцент на многоядерные процессоры и параллельные вычисления. Добавлены примеры на основе архитектуры ARM.
- Пятое (2013): Полная переработка с учётом повсеместного распространения мобильных устройств. Архитектура ARM стала основной для примеров, а MIPS отошла на второй план.
- Шестое (2019): Фокус на облачные вычисления, большие данные и специализированные процессоры (GPU, TPU). Включены примеры на RISC-V.
- Седьмое (2024): Последнее на данный момент издание. Продолжает развитие темы RISC-V, добавляет разделы по машинному обучению и квантовым вычислениям.
Каждое издание сопровождается онлайн-ресурсами, включая слайды лекций, задачи и решения, а также симуляторы для практических занятий.
Содержание и структура
Книга построена по принципу «снизу вверх»: от базовых логических схем к сложным системам. Основные разделы включают:
Абстракции и производительность
Введение в основные понятия: производительность (время выполнения, MIPS, FLOPS), закон Мура, закон Амдала, иерархия памяти. Объясняется, как измерять и сравнивать производительность различных компьютеров.
Инструкции: язык машины
Описание системы команд (ISA) на примере архитектур MIPS, ARM и RISC-V. Рассматриваются форматы команд, способы адресации, типы данных и принципы компиляции высокоуровневого кода в машинный.
Арифметика
Детальное рассмотрение двоичной арифметики: сложение, вычитание, умножение, деление, работа с числами с плавающей точкой (стандарт IEEE 754). Объясняется, как эти операции реализуются на уровне аппаратуры.
Процессор
Центральная часть книги. Описывается построение процессора с использованием конвейеризации (pipelining), управления данными и управлением потоком. Рассматриваются конфликты (data hazards, control hazards) и методы их разрешения (пересылки, предсказание переходов).
Иерархия памяти
Подробный анализ кэш-памяти (L1, L2, L3), виртуальной памяти (страничная организация, TLB) и методов управления памятью. Объясняется принцип локальности (временной и пространственной) и его влияние на производительность.
Хранение данных и ввод-вывод
Рассмотрение систем хранения (жёсткие диски, SSD), интерфейсов ввода-вывода (PCIe, USB, SATA) и методов организации ввода-вывода (программный, прерывания, DMA).
Параллельные процессоры
Глава, посвящённая многоядерным процессорам, многопоточности, когерентности кэша и параллельным вычислениям. Включает обсуждение GPU (графических процессоров) и их использования для общих вычислений (GPGPU).
Специализированные процессоры
В последних изданиях добавлены разделы по процессорам для машинного обучения (TPU, NPU), реконфигурируемым вычислениям (FPGA) и квантовым вычислениям.
Ключевые концепции
Книга вводит и последовательно использует несколько фундаментальных идей:
- Закон Амдала: Ускорение системы ограничено той частью, которую нельзя улучшить. Формула: \( S = 1 / ((1 - f) + f / k) \), где \( f \) — доля улучшаемой части, \( k \) — коэффициент ускорения.
- Принцип локальности: Программы в течение короткого времени обращаются к небольшой части адресного пространства. Это обосновывает эффективность кэш-памяти.
- Конвейеризация: Разбиение выполнения инструкции на несколько этапов, выполняемых параллельно, что увеличивает пропускную способность процессора.
- Иерархия памяти: Использование нескольких уровней памяти (регистры, кэш, ОЗУ, диск) с разной скоростью и стоимостью для достижения баланса между производительностью и ценой.
- RISC vs CISC: Сравнение архитектур с сокращённым (RISC) и сложным (CISC) набором команд. Книга последовательно отстаивает преимущества RISC-подхода, особенно в контексте современных процессоров.
Влияние и критика
«Computer Organization and Design» считается стандартным учебником для студентов бакалавриата по специальностям «Информатика» и «Компьютерная инженерия». Книга переведена на многие языки, включая русский (издательство «Вильямс», 2005, 2010, 2015). Она используется в ведущих технических вузах России, таких как МФТИ, МГУ, ВШЭ, МИФИ.
Критика книги в основном касается её ориентации на архитектуру MIPS (в ранних изданиях) и ARM (в более поздних), что может не отражать всё разнообразие современных процессоров, особенно x86. Некоторые преподаватели отмечают, что книга слишком подробна для вводного курса, но недостаточно глубока для специализированных курсов по архитектуре. Также высказывались замечания, что примеры на C/C++ могут быть сложны для студентов, только начинающих программировать.
Интересные факты
- Книга стала основой для массового онлайн-курса (MOOC) на платформе Coursera, который прошли сотни тысяч студентов.
- Паттерсон и Хеннесси также написали более продвинутую книгу «Computer Architecture: A Quantitative Approach», которая считается «Библией» для профессиональных разработчиков процессоров.
- В предисловии к первому изданию авторы написали, что цель книги — «научить студентов думать как архитекторы компьютеров, а не просто как программисты».
- Шестое издание было выпущено в честь 25-летия книги и содержало предисловие от создателя архитектуры RISC-V Крсте Асановича.
Источники
- Patterson, D. A., & Hennessy, J. L. (2024). Computer Organization and Design: The Hardware/Software Interface (7th ed.). Morgan Kaufmann.
- Patterson, D. A., & Hennessy, J. L. (2019). Computer Organization and Design: The Hardware/Software Interface (6th ed.). Morgan Kaufmann.
- Паттерсон, Д., Хеннесси, Дж. (2015). Архитектура компьютера и проектирование компьютерных систем. Вильямс.
- Премия Тьюринга 2017 года: официальный сайт ACM.
- Курс «Computer Organization and Design» на Coursera.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →