cpu流水线感悟,解决cpu流水线冲突的方法
CPU是流水线级数少好,还是多好??
采用流水线技术后,并没有加速单条指令的执行,每条指令的操作步骤一个也不能少,只是多条指令的不同操作步骤同时执行,因而从总体上看加快了指令流速度,缩短了程序执行时间。为了进一步满足普通流水线设计所不能适应的更高时钟频率的要求,高档位处理器中的流水线的深度(级数)在逐代增多。
当预测失败后,CPU就要花时间清空整条流水线的指令。并重新放入,流水线越长,所需的时间越多。这就使得CPU的执行效率低下,经常在做无用功,当时P4时代(32级流水线)的P4 0甚至没有8G的AMD CPU执行效率高。P4也被称为“高频低能”,“傻快”。
影响CPU流水线性能的因素有:多个任务在同一时间周期内争用同一个流水段 例如,假如在指令流水线中,如果数据和指令是放在同一个储存器中,并且访问接口也只有一个,那么,两条指令就会争用储存器;在一些算数流水线中,有些运算会同时访问一个运算部件。
为什么CPU流水线设计的级越长,完成一条指令的速度就越快
1、就拿P4E来说他的主频块是建立在使用了更长的管线基础 之上的,而主频只与每级管线的执行速度有关与执行效率无关,加长管线的好处在与每级管线的执行速度较快,但是管线越长(级数越多)执 行效率越低下,AMD的PR值可能会搞得大家一头雾水,但是却客观划分了与其对手想对应的处理器的能力。
2、这时就必须等第一条指令的判断结果出来才能执行第二条指令。条件转移所造成的流水线停顿甚至比相关还要严重的多。越是长的流水线,相关和转移两大问题也越严重,所以,流水线并不是越长越好,超标量也不是越多越好,找到一个速度与效率的平衡点才是最重要的。
3、将流水线设计的步(级)越长,其完成一条指令的速度越快,因此才能适应工作主频更高的CPU。但是流水线过长也带来了一定副作用,很可能会出现主频较高的CPU实际运算速度较低的现象,Intel的奔腾4就出现了这种情况,虽然它的主频可以高达4G以上,但其运算性能却远远比不上AMD 2G的速龙甚至奔腾III。
发表评论
暂时没有评论,来抢沙发吧~