首 页   新闻 | 行情 | 评测 | 调研 | 数码导购 | DIY | 专题 | 报价 | 论坛 | 二手 | 下载 | 博客 | 商城 | 拍卖 | 网址 | 分类
消费数码 手机 数码相机 MP3 MP4 数字家庭 硬 件 CPU 内存/硬盘 主板 显卡 音箱 机箱/散热器 光磁 显示器 游戏库 电影 音乐 小游戏
电 脑 笔记本 电脑 服务器 办公外设 打印机/耗材 键盘/鼠标/摄像头 投影机 企 业 中小企业 网络设备 方案 安全 克丽发现
产 品 价格查询 产品大全 排行榜 术语 产品论坛 图搜 厂商 经销商 商家库 商情快报 商城 活 动 PC采购攻略 模拟攒机 DELL直销店
中关村在线 - 大中华区 最具商业价值的IT专业网站 - The most valuable and professinal IT business website in Great China
ZOL首页 > 评测中心 > 技术评测       查看全部技术评测文章

拨云见日——深入彻底了解AMD64架构

类型:编译 作者:【中关村在线 新人类】 日期:2003-09-23 14:52:45




内容导航

Opteron 系列

    与先前预测的一样,AMD 处理器在服务器市场掀起了轩然大波。4月22日,官方正式宣布Opteron 处理器。其中有件很有趣的事情,那就是AMD 当时并没有明确指出处理器的时钟频率或者PR 比率。而是把整个Opteron 家族分为3个系列 - 1xx,2xx,和8xx(或者分别为100,200和800)。其中它们的主要区别是1xx 是单路的系统,Opteron 2xx 是用于两路的,而Opteron 8xx 则是8路的。在每个系列的处理器中最显著的区别就是支持多处理器的数量。最初的时候,仅宣布了2xx 系列处理器,而其它的(14x和84x)则到了六月底才被正式宣布。另外2xx 系列还包括了Opteron 240(1400MHz),242(1600MHz)和244(1800MHz) 。在8月4 日,Opteron 246(2GHz)也正式发布了 。相似的146和846也正式抵达了,每个处理器都使用了128-bit(+16 bit ÅÑÑ)内存接口,3倍Hyper Transport(超级传输) 接口和1024Kb L2 cache(二级缓存) 。这是我们预计的最大缓存,到目前为止,我知道也不能再高了,因为这是由于核心造成的限制。

    目前这些处理器支持具有ECC或者没有ECC(athlon 64)的 Registered DDR266 和DDR33 内存。似乎在目前的情况来说,若JEDEC 没有早日通过ECC DDR400,Opteron 都会显得步履艰难。目前之所以考虑到这个问题是,支持DDR400 内存的Athlon64 ,还没有被正式发布。有趣的是,Opteron 还支持单通道内存模式;这使得我们觉得非常奇怪,因为这样它将不支持128-bit 内存总线。当然,单通道内存模式在把带宽减半的同时,它带来的好处是改变了延迟 。这样也让我们有机会可以测试就单双通道内存模式的优劣。我们还预计该处理器不支持非缓冲的内存,我们之前也提到过,Opteron 是为服务器和工作站特别而设计的,因此Registered ECC 是100% 必须支持的。

    此外,有趣的是,你还可以仅为一个处理器安装内存 。这是赞成使用它的第二个理由,我怀疑没有任何人会这样做吧,但这样的功能确实令人感到兴奋。

    双路的平台也支持使用单个处理器,虽然这没有任何奇怪,但值得测试一番。

    Cache(缓存)子系统,分析其改变

    缓存子系统是决定处理器性能的重要组件之一,缓存被称为提高RAM(内存)和处理器之间性能的有力 因子,因此它工作在所有的瓶颈前面。大家都知道,K7 的缓存使得它有非常优越的表现,而K8与Athlon XP 相比已经有了非常重要的改变。

     总的来说,缓存的性能要根据延迟(latency),吞吐能力(Throughput)和其它的一些因素,如关联种类(associativity type,这将在后面谈及)有关系。其中首先的两个因素对性能的影响最大。因此,延迟的随意和顺序读取对结果的影响是不同的(你将在下面看到)。因此,我们将首先描述一下Athlon XP 的缓存设计,然后把它与K8进行比较(作者认为它使用这个缩写是非常明智的,因为Opteron 和Athlon 64 都使用了相同的缓存组织)。

     下面表格表明的是Athlon XP 和 K8 L1 和L2 缓存的延迟:

 

CPU L1 延迟时钟 L2 延迟, 最好 L2 延迟, 最差
Athlon XP 3 11 20
K8 3 11 16

    我们看见L2有两个变量,那么"最好"和"最差"意味着什么呢?为了解释这个问题,先给大家回忆一下AMD Cache(高速缓冲存储器) 的组成特征。它的基本理念是不复制,只是把L1附加到L2 上。这样,AMD 的总缓存容量是L1 + L2 。

     顺便说一下,从严格上来说L1 + L2 的数据缓存是64KB, 因为指令缓存并没有考虑在内/。

    然后,缓存的组织上我觉得有些规格大家是必须知道的。首先Athlon XP 在L1和L2 之间有64-bit 总线,记住哦,这个你在后面将要用到的。现在让我们看看Athlon XP 缓存的一些规格。

     规格#1:如被请求或者处理数据的需要,所有数据都被储存在L1 cache ,这会使得L1 可能满载(其实通常都满栽)。在这种情况下,L1 必须丢弃旧的或者没有用的数据到L2,然后接获新的数据(由于缓存的容量没有加倍,我们不能够简单地删除数据)。为了更加快速地处理数据,处理器有个特别的Victim(牺牲)缓存用于储存在丢弃到L2之前的数据,这释放了L1 的空间用于储存新的数据。Victim缓存是必须的,原因因为L1和L2具有不同的延迟,牺牲缓存减轻了L1缓存等待更慢L2 花费的时间。

     规格#2:例如,如果我们请求的数据在L1里并没有,而这时候L2却有这个数据。这是相当常见的情况,不是吗?在这种情况下,延迟将如下:

  • 在第一个阶段,CPU 在L1搜索 需要的数据,花费3个时钟。

  • 在第二个阶段,它释放了L1的一些空间,并从L2接受数据。64-byte 的缓存字串会被发送到牺牲缓存,以释放L1 的空间。从L2 接受第一个数据开始,需要花费额外的8个时钟(在完成了这个步骤之后,CPU才继续其它的运作)。

      这里想告诉大家更多的细节,开始的时候它需要1个时钟发送一个临界字节,剩下的7个时钟用于访问L2 。例如,检测是否L2 实际上包含需要的数据(L2 tag(标记):2个时钟);如果知道了包含了需要的数据,再检测它的确切方位(L2 data:2个时钟);Route(发送)/mux(混乱)/ecc(纠错):2个时钟;写DC & Forward(转寄):1个时钟)。

     这样8+3 个时钟,就产生了表格中列出的11个时钟。

  • 然而,上面提到的都是在理想情况下的结果,比如想象Victim 缓存是空的(在Athlon XP 里面,它有空间储存8个缓存字串),这是理想"最好"的情况。如果Victim 缓存是满的,情况会变得非常糟糕。在这种情况下,为了肃清L1 字串,之前必须清空Victim 缓存,而这需要花费8个时钟(通过64bit 总线移动64-byte 字串)。接着L2 cache 转向需要2个时钟。在之后的8个时钟里,一个字串被从L2 复制到L1 。同步进行的是1个字串被从L1 驱赶到Victim 缓存。最后,L2 转向需要2个时钟。因此,从L2向L1的单向转换需要 8+2+8+2 =20个时钟 。在延迟里会出现相同的延迟,当数据被从Victim 写下之前,新的读指令不能够在L1-L2 执行。

     在cache 和Victim 缓存的实际生存中都包含着数据。因此,满载,Athlon XP 的L2 延迟也低到"最差"的境地。如果你想获得最大的性能,则应该关注/了解这些规格。这可能会带来一个问题,"为什么AMD 把所有独占的缓存部分给混合起来?不知道大家是否还记得,Athlon XP 有128Kb L1  cache 和256Kb L2 cache (新版本有512kb) 。因此,可能有些微不足道的运用会占据了你一半的容量。我并没有那样说,而是根据AMD,大容量L1 的浪费要比L1-L2 交混起来的多 。顺便说,严密的缓存组织使得发布64Kb L2 cache (只有L1 cache的一半)的duron 处理器成为可能。 而对于普通使用的架构来说,它对于性能的影响并非很敏感。

     因此,考虑到AMD 仍旧使用独占的架构,扩展L1-L2 总线似乎对于改进满载操作的性能非常敏感。Intel 在它的Coppermine(铜矿)核心使用了相同的设计,构建了256-bit 的ATC(高级传输缓存) L1-L2 总线。

     当然,我们也不要把"exclusive cache"(独占缓存)想象成垃圾。该技术是一项规范,并非弱点。在一方面,它是测试的设计,以求L1-L2 总线之间的装载尽可能地多。AMD 十分肯定地阐述了这些弱点在实际的应用中并不会发生。从理论上的带宽来说,K7/K8 L2 的损失与Pentium 4 cache 之间的比较是相当困难的。因此,不要因为被那么"奇妙的数字"而作为购买处理器的不成熟判断。

     在总的来说,cache 组织并非由exclusive(独占)和inclusive(非独占)来作出唯一区分。例如,L1和L2 数据可能是由完全不同的运算法则来进行更新,这使得交互作用变得更加复杂...

     现在让我们回到L1-L2 总线带宽 在,在我们查看综合测试来回答这些问题之前,我想必须要理解缓存规格的其它功能---associativity (关联)。大家都知道,cache 能够以几种方式影射内存。其中包括了部分和完全关联,直接影射(direct-mapped)缓存。所有的这些区别是由于内存影射而造成的,通过使用不同的组织,缓存可以通过不同的运算法则更新。但是,这与关联的度数没有关系。

    今天,最流行的就是局部n-way 关联cache 。实际上,n-way 关联cache 能够以它给出的n ways 中的任何一个来影射特定的内存字串。这是在全部关联和直接影射缓存的折中办法。该格式能够在任何的缓存空间中影射任何内存空间,但是组成电路将会非常的复杂。实际上,据我们所知----在Cyrix Cx686 CPU 中,作为L1 code(代码)缓存的容量仅为256 bytes(8个字串)。后者比较简单,当然随之而来的是换来较低的效率;位于不同内存空间的数据将会在专注的cache string 中发生碰撞。K7和K8架构支持与L2 有16-way 的局部关联。

    现在让我们来看看如何测量上述总线的宽度。例如,如果你从L2开始读取数据进去L1 里面,其中必然要发生把数据从L1 发送到L2 ,因为L1 空间是非常有限的。因此,在理想的情况(假设有这种情况),L1-L2 总线将装载所有我们需要的数据,并从L1 发送到L2 。考虑到带宽是最大的,我们获得的最高 读/写 速度将是 64-bit/2 ,例如 4 bytes 每个时钟。如果我们获得了更高的速度,总线将会高于64-bit 。这里有个细微的差别---如果缓存的交互没有完全达到独占度的需求,我们得到一种情况,那就是数据将不会被推出去。在允许的情况下,这需要额外的检查。但无论如何,这预示的因素是在允许的情况下,读取速度的队列将大于L2,但要比L2+L1 Data 慢(K8 为1024 到1088)。如果缓存的工作是非独占的,一些数据将被推到RAM,这使得速度减慢了。然而,如果一直保持高的读取速度,这将意味着缓存是独占的,并具有双倍的数据传输速率(都是从L2到L1,然后从L1到L2)。确切地说,这里超越了普通的4 bytes.时钟(例如在双ways的时候超过 8 bytes/时钟),也表明了总线宽度大于64-bit。

   在令一方面,如果K8 有大于64-bit 的总线,它在一些时钟里将读取单独的缓存字节(64 bytes)。当然,使得总线每次能够单独地处理整数的字节是非常明智的选择---128bit 或者256bit (它也表明了追求更高的总线是不现实和实际上没有什么效率的)。这些将是复合的变量,当我们有两个64-bit 总线(有些使用128-bit 与64-bit 的结合)。实际上,使用非对称总线也是不敏感的,我们可以进行以下的表示:

  1. 64-bit ,相同的总线

  2. 128-bit(256-bit),更宽的总线

  3. 64-bit + 64-bit 或者128-bit + 128-bit ;更宽的总线是不可能的。

   因此,我们可以尝试和发明一种方法来区分它们。

   为了检测128-bit 总线,让我们从不同的位置读取超越64-byte 的缓存字长。当然,我们要把装载每个4-bytes 字长花费的时钟加入到其中(并非想象中的那么简单,还有很多需要考虑的因素)。如果每个时钟读取16 bytes(128-bit 总线),它总共占据了4个时钟。此外,我们开始的时候要占据第三个字节。然而,它出现在时钟周期的未尾,在64-bit 总线的第8个时钟。简单地说,缓存改变了字节,以使总线的交互连接具有更高的效率。通过反复地读取字长,我们可以得到不同的时间。通过偏置不同的位置和比较总共字长的读取时间,我们能够获得总线的字长大小。这个方法告诉我们读取了64-bit 字节,例如总线是64-bit 宽度。

    然而,在1024-1088Kb 空间的测试表明了结果性能将超越 8 byte/时钟 。因此我们能够做出结论,AMD 改进了K8 的L1-L2 缓存总线,因此它的规格支持双64-bit 总线,取代了单独的64-bit 总线混合。这个方法可以有效地降低瓶颈。我们测试过程中还出现了这样的情况---在相同的时钟之下,L2 cache 的缓存速度突然提高了,并且持续了一刻钟。这表明了L1-L2 瓶颈消失了,或者降低到最少。最差的延迟也被有效地遏制。

 



内容导航:
第2页: Cache(缓存)子系统,分析其改变


资料来源:编译投稿
文章字数:4874
 
相关文章
采用Dothan的笔记本明年第一季度上市 (2003-10-08)
Intel被AMD所迫,新推出Xeon DP 3.2G (2003-10-08)
Intel高端产品缺货,DDR内存价格下挫 (2003-10-08)
2003年9月CPU市场用户喜爱度和价格分析报告 (2003-10-08)
节内毒龙1600MHz狂缺,节后有望缓解 (2003-10-07)
AMD的Athlon64击败APPLE的PowerMac G5 (2003-09-30)
英特尔Xeon 1M缓存3.20GHz芯片下周出台 (2003-09-30)

短信中心
[图片] [铃声] [短语] [自写短信]
圣诞老人来了
圣诞夜歌
平安夜圣诞歌
朋友(臧天朔)
I love you
First love
世界杯主题曲
谁让你流泪
精品/专题

联想“蓄谋”液晶风暴

联想智存卡-纤巧轻薄、智慧随身

让游戏做主--暑期主流显卡评测--A卡篇

让游戏做主--暑期主流显卡评测--N卡篇
当前栏目最新文章
好马配好鞍--64-bit 操作系统全接触
华硕上演X战警II 支持双至强PC-DL测试
超强解析-四大品牌八款主流散热器横向评测
决战的日子:AMD Athlon 64 @ Athlon64 FX
ZOL最新奉献--10款N卡火拼17款最新游戏
拨云见日——深入彻底了解AMD64架构
865PE主板待购者必看,内存对比测试满汉全席
左萦右拂,最大限度压榨威刚DDR500内存潜力

ZOL简介 | 用户注册 | 广告服务 | 人员招聘(月) | ZOL历程 | 互动营销中心 | 站点地图 | 联系方式 | 欢迎投稿 | RSS订阅 | 友情链接
北京海淀区知春路113号银网中心A座9F 传真:010-62529275 反馈留言板 欢迎批评指正
Copyright © 1999 - ZOL. All rights reserved. 中关村在线 版权所有. 京ICP证010391号