Раздел 3. Классификация и типовая структура микропроцессоров

1. Фундаментальный водораздел: ISA vs Микроархитектура

Архитектура набора команд (ISA)

• Логический контракт: абстрактная модель процессора для компилятора и программиста.

• Специфицирует: состав регистров (GPR), форматы команд, разрядность адресации, типы данных, режимы прерываний.

• Примеры ISA: x86-64, ARMv8/v9, RISC-V, MIPS.

Микроархитектура (Microarchitecture)

• Физическая реализация: конкретное схемотехническое кремниевое воплощение ISA на кристалле.

• Включает: глубину конвейера, предсказатели переходов, размер кэшей L1/L2, число исполнительных блоков ALU.

• Примеры: Intel Raptor Cove, AMD Zen 4, Apple Firestorm.

Ключевой вывод: Разные микроархитектуры могут безупречно исполнять один и тот же бинарный машинный код одной ISA.

2. Анатомия ядра процессора: 4 ключевые подсистемы

Центральный процессор состоит из функционально независимых, но потактово синхронизированных аппаратных блоков:

1. Арифметико-логическое устройство (ALU)

Вычислительное ядро процессора: аппаратные сумматоры, логические вентили, сдвигатели и матричные умножители.

2. Устройство управления (Control Unit / CU)

Дирижер кристалла: выборка инструкций, дешифрация опкодов, генерация управляющих импульсов и тактирование шин.

3. Регистровый файл (Register File)

Сверхбыстрая статическая память прямо в ядре: регистры общего назначения (РОН), счетчик команд (PC), указатель стека (SP), флаги (FLAGS).

4. Кэш первого уровня (L1 Cache)

Гарвардское разделение: отдельный кэш команд (L1i) для выборки без задержек и кэш данных (L1d) для работы со стеком и операндами.

3. Арифметико-логическое устройство (ALU)

ALU (Arithmetic Logic Unit) — комбинационная логическая схема, преобразующая операнды по заданному коду операции:

  • Целочисленная арифметика: сложение, вычитание через сумматор в дополнительном коде (Two's Complement), умножение, деление.
  • Побитовая булева логика: AND, OR, XOR, NOT, битовые маски и проверки условий.
  • Матричный сдвигатель (Barrel Shifter): аппаратный блок, выполняющий логический, арифметический или циклический сдвиг на произвольное количество бит за 1 такт.
  • Выходы ALU: шина результата вычислений + биты признаков состояния, записываемые в регистр флагов (FLAGS).
Важный принцип: ALU не обладает собственной памятью состояний — операнды подаются из регистров, а результат немедленно коммутируется на внутреннюю шину.
4. Устройство управления (Control Unit) и Декодер

Устройство управления (CU) преобразует машинные инструкции в синхронную последовательность микрокоманд:

  • Синхронизация цикла: генерация стробов чтения/записи, переключение мультиплексоров шин.
  • Аппаратный декодер (Hardwired Decoder): быстродействующая логическая матрица, расшифровывающая простые инструкции за 1 такт (основа RISC-ядер).
  • Микропрограммное ПЗУ (Microcode ROM): встроенная память, хранящая последовательности микрокоманд (μops) для комплексных инструкций CISC (например, строковые операции x86, переключение контекста, виртуализация).

В современных процессорах аппаратный декодер трансформирует команды x86 во внутренний поток μops, который затем исполняется RISC-ядром.

5. Регистровый файл: РОН, PC, SP, FLAGS
Регистр Обозначение в x86-64 / ARM / RISC-V Функциональное назначение
РОН (GPR) RAX–RDX, R8–R15 / X0–X31 / x0–x31 Хранение промежуточных переменных, счетчиков циклов, указателей.
PC / IP RIP (Instruction Pointer) / PC Адрес в памяти, откуда извлекается следующая команда.
SP RSP / SP (Stack Pointer) Указатель на вершину стека вызовов (LIFO) в оперативной памяти.
FLAGS RFLAGS / CPSR / fcsr Битовые признаки операций: ZF (ноль), SF (знак), CF (перенос), OF (переполнение).

Латентность доступа к регистровому файлу составляет 0–1 такт ядра, что делает его самым быстрым хранилищем процессора.

6. Иерархия кэшей: Гарвардский L1, L2 и L3

Кэш первого уровня (L1)

• Физически разделен внутри ядра:

- L1i (Instruction): кэш команд (32–64 КБ), латентность ~4 такта.

- L1d (Data): кэш данных (32–64 КБ) с портами чтения/записи.

• Исключает конфликт выборки кода и операндов.

Кэши L2 и L3 (Unified)

• L2 (Уровень ядра): 512 КБ – 2 МБ на ядро, задержка ~12–14 тактов. Содержит и код, и данные.

• L3 (Общий для чипа / LLC): 16–96+ МБ, разделяется всеми ядрами процессора. Сглаживает обращение к DRAM (латентность ~35–45 тактов).

Кэш-память строится на быстрых 6-транзисторных SRAM-ячейках и предотвращает простои ядра при ожидании оперативной памяти.

7. Философия CISC: x86 и x86-64

CISC (Complex Instruction Set Computer) — концепция «богатого» набора инструкций, созданная в эпоху дорогой памяти:

  • Переменная длина инструкций: от 1 байта (например, NOP) до 15 байт со сложными префиксами и смещениями.
  • Прямая адресация памяти: инструкция сложения может напрямую брать операнд из ОЗУ: ADD EAX, [EBX+4].
  • Высокая плотность кода: одна сложная инструкция заменяет целую процедуру на языке высокого уровня.
  • Обратная сторона: гигантский кристаллический декодер, сложности распараллеливания и повышенное энергопотребление.
8. Философия RISC: ARM и RISC-V

RISC (Reduced Instruction Set Computer) — ставка на простоту кремния и эффективность конвейера:

  • Фиксированная длина команд: строго 32 бита (или 16 бит в сжатом режиме RISC-V Compressed / ARM Thumb).
  • Архитектура Load-Store: операции ALU производятся исключительно между регистрами (ADD R0, R1, R2). Память доступна только через инструкции LDR (Load) и STR (Store).
  • Простой аппаратный декодер: компактный, потребляет минимум энергии и легко масштабируется на многоядерность.
  • Сфера: смартфоны, IoT, серверные центры обработки данных высокой энергоэффективности.
9. Архитектура VLIW: Статический параллелизм

VLIW (Very Long Instruction Word — Сверхдлинное командное слово):

  • Идея: убрать из процессора громоздкие схемы динамического анализа зависимостей и перенести планирование на компилятор.
  • Широкие связки: одна инструкция длиной 128–512 бит содержит несколько слотов (операций) под разные функциональные блоки ALU/FPU.
  • Плюсы: колоссальный теоретический параллелизм инструкций (ILP) на такт при малых аппаратных затратах.
  • Минусы: сильная зависимость от компилятора, проблемы совместимости при смене числа конвейеров, «пустые операции» (NOP) при нехватке параллелизма в коде.
  • Примеры: российские процессоры «Эльбрус», DSP-процессоры Texas Instruments C6000.
10. Сравнительный анализ архитектурных парадигм
Характеристика CISC (x86-64) RISC (ARM, RISC-V) VLIW (Эльбрус)
Длина команд Переменная (1–15 байт) Фиксированная (32 бит) Фиксированная связка (128–512 бит)
Доступ к памяти Любая команда (Регистр-Память) Только LOAD / STORE Только через слоты LOAD / STORE
Планирование Аппаратное динамическое (OoO) In-Order или динамическое OoO Строго статическое компилятором
Энергоэффективность Умеренная (траты на декодер) Максимальная Высокая удельная на ватт
11. Конвейер выполнения команд (Classic Pipeline)

Выполнение команды разбивается на 5 независимых стадий, работающих одновременно над разными командами:

  • IF (Instruction Fetch): выборка 32-битного опкода из кэша L1i по адресу PC.
  • ID (Instruction Decode): распознавание опкода и параллельное чтение регистров-операндов.
  • EX (Execute): операция в ALU либо расчет адреса памяти.
  • MEM (Memory Access): обращение к кэшу L1d (только для Load/Store).
  • WB (Write-Back): фиксация результата в целевой регистр РОН.
Благодаря конвейеру, при идеальных условиях каждый такт процессор завершает исполнение одной новой инструкции (CPI = 1).
12. Современная специализация процессоров

1. Настольные x86-64

Intel Core / AMD Ryzen. Высокая однопоточная производительность, агрессивный Out-of-Order, 3D V-Cache L3.

2. Мобильные ARM big.LITTLE / DynamIQ

Гетерогенные ядра: мощные Cortex-X для интерактивных задач и экономичные Cortex-A510 для фоновых процессов.

3. Открытый RISC-V для IoT

Модульная ISA: базовый набор RV32I/RV64I + расширения (M — умножение, A — атомики, C — сжатые команды).

4. DSP и VLIW чипы

Векторные процессоры обработки сигналов, радаров и нейросетей с детерминированным временем исполнения.

13. Типовые заблуждения о процессорах
  • «Чем выше гигагерцы, тем быстрее процессор»: Нет. Производительность определяется как Частота × IPC (инструкций за такт). 3 ГГц чип с широким конвейером превосходит 4 ГГц чип с узким.
  • «Современный x86 процессор — это чистый CISC»: Нет. Снаружи поддерживается ISA x86, но внутри аппаратные декодеры превращают команды в RISC-подобные микроинструкции (μops).
  • «Счетчик команд PC считает число выполненных команд»: Нет. PC (Program Counter / RIP) содержит байтовый адрес следующей инструкции в памяти.
14. Резюме: архитектура в реальном мире
Mathjoke Meme
Мем: «Mathjoke (10 types of people in the world) — В мире существует 10 типов людей: те, кто понимает двоичную систему счисления, и те, кто её не понимает».
Автор: MjolnirPants (Wikimedia Commons).
Лицензия: Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0).
Атрибуция: Изображение встроено автономно в формате Data URI (data:image/jpeg;base64) без сторонних сетевых обращений.
Слайд 1 из 15