ScholarGate
助手

RISC与CISC

RISC和CISC代表了两种截然不同的指令集设计理念:精简指令集计算机(RISC)倾向于使用少量简单、统一的寄存器到寄存器指令,而复杂指令集计算机(CISC)则提供许多功能强大、长度可变的指令,每条指令能完成更多操作。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

RISC(精简指令集计算机)是一种设计理念,强调使用少量简单、固定格式的指令,并在加载-存储模型中执行;CISC(复杂指令集计算机)则强调使用大量功能更强大、通常长度可变的指令,包括内存到内存的操作。

Scope

本主题涵盖了这两种设计理念及其权衡:指令的简单性和规律性与丰富性和代码密度之间的权衡,RISC的加载-存储(load-store)机制,简单指令的流水线优势,以及现代高性能CISC实现如何将复杂指令在内部转换为类RISC的微操作。本主题不包括位级编码(指令格式和编码)和流水线实现细节(流水线和冒险)。

Core questions

  • 哪些设计目标促使指令集精简为简单、统一的操作?
  • 加载-存储机制如何区分RISC和CISC?
  • 为什么简单、规律的指令更容易进行流水线处理?
  • 现代x86处理器如何协调CISC指令集与类RISC的内部执行?

Key concepts

  • 精简指令集
  • 复杂指令集
  • 加载-存储架构
  • 固定长度与可变长度指令
  • 微操作
  • 编译器-硬件协同设计
  • 代码密度

Key theories

RISC论点
Patterson和Ditzel认为,通过良好的编译器支持,少量简单指令的快速执行和高效流水线处理,其性能可以超越复杂指令集,因为复杂指令集中的复杂指令很少被使用且难以快速实现。

Mechanisms

RISC设计保持指令简单、固定长度且为寄存器到寄存器操作,并使用独立的加载和存储指令访问内存;这种规律性使得解码和流水线处理变得直接。CISC设计提供复杂、长度可变的指令,可以直接访问内存并执行多步操作。现代CISC实现将复杂指令解码为一系列更简单的内部微操作,然后由类RISC的核心执行。

Clinical relevance

RISC/CISC的区别塑造了主导的计算平台:ARM和RISC-V体现了RISC原则,并在移动、嵌入式以及日益增长的服务器和笔记本电脑市场中占据主导地位,而x86(一种具有类RISC内部结构的CISC指令集架构)长期主导着个人电脑和服务器。这场争论为当前关于能效、性能和软件生态系统的选择提供了参考。

History

RISC概念源于20世纪80年代初IBM 801研究以及伯克利RISC和斯坦福MIPS项目,并在Patterson和Ditzel于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操作,因此实际性能取决于整个微架构,而不仅仅是指令集架构的标签。
为什么ARM和RISC-V被称为RISC架构?
两者都使用少量简单、大多固定长度的指令,采用加载-存储内存模型和少量寻址模式——这些是RISC理念的定义性特征——这使得它们易于实现,并非常适合能耗受限和高吞吐量的设计。

Methods for this concept

Related concepts