RISC и CISC
RISC (Reduced Instruction Set Computer) и CISC (Complex Instruction Set Computer) — два подхода к уровню ISA (набору команд). Спор «RISC против CISC» бушевал в 1980–1990‑х; сегодня граница размыта: ARM в смартфонах, x86 на ПК, внутри Intel — RISC‑подобное ядро.
Идея в двух предложениях
| Подход | Философия | Типичный пример |
|---|---|---|
| CISC | Одна «богатая» команда может заменить несколько простых (например, movsb копирует строку) | x86, x86-64 |
| RISC | Много простых команд фиксированной длины; сложное поведение — из короткой последовательности | ARM, RISC-V, MIPS, Power |
CISC экономил память программ в эпоху дорогой RAM. RISC упрощал декодирование и конвейер, когда память подешевела, а тактовая частота стала главным рычагом скорости.
Сравнительная таблица
| Критерий | CISC (классический x86) | RISC (ARM, RISC-V) |
|---|---|---|
| Длина команды | Переменная (1–15 байт у x86) | Часто фиксированная (4 байта у ARM32) |
| Обращение к памяти | Многие команды сами читают/пишут операнды | Только load / store; арифметика — в регистрах |
| Число регистров | Исторически мало (аккумулятор, пара регистров) | Много регистров общего назначения |
| Сложные команды | enter, строковые, x87 | Редко; цикл из простых |
| Конвейер | Поздно (Intel 486+, Pentium) | С ранних RISC‑чипов (MIPS, SPARC) |
| Код программы | Компактнее в байтах | Часто больше инструкций, но проще исполнять |
Почему RISC ускорял процессор
- Простое декодирование — фиксированный формат, меньше полей → выше число команд в секунду.
- Конвейер — короткие стадии; классическая модель Fetch → Decode → Execute → Memory → Write-back (фон Нейман).
- Load/store — обращения к RAM предсказуемы; пока идёт load, конвейер может выполнять другие команды.
- Много регистров — меньше «трафика» с медленной памятью.
Суперскалярность — два и более конвейера параллельно (Pentium — два конвейера u и v). Это уже микроархитектура, но RISC её упростил.
Почему CISC не исчез
В 1990‑х ожидали доминирование RISC‑рабочих станций (SPARC, MIPS). На практике победил экосистемный эффект x86:
- миллиарды долларов в ПО под Windows и DOS;
- Intel встроил RISC‑идеи внутрь CISC — с 486 простые команды идут за один такт, сложные разбиваются на микрооперации;
- совместимость — старый
.exeработает на новом CPU.
Современный Core i7 — CISC снаружи, RISC внутри: декодер превращает x86 в поток микрокоманд для конвейера.
Принципы проектирования (наследие RISC)
Ими руководствуются и при создании x86, и ARM:
- Большинство команд исполняется напрямую аппаратурой, без медленной микропрограммы.
- Максимум команд в секунду — конвейер, superscalar, out-of-order.
- Простое декодирование — единообразные форматы где возможно.
- Load/store — память только через явные загрузку и сохранение.
- Много регистров — снижение обращений к RAM.
Подробнее про конвейер и кэш — Компоненты железа, ЭВМ.
Где что встречается сегодня
| Архитектура | Класс | Устройства |
|---|---|---|
| x86-64 | CISC (ISA) | ПК, ноутбуки, большинство серверов |
| ARM | RISC | Смартфоны, планшеты, Apple M‑series, Raspberry Pi |
| RISC-V | RISC (открытая) | IoT, эксперименты, некоторые новые CPU |
| AVR | RISC (8‑бит) | Arduino Uno, бытовая электроника |
| MIPS / Power | RISC | Роутеры, игровые приставки (исторически), серверы IBM |
Сравнение x86, ARM и RISC-V во встраиваемых системах — 112.
Практические следствия
| Вопрос | Ответ |
|---|---|
| Почему Android на ARM, а Windows — на x86? | Исторически разные ISA; эмуляция (Apple Rosetta, Windows on ARM) переводит или транслирует код |
| Нужно ли программисту знать RISC/CISC? | Для Python/Java — редко; для embedded, perf‑инженерии и reverse — да |
| «RISC быстрее CISC»? | Зависит от реализации; Apple M2 на ARM обгоняет многие x86, но причина — конвейер, кэш, техпроцесс, а не только три буквы в названии |
Куда читать дальше
- Многоуровневая организация компьютера — уровень ISA в общей лестнице.
- Поколения вычислительной техники — MIPS (1985) и суперскаляр RS/6000 (1990).
- Компоненты железа — конвейер CPU, PCIe.
- Программа — ISA и машинный код.
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). Аппаратное обеспечение как база вычислительной системы - ключевые компоненты, их роли и принципы совместной работы. Как работать с компьютером так, чтобы ничего не поломалось. Последовательность сборки компьютера - этапы установки компонентов, первичная проверка совместимости и запуск системы после сборки. Диагностика первого запуска ПК - пошаговая проверка аппаратных и программных причин, из-за которых система не стартует корректно. Бесплатный браузерный симулятор, который позволяет собирать электрические схемы и программировать платы Arduino без физического оборудования. Архитектура фон Неймана - базовая модель вычислительных систем, принципы хранения и исполнения команд в современных компьютерах. Контроллеры в цифровых системах - назначение, типовые функции управления и роль в координации процессов и оборудования. Встраиваемые системы - специализированные вычислительные платформы в составе устройств, их ограничения и практические сценарии применения. Программируемые устройства - как программная логика определяет поведение электронных систем в автоматике, промышленности и быту. Современные программаторы — это не просто проводки для прошивки. Они оснащаются множеством аппаратных и программных функций, повышающих надёжность, удобство и гибкость работы. Создание микросхемы — это многоуровневый процесс, сочетающий инженерное творчество и строгую дисциплину. Внутреннее устройство микросхем - базовые компоненты кристалла, их функции и влияние на характеристики электронных устройств.Аппаратное обеспечение
Безопасная работа с компонентами
Последовательность сборки компьютера
Диагностика неисправностей при первом запуске
Tinkercad Circuits и Arduino
Архитектура фон Неймана
Контроллеры
Встраиваемые системы
Программируемое устройство
Программаторы
Микросхемы и интегральные схемы
Внутреннее устройство микросхем