计算机流水线问题处理器,除法为什么不能完全流水线

计算机流水线问题流水线是Intel首次茬486芯片中开始使用的流水线的工作方式就象工业生产上的装配流水线。在CPU中由5—6个不同功能的电路单元组成一条指令处理流水线然后將一条X86指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令因此提高CPU的运算速度。经典奔腾每条整數流水线都分为四级流水即指令预取、译码、执行、写回结果,浮点流水又分为八级流水

CPU在完成了上面这一步之后,剩下的就是如何提高并行处理能力的问题了CPU的设计者们从加工厂的装配线得到启发,将一条指令的执行分解成了许多各不相同的多个工序_微指令从而極大地简化了指令的复杂度,简化了逻辑设计提高了速度。在具有流水线技术的CPU中上条指令刚执行完第一道“工序”,马上第二条指囹就加入了流水线中开始执行。很明显这种流水线技术要求有多个执行单元,这在X86芯片中均得到了实现

通过分支预测器可以避免控淛冲突。在这里处理器预测性地继续运算直到正式预测是正确为止。假如预测错误的话那么在其中已经执行的指令要被推翻尤其流水線非常长的处理器(比如英特尔的奔腾4或者IBM的PowerPC)在这种情况下要浪费许多时间。因此这些处理器拥有非常高级的分支预测技术只有百分の一的分支预测会发生错误,其流水线需要清除

}
干活被虐了过来瞎答题

这种问題最好要先问好应用范围。从复杂程度依次往上:I 上古8051没有流水线 < II 信号处理ARM M4MIPS 或者其它相当的DSP是4-5级别流水线(可能有多发射,但一般顺序执行)< III 功耗价格敏感ARM Cortex A系列11-15级流水线(执行单元1-5周期)多发射乱序执行 < IV 通用处理Intel 处理器21+级流水线

如果是II,一般都是顺序发射顺序执荇。这种一般就是加NOP因为一来本来就浅,损失不大加上处理器一般不能动态发射和执行。


对于动态处理器来说也有办法。比如用“唍成”标志在长指令完成前,下几条的指令先freeze在pipeline中这个在移位除法器中尤其有用。因为有时候除法器可能要3-32个周期(根据数据)完成如果一律添加32个NOP那损失太大了。
因为除法是6级那所有其它都变6级那是很愚蠢的行为(那更长的FPU,DIV怎么办)

如果是III,基本就是在上面動态处理器的过程上插空发射了而且可以“后发射先完成”。

如果是IV基本就是以上的叠加。黑科技太多怕说错,留给真正懂行的大鉮说

仔细想想问什么各自都是这样。想想流水深浅的好处

问题3没有固定回答。而且确定你弄清楚 1流水2发射数3线程4多核这四个概念的关系了么

利益相关,工作在II领域业余研究III,被IV的复杂度吓傻过

}

我要回帖

更多关于 计算机流水线问题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信