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

CISC-процессор

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

История

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

В 1960-х — начале 1970-х годов разработка микропроцессоров была ограничена низкой плотностью транзисторов и медленной памятью. Программирование велось в основном на ассемблере, и разработчики стремились сделать каждую команду максимально «мощной», чтобы сократить объём кода и количество обращений к медленной памяти. Это привело к появлению архитектур, где одна инструкция могла заменять несколько строк машинного кода.

Первые CISC-процессоры

Первым коммерчески успешным микропроцессором, реализующим принципы CISC, стал Intel 4004 (1971 год). Он имел 46 инструкций, но уже выполнял операции над 4-битными словами. Настоящий расцвет CISC начался с процессоров Intel 8080 (1974 год) и Motorola 6800 (1974 год). Эти 8-битные процессоры имели десятки инструкций, многие из которых были многоцикловыми.

Ключевым этапом стало появление процессора Intel 8086 (1978 год), который заложил основу архитектуры x86. Этот 16-битный процессор имел около 100 инструкций, включая сложные строковые операции (REP MOVS, REP SCAS) и поддержку сегментированной памяти. Впоследствии архитектура x86 эволюционировала в 32-битную (IA-32, 1985 год, процессор Intel 80386) и 64-битную (x86-64, 2003 год, AMD Opteron).

Расцвет и кризис

В 1980-х годах CISC-процессоры (Intel 80286, 80386, 80486; Motorola 68020, 68030) доминировали на рынке персональных компьютеров и рабочих станций. Однако к концу десятилетия проявились недостатки CISC:

  • Сложность декодирования: переменная длина команд (от 1 до 15 байт в x86) усложняла конвейерную обработку.
  • Сложность проектирования: реализация сотен сложных инструкций требовала огромного количества транзисторов и увеличивала время разработки.
  • Производительность: из-за многоцикловости многих инструкций частота процессоров росла медленнее, чем у RISC-конкурентов (ARM, MIPS, SPARC).

В ответ на это в конце 1980-х — начале 1990-х годов возникла концепция RISC, которая предлагала упростить набор команд до минимума, делая каждую инструкцию однотактной. Это позволило RISC-процессорам работать на более высоких частотах при той же технологии.

Гибридный подход: CISC с RISC-ядром

Начиная с процессора Intel Pentium Pro (1995 год), производители CISC-процессоров (Intel, AMD) внедрили технологию микроархитектуры с декодированием. Внутри процессора сложные CISC-инструкции (макрокоманды) на лету разбиваются на несколько простых, однотактных микроопераций (µops), которые затем обрабатываются RISC-подобным исполнительным ядром. Внешне для программиста процессор остаётся CISC (поддерживает все старые инструкции), но внутри работает как RISC. Этот подход позволил сохранить совместимость с огромным объёмом существующего программного обеспечения (особенно для x86) и одновременно повысить производительность за счёт конвейеризации, суперскалярности и спекулятивного выполнения.

Классификация и виды

CISC-архитектуры можно классифицировать по нескольким признакам:

По разрядности

По производителю

  • Intel: архитектура x86 (8086, 286, 386, 486, Pentium, Core, Xeon, Atom).
  • AMD: совместимая с x86 архитектура (Am386, K5, K6, Athlon, Opteron, Ryzen, EPYC).
  • Motorola (Freescale/NXP): архитектура 680x0 (68000, 68020, 68040, 68060), использовалась в компьютерах Apple Macintosh (до 1994 года), Amiga, Atari ST.
  • VIA Technologies: процессоры C3, C7, Nano (совместимые с x86).
  • IBM: архитектура System/360 (мэйнфреймы), Power (частично CISC-подобные инструкции, но ближе к RISC).
  • DEC (Digital Equipment Corporation): архитектура VAX (Virtual Address eXtension), одна из самых сложных CISC-архитектур в истории (более 300 инструкций).

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

  • Универсальные (для ПК и серверов): x86-совместимые процессоры (Intel Core, AMD Ryzen).
  • Встраиваемые и микроконтроллеры: Intel 8051 (8-битный CISC), Motorola 68HC11, некоторые модели ARM (хотя ARM — RISC, есть режимы Thumb, которые ближе к CISC).
  • Мэйнфреймы: IBM z/Architecture (потомок System/360), поддерживающая сложные десятичные и строковые инструкции.

Устройство и характеристики

Основные признаки CISC-архитектуры

  1. Переменная длина инструкций: в x86 длина команды может варьироваться от 1 до 15 байт, что усложняет декодирование, но экономит память.
  2. Большое количество режимов адресации: в x86 поддерживаются десятки способов вычисления адреса операнда (регистровая, непосредственная, косвенная, базовая, индексная, базовая с индексом и смещением и т.д.).
  3. Сложные инструкции, работающие с памятью: например, инструкция ADD [mem], reg выполняет чтение из памяти, сложение и запись обратно — за одну команду.
  4. Многоцикловость: сложные инструкции (например, целочисленное деление DIV, строковые операции REP MOVS) могут выполняться десятки и сотни тактов.
  5. Поддержка высокоуровневых конструкций: в старых CISC (VAX, Motorola 68000) были инструкции для вызова функций (CALL), возврата (RET), проверки границ массива (BOUND), поиска подстроки (SCAS).

Микроархитектурные особенности современных CISC (x86)

Современные CISC-процессоры (Intel Core, AMD Ryzen) имеют сложную внутреннюю структуру:

  • Декодер: преобразует сложные CISC-инструкции в последовательности микроопераций (µops). Для часто используемых инструкций (например, MOV, ADD, CMP) декодер может быть прямым (1 инструкция → 1–4 µops). Для редких и сложных инструкций используется микрокод (ROM).
  • Планировщик: распределяет микрооперации по исполнительным блокам (ALU, FPU, блоки загрузки/сохранения).
  • Исполнительные блоки: как правило, RISC-подобные, однотактные или с фиксированной задержкой.
  • Кэш микроопераций (µop cache): хранит уже декодированные микрооперации, чтобы избежать повторного декодирования часто выполняемых инструкций.
  • Спекулятивное выполнение: процессор предсказывает ветвления и выполняет инструкции заранее, отменяя результат при неверном предсказании.

Преимущества CISC

  • Плотность кода: одна CISC-инструкция может заменять 3–5 RISC-инструкций, что уменьшает размер программы и снижает требования к памяти.
  • Совместимость: архитектура x86 сохраняет обратную совместимость на протяжении 40+ лет, что позволяет запускать старое программное обеспечение на новых процессорах.
  • Простота компиляции: компиляторы могут генерировать меньше инструкций, используя сложные макрокоманды.
  • Эффективность для некоторых задач: строковые операции, работа с битовыми полями, десятичная арифметика могут быть реализованы одной инструкцией.

Недостатки CISC

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

Применение

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

Подавляющее большинство настольных и портативных компьютеров в мире (Windows, macOS, Linux) используют процессоры с архитектурой x86 (CISC). Это связано с огромной программной экосистемой, накопленной за десятилетия.

Серверы и центры обработки данных

Процессоры Intel Xeon и AMD EPYC (архитектура x86-64) доминируют на рынке серверов. Они обеспечивают высокую производительность, поддержку больших объёмов памяти (до нескольких терабайт) и аппаратную виртуализацию.

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

Хотя во встраиваемых системах доминируют RISC-архитектуры (ARM, RISC-V), CISC-процессоры (например, Intel Atom, AMD Geode) используются в промышленных контроллерах, терминалах, медицинском оборудовании и системах с жёсткими требованиями к совместимости с x86-софтом.

Мэйнфреймы

Архитектура IBM z/Architecture (CISC-подобная) используется в мэйнфреймах для банковских систем, государственных баз данных и крупных корпоративных приложений. Она поддерживает десятичную арифметику, транзакционную память и аппаратную шифровальную обработку.

Примеры CISC-процессоров

МодельГод выпускаРазрядностьКоличество транзисторовПримечания
Intel 8086197816 бит29 000Основа архитектуры x86
Intel 80386198532 бита275 000Первый 32-битный x86-процессор
Intel Pentium199332 бита3,1 млнПервый суперскалярный x86
Intel Core 2 Duo200664 бита291 млнПервый двухъядерный Core
AMD Ryzen 9 7950X202264 бита13,1 млрд16 ядер, 32 потока, 5,7 ГГц
Motorola 68000197916/32 бита68 000Использовался в Macintosh, Amiga
IBM z15201964 бита (z/Arch)12,2 млрд12 ядер, до 5,2 ГГц

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

  • Самая сложная CISC-архитектура — VAX от DEC (1977 год). Она имела более 300 инструкций, включая такие экзотические, как POLY (вычисление полинома), CRC (циклический избыточный код) и EDITPC (редактирование строк).
  • Микрокод — ключевая технология CISC. Впервые применён в IBM System/360 (1964 год). Микрокод позволяет реализовать сложные инструкции в виде последовательностей простых микроопераций, хранящихся в ПЗУ.
  • Процессор Intel 80286 (1982 год) поддерживал защищённый режим с виртуальной памятью, но из-за ошибки в микрокоде не мог переключаться обратно в реальный режим без сброса процессора.
  • Архитектура x86 настолько сложна, что её полная документация (Intel Software Developer’s Manual) занимает более 5000 страниц.
  • В 2020-х годах компания Apple перевела свои компьютеры Mac с CISC (x86) на RISC (ARM), что привело к значительному росту производительности и энергоэффективности. Однако на рынке ПК и серверов x86 продолжает доминировать.

Критика

Основная критика CISC-архитектуры (особенно x86) связана с её историческим наследием. Критики (в том числе создатели RISC, такие как Дэвид Паттерсон и Джон Хеннесси) утверждают, что:

  • CISC — это «архитектурный компромисс», возникший из-за ограничений памяти в 1970-х годах, который больше не актуален.
  • Сложные инструкции редко используются современными компиляторами, которые предпочитают генерировать простые, предсказуемые последовательности.
  • Энергопотребление и тепловыделение современных CISC-процессоров (до 250 Вт для топовых моделей) значительно выше, чем у RISC-конкурентов (ARM — 5–15 Вт для мобильных чипов).
  • Обратная совместимость x86 приводит к накоплению «мёртвого груза» — поддержка устаревших инструкций (например, AAA, DAA, BOUND) занимает транзисторы и усложняет проектирование.

Сторонники CISC (Intel, AMD) парируют, что современные микроархитектуры (с декодированием в µops) фактически являются гибридными и сочетают преимущества обеих парадигм. Кроме того, огромная программная база x86 делает переход на другие архитектуры экономически нецелесообразным для большинства пользователей.

Источники

  1. Intel Corporation. Intel 64 and IA-32 Architectures Software Developer’s Manual. 2023.
  2. AMD. AMD64 Architecture Programmer’s Manual. 2022.
  3. Hennessy, J. L., Patterson, D. A. Computer Architecture: A Quantitative Approach. 6th ed., Morgan Kaufmann, 2019.
  4. Tanenbaum, A. S., Austin, T. Structured Computer Organization. 6th ed., Pearson, 2012.
  5. Motorola. M68000 Family Programmer’s Reference Manual. 1992.
  6. IBM. z/Architecture Principles of Operation. 2021.
  7. Patterson, D. A. «Reduced Instruction Set Computers». Communications of the ACM, vol. 28, no. 1, 1985, pp. 8–21.
  8. Halfhill, T. R. «RISC vs. CISC: The Post-RISC Era». Microprocessor Report, 1995.

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

На главную BFOmetr →