计算机组成与体系结构—流水线计算
1 流水线概念
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可以同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
在执行一条指令的过程中,最少要经历 → 取指 → 分析 → 执行 → 三个步骤。假设有三个指令1 、2、 3,在串行情况下,执行指令1的时候,会首先对指令1按照以上三个步骤进行处理,处理完毕后在对指令2进行处理,以此类推。
而流水线的应用,就是像我们在工厂中一样,当对指令1进行分析工作时,同时对指令2进行取指,继续执行,当指令1到达执行阶段时,指令2进入分析阶段1同时对于指令3进行取指处理,这样就大大增加了对于时间的利用率。
2 流水线的计算
2.1 流水线的执行时长
流水线的计算公式为:
完成一条指令所需的时间+(指令条数-1)*流水线周期,在这个公式中,又存在理论公式和实践公式。
-
理论公式:(t1+t2+…+tk) + (n-1)*Δt,其中 n 为指令条数,Δt 为流水线周期
-
实践公式:(k+n-1)*Δt,其中 k 为一条指令所包含部分的数量,n 为指令的条数,Δt 为流水线周期
-
关于流水线的周期,流水线周期(Δt)为指令执行阶段中所需时间最长的一段。
2.1.1 例题
一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间t取指=3△t、分析时间t分析=2△t、执行时间t执行=4△t的情况下,若按串行方式执行,则10条指令全部执行完需要( )△t;若按流水线的方式执行,流水线周期为( )△t,则10条指令全部执行完需要( )△t。
2.1.2 题解
1.串行方式:(3+2+4)Δt × 10 = 90△t
2.流水线方式:
流水线周期(Δt ):最长的一段,即为执行步骤的时间4△t;
①理论公式:(t1+t2+…+tk)+(n-1)*△t
根据理论公式与流水线周期,则可计算得到理论公式下的执行时间为:
②实践公式:(k+n-1)*△t
n为10;此题的指令包含取指、分析和执行三个阶段,则k为3;流水线周期为最长的一段,即为4△t;
根据实践公式与流水线周期,则可计算得到实践公式下的执行时间为: