第二讲 指令系统及CPU内部框架设计_第1页
第二讲 指令系统及CPU内部框架设计_第2页
第二讲 指令系统及CPU内部框架设计_第3页
第二讲 指令系统及CPU内部框架设计_第4页
第二讲 指令系统及CPU内部框架设计_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成原理第二讲指令系统及CPU内部框架设计第二讲指令系统及CPU内部框架设计学习目的了解指令系统的作用了解RISC指令架构与CISC指令架构的特点掌握指令的一般格式,掌握操作码与地址码的概念掌握常规操作类型及基本的指令寻址方式了解RISC的特点掌握指令系统设计方法及CPU内部框架设计方法第二讲指令系统及CPU内部框架设计Outline:计算机指令系统的作用CISC与RISC指令格式寻址方式一般指令系统设计方法作业及设计示例计算机指令系统的作用指令系统是计算机可以执行的全部指令的集合指定的指令序列可令计算机按照特定的流程完成特定功能一条指令是一串有意义的二进制码序列设定计算机可完成的操作种类说明计算机可操作的对象限定计算机可访问的寄存器的数量限定计算机可访问的存储空间的大小部分指明CPU内部的数据通路(信息通路)部分确定CPU内部的框架结构其它第二讲指令系统及CPU内部框架设计Outline:计算机指令系统的作用CISC与RISC指令格式寻址方式一般指令系统设计方法作业及设计示例CISC与RISC复杂指令集运算(ComplexInstructionSetComputing,CISC)为了提高运算速度

将越来越多的复杂指令加入到指令系统中为了在有限的指令长度内实现更多的指令,

操作码扩展

操作码扩展的先决条件——减少地址码

各种寻址方式CISC=复杂的数据通路+微程序控制器

CISC与RISC精简指令集运算(ReducedInstructionSetComputing,RISC)80—20规律——RISC技术典型程序中80%的语句仅仅使用处理机中20%的指令执行频度高的简单指令,因复杂指令的存在,执行速度无法提高能否用20%的简单指令组合不常用的80%的指令功能保留很有限且最常用的那部分指令复杂的操作由简单指令合成CISC与RISCRISC系统的改良:采用多级指令流水线结构选取机器中使用频率最高的简单指令及部分复杂指令采用加载(Load)、存储

(Store)结构延迟加载指令和转移指令采用高速缓存(cache)结构CISC与RISCRISC的主要特征选用使用频率较高的一些简单指令复杂指令的功能由简单指令来组合指令长度固定只有LOAD/STORE

指令访存流水技术一个时钟周期

内完成一条指令组合逻辑

实现控制器多个

通用寄存器采用优化

的编译

程序第二讲指令系统及CPU内部框架设计Outline:计算机指令系统的作用CISC与RISC指令格式寻址方式一般指令系统设计方法作业及设计示例指令格式指令的构成指令字长操作数类型和操作类型指令的构成操作码字段

地址码字段操作码反映机器做什么操作长度固定用于指令字长较长的情况(如IBM370操作码8位)RISC长度可变操作码分散在指令字的不同字段中扩展操作码技术(指令长度不变)操作码的位数随地址数的减少而增加地址码说明计算机操作的对象扩展操作码技术OPA1A2A3000000011110…A1A1A1…A2A2A2…A3A3A3…A2A2A2…A3A3A3…111111111111…000000011110…111111111111…111111111111…111111111111…000000011111…111111111111…111111111111…A3A3A3…000000011110…4位操作码8位操作码12位操作码16位操作码15条三地址指令15条二地址指令15条一地址指令16条零地址指令指令的构成地址码四地址三地址二地址一地址零地址地址码四地址三地址OPA1A2A3A4A1

第一操作数地址A2

第二操作数地址A3

结果的地址A4

下一条指令地址若PC代替A4(A1)OP(A2)A34次访存寻址范围26=64设指令字长为32位操作码固定为8位8888OPA1A2A3(A1)OP(A2)A34次访存寻址范围28=256若A3用A1或A2代替地址码二地址一地址零地址OPA1A281212(A1)OP(A2)A1(A1)OP(A2)A2或4次访存若ACC代替A1(或A2)若结果存于ACC寻址范围212=4K3次访存OPA1824(ACC)OP(A1)ACC2次访存寻址范围224=16M

无地址码指令的构成小结:当用一些硬件资源代替指令字中的地址码字段后可扩大指令的寻址范围可缩短指令字长可减少访存次数当指令的地址字段为寄存器时三地址OPR1,R2,R3

二地址OPR1,R2

一地址OPR1可缩短指令字长指令执行阶段不访存指令格式指令的构成指令字长操作数类型和操作类型指令字长指令字长固定指令字长可变指令字长取决于操作码的长度操作数地址的长度操作数地址的个数指令字长=存储字长按字节的倍数变化指令格式指令的构成指令字长操作数类型和操作类型操作数类型和操作类型操作数类型数据在存储器中的存放方式地址数字字符逻辑数无符号整数定点数、浮点数、十进制数ASCII逻辑运算字地址

低字节

地址字地址

高字节

地址37621540字地址04低字节04512673字地址04低字节数据在存储器中的存放方式地址(十进制)

04812162024283236双字双字(地址32)▲双字双字(地址24)▲半字(地址20)√半字(地址22)√半字(地址16)√半字(地址18)√字节(地址8)字节(地址9)字节(地址10)字节(地址11)字(地址4)字(地址0)字节(地址14)字节(地址15)字节(地址13)字节(地址12)边界对准地址(十进制)048字节(地址7)字节(地址6)字(地址2)半字(地址10)半字(地址8)半字(地址0)字(地址4)边界未对准操作数类型和操作类型操作类型数据传送算术逻辑操作移位操作转移输入输出源目的寄存器寄存器寄存器寄存器存储器存储器存储器存储器置“1”,清“0”MOVESTORELOADMOVEPUSHPOP例如MOVEMOVE操作类型算术逻辑操作移位操作加、减、乘、除、增1、减1、求补、浮点运算、十进制运算与、或、非、异或、位操作、位测试、位清除、位求反如8086ADDSUBMULDIVINCDECCMPNEGAAAAASAAMAADANDORNOTXORTEST算术移位循环移位(带进位和不带进位)逻辑移位操作类型转移无条件转移JMP条件转移调用和返回陷阱(Trap)与陷阱指令结果为零转(Z=1)

JZ结果溢出转(O=1)JO结果有进位转(C=1)JC跳过一条指令SKP如300…305306307SKPDZD=0则跳完成触发器调用和返回CALLSUB1.........CALLSUB2…...CALLSUB2…RETURNRETURN......主程序地址200021002101子程序SUB1240025002501256025612700主存空间分配程序执行流程子程序SUB2陷阱(Trap)与陷阱指令意外事故的中断一般不提供给用户直接使用在出现事故时,由CPU自动产生并执行(隐指令)设置供用户使用的陷阱指令如8086INTTYPE软中断提供给用户使用的陷阱指令,完成系统调用操作类型输入输出INAX,nOUTDX,ALOUTn,AXOUTDX,AXINAL,DXINAX,DX入端口地址CPU的寄存器出CPU的寄存器端口地址如如INAL,nOUTn,AL第二讲指令系统及CPU内部框架设计Outline:计算机指令系统的作用CISC与RISC指令格式寻址方式一般指令系统设计方法作业及设计示例寻址方式寻址方式

确定本条指令

的操作数地址下一条

欲执行指令

的指令地址指令寻址数据寻址寻址方式指令寻址顺序(PC)+1PC跳跃由转移指令指出LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100...0123456789PC+1指令地址寻址方式指令地址指令顺序寻址1顺序寻址2顺序寻址3跳跃寻址7顺序寻址8数据寻址立即寻址直接寻址隐含寻址间接寻址寄存器寻址寄存器间接寻址基址寻址变址寻址相对寻址堆栈寻址形式地址指令字中的地址有效地址操作数的真实地址约定

指令字长=存储字长=机器字长形式地址A操作码寻址特征立即寻址指令执行阶段不访存

A的位数限制了立即数的范围OP#A立即寻址特征立即数可正可负补码形式地址A就是操作数直接寻址EA=A操作数主存寻址特征LDAAAACC执行阶段访问一次存储器

A的位数决定了该指令操作数的寻址范围操作数的地址不易修改(必须修改A)有效地址由形式地址直接给出隐含寻址操作数地址隐含在操作码中ADDA操作数主存寻址特征AACC暂存ALU另一个操作数隐含在ACC中如8086MUL指令被乘数隐含在AX(16位)或AL(8位)中MOVS指令源操作数的地址隐含在SI中目的操作数的地址隐含在DI中指令字中少了一个地址字段,可缩短指令字长间接寻址EA=(A)有效地址由形式地址间接提供OPA寻址特征AEA主存EAA1EAA1主存EA10执行指令阶段2次访存可扩大寻址范围便于编制程序OPA寻址特征A一次间址多次间址操作数操作数多次访存间接寻址举例

………子程序主程序…8081201202转子程序转子程序(A)=81(A)=202……@

间址特征JMP@A…

……………

…………寄存器寻址EA=Ri执行阶段不访存,只访问寄存器,执行速度快OPRi寻址特征寄存器个数有限,可缩短指令字长操作数………………R0RiRn寄存器有效地址即为寄存器编号寄存器间接寻址EA=(Ri

)

有效地址在寄存器中,操作数在存储器中,执行阶段访存操作数主存OPRi寻址特征

便于编制循环程序地址………………R0RiRn寄存器有效地址在寄存器中基址寻址采用专用寄存器作基址寄存器EA=(BR)+ABR为基址寄存器OPA操作数主存寻址特征ALUBR

可扩大寻址范围

便于程序搬家

BR内容由操作系统或管理程序确定

在程序的执行过程中BR内容不变,形式地址A可变基址寻址采用通用寄存器作基址寄存器操作数主存寻址特征ALUOPR0AR0

作基址寄存器由用户指定哪个通用寄存器作为基址寄存器通用寄存器R0Rn-1R1…基址寄存器的内容由操作系统确定在程序的执行过程中R0内容不变,形式地址A可变变址寻址EA=(IX)+AOPA操作数主存寻址特征ALUIX可扩大寻址范围便于处理数组问题

IX的内容由用户给定IX为变址寄存器(专用)在程序的执行过程中IX内容可变,形式地址A不变通用寄存器也可以作为变址寄存器例设数据块首地址为D,求N

个数的平均值直接寻址变址寻址LDADADDD+1ADDD+2……ADDD+(N-1)DIV#NSTAANSLDA#0LDX#0INXCPX#NBNEMDIV#NSTAANS共N+2

条指令共8

条指令ADDX,DMX为变址寄存器D为形式地址(X)和#N

比较(X)+1X结果不为零则转相对寻址EA=(PC)+AA是相对于当前指令的位移量(可正可负,补码)

A的位数决定操作数的寻址范围程序浮动操作数寻址特征ALUOPA相对距离A1000PC……主存1000AOP广泛用于转移指令按字节寻址的相对寻址举例M

随程序所在存储空间的位置不同而不同EA=(M+3)–3=M–3*LDA#0LDX#0ADDX,DINXCPX#NBNE

MDIV#NSTAANSMM+1M+2M+3而指令BNE与

指令ADDX,D相对位移量不变–3*指令BNE操作数的有效地址为–3*

相对寻址特征*相对寻址举例OP位移量2000H2008H8JMP*+8OP06H2000H2008H8设当前指令地址PC=2000H转移后的目的地址为

2008H因为取出JMP

*+8

后PC=2002H二字节指令故JMP

*+8

指令的第二字节为2008H-2002H=6H堆栈寻址堆栈的特点堆栈硬堆栈软堆栈多个寄存器指定的存储空间先进后出(一个入出口)栈顶地址

由SP

指出–11FFFH

+12000H进栈(SP)–1SP出栈(SP)+1SP栈顶栈底2000HSP2000H……1FFFHSP1FFFH栈顶栈底进栈出栈

1FFFH栈顶

2000H栈顶堆栈寻址举例15200HACCSPX栈顶200H栈底主存151FFHACCSP15栈顶200H栈底主存X1FFHPUSHA前PUSHA后POPA前POPA后Y1FFHACCSPX栈顶200H栈底主存151FFH15200HACCSP栈顶200H栈底主存X15SP的修改按字

编址按字节

编址进栈出栈(SP)–1SP(SP)+

1SP存储字长16

位进栈出栈(SP)–

2SP(SP)+

2SP存储字长32

位进栈出栈(SP)–

4SP(SP)+

4SP第

温馨提示

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

评论

0/150

提交评论