|
好吧,上面一些话太令小白们头大了!我们谈点现实的——片内缓存,即CPU内部缓冲存储器,也有直接叫缓存,洋气点叫CACHE,你反正知道都是一回事就行哒!
INTEL 定义的CPU缓存功能分配:
一级缓存可分为一级指令缓存和一级数据缓存。一级指令缓存用于暂时存储并向CPU递送各类运算指令;一级数据缓存用于暂时存储并向CPU递送运算所需数据,这就是一级缓存的作用。
二级缓存就是一级缓存的缓冲器:一级缓存制造成本很高因此它的容量有限,二级缓存的作用就是存储那些CPU处理时需要用到、一级缓存又无法存储的数据。
三级缓存是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。
无论是二级缓存、三级缓存还是内存都不能存储处理器操作的原始指令,这些指令只能存储在CPU的一级指令缓存中,而余下的二级缓存、三级缓存和内存仅用于存储CPU所需数据。
I5 指标:
一级缓存 4X64K =256K ,各自为每个物理内核提供数据缓存
二级缓存 4X256K=1024K=1M ,也各自为每个物理核心提供数据缓存
三级缓存 6M ,只有6M 独立的,没有给四个核单独分享,而是四个核共享
E3 指标:
一级缓存 4X64K =256K ,各自为每个物理内核提供数据缓存
二级缓存 4X256K=1024K=1M ,也各自为每个物理核心提供数据缓存
三级缓存 8M ,四核共享(开启HT超线程后,也为所有线程共享)
I7 指标:
一级缓存 4X64K =256K ,各自为每个物理内核提供数据缓存
二级缓存 4X256K=1024K=1M ,也各自为每个物理核心提供数据缓存
三级缓存 8M ,四核共享(开启HT超线程后,也为所有线程共享)
当年的高端P4-641 (支持HT) 现在看上去很可怜:
一级缓存 16K ,为物理内核提供数据缓存
二级缓存 2M,为每个物理内存提供数据缓存
多核处理器看其构架是否成熟,主要看CPU片内缓存是否多个运算单元共享。为什么在奔腾D双核和AMD 速龙双核时代,双核处理器的效率不高,就是这个原因,因为各个核之间没有共享缓存,相当于每个核数据处理完后,再放入内存,再被另一个核读取,这走了弯路。
我们来看看第一代双核处理器结构示意:
这是 INTEL 奔腾D ,只不过是把两个不具备HT的 P4 核芯做在了一起,可想而知,根本没有共享缓存:
这是 AMD 第一代双核速龙,也就是什么 AMD X2 3600+/4400+/5200+/5600+/7750+ 之流,不过 AMD 是把两个核芯做在了一个基片上,从逻辑层面来看,它与 PD 是一样的,把两个速龙64的单核做在了一起,两大厂家都玩胶水粘贴而已,但在这个时候,双核就是NB的,但没有人说双核是个吃力不讨好的东西:
那个时代,INTEL PE5200 刚出世是可以秒掉 AMD 双核全家的,直到 速龙II X 240 的发布,AMD才挽回了一些面子。而从 CORE2 开始,INTEL已经做到了共享缓存。
这相当于两个工厂,地理位置相近,为一个项目在生产东西,传统的做法是:从 A 厂拉东西,需要交给 B 厂来做时,必须出A厂大门,上外面的公路,转场到 B厂,而多核CPU片内共享缓存就相当于,在两个工厂之间的直线距离,修了一个直通公路,甚至不用出厂门,打个围墙垫巴垫吧,两个厂的车间就可以直接即时高速共享材料物质。
多核共享缓存为CPU的性能提升插上了翅膀!
在 CORE2 时代的后期,如要CORE2 四核 QUAD 系列,INTEL 依然玩胶水技术,就是把两个双核粘在了一起,我们可以从下图中看到,双核内部有共享缓存,但两个双核之间是没有真正意义的共享缓存的,这使得需要用到四个核工作时,A组双核数据先丢内存,再由 B组双核把数据从内存中捡回来,这走弯路了,使得这种四核工作效率不高:
我们再来看看 I7(I5与此相同),即使对CPU再怎么不了解,只要你会看懂汉字,会看方框布局,用脚指头也能想得出来,这种四核是真正意义上的在CPU基片之内完成了数据的直接交流分配。使得CPU性能完全提升。三缓的容量越大,数据带宽的提升,使得CPU的数据‘命中范围’和‘命中精度’及线程同步性越强,也容易让四个物理核心真正做到了快速有效:
I7构架这种运算单元之间多线程的数据协同处理,使得 HT 固有的二次分配负面影响降到最低,INTEL不可能只是单纯的开了HT来让全球的妓术青年们狂喷,而是HT现在建立在共享缓存技术、数据带宽提升的成熟基础上,因此目前的HT超线程运行效率与十年前的P4 相比,你认为它还是一个负面影响、还会在大部分场下拖慢CPU的速度吗? 单线程任务本来就是一个核的事,这种环境下,HT是讨不到便宜的,你就是弄个 I7 3690X 八核12线程的U皇,也不会NB多少。多线程任务是未来的主流。
I5/I7 的晶元微拍图片:
(超线程从P4时代的暗淡,到CORE2的沉默,到I7的再度重生,与其说INTEL从没有放弃过HT超线程技术的发展,到不如说在 Windows 7系统之前的老系统中均无法有效利用它。还比如其它CPU的功能,如64位指令集,早期的MMX 和 3DNOW技术,都是走在操作系统之前的先行者。直到 AMD 和 INTEL 都在对超线程技术进行力挺时,微软才有了实质性的跟进。要知道在之前的 3Dmax 环境中,开超线程还会死机,PhotoShop 6.1之前的版本,开超线程渲染延迟很高,以至于当时INTEL不得不拉下老脸建议用户关闭超线程。)
给大家推荐一个非常全面的科普资料,请有心于进阶探索的朋友们阅读
“世界尽在我脚下”-Intel Core i7 百科全书
http://www.itocp.com/?action-viewnews-itemid-133-page-1
温馨提示,前九页是精华,第26页是结语,第10页至第25页开始各种炫耀、各种跑分、各种蛋疼的不解释内容,你懂的!
我在之前做过一些视频对比,同样是低密度人少的AION环境,开启超线程+睿频后,CPU占用是比较低的,FPS也平均比关闭这两项也有一定的提升,流畅感几乎一致,但在旋转视角中的卡顿现象两者区别较大。超线程是在复杂运算中起作用,而睿频则自动根据运算需要增加或降低相应运算单元的频率。所以当有人认为波幅不一致就代表CPU利用率不高时,也可以理解为睿频本来不是一个平衡所有核心频率和执行效率的东西。
关闭超线程+睿频的波幅表现:
波幅一致有个好处,就是在物理核心大幅度超频时,能确保最高的稳定频率工作点。除此用途之外,它并不能代表你的CPU一定被合理的利用上了。因为不论软件的执行原理是复杂,还是简单,它都在这样同步。在确保超频的稳定措施中,一致的工作特性是最好控制的。
象 I7 这样的CPU的大幅度超频中,为了使物理核心的工作方式趋于一致化,关闭HT超线程,使物理核不再分神做其它事情,这个是可以有的。同理,I5由于本身不具备HT超线程,因此它就没有 I7这个多余的手序。
我们大多数工作中,比如一些运算量要求大的软件,我们都可以看到所有的波幅变化都是近似于同步的,WINDOWS 调度的结果而已。在封闭式环境下,它的效率是建立在高主频基础上的。所以说手动强制CPU的波幅稳定,与 WINDOWS 系统根据线程运算的需求使波幅拉高后的相似同步变化,其实也完全一样。如果能证明这种手动强制的波幅更加有效,那么微软那些开发小组就是纯吃干饭的。假如线程调度不具备可调性和可控性,那么我们手动来实现这个效果也基本上只是一个梦想。
所以超频面对默频,你的收获是CPU的主频可以拉到一个非常高的幅度,硬件的潜力可以榨到极致;但是你的损失是,这些自动的、合理的分配硬件资源的智能化管理给抛弃了。如果你的手动结果大于这些负面影响,那么超频才是有优势的。而硬件的潜力有大有小,潜力这个东西并不是正常的范围,而是一厢情愿和臆想天开,要看人品。超上去了这就不是瞎猜,超不上去只能泪奔。
|
|