第三章流水线技术 提高计算机性能(速度)的两个重要方法: 缩短执行每条指令所需的平均周期数cPl, 如:R|Sc技术。 2.提高处理机在执行指令中的并行度,即同 时刻中处理机内同时运行多条指令。如: 采用流水线技术
第三章 流水线技术 提高计算机性能(速度)的两个重要方法: 1. 缩短执行每条指令所需的平均周期数CPI, 如:RISC技术。 2. 提高处理机在执行指令中的并行度,即同 一时刻中处理机内同时运行多条指令。如: 采用流水线技术
3.1重叠执行和先行控制 指令的重叠执行 条指令的执行过程可以粗略地分为: 取指令、分析和执行三个阶段,且这个 次序是不能改变的。 取指令分析执行 用T表示执行一条指令所需的时间,可以写成: Ti=指令+t析+抛行
3.1 重叠执行和先行控制 一 .指令的重叠执行 一条指令的执行过程可以粗略地分为: 取指令、分析和执行三个阶段,且这个 次序是不能改变的。 取指令 分析 执行 t Ti 用Ti表示执行一条指令所需的时间,可以写成: Ti = t取指令 + t分析 + t执行
3.1重叠执行和先行控制 如果连续执行一段程序,计算机对前后 相邻指令的执行过程可以有两种不同的 选择: 1顺序执行方式,即等前一条指令执行完 毕,紧接着执行下一条指令 取指分析执行取指分析执行 k k+ 2.让前后连续的指令在处理机内以重叠的 方式执行
3.1 重叠执行和先行控制 如果连续执行一段程序,计算机对前后 相邻指令的执行过程可以有两种不同的 选择: 1.顺序执行方式,即等前一条指令执行完 毕,紧接着执行下一条指令. 2. 让前后连续的指令在处理机内以重叠的 方式执行. 取指 分析 执行 取指 分析 执行 k k+ 1
3.1重叠执行和先行控制 一次重叠执行方式: 第k+2条指令 取指分析执行 第k+1条指令 取指分析执行 第k条指令取指分析执行 二次重叠执行方式: 第k+2条指令 取指分析执行 第k+1条指令 取指分析执行 第k条指令 取指分析执行 如果三个阶段所需时间t等,N条指令顺序执行 的时间为:T=3Nto 次重叠执行的时间:T=(1+2N)t 二次重叠执行的时间为:T=(2+Nt
3.1 重叠执行和先行控制 一次重叠执行方式: 二次重叠执行方式: 取指 分析 执行 取指 分析 执行 取指 分析 执行 第k条指令 第k + 1条指令 第k + 2条指令 取指 分析 执行 取指 分析 执行 取指 分析 执行 第k条指令 第k + 1条指令 第k + 2条指令 如果三个阶段所需时间t相等,N条指令顺序执行 的时间为 :T=3Nt。 一次重叠执行的时间:T=(1+2N)t。 二次重叠执行的时间为:T=(2+N)t
3.1重叠执行和先行控制 二先行控制技术 1.实现重叠执行存在的问题 (1)问题一: 需要独立的取指部件,分析部件,执行部件 解决方案 设置对应存储控制器,指令控制器和运算控 制器
3.1 重叠执行和先行控制 二.先行控制技术 1.实现重叠执行存在的问题 (1)问题一: 需要独立的取指部件,分析部件,执行部件。 解决方案: 设置对应存储控制器,指令控制器和运算控 制器
3.1重叠执行和先行控制 (2)问题二: 主存访问冲突 ■取指令时,处理机必须按指令计数器的指示访问 存储器; ■分析指令时,可能需要从存储器中获取操作数; 执行指令时,也可能要求将结果写回到存储器中。 处理机中三个独立的部件可能同时提出对存储器 读写的请求,从而发生存储器访问冲突
3.1 重叠执行和先行控制 (2)问题二: 主存访问冲突 ◼ 取指令时,处理机必须按指令计数器的指示访问 存储器; ◼ 分析指令时,可能需要从存储器中获取操作数; ◼ 执行指令时,也可能要求将结果写回到存储器中。 处理机中三个独立的部件可能同时提出对存储器 读写的请求,从而发生存储器访问冲突
3.1重叠执行和先行控制 解决方案: 1)分别设置两个独立的存储器:指令存储器和数 据存储器,或一级 Cache分为程序 Cache和数 据 Cache,同时工作解决同时读指令和读数据 引起的冲突。 ■程序空间和数据空间相互独立并具有独立的指 令总线和数据总线的系统结构就称为哈佛结构 ■缺点:结构复杂,需要大量的数据线,对汇编 程序员和机器程序员不透明 2)多体交叉存储器结构也可减少冲突的发生。 3)先行控制技术是最根本的办法
3.1 重叠执行和先行控制 解决方案: 1)分别设置两个独立的存储器:指令存储器和数 据存储器,或一级Cache分为程序Cache和数 据Cache ,同时工作解决同时读指令和读数据 引起的冲突。 ◼ 程序空间和数据空间相互独立并具有独立的指 令总线和数据总线的系统结构就称为哈佛结构 ◼ 缺点:结构复杂,需要大量的数据线,对汇编 程序员和机器程序员不透明 2)多体交叉存储器结构也可减少冲突的发生。 3)先行控制技术是最根本的办法
3.1重叠执行和先行控制 在复杂的计算机指令系统中,各种指令在分析 和执行阶段所需的时间可能有很大的差别。于 是,前面对三个阶段所需时间等的假设就可 能不成立,所得到的节约三分之二时间的结论 也被动摇了。下图形象地表示了这种情况所造 成的影响。 第k+2条指令 分析 执行 第k+1条指令 分析 执行 第k条指令 分析执行 这种情况可用先行控制技术来缓解
3.1 重叠执行和先行控制 ◼ 在复杂的计算机指令系统中,各种指令在分析 和执行阶段所需的时间可能有很大的差别。于 是,前面对三个阶段所需时间t相等的假设就可 能不成立,所得到的节约三分之二时间的结论 也被动摇了。下图形象地表示了这种情况所造 成的影响。 第k条指令 分析 执行 第k+2条指令 分析 执行 第k+1条指令 分析 执行 这种情况可用先行控制技术来缓解
3.1重叠执行和先行控制 2.采用先行控制技术的处理机 行指伶栈 指令分析器 地址 去主存储器 存\\线 储 凵」洗行读数 先操作根∏通 控制器 用 寄 运算控制器」存 器 揖行绾教栈 运算器
3.1 重叠执行和先行控制 2.采用先行控制技术的处理机 运算控制器 先 行 指 令 栈 后 行 写 数 栈 先 行 读 数 栈 存 储 控 制 器 去 主 存 储 器 地 址 线 指 令 分 析 器 先行操作栈 运 算 器 通 用 寄 存 器
3.1重叠执行和先行控制 缓冲栈 前置部件 后置部件 缓冲栈实际上是一个以先进先出(F|FO)方 式工作的移位寄存器组,上图表示了缓冲栈 所处的地位。前置部件的输出不直接送入后 置部样,而是通过缓冲栈暂荐后才输出
3.1 重叠执行和先行控制 缓冲栈实际上是一个以先进先出(FIFO)方 式工作的移位寄存器组,上图表示了缓冲栈 所处的地位。前置部件的输出不直接送入后 置部件,而是通过缓冲栈暂存后才输出。 前置部件 后置部件 缓冲栈 ① ② ③