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)方 式工作的移位寄存器组,上图表示了缓冲栈 所处的地位。前置部件的输出不直接送入后 置部件,而是通过缓冲栈暂存后才输出。 前置部件 后置部件 缓冲栈 ① ② ③