一、出现流水线原因
<img src="http://img.blog.csdn.net/20140428190734968?
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHZzaGlodWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center” alt=””>
因为顺序方式和重叠方式存在着一定的缺陷,因此为了解决这些问题出现了流水方式
二、流水线概述
流水线是仅仅在程序运行时多条指令重叠进行操作的一种准并行处理实现技术。它是把一个反复的过程分解为若干子过程,让多个处理过程在时间上相互错开,轮流重叠的使用同一套硬件设备的各个部件,以赢得处理速度,所以流水线使用的是时间并行。也就是说准并行并非真正的并行。
此外,流水线提高的是部件的利用率和指令的平均运行速度。单个指令运行的速度没有提高。
三、流水线分类
四、流水线的弊端
由于流水线解释多条指令。这些指令可能有对同一主存单元或同一寄存器的“先写后读”问题的要求,出现了相关性。
相关冲突还能够分为:资源相关(相应的是结构冒险)、数据相关(相应数据冒险)、控制相关(相应控制冒险)
五、衡量流水线的相关
1、吞吐率:单位时间内流水线所完毕的任务数量或输出的结果数量。
<img src="http://img.blog.csdn.net/20140428191838093?
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHZzaGlodWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center” alt=””>
2、加速比:完毕相同一批任务,不使用流水线所用的时间与使用流水线所用的时间之比
3、效率:流水线的设备利用率。在时空图上,流水线的效率定义为n任务占用的空间区
与k个流水段总的时空区之比。
<img src="http://img.blog.csdn.net/20140428191951109?
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHZzaGlodWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center” alt=””>
<img src="http://img.blog.csdn.net/20140428192245453?
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHZzaGlodWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center” alt=””> 或
六、拓展
RISC中採用的流水线技术有三种:
<img src="http://img.blog.csdn.net/20140428191422921?
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHZzaGlodWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center” alt=””>