计算机组成原理17 | 您所在的位置:网站首页 › 指令的执行过程由4个步骤组成 › 计算机组成原理17 |
CPU指令流水线
1.指令流水原理 2.影响流水线性能因素 2.1结构相关 资源相关 2.2数据相关 2.3控制相关 3.流水线性能 3.1吞吐率 3.2加速比 3.3效率 4.流水线多发技术 4.1超标量技术 4.2超流水线技术 4.3超长指令字技术 5.流水线结构 5.1指令流水线结构 5.2运算流水线结构 指令执行过程分为多个阶段,每个阶段需要的资源不一样,因此可以采用流水线技术,同时执行多条指令的不同阶段。 指令周期概念:https://blog.csdn.net/u014106644/article/details/95199989 1.指令流水原理可以将指令周期简单分为取指令和执行指令 取指令由取指部件完成,执行指令由执行部件完成,如果采用串行化执行,则在执行指令1时,取指部件是空闲的。 指令的二级流水 在执行指令1阶段,同时将指令2取出放入指令缓存部件,等执行部件执行指令1结束,则直接执行指令2,理想情况,流水线的效率将加倍。 仍存在的问题: 指令执行时间一般大于取值时间,因此取值阶段要等待一段时间,存放在缓冲区的指令不能立即交给执行部件; 当遇到条件转移指令时,下一条指令是不可知的;采用猜测法,遇到条件转移指令时,也将下一条指令取出送入指令缓冲区,如果转移没有发生则继续执行,如果转移发生,则重新取指令。 将指令处理过程进一步细分: 取指FI 从存储器取出一条指令放入指令部件缓冲区 指令译码DI 确定操作性质和操作数地址形成方式 计算操作数地址CO 计算操作有效地址 取操作数FO 从存储器中取出操作数 执行指令EI 执行指令,将结果存入目的位置 写操作书WO 将结果存入寄存器 将指令周期分为6个阶段,可以实现指令的6级流水 不同指令争用同一部件产生资源冲突 FO取指和FI取操作数会发生访存冲突 解决方式: 流水线完成前一条指令对数据的存储器访问时,暂停取后一条指令 设置独立存储器存放操作数和指令 采用指令预取技术,将指令预取到指令队列中,这样取操作数操作便可以独占存储器访问 2.2数据相关不同指令重叠操作,可能改变对操作数的读写访问顺序 数据相关冲突有: 写后读相关:先写入寄存器,再读出寄存器 读后写相关:先读寄存器,再写寄存器 写后写相关:指令1先写寄存器,指令2再写寄存器 解决方式: 后推法 遇到数据相关时,停顿后继指令运行,直到前面指令结果已经生成 定向技术 旁路技术 将某条指令执行结果不送回寄存器而是直接送到其他指令所需的地方 2.3控制相关由转移指令引起 若是条件转移指令,则转移目标地址可能发生跳转,影响流水线效率。 解决方式: 尽早判别转移是否发生,尽早生成转移目标地址 预取转移成功和不成功两个方向的目标指令 加快和提前形成条件码 3.流水线性能 3.1吞吐率单位时间内流水线完成指令或输出结果数量 最大吞吐率:流水线在连续流动达到稳定状态后所得吞吐率 m段流水线各段时间均为t 实际吞吐率:流水线完成n条指令实际吞吐率 m段流水线速度与等功能非流水线速度之比 流水线中各功能段利用率 流水线效率为流水线各段处于工作时间时空区和流水线中各段总时空区之比,如图 假定指令周期分为四个阶段:取指FI 译码ID 执行EX 回写WR 4.1超标量技术在每个时钟周期内同时并发多条独立指令 处理机中配置多个功能部件和指令译码电路,多个寄存器端口和总线;编译程序决定哪几条相邻指令可并行执行 例如 三条指令是相互独立的,可以并行执行 MOV BL,8 ADD AX,1756H ADD CL,4EH 4.2超流水线技术在一个时钟周期内再分段,一个功能部件使用多次 由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字 将指令执行阶段分为取指 指令译码 地址形成 取操作数 执行指令 回写结果几个阶段,对应相应结构如下 将浮点加法运算分成对阶 尾数加 结果规格化 3个阶段 参考资料:计算机组成原理--哈工大--刘宏伟 |
CopyRight 2018-2019 实验室设备网 版权所有 |