1389 字
7 分钟
4.4CISC和RISC的基本概念

指令系统朝着两个截然不同的方向发展:一是通过增强原有指令功能、引入更复杂的指令,将部分软件功能固化到硬件中,这类机器称为复杂指令系统计算机(CISC),典型代表包括采用x86架构的处理器;二是通过精简指令集、简化指令功能,以提升指令执行效率,这类机器称为精简指令系统计算机(RISC),典型代表包括ARM、MIPS等架构的处理器。

4.4.1 复杂指令系统计算机(CISC)#

随着集成电路技术的发展,软件开发成本不断上升,促使设计者在指令系统中加入更多、更复杂的指令,以适应多样化的应用需求,从而形成了CISC架构。

CISC的主要特点如下:

  1. 指令系统庞大复杂,指令数量通常超过200条。
  2. 指令长度不固定,指令格式和寻址方式种类繁多。
  3. 多数指令均可直接访问内存。
  4. 各类指令的使用频率差异显著。
  5. 指令执行时间相差较大,大多数指令需多个时钟周期才能完成。
  6. 控制器多采用微程序控制,部分复杂指令难以用硬连线逻辑实现。
  7. 难以通过优化编译生成高效的目标代码。

如此庞大的指令系统,对设计提出了极高要求,导致研制周期变得很长。后续研究发现,一味追求指令系统的复杂和完备程度并非提升性能的有效途径。对传统CISC指令系统的统计分析表明:各种指令的使用频率相差悬殊,约80%的程序执行仅依赖于20%的简单指令,而其余80%的复杂指令使用频率极低。基于这一观察,设计者开始尝试仅保留高频使用的简单指令,并通过它们组合实现不常用的复杂指令功能,由此催生了RISC架构。

4.4.2 精简指令系统计算机(RISC)#

RISC的核心思想是简化指令系统,强调“寄存器-寄存器”操作,并力求指令格式统一。

RISC的主要特点如下:

  1. 仅选取使用频率最高的简单指令,复杂功能由多条简单指令组合实现。
  2. 指令长度固定,指令格式和寻址方式种类较少。
  3. 仅LOAD/STORE (取数/存数)指令可访问内存,其余运算均在寄存器之间进行。
  4. CPU中配备大量通用寄存器。
  5. 普遍采用指令流水线技术,绝大多数指令在一个时钟周期内完成。
  6. 以硬布线控制为主,极少或完全不使用微程序控制。
  7. 高度依赖编译器优化,以缩短程序执行时间。

此外,在指令系统兼容性方面,CISC架构通常支持向后兼容,即新机型包含旧机型的全部指令并加以扩展。而RISC由于大幅简化指令集、改变指令格式,通常无法与老机型兼容。

历史上,RISC因其高效性和简洁性曾被视为未来处理器的发展方向。然而在现实中,x86架构凭借庞大的软件生态占据主流地位,早期大量软件均基于CISC设计,纯RISC系统难以满足兼容性需求。此外,现代CISC处理器已在内部融合了大量RISC思想,使得两者在性能上的差距日益缩小。与此同时,CISC能提供更丰富的指令功能,这是很多程序设计所需要的。

4.4.3 CISC和RISC的比较#

与CISC相比,RISC的优势主要体现在以下几个方面:

  1. 更高效利用芯片面积。CISC采用微程序控制,其控制存储器占CPU芯片面积的50%以上,而RISC采用硬布线控制,逻辑电路仅占约10%,节省了宝贵的硅片资源。
  2. 更高的运算速度。RISC指令数量少、格式统一、寻址方式简单,配合大量通用寄存器和流水线技术,使大多数指令可在单周期内完成,显著提升执行效率。
  3. 更易设计与维护。RISC指令系统结构简单,设计周期短;其逻辑清晰,出错概率低,且便于调试和验证,从而提高了系统可靠性。
  4. 更利于编译优化。由于指令类型和寻址方式有限,编译器更容易选择最优指令序列、调整指令调度,生成高效的目标代码。

CISC与RISC的对比如表4.3所示。

表4.3 CISC与RISC的对比

对比项目 \ 类别CISCRISC
指令系统复杂,庞大简单,精简
指令数目一般大于200条一般小于100条
指令字长不固定定长
可访存指令不加限制只有LOAD/STORE 指令
各种指令执行时间相差较大绝大多数在一个周期内完成
各种指令使用频度相差很大都比较常用
通用寄存器数量较少
目标代码难以用优化编译生成高效的目标代码程序采用优化的编译程序,生成代码较为高效
控制方式绝大多数为微程序控制绝大多数为组合逻辑控制
指令流水线可以通过一定方式实现必须实现

评论