Computer Architecture: A Quantitative Approach
Computer Architecture: A Quantitative Approach — это учебник по компьютерной архитектуре, написанный Джоном Л. Хеннесси и Дэвидом А. Паттерсоном. Книга впервые опубликована в 1990 году издательством Morgan Kaufmann (входит в состав Elsevier) и считается одним из наиболее авторитетных и фундаментальных трудов в области проектирования вычислительных систем. В основе подхода авторов лежит количественный анализ производительности, энергопотребления и стоимости, что позволяет инженерам и исследователям принимать обоснованные решения при разработке процессоров, памяти и систем ввода-вывода. Книга выдержала несколько изданий (последнее — шестое, 2019 год) и широко используется в университетских курсах по компьютерной архитектуре, а также в качестве справочного пособия в индустрии.
История создания
Учебник был задуман как ответ на потребность в систематизированном, научно обоснованном подходе к преподаванию компьютерной архитектуры. В 1980-е годы доминировали учебники, описывающие архитектуры конкретных процессоров (например, VAX, Intel 80x86) без глубокого анализа компромиссов. Хеннесси и Паттерсон, будучи ведущими исследователями в области архитектуры RISC (Reduced Instruction Set Computer), решили создать книгу, основанную на принципах количественного анализа.
Первое издание (1990) заложило основы методологии: использование метрик, таких как CPI (Cycles Per Instruction), MIPS (Million Instructions Per Second), и законов Амдала и Мура. Второе издание (1996) добавило разделы по параллелизму на уровне инструкций (ILP) и иерархии памяти. Третье издание (2003) акцентировало внимание на многопроцессорных системах и энергопотреблении. Четвёртое (2007) и пятое (2012) издания включили анализ многоядерных процессоров, графических ускорителей (GPU) и облачных вычислений. Шестое издание (2019) отразило переход к гетерогенным архитектурам, нейронным ускорителям и квантовым вычислениям.
Основные концепции
Количественный подход
Центральная идея книги — замена интуитивных решений на численные оценки. Авторы вводят метрики производительности:
- Время выполнения программы (Execution Time) — основной показатель.
- Пропускная способность (Throughput) — количество задач, выполненных за единицу времени.
- Энергопотребление (Power) — в современных процессорах критически важный параметр.
Для анализа используется закон Амдала: ускорение системы ограничено долей последовательных операций. Формула: \( S = \frac{1}{(1 - p) + p/N} \), где \( p \) — доля параллелизуемых операций, \( N \) — число процессоров.
Архитектура набора команд (ISA)
Книга подробно рассматривает два основных подхода к ISA:
- RISC (Reduced Instruction Set Computer) — простые, фиксированные по длине инструкции, выполняемые за один такт. Примеры: MIPS, ARM, RISC-V.
- CISC (Complex Instruction Set Computer) — сложные, переменной длины инструкции, требующие микропрограммирования. Примеры: x86 (Intel, AMD).
Авторы демонстрируют, что RISC-архитектуры, благодаря более эффективному конвейеру и компилятору, часто превосходят CISC по производительности на ватт.
Конвейерная обработка (Pipelining)
Конвейер — ключевой механизм повышения производительности. Книга описывает:
- Идеальный конвейер: каждая инструкция разбивается на стадии (например, IF — выборка, ID — декодирование, EX — выполнение, MEM — память, WB — запись).
- Конфликты: структурные (нехватка ресурсов), данных (зависимости по данным), управления (условные переходы).
- Методы разрешения: пересылка (forwarding), предсказание переходов (branch prediction), спекулятивное выполнение.
Иерархия памяти
Книга вводит принцип локальности (временной и пространственной) и описывает многоуровневую память:
- Кэш-память: уровни L1, L2, L3. Стратегии замещения (LRU, FIFO), ассоциативность, размер блока.
- Основная память (DRAM): организация банков, задержки, пропускная способность.
- Виртуальная память: страничная организация, TLB (Translation Lookaside Buffer), подкачка.
Параллелизм
Книга систематизирует виды параллелизма:
- На уровне инструкций (ILP): суперскалярные процессоры, VLIW (Very Long Instruction Word), out-of-order execution.
- На уровне потоков (Thread-Level Parallelism): многопроцессорные системы (SMP, NUMA), многоядерные процессоры.
- На уровне данных (Data-Level Parallelism): SIMD (Single Instruction, Multiple Data), GPU (Graphics Processing Units), векторные процессоры.
Структура книги
Каждое издание имеет схожую структуру, но с обновлёнными главами. Типичное содержание (на примере шестого издания):
- Основы проектирования компьютеров — введение в количественный подход, метрики, закон Амдала.
- Архитектура набора команд — сравнение RISC и CISC, примеры MIPS и x86.
- Конвейерная обработка — базовые и продвинутые методы, предсказание переходов.
- Иерархия памяти — кэш, DRAM, виртуальная память, оптимизация.
- Параллелизм на уровне инструкций — суперскалярные процессоры, VLIW, спекулятивное выполнение.
- Параллелизм на уровне потоков и данных — многоядерные системы, GPU, гетерогенные архитектуры.
- Энергопотребление и тепловыделение — методы снижения энергопотребления (DVFS, clock gating).
- Современные тенденции — нейронные ускорители, квантовые вычисления, облачные архитектуры.
Каждая глава содержит примеры из реальных процессоров (Intel Core, ARM Cortex, NVIDIA GPU), а также задачи для самостоятельного решения.
Влияние и признание
Книга получила широкое признание в академическом и инженерном сообществе. Она была удостоена премии ACM Gordon Bell Prize (1990) за вклад в образование. В 2017 году Джон Хеннесси и Дэвид Паттерсон получили премию Тьюринга за разработку архитектуры RISC и создание учебника, который стал стандартом в преподавании.
Книга переведена на многие языки, включая русский (издательство «Вильямс», 2007, 2010, 2014, 2020). Она используется в ведущих университетах мира (MIT, Stanford, Berkeley, МФТИ, МГУ, ВШЭ) как основной учебник по курсам «Архитектура ЭВМ» и «Вычислительные системы».
Критика
Несмотря на авторитетность, книга подвергалась критике за:
- Сложность для начинающих: требует знания базовых принципов цифровой логики и программирования.
- Акцент на RISC: некоторые специалисты считают, что CISC-архитектуры (например, x86) несправедливо недооценены.
- Устаревание примеров: в быстро меняющейся индустрии примеры из предыдущих изданий (например, Intel Pentium 4) могут быть неактуальны.
- Отсутствие глубокого анализа GPU: в ранних изданиях GPU рассматривались поверхностно, хотя в последних изданиях это исправлено.
Интересные факты
- Джон Хеннесси и Дэвид Паттерсон являются сооснователями проекта RISC-V — открытой архитектуры набора команд, которая активно развивается с 2010-х годов.
- Книга содержит более 1000 страниц в последнем издании, но авторы рекомендуют читать выборочно, в зависимости от курса.
- В 2020 году вышло юбилейное издание, посвящённое 30-летию первой публикации.
Источники
- Hennessy, J. L., Patterson, D. A. Computer Architecture: A Quantitative Approach. 6th ed. Morgan Kaufmann, 2019.
- Patterson, D. A., Hennessy, J. L. Computer Organization and Design: The Hardware/Software Interface. 5th ed. Morgan Kaufmann, 2014.
- ACM Turing Award 2017: John L. Hennessy and David A. Patterson.
- Премия Гордона Белла 1990 года.
- Учебные программы МФТИ, МГУ, ВШЭ по курсу «Архитектура ЭВМ».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →