C/C++教程

中央处理器CPU——指令流水线

本文主要是介绍中央处理器CPU——指令流水线,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

指令流水线概念:一条指令的执行过程划分为不同阶段,占用不同硬件资源,多条指令重叠操作实现并行处理
1.顺序执行:又称串行执行方式;传统的冯诺依曼机器
优点:控制简单,硬件代价小
缺点:速度慢,各功能部件利用率低
2.一次重叠执行方式:
优点:时间缩短三分之一,各功能部件利用效率提高
缺点:控制复杂,硬件开销增大
3.二次重叠执行方式:
优点:时间缩短三分之二,理想状态

指令执行过程图:用于分析指令执行过程和影响流水线因素
时空图:用于分析流水线的性能
吞吐率TP:单位时间内流水线完成的任务数量或输出结果的数量
加速比S:同一任务下,不使用流水线用时与使用流水线用时之比
效率E:流水线的设备利用率
锁存器(缓冲寄存器):作用是保存本流水段的执行结果,提供给下一流水段使用。

影响因素:
结构相关(资源冲突):多条指令同一时间争用同一资源
解决:1.后一相关指令暂停一周期;2.资源重复配置(数据存储器+指令存储器)
数据相关(数据冲突):在一个程序中,上一条指令执行完才能执行下一条指令(这两条指令即为数据相关)
解决:将数据相关的指令和后续指令暂停时钟周期到问题消失再执行;1.硬件阻塞stall和软件插入NOP;2.数据旁路技术;3.编译优化:通过编译器调整指令顺序
控制相关(控制冲突):转移指令和改变PC值的指令造成断流
解决:
1.尽早判别转移是否发生,尽早生成转移目标地址
2.预取转移成功和不成功两个控制流方向上的目标指令
3.加快和提前形成条件码
4.提高转移方向的猜准率

流水线的分类
1.根据流水线使用级别:部件功能级、处理机级和处理机间级流水线
部件功能级流水:将复杂的算术逻辑运算组成流水线工作方式
处理机级流水:把一条指令解释过程分成多个子过程,如取指、译码、执行、访存及写回5个子过程。
处理机间流水:是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的结果需存放在与下一个处理机所共享的存储器中
2,按流水线可以完成的功能分为:单功能流水线和多功能流水线
单功能流水线:指只能实现一种固定的专门功能的流水线;
多功能流水线:指通过各段间的不同连接方式可以同时或不同时地实现多种能的流水线。
3.按同一时间内各段之间的连接方式分为:动态流水线和静态流水线
静态流水线:指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
动态流水线:指在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算。提高流水线效率,但会使流水线控制变得很复杂。
4.按流水线的各个功能段之间是否有反馈信号分为:线性流水线和非线性流水线
线性流水线中:从输入到输出,每个功能段只允许经过一次,不存在反馈回路。
非线性流水线:存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线,适合进行线性递归的萨算。

多发技术:
1.超标量技术:在一个周期取出多条指令并行执行,是通过内置多条流水线来同时执行多个处理,其实质是以空间换取时间。
2.超流水技术:超流水线技术是通过细化流水,提高主频,将流水线设计的步(级)数越多,其完成一条指令的速度越快,其实质是用时间换取空间。
3.超指令字技术:由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字(可达几百位)






















这篇关于中央处理器CPU——指令流水线的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!