Архитектура компьютера

RISC vs CISC: Война архитектур

Цели урока

  • Понимать философию и историю CISC
  • Знать проблемы CISC для конвейеризации
  • Понимать принципы RISC архитектуры
  • Знать ключевые RISC процессоры
  • Понимать гибридный подход современных CPU

Предварительные знания

  • Цикл выполнения инструкций
  • Конвейеризация
  • Цикл выполнения
  • Конвейеризация

Ваш iPhone на ARM-процессоре обгоняет ноутбук с Intel? История о том, как 'меньше' стало 'быстрее'.

  • Apple Silicon (M1, M2, M3) - ARM захватывает десктопы
  • RISC-V в IoT и встраиваемых системах
  • Серверы на ARM (AWS Graviton, Ampere)
  • x86 в дата-центрах и легаси-системах

История противостояния

1977: VAX-11 - вершина CISC, 300+ инструкций. 1980: Patterson & Hennessy начинают исследования RISC в Berkeley и Stanford. 1984: MIPS R2000 - первый коммерческий RISC. 1985: ARM1 - начало ARM (Acorn RISC Machine). 1989: Intel 486 - начало RISC-ядра внутри x86. 2007: iPhone - ARM в каждом кармане. 2010: RISC-V - открытый стандарт. 2020: Apple M1 - ARM на десктопе бьёт Intel.

CISC: Делаем жизнь программиста легче

**1970-е:** Память дорогая, компиляторы примитивные, программисты пишут на ассемблере. Решение? Мощные инструкции!

**CISC (Complex Instruction Set Computer):** Одна инструкция делает много работы. Меньше кода = меньше памяти.

Особенность CISCПример (x86)Зачем
Сложные режимы адресацииMOV EAX, [EBX+ECX*4+8]Доступ к массивам структур
Инструкции разной длины1-15 байтЭкономия памяти
Много специальных инструкцийENTER, LEAVE, LOOPЧастые паттерны кода
МикрокодВнутренний интерпретаторСложные операции

**VAX-11 (1977):** 300+ инструкций! Включая POLY для вычисления полиномов и INDEX для проверки границ массива.

Главная цель CISC в 1970-х:

Проблемы CISC

**1980-е:** Исследования Паттерсона и Хеннесси показали - сложные инструкции редко используются!

**Проблемы CISC для конвейера:**

ПроблемаПочемуПоследствия
Разная длина инструкцийНужен сложный декодерНе параллельный fetch
Разное время выполненияADD = 1 такт, DIV = 40Стоит весь конвейер
Память в операндахCISC: ADD [mem], regНепредсказуемые задержки
МикрокодВнутренний циклЗанимает pipeline

**Ирония CISC:** Компиляторы 80-х стали умнее и перестали использовать сложные инструкции - простые быстрее!

Главная проблема CISC для конвейеризации:

RISC: Меньше - значит быстрее

**RISC (Reduced Instruction Set Computer):** Простые инструкции, но БЫСТРЫЕ. Сложность переносим в компилятор.

**Парадокс:** Больше инструкций, но меньше тактов. Почему?

ФакторCISCRISC
Инструкций для задачиМеньшеБольше (~30%)
Тактов на инструкцию3-10 (CPI)~1 (CPI)
ЧастотаОграничена сложностьюВыше
ИтогоCPI × инструкцииМеньше!

**Формула:** Время = Инструкции × CPI × Период такта. RISC побеждает в произведении!

Load/Store архитектура означает:

Принципы дизайна RISC

**Ключевые решения RISC:**

**RISC-V:** Открытый RISC ISA (2010). Базовый набор - 47 инструкций. Модульные расширения (M, A, F, D, C).

Если MIPS имеет 32 регистра, сколько бит нужно для кодирования одного регистра?

RISC процессоры: MIPS, ARM, RISC-V

**MIPS (1984):** Первый коммерчески успешный RISC. Playstation 1/2, сетевое оборудование.

**ARM (1985):** Низкое энергопотребление. Мобильные устройства, 200+ миллиардов чипов произведено.

**RISC-V (2010):** Открытый стандарт, бесплатная лицензия. Будущее RISC.

RISC ISAРегистровБитыОсобенности
MIPS3232/64Классический учебный RISC
ARM16/3132/64Условные инструкции, Thumb
RISC-V3232/64/128Модульный, открытый

**ARM Thumb:** 16-битные инструкции для плотности кода. Компромисс между RISC чистотой и размером.

Уникальная особенность ARM архитектуры:

Современность: Гибридный подход

**Итог войны:** Никто не победил. Современные процессоры - гибриды!

**Apple M1 (ARM):** Чистый RISC, но с огромным OoO и предсказателями. Лучшее из обоих миров.

Аспектx86 (Intel/AMD)ARM (Apple M1/Qualcomm)
ISACISC (внешне)RISC
ДекодерСложный, дорогойПростой, эффективный
Энергия на декодирование~15% от ядра~5% от ядра
Совместимость40 лет ПОНужна перекомпиляция
Плотность кодаЛучше (переменная длина)Хуже (32 бита фикс)
Производительность/ВаттХужеЛучше

**ARM на десктопе:** Apple M1 показал, что ARM может конкурировать с x86 в производительности. Windows on ARM растёт.

RISC всегда быстрее CISC

Современные x86 процессоры внутри используют RISC-подобные микрооперации и очень быстры

Важна реализация, не только ISA. x86 с триллионами долларов инвестиций оптимизирован до предела.

Почему x86 всё ещё доминирует на десктопах?

Ключевые идеи

  • CISC: сложные инструкции для экономии памяти (1970-е)
  • Проблема: сложные инструкции плохо конвейеризуются
  • RISC: простые инструкции, 1 такт, много регистров
  • Load/Store: арифметика только с регистрами
  • Современные x86 внутри транслируют в RISC μops
  • ARM доминирует в мобильных, растёт на десктопах
  • RISC-V - открытое будущее

Связанные темы

RISC/CISC - фундамент для понимания современных процессоров.

  • Конвейеризация — RISC оптимизирован для pipeline
  • ARM и x86 — Конкретные реализации

Связанные уроки

  • os-01-intro
RISC vs CISC: Война архитектур

0

1

Войти