计算机组成原理白中英主编课件chp4_第1页
计算机组成原理白中英主编课件chp4_第2页
计算机组成原理白中英主编课件chp4_第3页
计算机组成原理白中英主编课件chp4_第4页
计算机组成原理白中英主编课件chp4_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第四章指令系统4.1指令系统的发展与性能要求4.2指令格式与4.3操作数类型4.4指令和数据的寻址方式4.5典型指令返回考纲要求(一)指令格式

1.指令的基本格式

2.定长操作码指令格式

3.扩展操作码指令格式

(二)指令的寻址方式

1.有效地址的概念

2.数据寻址和指令寻址

3.常见寻址方式

(三)CISC和RISC的基本概念

234.1指令系统的发展与性能要求1、指令在计算机系统中的地位(1)是软件和硬件分界面的一个主要标志硬件设计人员采用各种手段实现它;软件设计人员则利用它编制各种各样的系统软件和应用软件(2)是硬件设计人员和软件设计人员之间的分界面,也是他们之间沟通的桥梁。44.1指令系统的发展与性能要求2、指令系统基本概念指令:就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。微指令是微程序级的命令,它属于硬件;宏指令:由若干条机器指令组成的软件指令,它属于软件;机器指令:介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算操作。本章所讨论的指令,是机器指令。一台计算机中所有机器指令的集合,称为这台计算机的指令系统。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围54.1指令系统的发展与性能要求3、发展情况复杂指令系统计算机,简称CISC。但是如此庞大的指令系统不但使计算机的研制周期变长,难以保证正确性,不易调试维护,而且由于采用了大量使用频率很低的复杂指令而造成硬件资源浪费。精简指令系统计算机:简称RISC,人们又提出了便于VLSI技术实现的精简指令系统计算机。小型机:常见型号。IBM公司生产。as400(银行)。risc6000(证券公司)。64.1指令系统的发展与性能要求4、为什么会出现CISC到RISC的转变(作业)2/8规则控制器设计难度下降74.1指令系统的发展与性能要求5、对指令系统的要求完备性:完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。一台计算机中最基本、必不可少的指令是不多的。许多指令可用最基本的指令编程来实现。例如,乘除运算指令、浮点运算指令可直接用硬件来实现,也可用基本指令编写的程序来实现。采用硬件指令的目的是提高程序执行速度,便于用户编写程序。有效性:有效性是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。规整性:规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。对称性是指:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;匀齐性是指:一种操作性质的指令可以支持各种数据类型,如算术运算指令可支持字节、字、双字整数的运算,十进制数运算和单、双精度浮点数运算等;指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系,以方便处理和存取。例如指令长度和数据长度通常是字节长度的整数倍。兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。但由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到“向上兼容(对指令系统的要求)”,即低档机上运行的软件可以在高档机上运行。(由于时间差异不可能完全兼容,低档机上运行的软件可以在高档机上运行)84.1指令系统的发展与性能要求6、低级语言与高级语言关系

比较内容高级语言低级语言(机器语言)

1对程序员的训练要求(1)通用算法(2)语言规则(3)硬件知识

有较少不要

有较多要

2对机器独立的程度独立不独立

3编制程序的难易程度易难

4编制程序所需时间短较长

5程序执行时间较长短

6编译过程中对计算机资源的要求多少94.2指令格式影响计算机指令格式的因素(作业:自己模拟的指令系统计算加法,输入,存储,计算,存储,输出。三位二进制数表示指令,地址1000——1111。指令与结果都放在地址内。)机器的字长存储器的容量指令的功能指令能反映以下信息做什么操作如果需要操作数,从哪里取结果送哪里下一条指令从哪里取所以指令格式包括两个方面:操作码字段地址码字段104.2指令格式

一、操作码设计计算机时,对指令系统的每一条指令都要规定一个操作码。指令的操作码OP表示该指令应进行什么性质的操作,如进行加法、减法、乘法、除法、取数、存数等等。不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。组成操作码字段的位数一般取决于计算机指令系统的规模。较大的指令系统就需要更多的位数来表示每条特定的指令。等长(指令规整,译码简单)例如IBM370机,该机字长32位,16个通用寄存器R0~R15,共有183条指令;指令的长度可以分为16位、32位和48位等几种,所有指令的操作码都是8位固定长度。固定长度编码的主要缺点是:信息的冗余极大,使程序的总长度增加。11二、地址码根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。三地址指令二地址指令单地址指令零地址指令操作码(4位)A1(6位)操作码(4位)A1(6位)A2(6位)操作码(4位)A1(6位)A2(6位)操作码A3(6位)12二、地址码三地址指令指令格式如下:操作码θ

第一操作数A1

第二操作数A2

结果A3功能描述:(A1)θ(A2)→A3(PC)+1→PC这种格式虽然省去了一个地址,但指令长度仍比较长,所以只在字长较长的大、中型机中使用,而小型、微型机中很少使用。θA3A2A113二、地址码二地址指令其格式如下:

操作码θ第一操作数A1第二操作数A2

功能描述:(A1)θ(A2)→A1(PC)+1→PC二地址指令在计算机中得到了广泛的应用,但是在使用时有一点必须注意:指令执行之后,A1中原存的内容已经被新的运算结果替换了。θA2A114二、地址码二地址地址根据操作数的物理位置分为:SS存储器-存储器类型RS寄存器-存储器类型RR寄存器-寄存器类型 慢15二、地址码一地址指令指令格式为:操作码θ

第一操作数A1功能描述:(AC)θ(A1)→A1(PC)+1→PC单操作数运算指令,如“+1”、“-1”、“求反”指令中给出一个源操作数的地址θA116二、地址码零地址指令

其格式为:操作码θ“停机”、“空操作”、“清除”等控制类指令。θ17三、指令长度概念指令字长度(一个指令字包含二进制代码的位数)机器字长:计算机能直接处理的二进制数据的位数。单字长指令半字长指令双字长指令多字长指令的优缺点优点提供足够的地址位来解决访问内存任何单元的寻址问题;缺点必须两次或多次访问内存以取出一整条指令,降低了CPU的运算速度,又占用了更多的存储空间。指令系统中指令采用等长指令的优点:各种指令字长度是相等的,指令字结构简单,且指令字长度是不变的;采用非等长指令的的优点:各种指令字长度随指令功能而异,结构灵活,能充分利用指令长度,但指令的控制较复杂。指令格式优化优化原由: 指令字长要短,以得到时间和空间上的优势;而指令字长必须有足够的长度。(矛盾!)原则: 在不减少指令数量的前提下,尽可能缩短指令字的长度。指令字长一般应是机器字符长度的整数倍以便存储系统的管理。若机器中字长是L位,则指令字长最好是0.5L,L,2L,4L,8L等。优化方法:1、尽可能减少地址码的个数 尽可能采用单地址指令格式;操作数和运算结果尽可能存于CPU或通用寄存器中。

2、操作码长度的缩短 操作码有两种编码格式:

固定格式:操作码长度固定,且集中放在指令字的一个字段中;

可变格式:即操作码长度可变,且分散地放在指令字的不同字段中。扩展操作码(可变格式)1、要点: (1)

操作码位数随地址码个数变化采取可变长度的类型; (2)

各指令间指令码一定不重复; (3)

根据需要灵活变通。一个重要的原则是使用频率高的指令应分配较短的操作码,使用频率低的指令分配较长的操作码。2、比较 假设一台计算机指令字长12位,操作码与地址码都为3位,如图所示。(1)

方法一:固定格式,则最多可以设计8条三地址指令。A1操作码OPA3A23位3位3位3位A1操作码OPA3A22)

方法二:扩展操作码 指令字长为12位,每个地址码为3位,采用扩展操作码的方式,设计4条三地址指令、255条一地址指令和8条零地址指令。4条三地址指令

000*********~011*********255条一地址指令

100000000***~111111110***8条零地址指令

111111

111000~111111111

111操作码平均长度为 (4*3+255*9+8*12)/(4+255+8)=9例:某指令系统指令长16位,每个操作数的地址码长6位,指令分为无操作数、单操作数和双操作数三类。若双操作数指令有K条,无操作数指令有L条,问单操作数指令最多可能有多少条?A1(6位)操作码(4位)A2(6位)解:设单操作数指令最多可以有x条,则:无操作数指令L=[(-K)·-x]·∴x=(-K)·-L/24五、指令助记符由于硬件只能识别1和0,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却非常麻烦。为了便于书写和阅读程序,每条指令通常用3个或4个英文缩写字母来表示。这种缩写码叫做指令助记符用3~4个英文字母来表示操作码,一般为英文缩写不同的计算机系统,规定不一样必须用汇编语言翻译成二进制代码25六、指令格式举例8位微型计算机的指令格式如8088,字长8位,指令结构可变包括单字长指令、双字长指令和三字长指令操作码长度固定PDP/11系列机的指令格式字长16位单字长指令操作码字段不固定26七、Pentium指令格式指令长度可变,最短1个字节,最长12个字节,典型的CISC指令系统由可选前缀(0~4)、操作码(1~2)、一个由mod-R/M字节和一个SIB(ScaleIndexBase)比例变址字节组成的地址指定器、一个可选的位移量(0~4)和一个可选的立即数字段(0~4)构成。指令前缀段取代操作数长度取代地址长度取代操作码ModReg或操作码R/MSIB位移量立即数27七、Pentium指令格式指令前缀中的重复前缀指定串的重复操作,这样使Pentium处理串比软循环快得多。LOCK前缀用于多CPU环境中对共享存储器的排他性访问段取代用于改变默认段寄存器的情况操作数长度取代和地址长度取代用于在保护模式下决定操作数和指令的长度以下4个指令前缀都是可选的,分别为0或1个字节指令前缀段取代操作数长度取代地址长度取代28七、Pentium指令格式操作码是必须的,1~2个字节Mod、Reg、R/M为共1个字节,是可选的。mod-R/M指定的操作数是在R中还是在M中。mod(2位)R/M(3位)的32种值构成了8种寄存器方式和24种变址方式(参考汇编语言教材);Reg或OP(3位)指定另一个操作数(寄存器)或用作OP的补充。操作码ModReg或操作码R/MSIB位移量立即数1个字节1个字节29七、Pentium指令格式S、I、B共1个字节,分别是比例系数、变址寄存器号、基址寄存器号,可选。mod-R/M中的某些编码要求SIB字节来完成寻址方式的指定;SS(2)指定比例变换的因子,Index(2)指定变址寄存器,Base(3)指定基址寄存器位移量:可以是0,1,2,4个字节立即数:可以是0,1,2,4个字节操作码ModReg或操作码R/MSIB位移量立即数304.3操作数类型操作数类型地址数据:地址实际上也是一种形式的数据。数值数据:计算机中普遍使用的三种类型的数值数据。字符数据:文本数据或字符串,目前广泛使用ASCII码。逻辑数据:一个单元中有几位二进制bit项组成,每个bit的值可以是1或0。当数据以这种方式看待时,称为逻辑性数据。Pentium数据类型(见P111表4.4)常规数据类型整数数据类型……..314.4指令和数据的寻址方式研究问题确定本条指令中各操作数的地址下一条指令的地址寻址方式是指CPU根据指令中给出的地址码字段寻找相应的操作数的方式,它与计算机硬件结构紧密相关,而且对指令的格式和功能有很大的影响。324.4指令和数据的寻址方式指令的寻址方式顺序方式PC跳跃方式334.4指令和数据的寻址方式操作数的寻址方式形成操作数有效地址的方法,称为寻址方式。操作数通常放在哪儿呢?344.4指令和数据的寻址方式操作数包含在指令中;操作数包含在CPU的某一个内部寄存器中;操作数包含在主存储器(内存)中;操作数包含在I/O设备的端口中根据操作数放在不同的地方,从而派生各种不同的寻址方式,往往不同的计算机具有不同的寻址方式。操作数从哪取?操作数的几种存放位置(简答)35指令在寄存器中就在指令中在内存中,加括号表示那里放的是D的地址直接找地址在寄存器中放操作数在寄存器中存放操作数地址21,232361、隐含寻址指令中隐含着操作数的地址如某些运算,隐含了累加器AC作为源和目的寄存器如8086汇编中的STC指令,设置标志寄存器的C为1372、立即寻址(指令就是操作数本身)立即寻址是一种特殊的寻址方式,指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出指令,就取出了可以立即使用的操作数,因此,这样的操作数被称为立即数。指令格式:操作码θ

操作数A382、立即寻址特点:在取指令时,操作码和操作数被同时取出,不必再次访问存储器,从而提高了指令的执行速度。但是,因为操作数是指令的一部分,不能被修改;而且对于定长指令格式,操作数的大小将受到指令长度的限制,所以这种寻址方式灵活性最差通常用于给某一寄存器或主存单元赋初值,或者用于提供一个常数。393、直接寻址(在内存中直接找)

指令中地址码字段给出的地址A就是操作数的有效地址EA(EffectiveAddress),即EA=A。413、直接寻址操作数地址是不能修改的,与程序本身所在的位置无关,所以又叫做绝对寻址方式在早期的计算机中,主存储器的容量较小,指令中地址码的位数要求不长,采用直接寻址方式简单快速,也便于硬件实现,因此,常被作为主要的寻址方式。但在现代,随着计算机主存容量的不断扩大,所需的地址码将会越来越长。指令中地址码的位数将不能满足整个主存空间寻址的要求,因此直接寻址方式受到了很大的限制。另外,在指令的执行过程中,为了取得操作数,必须进行访存操作,降低了指令的执行速度。424、间接寻址

间接寻址意味着指令的地址码部分给出的地址A不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址。操作数的有效地址的计算公式为:EA=(A)444、间接寻址特点:因为操作数的有效地址在主存储器中,可以被灵活的修改而不必修改指令,从而使间接寻址要比直接寻址灵活得多。但是,间接寻址在指令执行过程中至少需要两次访问主存储器才能取出操作数,严重降低了指令执行的速度。455、寄存器寻址

在指令的地址码部分给出CPU内某一通用寄存器的编号,指令的操作数存放在相应的寄存器中,即EA=Ri

优点:(1)由于寄存器在CPU的内部,指令在执行时从寄存器中取操作数比访问主存要快得多;(2)由于寄存器的数量较少,因此寄存器编号所占位数也较少,从而可以有效减少指令的地址码字段的长度。466、寄存器间接寻址

为了克服间接寻址中多次访存的缺点,可采用寄存器间接寻址,即将操作数放在主存储器中,而操作数的地址放在某一通用寄存器中,然后在指令的地址码部分给出该通用寄存器的编号,这时有EA=(Ri)这种寻址方式的指令较短,并且在取指后只需一次访存便可得到操作数,因此指令执行速度较前述的间接寻址方式要快,也是目前在计算机中使用较为广泛的一种寻址方式。477、相对寻址(位移)由程序计数器PC提供基准地址,而指令的地址码部分给出相对的位移量D,两者相加后作为操作数的有效地址,即:EA=(PC)+D。487、相对寻址对寻址方式使程序模块可采用浮动地址,编程时只要确定程序内部操作数与指令之间的相对距离,而无需确定操作数在主存储器中的绝对地址,这样,将程序安排在主存储器的任意位置都不会影响程序执行的正确性。498、基址寻址在基址寻址方式中,指令的地址码部分给出偏移量D,而基准地址放在基址寄存器Rb中,最后操作数的有效地址仍然是由基准地址A与偏移量D相加而成,即:EA=(Rb)+D。用哪一个寄存器作为基址寄存器也必须在硬件设计时就事先规定,基址寄存器Rb中的内容称为基准地址,该值可正可负。508、基址寻址基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。(ALU算术逻辑单元)519、变址寻址变址寻址就是将指令的地址码部分给出的基准地址A与CPU内某特定的变址寄存器Rx中的内容相加,以形成操作数的有效地址,即:EA=A+(Rx)。用哪一个寄存器作为变址寄存器必须在硬件设计时就事先规定,变址寄存器Rx中的内容称为变址值,该值可正可负。529、变址寻址539、变址寻址变址寻址方式是一种被广泛采用的寻址方式,最典型的应用就是将指令的地址码部分给出的地址A作为基准地址,而将变址寄存器Rx中的内容作为修改量。在遇到需要频繁修改操作数地址时,无须修改指令,只要修改Rx中的变址值就可以了,这对于数组运算、字符串操作等一些进行成批数据处理的指令是很有用的。5410、段寻址方式11、堆栈结构及其寻址方式1)堆栈是一种数据结构。它是压入和弹出都在栈顶的一端进行的结构;特点:“后进先出”。2)分类:1)硬堆栈:由CPU内部设置的专用寄存器构成;(速度快,容量小);2)软堆栈:在主存储器中划分的专门用于堆栈的一片区域。(容量大,速度慢)3)堆栈结构在计算机中的作用(a)

具有堆栈结构的机器使用零地址指令,这使得指令长度短,指令结构简单,机器硬件简化。(b)

实现程序调用,子程序嵌套调用和递归调用。(c)

对于“中断”技术,堆栈更是不可缺少的,保存“断点”和“现场”。4)软堆栈的操作(SP始终指向栈顶)设数据进栈方向为从高地址向低地址发展(“向下生长),当向堆栈压入数据时,SP的内容先自动递减而指向一个新的空栈顶单元,再把数据写入此栈顶单元;当数据弹出堆栈时,立即读出SP所指向的栈顶单元内容,再把SP内容自动递增而指向新的栈顶位置。即

PUSHX;(SP)-1

SP (X)

(SP)POPX;((SP))

X (SP)+1

SP堆栈寄存器SP

通用寄存器

100101102103104105106A进栈B进栈B出栈A出栈

软堆栈过程105AABBAA104103104105BA常用寻址方式及有效地址的计算寻址方式有效地址寻址方式有效地址立即寻址Data=D变址寻址E=Rx+D寄存器寻址Data=R变址间接寻址E=(Rx+D)寄存器直接寻址E=R间接变址寻址E=Rx+(D)寄存器间接寻址E=(R)基址寻址E=Rb+D直接寻址E=D基址间接寻址E=(Rb+D)间接寻址E=(D)间接基址寻址E=Rb+(D)二次间接寻址E=((D))基址变址寻址E=Rx+Rb+D相对寻址E=PC+D注:Data——操作数E——有效地址Rx——变址寄存器Rb——基址寄存器

D——形式地址R——寄存器PC——程序计数器()——某单元的内容寻址方式例题例1:一条双字长的LOAD指令存储地址为200和201的存储位置,该指令将地址码指定的内容装入累加器AC中,指令的第一个字指定操作码和寻址方式,第二个字是地址部分。(PC)=200;(R1)=400;变址寄存器XR的内容是100。条件(201)=500;(309)=450;(400)=700;(500)=800;(600)=900;(702)=325;(800)=300问:若寻址方式分别为以下的方式,那么装入AC的值?

1)直接寻址;2)立即数寻址;3)间接寻址;4)相对寻址;5)变址寻址;6)寄存器(R1)寻址;7)寄存器间接寻址62寻址方式举例:Pentium63Pentium寻址方式方式算法立即作数=A寄存器LA=R偏移量LA=(SR)+A基址

LA=(SR)+(B)基址带偏移量LA=(SR)+(B)+A比例变址带偏移量LA=(SR)+(I)×S+A基址带变址和偏移量LA=(SR)+(B)+(I)+A基址带比例变址和偏移量LA=(SR)+(B)+(I)×S+A相对LA=(PC)+A64P118例4某16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器。指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(A)H,STO(OP)=(1B)H,LAD(OP)=(3C)H。MOV是传送指令,STO为存数指令,LAD为取数指令。要求:(1)分析三种指令的指令格式与寻址方式特点。(2)CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?(3)下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码不正确,如何改正才能成为合法指令?65P118例4F0F13CD2111100001111000100111100110100103C15号寄存器13CD2把主存13CD2的内存装载到15号寄存器6FD60110111111010110由于是单字长指令,则一定是MOV指令。则OP错误,修改为0010100011010110=28D6664.5典型指令指令分类与基本指令类型

数据传送类指令一般传送指令:

MOVAX,BX数据交换指令:

XCHG堆栈操作指令:

PUSH,POP运算类指令算术运算指令:

加、减、乘、除以及加1、减1、比较逻辑运算指令:

移位指令

程序控制类指令

程序控制类指令用于控制程序的执行方向,并使程序具有测试、分析与判断的能力。

输入和输出指令、字符串处理指令、特权指令、其他指令674.5典型指令 基本指令系统P122表4.9介绍20%和80%规律:CISC中大约有20%的指令使用频率高,占据了80%的处理机时间,而有80%的不常用指令只占用处理机的20%时间。VLSI技术发展引起的问题VLSI工艺要求规整性,而大量复杂指令控制逻辑极其不规整,给VLSI工艺造成了很大的困难。现在用微程序实现复杂指令与用简单指令组成的子程序相比,没有多大的区别。因为现在控制存储器和主存的速度差缩小。CISC中,通过增强指令系统的功能,简化了软件,增加了硬件的复杂程度。然而指令复杂了,指令的执行时间必然加长,从而使整个系统的执行时间反而增加,因而在计算机体系结构设计中,软硬件的功能分配必须恰当684.5典型指令 RISC(不超过100条)特点(采用流水线技术)简单而统一格式的指令译码;大部分指令可以单周期执行只有LOAD/STORE可以访问存储器简单的寻址方式采用延迟转移技术采用LOAD延迟技术三地址指令格式较多的寄存器对称的指令格式返回CISC和RISC复杂指令(200-300条)集计算机(CISC)

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

一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条.早期的计算机使用汇编语言编程,由于内存速度慢且价格昂贵,使得CISC体系得到了用武之地。在20世纪90年代中期之前,大多数的微处理器都采用CISC体系——包括Intel的80x86和Motorola的68K系列等。(X:1-4.)

1.CISC体系的指令特征

使用微代码。指令集可以直接在微代码内存(比主内存的速度快很多)里执行,新设计的处理器,只需增加较少的晶体管就可以执行同样的指令集,也可以很快地编写新的指令集程序。

庞大的指令集。可以减少编程所需要的代码行数,减轻程序员的负担。

高级语言对应的指令集。包括双操作数格式、寄存器到寄存器、寄存器到内存以及内存到寄存器的指令。

2.CISC体系的优缺点

优点:能够有效缩短新指令的微代码设计时间,允许设计师实现CISC体系机器的向上兼容。新的系统可以使用一个包含早期系统的指令超集,也就可以使用较早电脑上使用的相同软件。另外微程序指令的格式与高级语言相匹配,因而编译器并不一定要重新编写。

缺点:指令集以及芯片的设计比上一代产品更复杂,不同的指令,需要不同的时钟周期来完成,执行较慢的指令,将影响整台机器的执行效率。IBMPOWER6精简指令集计算机(RISC)

精简指令集计算机(RISC)

采用复杂指令系统的计算机有着较强的处理高级语言的能力.这对提高计算机的性能是有益的.当计算机的设计沿着这条道路发展时.有些人没有随波逐流.他们回过头去看一看过去走过的道路,开始怀疑这种传统的做法:IBM公司没在纽约Yorktown的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题.因为当时已感到,日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能.1979年以帕特逊教授为首的一批科学家也开始在美国加册大学伯克莱分校开展这一研究.结果表明,CISC存在许多缺点.首先.在这种计算机中.各种指令的使用率相差悬殊:事实上最频繁使用的指令是取、存和加这些最简单的指令.这样一来,长期致力于复杂指令系统的设计,实际上是在设计一种难得在实践中用得上的指令系统的处理器.同时.复杂的指令系统必然带来结构的复杂性.这不但增加了设计的时间与成本还容易造成设计失误.此外.尽管VLSI技术现在已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展.在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差.由于采用二级的微代码执行方式,它也降低那些被频繁调用的简单指令系统的运行速度.因而.针对CISC的这些弊病.帕特逊等人提出了精简指令的设想,即指令系统应当只包含那些使用频率很高的少量指令.并提供一些必要的指令以支持操作系统和高级语言.按照这个原则发展而成的计算机被称为精简指令集计算机(ReducedInstructionSetComputer-RISC)结构.简称RISC.它的关键技术在于流水线操作(Pipelining):在一个时钟周期里完成多条指令。而超流水线以及超标量技术已普遍在芯片设计中使用。RISC体系多用于非x86阵营高性能微处理器CPU,厂商包括主要APPLE、SGI/MIPS、IBM、SUN、Compaq/Digital(DEC)、Motorola等。这些厂商设计的处理器在某种程度上,代表了RISCCPU的发展趋势。

RISC技术的类型在众多的RISC处理器中,如何了解它们的性能和设计技术的差别,以便正确选择和应用它们,这对系统设计者来讲是至关重要的。由于早期RISC的发展基本上起源于一些著名大学和公司的研究计划.虽然RISC的处理器的品种很多,制造厂商也不相同.但就其性能和设计技术的差异可分四类:它们的典型代表是IBM公司的810小型计算机;帕克莱分校的RISCⅠ、RISCⅡ;斯坦福大学的MIPSR2000、R3000和R4000以及克雷公司的CRAY-1.目前几乎所有各大公司研制或生产的RISC处理器产品部分别隶属于这四种类型。

IBM801小型计算机

810小型计算机是IBM公司于70年代末期开始研制的32位小型机,它排除了通常的两级微码控制方式,取而代之的是在硬件中直接执行一组精选的简单指令和优化的编译程序.这种特殊的编译程序通过对程序详细执行步骤进行重新安派.以便更有效地利用CPU资源来提高程序的运行速度,因为它放弃了对复杂指令系统执行微码的方式,这就有利于用硬连线控制系统来执行为数不多的简单指令.为了达到单周期时间执行一条指令的目的,存贮器结构使CPU不需等待访问存贮器的时间.提供指令和数据高速缓存(CACHE),有32个32位寄存器.所有指令在寄存器中执行,同时编译器分寄存器和全局优化及存取校验部件,还具有延迟转移功能,是一台采用紧藕合硬件和编译技术相结合的RISC计算机。柏克莱分校的RISCI、RISCⅡ型

RISCI、RISCⅡ是帕克莱分校分别于1982年和1984年研制成功的32位微处理器,它们的设计专注于最有效地利用大规模整合电路(VLSI)芯片的区域研究,因为RISC设计的有限个简单指令只需要相对少量的芯片控制逻辑电路,而芯片上更多的区域可以用作系统功能.以加强处理器的性能和使它的功能多样化.它们采用重叠窗口技术.有多达138*32位寄存器组成8个重叠窗口,在相邻界面上有6个寄存器以提供窗口间的运行参数和结果,它们是专为相邻两个窗口共享的,在处理器中.寄存器作为临时数据存贮的快速存取区,通过这些寄存据保持信息参数.在CISC计算机中.子程序调用之前,参数是存于系统内存中.这样非常浪费时间,而RISCI、RISCⅡ利用寄存器来传送参数很有效地降低了执行子程序调用时所需要的时间.指令数为31个。MIPSRx000系列型

斯坦福大学的MIPS计划,它不采用帕克莱分校的RISC窗口技术而采用消除流水线各级互锁的微处理器MIPS(MicroprosessorWithoutInterlockingPipelineStage)技术.它将IBM公司对优化编译程序的研究和帕克莱分校的大规模集成电路的思想结合起来.流水线是现代各类微处理器都采用的指令执行技巧.即将若干条指令的取指令,译码和执行过程部分重叠在流水线中同时执行.但在CISC计算机中,由于指令多而复杂.处理每条指令的所得时间不固定,当后面指令需要前条指令的结果.往往造成指令互锁.斯坦福大学的MIPS计划就是在编译过程中,利用编译程序优化处理器的流水线,以求提高处理器流水线的效率,由于采用硬连续控制来执行为数不多的简单指令,且能重组软件流水线.这样就减少硬件复杂性.CRAY-I型

克雷(CRAY)公司的巨型机CRAY-I,它是70年代中期开发成功的最先采用面向寄存器操作的精简指令的高速计算机,公司创始人SeymvurCRAY一开始就反对过在他的巨型计算机系列的设计中采用增加指令的建议.因此CRAY一1除大量采用标量、向量和地址寄存器外还采用流水线技术以达到高速运算的能力,做到了一个机器周期时间里执行一条指令的目标.所以有人讲CRAY一1是RISC技术的鼻祖.

RISC技术的设计技巧RISC的设计原则是使系统设计达到最高的有效速度,将那些能对系统性能产生净增益的功能用硬件实现.其余大部分都用软件实现.它排除了那些实现复杂功能的复杂指令,所谓"精简"并不是简单的减少.而是保留经验证明的能提高机器性能的指令,另外还将编译器作为机器的功能.而且RISC微处理器使编译器能够直接访问基本的硬件功能,RISC设计的基本目的在于使计算机结构更加简单、更加合理、更加有效.指令经过精简后.计算机体系结构自然趋于简单.在这个基础上,还必须克服CISC的许多缺点.使得计算机速度更快,程序运行时间缩短.这样.RISC才能以崭新的面貌出现.RISC技术的主要设计技巧及其特点1短周期时间为了指令的快速执行,就必须快速选择译码和减小寄存器存取时间,尽量采用先进工艺技术以缩短机器周期时间,也即提高机器的工作频率.

2单周期执行指令由于RISC微处理器的指令经过精选,所有指令长度都相同.大多数指令都能在一个机器周期内执行完.实际上,大多数RISC微处理器在没有增加并行技术时,平均每条指令执行时间为1.25-2个机器周期时间,而CISC微处理器在相同工艺技术条件下平均执行每条指令需5-8个机器周期时间,RISC微处理器力求达到每一个机器周期时间执行一条指令.单周期执行指令是RISC微处理器性能增强的基础.必须简化指令系统和采用流水线技术.

3load(取)/Store(存)结构

每当一条指令得要访问主存信息时.机器的执行速度将会降低.RISC的load/restore指令只有在访问内存时才使用,所有其它的指令都是在寄存器内对数据进行运算.一条存取数指令(load)从内存将数据取出放到寄存器中,在那里可以对数据进行快速处理,并把它暂存在寄存器里,以便将来还要使用.在适当的时候.一条存数指令(store)可将这个数据送回到它在内存中的地址中去.CISC微处理器支持那些直接从内存处理信息的指令.这些指令需要多个机器周期时间才能完成.RISC的设计技术与CISC的设计技术相比.有大量寄存器.由于允许数据在寄存器中保留较长的时间.这样就减少了存/取指令对内存访问的需要.在寄存器中.每当再被使用时不必再次访问内存.这种Load/restore结构通过寄存器对寄存器进行操作的方式乃是获得单周期执行的关键.

4简单固定格式的指令系统所有指令采用32位固定长度,寻址方式不超过三种,简化了逻辑和缩短译码时间.确保单周期执行指令,同时也有利于流水线操作的执行.这是由于指令的固定格式保证指令译码和取操作能同时进行.

5不用微码技术由于RISC的设计采用简单.合理的指令系统和简化的寻址方式.所以排除微代码设计技术,即不采用微码只读存贮器(ROM),而是直接在硬件中执行指令,这意味着省去将机器指令转换成原始微代码这一中间步骤,这也就减少了执行一条指令所需要的机器周期个数,也就节省了芯片的空间,使得可以利用这些节省下来的芯片空间扩展微处理器功能.

6大寄存器堆

RISC微处理器中大量的计算都在ALU高速寄存器中执行.由编译器产生、分配和优化寄存器的使用.从而简化流水线结构和使指令周期降到最小,同时又不访问内存.允许调用的嵌套执行,但这也增加ALU周期中的寄存器存取时间和一些选址机构.因此在任务变换中需要较高的开销.

7延迟转移这可解决指令转移相关问题,它把转移指令与前一条指令交换位置以避免浪费一个机器周期时间,这不是靠程序员去完成,而是由RISC的编译程序自动完成.这也是RISC设计技术一个重要特性.

8高效的流水线操作当前不论什么结构的微处理器都毫无例外地采用流水线技术,以达到高速执行指令的能力,因为流水线的每一级都负责执行一个单个的操作段.比如、指令译码或取操作数。实际上一个流水线微处理器是在同一时刻对数条指令进行操作.CISC微处理器执行指令时效率低,甚至有时会使执行过程处于短暂的停滞状态.例如,当处理器遇到一条执行时间比预定时间要长的指令,它必须延长这条指令的操作.这样就要阻止其它指令在流水线中正常执行流水线操作,直到这条长指令的完成.这种状态除了降低了执行指令效率外.还迫使设计者将处理器的微结构在硬件上设计得更加复杂,以便对付这些问题.而在RISC微处理器设计中,它具有对指令执行时间的预测能力,因此它能使流水线在高效率状态下运行.

9硬连线控制采用少量、简单、固定的硬连线控制逻辑替代微码以实现减少指令系统.保证短周期,单周期执行指令,但不能处理复杂指令,除在特定状态机(statemachine]或使用垂直微码外.不能处理多个Load/Restore指令。10重叠寄存器窗口技术

重叠寄存器窗口技术:在处理机中设置一个数量比较大的寄存器堆,并把它划分成很多个窗口。每个过程使用其中相邻的三个窗口和一个公共的窗口,而在这些窗口中有一个窗口是与前一个过程共用,还有一个窗口是与下一个过程共用的。与前一过程共用的窗口可以用来存放前一过程传送给本过程的参数,同时也存放本过程传送给前一过程的计算结果。同样,与下一过程共用窗口可以用来存放本过程传送给下一过程的参数和存放下一过程传送给本过程的计算结果。11优化编译程序12增强存贮管理功能13面向高级语言在R1SC设计中不用微码.高级语言可直接由硬件实现.通过-次编译直接生成由硬件执行的机器代码.这样可提高执行速度.不过程序员没有可读的汇编语言,适合人工编码.

14哈佛(Harvard)总线结构

RISC体系的优缺点优点:在使用相同的晶片技术和相同运行时钟下,RISC系统的运行速度将是CISC的2~4倍。由于RISC处理器的指令集是精简的,它的内存管理单元、浮点单元等都能设计在同一块芯片上。RISC处理器比相对应的CISC处理器设计更简单,所需要的时间将变得更短,并可以比CISC处理器应用更多先进的技术,开发更快的下一代处理器。缺点:多指令的操作使得程序开发者必须小心地选用合适的编译器,而且编写的代码量会变得非常大。另外就是RISC体系的处理器需要更快内存,这通常都集成于处理器内部,就是L1Cache(一级缓存)。

CISCVSRISC长期以来,由于英特尔的x86处理器可以执行1到87个字节长度的指令,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论