|
|
Banias的流水线
对于我们对Banias的体系结构的概括来说,你首先会注意到我们所能够提供给你的详细信息最多也只能是粗略的,因为Intel对提供给零售商(Banias)的信息限制的很严。
Banias芯片它本身有一个比Pentium III长的流水线,但也比Pentium 4短。理由很简单,Pentium III的体系结构在0.13微米的制造工艺下最高只能达到1.2GHz的工作频率,但是为了Banias对Intel实现高性能移动CPU的渴望,它们需要一个更高的时钟频率。与此同时,但Pentium 4的流水线对于移动CPU来说太长了,最终结论会是,在Pentium III的10级流水线和Pentium 4的20级流水线之间选择一个更适合的数字。
Intel没有给出确切的级数,也不会说出每个独立的级究竟负责什么,但是随着时间的推移我们或许会偶然发现这些信息。从这片文章里只能知道它的流水线长于Pentium III但比Pentium 4短。一个超长流水线的缺点之一就是更容易导致一个错误预测的分支。
一般而言,绝大多数分支可以被正确预测,但是一旦有一个分支被错误的选择或者没有选择,性能就会受到很大影响。就像台式机的Pentium 4那样,一个错误预判的分支意味着整个流水线的堵塞和从新开始的执行,这就意味着我们浪费了先前很多的时钟周期。对于移动CPU,过长的流水线结果也是会那样,但是此时不仅浪费了时钟周期,我们还浪费了电池。现在你能够理解为什么一个较长的流水线在移动CPU上是不受欢迎的了吧。
由于使用了一个比Pentium III长的流水线,设计组立即明确要确使Banias不会从错误预判的分支里遭受到过多的损失。一种减轻错判分支损失的方法就是使用轨迹缓存,就像Pentium 4里那样,一个轨迹缓存存放着解码后顺序执行的Micro-ops,这样,即使错判发生,CPU可以在从出错的流水线级数处开始,而不是彻底从新开始。但轨迹缓存的问题在于它拥有相当多的闸并且很耗电,这使它被排除在Banias设计之外。
在无法使用轨迹缓存的情况下,以色列设计组不得不为Banias核心开发一个更加精确的分支预测器。虽然这不在这篇文章讨论的范围之内,Banias已经配备了一个比Pentium III要好得多的分支预测器,最终导致了错误预判分支下降了20%。
我们已经知道Banias和Pentium III有很大的不同,但是Intel的以色列工程师并不认为Banias的意义就在于和Pentium III的不同。就像Athlon 64和Athlon XP一样,Banias和Pentium III也分享共同的执行单元,这表示Banias的执行端口要少于Pentium 4。由于一个相对狭窄的执行单元设计,Intel则把省电技术加入了Banias核心,就像IPC一样,省电技术并不会影响机器的整体性能。
我们则把有限的执行资源称为Hyper-Threading。Hyper-Threading必须在有足够长的执行单元和流水线下才能工作。而Banias的流水线相对于Pentium 4而言很短,所以Hyper-Threading并不那么有用。
|
|