万里风's Archiver

蓝调星空 发表于 2008-9-18 11:06

硬派道场!CPU L2 Cache(二级缓存)综述!

[b][size=4]      CPU二级缓存作为一级缓存的“后备仓库”,用于为一级缓存存储更多的数据,减少CPU直接访问内存的次数.
理论来说CPU访问并调用缓存的数据所占的比重越大,那么CPU访问并调用内存的数据所占的比重就越小,那么因访问内存而引起的延迟就越小. [/size]
所以缓存的容量越大,CPU的实际效率也越高,性能就越强.

   很多菜鸟都不了解,实际上现在Intel和AMD处理器在一级缓存的逻辑结构设计上有所不同,所以二级缓存对CPU性能的影响也不尽相同.
因为CPU读取的数据(包括指令)中有80%的数据来自一级缓存,所以一级缓存的逻辑结构决定了CPU二级缓存容量对CPU性能的影响.
Intel的Pentium 4及Celeron系列处理器的一级数据缓存被称为"数据代码指令追踪(读写)缓存"
AMD的Athlon 64(K8架构)/Athlon XP(K7高端,终极核心Barton)
/Sempron(K8低端)/Duron(K7低端,前几年有过轰动,能连接L2金桥达到破解二级缓存的目的,有点历史的硬件玩家应该都知道)系列处理器的一级数据缓存叫作"实数据读写缓存".

   我举个例子来描述这两类CPU一级缓存的逻辑结构的不同点:假设有一个运算任务,要从"1"一直递加到"999999".
在传统的"实数据读写缓存"架构下,这一系列数据中最先用到的数据(如 "1、2……449、450")将存储在CPU一级数据缓存中,
更多的数据(如"451、452……899999、900000")存储在CPU二级缓存中,其余的数据(如"900001、999002……999998、999999")暂存在内存中,
CPU将按照一级数据缓存、二级缓存和内存的顺序读取这些数据.
但是在"数据代码指令追踪缓存"架构的CPU中(Intel通常采用此架构),一级数据缓存并不存储这些最先用到的数据("1、2……449、450"),
而是将这些数据存储到二级缓存中,一级数据缓存仅仅存储这些数据在二级缓存中的起止地址(又称为指令代码)
例如,数据"1、2……449、450" 顺序存储在二级缓存中,数据"1"所在地址为"00001F",数据"450" 所在地址为"00451F",
实际上一级数据缓存只需要存储"00001F"和"00451F"这两个地址就可以了,而不需要存储大量的数据.(似乎更为先进,但其实两者各有各的优势)
但由于其一级数据缓存不存储数据,数据存储在二级缓存中,因此对二级缓存容量的依赖非常大(不足之处在这有所体现了...),
所以CPU需要更大的二级缓存容量才能发挥出应有的性能.在实际应用中,CPU处理的数据中大多数都是0KB~128KB大小的数据,
而128KB~256KB的数据约有10%,256KB~512KB的数据有5%,512KB~1MB的数据仅有3%左右.
所以对于这种CPU来说,二级缓存容量从0KB增加到256KB对CPU性能的提高几乎是直线性的(类似生物学中的种群J型增长曲线);
增加到512KB对CPU性能的提高稍微小一些;从512KB增加到1MB,普通用户(有别于玩家,不能相提并论...)就很难体会到CPU性能有提高了.
正因为如此,大家能感受到Pentium 4C(512KB二级缓存,C系列为P4首款800MHz前端总线,并加入超线程技术的CPU,
核心代号与之前P4B系列同为northwood,相当经典的P4核心)与Celeron(128KB二级缓存)的性能差异,
却很难感受到Pentium 4C与Pentium 4E(1MB二级缓存,E系列为P4首款采用90nm工艺,31级流水线的CPU,核心代号prescott)的性能差异了.

   例如,同为2.8GHz主频的Celeron D(256KB二级缓存,基于90nm prescott核心的低端产品)和Pentium 4E,
运算superπ104万位的耗时分别为56秒和48秒,除去外频(前者为133MHz,后者为200MHz)的差异和超线程的影响,两者的性能差距只有10%左右,
对普通人而言这样的性能差距微不足道;只有对CPU性能要求苛刻的玩家来说更大的二级缓存才是必须的.(我们对硬件有极端的要求^_^)

   下面要讲一下重点:相对的,由于AMD的Athlon 64/Athlon XP/Sempron/Duron系列产品的一级数据缓存直接存储数据,
而且128KB(Barton核心Athlon XP二级缓存为512KB,这是K7的最高规格了)的容量在大多数情况下就可以承担CPU所急需的数据, 所以其二级缓存对CPU性能的影响并没有那么大.
这也就解释了为什么主频和外频相同的Athlon XP(256KB或512KB二级缓存)和Duron(64KB二级缓存)虽然二级缓存容量差异巨大, 但实际性能差距不大的原因(游戏除外...).
而且Athlon 64/Sempron系列CPU在内存控制器、流水线长度、频率、总线架构和扩展指令集等诸多方面与以前的产品都有差异, 因此在性能上受二级缓存容量的影响就更小了.

    综上所述,在CPU性能方面,并非只从二级缓存容量上作对比就可以得到准确的答案, 实际上还要考虑到缓存的总体设计结构、一级数据缓存容量等因素.虽然从总体上来讲,二级缓存容量越大越好, 但是并不是二级缓存容量提高一倍就能使CPU性能提升一倍.
因此对于一般用户来说,电脑主要是用来上网、欣赏音乐和电影以及文字处理,二级缓存为256KB的Celeron D或Sempron已经足够了. 只有对3D游戏、办公软件和多媒体编辑性能要求较高的人才需要更大二级缓存的CPU.

    所以不要看到P4E的1MB缓存就以为最快,见到和C4一样L2大小的754闪龙(sempron)处理器就妄下定论性能不济, 因为它们的架构不同,所以L2对性能的影响也相差很多.

    而游戏的表现很看重二级缓存,128KB和1024KB的成绩最大差距达到21%(DOOM3测试中), 平均起来,128KB L2缓存要比1024KB L2的成绩低12-13%,当然这都是在同频率下测试的.
以上的各项测试成绩可以了解到,缓存容量对于不同处理器的性能影响的确不同.
本人测试并统计一下,128KB缓存的Sempron比256KB缓存的Sempron平均只慢了1.2%,而比1MB缓存的Athlon 64只慢了6%左右.
不过需要提醒你们的是,游戏的表现往往更看重缓存容量,如果你是专为玩游戏而买L2较小的处理器的话,还需要好好考虑一下.
[/b]
[b][size=4]当然,硬件发展速度是极快的,有一些规则也不一定能永远适用.前面拿经典的P4,A64和AXP系列做范例,时下主流的多核心CPU就不讨论了,就我所知,目前都是适用的.多几个核心讨论起来还麻烦,何况本文旨在说明L2.[/size]
[/b]
[b]THE END[/b]
[b]THX FOR READING:)   吼吼~~~酷~_bq [/b]

Lois 发表于 2008-9-18 11:07

yoci_monkey135_bq 看8懂~~

Lois 发表于 2008-9-18 11:07

yoci_monkey135_bq 板凳

Lois 发表于 2008-9-18 11:08

yoci_monkey135_bq 地板也躺躺~~

蓝调星空 发表于 2008-9-18 11:08

顺便附张图,曾经的颠峰之影~酷~_bq
[attach]34139[/attach]

[[i] 本帖最后由 蓝调星空 于 2008-9-18 11:10 编辑 [/i]]

Lois 发表于 2008-9-18 11:08

yoci_monkey134_bq 下水道也8放过~~

Lois 发表于 2008-9-18 11:08

yoci_monkey128_bq 下水道被抢了~

蓝调星空 发表于 2008-9-18 11:09

哇,无处不在啊,连我的沙发都抢了冒火_bq

Lois 发表于 2008-9-18 11:09

[quote]原帖由 [i]蓝调星空[/i] 于 2008-9-18 11:08 发表 [url=http://www.wanlifeng.com/redirect.php?goto=findpost&pid=567760&ptid=44320][img]http://www.wanlifeng.com/images/common/back.gif[/img][/url]
沙发自己坐酷~_bq [/quote]
yoci_monkey122_bq 你的沙发貌似失去很久了~~

Lois 发表于 2008-9-18 11:09

[quote]原帖由 [i]蓝调星空[/i] 于 2008-9-18 11:09 发表 [url=http://www.wanlifeng.com/redirect.php?goto=findpost&pid=567765&ptid=44320][img]http://www.wanlifeng.com/images/common/back.gif[/img][/url]
哇,无处不在啊,连我的沙发都抢了冒火_bq [/quote]
yoci_monkey135_bq 挖卡卡~

蓝调星空 发表于 2008-9-18 11:11

[quote]原帖由 [i]Lois[/i] 于 2008-9-18 11:09 发表 [url=http://www.wanlifeng.com/redirect.php?goto=findpost&pid=567768&ptid=44320][img]http://www.wanlifeng.com/images/common/back.gif[/img][/url]

yoci_monkey122_bq 你的沙发貌似失去很久了~~ [/quote]
MM很有前途酷~_bq

蓝调星空 发表于 2008-9-18 11:13

蓝调出品 必属精品酷~_bq

風渟蕍霨蓼 发表于 2008-9-18 11:58

顶哥yoci_monkey162_bq

風渟蕍霨蓼 发表于 2008-9-18 11:58

[quote]原帖由 [i]Lois[/i] 于 2008-9-18 11:07 发表 [url=http://www.wanlifeng.com/redirect.php?goto=findpost&pid=567753&ptid=44320][img]http://www.wanlifeng.com/images/common/back.gif[/img][/url]
yoci_monkey135_bq 看8懂~~ [/quote]
居然抢我沙发yoci_monkey157_bq

Lois 发表于 2008-9-18 12:41

yoci_monkey135_bq 回来逛逛~~

Lois 发表于 2008-9-18 12:42

[quote]原帖由 [i]蓝调星空[/i] 于 2008-9-18 11:11 发表 [url=http://www.wanlifeng.com/redirect.php?goto=findpost&pid=567780&ptid=44320][img]http://www.wanlifeng.com/images/common/back.gif[/img][/url]

MM很有前途酷~_bq [/quote]
yoci_monkey134_bq 谢谢夸奖~~

Lois 发表于 2008-9-18 12:42

[quote]原帖由 [i]風渟蕍霨蓼[/i] 于 2008-9-18 11:58 发表 [url=http://www.wanlifeng.com/redirect.php?goto=findpost&pid=567908&ptid=44320][img]http://www.wanlifeng.com/images/common/back.gif[/img][/url]

居然抢我沙发yoci_monkey157_bq [/quote]
yoci_monkey125_bq 8好意思~~挖卡卡

蓝调星空 发表于 2008-9-18 13:15

亮起来酷~_bq

mercury_cq13 发表于 2008-9-18 16:08

/;yangcong108 /;yangcong108 什么呀

蓝调星空 发表于 2008-9-25 00:31

[quote]原帖由 [i]mercury_cq13[/i] 于 2008-9-18 16:08 发表 [url=http://www.wanlifeng.com/redirect.php?goto=findpost&pid=568635&ptid=44320][img]http://www.wanlifeng.com/images/common/back.gif[/img][/url]
/;yangcong108 /;yangcong108 什么呀 [/quote]还没见过你呢

页: [1] 2

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.