这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 精简指令集RISC和复杂指令集CISC的一点小知识。

共4条 1/1 1 跳转至

精简指令集RISC和复杂指令集CISC的一点小知识。

工程师
2014-07-05 08:37:43     打赏
早上起来,看到论坛高层之一大boss在说这个,我突然想起来今年嵌入式课有讲过这块,但是我基本记不得,所以把百度一下,发现个好帖子,顺便发上来,手机发帖不怎么好用,我先占着,中午用电脑编辑一下。

工程师
2014-07-05 08:38:28     打赏
2楼

复杂指令(CISC)系统

       复杂指令系统计算机(ComplexInstructionSetComputer)简称(CISC),微处理器是台式计算机系统的基本处理部件,每个微处理器的核心是运行指令的电路。指令由完成任务的多个步骤所组成,把数值传送进寄存器或进行相加运算。这些指令被称为微理器的微代码(microcode),不同制造商的微处理器有不同的微代码系统,制造商可按自己的意愿使微代码做得简单或复杂指令系统越丰富,微处理器编程就越简单,然而,执行速度也相应越慢。

概述 

    复杂指令集计算机(CISC),长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集成电路技术.特别是VLSI(超大规模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式.甚至某些指令可支持高级语言语句归类后的复杂操作.至使硬件越来越复杂,造价也相应提高.为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外.还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能,傲处理在分析每一条指令之后执行一系列初级指令运算来完成所需的功能,这种设计的型式被称为复杂指令集计算机(ComplexInstructionSetComputer-CISC)结构.一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条.

      传统计算机大多数为复杂指令系统计算机CISC(ComplexInstructionSetComputer),机器结构以存储器为中心,认为机器执行速度和程序代码大小成比例,绝大多数指令需要多个时钟周期执行完毕。计算机指令系统十分庞大和复杂(指令条数多,寻址方式多,指令格式也很多),如1973年的IBM370/168基本指令208条,寻址方式4种,指令格式2~6个字节。1978年的VAXII/780基本指令304条,24种寻址方式,指令格式2~57个字节,其中微代码存储器大小约480KB。指令的控制执行是采用微程序控制技术,有专用的寄存器。这样庞大的指令系统使得控制器十分复杂,占用了大量CPU芯片面积,可是有些复杂指令又用得很少,难以用优化编译生成高效目标代码。处理器的执行效率不高。指令系统与软件之间语义差别越来越大,软件设计任务十分繁重,整个设计风格不是十分经济有效的。

缺点 

    采用复杂指令系统的计算机有着较强的处理高级语言的能力.这对提高计算机的性能是有益的.当计算机的设计沿着这条道路发展时.有些人没有随波逐流.他们回过头去看一看过去走过的道路,开始怀疑这种传统的做法:IBM公司没在纽约Yorktown的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题.因为当时已感到,日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能。1979年以帕特逊教授为首的一批科学家也开始在美国加册大学伯克莱分校开展这一研究.结果表明,CISC存在许多缺点. 

     首先.在这种计算机中.各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80%指令.只占一个处理器指令系统的20%.事实上最频繁使用的指令是取、存和加这些最简单的指令.这样-来,长期致力于复杂指令系统的设计,实际上是在设计一种难得在实践中用得上的指令系统的处理器.

     同时.复杂的指令系统必然带来结构的复杂性.这不但增加了设计的时间与成本还容易造成设计失误.此外.尽管VLSI技术现在已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展.在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差.由于采用二级的微码执行方式,它也降低那些被频繁调用的简单指令系统的运行速度.

      因而.针对CISC的这些弊病.帕特逊等人提出了精简指令的设想即指令系统应当只包含那些使用频率很高的少量指令.并提供一些必要的指令以支持操作系统和高级语言.按照这个原则发展而成的计算机被称为精简指令集计算(ReducedInstructionSetComputer-RISC)结构.简称RISC.

    精简指令(RISC)系统 RISC结构的最大特点是指令系统简单。

    RISC的基本特征:

  (1)精简指令数量; 

  (2)简化指令格式; 

  (3)采用单周期指令;

  (4)采用寄存器操作; 

  (5)硬线控制逻辑; 

  (6)优化编译程序;

    其实目前RISC还具有以下特点 

    1、面向寄存器结构

    2、注重提高流水线的执行效率,尽量让减少流水线断流,提高流水线效率

    3、优化编译技术 

    RISC指令系统设计方法: RISC的设计思想 CISC存在的主要问题:指令系统日趋庞大和复杂,使机器的设计周期延长,成本升高,错误增多,可靠性降低;指令的译码和操作的复杂,使指令执行速度降低;高级语言源程序的优化编译变得困难,编译的时空开销增大;指令系统中,约有80%的指令的使用频度很低,因此,指令系统的性能价格比低。

     针对CISC结构存在的这些问题,提出了RISC的设计思想。 

     RISC实现的关键技术:重叠寄存器窗口技术;采用流水和优化延迟转移技术;在逻辑上采用硬件实现为主,固件实现为辅的技术;采用优化编译技术。  

      详细说明RISC技术中所采用的特殊方法: 

      1、采用较大量的寄存器,采用窗口重叠寄存器技术。 窗口重叠技术:在RISC结构中,为了减少过程调用中保存现场和建立新现场,以及返回时恢复现场等辅助操作,通常将所有寄存器分成若干个组,称为寄存器窗口。每组中有若干个寄存器,每当有过程调用时,就分配一个未被使用的寄存器窗口,这样就可减少保存和恢复现场的开销。此外在每个寄存器窗口中,又分成大小固定的高区、本地和低区三个区段。其中本地区用来存放局部变量,高区在被调用时用来保存调用过程送来的参数,而在返回主调用过程时,存放返回结果。而低区在调用时存放欲送往被调用过程的参数,而在被调用过程返回时用来存放返回结果。在使用时,每一对调用和被调用过程的寄存器窗口各自的低区和高区相互重叠。一旦发生过程调用或返回,在控制由一个窗口转换到另一窗口时,这些参数就通过两个窗口间的公共寄存器区自动的被传送而不需要再用额外的传送时间。 (可参照教材进行理解)。 

      2、采用优化延迟转移技术 优化延迟转移技术:即是使转移指令在准备将控制转向目标指令的同时,执行紧随在转移指令之后的那条指令,也就是是在将转移指令后延迟槽内的指令执行完毕后,才发生真正的转移(不论转移是否成功),这种优化技术可在保证程序正确执行的同时又可避免延迟转移中损失的一个机器周期时间。

        3、采用比较转移指令 比较-转移指令:在RISC机中,把比较和转移(在CISC机中需用两条指令完成的功能)合并成一条指令。该指令将直接对两个对象(寄存器-寄存器或存储器-立即数)进行相等或不等比较,然后根据比较结果判别是否进行转移。这样就可省去一条指令,并不受条件码的 约束。 

        4、采用优化编译技术 优化编译技术:在编译时就可发现可能出现的阻塞情况,由编译器通过重排指令执行序列来消除可能出现的阻塞情况,当无法消除时就填入相应的空操作,因此不需要硬件的互锁流水支持。

      RISC指令系统设计原则: 

     (1)精简指令系统计算机使计算机结构变得更加简单、合理和有效,它克服了传统计算机结构上的不足。下面指出RISC机器应当遵循的原则。 

     (2)在确定指令系统时,选择那些使用频度高的指令,在此基础上增加少量支持操作系统和高级语言实现及其他功能的有用指令,寻址方式也取最基本的一、两种,使指令条数少,格式简单,并具有相同长度。 

    (3)提高处理速度,采用流水线技术使每一条指令都在一个机器周期内完成,因此,增加大量内部通用寄存器,仅存数、取数访问内存,大部分指令操作在寄存器之间进行,采用硬件逻辑控制实现操作,只有少量使用微程序实现。 

    (4)通过精简指令和优化设计编译程序,以简单有效方式支持高级语言实现,将编译器作为机器的基本功能,大大地简化了编译工作,一个周期完成一条指令操作,编译器易于调整指令流。以上原则缩短了研制周期,在性能价格比方面比CISC优越得多。

     CISC和RISC的区别:

    CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。RISC和CISC是设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大,它们主要有:

     (1)指令系统:RISC设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。 

    (2)存储器操作:RISC对存储器操作有限制,使控制简单化;而CISC机器的存储器操作指令多,操作直接。 

    (3)程序:RISC汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC汇编语言程序编程相对简单,科学计算及复杂操作的程序社设计相对容易,效率较高。 

    (4)中断:RISC机器在一条指令执行的适当地方可以响应中断;而CISC机器是在一条指令执行结束后响应中断。

    (5)CPU:RISCCPU包含有较少的单元电路,因而面积小、功耗低;而CISCCPU包含有丰富的电路单元,因而功能强、面积大、功耗大。

     (6)设计周期:RISC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC微处理器结构复杂,设计周期长。 

     (7)用户使用:RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。

     (8)应用范围:由于RISC指令系统的确定与特定的应用领域有关,故RISC机器更适合于专用机;而CISC机器则更适合于通用机。

     简单指令集的CPU在处理一些特定的运算时速度远高于复杂指令集,所以它常被用在工业领域,比如某些软件的专用服务器,流水线操作等方面。 复杂指令集则有更广泛的功能,适用性更广。现在的所有个人多媒体计算机都是用的复杂指令集CPU。


工程师
2014-07-05 08:42:26     打赏
3楼
手机发帖不能换行,这是个大问题啊。。。

院士
2014-07-06 10:59:09     打赏
4楼
尝试调整~~~~

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]