计算机组成原理第8章
- 格式:ppt
- 大小:1.10 MB
- 文档页数:61
第8章CPU的结构和功能例8.1假设指令流水线分取指(IF)、译码(ID)、执行(EX)、回写(WR)四个过程段,共有10条指令连续输入此流水线。
(1)画出指令周期流程。
(2)画出非流水线时空图。
(3)画出流水线时空图。
(4)假设时钟周期为100ns,求流水线的实际吞吐率。
(5)求该流水处理器的加速比。
解:(1)根据指令周期包括IF、ID、EX、WR四个子过程,图8.1(a)为指令周期流程图。
(2)非流水线时空图如图8.1(b)所示。
假设一个时间单位为一个时钟周期,则每隔4个时钟周期才有一个输出结果。
(3)流水线时空图如图8.1(c)所示。
由图可见,第一条指令出结果需要4个时钟周期。
当流水线满载时,以后每一个时钟周期可以出一个结果,即执行完一条指令。
(a)指令周期流程(b) 非流水线时空图(c) 标准流水线时空图图8.1 例8.1答图(4)由图8.1(c)所示的10条指令进入流水线的时空图可见,在13个时钟周期结束时,CPU执行完10条指令,故实际吞吐率为:10/(100ns×13) ≈ 0.77×107条指令/秒(5)在流水处理器中,当任务饱满时,指令不断输入流水线,不论是几级流水线,每隔一个时钟周期都输出一个结果。
对于本题四级流水线而言,处理10条指令所需的时钟周期数为T4 = 4 +(10 −1)= 13。
而非流水线处理10条指令需4×10 = 40个时钟周期。
故该流水处理器的加速比为40 ÷13 ≈ 3.08 例8.2设某机有四个中断源1、2、3、4,其硬件排队优先次序按1→2→3→4降序排列,各中断源的服务程序中所对应的屏蔽字如表8.1所示。
表8.1 例8.2各中断源对应的屏蔽字中断源 屏蔽字1 2 3 41 1 1 0 12 0 1 0 03 1 1 1 14 0 1 0 1(1)给出上述四个中断源的中断处理次序。
(2)若四个中断源同时有中断请求,画出CPU执行程序的轨迹。
第八章CPU 的结构和功能8.1 CPU 的结构8.2 指令周期8.3 指令流水8.4 中断系统8.1 CPU 的结构一、CPU 的功能取指令分析指令执行指令,发出各种操作命令控制程序输入及结果的输出总线管理处理异常情况和特殊请求1. 控制器的功能2. 运算器的功能实现算术运算和逻辑运算指令控制操作控制时间控制数据加工处理中断二、CPU 结构框图PC IR指令控制操作控制时间控制数据加工处理中断ALU 寄存器中断系统1. CPU 与系统总线CU 时序电路寄存器ALU中断系统CUCPU控制总线数据总线地址总线8.12. CPU 的内部结构算术和布尔逻辑取反移位状态标志内部数据总线C P U 寄存器CU 中断系统ALU 控制信号…8.11. 用户可见寄存器(1) 通用寄存器三、CPU 的寄存器存放操作数可作某种寻址方式所需的专用寄存器(2) 数据寄存器存放操作数(满足各种数据类型)两个寄存器拼接存放双倍字长数据(3) 地址寄存器存放地址,其位数应满足最大的地址范围用于特殊的寻址方式段基值栈指针(4) 条件码寄存器存放条件码,可作程序分支的依据如正、负、零、溢出、进位等8.12. 控制和状态寄存器(1) 控制寄存器PC控制CPU 操作(2) 状态寄存器状态寄存器其中MAR MDR IR用户不可见存放条件码PSW 寄存器存放程序状态字PC用户可见3. 举例Z8000 8086 MC 68000MARMMDRIR8.1四、控制单元CU 和中断系统1. CU 产生全部指令的微操作命令序列组合逻辑设计微程序设计硬连线逻辑存储逻辑2. 中断系统参见第四篇五、ALU参见8.4参见第六章8.18.2 指令周期一、指令周期的基本概念1 . 指令周期取出并执行一条指令所需的全部时间完成一条指令执行取指、分析取指阶段取指周期执行阶段执行周期(取指、分析)(执行指令)指令周期取指周期执行周期2. 每条指令的指令周期不同取指周期指令周期取指周期执行阶段指令周期取指周期执行周期指令周期NOPADD mem MUL mem8.23. 具有间接寻址的指令周期4. 带有中断周期的指令周期取指周期间址周期指令周期执行周期取指周期间址周期指令周期执行周期中断周期8.25. 指令周期流程取指周期执行周期有间址吗?有中断吗?间址周期中断周期是是否否8.26. CPU 工作周期的标志CPU 访存有4 种性质取指令取地址取操作数存程序断点取指周期间址周期执行周期中断周期FEDINDDINTDCLK1FE1IND 1EX 1INTEXDCPU 的4个工作周期8.21. 取指周期数据流二、指令周期的数据流MDRCUMARPC存储器CPU 地址总线数据总线控制总线IR+18.22. 间址周期数据流CUMARCPU地址总线数据总线控制总线PCIR存储器MDR8.23. 执行周期数据流4 . 中断周期数据流不同指令的执行周期数据流不同MDRCUMARCPU 地址总线数据总线控制总线PC存储器8.28.3 指令流水一、如何提高机器速度1. 提高访存速度2. 提高I/O 和主机之间的传送速度•提高整机处理能力高速芯片Cache多体并行多总线DMAI/O 处理机通道高速器件改进系统结构,开发系统的并行性中断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 个时间单位CO FO EI WO DI FICOFOEIWODIFICO FO EI WODI FI CO FOEI WODIFICO FO EI WO DI FI CO FOEI WO DI FICO FO EI WODI FICO FO EI WO DI FICO FOEIWO DI FI指令1指令2指令3指令4指令5指令6指令7指令8指令91 2 3 4 5 6 7 8 9 10 11 12 13 14t8.3指令1 与指令4 冲突指令2 与指令5 冲突指令1、指令3、指令6 冲突……CO FO EI WODI FI CO FO EI WODI FI CO FO EI WODI FI CO FO EI WODI FICO FO EI WODI FI CO FO EI WODI FI CO FO EI WODI FICO FO EI WODI FICO FO EI WODI FI指令1指令2指令3指令4指令5指令6指令7指令8指令91 2 3 4 5 6 7 8 9 10 11 12 13 14t三、影响指令流水性能的因素1. 访存冲突解决办法• 指令存储器和数据存储器分开• 指令预取技术(适用于访存周期短的情况)8.32. 相关问题程序的相近指令之间出现某种关联使指令流水出现停顿影响流水线效率(1) 控制相关8.3WOEIFOCODIWO EI FO DI FIFIDI FICO FI FO CO DI FI WOEI FO CO DI FI DIFO EIWO EI FO CO FIDI CO WODIFICOFI指令1指令2指令3指令4指令5指令6指令7指令15指令161 2 3 4 5 6 7 8 9 10 11 12 13 14转移损失t设指令3 是转移指令BNE 指令必须等CPX 指令的结果才能判断出是转移还是顺序执行LDA # 0LDX # 0INX CPX #N BNE M DIV # N STA ANSADD X, DM(2) 数据相关几条相近的指令间,共用同一存储单元或同一寄存器时,会出现数据相关ADD R1,R2如:SUB R1,R3采用旁路技术解决办法寄存器组锁存器锁存器ALU8.3四、流水线的多发技术1. 超标量技术每个时钟周期内可并发多条独立指令不能调整指令的执行顺序配置多个功能部件通过编译优化技术,把可并行执行的指令搭配起来IF ID EX WR0 1 2 3 4 5 6 7 8 9 10 11 12 13t 8.32. 超流水技术在一个时钟周期内再分段(3 段)不能调整指令的执行顺序在一个时钟周期内一个功能部件使用多次(3 次)靠编译程序解决优化问题流水线速度是原来速度的3 倍IF ID EX WR0 1 2 3 4 5 6 7 8 9 10 11 12 13t 8.33. 超长指令字采用多个处理部件具有多个操作码字段的超长指令字(可达几百位) 由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条IF ID EX WR0 1 2 3 4 5 6 7 8 9 10 11 12 13t8.3五、流水线结构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) 硬件实现(排队器)1 11&1&1&参见第五章INTR1INTR2INTR3INTR4INTR1、INTR2 、INTR3 、INTR4优先级按降序排列INTP1INTP2INTP3INTP48.4A 、B 、C 优先级按降序排列(2) 软件实现(程序查询)否……是否A 请求?是否B 请求?是否C 请求?转A 的服务程序入口地址转B 的服务程序入口地址转C 的服务程序入口地址是是是否否8.4三、中断服务程序入口地址的寻找1. 硬件向量法入口地址200入口地址300入口地址40012 H 13 H 14 H主存12 H 13 H 14 HJMP 200JMP 300JMP400主存向量地址形成部件…………中断向量排队器输出向量地址12H 、13H 、14H入口地址200、300、4008.42. 软件查询法中断识别程序(入口地址M)地址说明指令MJMP 1# SR1# D = 1 转1# 服务程序SKP DZ 2# JMP 2# SR 2# D = 0 跳2# D = 1 转2# 服务程序SKP DZ 8# JMP 8# SR 8# D = 0 跳8# D = 1 转8# 服务程序八个中断源1、2、8 按降序排列…………8.4SKP DZ 1#1# D = 0 跳(D为完成触发器)四、中断响应1. 响应中断的条件允许中断触发器EINT = 12. 响应中断的时间指令执行周期结束时刻由CPU 发查询信号CPU 中断查询INTR1DQINTR2DQINTR nDQ中断源1中断源2中断源n……至排队器8.43. 中断隐指令(1) 保护程序断点(2) 寻找服务程序入口地址(3) 硬件关中断向量地址形成部件INTSQREINTSQR PC1&≥1排队器……断点存于特定地址(0 号地址)内断点进栈INT 中断标记EINT 允许中断R –S 触发器8.4向量地址PC (硬件向量法)中断识别程序入口地址MPC (软件查询法)五、保护现场和恢复现场1. 保护现场2. 恢复现场寄存器内容断点保护现场其他服务程序恢复现场中断返回PUSH视不同请求源而定POP中断服务程序完成中断服务程序中断隐指令完成中断服务程序完成8.4IRET1. 多重中断的概念k l mk+1l+1m+1第一次中断第二次中断第三次中断程序断点k+1 , l+1 , m+1六、中断屏蔽技术8.42. 实现多重中断的条件B, CA中断请求主程序(2) 优先级别高的中断源有权中断优先级别低的中断源(1) 提前设置开中断指令A B C D中断服务程序(A 、B 、C 、D 优先级按降序排列)D8.4&3. 屏蔽技术(1) 屏蔽触发器的作用MASK = 0(未屏蔽)INTR 能被置“1”1&&&1111INTP 1INTP 2INTP 3INTP 4INTR 1INTR 2INTR 3INTR 4MASK 1MASK 2MASK 3MASK 4DQ1DINTRMASKQCPU 查询MASK i = 1 (屏蔽)INTP i = 0 (不能被排队选中)8.4(2) 屏蔽字优先级屏蔽字1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 101 1 1 1 1 1 1 1 1 1 1 1 1 1 10 01 1 1 1 1 1 1 1 1 1 1 1 1 10 0 01 1 1 1 1 1 1 1 1 1 1 1 10 0 0 01 1 1 1 1 1 1 1 1 1 1 10 0 0 0 01 1 1 1 1 1 1 1 1 1 1……0 0 0 0 0 0 0 0 0 0 0 0 0 01 10 0 0 0 0 0 0 0 0 0 0 0 0 0 011234561516……16个中断源1、2、3 ……16 按降序排列8.4(3) 屏蔽技术可改变优先等级(4) 屏蔽技术的其他作用0 0 0 01 01 1 1 1 1 1 1 1 1 10 0 0 01 1 1 1 1 1 1 1 1 1 1 1 6# 比5# 优先级高便于程序控制可以人为地屏蔽某个中断源的请求8.4(1) 断点进栈(2) 断点存入“0 ”地址中断隐指令完成中断周期命令存储器写0 MAR PC MDR(MDR) 存入存储器三次中断,三个断点都存入“0 ”地址4. 多重中断的断点保护断点MDR?如何保证断点不丢失?中断隐指令完成8.4(3) 程序断点存入“0 ”地址的断点保护××××05JMP SERVE ××××SA VE ××××RETURNSTA SA VE …0 地址内容转存其他服务内容地址内容说明SERVELDA SA VEJMP @ RETURN 存程序断点5 为向量地址…保护现场恢复现场间址返回存放ACC 内容转存0 地址内容开中断ENILDA 0STA RETURN置屏蔽字8.4。