流水线技术

CPU的内部结构主要有三部分:指令寄存器、指令译码器、指令执行单元(包括ALU和通用寄存器)

CPU在执行一条指令的时候,主要有三个步骤:取指(将指令从内存或者指令Cahe中取出,放到指令寄存器),译码(指令译码器对指令寄存器中的指令进行译码操作从而辨识出所具体什么指令,从而产生各种时序信号),执行(指令执行单元根据译码的结果进行计算和存储结果)

流水线技术-背景

根据电路的结构我们发现:取指阶段占用的CPU硬件是指令通路和指令寄存器;译码阶段占用的是CPU硬件是指令译码器;执行阶段占用的是CPU硬件的执行单元和数据通路。三者占用的CPU硬件完全不同,这就形成列三级的流水线,如下:在对第一条指令译码的时候,可以同时对第二条指令进行取指操作;在对第一条指令进行执行的时候,可以同时对第二条进行译码,对第三条进行取指。

流水线技术-概念

流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,他们可同时为多条指令的不同部分进行工作,已提高各部件的利用率和指令的平均执行速度。

流水线技术-本质

流水线技术的本质是利用指令运行时间不同阶段使用不同的硬件相互不同,并发运行多条指令,从而提高了时间效率。

 

流水线周期

流水线周期为执行时间最长的那一段,执行的时间段为取值,分析,执行

流水线计算公式为

1条指令执行时间+(指令条数-1)*流水线周期

①理论公式:(t1+t2+t3+..tk)+(n-1)* △t

②实践公式: (k+n-1)* △t

栗子1:若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别是取指2ns,分析2ns,执行1ns。那么流水线周期是多少? 100条指令执行完毕需要的时间是多少?

【理论公式求职】 

(2ns+2ns+1ns)+(100-1)*2ns =203ns

【实践公式】

(3 +100 -1)*2ns =204ns

一般情况考理论求职公式(80%);考实践公式(20%)

 

流水线-吞吐率

流水线的吞吐率(Though Put rate ,TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量;

栗子1的流水线吞吐率=100/203

栗子1拓展:1条指令/1条指令执行时间,栗子1 的流水线吞吐率为 1/2; 即为最长流水段操作时间的倒数!
吞吐率公式拓展:n为指令条数,k1,k2,k..为指令各段执行时间,△t为最大执行时间,吞吐率 = n/((k1+k2+k..+△t)+(n-1)*△t)  = n/(k1+k2+k..+n*△t); 当n无限大时,吞吐率就越接近最长流水段操作时间的倒数 !!!

流水线-加速比

完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。

S = 不使用流水线执行时间/使用流水线执行时间

栗子1的S=500/203
拓展:n为指令条数,k1,k2,k..为指令各段执行时间,△t为最大执行时间

加速比 = (k1+k2+k..+△t)*n/(k1+k2+k..+n*△t),当n无穷大时,忽略k1+k2+k.. ;  结果可以认为是 (k1+k2+k..+△t)/△t  

栗子1的加速比S = 5/2 

流水线-效率

流水线的效率是指流水线的设备利用率,在时空图上,流水线的效率定义为n个任务占用的时空区与k个流水段总的时空区之比

E= n个任务占用的时空区/k个流水段的总时区

栗子2:

E=(△t+△t+△t+3△t)*4/15△t*4

在指令执行的几个步骤中,时间差越小,流水线效率越高

总结:流水线技术知识点,软考必考知识点

 

转自开源中国博客 https://my.oschina.net/u/3374461/blog/1930305

  • 12
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值