ScholarGate
Ассистент

RISC и CISC

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

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

RISC (компьютер с сокращенным набором команд) — это философия проектирования, подчеркивающая небольшой набор простых инструкций фиксированного формата, выполняемых в модели загрузки-хранения; CISC (компьютер со сложным набором команд) подчеркивает больший набор более мощных, часто переменной длины инструкций, включая операции типа «память-память».

Scope

Эта тема охватывает две философии дизайна и их компромиссы: простоту и регулярность инструкций против их богатства и плотности кода, дисциплину загрузки-хранения (load-store) RISC, преимущества конвейеризации простых инструкций, а также то, как современные высокопроизводительные реализации CISC преобразуют сложные инструкции во внутренние RISC-подобные микрооперации. Она исключает детали битового кодирования (форматы и кодирование инструкций) и детали реализации конвейера (конвейеризация и конфликты).

Core questions

  • Какие цели проектирования мотивируют сокращение набора команд до простых, единообразных операций?
  • Как дисциплина загрузки-хранения отличает RISC от CISC?
  • Почему простые, регулярные инструкции легче поддаются конвейеризации?
  • Как современные процессоры x86 совмещают набор команд CISC с RISC-подобным внутренним исполнением?

Key concepts

  • сокращенный набор команд
  • сложный набор команд
  • архитектура загрузки-хранения
  • инструкции фиксированной и переменной длины
  • микрооперации
  • совместное проектирование компилятора и аппаратного обеспечения
  • плотность кода

Key theories

Аргумент RISC
Паттерсон и Дитцель утверждали, что небольшой набор простых инструкций, быстро выполняемых и эффективно конвейеризуемых при хорошей поддержке компилятора, может превзойти сложные наборы команд, чьи сложные инструкции редко используются и трудно реализуются быстро.

Mechanisms

Конструкции RISC сохраняют инструкции простыми, фиксированной длины и типа «регистр-регистр», с отдельными инструкциями загрузки и сохранения для памяти; такая регулярность делает декодирование и конвейеризацию простыми. Конструкции CISC предоставляют сложные инструкции переменной длины, которые могут напрямую обращаться к памяти и выполнять многошаговые операции. Современные реализации CISC декодируют сложные инструкции в последовательности более простых внутренних микроопераций, которые затем выполняются RISC-подобным ядром.

Clinical relevance

Различие RISC/CISC сформировало доминирующие вычислительные платформы: ARM и RISC-V воплощают принципы RISC и лидируют на рынках мобильных устройств, встраиваемых систем, а также все чаще на рынках серверов и ноутбуков, в то время как x86 (архитектура CISC с RISC-подобной внутренней структурой) долгое время доминировала на ПК и серверах. Дискуссия влияет на текущий выбор в отношении энергоэффективности, производительности и программных экосистем.

History

Концепция RISC выросла из исследований IBM 801 и проектов Berkeley RISC и Stanford MIPS начала 1980-х годов, сформулированных в статье Паттерсона и Дитцеля 1980 года. Идеи RISC распространились через коммерческие разработки, такие как SPARC, MIPS, PowerPC и ARM. Тем временем x86 выжила, приняв внутренние RISC-подобные микрооперации, а открытая архитектура RISC-V возобновила импульс для чистого RISC-дизайна.

Debates

Имеет ли по-прежнему значение различие между RISC и CISC?
Поскольку современные чипы CISC внутренне выполняются как RISC-подобные микрооперации, и оба лагеря используют конвейеризацию и кэширование, некоторые утверждают, что первоначальное различие исчезло; другие же считают, что регулярность набора команд по-прежнему влияет на эффективность декодирования, энергопотребление и верификацию.

Key figures

  • David A. Patterson
  • David R. Ditzel
  • John L. Hennessy
  • John Cocke

Related topics

Seminal works

  • patterson1980risc
  • hennessy2019
  • patterson2020

Frequently asked questions

Всегда ли RISC быстрее, чем CISC?
Не обязательно. Простота RISC облегчает конвейеризацию и высокие тактовые частоты, но инструкция CISC может выполнять больше работы за одну инструкцию. На практике высокопроизводительные процессоры CISC преобразуют инструкции в RISC-подобные операции, поэтому реальная производительность зависит от всей микроархитектуры, а не только от метки ISA.
Почему ARM и RISC-V называются архитектурами RISC?
Обе используют небольшие наборы простых, в основном фиксированной длины инструкций с моделью памяти загрузки-хранения и небольшим количеством режимов адресации — определяющие черты философии RISC, — что делает их эффективными в реализации и хорошо подходящими для энергоэффективных и высокопроизводительных разработок.

Methods for this concept

Related concepts