流水线工作原理
串行处理:
同一时刻只能进行一个操作 。
并行处理:
同时性:两个以上事件在同一时刻发生。
并发性:两个以上事件在同一时间间隔内发生。
将一条指令的实现过程分成时间上大致相等的几个阶段,然后使几条指令的不同阶段在时间上重叠起来。
流水CPU利用时间并行性
RISC和大部分CISC都采用了流水线技术,所以不能说流水CPU一定是RISC机器。
执行方式
1.顺序执行(t=3nt)
2.一次重叠执行(t=(1+2n)t)
3.二次重叠执行方式(t=(2+n)t)
一些定义
1.处理机的度:
即流水线的数量。N度处理机可以并行执行N条流水线(每条流水线k段)
例如常规标量单流水线处理机,处理机的度为1.
2.加速比:
S=T0/Tk
n为任务数 k为流水段段数
To表示不使用流水线的总时间,不用流水线顺序执行总时间T0=kn
Tk表示使用流水线的总时间,一条k段流水线完成n个任务所需时间为Tk=(k+n-1)
3.流水线中的冒险和处理:
1.结构冒险(资源冲突)
1)前一指令访存时,后续指令暂停一个周期
2)单独设置数据存储器和指令存储器
2.数据冒险(数据冲突)
1)数据相关指令及后续指令暂停几个时钟周期(硬件阻塞(stall)和软件插入“Nop”指令)
2)设置相关专用通路(增加新电路)又称为数据旁路技术
3.控制冒险(控制冲突)
1)对转移指令进行分支预测(简单(静态)预测和动态预测)
2)预取转移成功和不成功两个控制流方向目标指令
3)加快和提前形成条件码
4)提高转移方向猜准率
4.吞吐率:
吞吐率指在单位时间内流水线所完成的任务数量或输出结果的数量。
流水线吞吐率(Tp)=n/Tk
5.超标量流水线:
定义:超标量流水线是指在一个时钟周期内一条流水线可以执行一条以上的指令,通过内置多条流水线来同时执行多个处理器。其实质是以空间换取时间。(并非指运算操作并行)
6.动态流水线和静态流水线:
静态流水线:同一时间内,流水线的各段只能按同一种功能的连接方式工作。(上下段连接方式固定)
动态流水线:同一时间内,某些段正在实现某种操作(如定乘)而另外一些段却在实现另一种运算(如浮点加法)。并非指运算操作/指令步骤/程序步骤并行。