Открыть сервис

CISC

CISC (англ. Complex Instruction Set Computer — компьютер с полным набором команд) — это архитектура системы команд процессора, характеризующаяся использованием большого количества сложных, многоцикловых инструкций, способных выполнять операции, близкие к операторам языков высокого уровня. В отличие от RISC-архитектур (Reduced Instruction Set Computer), CISC-процессоры стремятся минимизировать количество инструкций, необходимых для выполнения одной задачи, за счёт усложнения самих команд. Исторически CISC-архитектура доминировала в микропроцессорах общего назначения, особенно в семействе x86, которое лежит в основе большинства современных персональных компьютеров и серверов.

История

Предпосылки возникновения

В 1960-х — начале 1970-х годов программирование велось преимущественно на ассемблере, и разработчики стремились создавать процессоры с «богатым» набором команд, который бы упрощал написание программ. Сложность памяти и компиляторов того времени делала выгодным перенос части логики на аппаратный уровень. Первые коммерческие процессоры, такие как Intel 4004 (1971) и Intel 8080 (1974), уже имели элементы CISC-подхода: команды могли выполнять несколько операций (например, загрузка, сложение и сохранение) за один такт.

Расцвет CISC (1970-е — 1980-е)

Ключевым этапом стало появление процессора Intel 8086 (1978), который заложил основы архитектуры x86. Его набор команд включал инструкции для работы с различными типами данных, адресации памяти и ввода-вывода. В 1980-х годах CISC-архитектура стала стандартом для мейнфреймов (IBM System/360) и миникомпьютеров (VAX от Digital Equipment Corporation). Процессоры VAX имели более 300 инструкций, многие из которых были сложными и многословными.

Кризис и переход к гибридным решениям

К концу 1980-х годов недостатки CISC стали очевидны: сложность декодирования инструкций, большая площадь кристалла и высокое энергопотребление. В ответ на это в 1980-х годах была разработана RISC-архитектура (MIPS, SPARC, ARM), которая предлагала простые, одноцикловые команды. Однако CISC не исчезла. В 1990-х годах производители, в первую очередь Intel и AMD, начали внедрять в CISC-процессоры RISC-подобные ядра с аппаратным преобразованием сложных инструкций в последовательность микроопераций (micro-ops). Такой подход, названный CISC/RISC-гибридом, позволил сохранить совместимость с существующим программным обеспечением, одновременно повысив производительность.

Принципы и архитектурные особенности

Основные характеристики

CISC-архитектура отличается следующими чертами:

  • Большой набор команд (от 100 до нескольких сотен), включая специализированные инструкции для работы с памятью, строками, числами с плавающей запятой и т. д.
  • Переменная длина инструкций (от 1 до 15 байт в x86), что усложняет декодирование, но экономит память.
  • Многообразие режимов адресации (прямая, косвенная, индексная, базовая и т. д.), позволяющее выполнять сложные операции доступа к памяти одной инструкцией.
  • Активное использование памяти для хранения операндов: многие инструкции могут обращаться к памяти напрямую, без промежуточной загрузки в регистры.
  • Микропрограммное управление: сложные инструкции реализуются через микрокод — последовательность элементарных микроопераций, хранящихся в ПЗУ процессора.

Примеры сложных инструкций

Типичные CISC-инструкции, отсутствующие в RISC:

  • MUL (умножение) — выполняет умножение двух чисел, часто с сохранением результата в аккумуляторе.
  • REP MOVSB (повторяемая пересылка строки) — копирует блок памяти заданного размера.
  • ENTER (создание стекового кадра) — автоматически выделяет память под локальные переменные и сохраняет контекст.
  • DIV (деление) — выполняет деление с остатком.

Классификация CISC-процессоров

По типу реализации

  • Классические CISC (Intel 8086, 80286, 80386) — все инструкции выполняются микрокодом, без аппаратного преобразования.
  • Гибридные CISC/RISC (современные x86-64: Intel Core, AMD Ryzen) — внешне CISC-совместимы, но внутренне декомпозируют инструкции на микрооперации, которые обрабатываются RISC-подобным ядром.

По области применения

  • Универсальные (x86, x86-64) — для ПК, серверов, рабочих станций.
  • Встраиваемые (Intel 8051, Motorola 68000) — для микроконтроллеров, промышленных систем.
  • Специализированные (VAX, IBM System/360) — для мейнфреймов и суперкомпьютеров.

Сравнение с RISC

ХарактеристикаCISCRISC
Количество командБольшое (100–500+)Малое (30–100)
Длина инструкцийПеременная (1–15 байт)Фиксированная (4 байта)
Режимы адресацииМного (до 10+)Мало (2–3)
Использование памятиАктивное, память как операндТолько загрузка/сохранение
Время выполненияМного циклов на командуОдин цикл (в идеале)
Сложность декодированияВысокаяНизкая
ЭнергопотреблениеВышеНиже

Применение

Персональные компьютеры и серверы

Подавляющее большинство современных ПК, ноутбуков и серверов используют процессоры архитектуры x86-64 (CISC-совместимые). Это обусловлено огромной программной экосистемой: операционные системы (Windows, Linux, macOS), приложения и игры оптимизированы под x86. Компании Intel и AMD (Advanced Micro Devices) доминируют на этом рынке.

Встраиваемые системы

Микроконтроллеры с CISC-архитектурой, такие как Intel 8051, широко применяются в бытовой технике, автомобильной электронике, промышленных контроллерах. Их преимущество — компактность кода и низкая стоимость.

Наследие и совместимость

CISC-архитектура обеспечивает обратную совместимость: процессоры Intel Core i9 (2020-е годы) могут выполнять код, написанный для Intel 8086 (1978). Это критически важно для корпоративных и промышленных систем, где замена ПО невозможна.

Критика

Недостатки

  • Сложность проектирования: увеличение числа инструкций и режимов адресации усложняет логику процессора, повышает вероятность ошибок (багов) и увеличивает время разработки.
  • Энергопотребление: многоцикловые инструкции и микрокод потребляют больше энергии, что критично для мобильных устройств.
  • Узкое место декодирования: переменная длина инструкций требует сложных декодеров, что может снижать тактовую частоту.
  • Сложность конвейеризации: из-за разной длины и времени выполнения инструкций конвейеры CISC-процессоров сложнее, чем RISC.

Защита CISC

Сторонники CISC отмечают, что:

  • Компактность кода (меньше инструкций на задачу) экономит память и кэш.
  • Сложные инструкции позволяют сократить количество обращений к памяти.
  • Современные гибридные реализации (CISC/RISC) устраняют большинство недостатков, сохраняя совместимость.

Интересные факты

  • Термин «CISC» появился как антитеза RISC и впервые был использован в 1980-х годах для описания традиционных архитектур.
  • Процессор VAX-11/780 (1977) содержал около 300 инструкций, многие из которых были редко используемыми.
  • Архитектура x86, несмотря на критику, остаётся доминирующей на рынке ПК и серверов более 40 лет.
  • В 1990-х годах компания Intel пыталась перейти на RISC-архитектуру (i860, i960), но проекты не получили массового распространения из-за отсутствия совместимости с x86.
  • Современные процессоры ARM (RISC) постепенно вытесняют CISC в мобильном сегменте и серверах (Apple M1/M2, AWS Graviton), но в настольных ПК x86 сохраняет лидерство.

Источники

  • Хеннесси Дж., Паттерсон Д. «Архитектура компьютера и проектирование компьютерных систем». — 5-е изд. — СПб.: Питер, 2019.
  • Intel Corporation. «Intel 64 and IA-32 Architectures Software Developer’s Manual». — 2023.
  • Таненбаум Э., Остин Т. «Архитектура компьютера». — 6-е изд. — СПб.: Питер, 2013.
  • Patterson D. A., Ditzel D. R. «The Case for the Reduced Instruction Set Computer» // ACM SIGARCH Computer Architecture News. — 1980. — Vol. 8, № 6. — P. 25–33.
  • Stallings W. «Computer Organization and Architecture». — 11th ed. — Pearson, 2019.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →