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
| Характеристика | CISC | RISC |
|---|---|---|
| Количество команд | Большое (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 →