问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

计算机组成结构—CISC和RISC

创作时间:
作者:
@小白创作中心

计算机组成结构—CISC和RISC

引用
CSDN
1.
https://m.blog.csdn.net/weixin_74098337/article/details/138964255

计算机的指令集架构(ISA)主要分为CISC(复杂指令集计算机)和RISC(精简指令集计算机)两大类。CISC通过设置更多、更复杂的指令来实现更多功能,而RISC则通过减少指令种类、简化指令功能来提升运行速度。本文将详细介绍这两种架构的特点、优缺点及其比较。

最早的 CPU 出现在 20 世纪 70 年代,当时的集成电路技术制约了一块芯片上能实现什么,所以它们的指令集都非常有限;以 8 位 CPU 为主,Intel 8080、MOS 6502、MC 6800 就是其中的代表。之后随着超大规模集成电路技术的发展,微处理器发展得非常迅速,指令集也越来越复杂;并且出现了将处理器、RAM、ROM 和 I/O接口等计算机基本部件集成到一个芯片上的微控制器(MCU),这就是单片机,Intel 的 MCS-51 系列就是其中的代表。


现代计算机按照处理器的指令集架构(Instruction Set Architecture,ISA)主要可以分为两种:

  • CISC(Complex Instruction Set Computer,复杂指令集计算机)
  • RISC(Reduced Instruction Set Computer,精简指令集计算机)

面对越来越多的需求,计算机需要完成的任务越来越重,对计算机性能的要求也越来越高。关于如何提升计算机性能,两种指令集架构代表了不同的思路。

一、CISC

CISC通过设置更多、更复杂的指令来实现更多的功能,这样就可以减少运行程序所需的指令数,依靠硬件提升运行速度。

这种架构的代表公司就是 Intel,它在 1978 年推出了著名的 16 位微处理器 8086,此后又推出了 80286 和 32 位的 80386、80486 以及 奔腾(Pentium)处理器,因而这一系列的处理器都被称为 “x86 架构”。如今已经进入 64 位时代,这一家族采用的指令集架构称为 “ x86-64 ” 或简称 “ x64 ”,代表就是酷睿(Core)处理器。AMD 公司生产的 CPU 主要也是 x86/64 架构。

CISC 的主要特点如下:

  • 指令数目庞大且复杂。Intel 描述全套指令的文档有 1200 多页;
  • 指令字长是可变的。x86-64 的指令长度可以是 1 ~ 15 个字节;
  • 每个指令可以执行若干简单操作,例如存储器读取、存储、计算操作等,因此很多指令都能进行访存操作,可以对内存中的操作数直接进行算术和逻辑运算;
  • 寻址方式丰富。内存中操作数的指示符可以有各种组合,包括偏移量、基址和变址寄存器以及伸缩因子;
  • 逻辑控制电路复杂,寄存器较少,使用主存中的软堆栈来实现堆栈寻址;
  • 对机器级程序来说,实现细节是不可见的,全部由硬件完成。

因此,CISC 有着非常明显的优缺点。

  • 优点:

  • 运行程序所需的指令数少,有效提升性能;

  • 更加依赖硬件实现功能,编写软件代码较为简单。

  • 缺点:

  • 指令执行时间差异很大,复杂的指令需要若干时钟周期才可以实现;

  • 指令的使用频率差异很大,很多复杂指令的使用率并不高;

  • 有些指令非常复杂,以至于无法通过组合逻辑电路直接完成,所以需要采用微程序控制

  • 编译器能做的优化有限。

二、RISC

庞大的指令系统设计起来非常复杂,研制周期变得很长,成本耗费巨大。而且对传统 CISC 的测试发现,典型程序中 80% 的语句只用到了系统中 20% 的指令,这被称为 2-8 规律。

于是人们开始了对指令系统合理性的研究,试图通过 “做减法” 来从另一个角度提升效率,这样就产生了 RISC。

RISC 的主要思路是减少指令种类、简化指令功能,通过降低单个指令的执行周期数(CPI)来提高 MIPS,从而提升运行速度。

由于简化了指令集,CPU 芯片就不需要太大的空间来制作逻辑控制电路,而可以加入更多的寄存器,这样就可以让数据运算更快。基于这样的想法,IBM 公司开发出了第一代 RISC 架构计算机;与此同时,斯坦福大学的 RISC 研究课题 MIPS,考虑到了对处理器流水线的优化,研究结果转化成了后来 MIPS 公司的 R 系列产品。

1985 年,Acom 公司设计出了基于 RISC 指令集的 32 位计算机,简称 ARM(Acorn RISC Machine)。1990 年,Acom 改组为 ARM 公司,专门研发芯片架构、出售芯片技术授权,它的指令集架构就被称为 “ARM 架构”。由于 ARM 架构低功耗、低成本的特点,在嵌入式处理器中得到了非常广泛的应用:智能手机、智能汽车、智能家居等各种领域都可以看到 ARM 架构处理器的身影。

如今 RISC 架构已经发展到第五代,称为RISC-V,这是一个完全开源的指令集架构,采用宽松的 BSD 协议,企业可以完全自由免费使用,同时也容许企业添加自有指令集进行拓展。

RISC 的主要特点有:

  • 指令数量比 CISC 要少得多;只使用频度较高的简单指令,通过简单指令的组合实现复杂指令功能。早期的 RISC 指令通常少于 100 个;

  • 指令字长是固定的。早期的 RISC 通常将所有的指令都编码为 4 个字节;

  • 允许访存的指令只有 load 和 store,这被称为load / store 体系结构。因此只能对寄存器中的操作数进行算术和逻辑运算,不能直接对内存中的操作数进行运算;

  • 寻址方式简单,一般所有的 load / store 都通过寄存器中的内容和指令字段中的偏移量来实现;

  • 逻辑控制电路比较简单,有大量的通用寄存器,可以使用硬堆栈来实现堆栈寻址。

  • 对机器级程序来说,实现细节是可见的。因此编译器需要在一些约束条件下进行性能优化;
    因此,RISC 的优缺点和 CISC 相比也是非常明显的。

  • 优点:

  • CPI 大大降低,并且通过大量寄存器减少了访存次数,有效提升性能;

  • 采用流水线技术,大部分指令在一个时钟周期完成;采用超标量和超流水线技术,可以使每条指令的平均执行时间小于一个时钟周期;

  • 控制器便于设计和实现,采用组合逻辑控制(硬布线),不用微程序控制;

  • 可以利用编译器对程序性能进行优化。

  • 低功耗、低成本

  • 缺点:

  • 指令的种类和寻址方式都比较少,编写软件比较麻烦;有些早期的 RISC 机器甚至没有乘法指令,需要用一系列加法来实现;

  • 对编译器的要求比较高,编译器采用不同的优化策略可以显著改变运行性能;

  • 不同指令系统间兼容性差。

三、CISC和RISC的比较

下表中详细列出了 CISC 和 RISC 的特点对比:

对比项目
CISC
RISC
指令数量
较少
指令字长
不固定
固定
可访存指令
无限制
Load / Store
各种指令使用频率
相差很大
相差不大
各种指令执行时间
相差较大
绝大多数在一个时钟周期内完成
寻址方式
通用寄存器数量
较少
堆栈寻址
软堆栈
硬堆栈
控制方式
微程序控制
组合逻辑控制(硬布线)
机器级程序实现细节
不可见
可见
编译器
难以优化
需要优化
指令流水线
可以通过一定的方式实现
必须实现
功耗
较高
较低
兼容性
较好
较差
主要应用领域
PC 和服务器
嵌入式设备

如今,RISC 机器在发展进化的过程中,逐渐引入了更多的指令;而 CISC 机器也会充分利用高性能的流水线结构。商品化的计算机一般都会将 RISC 和 CISC 结合起来,取长补短。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号