请问老鸟们,流水线反压是什么意思啊,能不能通俗语言解释一下,为什么深度流水会出现流水线反压的负面效果?
应该是说后级没准备好,不能进行下去,反向影响前级,使前级也不能进行下去。
个人理解:流水线的反压是指当你的pipe的i_rdy是o_rdy的组合电路输出时,o_rdy就会向前逐级传播,比如说你有五级流水,最后一些写回的rdy信号会以组合逻辑直连的方式连接到第一级流水线的握手信号中,这样就存在了一个很长的数据路径,这个路径就很有可能成为时序的瓶颈。欢迎讨论
确实没找到资料,可能是作者原先的公司内习惯用的说法。我的理解是和Stall意思相同(或许是更加抽象的层面的说法),比如下一级流水单元希望输入数据能保持足够长的时间而不能被来自上一级的新数据冲刷掉,就需要通过握手来传递一个“可以接受新数据”的Ready信号,造成流水线Stall。
我就是看书才产生的疑问,能不能通俗解释到底什么是反压信号?是在说,第四级等第五级,第三级等第四级。。。一直反向传播到第一级从而导致主频无法升高吗?解决方法就是让前面的流水线多干点活,一边干活一边等?另外,为什么一定要握手啊,不握手就不可靠吗?
我在这里引用一下大佬书上的原文吧:流水线越深,由于每一级流水线需要进行握手,流水线最后一级的反压信号可能会一直串扰到最前一级造成严重的时序问题,需要使用一些比较高级的技巧来解决此类反压时序问题。这是流水线加深的负面意义。