RISC和CISC指令集是什么?带你了解RISC和CISC特点和区别
指令集或指令集体系结构是计算机的结构,它向计算机提供命令以指导计算机进行处理数据操作。指令集由指令、寻址模式、本机数据类型、寄存器、中断、异常处理和内存体系结构组成。
指令集可以通过使用解释器在软件中模拟或内置到处理器的硬件中。指令集架构可以被认为是软件和硬件之间的边界。一般情况下,微控制器和微处理器的分类可以根据RISC和CISC指令集架构来进行。
此外,指令集规定了处理器的功能,包括处理器支持的操作、处理器的存储机制以及将程序编译到处理器的方式。
RISC体系结构
利用小型且高度优化的指令集的微控制器架构称为精简指令集计算机(Reduced Instruction Set Computer),简称为RISC,同时也被称为LOAD/STORE架构。
在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函数只使用很少的参数,RISC处理器不能使用调用指令,因此使用易于流水线的定长指令。
- 操作速度可以最大化,执行时间可以最小化。
- 需要非常少的指令格式(少于四种)、少量指令(大约150 条)和几种寻址模式(少于四种)。
- 随着指令长度的增加,RISC处理器由于每条指令的字符周期而执行的复杂性增加。
- RISC处理器的性能主要取决于编译器或程序员,因为编译器的知识在将CISC代码转换为RISC代码时起着重要作用。因此,生成代码的质量取决于编译器。
- 将CISC代码重新调度为RISC代码,称为代码扩展,会增加大小。而且,这种代码扩展的质量将再次取决于编译器,也取决于机器的指令集。
- RISC处理器的一级缓存也是RISC的一个缺点,这些处理器在芯片本身上有很大的内存缓存。为了提供指令,它们需要非常快的存储系统。
CISC体系结构
复杂指令集计算机(Complex Instruction Set Computer)构架,简称CISC,其主要目的是通过使用更少的流水线来完成任务。为此,处理器被构建为执行一系列操作。复杂指令也称为MULT,它直接操作计算机的内存条,而不需要编译器执行存储和加载功能。
CISC架构的特点
- 为了简化计算机体系结构,CISC支持微程序设计。
- CISC有更多的预定义指令,这使得高级语言易于设计和实现。
- CISC由较少数量的寄存器和较多数量的寻址方式组成,一般为5到20种。
- CISC处理器执行指令需要不同的周期时间,即多时钟周期。
- 由于CISC指令集复杂,流水线技术难度很大。
- CISC由更多的指令组成,一般为100到250。
- 很少使用特殊说明。
- 内存中的操作数由指令操作。
- 每条机器语言指令被组合成一条微码指令并相应地执行,然后内置存储在主处理器的内存中,称为微码实现。
- 由于微码存储器比主存储器更快,微码指令集可以在没有硬连线实现的显着速度降低的情况下实现。
- 整个新的指令集可以通过修改微程序设计来处理。
- CISC可以通过构建丰富的指令集来减少执行程序所需的指令数,也可以更有效地使用慢速主内存。
- 由于包含所有早期指令的指令超集,这使得微编码变得容易。
- 不同指令占用的时钟时间量会有所不同,因此,机器的性能会降低。
- 随着处理器的每个新版本都包含早期版本的子集,指令集的复杂性和芯片硬件也会增加。
- 在典型的编程事件中,只有20%的现有指令被使用,尽管存在许多甚至不经常使用的专用指令。
- 条件代码由CISC指令设置为每条指令的副作用,这需要时间来设置,并且随着后续指令更改条件代码位。因此,编译器必须在这种情况发生之前检查条件代码位。
RISC与CISC的区别差异
RISC架构是一种精简指令集架构,它的设计思想是将指令集的复杂度降至最低,只包含少量的简单指令,这些指令的执行时间和机器周期相等,可以在一个时钟周期内执行。因此,RISC架构的处理器需要更少的晶体管和内存,因此成本更低,速度更快。RISC架构的指令集主要包括数据传输指令、算术逻辑指令和控制指令等。
CISC架构是一种复杂指令集架构,其指令集包含更多的指令和操作码,可以执行更复杂的操作,如乘法、除法、内存访问、浮点运算等。CISC架构的处理器需要更多的晶体管和内存来处理这些复杂的指令,因此成本更高,速度较慢。CISC架构的指令集主要包括数据传输指令、算术逻辑指令、控制指令和特殊指令等。
总的来说,RISC架构的优点是指令集简单、速度快、易于设计和优化,适用于大多数嵌入式和移动设备,而CISC架构的优点是指令集丰富、功能强大、可编程性好,适用于桌面计算机和服务器等需要处理大量数据和复杂操作的应用场景。
所以概况起来,RISC与CISC二者之间的主要区别差异包括:
- 程序员可以通过删除RISC中不需要的代码来防止浪费周期,但是,使用CISC代码会因为CISC的低效率而导致浪费周期。
- 在RISC中,每条指令都旨在执行一项小任务,因此,为了执行一项复杂的任务,需要同时使用多条小指令,而使用CISC执行同一任务只需要很少的指令,因为它能够执行复杂的任务因为指令类似于高级语言代码。
- CISC通常用于计算机,而RISC用于智能手机、平板电脑和其他电子设备。
总结
可以看出,RISC处理器的指令集比CISC处理器的指令集要简单,执行速度更快,因此适合用于对速度要求较高的应用,例如工作站和嵌入式系统。而CISC处理器的指令集比RISC处理器的指令集要复杂,功能更加强大,适合用于需要处理大量数据和需要执行复杂计算的应用,例如服务器和大型数据库。