指令集或指令集体系结构是向计算机提供命令以指导计算机处理数据操作的计算机结构。指令集由指令、寻址模式、本机数据类型、寄存器、中断、异常处理和内存体系结构组成。指令集可以通过使用解释器在软件中进行仿真,也可以内置到处理器的硬件中。指令集架构可以被视为软件和硬件之间的边界。微控制器和微处理器的分类可以基于RISC和CISC指令集架构进行。


ding="async" class="wp-image-24272 size-full" src="https://uploads.9icnet.com/images/aritcle/20230519/11.jpg" alt="Instruction set of Processor" width="228" height="245">
处理器的指令集

指令集指定处理器功能,包括处理器支持的操作、处理器的存储机制以及将程序编译到处理器的方式。

什么是RISC和CISC?

RISC和CISC可以扩展如下:

RISC代表精简指令集计算机
CISC代表复杂指令集计算机。

精简指令集计算机体系结构

RISC Architecture
RISC体系结构

利用小型和高度优化的指令集的微控制器体系结构被称为精简指令集计算机或简称为RISC。它也被称为LOAD/STORE体系结构。

在20世纪70年代末和80年代初,RISC项目主要由斯坦福大学、加州大学伯克利分校和IBM开发。IBM研究团队的John Coke通过比CISC更快地减少处理计算所需的指令数量,开发了RISC。与CISC架构相比,RISC架构更快,并且制造RISC架构所需的芯片也更便宜。

RISC体系结构的典型特征

  • RISC的流水线技术,同时执行多个部分或多个阶段的指令,从而优化CPU上的每条指令。因此,RISC处理器每指令有一个周期的时钟,这被称为单周期执行。
  • 它优化了寄存器的使用,在RISC中有更多的寄存器数量,并且可以防止内存中更多的交互。
  • 简单的寻址模式,甚至复杂的寻址都可以通过使用算术AND/OR逻辑运算来完成。
  • 它通过使用相同的通用寄存器简化了编译器的设计,该寄存器允许在任何上下文中使用任何寄存器。
  • 为了有效地使用寄存器和优化流水线使用,需要减少指令集。
  • 用于操作码的位数减少了。
  • 一般来说,RISC中有32个或更多的寄存器。

RISC处理器体系结构的优势

  • 由于RISC的指令集很小,高级语言编译器可以产生更高效的代码。
  • RISC由于其简单性,允许自由使用微处理器上的空间。
  • 许多RISC处理器不使用Stack,而是使用寄存器来传递参数和保存局部变量。
  • RISC函数只使用少数参数,并且RISC处理器不能使用调用指令,因此,使用易于流水线传输的固定长度指令。
  • 操作的速度可以被最大化,并且执行时间可以被最小化。
  • 所需的指令格式数量非常少(少于四个)、指令数量很少(约150个)和寻址模式很少(少于四种)。

RISC处理器体系结构的缺点

  • 随着指令长度的增加,由于每条指令的字符周期,RISC处理器执行的复杂性增加。
  • RISC处理器的性能主要取决于编译器或程序员,因为编译器的知识在将CISC代码转换为RISC代码时起着主要作用;因此,生成的代码的质量取决于编译器。
  • 而将CISC代码重新调度为RISC代码,称为代码扩展,将增加大小。而且,这种代码扩展的质量将再次取决于编译器,也取决于机器的指令集。
  • RISC处理器的一级缓存也是RISC的一个缺点,因为这些处理器在芯片本身上有大的内存缓存。为了提供指令,它们需要非常快速的存储系统。

复杂指令集计算机体系结构

CISC处理器体系结构的主要目的是通过使用较少的装配线来完成任务。为此,构建处理器以执行一系列操作。复杂指令也被称为MULT,它直接操作计算机的内存库,而不需要编译器来执行存储和加载功能。

CISC Architecture
CISC体系结构

CISC体系结构的特点

  • 为了简化计算机体系结构,CISC支持微程序设计。
  • CISC有更多的预定义指令,这使得高级语言易于设计和实现。
  • CISC由较少数量的寄存器和较多数量的寻址模式组成,通常为5到20个。
  • CISC处理器执行指令需要不同的周期时间——多个时钟周期。
  • 由于CISC的指令集复杂,流水线技术非常困难。
  • CISC由更多数量的指令组成,通常从100到250。
  • 很少使用特殊说明。
  • 内存中的操作数是由指令操纵的。

CISC架构的优势

  • 每个机器语言指令被分组为一个微码指令并相应地执行,然后被存储在主处理器的内存中,称为微码实现。
  • 由于微码存储器比主存储器快,因此可以实现微码指令集,而不会比硬连线实现显著降低速度。
  • 整个新指令集可以通过修改微程序设计来处理。
  • CISC,可以通过构建丰富的指令集来减少实现程序所需的指令数量,还可以更有效地使用慢速主存储器。
  • 由于指令的超集由所有早期的指令组成,这使得微编码变得容易。

CISC的缺点

  • 不同指令占用的时钟时间会有所不同——因此,机器的性能会降低。
  • 随着处理器的每个新版本都由前几代的子集组成,指令集的复杂性和芯片硬件都会增加。
  • 在一个典型的编程事件中,只有20%的现有指令被使用,尽管存在许多甚至不经常使用的专门指令。
  • 条件代码由CISC指令设置,作为每个指令的副作用,这需要时间来进行设置,并且随着后续指令更改条件代码位,因此编译器必须在发生这种情况之前检查条件代码位。

RISC与CISC

  • 程序员可以通过删除RISC中不必要的代码来防止浪费周期,但是,在使用CISC代码时,由于CISC的低效率而导致浪费周期。
  • 在RISC中,每条指令都是用来执行一个小任务的,因此,为了执行一个复杂的任务,多条小指令被一起使用,而使用CISC执行同一任务只需要很少的指令——因为它能够执行复杂的任务——因为指令类似于高级语言代码。
  • CISC通常用于计算机,而RISC用于智能手机、平板电脑和其他电子设备。

下图显示了RISC和CISC之间的更多差异

RISC vs. CISC
RISC与CISC

因此,本文讨论了RISC和CISC体系结构;RISC和CISC处理器体系结构的特点;简要介绍了RISC和CISC的优缺点以及RISC与CISC体系结构之间的区别。有关RISC和CISC体系结构的更多信息,请在下面发表评论。

图片来源:

  • arstechnica处理器的指令集
  • lsi竞赛的RISC体系结构
  • RISC与CISC的比较