用户
 找回密码
 立即注册
搜索

[原创] 关于CPU2级缓存的一些看法

[复制链接]

10

主题

78

帖子

26

积分

注册会员

Rank: 2

积分
26
QQ
发表于 2007-3-29 14:56:00
关于CPU2级缓存的一些看法
AMD的U里已经集成了内存控制器,如果再提高2级缓存,在现在的生产工艺下,芯片的良品率和发热量将很难控制。
而Intel打算在45nm技术阶段,在CPU中集成内存控制器,并使用6M2级高速缓存。

新闻来自驱动之家http://news.mydrivers.com/1/77/77089.htmhttp://news.mydrivers.com/1/80/80533.htm
AMD的2级缓存少,我认为是集成电路设计问题,AMD在X2的部分低端型号中使用512K*2  2级缓存(以前是256*2),是因为使用了65nm工艺的原因,如果AMD在进入45nm工艺阶段后,采用新架构的话2级缓存应该不会再和现在一样低。


引用wodeer2003 的说法
AMD的L1、L2缓存叫实数据缓存,是真正的数据缓存,缓存中的数据可以直接供CPU使用。
Intel 的L1缓存叫数据追踪缓存,L2才是实数据缓存。所谓数据追踪缓存,说起来复杂,打个比喻,就是目录的意思。也就是说数据追踪缓存中的数据,并不是CPU可以直接使用的数据,这个数据只是告诉了你需要的东西在哪里,仅仅是一个地址--------在L2中的某个位置,然后再去L2中的具体位置找需要的数据。
就像你去找二个知道名字但不认识的人,一个叫AMD,一个叫Intel ,你一问某个人谁是AMD?这个人说我就是。你又去问谁是Intel ,这个人说他住××地方,然后你去这个地方找到了Intel 。

http://bbs.winzheng.com/viewthread.php?tid=843088&highlight=

我认为也就是因为Intel的1,2级缓存设计方法,才产生了在Core架构中共享2级缓存的技术。
即使AMD是实数据缓存,但AMD2个缓存加起来也没多少,我认为就缓存方面AMD性能要落后于Intel,当然AMD X2处理器性能并不差,是AMD在内存方面(集成内存控制器,内存访问延迟更低)和总线方面(HT总线比Intel FSB效率更高)设计先进的原因。


主要是个人的一些观点,希望高手指点。

下文来自IT168

CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。
    缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
    正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。
    目前缓存基本上都是采用SRAM存储器,SRAM是英文Static RAM的缩写,它是一种具有静志存取功能的存储器,不需要刷新电路即能保存它内部存储的数据。不像DRAM内存那样需要刷新电路,每隔一段时间,固定要对DRAM刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,这也是目前不能将缓存容量做得太大的重要原因。它的特点归纳如下:优点是节能、速度快、不必配合内存刷新电路、可提高整体的工作效率,缺点是集成度低、相同的容量体积较大、而且价格较高,只能少量用于关键性系统以提高效率。
    按照数据读取顺序和与CPU结合的紧密程度,CPU缓存可以分为一级缓存,二级缓存,部分高端CPU还具有三级缓存,每一级缓存中所储存的全部数据都是下一级缓存的一部分,这三种缓存的技术难度和制造成本是相对递减的,所以其容量也是相对递增的。当CPU要读取一个数据时,首先从一级缓存中查找,如果没有找到再从二级缓存中查找,如果还是没有就从三级缓存或内存中查找。一般来说,每级缓存的命中率大概都在80%左右,也就是说全部数据量的80%都可以在一级缓存中找到,只剩下20%的总数据量才需要从二级缓存、三级缓存或内存中读取,由此可见一级缓存是整个CPU缓存架构中最为重要的部分。
    一级缓存(Level 1 Cache)简称L1 Cache,位于CPU内核的旁边,是与CPU结合最为紧密的CPU缓存,也是历史上最早出现的CPU缓存。由于一级缓存的技术难度和制造成本最高,提高容量所带来的技术难度增加和成本增加非常大,所带来的性能提升却不明显,性价比很低,而且现有的一级缓存的命中率已经很高,所以一级缓存是所有缓存中容量最小的,比二级缓存要小得多。
    一般来说,一级缓存可以分为一级数据缓存(Data Cache,D-Cache)和一级指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据以及对执行这些数据的指令进行即时解码,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。目前大多数CPU的一级数据缓存和一级指令缓存具有相同的容量,例如AMD的Athlon XP就具有64KB的一级数据缓存和64KB的一级指令缓存,其一级缓存就以64KB+64KB来表示,其余的CPU的一级缓存表示方法以此类推。
    Intel的采用NetBurst架构的CPU(最典型的就是Pentium 4)的一级缓存有点特殊,使用了新增加的一种一级追踪缓存(Execution Trace Cache,T-Cache或ETC)来替代一级指令缓存,容量为12KμOps,表示能存储12K条即12000条解码后的微指令。一级追踪缓存与一级指令缓存的运行机制是不相同的,一级指令缓存只是对指令作即时的解码而并不会储存这些指令,而一级追踪缓存同样会将一些指令作解码,这些指令称为微指令(micro-ops),而这些微指令能储存在一级追踪缓存之内,无需每一次都作出解码的程序,因此一级追踪缓存能有效地增加在高工作频率下对指令的解码能力,而μOps就是micro-ops,也就是微型操作的意思。它以很高的速度将μops提供给处理器核心。Intel NetBurst微型架构使用执行跟踪缓存,将解码器从执行循环中分离出来。这个跟踪缓存以很高的带宽将uops提供给核心,从本质上适于充分利用软件中的指令级并行机制。Intel并没有公布一级追踪缓存的实际容量,只知道一级追踪缓存能储存12000条微指令(micro-ops)。所以,我们不能简单地用微指令的数目来比较指令缓存的大小。实际上,单核心的NetBurst架构CPU使用8Kμops的缓存已经基本上够用了,多出的4kμops可以大大提高缓存命中率。而如果要使用超线程技术的话,12KμOps就会有些不够用,这就是为什么有时候Intel处理器在使用超线程技术时会导致性能下降的重要原因。
    例如Northwood核心的一级缓存为8KB+12KμOps,就表示其一级数据缓存为8KB,一级追踪缓存为12KμOps;而Prescott核心的一级缓存为16KB+12KμOps,就表示其一级数据缓存为16KB,一级追踪缓存为12KμOps。在这里12KμOps绝对不等于12KB,单位都不同,一个是μOps,一个是Byte(字节),而且二者的运行机制完全不同。所以那些把Intel的CPU一级缓存简单相加,例如把Northwood核心说成是20KB一级缓存,把Prescott核心说成是28KB一级缓存,并且据此认为Intel处理器的一级缓存容量远远低于AMD处理器128KB的一级缓存容量的看法是完全错误的,二者不具有可比性。在架构有一定区别的CPU对比中,很多缓存已经难以找到对应的东西,即使类似名称的缓存在设计思路和功能定义上也有区别了,此时不能用简单的算术加法来进行对比;而在架构极为近似的CPU对比中,分别对比各种功能缓存大小才有一定的意义。


[ 本帖最后由 HuaErZ 于 2007-3-29 15:10 编辑 ]




[ 本帖最后由 HuaErZ 于 2007-3-30 09:19 编辑 ]
使用道具 举报 回复
发表于 2007-3-29 15:17:00
inter把的酷睿2叫做微架构
AMD把K8叫做连接结构
使用道具 举报 回复 支持 反对
发表于 2007-3-29 16:46:00
    理论上不管A还是I都是缓存越打越好,但是这其中大和好的关系并非线性比例关系。举一个简单的例子,K7时代L2-256K的XP和L2-512K的BT当主频相同时性能相差微乎其微,也就是说,在某一特定架构下,当缓存大到某一数量后再增加其容量已经没有性能提升上的意义了。当初AMD推出BT更大的考量其实不是性能提升而是通过加大缓存在消费者普遍的“大就是好”的心理层面上提升CPU的等级而对抗缓存绝对值比其大很多的P4(部分1M缓存的P4容量是XP的4倍)。
    至于缓存的价值论坛上另外一张帖子上已经讨论的很清楚了:不同的架构对缓存有不同的要求,简单的比较不同架构下的缓存的绝对值大小是没有意义的。
使用道具 举报 回复 支持 反对
发表于 2007-3-29 19:25:00
其实对于INTLE和AMD来说,当然缓存越小越好,CPU的核心面积,就缓存占得大多数。缓存越小,成本越低。
使用道具 举报 回复 支持 反对
发表于 2007-3-29 19:29:00
对于AMD来说,2级缓存实际没必要多大的。
就拿65nm和90nm的3600+来说,65nm的2级缓存增加到512x2,性能却下降了。
使用道具 举报 回复 支持 反对
发表于 2007-3-30 09:22:00
原帖由 youlonghui 于 2007-3-29 19:29 发表
对于AMD来说,2级缓存实际没必要多大的。
就拿65nm和90nm的3600+来说,65nm的2级缓存增加到512x2,性能却下降了。
这和AMD的缓存设计策略有关。
对于Intel 二级缓存就对于新酷睿,2M,4M,到以后可能的6M,在大规模运算,多任务处理的情况下,肯定是越大越好了。
使用道具 举报 回复 支持 反对
发表于 2007-3-30 09:25:00
有时不光看CPU的二级缓存的,还有其他的因素.
使用道具 举报 回复 支持 反对
发表于 2007-3-30 09:40:00
原帖由 lgqiu1983 于 2007-3-30 09:25 发表
有时不光看CPU的二级缓存的,还有其他的因素.
这个其他因素就太广了,架构,制造工艺,封装技术与针脚数(于主板接口兼容性),功率控制技术,多媒体指令,总线技术,CPU的一些特有技术(Intel的超线程,vPro,VT,EMT64等以及AMD的AMD64,HT,集成内存控制器,Pacific等),一般用户也不用考虑这么多的。
使用道具 举报 回复 支持 反对
发表于 2007-3-30 11:35:00
原帖由 HuaErZ 于 2007-3-30 09:40 发表

这个其他因素就太广了,架构,制造工艺,封装技术与针脚数(于主板接口兼容性),功率控制技术,多媒体指令,总线技术,CPU的一些特有技术(Intel的超线程,vPro,VT,EMT64等以及AMD的AMD64,HT,集成内存控制 ...
mm的照片不错
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则