|
知识路径: > 计算机系统综合知识 > 计算机组成与体系结构 > 各种计算机体系结构的特点与应用(SMP、MPP等) > 各种体系结构 > 流水线技术 >
|
相关知识点:3个
|
|
|
|
假定有某种类型的任务,共可分成n个子任务,每个子任务需要时间t,则完成该任务所需的时间即为nt。若以传统的方式,则完成k个任务所需的时间是knt;而使用流水线技术执行,则花费的时间是(n+k-1)t。也就是说,除了第一个任务需要完整的时间外,其他都通过并行,节省了大量的时间,只需一个子任务的单位时间就够了。
|
|
|
如果每个子任务所需的时间不同,则其速度取决于其执行顺序中最慢的那个(也就是流水线周期值等于最慢的那个指令周期),要根据实际情况进行调整。
|
|
|
例如,若指令流水线把一条指令分为取指、分析和执行3部分,且3部分的时间分别是取指2ns,分析2ns,执行1ns。那么,最长的是2ns。要注意的是,在设计流水线的周期时,是以执行时间最长的那一个部分为标准的。因此100条指令全部执行完毕需要的时间就是:(2+2+1)+(100-1)×2=203 ns。
|
|
|
另外,还应该掌握几个关键的术语:流水线的吞吐率、加速比。流水线的吞吐率(ThroughPut rate, TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的力口速比(speedup ratio)。
|
|
|
例如,在上述例子中,203ns的时间内完成了100条指令,则从指令的角度来看,该流水线的吞吐率为(100×109)/203=4.93×108/s(1s=109ns),加速比为500/203=2.46(如果不采用流水线,则执行100条指令需要500ns)。
|
|
|