资源预览内容
第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
第9页 / 共45页
第10页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第八章 CPU结构和功能8.1 CPU 的结构8.3 指令流水8.2 指令周期8.4 中断系统8.1 CPU 的结构一、 CPU的功能取指令分析指令执行指令,发出各种操作命令控制程序输入及结果的输出总线管理处理异常情况和特殊请求1. 控制器的功能2. 运算器的功能实现算术运算和逻辑运算指令控制操作控制时间控制数据加工处理中断PC IR指令控制操作控制时间控制数据加工处理中断ALU 寄存器中断系统1.使用系统总线的CPUCU 时序电路寄存器ALU 中断 系统CUCPU控制总线数据总线地址总线二、CPU结构框图 算术和布尔逻辑取反移位状态标志内部 数据总线CPU寄存器CU中断系统ALU控制信号2. CPU 的内部结构1. 用户可见寄存器(1) 通用寄存器存放操作数可作 某种寻址方式所需的 专用寄存器(2) 数据寄存器存放操作数(满足各种数据类型)两个寄存器拼接存放双倍字长数据(3) 地址寄存器存放地址,其位数应满足最大的地址范围用于特殊的寻址方式 段基值 栈指针(4) 条件码寄存器存放条件码,可作程序分支的依据如 正、负、零、溢出、进位等三、 CPU 的寄存器(1) 控制寄存器PC控制 CPU 操作(2) 状态寄存器状态寄存器其中 MAR MDR IR 用户不可见 存放条件码PSW 寄存器存放程序状态字 PC 用户可见 3. 举例Z8000 8086 MC 68000MARMMDRIR2. 控制和状态寄存器1. CU 产生全部指令的微操作命令序列组合逻辑设计微程序设计硬连线逻辑存储逻辑2. 中断系统参见 第四篇 五、ALU参见 8.4参见 第六章四、 控制单元 CU 和中断系统8.2 指令周期一、指令周期的基本概念1 指令周期取出并执行一条指令所需的全部时间完成一条指令取指、分析取指周期执行周期执行取指阶段执行阶段取指周期执行周期(取指、分析)(执行指令)指令周期2 每条指令的指令周期不同取指周期指令周期NOP取指周期执行阶段指令周期ADD mem取指周期执行周期指令周期MUL mem3 具有间接寻址的指令周期取指周期间址周期指令周期执行周期4 带有中断周期的指令周期取指周期间址周期指令周期执行周期中断周期5 指令周期流程取指周期有间址吗?执行周期有中断吗?间址周期中断周期是是否否6 CPU工作周期的标志CPU访存有四种性质取 指令取 地址取 操作数存 程序断点取址周期间址周期执行周期中断周期CPU的四个工作周期DFEDINDDEXDINTCLK1FE1IND1EX1INTIR二、指令周期的数据流1 取指周期数据流PCMARCUMDRIR地址总线数据总线控制总线存储器CPU+12 间址周期数据流MARCU地址总线数据总线控制总线存储器CPUMDRMDR3 执行周期数据流不同指令的执行周期数据流不同4 中断周期数据流PCMARCUMDR地址总线数据总线控制总线存储器CPU8.3 指令流水一、如何提高机器速度1 提高访存速度高速芯片Cache多体并行2 提高I/O和主机之间的传送速度中断DMA通道多总线I/O处理机3 提高运算器速度高速芯片改进算法快速进位链提高整机处理能力高速器件改进系统结构,开发系统的并行性二、系统的并行性1 并行的概念并行并发同时两个或两个以上事件在同一时间段发生两个或两个以上事件在同一时刻发生时间上互相重叠2 并行性的等级过程级(程序、进程)指令级(指令之间)粗粒度细粒度软件实现硬件实现三、指令流水原理1 指令的串行执行2 指令的二级流水执行指令1取指令1取指令取指令部件完成执行指令执行指令部件完成总有一个部件空闲取指令1执行指令1执行指令2取指令2执行指令3取指令3指令预取若 取指 和 执行 阶段时间上 完全重叠指令周期 减半速度提高1倍执行指令3取指令3执行指令2取指令23 影响指令流水效率加倍的因素(1)执行时间取指时间执行指令部件取指令部件执行部件缓冲区(2)条件转移指令 对指令流水的影响必须等 上条 指令执行结束,才能确定 下条 指令的地址造成时间损失猜测法解决办法? 4 指令的六级流水1234567891011 12 13 14指令1指令2指令3指令4指令5指令6指令7指令8指令9tFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWO完成 一条指令串行执行六级流水6 个单位时间14 个单位时间54 单位时间三、影响指令流水性能的因素1234567891011 12 13 14指令1指令2指令3指令4指令5指令6指令7指令8指令9tFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWO1 访存冲突指令 1 与指令 4 冲突指令 2 与指令 5 冲突指令1、指令3 、指令6冲突解决办法指令存储器和数据存储器分开指令预取技术(适用于访存周期短的情况)2 相关问题程序的相近指令之间出现某种关联使指令流水出现停顿影响流水线效率2 相关问题(1)控制相关LDA #0LDX #0ADD X, DINXCPX #NBNE MDIV #NSTA ANSBNE 指令必须等CPX 指令必须等才能判断出是转移还是顺序执行M2 相关问题1234567891011 12 13 14指令1指令2指令3指令4指令5指令6指令7指令15指令16tFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOFIDICOFIDIFIFIDICOFOEIWOFIDICOFOEIWO(1)控制相关设 指令3 是转移指令转移损失(2)数据相关几条相近的指令间,共用 同一存储单元 或 同一寄存器 时,会出现 数据相关如: ADD R1, R2SUB R1, R3解决办法采用 旁路技术寄存器组锁存器锁存器ALU五、流水线结构1 指令流水线结构完成一条指令分 7段,每段需一个时钟周期修改指令指针部件 回写结果部件 操作执行部件 取操作数部件 地址形成部件 指令译码部件 取指令部件锁存锁存锁存锁存锁存锁存若 流水线不出现断流不采用流水技术理想情况下,7级流水 的速度是不采用流水技术的 7倍1 个时钟周期出 1 结果7 个时钟周期出 1 结果2 运算流水线完成 浮点加减 运算 可分对阶、尾数求和、规格化 三段 锁存器 对阶功能部件第一段 锁存器 规格化部件第三段 锁存器 尾数加部件第二段分段原则每段 操作时间 尽量 一致8.4 中断系统一、概述1 引起中断的各种因素(1)人为设置的中断如 转管指令转管指令管理程序(2)程序性事故 溢出、操作码不能识别、除法非法(3)硬件故障(4)I/O设备(5)外部事件 用 键盘中断 现行程序2 中断系统需解决的问题(1)各中断源 如何 向CPU 提出请求?(2)各中断源 同时 提出 请求 怎么办?(3)CPU什么 条件、什么 时间、以什么 方式响应中断?(4)如何 保护现场?(5)如何 寻找入口地址?(6)如何 恢复现场,如何 返回?(7)处理中断的过程中又 出现新的中断 怎么办?硬件 + 软件二、中断请求标记和中断判优逻辑1 中断请求标记INTR一个请求源一个INTR 中断请求标记触发器多个INTR组成 中断请求标记寄存器12345n过热错内存读写校验掉电阶上溢非法除法键盘打印机INTR分散 在各个中断源的 接口电路中INTR集中 在 CPU 的中断系统 内2 中断判优逻辑(1)硬件实现(排队器) 集中 在 CPU 内 分散 在各个中断源的 接口电路中链式排队器参见第五章INTP1INTP2INTP3INTP4111&1&1&INTR1INTR2INTR3INTR4INTR1、INTR2、INTR3、INTR4 优先级 按 降序 排列(2)软件实现(程序查询)A、B、C 优先级按 降序 排列是否 A 请求?是否 B 请求?是否 C 请求?否否否是是是转 A 的服务程序入口地址转 B 的服务程序入口地址转 C 的服务程序入口地址三、中断服务程序入口地址的寻找1 硬件向量法向量地址形成部件中断向量排队器输出向量地址 12H、13H、14H入口地址 200、300、400JMP 200JMP 300JMP 40012H13H14H主存入口地址 20012H13H14H入口地址 300入口地址 400主存2 软件查询法八个中断源1、2、8按 降序 排列中断识别程序(入口地址 M )地 址指 令说 明SKP DZ1#1# D=0 跳(D为完成触发器)JMP 1#SR1# D=1 转1#服务程序SKP DZ2#JMP 2#SR2# D=0 跳2# D=1 转2#服务程序SKP DZ8#JMP 8#SR8# D=0 跳8# D=1 转8#服务程序M四、中断响应1 响应中断的条件2 响应中断的时间允许中断触发器 EINT=1指令执行周期结束时刻由CPU发查询时刻INTR1QDINTR2QDINTRnQD中断源1中断源2中断源n至排队器中断查询CPU3 中断隐指令(1)保护程序断点断点存于 特定地址(0号地址)内(2)寻找服务程序入口地址特定地址PC (硬件向量法)中断识别程序 入口地址MPC(软件查询法)断点 进栈(3)硬件关中断INTQSREINTQSR1&向量地址形成部件排队器PCINT 中断标记EINT 允许中断R-S 触发器五、保护现场和恢复现场1 保护现场断点寄存器 内容中断隐指令 完成中断服务程序 完成2 恢复现场中断服务程序 完成中断服务程序保护现场PUSH其他服务程序视不同请求源而定恢复现场POP中断返回IRET六、中断屏蔽技术1 多重中断的概念2 实现多重中断的条件(1)提前 设置 开中断 指令(2)优先级别高 的中断源 有权中断优先级别低的 的中断源ABCD中断服务程序(A、B、C、D优先级按 降序 排列)主程序中断请求B,CDA3 屏蔽技术(1)屏蔽触发器的作用INTRDMASKQ1&DQCPU查询MASK=0(未屏蔽)INTR=1 能被置“1”11111&INTP1INTP2INTP3INTP4INTR1INTR4INTR3INTR2MASK4MASK3MASK2MASK1MASKi=1(屏蔽)INTPi=0(不能被排队选中)(2)屏蔽字16个中断源按1、2、316按 降序 排列优先级1234561516屏 蔽 字1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 0 1 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1(3)屏蔽技术可改变优先等级0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 10 0 0 0 1 0 1 1 1 1 1 1 1 1 1 16#比5#优先级高(4)屏蔽技术的其他应用可以 人为的屏蔽 某个中断源的请求便于程序控制4 多重中断的断点保护(1)断点进栈(2)断点存入“0”地址中断隐指令 完成中断隐指令 完成中断周期0MAR命令存储器写PCMDR断点MDR(MDR)存入存储器三次中断,三个断点都存入“0”地址?如何保证断点不丢失?(3)程序断点存入“0”地址的断点保护地 址内 容说 明JMP RETURN0JMP SERVE5STA SAVESERVE存程序断点5 为向量地址保护现场LDA 0STA RETURNENILDA SAVE置屏蔽字SAVERETURN0地址内容转存开中断其他服务内容恢复现场间址返回存放ACC内容转存0地址内容
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号