找回密码
 立即注册
搜索

[硬件] CPU 指令集架构 复杂指令集架构(CISC)和精简指令集架构(RISC)

[复制链接]
智慧谋略 发表于 2024-6-8 01:16:04 | 显示全部楼层 |阅读模式
CPU 指令集架构 CPU指令集架构是计算机体系结构中与程序设计有关的重要部分。它定义了计算机如何执行和操作指令,是计算机执行程序的基础。指令集架构包括基本数据类型、指令集、寄存器、寻址模式、存储体系、中断、异常处理以及外部IO等多个方面。
在CPU指令集架构中,主要有两种类型:复杂指令集架构(CISC)和精简指令集架构(RISC)。
复杂指令集架构(CISC)的设计目标是尽可能将任务一次性完成,因此它的指令集更为复杂且功能全面。CISC架构支持多种寻址方式,可以直接对内存进行操作,因此指令的灵活性更强。然而,这种设计也带来了功耗大和执行速度相对较慢的问题,因为它需要消耗更多的处理器资源。常见的CISC架构包括x86架构。
而精简指令集架构(RISC)则采取另一种策略,它将任务拆解,分次完成。RISC架构的指令集简单且规模较小,每个指令只能完成特定的功能。这种设计使得RISC架构的指令执行速度快,功耗低。然而,由于每个指令的功能单一,可能需要更多的指令来完成相同的任务,这在一定程度上影响了效率。常见的RISC架构包括ARM、MIPS、RISC-V和Alpha等。
在应用场景上,CISC架构因其功能全面和灵活性,常被用于需要处理复杂任务和高性能要求的场景,如服务器和工作站等。而RISC架构因其低功耗和高效的特性,常被用于嵌入式系统、移动设备和物联网等领域。

RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构,x86是CISC的代表架构,占领了95%以上的桌面计算机和服务器市场。Arm作为RISC的一种,在智能手机、可穿戴设备等移动处理器市场占领主要地位。
它们的区别在于不同的CPU设计理念和方法。

CPU架构是厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示
早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。比如对于乘法运算,在CISC架构的CPU上,您可能需要这样一条指令:MUL ADDRA, ADDRB就可以将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如上面的例子,C程序中的a*=b就可以直接编译为一条乘法指令。今天只有Intel及其兼容CPU还在使用CISC架构。
RISC架构要求软件来指定各个操作步骤。上面的例子如果要在RISC架构上实现,将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作都必须由软件来实现,比如:MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。
复杂指令集计算机(CISC)
长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集成电路技术.特别是VLSI(超大规模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式.甚至某些指令可支持高级语言语句归类后的复杂操作.至使硬件越来越复杂,造价也相应提高.为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外.还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能 ,傲处理在分析每一条指令之后执行一系列初级指令运算来完成所需的功能,这种设计的型式被称为复杂指令集计算机(Complex Instruction Set Computer-CISC)结构.一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条.
精简指令集计算机(RISC)
采用复杂指令系统的计算机有着较强的处理高级语言的能力.这对提高计算机的性能是有益的.当计算机的设计沿着这条道路发展时.有些人没有随波逐流.他们回过头去看一看过去走过的道路,开始怀疑这种传统的做法:IBM公司没在纽约Yorktown的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题.因为当时已感到,日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能.1979年以帕特逊教授为首的一批科学家也开始在美国加册大学伯克莱分校开展这一研究.结果表明,CISC存在许多缺点.首先.在这种计算机中.各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80%指令.只占一个处理器指令系统的20%.事实上最频繁使用的指令是取、存和加这些最简单的指令.这样-来,长期致力于复杂指令系统的设计,实际上是在设计一种难得在实践中用得上的指令系统的处理器.同时.复杂的指令系统必然带来结构的复杂性.这不但增加了设计的时间与成本还容易造成设计失误.此外.尽管VLSI技术现在已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展.在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差.由于采用二级的微码执行方式,它也降低那些被频繁调用的简单指令系统的运行速度.因而.针对CISC的这些弊病.帕特逊等人提出了精简指令的设想即指令系统应当只包含那些使用频率很高的少量指令.并提供一些必要的指令以支持操作系统和高级语言.按照这个原则发展而成的计算机被称为精简指令集计算机(Reduced Instruction Set Computer-RISC)结构.简称RISC.
CISC与RISC的区别
我们经常谈论有关"PC"与"Macintosh"的话题,但是又有多少人知道以Intel公司X86为核心的PC系列正是基于CISC体系结构,而 Apple公司的Macintosh则是基于RISC体系结构,CISC与RISC到底有何区别?
从硬件角度来看CISC处理的是不等长指令集,它必须对不等长指令进行分割,因此在执行单一指令的时候需要进行较多的处理工作。而RISC执行的是等长精简指令集,CPU在执行指令的时候速度较快且性能稳定。因此在并行处理方面RISC明显优于CISC,RISC可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多个处理器同时执行。由于RISC执行的是精简指令集,所以它的制造工艺简单且成本低廉。
从软件角度来看,CISC运行的则是我们所熟识的DOS、Windows操作系统。而且它拥有大量的应用程序。因为全世界有65%以上的软件厂商都理为基于CISC体系结构的PC及其兼容机服务的,象赫赫有名的Microsoft就是其中的一家。而RISC在此方面却显得有些势单力薄。虽然在RISC上也可运行DOS、Windows,但是需要一个翻译过程,所以运行速度要慢许多。
目前CISC与RISC正在逐步走向融合,Pentium Pro、Nx586、K5就是一个最明显的例子,它们的内核都是基于RISC体系结构的。他们接受CISC指令后将其分解分类成RISC指令以便在遇一时间内能够执行多条指令。由此可见,下一代的CPU将融合CISC与RISC两种技术,从软件与硬件方面看二者会取长补短。
复杂指令集CPU内部为将较复杂的指令译码,也就是指令较长,分成几个微指令去执行,正是如此开发程序比较容易(指令多的缘故),但是由于指令复杂,执行工作效率较差,处理数据速度较慢,PC 中 Pentium的结构都为CISC CPU。
RISC是精简指令集CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译码与数据的处理较快,所以执行效率比CISC高,不过,必须经过编译程序的处理,才能发挥它的效率,我所知道的IBM的 Power PC为RISC CPU的结构,CISCO 的CPU也是RISC的结构。
咱们经常见到的PC中的CPU,Pentium-Pro(P6)、Pentium-II,Cyrix的M1、M2、AMD的K5、K6实际上是改进了的CISC,也可以说是结合了CISC和RISC的部分优点。
CISC与RISC的主要特征对比
比较内容CISCRISC
指令系统复杂,庞大简单,精简
指令数目一般大于200一般小于100
指令格式一般大于4一般小于4
寻址方式一般大于4一般小于4
指令字长不固定等长
可访存指令不加限制只有LOAD/STORE指令
各种指令使用频率相差很大相差不大
各种指令执行时间相差很大绝大多数在一个周期内完成
优化编译实现很难很容易
程序源代码长度较短较长
控制器实现方式绝大多数为微程序控制绝大多数为硬布线控制
软件系统开发时间较短较长




 楼主| 智慧谋略 发表于 2024-6-8 01:16:23 | 显示全部楼层
计算机要谈硬件,肯定离不开CPU。再往编程上聊,就离不开其指令集。经过这么些年的发展,虽说才几十年光景,但按摩尔定律,硅基电子计算机已经发育得很成熟了。目前来看,更多的是在精细和应用场景上进行拓展边界,没有本质上的革新。归纳起来,CPU的基本思路(架构)也就出来了两套:精简指令集(RISC)和复杂指令集(CISC)。是不是觉得奇怪?就没弄出第三者?不是不想弄,是弄不出来。要是能弄,国人那么多有智慧的,即便是困难再大,肯定也给搞出来了。因为这是设计上的一套辩证法,这两个方向,就是这个辩证法的两个方面。正如复杂与简单这对反义词一样,可以找复杂或简单的近义词,但要找到这二者之间的中性,比如既不复杂也不简单,或者既简单又复杂,是很难的一件事。
究其原因,简单和复杂,本身已占尽先机,找到他们的近义词,都已然受限于重重专利,在半导体理论体系里另辟蹊径,又谈何容易。更别提,要在这二者之间找到一个中性的平衡。
所以,你看国产芯片里,绝大部分都是精简指令集的,比如MIPS的龙芯,ARM的海思、飞腾和展讯都是,而且势头还不错。但复杂指令集除了与AMD合作的海光兆芯外,就再无他人。这里面除开技术的复杂因素,更多的是卡脖子的专利。AMD授权给我们的,都是落后好几代的技术,真正左右市场的技术,人家能拿出来?好歹人家就是这么站起来的。AMD最开始(1982年)使用Intel的授权,到1993年终止授权,用了10余年的时间才真正消化掉Intel的技术。这还是在授权生产销售的情况下,可见复杂指令集,的确很复杂。之后与Intel之间更是多年的专利战,直到1997年的K6面世,AMD才在市场上找回一点尊严,而技术上直到多年以后的x86-64才算真正反超。
同时获得Intel授权的,还有Cyrix,但走着走着就消亡了。获得Intel的授权(非主动),尚且如此,更何况受到AMD威胁后,Intel将专利看得更紧了。在AMD与Intel的这场旷日持久的相爱相杀中,占据了复杂指令集(X86为代表)所有容易走的路。
RISC和CISC之间的区别RISC和CISC是两种不同类型的计算机架构,用于设计计算机中的微处理器。RISC和CISC的根本区别在于,RISC(精简指令集计算机)包括简单指令,需要一个周期,而CISC(复杂指令集计算机)包括复杂指令,需要多个周期。
阅读本教程,了解更多关于RISC和CISC的信息,以及这两种架构的不同之处。
什么是RISC在RISC架构中,计算机系统的指令集被简化以减少执行时间。RISC架构有一个小的指令集,一般包括寄存器到寄存器的操作。

RISC架构使用相对简单的指令格式,易于解码。指令的长度可以是固定的,并与字的边界对齐。RISC处理器每个时钟周期只能执行一条指令。
以下是RISC处理器的一些重要特征
  • 一个RISC处理器有几条指令。
  • RISC处理器有几种寻址模式。
  • 在RISC处理器中,所有的操作都在CPU的寄存器中进行。
  • RISC处理器可以是固定长度的。
  • RISC可以是硬接线,而不是微编程控制。
  • RISC用于单周期指令的执行。
  • RISC处理器具有容易解码的指令格式。
RISC架构的特点是小而简单的指令集和高效的执行流水线。这使RISC处理器能够快速执行指令,但这也意味着它们只能执行有限的任务。
什么是CISCCISC架构包括一个复杂的指令集。CISC处理器有一个可变长度的指令格式。在这种处理器架构中,需要寄存器操作数的指令可以只占用两个字节。
在CISC处理器结构中,需要两个内存地址的指令可能需要五个字节才能组成完整的指令代码。因此,在CISC处理器中,指令的执行可能需要不同数量的时钟周期。CISC处理器还提供对存储在内存中的操作数的直接操作。

CISC处理器架构的主要目标是为每个用高级编程语言编写的语句支持一条机器指令。
以下是CISC处理器架构的重要特征 –
  • CISC可以有可变长度的指令格式。
  • 它支持一组大量的指令,通常为100至250条指令。
  • 它有大量的寻址模式,通常有5到20种不同的模式。
  • CISC有一些执行专门任务的指令,使用频率不高。
CISC架构有一个庞大、复杂的指令集和一个效率较低的执行管道。这使CISC处理器能够执行更广泛的任务,但它们在执行指令时不如RISC处理器快。
RISC和CISC之间的区别下表强调了RISC和CISC架构之间的所有重要差异
S.No.RISCCISC
1.它是精简指令集计算机的缩写。它是复杂指令集计算机的缩写。
2.它是一种使用统一长度的小指令集的微处理器架构。这为用户提供了数百个不同大小的指示。
3.这些简单的指令在一个时钟周期内执行。这种结构有一套特殊用途的电路,有助于高速执行指令。
4.这些芯片的设计相对简单。这些芯片的设计很复杂。
5.它们价格低廉。它们相对昂贵。
6.RISC芯片的例子包括SPARC、POWER PC。CISC的例子包括英特尔架构、AMD。
7.它的指令数量较少。它有更多的指令。
8.它对指令有固定长度的编码。它有可变长度的指令编码。
9.支持简单的寻址格式。这些指令使用复杂的寻址模式与内存互动。
10.它不支持数组。它有大量的指令。它支持数组。
11.它不使用条件代码。使用的是条件代码。
12.寄存器用于程序参数和返回地址。堆栈用于程序参数和返回地址。
结论

RISC和CISC架构之间最显著的区别是指令集的大小和复杂性。RISC是一种微处理器架构,使用统一长度的小指令集,可以快速执行;而CISC架构是提供数百条不同大小的指令,允许用户执行更广泛的任务。

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|探索掌握未知、共创美好未来

GMT+8, 2026-9-17 02:31 , Processed in 0.272563 second(s), 31 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表