您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 计算机组成原理chp4资料
1第四章指令系统4.1指令系统的发展与性能要求4.2指令格式与4.3操作数类型4.4指令和数据的寻址方式4.5典型指令返回24.1指令系统的发展与性能要求1、指令在计算机系统中的地位(1)是软件和硬件分界面的一个主要标志硬件设计人员采用各种手段实现它;软件设计人员则利用它编制各种各样的系统软件和应用软件(2)是硬件设计人员和软件设计人员之间的分界面,也是他们之间沟通的桥梁。34.1指令系统的发展与性能要求2、指令系统基本概念指令:就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。微指令是微程序级的命令,它属于硬件;宏指令:由若干条机器指令组成的软件指令,它属于软件;机器指令:介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算操作。本章所讨论的指令,是机器指令。一台计算机中所有机器指令的集合,称为这台计算机的指令系统。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围44.1指令系统的发展与性能要求3、发展情况复杂指令系统计算机,简称CISC。但是如此庞大的指令系统不但使计算机的研制周期变长,难以保证正确性,不易调试维护,而且由于采用了大量使用频率很低的复杂指令而造成硬件资源浪费。精简指令系统计算机:简称RISC,人们又提出了便于VLSI技术实现的精简指令系统计算机。54.1指令系统的发展与性能要求4、为什么会出现CISC到RISC的转变2/8规则控制器设计难度下降64.1指令系统的发展与性能要求5、对指令系统的要求完备性:完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。一台计算机中最基本、必不可少的指令是不多的。许多指令可用最基本的指令编程来实现。例如,乘除运算指令、浮点运算指令可直接用硬件来实现,也可用基本指令编写的程序来实现。采用硬件指令的目的是提高程序执行速度,便于用户编写程序。有效性:有效性是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。74.1指令系统的发展与性能要求5、对指令系统的要求规整性:规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。对称性是指:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;匀齐性是指:一种操作性质的指令可以支持各种数据类型,如算术运算指令可支持字节、字、双字整数的运算,十进制数运算和单、双精度浮点数运算等;指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系,以方便处理和存取。例如指令长度和数据长度通常是字节长度的整数倍。兼容性:系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。但由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。84.1指令系统的发展与性能要求6、低级语言与高级语言关系比较内容高级语言低级语言1对程序员的训练要求(1)通用算法(2)语言规则(3)硬件知识有较少不要有较多要2对机器独立的程度独立不独立3编制程序的难易程度易难4编制程序所需时间短较长5程序执行时间较长短6编译过程中对计算机资源的要求多少94.2指令格式影响计算机指令格式的因素机器的字长存储器的容量指令的功能指令能反映以下信息做什么操作如果需要操作数,从哪里取结果送哪里下一条指令从哪里取所以指令格式包括两个方面:操作码字段地址码字段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条零地址指令111111111000~111111111111操作码平均长度为(4*3+255*9+8*12)/(4+255+8)=9例:某指令系统指令长16位,每个操作数的地址码长6位,指令分为无操作数、单操作数和双操作数三类。若双操作数指令有K条,无操作数指令有L条,问单操作数指令最多可能有多少条?A1(6位)操作码(4位)A2(6位)解:设单操作数指令最多可以有x条,则:无操作数指令L=[(-K)·-x]·242626∴x=(-K)·-L/24262624五、指令助记符由于硬件只能识别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数据类型(见表4.4)常规数据类型整数数据类型……..314.4指令和数据的寻址方式研究问题确定本条指令中各操作数的地址下一条指令的地址寻址方式是指CPU根据指令中给出的地址码字段寻找相应的操作数的方式,它与计算机硬件结构紧密相关,而且对指令的格式和功能有很大的影响。324.4指令和数据的寻址方式指令的寻址方式顺序方式
本文标题:计算机组成原理chp4资料
链接地址:https://www.777doc.com/doc-3659859 .html