本文主要是关于amd二级缓存的介绍,探讨了二级缓存的大小及其选择范围,希望通过本文能让你对二级缓存有更深的了解。
二级缓存
缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。 最早先的CPU缓存是个整体的,而且容量很低,英特尔公司从Pentium时代开始把缓存进行了分类。当时集成在CPU内核中的缓存已不足以满足CPU的需求,而制造工艺上的限制又不能大幅度提高缓存的容量。因此出现了集成在与CPU同一块电路板上或主板上的缓存,此时就把 CPU内核集成的缓存称为一级缓存,而外部的称为二级缓存。一级缓存中还分数据缓存(Data Cache,D-Cache)和指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。
amd二级缓存多少比较好
AMD处理器处理器数据时采用有续处理,处理器一个接一个的处理,不是随机的。每个数据几乎都直接来自于L2,因为L2的大小是有限的,当单个数据的大小超过L2的时候,只有访问内存,或者是上一个数据关联的数据在内存中的时候,AMD才需要访问内存。
举例说明:AMD的的处理方式像从仓库搬东西,L2是个小仓库,内存是大仓库,从小仓库L2中搬东西的速度最快,处理器每次访问数据都直接从小仓库中版,但是偶尔也回遇到些情况,就是要搬的东西实在太大了,小仓库装不了,那么只有从大仓库搬了。
由于AMD的有续处理方式,对L2的需求只需要看单个数据的大小。当L2能满足大多数单个数据的时候,提升L2就没有什么必要了。
cpu要处理的单个数据中0-64kb占50%,64-128kb的占25%,128-256kb占15%,256-512占8%,剩下的2%才是大于512kb的。
当512kb就能满足绝大多说要求的时候,没有必要为了提升很小的性能,来增加很多的成本,所以512k就够了。
而Intel在处理器上设计的时候是采取乱处理模式的,意思是,intel的处理器在要处理一个数据的时候是随机选择一个数据来处理,当这个数据在L2中的时候,则直接从L2中读取,不在L2中的时候,则需要访问内存。要知道L2的速度比内存快很多,因此,intel很需要增大L2的容量,来提高cpu整体能力。
举例说明:
intel的处理器像一个人在投飞标,红心就是L2,其他地方是内存,飞标是随便投的,投到每个地方的几率相同。要想投中高速的红心面积的几率增加,那么最直接的好办法就是增加红心的面积,就是增大L2。因此intel的处理器显得特别要大的L2。
amd二级缓存的选择范围
AMD和Intel:巨大差异皆因设计不同
提到二级缓存容量的差距,还得从两大CPU巨头对一级缓存的理解说起。对,没看错,就是平常曝光率远逊于二级缓存的“一级缓存”!它才是造成上面提到巨大差异的“罪魁祸首”。
现今的CPU中,Intel对一级缓存的理解是“数据代码指令追踪缓存”,即是说一级缓存中存储的其实只是二级缓存中数据和指令的地址,而不是这些数据和指令的复制。二级缓存的容量相当程度上影响了IntelCPU的性能。
相比之下,AMD对一级缓存的定位是“实数据读写缓存”,即二级缓存中的一部分数据都要在一定的规则下搬到一级缓存中。
不仅在一级缓存的工作方式上有区别,而且AMD的CPU在一级缓存的大小上还占有优势,以AMDAthlon64X26000+AM2(盒)为例,两个内核各配备64KB数据高速缓存、64KB指令高速缓存。而价格稍高的IntelCore2DuoE6320(三年盒),两个内核各配备32KB数据高速缓存、32KB指令高速缓存。
当然,上面只是Intel的AMD的CPU二级缓存巨大差异的主要原因。事实上CPU对二级缓存容量的“敏感”与否还受到诸如内存控制器,流水线长度、频率、总线架构和指令集等等多方面的影响。在多核CPU中还关乎各个物理内核之间的数据交换问题。
在多核心CPU中,对二级缓存的利用效率有高有低。简单的说,Intel新一代Core架构二级缓存的利用最为优秀,AMD的AthlonX2系列次之,较老的PentiumD(PentiumEE)系列最差。
几年时间里,二级缓存从小小的64KB一举增长到了8MB,整整128倍!越来越大的二级缓存是不是真的换来了CPU性能同样“突飞猛进”发展?还是只不过是Intel和AMD联手玩的数字游戏?
其实,二级缓存容量对性能的影响是渐渐减弱的,当二级缓存从没有增长到128KB时,带来的性能提升可能是直线上升的。但是当它从2MB增长到4MB的时候,可能使用者甚至感觉不到性能的提升。这是因为在当前CPU所处理数据的过程中,几乎无时不刻需要用到128KB以下的缓存,但是需要用到1MB以上缓存的时候很少(2%左右)。因此虽然二级缓存越涨越大,实际上对CPU性能的影响却是越来越小的。像文章开头的两款CPU,二级缓存巨大的差异并不会最终表现在CPU速度上。因此,完全不必要盲目追求二级缓存的高容量,够用就好。
二级缓存的利用率
概述
CPU在缓存中找到有用的数据被称为命中,当缓存中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在一颗拥有二级缓存的CPU中,读取一级缓存的命中率为80%。也就是说CPU一级缓存中找到的有用数据占数据总量的80%,剩下的20%从二级缓存中读取。由于不能准确预测将要执行的数据,读取二级缓存的命中率也在80%左右(从二级缓存读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。较高端的CPU中,还会带有三级缓存,它是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。
为了保证CPU访问时有较高的命中率,缓存中的内容应该按一定的算法替换。一种较常用的算法是“最近最少使用算法”(LRU算法),它是将固定时间内最少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出缓存,提高缓存的利用率。
处理器缓存
所谓处理器缓存,通常指的是二级高速缓存,或外部高速缓存。即高速缓冲存储器,是位于CPU和主存储器DRAM(Dynamic RAM)之间的规模较小的但速度很高的存储器,通常由SRAM(静态随机存储器)组成。用来存放那些被CPU频繁使用的数据,以便使CPU不必依赖于速度较慢的DRAM(动态随机存储器)。L2高速缓存一直都属于速度极快而价格也相当昂贵的一类内存,称为SRAM(静态RAM),SRAM(Static RAM)是静态存储器的英文缩写。由于SRAM采用了与制作CPU相同的半导体工艺,因此与动态存储器DRAM比较,SRAM的存取速度快,但体积较大,价格很高。
品牌差异
实际上,Intel和AMD处理器在一级缓存的逻辑结构设计上有所不同,所以二级缓存对CPU性能的影响也不尽相同。因为CPU读取的数据(包括指令)中有80%的数据来自一级缓存,所以一级缓存的逻辑结构决定了CPU二级缓存容量对CPU性能的影响。Intel的Pentium 4及Celeron系列处理器的一级数据缓存被称为“数据代码指令追踪(读写)缓存”;AMD的Athlon 64/Athlon XP/Sempron/Duron系列处理器 的一级数据缓存叫作“实数据读写缓存”。
结语
关于amd二级缓存的相关介绍就到这了,如有不足之处欢迎指正。
评论
查看更多