计算流水线

         下面的图就可以知道流水线的思维了,I1 ,I2 ,I3 为需要经过ABC 组合逻辑的信号,可以看到当I1 到了 B 时,I2 已经到了A 了,

同理 I3也一样,流水线的思维提高了工作效率.

计算机操作系统(四) --- 流水线的通用原理

             这里说一下吞吐量 , 延迟 , 时间周期的计算,下图为例,可以看到, 假如我们的时间周期为 70ps. 那么下面一个信号走完就需要 6*70 = 420ps , 那么 420ps 就是延迟, 吞吐量就是单位时间内可以处理的信号量,可以知道用一除以70乘以一个时间单位得到 14.29 GIPS .即是时间周期的倒数.

计算机操作系统(四) --- 流水线的通用原理

 

流水线的局限性

  • 不一致的划分

计算机操作系统(四) --- 流水线的通用原理

           我们可以看到以B 为周期(以为B里的延迟最大,思考一下要是选AC会是怎么样的),那么AC中会有空闲的地方.

 

  • 流水线过深,收益反而下降

计算机操作系统(四) --- 流水线的通用原理

 

流水线的改进

电路重定时( circuit retiming )

       将计算PC的部分移到时序的开头.具体的查看下面的链接

 

分支预测

       当出现分支的时候, 猜测分支的方向并根据猜测的方向进行预测.

 

流水线冒险

       计算机操作系统(四) --- 流水线的通用原理

       一个准备写入的时候,一个提前先拿了出来就会造成数据错误,解决这个问题可以通过以下的方式

  • 用暂停来比避免数据冒险(stalling)

计算机操作系统(四) --- 流水线的通用原理

          但是这样会暂停三个周期,严重影响了性能.

 

  • 用转发来避免数据冒险

           还是上图的那种情况,一个写入,一个读取,读取的时候发现这个值需要被其他操作写入,那么读取的操作直接就拿写入的值就够了,不再等其他操作写入后,我再读取了(仔细想想,类型于并发中的可视性啊!!)

计算机操作系统(四) --- 流水线的通用原理

 

  • 加载/使用数据冒险

计算机操作系统(四) --- 流水线的通用原理

         下面为暂停+转发的方式来解决加载/使用冒险

计算机操作系统(四) --- 流水线的通用原理

 

 

参考资料:

相关文章:

  • 2021-11-17
  • 2021-12-01
  • 2021-10-18
  • 2021-07-27
  • 2021-12-05
  • 2021-08-29
  • 2021-08-02
  • 2021-08-11
猜你喜欢
  • 2021-12-17
  • 2022-01-08
  • 2021-12-10
  • 2021-04-14
  • 2021-05-30
  • 2022-12-23
  • 2021-09-14
相关资源
相似解决方案