01计算机组成原理与体系结构

3-CISC与RISC

2021-07-21 408 1

简介 CISC、RISC的特点


upfile

为什么RISC寻址方式支持的方式少?而CISC支持寻找方式多?

    RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。

    早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。比如对于乘法运算,在CISC架构的CPU上,您可能需要这样一条指令:MUL ADDR A, ADDR B就可以将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.


upfile


CISC与RISC的区别

  我们经常谈论有关"PC"与"Macintosh"的话题,但是又有多少人知道以Intel公司X86为核心的PC系列正是基于CISC体系结构,而 Apple公司的Macintosh则是基于RISC体系结构,CISC与RISC到底有何区别?

  从硬件角度来看CISC处理的是不等长指令集,它必须对不等长指令进行分割,因此在执行单一指令的时候需要进行较多的处理工作。而RISC执行的是等长精简指令集,CPU在执行指令的时候速度较快且性能稳定。因此在并行处理方面RISC明显优于CISC,RISC可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多个处理器同时执行。由于RISC执行的是精简指令集,所以它的制造工艺简单且成本低廉。

RISC的设计重点在于降低由硬件执行指令的复杂度,因为软件比硬件容易提供更大的灵活性和更高的智能,因此RISC设计对编译器有更高的要求;CISC的设计则更侧重于硬件执行指令的功能,使CISC的指令变得很复杂。总之RISC对编译器的要求高,CISC强调硬件的复杂性,CPU的实现更复杂。


CISC的优势

    微程序设计易于实现,而且比硬接线控制单元便宜得多

    由于该体系结构使用通用硬件来执行命令,因此在不改变指令集结构的情况下,可以很容易地向芯片中添加新的命令

    由于指令的复杂性(或更大的能力)允许使用内存,这种体系结构可以有效地利用主内存

    完成给定任务的指令数较少

    编译器不需要非常复杂,因为可以编写微程序指令集来匹配高性能处理器的结构


CISC的劣势

    芯片、硬件和指令集随着处理器的每一代变得复杂。

    每一条CISC的指令,需要1个或多个CPU时钟周期,机器的整体性能降低


与CISC处理器相比RISC的优势

    由于指令集的简化,RISC处理器的性能通常是CISC处理器的2到4倍。

    由于指令集的减少,这种结构使用的芯片空间更少。这使得在同一个芯片上放置诸如浮点运算单元或内存管理单元之类的额外功能成为可能

    这种在单个硅片上使用由更多元件组成的更小芯片的架构降低了每个芯片的成本。

    RISC处理器结构简单,研制周期比CISC处理器周期短

    在RISC处理器中,由于使用了许多寄存器来保存和传递指令,因此指令的执行率很高


与CISC处理器相比RISC架构的劣势

    RISC处理器的性能取决于正在执行的代码。当编译器的调度工作不好时,处理器会花费大量时间等待第一条指令的结果,然后再继续执行下一条后续指令

    指令执行RISC处理器需要非常快的内存系统来提供各种指令。通常,在大多数基于RISC的系统中,芯片上都提供了一个大的内存缓存(苹果的M1 CPU就是RISC架构,增加了寄存器缓冲和cache提高指令的处理速度)


RISC设计思想准则

    1. 指令集----RISC处理器减少指令集的种类,通常一个周期一条指令,也就是说指令的周期是固定的,编译器或程序员通过几条指令完成一个复杂的操作;CISC的指令长度通常不固定。

    2. 流水线----流水线的本质就是CPU并行运行,只是并行运行不像FPGA中的那么直接,它只是把一条指令分成几个更小的执行单元;CISC指令的执行需要调用一个微程序,明显没有RISC的指令吞吐量大。

    3. 寄存器----RISC的寄存器拥有更多的通用寄存器,寄存器操作较多,例如ARM具有27个寄存器,CISC的寄存器都是用于特定目的的。

    4. Load-store结构----处理器只处理寄存器中的数据,这是因为访问存储器很耗时,同时对外部存储器的读写会影响其寿命;CISC能够在存储器中直接运行

    5. 寻址方式简化,不像CISC那样的复杂众多的寻址方式

    



总结:

upfile

补充说明:

CISC: 计算机还没有大规模通用的时候提出来的,用于专用领域的计算机,计算机体积比较大。

可变长: 指令编码的长度不固定

硬布线: 相对于软布线,实现相同的功能效率更高

CISC:对于编译器的开发十分有利,高级语言复杂的语法可以用一条CISC的指令可以实现,如果使用RISC,可能需要多条指令。

RISC:对于编译器的设计有更高的要求,对于高级语言的一条语句,需要多条RISC指令完成,而对于CISC可能一条指令就可以完成。



CISC的代表:

IBM 370/168、Intel 80486、X86、 VAX 11/780


RISC的代表:

ARM、Apple M1


    

点赞 1

文章评论

欢迎您:

纸上得来终觉浅,绝知此事要躬行!

112 文章 38820 浏览 3 评论

联系我

  •   QQ:    361352119
  •  Email:  lisimmy@sina.com
  • 微信: