指令系统PPT课件_第1页
指令系统PPT课件_第2页
指令系统PPT课件_第3页
指令系统PPT课件_第4页
指令系统PPT课件_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

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

文档简介

大连理工大学软件学院赖晓晨,计算机组成原理,第七章指令系统,物理的计算机只能够执行机器语言程序,组成程序的每一条语句称作一条机器指令,一种计算机能够执行的机器指令的集合就是这种计算机的指令系统。计算机设计者的重要工作之一为如何设计指令系统,计算机的使用者根据每一条指令的功能,来操纵计算机。,第七章指令系统,机器指令操作数类型和操作类型寻址方式指令格式举例RISC技术,7.1机器指令,一、指令的一般格式1、操作码:位数反映机器指令数目,内容反映机器做什么操作。操作码类别长度固定:如RISC机器,指令规整,译码简单长度可变:操作码分散在指令字的不同字段中,控制器设计复杂,7.1机器指令,2、地址码:用来指定该指令操作数的地址、结果的地址,以及(可能有的)下一条指令的地址。例如指令:MOVAX,40地址“40”指明了要操作的源操作数的地址,AX指明了目的操作数的地址。体系结构不同的计算机,指令的地址码个数不同。,86666,A1第一操作数地址,A2第二操作数地址,A3结果的地址,A4下一条指令地址,执行阶段4次访存,寻址范围26=64,设指令字长为32位,操作码固定为8位,地址数目,(1)四地址指令,86666,A1第一操作数地址,A2第二操作数地址,A3结果的地址,A4下一条指令地址,执行阶段4次访存,寻址范围26=64,设指令字长为32位,操作码固定为8位,地址数目,(1)四地址指令,程序中大部分指令是顺序执行的,可以用程序计数器PC来指明下一条指令地址,因此可以去掉A4字段。,地址数目,(2)三地址指令,8888,4次访存,寻址范围28=256,设指令字长仍为32位,操作码和地址码均为8位,地址数目,(2)三地址指令,8888,4次访存,寻址范围28=256,设指令字长仍为32位,操作码和地址码均为8位,如果A3用A1或者A2代替,那么A3可以省略。,地址数目,(3)二地址指令,设指令字长仍为32位,操作码8位,地址码12位,81212,或,4次访存,若结果存于ACC,则3次访存。,寻址范围212=4K,地址数目,(3)二地址指令,设指令字长仍为32位,操作码8位,地址码12位,81212,或,4次访存,若结果存于ACC,则3次访存。,寻址范围212=4K,如果一个操作数可以隐含为ACC,则指令中可以只给出一个地址码。,地址数目,(4)一地址指令,设指令字长仍为32位,操作码8位,地址码24位,824,2次访存,寻址范围224=16M,地址数目,(5)零地址指令指令系统中,有一种指令可以不设置地址字段,即零地址指令。如:NOP、HLT指令,不需要地址码,RET、IRET等指令,操作数的地址隐含在堆栈中。,3、操作码扩展技术,通过操作码扩展(对应的地址码长度收缩)技术,能够有效的缩短指令的平均长度。例如,某计算机有5条指令,两种设计方法。变长指令,平均2.4位等长指令,3位,00,01,10,110,111,000,001,010,011,100,操作码扩展举例,题目:假设一台计算机指令字长16位,操作码与地址码都为4位,请列出几种可能的操作码设计方法。,操作码地址码,OP,固定操作码,固定4位操作码:,OP,1111,扩展标志,扩展操作码1,设计15条三地址指令,留下一个码点,用来扩展二地址指令,OP,1111,11111111,扩展标志,扩展操作码2,二地址指令留下一个码点,用来扩展一地址指令。,OP,1111,11111111,111111111111,扩展标志,扩展操作码3,一地址指令留下一个码点,用来扩展零地址指令。,0000XXXXYYYYZZZZ1110XXXXYYYYZZZZ,111111100000XXXX111111101111XXXX,11111111111100001111111111111111,16条零地址指令,11110000XXXXYYYY11111101XXXXYYYY,111111110000XXXX111111111110XXXX,15条三地址指令,14条二地址指令,16条一地址指令,15条一地址指令,31,扩展操作码4,另一种扩展方法,操作码扩展举例总结,A、4位OC中用0000-1110定义15条三地址指令,编码1111作为扩展标志与下一个4位组成一个8位操作码,引出二地址指令,则:B、1.若将A1全部用作2地址指令OC,再定义16条2地址指令;2.8位OC中用11110000-11111110定义15条2地址指令,剩下一个编码11111111与下一个4位组成12位的操作码,引出16条一地址指令,或者15条1地址指令和16条零地址指令;3.选1111000011111101共14条2地址指令,留11111110,11111111为扩展标志,再分别扩展1地址指令。C、若选B(3),则可定义31条1地址指令,留一个编码111111111111为扩展标志,与下一个4位组成16位操作码,引出16条零地址指令。,指令字长=存储字长,2.指令字长可变,1.指令字长固定,按字节的倍数变化,二、指令字长,指令字长取决于操作码长度、地址码长度和地址码个数。指令按照字长是否可变分为两种:,指令字长=存储字长,2.指令字长可变,1.指令字长固定,按字节的倍数变化,二、指令字长,指令字长取决与操作码长度、地址码长度和地址码个数。指令按照字长是否可变分为两种:,指令字长可变,导致控制电路复杂,多字长指令需要多次访存,应尽量把常用指令设计为单字长或短字长指令。,小问题,如何能够让最常用指令的操作码最短呢?,指令字小结,当用一些硬件资源代替指令字中的地址码字段时,可以:扩大指令寻址范围缩短指令字长减少访存次数如果指令的地址字段为寄存器可以缩短指令字长指令执行阶段不访存,7.2操作数类型和操作种类,一、操作数类型地址:有时地址也需要计算,此时地址也是数据数字:定点数、浮点数、十进制数字符:ASCII码逻辑数据:每一位都代表真(1)或假(0)的布尔类型数据,这种数字串即为逻辑数。,二、数据存储方式,两种字节序:小端vs大端对齐方式为了便于硬件实现,同时提高机器运行速度,通常要求多字节数据在存储器中满足“边界对齐”的要求。即,字节数据可以任意存放;半字存放在偶数地址;字存放在末两位地址为0处;双字存放在末三位地址为0处;,边界对齐,边界不对齐的恶果,从不对齐的地址处取一个字,intreadint(_packedint*data)return*data;,_packed的影响,实际执行的指令是。,太麻烦了。,readintBICr3,r0,#3;r3=datareturnr0,三、操作类型,1、数据传送类指令源目的寄存器寄存器MOVAX,BX寄存器存储器MOV20,AXSTORE指令存储器寄存器MOVAX,20LOAD指令存储器存储器MOV20,30堆栈操作:PUSHAXPOPAX清零、置1:MOVAX,#0MOVAX,#1,2、运算类指令,算术运算:加、减、乘、除、求补、浮点、十进制运算ADDAX,#20DIVAX,#3逻辑运算:与、或、非、异或ANDAX,#30XORAX,#30其他:位测试、位清除、位求反,3、移位指令,一般来说,有8种移位指令算术左移、算术右移、逻辑左移、逻辑右移小循环左移、小循环右移大循环左移、大循环右移,无论哪一种移位,移出位都保存在进位标志C中。,移位操作,SALSARSHLSHRROLRORRCLRCR,4、转移指令,A、无条件转移指令直接跳转到某处,不取决于任何条件。类似C中的goto语句。例如:JMPLOOPB、条件转移指令根据机器当前的程序状态字中的某位来决定是否执行转移。例如:JZLOOP,I,T,F,Z,S,O,C,PSW,4、转移指令,A、无条件转移指令直接跳转到某处,不取决于任何条件。类似C中的goto语句。例如:JMPLOOPB、条件转移指令根据机器当前的程序状态字中的某位来决定是否执行转移。例如:JZLOOP,I,T,F,Z,S,O,C,PSW,程序状态字PSW(FLAG)是CPU内部的一个寄存器,用来存放两类信息:1、体现当前指令执行结果的各种状态信息,如有无进位(CF位),有无溢出(OF位),结果正负(SF位),结果是否为零(ZF位),奇偶标志位(PF位)等;状态位全部自动设置。2、存放控制信息,如允许中断(IF位),跟踪标志(TF位)等。,4、转移指令,C、调用与返回指令:类比C程序中的函数调用,以及函数返回。例如:CALLPRO1、RET子程序调用需要注意以下几点:子程序可以在多处被调用子程序调用可以嵌套CALL与RET指令配对使用要妥善保存子程序的返回地址专用寄存器、堆栈,子程序调用过程,CALLSUB1,CALLSUB2,CALLSUB2,RETURN,RETURN,4、转移指令,D、陷阱(TRAP)指令一旦机器运行出现意外故障(未定义指令、除0、设备故障、电压不稳),计算机发出陷阱信号(陷阱隐指令),暂停当前指令的执行,转入故障处理程序。陷阱指令不提供给用户使用,由机器自动执行。也有某些机器提供陷阱指令,例如IBMPC提供的INT软中断指令,用来完成系统调用。,5、输入输出指令,对I/O单独编址的计算机,设置有专门的输入输出指令,用来操纵外设。例如:INAX,20OUTDX,AX,独立编址vs统一编址,端口地址CPU的寄存器,CPU的寄存器端口地址,6、其他指令,停机指令、空操作指令、开中断指令、关中断指令、置条件码指令。字符串传送、字符串比较、字符串查询特权指令(操作系统用)向量指令多处理机指令,7.3寻址方式,指令寻址数据寻址,一、指令寻址,顺序,跳跃,由转移指令指出,二、数据寻址,数据寻址有多种,需要在指令中明确指出采用哪一种寻址方式,可以专门设置一个寻址方式特征字段,或纳入操作码中。,形式地址,指令字中的地址,有效地址,操作数的真实地址,约定,指令字长=存储字长=机器字长,有效地址由形式地址根据寻址方式来确定。,1、立即寻址,又称作立即数寻址,即指令中的形式地址部分不是一个操作数的地址,而是操作数本身。,指令执行阶段不访存,A的位数限制了立即数的范围,可正可负补码,MOVAX,#20H,2、直接寻址,指令中的形式地址部分即为有效地址。,EA=A,寻址特征,A,ACC,执行阶段访问一次存储器,A的位数限制了该指令操作数的寻址范围,操作数的地址不易修改(必须修改A),MOVAX,20H】,3、隐含寻址,指令中不直接给出操作数地址,操作数地址通常隐含在操作码或某个(约定)寄存器中。,寻址特征,A,ACC,暂存,另一个操作数隐含在ACC中,3、隐含寻址,指令中不直接给出操作数地址,操作数地址通常隐含在操作码或某个(约定)寄存器中。,寻址特征,A,ACC,暂存,另一个操作数隐含在ACC中,如8086的MUL指令,被乘数隐含在AX(16位)或AL(8位)中;MOVS指令源操作数的地址隐含在SI中目的操作数的地址隐含在DI中。指令字中少了一个地址字段,可缩短指令字长,4、间接寻址,指令中的形式地址不是操作数的地址,而是“操作数地址的地址”。,EA=(A),有效地址由形式地址间接提供,寻址特征,A,EA,A1,EA,寻址特征,A,一次间址,多次间址,操作数,操作数,多次访存,4、间接寻址,指令中的形式地址不是操作数的地址,而是“操作数地址的地址”。,EA=(A),有效地址由形式地址间接提供,寻址特征,A,EA,A1,EA,寻址特征,A,一次间址,多次间址,操作数,操作数,一次间接寻址,指令执行阶段两次访存;可以扩大寻址范围便于编制程序,多次访存,间接寻址编程举例,调用子程序,调用子程序,81,202,间址特征,JMPA,A单元,5、寄存器寻址,指令中的形式地址直接指出寄存器的编号,操作数存储于寄存器中。,EA=Ri,寻址特征,有效地址即为寄存器编号,MOVAX,BX,MOVAX,BX,5、寄存器寻址,指令中的形式地址直接指出寄存器的编号,操作数存储于寄存器中。,EA=Ri,寻址特征,有效地址即为寄存器编号,执行阶段不访存,只访问寄存器,执行速度快寄存器个数有限,可缩短指令字长,6、寄存器间接寻址,指令中的形式地址为寄存器的编号,寄存器的内容是操作数的有效地址。,寻址特征,EA=(Ri),有效地址在寄存器中,MOVAX,BX,MOVAX,BX,6、寄存器间接寻址,指令中的形式地址为寄存器的编号,寄存器的内容是操作数的有效地址。,寻址特征,EA=(Ri),有效地址在寄存器中,有效地址在寄存器中,操作数在存储器中,执行阶段访存便于编制循环程序,7、基址寻址,指令中的形式地址与基址寄存器内容之和为有效地址。1、采用专用寄存器作为基址寄存器(隐式)2、采用通用寄存器作为基址寄存器(显式),专用寄存器基址寻址,EA=(BR)+A,BR为基址寄存器,寻址特征,通用寄存器基址寻址,寻址特征,R0作基址寄存器,由用户指定哪个通用寄存器作为基址寄存器,在程序的执行过程中R0内容不变,形式地址A可变,7、基址寻址,指令中的形式地址与基址寄存器内容之和为有效地址。1、采用专用寄存器作为基址寄存器(隐式)2、采用通用寄存器作为基址寄存器(显式),可扩大寻址范围,有利于多道程序,基址寄存器内容由操作系统或管理程序确定,8、变址寻址,指令中的形式地址与变址寄存器内容之和为有效地址。,EA=(IX)+A,寻址特征,IX为变址寄存器,通用寄存器也可以作为变址寄存器,8、变址寻址,指令中的形式地址与变址寄存器内容之和为有效地址。,EA=(IX)+A,寻址特征,IX为变址寄存器,通用寄存器也可以作为变址寄存器,可以扩大寻址范围IX的内容由用户指定在程序执行过程中,IX内容可变,形式地址A不变便于处理数组问题,设数据块首地址为D,求N个数的平均值,直接寻址,变址寻址,LDAD,ADDD+1,ADDD+2,ADDD+(N-1),DIV#N,STAANS,LDA#0,LDX#0,INX,CPX#N,BNEM,DIV#N,STAANS,共N+2条指令,共8条指令,ADDX,D,M:,X为变址寄存器,D为形式地址,(X)和#N比较,(X)+1X,结果不为零则转,9、相对寻址,有效地址为程序计数器PC的值与形式地址之和。,EA=(PC)+A,A是相对于当前指令的位移量(可正可负,补码),操作数,寻址特征,相对距离A,PC,9、相对寻址,有效地址为程序计数器PC的值与形式地址之和。,EA=(PC)+A,A是相对于当前指令的位移量(可正可负,补码),操作数,寻址特征,相对距离A,A的位数决定操作数的寻址范围程序浮动广泛用于转移指令,PC,相对寻址举例,M随程序所在存储空间的位置不同而不同,EA=(M+3)3=M,按字节寻址的相对寻址举例,JMP*+8,设当前指令地址PC=2000H,转移后的目的地址为2008H,二字节指令,故JMP*+8指令的第二字节为2008H-2002H=06H,因为取出JMP*+8后PC=2002H,10、堆栈寻址,堆栈的运行方式:后进先出、先进后出堆栈的种类:硬堆栈:寄存器型软堆栈:存储器型,堆栈工作过程,先进后出(一个入出口),栈顶地址由SP指出,1,1FFFH,+1,2000H,1FFFH,2000H,堆栈指针与主存编址,按字编址,进栈,出栈,按字节编址,存储字长16位,进栈,出栈,存储字长32位,进栈,出栈,7.4指令格式举例,一、设计指令格式时要考虑的问题我们希望指令种类多、速度快、长度小、向上兼容操作类型:包括指令个数及操作的难易程度数据类型:确定哪些数据类型可以参与操作指令格式:指字长是否固定、操作码是否扩展、地址码个数、地址码位数寻址方式:指令寻址、操作数寻址寄存器个数:寄存器的多少直接影响指令的执行时间,以及编译器的设计,二、指令格式举例,1、PDP-8,指令字长固定12位,P320P326请大家自己阅读,2、PDP-11,指令字长有16位、32位、48位三种,零地址(16位),一地址(16位),二地址RR(16位),二地址RM(32位),二地址MM(48位),扩展操作码技术,3、IBM360,二地址RR,二地址MM,基址寻址,4、Intel8086,(1)指令字长,(2)地址格式,16个字节,MOVWORDPTR0204,0138H6字节,INCAX1字节,一地址,NOP1字节,CALL,零地址,寄存器寄存器,寄存器立即数,寄存器存储器,ADDAX,BX2字节,ADDAX,3048H4字节,ADDAX,3048H3字节,二地址,CALL,7.5RISC技术,一、RISC的产生和发展RISC(ReducedInstructionSetComputer)CISC(ComplexInstructionSetComputer)VLSI技术的发展典型程序中80%的语句仅仅使用处理机中20%的指令复杂指令集计算机设计复杂、成本高、维护困难能否用20%的简单指令组合不常用的80%的指令功能,8020规律,二、RISC的主要特征,选用使用频度高的一些简单指令,复杂指令用简单指令组合。指令长度固定、指令格式种类少、寻址方式少。只有LOAD/STORE指令访存。CPU中有多个通用寄存器。采用流水技术,一个时钟周期完成一条指令。采用组合逻辑实现控制器。采用优化的编译程序。,三、CISC的主要特征,指令系统庞大复杂,各种指令使用频度差别大指令长度不固定、指令格式种类多,寻址方式多访存指令不受限制CPU中设有专用寄存器大多数指令需要多个时钟周期执行完毕采用微程序控制器难以用优化编译生成高效的目的代码。,四、RISC和CISC的比较,RISC更能充分利用VLSI芯片的面积RISC更能提高计算机运算速度指令数目、指令格式、寻址方式少通用寄存器多,采用组合逻辑便于流水线操作RISC便于设计、成本低、可靠性高RISC有利于编译程序代码优化RISC不易实现指令系统兼容,五、RISC计算机举例,DLX:教学用,多元未饱和型指令集结构PowerPC:IBM/Apple/Motorola,可伸缩性好、方便灵活MIPS:卖的最好的RISCCPUSPARC:SUNMicrosystems,可扩充处理器架构龙芯:中科院计算技术研究所ARM:ARM(AdvancedRISCMachine)公司,龙芯3B,龙芯3B是首款国产商用8核处理器,主频达到1GHz,支持向量运算加速,峰值计算能力达到128GFLOPS,具有很高的性能功耗比。龙芯3B主要用于高性能计算机、高性能服务器、数字信号处理等领域。,龙芯3B集成了8个64位超标量处理器核,每个处理器核具有如下特点:支持MIPS64指令集及龙芯扩展指令集;9级超流水线结构;四发射乱序执行结构;2个定点单元、每个浮点单元支持256位向量运算;每个处理器核的一级指令cache和数据cache各64KB;8个处理器核通过交叉开关共享4MB的二级cache,龙芯3框图,龙芯3A,ARMLtd,成立于1990年11月前身为Acorn计算机公司AdvanceRISCMachine(ARM)主要设计ARM系列RISC处理器内核,ARMLtd,授权ARM内核给生产和销售半导体的合作伙伴ARM公司不生产芯片IP(IntelligenceProperty)另外也提供

温馨提示

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

评论

0/150

提交评论