荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: trunks (深蓝的海), 信区: Hardware
标  题: Opteron深入揭秘第一回:K8与K7架构比较
发信站: 荔园晨风BBS站 (Thu May  1 16:40:46 2003), 站内信件

引言:

  作为CPU市场的中坚力量,在AMD的历史上,K5处理器是一段不堪回首的
历史。在数个月的延期后,这款处理器最终只落得个散热巨大,性能不济的
恶名。

  而另一方面K7的发布让AMD第一次在竞争中占据主动,Athlon处理器捍
卫了AMD的尊严。然而性能优秀的K7核心并不能挽回AMD在市场策略上的颓势,
市场手腕的缺乏不是仅凭优秀的硬件设计就可以挽回的。在AMD身处逆境的
时候,K7成了AMD苦苦支撑战局的唯一武器。这一切一直延续到AMD向大众宣
布K8处理器才得到改观,在2001年的微处理器论坛上,人们重新对AMD寄予了
无限的希望。

  在2001年十月的微处理器论坛上,AMD第一次宣布了他们的K8处理器,
下面是我们当时对这一事件的评价:


  “AMD显然已经不是以前初出茅庐的厂商了,现在他们正力图摆脱技术追
随者的形象,成为IT业界的领导者。而全新的Hammer架构正说明了AMD正掀
起微处理器领域的一场革命。

    同时,我们看到Intel仍占据着大部分市场,他们拥有长远的技术储备。
而AMD目前的成功正传递一个强烈的信号,他们绝对不会向Intel臣服,双方
正开始一场新的较量。AMD和Intel都曾犯过错误,Intel最近在RDRAM上就栽
了跟头,而AMD已经很久没有重大的失误了。

    K8背后的技术特性暗示它很可能取得成功。但是现在AMD在未来的12个
月内还有很多事要做。不要忘了在Athlon处理器推出以前,AMD一直没有太
大的作为。AMD的大铁锤还有很远的路要走,现在我们能做的只有祝福它一
路走好。”

  时间转瞬到了现在,AMD不仅没有如期推出他们的K8处理器,而且在K8
发布时也没有K7那样强烈的震撼。我们在采访AMD的CTO,Fred Weber时,
他对K8的发布评价道,K8的登陆并没有造成当时K7那样轰动,但比起K5/K6
来要好得多。

  AMD已经走过了漫漫长路,他们引入了全新的处理器架构,从未使用过
的新工艺,同时还不得不面对咄咄逼人的竞争对手和疲软无力的世界经济。
现在一切的努力终于看到了曙光,尽管K8在未来的几个月内还难以走入桌面
系统,但现在它已经在服务器市场上重拳出击,这就是我们今天要介绍的主
角:Opteron。

  我们会分两篇文章来介绍K8的核心架构以及Opteron的构造。第一篇用
来和K7架构进行比较,第二篇介绍全新的x86-64架构和Opteron结构分析。
在接下来的三篇评测中我们会就企业应用,服务器性能以及桌面性能对
Opteron进行全方位的考察。

  我们建议你在进入评测部分以前先阅读前面的两篇介绍文章,以便对K8
的架构有一个全面的认识。

    现在就让我们进入本篇文章的主题。

CPU设计:K8的技术细节

  在两年前我们打量K8时,发现它在架构上和K7截然不同,正应了不破不
立的古语。K7的微处理结构被实践证明相当成功,在面对Pentium 4的
etBurst架构时,K7仍然保持了很强的竞争力。

  正如你看到的,两者执行单元的物理数目是一致的,我们注意到K8核心
同时用于桌面系统和企业级应用,出于这点考虑,在核心中加入更多的执行
单元对K8并没有明显的意义。

  接下来,我们看到从K7开始就有的微小改进:尽管K8和K7采用了一样数
目的浮点调度程序窗口(scheduling window ),但是整数单元从K7的18个
扩充到了24个。

  为什么AMD会扩展整数调度数目的规模而执行单元却保持不变呢,为了
回答这个问题,我们来介绍一下AMD的分支预测(branch prediction)单元,
看看AMD怎样把cpu这块蛋糕“做大”。

把蛋糕做大:K8的分支预测单元

  处理器的大小首先要受制于分支预测的精确性。分支预测器决定了在流
水线中运行的指令的数量,它能避免CPU错误的预测分支引起的流水线管道延
迟。理论上,你的CPU在尺寸上应该恰到好处,在CPU做出错误预测前,它应
该正好容纳下流水线中的指令数目。

  在K8中,AMD将K7中的分支预测单元做了改进。global history counter
buffer(用于记录CPU在某段时间内对数据的访问,我们可以称之为全历史计
数缓冲器)比起Athlon来足足大了4倍。全历史计数器是一列2比特的计数器
(2比特计数器从0计数到3),它决定是否应该执行特殊的分支。当一个分支
指令到达后,分支预测单元读取指令中一部分地址(有时对地址进行一些逻
辑操作),并用来把它作为全历史计数器的索引,这直接决定了哪一个计数
器进行工作。对索引页的计数器进行检验,如果它的值大于或等于2,那么分
支被预测为执行,然后执行分支。如果分支被错误预测,那么计数器的值会
减一,但是如果下一次预测准确的话,计数器的值会再次加一(计数器设有
上下限,它不能小于0或大于3)

  现在这种方法带来的问题是,如果你有两条分支指令同时给出了同一个
索引值,相关的计数器会武断的增值或减值,这被称为干扰(interference)。
全历史计数器的容量越大(大于2比特),发生干扰的几率就越小。于是把干
扰的几率降低,你便能得到更为准确的分支预测。

  在K8的分支预测器中还有其他的一些改进,它们都是为让预测更准确而
服务的。回到我们原先微处理器分支预测单元与CPU大小的关系,因为K8装备
了更为精准的分支预测器,现在AMD可以把K8做的比K7更大。但是具体怎样实
现呢?

更加深入:K8的线管级数

  基于这一点,AMD有两个选择:第一是增加核心中执行单元的数目,如果
K8仅仅针对于企业级市场,那么在并行应用中更多的执行单元将大有裨益。
可是K8还将面向桌面级应用,这让AMD急于大幅提升CPU运行频率,于是我们看
到了第二种选择:加深管线深度。

  不管AMD作出了哪一种选择,有一点不容置疑:K8在分支测错前流水线中
可以容纳更多指令数,为了充分利用这个优势,AMD需要一个更大的缓存来储
存这些指令。这些用来储存指令的缓存被称为调度窗口(scheduling window
),如果在前面你注意到了整数调度程序数目的增加,此时你会明白AMD此举
的用意:随着运行指令的增多,调度程序的数目也要相应增加。我们推测K8中
浮点调度程序数目已经足够大了,因此AMD并没有作任何扩充。要注意到的是,
大部分分支指令出现在整数运算中,这也可以解释为什么K8虽然拥有更精确的
分支预测,却仍保留了K7浮点调度程序的数目。

  AMD在整数调度程序上的改进让K8的管线深度比Athlon多出2级。增加两级
线管深度的目的在于提升K8的核心频率。流水线的级数越多,每个时钟频率的
负荷就越小,因此你的CPU就可以运行在更高的频率。这就解释了为什么20级
线管的Xeon处理器现在运行频率达到了3GHz,而12级线管的Opteron只能以1.8
GHz起跳。

  仅仅用线管架构造成的频率差距来衡量Xeon和Opteron是不妥当的,这就
像仅用频率并无法真正衡量Pentium 4和Athlon XP处理器一样。Xeon的架构使
它在单个时钟频率效率相对低下,却可以实现更高的频率,因此我们只有用实
际的性能表现才能作出公正的评价。

  K8的缓存和K7是一样的,从下面的比较中你会发现它在延迟响应和带宽上
有轻微的提升。

L1 Cache 带宽比较:


L1 Cache 延迟比较:


L2 Cache 带宽比较:


L2 Cache 延迟比较:

  最后在微结构与K7核心的不同是AMD称之为"Large Workload TLBs" 的“大
工作量后备式转换缓冲”。

  在K8中,AMD增加了后备式转换缓冲,这是为了应对Opteron在服务器应用
中的超大内存需求。在桌面应用中,TLB数目的增加带来的影响并不明显,这在
K7 Palomino核心已经得到了证明,只是3D应用程序得到了一定程度的性能提升。

  应该说和K8在K7架构的基础上作出了很多的改进,特别是在提升频率和服
务器应用上采取了相应的举措。在下一篇中我们会大家介绍K8革命性的x86-64
架构,同时还将近距离接触Opteron处理器,请大家拭目以待。

http://www.pconline.com.cn/pchardware/tpylab/cpu/10304/158481.html
--
提供刻录服务,每张4元,全部用BENQ。
提供打印,黑白每张0.5元,彩色面议。
上传到192.168.39.98用户upload密码408
工作时间为周一至周五中午和晚上,周六日休息。

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.39.98]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店