第十四-十五讲-第7章-指令系统_第1页
第十四-十五讲-第7章-指令系统_第2页
第十四-十五讲-第7章-指令系统_第3页
第十四-十五讲-第7章-指令系统_第4页
第十四-十五讲-第7章-指令系统_第5页
已阅读5页,还剩170页未读 继续免费阅读

下载本文档

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

文档简介

第7章指令系统7.1机器指令7.2操作数类型和操作类型7.3寻址方式7.4指令格式举例7.5RISC技术7.1机器指令一、指令的一般格式操作码字段

地址码字段1.操作码反映机器做什么操作(1)长度固定(2)长度可变用于指令字长较长的情况,RISC如IBM370操作码8位操作码分散在指令字的不同字段中(3)扩展操作码技术操作码的位数随地址数的减少而增加OPA1A2A3000000011110…A1A1A1…A2A2A2…A3A3A3…A2A2A2…A3A3A3…111111111111…000000011110…111111111111…111111111111…111111111111…000000011111…111111111111…111111111111…A3A3A3…000000011110…4位操作码8位操作码12位操作码16位操作码最多15条三地址指令最多15条二地址指令最多15条一地址指令16条零地址指令7.1(3)扩展操作码技术操作码的位数随地址数的减少而增加OPA1A2A3000000011110…A1A1A1…A2A2A2…A3A3A3…A2A2A2…A3A3A3…111111111111…000000011110…111111111111…111111111111…111111111111…000000011111…111111111111…111111111111…A3A3A3…000000011110…4位操作码8位操作码12位操作码16位操作码三地址指令操作码每减少一种可多构成24种二地址指令二地址指令操作码每减少一种可多构成24

种一地址指令7.12.地址码(1)四地址(2)三地址OPA1A2A3A486666A1

第一操作数地址A2

第二操作数地址A3

结果的地址A4

下一条指令地址若PC代替A4(A1)OP(A2)A38888OPA1A2A3(A1)OP(A2)A34次访存4次访存寻址范围26=64寻址范围28=256若A3用A1或A2代替7.1设指令字长为32位操作码固定为8位(3)二地址OPA1A281212(A1)OP(A2)A1(A1)OP(A2)A2或4次访存若ACC代替A1(或A2)若结果存于ACC(4)一地址(5)零地址OPA1824无地址码(ACC)OP(A1)ACC2次访存寻址范围212=4K寻址范围224=16M3次访存7.1二、指令字长指令字长决定于操作码的长度指令字长=存储字长2.指令字长可变操作数地址的长度操作数地址的个数1.指令字长固定按字节的倍数变化7.1小结当用一些硬件资源代替指令字中的地址码字段后当指令的地址字段为寄存器时可扩大指令的寻址范围可缩短指令字长可减少访存次数三地址OPR1,

R2,R3二地址OPR1,R2

一地址OPR1

指令执行阶段不访存可缩短指令字长7.17.2操作数类型和操作种类一、操作数类型地址数字字符逻辑数无符号整数定点数、浮点数、十进制数ASCII逻辑运算二、数据在存储器中的存放方式字地址为低字节地址字地址为高字节地址37621540字地址04低字节04512673字地址04低字节存储器中的数据存放(存储字长为

32

位)地址(十进制)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)边界未对准7.2三、操作类型1.

数据传送源目的寄存器寄存器寄存器寄存器存储器存储器存储器存储器置“1”,清“0”2.算术逻辑操作加、减、乘、除、增1、减1、求补、浮点运算、十进制运算与、或、非、异或、位操作、位测试、位清除、位求反如8086MOVESTORELOADMOVEPUSHPOP例如MOVEMOVE7.2ADDSUBMULDIVINCDECCMPNEGAAAAASAAMAADANDORNOTXORTEST3.移位操作算术移位4.转移(1)无条件转移JMP(2)条件转移结果为零转(Z=1)

JZ结果溢出转(O=1)JO结果有进位转(C=1)JC跳过一条指令SKP循环移位(带进位和不带进位)如300…305306307SKPDZD=0则跳逻辑移位完成触发器7.2(3)调用和返回CALLSUB1......CALLSUB2…...CALLSUB2…RETURNRETURN主程序地址200021002101子程序SUB1240025002501256025612700主存空间分配程序执行流程子程序SUB27.2...INAX,nOUTDX,ALOUTn,AXOUTDX,AX(4)陷阱(Trap)与陷阱指令意外事故的中断设置供用户使用的陷阱指令如8086INTTYPE软中断提供给用户使用的陷阱指令,完成系统调用5.输入输出一般不提供给用户直接使用

在出现事故时,由CPU自动产生并执行(隐指令)INAL,DXINAX,DX入端口地址CPU的寄存器出CPU的寄存器端口地址7.2如如INAL,nOUTn,AL7.3寻址方式寻址方式

确定本条指令的操作数地址下一条欲执行指令的指令地址指令寻址数据寻址寻址方式7.3寻址方式一、指令寻址顺序(PC)+1PC跳跃由转移指令指出LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100...0123456789PC+1指令地址寻址方式指令地址指令顺序寻址1顺序寻址2顺序寻址3跳跃寻址7顺序寻址8二、数据寻址形式地址指令字中的地址有效地址操作数的真实地址约定

指令字长=存储字长=机器字长1.立即寻址指令执行阶段不访存

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

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

……

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

)6.寄存器间接寻址

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

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

可扩大寻址范围

有利于多道程序

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

在程序的执行过程中BR内容不变,形式地址A可变7.3(2)

采用通用寄存器作基址寄存器操作数主存寻址特征ALUOPR0AR0

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

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

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

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

比较(X)+1X结果不为零则转7.39.相对寻址EA=(PC)+AA是相对于当前指令的位移量(可正可负,补码)A的位数决定操作数的寻址范围程序浮动

广泛用于转移指令操作数寻址特征ALUOPA相对距离A1000PC

…主存1000AOP7.3(1)相对寻址举例M

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

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

与指令ADDX,D

相对位移量不变–3*

指令BNE操作数的有效地址为–3*

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

2008H因为取出JMP

*+8

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

*+8

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

指出–11FFFH+12000H进栈(SP)–1SP出栈(SP)+1SP栈顶栈底2000HSP2000H……1FFFHSP1FFFH栈顶栈底进栈出栈1FFFH栈顶2000H栈顶7.3(2)堆栈寻址举例15200HACCSPX栈顶200H栈底主存151FFHACCSP15栈顶200H栈底主存X1FFHPUSHA前PUSHA后POPA前POPA后Y1FFHACCSPX栈顶200H栈底主存151FFH15200HACCSP栈顶200H栈底主存X157.3(3)SP的修改与主存编址方法有关①按字编址进栈出栈(SP)–1SP(SP)+1SP②按字节编址存储字长16位进栈出栈(SP)–2SP(SP)+2SP存储字长32位进栈出栈(SP)–4SP(SP)+4SP7.37.4指令格式举例一、设计指令格式时应考虑的各种因素1.指令系统的兼容性(向上兼容)2.其他因素操作类型数据类型指令格式包括指令个数及操作的难易程度指令字长是否固定寻址方式寄存器个数地址码位数、地址个数、寻址方式类型操作码位数、是否采用扩展操作码技术,确定哪些数据类型可参与操作指令寻址、操作数寻址寄存器的多少直接影响指令的执行时间二、指令格式举例1.PDP–8指令字长固定12位

操作码

页地址码访存类指令0235411寄存器类指令

111辅助操作码02311I/O类指令

110设备操作码02311987.4采用扩展操作码技术2.PDP–11源地址OP4661616目的地址存储器地址1存储器地址2OP10616目的地址存储器地址目的地址466源地址OP106目的地址OP-CODE16OP-CODE指令字长有16位、32位、48位三种零地址(16位)一地址(16位)二地址R–R(16位)二地址R–M(32位)二地址M–M(48位)扩展操作码技术7.43.IBM360OPR1R2RR格式844OPR1XBDRX格式844412OPR1R3BDRS格式844412OPBDISI格式88412二地址R–R基址加变址寻址二地址R–M三地址R–M基址寻址二地址M–M基址寻址基址寻址立即数–

M7.4OPB1D1LB2D2SS格式884124124.Intel8086(1)指令字长(2)地址格式1~6个字节MOVWORDPTR[0204],0138H6字节INCAX1字节一地址NOP1字节CALL段内调用3字节零地址5字节段间调用寄存器–寄存器寄存器–立即数寄存器–存储器ADDAX,BX2字节ADDAX,[3048H]4字节ADDAX,3048H

3字节二地址CALL7.47.5RISC技术一、RISC的产生和发展

80—20规律

典型程序中80%的语句仅仅使用处理机中20%的指令

执行频度高的简单指令,因复杂指令的存在,执行速度无法提高RISC(ReducedInstructionSetComputer)CISC(ComplexInstructionSetComputer)——RISC技术

能否用20%的简单指令组合不常用的80%的指令功能?二、RISC的主要特征

选用使用频度较高的一些简单指令,复杂指令的功能由简单指令来组合

指令长度固定、指令格式种类少、寻址方式少

只有LOAD/STORE

指令访存

采用流水技术

一个时钟周期内完成一条指令

采用组合逻辑实现控制器

CPU中有多个通用寄存器

采用优化的编译程序

7.5三、CISC的主要特征

系统指令复杂庞大,各种指令使用频度相差大

指令长度不固定、指令格式种类多、寻址方式多访存指令不受限制

大多数指令需要多个时钟周期执行完毕

采用微程序控制器

CPU中设有专用寄存器

难以用优化编译生成高效的目的代码

7.5四、RISC和CISC的比较1.RISC更能充分利用

VLSI芯片的面积2.

RISC更能提高计算机运算速度指令数、指令格式、寻址方式少,通用寄存器多,采用组合逻辑,便于实现指令流水3.RISC便于设计,可降低成本,提高可靠性4.RISC

有利于编译程序代码优化

5.

RISC不易实现指令系统兼容

7.5第8章CPU的结构和功能8.1CPU的结构8.3指令流水8.2指令周期8.4中断系统8.1CPU的结构一、CPU的功能取指令分析指令执行指令,发出各种操作命令控制程序输入及结果的输出总线管理处理异常情况和特殊请求1.控制器的功能2.运算器的功能实现算术运算和逻辑运算指令控制操作控制时间控制数据加工处理中断二、CPU结构框图PCIR指令控制操作控制时间控制数据加工处理中断ALU寄存器中断系统1.CPU与系统总线CU时序电路寄存器ALU

中断

系统CUCPU控制总线数据总线地址总线8.12.CPU的内部结构8.1算术和布尔逻辑取反移位状态标志内部数据总线寄存器CU中断系统ALU控制信号…CPU1.用户可见寄存器(1)通用寄存器三、CPU的寄存器存放操作数可作某种寻址方式所需的专用寄存器(2)数据寄存器存放操作数(满足各种数据类型)两个寄存器拼接存放双倍字长数据(3)地址寄存器存放地址,其位数应满足最大的地址范围用于特殊的寻址方式段基值栈指针(4)条件码寄存器存放条件码,可作程序分支的依据如正、负、零、溢出、进位等8.12.控制和状态寄存器(1)控制寄存器PC控制CPU操作(2)状态寄存器状态寄存器其中MAR、MDR、IR

用户不可见存放条件码PSW寄存器存放程序状态字

PC

用户可见3.举例Z80008086MC68000MARMMDRIR8.1四、控制单元CU和中断系统1.CU产生全部指令的微操作命令序列组合逻辑设计微程序设计硬连线逻辑存储逻辑2.中断系统参见第4篇五、ALU参见8.4节参见第6章8.18.2指令周期一、指令周期的基本概念1.指令周期取出并执行一条指令所需的全部时间完成一条指令执行取指、分析取指阶段取指周期执行阶段执行周期(取指、分析)(执行指令)指令周期取指周期执行周期2.每条指令的指令周期不同取指周期指令周期取指周期执行周期指令周期NOPADDmemMULmem8.2取指周期执行周期指令周期…3.具有间接寻址的指令周期4.带有中断周期的指令周期取指周期间址周期指令周期执行周期取指周期间址周期指令周期执行周期中断周期8.25.指令周期流程取指周期执行周期有间址吗?有中断吗?间址周期中断周期是是否否8.26.CPU工作周期的标志CPU访存有四种性质取指令取地址取操作数存程序断点取指周期间址周期执行周期中断周期FEDINDDINTDCLK1FE1IND1EX1INTEXDCPU的4个工作周期8.21.取指周期数据流二、指令周期的数据流MDRCUMARPCIR存储器CPU地址总线数据总线控制总线IR+18.22.间址周期数据流MDRCUMARCPU地址总线数据总线控制总线PCIR存储器MDR8.23.执行周期数据流4.中断周期数据流不同指令的执行周期数据流不同MDRCUMARCPU地址总线数据总线控制总线PC存储器8.28.3指令流水一、如何提高机器速度1.提高访存速度2.提高I/O和主机之间的传送速度提高整机处理能力高速芯片Cache多体并行I/O处理机DMA多总线通道高速器件改进系统结构,开发系统的并行性中断3.提高运算器速度高速芯片改进算法快速进位链二、系统的并行性时间上互相重叠2.并行性的等级指令级(指令之间)(指令内部)过程级(程序、进程)两个或两个以上事件在同一时刻发生两个或两个以上事件在同一时间段发生并行1.并行的概念粗粒度软件实现细粒度硬件实现并发同时8.3取指令3执行指令3三、指令流水原理2.指令的二级流水1.指令的串行执行取指令

取指令部件完成总有一个部件空闲指令预取若取指和执行阶段时间上完全重叠指令周期减半速度提高1倍…执行指令

执行指令部件

完成取指令1执行指令1取指令2执行指令2取指令3执行指令3取指令2执行指令2取指令1执行指令18.3必须等上条指令执行结束,才能确定下条指令的地址,造成时间损失3.影响指令流水效率加倍的因素(1)执行时间>取指时间

(2)条件转移指令对指令流水的影响

解决办法

?取指令部件指令部件缓冲区执行指令部件猜测法8.34.指令的六级流水六级流水14个时间单位串行执行6×9=54

个时间单位完成一条指令6个时间单位COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t8.3指令1与指令4冲突指令2与指令5冲突指令1、指令3、指令6冲突…COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t三、影响指令流水线性能的因素1.结构相关8.3不同指令争用同一功能部件产生资源冲突程序的相近指令之间出现某种关联使指令流水出现停顿,影响流水线效率解决办法•停顿•指令存储器和数据存储器分开•指令预取技术(适用于访存周期短的情况)2.数据相关不同指令因重叠操作,可能改变操作数的读/写访问顺序采用旁路技术解决办法8.3写后读相关(RAW)SUBR1,R2,R3ADDR4,R5,R1;(R2)

(R3)R1;(R5)+(R1)R4读后写相关(WAR)STAM,R2ADDR2,R4,R5;(R2)M存储单元;(R4)+(R5)R2写后写相关(WAW)后推法MULR3,R2,R1SUB

R3,R4,R5;(R2)×

(R1)R3;(R4)(R5)

R33.控制相关8.3BNE指令必须等CPX指令的结果才能判断出是转移还是顺序执行LDA#0LDX#0INXCPX#NBNEMDIV#NSTAANSADDX,DM由转移指令引起3.控制相关8.3WOEIFOCODIWOEIFODIFIFIDIFICOFIFOCODIFIWOEIFOCODIFIDIFOEIWOEIFOCOFIDICOWODIFICOFI指令1指令2指令3指令4指令5指令6指令7指令15指令161234567891011121314转移损失t设指令3是转移指令四、流水线性能1.吞吐率单位时间内流水线所完成指令或输出结果的数量8.3最大吞吐率实际吞吐率连续处理n条指令的吞吐率为设m

段的流水线各段时间为ΔtTpmax=Δ1tTp=m

·Δ

+(n-1)·

Δ

ntt2.加速比Sp

8.3

m

段的流水线的速度与等功能的非流水线的速度之比设流水线各段时间为Δt完成n条指令在m

段流水线上共需

T=m

·

+(n-1)·

ttΔΔ完成n条指令在等效的非流水线上共需

T

′=nm

·tΔSp

=

m

·+(n-1)·

nm·=nmm

+n-1

ΔtΔΔtt

则由于流水线有建立时间和排空时间因此各功能段的设备不可能

一直处于工作状态

8.3流水线中各功能段的利用率3.效率

mΔt31245312453124531245………………………………n-1nn-1nn-1nn-1nT时间S空间空间S4S3S2S1(n-1)Δt8.3m(m

+n-1)Δt

=mnΔt

流水线各段处于工作时间的时空区流水线中各段总的时空区

效率=3.效率

mΔt31245312453124531245………………………………n-1nn-1nn-1nn-1nT时间S空间空间S4S3S2S1(n-1)Δt流水线中各功能段的利用率五、流水线的多发技术1.超标量技术每个时钟周期内可并发多条独立指令

不能调整指令的执行顺序配置多个功能部件通过编译优化技术,把可并行执行的指令搭配起来8.3IFIDEX

WR0123

45

678

910111213时钟周期指令序列2.超流水线技术在一个时钟周期内再分段(3段)

不能调整指令的执行顺序在一个时钟周期内一个功能部件使用多次(3次)靠编译程序解决优化问题流水线速度是原来速度的3倍8.3IFIDEXWR0

1

2

345

67

8

9

10111213时钟周期指令序列3.超长指令字技术采用多个处理部件具有多个操作码字段的超长指令字(可达几百位)由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条8.3IFIDEXWR012345678910111213时钟周期指令序列六、流水线结构1.指令流水线结构完成一条指令分7段,每段需一个时钟周期若流水线不出现断流1个时钟周期出1结果不采用流水技术7个时钟周期出1结果理想情况下,7级流水的速度是不采用流水技术的7倍地址形成部件指令译码部件取操作数部件取指令部件操作执行部件回写结果部件修改指令指针部件锁存锁存锁存锁存锁存锁存8.32.运算流水线完成浮点加减运算可分对阶、尾数求和、规格化三段分段原则每段操作时间尽量一致锁存器对阶功能部件第一段尾数加部件锁存器第二段规格化部件锁存器第三段8.38.4中断系统一、概述1.引起中断的各种因素(1)人为设置的中断(2)程序性事故如转管指令溢出、操作码不能识别、除法非法(5)外部事件(4)I/O设备(3)硬件故障用键盘中断现行程序转管指令……管理程序2.中断系统需解决的问题(1)各中断源如何向CPU提出请求?(2)各中断源同时提出请求怎么办?(5)如何寻找入口地址?(4)如何保护现场?(3)CPU什么条件、什么时间、以什么方式

响应中断?(6)如何恢复现场,如何返回?(7)处理中断的过程中又出现新的中断怎么办?硬件

+软件8.4二、中断请求标记和中断判优逻辑1.中断请求标记INTR一个请求源

一个INTR

中断请求标记触发器多个INTR

组成中断请求标记寄存器INTR

分散在各个中断源的接口电路中INTR集中在CPU

的中断系统内12345n掉电过热阶上溢主存读写校验错非法除法键盘输入打印机输出8.42.中断判优逻辑①

分散在各个中断源的接口电路中链式排队器②集中在CPU

内(1)硬件实现(排队器)111&1

&1&参见第五章INTR1INTR2INTR3INTR4INTR1、

INTR2、

INTR3、

INTR4

优先级按降序排列

INTP1INTP2INTP3INTP48.4A、B、C

优先级按降序排列(2)软件实现(程序查询)否…是否A

请求?是否B

请求?是否C

请求?转A

的服务程序入口地址转B

的服务程序入口地址转C

的服务程序入口地址是是是否否8.4三、中断服务程序入口地址的寻找1.硬件向量法入口地址200入口地址300入口地址40012H13H14H主存12H13H14HJMP200JMP300JMP400主存向量地址形成部件……中断向量排队器输出向量地址12H、13H、14H入口地址200、300、4008.42.软件查询法

M

JMP1#SR1#D=1转1#服务程序

SKPDZ2#

JMP2#SR2#D=0跳2#D=1转2#服务程序

SKPDZ8#

JMP8#SR8#D=0跳8#D=1转8#服务程序八个中断源1,2,8按降序排列……8.4

SKPDZ1#1#D=0跳(D为完成触发器)中断识别程序(入口地址M)地址说明指令四、中断响应1.响应中断的条件允许中断触发器EINT=12.响应中断的时间指令执行周期结束时刻由CPU发查询信号

CPU中断查询INTR1DQINTR2DQINTRnDQ中断源1中断源2中断源n…至排队器8.43.中断隐指令(1)保护程序断点(2)寻找服务程序入口地址(3)硬件关中断向量地址形成部件INTSQREINTSQRPC

1&≥1排队器……断点存于特定地址(0号地址)内断点进栈INT中断标记EINT允许中断R–S

触发器8.4向量地址PC(硬件向量法)中断识别程序入口地址MPC(软件查询法)五、保护现场和恢复现场1.保护现场2.恢复现场寄存器内容断点保护现场其它服务程序恢复现场中断返回PUSH视不同请求源而定POP中断服务程序完成中断服务程序中断隐指令完成中断服务程序完成8.4IRET1.多重中断的概念klmk

+1l

+1m

+1第一次中断第二次中断第三次中断程序断点k+1,l+1,m+1六、中断屏蔽技术8.42.实现多重中断的条件B、CA中断请求主程序(2)优先级别高的中断源有权中断优先级别低的中断源(1)提前设置开中断指令ABCD中断服务程序(A、B、C、D优先级按降序排列)D8.4

&3.屏蔽技术(1)屏蔽触发器的作用MASK=0(未屏蔽)INTR能被置“1”

&

&

&

&

1

1

1

1INTP1INTP2INTP3INTP4INTR1INTR2INTR3INTR4MASK1MASK2MASK3MASK4DQ1DINTR

MASKQCPU查询MASKi

=1(屏蔽)INTPi

=0(不能被排队选中)8.4(2)屏蔽字8.4

优先级屏蔽字111111111111111101111111111111110011111111111111000111111111111100001111111111110000011111111111…000000000000001100000000000000011234561516…16个中断源1,2,3,

16按降序排列…(3)屏蔽技术可改变处理优先等级响应优先级响应优先级A→B→C→D

降序排列

8.4不可改变处理优先级可改变(通过重新设置屏蔽字)中断源原屏蔽字新屏蔽字ABCD11110111001100011111010001100111处理优先级A→D→C→B降序排列(3)屏蔽技术可改变处理优先等级8.4服务程序B处理完C处理完D处理完A处理完t主程序A程序B程序C程序D程序A、B、C、D同时请求中断CPU执行程序轨迹(原屏蔽字)(3)屏蔽技术可改变处理优先等级(4)屏蔽技术的其他作用8.4便于程序控制可以人为地屏蔽某个中断源的请求服务程序D处理完C处理完B处理完A处理完t主程序A程序B程序C程序D程序A、B、C、D同时请求中断CPU执行程序轨迹(新屏蔽字)8.4(5)新屏蔽字的设置保护现场置屏蔽字开中断中断服务关中断恢复现场恢复屏蔽字开中断中断返回置屏蔽字恢复屏蔽字关中断开中断(1)断点进栈(2)断点存入“0”地址中断隐指令完成中断周期命令存储器写0MARPCMDR(MDR)存入存储器三次中断,三个断点都存入“0”地址4.多重中断的断点保护断点MDR?如何保证断点不丢失?中断隐指令完成8.4(3)程序断点存入“0”地址的断点保护××××05JMPSERVE××××SAVE××××RETURNSTASAVE…0地址内容转存其他服务内容SERVELDASAVEJMP@RETURN存程序断点5为向量地址…保护现场恢复现场间址返回存放ACC内容转存0地址内容开中断ENILDA0STARETURN置屏蔽字8.4地址内容说明第9章控制单元的功能9.1操作命令的分析9.2控制单元的功能9.1操作命令的分析完成一条指令分4个工作周期取指周期间址周期执行周期中断周期一、取指周期PCMAR地址线1RM(MAR)MDRMDRIR(PC)+1PC+1MDRCUMAR

PC

IR存储器CPU地址总线数据总线控制总线9.1操作命令的分析OP(IR)CU二、间址周期M(MAR)MDR1RAd(IR)MARMDRAd(IR)指令形式地址MAR9.1MDRCUMARCPU地址总线数据总线控制总线IR存储器三、执行周期1.非访存指令(1)CLA

清A(2)COM

取反(4)CSL

循环左移(3)SHR

算术右移(5)STP

停机指令0ACCACCACCL(ACC)R(ACC),ACC0ACC0R(ACC)L(ACC),ACC0ACCn0G9.12.访存指令Ad(IR)MAR1RM(MAR)MDR(ACC)+(MDR)ACCAd(IR)

MAR1WACCMDRMDRM(MAR)STAXADDX(2)存数指令(1)加法指令9.1(3)取数指令Ad(IR)

MAR1RM(MAR)

MDRMDRACC3.转移指令(1)无条件转(2)条件转移Ad(IR)

PCA0•Ad(IR)+A0(PC)PCLDAXJMPXBANX(负则转)9.14.三类指令的指令周期取指周期执行周期取指周期执行周期取指周期执行周期取指周期间址周期执行周期非访存指令周期直接访存指令周期间接访存指令周期转移指令周期9.1取指周期间址周期执行周期间接转移指令周期四、中断周期程序断点存入“0”地址程序断点进栈0

MAR1WPCMDRMDRM(MAR)向量地址PC0EINT(置“0”)0EINT(置“0”)向量地址PCMDRM(MAR)PCMDR1W中断识别程序入口地址MPC9.1(SP)1

MAR9.2控制单元的功能一、控制单元的外特性指令寄存器控制单元

CU…时钟标志CPU内部的控制信号到系统总线的控制信号来自系统总线的控制信号系统总线1.输入信号(1)时钟(2)指令寄存器(4)外来信号(3)标志CU受时钟控制控制信号与操作码有关OP(IR)CUCU受标志控制INTR中断请求HRQ总线请求一个时钟脉冲发一个操作命令或一组需同时执行的操作命令如9.22.输出信号(1)CPU内的各种控制信号(2)送至控制总线的信号Ri

Rj(PC)+1PCINTAHLDA访存控制信号访IO/

存储器的控制信号读命令写命令中断响应信号总线响应信号MREQIO/MRDWRALU+、-、与、或……9.2二、控制信号举例PCIRACCU时钟ALU………控制信号标志控制信号C0C1C2C3C4取指周期以ADD@X为例PCIRCU9.21.不采用CPU内部总线的方式PCPCPC

MDR

MAR

MDR

MARPCIRACCU时钟ALU………控制信号标志控制信号

MDR

MAR二、控制信号举例1.不采用CPU内部总线的方式C1C2C3C5ADD@X间址周期IR9.2

MDR

MDR

MARPCIRACCU时钟ALU………控制信号标志控制信号

MDR

MAR二、控制信号举例1.不采用CPU内部总线的方式C1C2C5ADD@X执行周期C7C6C8ACALU…控制信号9.2

MDR

MAR

MDRMDRMDRCU(1)ADD@X取指周期

PC

CU

发读命令1R

MDROP(IR)(PC)+1PCIRPCMARAC

YALUZ…控制信号IRiIRiPCOPCOMARiMARiMDROMDRO…数据线数据线控制信号CPU

内部总线时钟2.采用CPU内部总线方式地址线地址线MARMDRIRCU9.2IRPCPCMDRMARCUIRPCPCCU(2)ADD@X间址周期

MDR1R

MDR有效地址

Ad(IR)MDROMDRO数据线数据线时钟CUIRPCMARMDRACYALUZ…控制信号…控制信号CPU

内部总线MDRIRMARi

MARi地址线地址线MARIRiIRiMARMDRIRMDRMDRMDROMDROMDROMDROMDRO形式地址MAR

9.2CU时钟CUIRPCMARMDRACYALUZ…控制信号CPU

内部总线MDROMDRO(3)ADD@X执行周期1R

MDR

Z

AC(AC)+(Y)

MDR控制信号…MARMDR地址线地址线数据线数据线MARMDRYMDRMDRMDROMDROMDROMDROMDROMDROMDROYiYi

YALUACACOACOALUiALUiALUALUACZZZZOZOACiACiACACACACMARi

MARiALUAC9.2CU三、多级时序系统1.机器周期(1)机器周期的概念(2)确定机器周期需考虑的因素(3)基准时间的确定所有指令执行过程中的一个基准时间每条指令的执行步骤每一步骤所需的时间以完成最复杂指令功能的时间为准以访问一次存储器的时间为基准若指令字长=存储字长取指周期

=

机器周期9.22.时钟周期(节拍、状态)

一个机器周期内可完成若干个微操作每个微操作需一定的时间时钟周期是控制计算机操作的最小单位时间将一个机器周期分成若干个时间相等的时间段(节拍、状态、时钟周期)9.2用时钟周期控制产生一个或几个微操作命令CLKT0T1T2T3时钟周期2.时钟周期(节拍、状态)

机器周期机器周期T0T1T2T3T0T1T2T39.23.多级时序系统机器周期、节拍(状态)组成多级时序系统一个指令周期包含若干个机器周期一个机器周期包含若干个时钟周期CLK机器周期机器周期机器周期

(取指令)(取有效地址)(执行指令)指令周期T0T1T2T3T0T1T2T3T0T1T2T3机器周期机器周期(取指令)(执行指令)指令周期T0T1T2T3T0T1T2节拍(状态)节拍(状态)9.24.机器速度与机器主频的关系机器的主频f越快机器的速度也越快在机器周期所含时钟周期数相同的前提下,两机平均指令执行速度之比等于两机主频之比机器速度不仅与主频有关,还与机器周期中所含时钟周期(主频的倒数)数以及指令周期中所含的机器周期数有关9.2MIPS1MIPS2=f1f2四、控制方式产生不同微操作命令序列所用的时序控制方式1.同步控制方式任一微操作均由统一基准时标的时序信号控制CLK机器周期机器周期机器周期(取指令)(取有效地址)(执行指令)指令周期T0T1T2T3T0T1T2T3T0T1T2T3(1)采用定长的机器周期以最长的微操作序列和最繁的微操作作为标准9.2机器周期内节拍数相同(2)采用不定长的机器周期机器周期机器周期(取指令)(执行指令)指令周期T0T1T2T3T0T1T2节拍(状态)机器周期机器周期(取指令)(执行指令)T0T1T2T3T0T1T2T3TT延长9.2机器周期内节拍数不等(3)采用中央控制和局部控制相结合的方法T0T1T2T3T0T1T2中央控制节拍

T3T0T1中央控制节拍机器周期执行周期指令周期取指周期T0T1T2T39.2局部控制的节拍宽度与中央控制的节拍宽度一致T*T*T*局部控制节拍…2.异步控制方式无基准时标信号无固定的周期节拍和严格的时钟同步采用应答方式3.联合控制方式4.人工控制方式(1)Reset(2)连续和单条指令执行转换开关(3)符合停机开关同步与异步相结合9.2五、多级时序系统实例分析1.8085的组成9.2A15~A8中断控制AC(8)TR(8)FR(5)IR(8)IDAL(16)PC(16)SP(16)L(8)H(8)E(8)D(8)C(8)B(8)

指令译码和机器周期编码ALU定时和控制时钟控制状态DMA复位ABR(8)ADBR(8)8位内部数据总线I/O控制INTAINTRSIDSODCLKReadyRDWRALEIO/MHLDAResetoutAD7~AD02.8085的外部引脚(1)地址和数据信号(2)定时和控制信号(3)存储器和I/O初始化A15~A8

AD7~AD0SIDSOD入X1X2入HOLDReady出

HLDA出CLK

ALES0S1

IO/M

RD

WR12345678910111213141516171819204039383736353433323130292827262524232221X1X2ResetoutSODSIDTrapRST7.5RST6.5RST5.5INTAAD0AD1AD2AD3AD4AD5AD6AD7VSSINTRVCCHOLDHLDACLK(out)RsestinReadyIO/MS1RDWRALES0A15A14A13A12A11A10A9A89.2(4)与中断有关的信号(5)CPU初始化(6)电源和地出INTATrap重新启动中断入INTR入Resetin出ResetoutVCC+5VVSS

地12345678910111213141516171819204039383736353433323130292827262524232221X1X2ResetoutSODSIDTrapRST7.5RST6.5RST5.5INTAAD0AD1AD2AD3AD4AD5AD6AD7VSSINTRVCCHOLDHLDACLK(out)RsestinReadyIO/MS1RDWRALES0A15A14A13A12A11A10A9A89.23.机器周期和节拍(状态)与控制信号的关系9.2T1T2T3T4T1T2T3T1T2T3M1M2M3PCoutPC+1InsIRXPCoutPC+1ByZZoutAPortIOPORTACCbytePCLInstrPCLPCHPCHIOPORT3MHZCLKA15~A8AD7~AD0ALERDWRIO/M小结每个控制信号在指定机器周期的指定节拍T

时刻发出机器周期M1

取指令操作码机器周期M2

取设备地址机器周期M3

执行ACC的内容写入设备以一条输出指令(I/O写)为例9.2第10章控制单元的设计10.1组合逻辑设计10.2微程序设计10.1组合逻辑设计一、组合逻辑控制单元框图1.CU

外特性IR节拍发生器CUT0T1Tn…CLK(机器主频)…标志012n-1…C0C1Cn操作码译码n

位操作码

2.节拍信号CLKT0T1T2T3时钟周期机器周期机器周期T0T1T2T3T0T1T2T310.1

二、微操作的节拍安排采用

同步控制方式CPU

内部结构采用非总线方式一个

机器周期

内有

3

个节拍(时钟周期)10.1PCIRACCU时钟ALU………C1C2C5C9C0C10C3C7C4C6C12C11C8控制信号标志控制信号

MDR

MAR

1.安排微操作时序的原则原则一微操作的先后顺序不得随意更改原则二被控对象不同的微操作尽量安排在一个节拍内完成原则三占用时间较短的微操作尽量安排在一个节拍内完成并允许有先后顺序10.12.取指周期微操作的节拍安排PCMARM(MAR)MDRMDRIR(PC)+1PC原则二原则二原则三3.间址周期微操作的节拍安排M(MAR)MDRMDRAd(IR)T0T1T2T0T1T21ROP(IR)IDAd(IR)

温馨提示

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

评论

0/150

提交评论