4.3.3指令格式分析与设计方法举例例:某16位机指令格式结构如下所示,试分析指令格式及寻址方式特点。OP—目标寄存器源寄存器1510987430解:(1)单字长二地址指令;(2)OP即操作码字段6位,可指定64条指令;(3)两个操作数都在寄存器中,故为R-R型指令,可以分别指定16个通用寄存器;(4)该类指令结构常用于算逻运算类指令。例:某16位机指令格式结构如下所示,试分析指令格式及寻址方式特点。OP—源寄存器变址寄存器1510987430解:(1)双字长二地址指令;(2)操作码字段6位,可指定64条指令;(3)R-S型指令,一个操作数在通用寄存器(共16个)中,另一个在主存中;(4)有效地址通过变址寻址求得,变址寄存器由16个通用R里的一个如Ri充当,则EA=(Ri)+偏移量.位移量(16位)例:某机配有基址寄存器和变址寄存器,采用一地址格式的指令系统,允许直接和间接寻址,且指令字长、机器字长和存储字长均为16位,主存按字编址.(1)若采用单字长指令,共能完成105种操作,则指令可直接寻址的范围是多少?一次间接寻址的寻址范围是多少?画出其指令格式并说明各字段的含义.【解答】105种操作,故操作码取7位;按题意有4种寻址方式,故寻址方式特征位取2位.指令格式如下:OPMA7位2位7位各字段含义说明(略)指令可直接寻址的范围:27=128;一次间接寻址的范围:216=65536。(2)若存储字长不变,可采用什么方法直接访问容量为16MB的主存?【解答】16MB=8M×16位,需要23位的地址位才能访问该主存的全部单元.可在上述(1)指令格式的基础上,采用双字长指令;格式如下:7位2位7位A2OPMA1形式地址A=A1//A2共23位;刚好寻址8M个16位。例:某16位模型机共有64种操作,操作码位置固定,且具有以下特点:(1)采用一地址或二地址格式;(2)由寄存器寻址、直接寻址和相对寻址(位移量为-128~+127)三种寻址方式;(3)有16个通用寄存器,算术运算和逻辑运算的操作数及运算结果都在寄存器中;(4)取数/存数指令在通用寄存器和主存之间传送数据;(5)存储器容量为1MB,按字节编址.要求设计算逻指令、取数/存数指令和相对转移指令的格式,并简述设计理由.解:(1)算逻指令为R-R型,单字长16位二地址即可:OPMRiRj6位2位4位4位各个字段位数及作用说明(略).(2)取数/存数指令为R-S型,鉴于1MB寻址的存储容量,需要使用双字长32位二地址格式:OPMRiA16位2位4位4位A2注意其中Ri在取数时为目标地址,存数时为源地址;其他字段说明略。解:(3)相对转移指令:按题目所给定的位移量-128~+127可知,有8位补码表示该位移量即可;再考虑OP字段6位和寻址方式字段2位,使用单字长一地址指令就可以设计.OPMA6位2位8位各个字段位数及作用说明(略).例:某机主存容量为4M×16位,且存储字长等于指令字长,若该机指令系统能完成97种操作,操作码位数固定,具有直接、间接、变址、基址、相对、立即六种寻址方式.(1)画出一地址指令格式并指出各字段作用.解:一地址指令格式为:OPMA7位3位6位OP操作码字段7位—97种操作;M寻址方式特征字段3位—六种寻址方式;A形式地址字段16-7-3=6位。(2)该指令直接寻址的最大范围是多少?解:A是6位,26=64位直接寻址的最大范围.(3)一次间址和多次间址的寻址范围?解:存储字长16位,故一次间址寻址范围是216;若多次间址,需用存储字的最高位来区别是否继续间接寻址,故其寻址范围为215.(4)立即数的范围?解:A是6位,若是有符号数则立即数的范围是-32~+31;无符号数则为0~63.(5)相对寻址的位移量(十进制数表示)?解:位移量为补码表示,所以有-32~+31。(6)上述六种寻址方式的指令哪一种执行时间最短?哪一种执行时间最长?哪一种便于用户编制处理数组问题的程序?哪一种便于程序浮动?解:立即寻址的执行时间最短;间接寻址的执行时间最长;变址寻址指令便于用户编制处理数组问题的程序;相对寻址有利于程序浮动.例:内存中数据分布如下,若A为单元地址,(A)为A的内容.地址01234567…N内容12345676…5试求:((7))-(N)+((N))+(((N)))=?解:因为:((7))=7,(N)=5,((N))=6,(((N)))=7所以:((7))-(N)+((N))+(((N)))=15注意:直接寻址、间接寻址的意义及表示法.例:设某台计算机的指令系统中共有57条指令:(1)若采用固定长度编码,其操作码的编码长度需要多少位?解:需要6位,即从000000到111011.(2)设该指令系统中有10条指令的使用频率为80%,其余为20%,若采用不等长编码方式,其操作码的平均长度为多少?解:采用不等长编码方式时,常用的指令用短的操作码表示,不常用的指令可用长操作码表示.10条常用指令用4位编码表示,即从0000到1001.不常用的47条指令需要7位编码表示,即从1010000到1111110,操作码平均长度:4×80%+7×20%=4.64.1指令系统的发展与性能要求4.4CISC和RISC4.3指令和数据的寻址方式4.2指令格式4.4CICS和RISC2、60年代后期--由于集成电路(IC)出现,硬件结构越加复杂,对指令系统功能的要求也越来越高,增设了乘除运算、浮点运算、十进制运算、字符串处理等指令,指令数目达一二百条,寻址方式趋于多样化,引入了各种数据类型,指令系统不断扩大;1、50年代—计算机技术水平较低,使用的元件体积大、功耗高、价格高,故硬件结构简单,指令系统的功能也相对简单,其中只有加减及逻辑运算、数据传送、转移等十几至几十条指令,寻址方式简单;一、指令系统的发展引入系列机的概念:基本指令相同、基本体系结构相同的一系列计算机,如IBM370系列、VAX-11系列、IBMPC(XT/AT/286/386/486/Pentium)微机系列等.(1)系列机实现软件兼容的必要条件是,该系列的各机种有共同的指令集,且新开发机种的指令系统一定包含旧机型的所有指令.(2)指令系统的改进是围绕缩小指令与高级语言的语义差异以及有利于操作系统的优化而进行.以上原因,使指令本身功能不断增强,指令系统规模不断加大.3、70年代末期—随着LSI和VLSI的出现,计算机结构愈加复杂,计算机指令系统多达几百条指令,称之为复杂指令集计算机complexinstructionsetcomputers,简称CISC.(1)CISC特点:•指令系统复杂庞大,指令数目一般多达200-300条;•寻址方式多;•指令格式多;•指令字长不固定;•各种指令使用频率、执行时间相差很大;•大多数采用微程序控制器.对CISC机测试表明:最常使用的是一些最简单最基本的指令,仅占指令总数的20%,但在程序中出现的频率却占80%.4、为克服CISC的不足,提高指令执行速度,人们又提出了便于VLSI技术实现的精简指令集计算机reducedinstructionsetcomputers,简称RISC。(1)RISC目的:希望用20%左右的简单指令来组合实现不常用的80%指令的功能.但不是简单地将指令系统简化,而是通过简化指令系统,使计算机的结构更加简单合理,从而提高处理速度.(2)认识RISC优势的一个重要公式P=In∙CPI∙T其中,P——计算机执行某程序需要的时间;In——高级语言程序编译后在机器上运行的实际指令数;CPI——执行每条指令需要的平均周期数;T——每个机器周期所占的时间。下面列表比较CISC与RISC的三个参数的情况:类型CISCRISC指令条数指令平均周期数周期时间InCPIT12~533ns~5ns1.3~1.41.1~1.410ns~2nsP=In∙CPI∙T由表可以看出:(1)RISC指令较CISC简单,需用子程序代替CISC中较复杂指令,故RISC中的指令条数多于CISC;(2)RISC指令大多仅用一个机器周期完成,CPI明显少于CISC;(3)而且RISC结构简单,完成一个操作经过的数据通路短,T值大大下降.总之,RISC的执行速度快于CISC.表4.1RISC/CISC的In、CPI、T统计比较(3)RISC特点:选取使用频率最高的一些简单指令,以及很有用但不复杂的指令组成指令系统,复杂指令的功能由简单指令的组合来实现;指令长度固定,指令格式种类少(2-3种),寻址方式种类少(2-3种);以寄存器-寄存器方式工作,只有取数/存数(LOAD/STORE)指令访问存储器,其余指令的操作都在寄存器之间进行;CPU中有多个通用寄存器;控制器采用组合逻辑控制器;除LOAD/STORE指令外,其他指令都以流水方式工作,从而可在一个机器周期内完成;采用优化的编译程序。(4)RISC和CISC的比较:充分利用了VLSI芯片的面积RISC—采用组合逻辑控制器,占CPU芯片面积的10%左右,可增加大量的通用寄存器,将存储管理部件也集成到CPU芯片内;CISC–采用微程序控制器,CM占CPU芯片面积的50%左右.提高了计算机的运算速度便于设计、降低了成本,提高了可靠性RISC有利于编译程序代码优化RISC不易于实现指令系统兼容(4)对于RISC和CISC的性能评价尚无最终结论RISC和CISC技术出现逐渐交融的趋势:例如,随着芯片密度的硬件速度的提高,RISC系统已变得更复杂;与此同时,在达到极限性能的努力中,CISC设计也使用了RISC机的一些焦点技术,其中最主要的就是增加通用寄存器的数量及更进一步强调流水线设计。