轩辕ゞ无悔 发表于 2006-9-1 12:13
Intel Core微架构解析
全新Intel Core微架构解析 Core 2 Extreme X6800 VS FX-62
Intel推出的全新Core微架构桌面处理器,核心代号Conroe命名为Core 2 Duo/Extreme家族,究竟新一代微架构对比上代Netburst有何改善呢?HKEPC编辑部将详细分析Core微架构,并率先找来顶级型号Intel Core 2 Extreme X6800与AMD Athlon 64 FX-62作对比测试。
作为全球半导体的龙头,Intel很久没有受到如此重大的威胁,竟让AMD的K8架构处理器抢走x86桌面市场及伺服器市场占有率超过2成以上,究竟Intel在那里出现问题了!? 在传统的处理器市场上,消费者喜欢以时脉来分辨处理器的效能,时脉越高效能越好彷佛就是定理,如果在相同微架构下这个说法并无错误,但如果比较不同微架构产品,却会出现严重的误差,然而在旧日Intel雄霸市场的日子,大部份消费者也是使用相同的产品下,时脉却正好是最简单直接的比较单位。
或许Intel也明白到普遍用家的看法,故此在2000年发布采用Netburst微架构的Intel Pentium 4处理器,明确地透露了高时脉政策的取向,大幅地增高Pipeline Stage让产品拥有优秀的时脉提升能力,虽然受外界批评Netburst架构是高时脉低效能的产品,相信原因是人们把它和晚三年推出的AMD K8微架构作比较吧。其实在当时来说,Pentium 4绝对是划时代的设计,例如为了让Pentium 4处理器能善用其较长的Pipeline Stage设计,大幅改良了Branch Prediction,其Branch Predictor比上代P6架构高出8倍达4KB,估计可令Branch Prediction出错减少达1/3,首次加入Trace Cache设计并储存了12K已被解码的Micro-Ops指令,取代传统L1 Cache设计减少了在运算需要解码的时间,亦能缩短Branch misprediction出现的延误,容量较少的L1 Cache设计亦令核心时脉更易提升。部份核心设计将运作于时脉的两倍,例如两组Fast Integer、Integer RF、Bypress Network、其中一组ALU及AGU(Load &Store)等等,2000年Netburst架构的Pentium 4震撼了整个业界,令对手AMD K7微架构产品受到严峻压力,只能以较低廉的价格作出还抗。
无疑产能和生产技术绝对是Intel的传统强项,AMD如勉强地与Intel在时脉上竞赛只是自寻死路。因此,AMD选择了在微架构上作出改良,提升每周期的指令处理数目,可是在时脉等于效能的传统市场心态,要改变这种误解可说是近乎不可能的任务。纵使如此,AMD也只有这条唯一途径和Intel抗争,它们强调著执行效率比时脉作为指标更为准确,提出效率等于时脉乘以每周期的指令处理数目,并以P-Rating代替时脉作为处理器的型号,初时人们对P-Rating还不太接受,但在AMD苦苦经营下亦开始得到了认同。
Performance = Frequency x Instructions per Clock Cycle
相反,Intel还是深信他们自己的生产技术及产能,认为在生产技术不断提升下,时脉数字及效能将继续发展,并没有打算推出全新的微架构对抗AMD K8的入侵,我们可以从Intel推出Netburst微架构改良版本的Prescott处理器得悉,把Pipeline Stage由20层进一步提升至31层,让时脉再进一步提升,当时Intel更夸口下一代Tejas处理器可达至5GHz,可惜在还没有超越4GHz的门槛时,Intel产品的功耗已达至甚高的水平,在时脉不断增加生产技术无法突破下,功耗将成为Intel最大的考验,并且是现阶段技术是无法完全解决的,这迫使Intel的执行长在公开场合下跪表示,我们还是没法子达成4GHz,过份自信生产技术最终竟成为了自己的障碍。
Power = Dynamic Capacitance x Voltage x Voltage x Frequency
在时脉发展停滞不前下,Intel需要向著时脉以外的方法提升效能,多核心技术成为未来的大趋势,AMD和Intel同时在2005年各自推出了双核心设计的处理器产品,但Intel在设计上却明显地较AMD落后,主要原因是AMD在企划是已推算处理器未来大方向将趋向多核心设计,并在设计K8核心初期加入System Request Interface & Crossbar Switch,让双核心可以在处理器内部的进行资料交换,例如CPU 0需要读取CPU 1 L2 Cache的资料,就只需要向System Request Interface提出要求并透过Crossbar Switch就把取读资料,优秀的Hyper-Transport双向的传输设计,加上内建记忆体控制,无需要透过北桥读取系统记忆体以减少延迟,都为K8在多核心大战占尽先机。相反,Intel早年还是确信时脉将会因制程进步而保持高增长,在Prescott核心之后还会出现更高时脉的Tejas核心,可高达5GHz的时脉如果能解决功耗和热量的问题,再配合Hyper-Threading多线程技术,理论上在短时间内并无推出双核心产品的需要,因此在产品的设计规划上并没有为多核心留下伏笔,要反胜对手唯一的途径就必需从根本的微架构设计着手。
要设计一个全新的微架构绝非一朝一夕的事,但Intel在各市场上的占有率节节下滑已到了不能再等的地步,幸好Intel在早年明白到Netburst架构设计的处理器,在功耗表现上欠佳,因此成立行动处理器研发队伍,专门开发针对行动电脑的微架构产品,在初推出的Banias核心Pentium M处理器已有出色表现,及后Dothan核心甚至双核心的Yonah亦一直保持高效率低功耗的水准,因此Intel决定放弃Netburst架构,把行动处理器架构作出改良以减少全新微架构的开发时间,或许这队位于以色列的开发团队并没有想到自己将会变成Intel救星。
NetBurst + Mobile = Intel Core Microarchitecture !?
[img]http://www.myprice.com.cn/product/2006/0804/images/94711.jpg[/img]
有别于上一代Netburst,Intel Core微架构将会统一用于桌面电脑(Conroe)、行动电脑(Merom)及主流伺服器(WoodCrest)产品中。据Intel表示,Core微架构整合了Mobile架构的省电高效率电表与Netburst优秀功能,并为Multi-Core应用作出准备及优化。话虽如此,但我们却很难在Core微架构中找到半点Netburst的影子,而且它的设计近乎90%是基于Mobile架构的Yonah核心作出改良,而只保留了NetBurst架构中的Prefetching,故此把Core微架构说成把Netburst和Mobile架构结合是有点牵强,或许Intel并不希望外界认为其放弃Netburst架构,名义上让Netburst有更好的台阶下。
虽然Intel Core 微架构是基于Yonah的设计,但其实约有70-80%的架构和线路被重新设计,并加入了五项主要改革,包括Intel Wide Dynamic、Intel Intelligent Power Capability、Intel Adcanced Smart Cache、Intel Smart Memoru Acess及Intel Adcanced Digital Media Boost,而本文亦将会详细介绍这五项改革的原理。
由Pentium Pro开始,Intel加入了Dynamic execution动态执行,令x86处理器首次支援Data Flow Analysis、Speculative Execution、Out of Order Execution及Super Scalar等RISC的处理器技术技术。直至Pentium 4的NetBurst架构则被再度改良称为Advanced Dynamic Executive,它采用更深的Out of Order Speculative Executive引擎,以善用高Pipeline Stage架构减少浪费,同时改善Branch-Prediction机制减少造成分支预测错误,全是为了高时脉政策而铺路。
明显地,Intel Core微架构的Wide Dynmaic Execution和Adcanced Dynamic Executive意念不同,它的出发点在于如何提高每周期指令处理数目,改善执行时间及提升处理器的能源效益,Core微架构拥有4组Decoder(3 Simple decoders + 1 Complex decoder),比上代Pentium Pro(P6)/PentiumII/PentiumIII/Pentium M架构拥有2 Simple decoders + 1 Complex decoder可多处理一组指令,与AMD K8不同的是它只拥有3组Complex ecoders,正常来说大部份x86指令均可以采用Simple Coder把它翻译成一个Micro-Op指令,只有极少数学运算的指令,需要采用Complex decoders来把它翻译为四个Micro-Ops指令,因此在正常情况下Core微架构对比Netburst及K8有更优秀的指令执行效率。取消了高时脉政策,Intel Core微架构用回较高效率的14层Pipelines,为了提升分支预测的能力及准确性,Branch Predictor的Bandwitdh提升20B(K8、Banias为16B,Netburst为4B),这些都是体现了"Wide"的意念。
Wide Dynamaic Execution首次加入了Macro-Fusion技术。在旧世代的微架构中,每个指令被送来时其解码及执行动作是完全独立的,但Intel Core微架构可以让常见的指令组例如一个Compare指令配随后拥有一个Jump指令,便可把这个指令组合成单一的Micro-Op指令,这令Core微架构在特定情况下每个周期有运算五组指令,据Intel表示大部份x86程序,约每十至十五个指令就会出现一组可透过Macro -Fusion被组合,因此减少了程序执行所需运算时间、提升效能却不会增加处理器的功耗,为此Intel亦改良ALU(Arithmetic Logic Unit)部份以支援Macro-Fusion技术。
此外,Intel Core微架构保留了Banias微架构的Micro-op Fusion技术,在现代的x86处理器,x86指令(Macro-ops)会被分拆去为长短相同的Micro-Ops指令,才会被送往处理器的Pipeline等候执行,而Micro-op Fusion能把相同的Macro-ops混合成单一个Micro-ops,减少了Micro-ops运算的数目亦令处理器运作排序更有效率,据Intel表示,Micro-op Fision透过Out-of-order逻辑可以减高达10%的Micro-op指令执行数。总括而言,Macro-Fusion及Micro-op Fision提升了核心的执行效率同时保持高能源效益。
由于上代Prescott处理器功耗表现并未如理想,故新一代Core架构针对功耗上作出重良的改善称为Intel Intelligent Power Capability技术,处理器在制程技术作出优化,例如采用先进的65奈米Strained Silicon技术、加入Low-K Dielectric物质及增加金属层,相比上代90奈米制程减少漏电情况达1千倍。但最值得注意的是,Intel加入了细微的逻辑控制机能独立开关各运算单元,只有需要时才会被开启,避免闲置时出现不必要的功耗浪费,称为Sleep Transistors技术,此外,把核心各个Buses及Array采用独立控制其VCC电压,当这些部份被闲置时会被运作于低功耗模式中。
以往要实现达成Power Gating是十分困难,因为在元件开关的过程需要消耗一定程度的能源,而且需要克服由休眠至恢复工作出现的延迟值,故此在Intel Intelligent Power Capability设计考虑到如何优化Sleep Transistor的应用,并确保不会因Sleep Transistors技术而影响效能表现。在Computex TW 06期间,Intel就曾展示一台Core 2 Duo E6300(1.86GHz/2MB L2/1066MHz FSB)在没有采用风扇辅助下完全负载前景播放HD WMV9影片、背景同时不断重覆Lame Audio Encoding WAV to MP3压缩,经过20分钟后仍能保持正常运作,用手触摸处理器散热器表面只是微热,相反北桥散热器的温度要比它还要烫手,很难想像这颗65W TDP的处理器竟有如高水准表现,据Intel表示由于影片压缩工作部份核心元件并不会被使用,会被关掉或是运作于低功耗模式中,纵使其他核心部份正在完全负载。
Intel第一代双核心处理器设计只是单纯地把两颗核心封装在一起,并分享同一个Front Side Bus(FSB)频宽,当其中一颗核心使用FSB时,另一颗便需要等待另一颗的完成才能使用FSB,加上Intel FSB设计是单向存取,还需要透过北桥来读取系统记忆体资料,均严重加重Intel的FSB工作量,两颗核心亦没有直接沟通的桥梁,如果CPU 0的L2 Cache需要读取CPU 1的L2 Cache,更是需要经过FSB及北桥才能达至出现严重的延迟。
Intel Core微架构对此作出了大幅改良,全新的Intel Advanced Smart Cache有效加强多核心架构的效率,传统的双核心设计每个独立的核心都有自己的L2 Cache,但Intel Core微架构则是透过核心内部的Shared Bus Router共用相同的L2 Cache,当CPU 1运算完毕后把结果存在L2 Cache时,CPU 0便可透过Shared Bus Router读取CPU 1放在共用L2 Cache上资料,大幅减低读取上的延迟并减少使用FSB频宽,同时加入L2 & DCU Data Pre-fetchers及Deeper Write output缓冲记忆体,大幅增加了Cache的命中率。
相比现时K8的双核心L2 Cache架构,也是比不上Advanced Smart Cache设计,因为共用L2 Cache能进一步减少了Cache Misses的情况,K8微架构在CPU 0需要读取CPU 1 L2 Cache的资料时,需要向System Request Interface提向要求并透过Crossbar Switch就把取读资料,但CPU 0发现读取自己的L2 Cache没有该笔资料才会要求读取CPU 1的L2 Cache资料,情况等同于CPU 0的L3 Cache,而共用的L2 Cache设计却没有以上需要,AMD已明确在下一代K8L微架构中加入相似Shared Cache技术,但K8L产品在AMD Roadmap中暂定于2007年H2才能登场。
Smart Cache架构还有很多不同的好处,例如当两颗核心工作量不平均时,如果独立L2 Cache的双核心架构有机会出现其中一颗核心工作量过少,L2 Cache没有被有效地应用,但另一颗核心的L2 Cache却因工作量过重,L2 Cache容量没法应付而需要传取系统记忆体,值得注意的是它并无法借用另一颗核心的L2 Cache空间,但SmartCache因L2 Cache是共用的而没有这个问题。
Shared Bus Router除了更有效处理L2 Cache读取外,还会为双核心使用FSB传输进行排程,新加入的Bandwidth Adaptation机制改善了双核心共用FSB时的效率,减少不必要的延迟,其实这个Shared Bus Router设计确实有点像K8的System Request Interface及Crossbar Switch的用途。此外,Intel Advanced SmartCache架构用在行动处理器上亦很有优势,系统工作量不高或是处于闲置状态下,Intel Core微架构可以把其中一颗核心关掉,以减少处理器的功耗,不过却可以保持4MB L2 Cache保持工作,而且Shared Bus Router更可以因应L2 Cache的需求量改变L2 Cache的大小,在不必要时关掉部份L2 Cache以减低功耗,但在独立L2 Cache的双核心,如果要把其中一个Cache关掉,则必需要把其中一颗核心的L2 Cache资料移交出来,而且Cache亦会和核心同时被关闭,并没法因应需求实时改变或关掉部份L2 Cache的容量以减低功耗。
Intel Core微架构同时亦改良了记忆体传取效能,每颗核心均拥有3个独立Prefetchers(2 Data and & 1 Instruction),及2个L2 Prefetchers,能同时地侦出Multiple Streaming及Strided Acess Patterns,让核心需要的资料提早准备就绪于L1之中,两组L2 Prefetchers则会分析L2 Cache资料并保留有日后需要的资料于L2 Cache之中。Core微架构的L1 Cache设计放弃使用上代Netburst的Trace Cache设计,因为Trace Cache的最大优点在于较长的Pipeline Stage微架构,而Core只拥有14 Stages故此它改用Banias架构的8-Way 32KB Instruction Cache + 32KB Data Cache设计,虽然容量比AMD K8的 64K Instruction Cache + 64KB Data Cache少一半,但由于AMD的L1 Cache只是2-Way设计,因此Intel的L1 Cache命中率相比K8有较轻微的优势。L2 Cache方面拥有特大的16-Way 256Bit 4MB容量,但Latechy却下降至和AMD K8相约的12-14ns之间,相比AMD K8只有16-Way 128Bit 1MB(部份型号只有512KB),Intel Core微架构在改良Cache系统后拥有绝对优势。
但如果对比系统记忆体存取表现,AMD K8却因内建记忆体控制器而比Intel Core微架构优胜,但由于Core微架构的采用上短Pipeline Stage架构及时脉相对Netburst微架构低,加上高容量的L2 Cache并内建Shared Router Bus减少FSB使用,因此系统记忆体控取的表现差距,已不像与上代Netburst微架构产品般严重,而为了进一步拉近与K8架构上的记忆体效能距离,Intel在Core微架构中加入全新的记忆体读取技术称为Memory Disambiguation。
Memory Disambiguation是一个十分聪明的设计,透过Out of Order过程把记忆体读取次序作出分析。在传统的微架构里,记忆体读取是按排程顺序而被执行,如图上例子Load 4是独立的Data X读取执行,亦必需要等待其他Store 1、Load 2及Store 3工作完毕,纵使Load 4的Data X和前面的资料存取动作并无关系,因为处理器并不会得悉前面的动作会否改变Data X的数值,所以不能重新排序并分析Load 4能否提前执行。
在Intel Core微架构中透过智能的分析机制,能预知Load 4的Data X是完全独立,并可让它提早执行。正因如此Memory Disambigutaion能减少处理器的等候时间减少闲置,同时减低记忆体读取的延迟值,而且它可以侦出冲突并重新读取正确的资料及重新执行指令,保证运作结果不会出现严重,但在正常情况下Memory Disambirutation出错的机会率甚低。
Intel Core微架构同时亦针对SSE指令执行作出了改良,称为Intel Advanced Digital Media Boost技术,新一代Core微架构拥有128Bit-SIMD interger arithmetic及128bit SIMD双倍精准度Floating-Point Operations。传统的处理器设计只有64Bit的SIMD interger arithmetic及Floating-Point Operations,因此在执行128Bit的SSE、SSE2及SSE3指令时,需要把指令分拆为两个64Bit指令,并需要两个时脉周期完成,但Core微架构则只需要一个时脉调期便能完成,执成效率提升达一倍,现时SSE指令集已经十分普遍地用于主流的软件中,包括绘图、影像、音像、加密、数学运算等用途,单周期128Bit处理器能力以时脉以外的方法提升效能,令处理器拥有高能源效益表现。
Microarchitecture︰Intel Core VS AMD K8
[img]http://www.myprice.com.cn/product/2006/0804/images/94721.jpg[/img]
[url]http://bbs.zol.com.cn/index20060825/index_99_177918.html[/url]
Intel Core微架构完全承袭了P6微架构的优良传统,并加入了多项创新的技术,针对提升每周指令执行指令数目而努力,从以提升效能功耗比。如果拿Core微架构与AMD K8微架构作比较,就会发现Core微架构有更"宽"的设计,Core微架构的4-Wide执行核心为x86系统提供了强大IPC运算能力,尤其是SSE指令集方面,Core微架构采用3组ALU,相比上代Yonha多出一组并已追上了AMD K8微架构的简单x86指令执行能力,同时Core微架构却大幅提升SIMD指令能力,拥有3组128Bit SSE运算组,亦因如此Intel Core微架构将拥有比AMD K8微架构约三倍以上的整数SSE指令频宽,而浮点SSE指令频宽亦比AMD K8微架构高出2倍。
为了提供升实际软件的IPC运算潜能,Intel并不只单纯地加入更多的运算组,还在处理器设计上作出重大改良,为了让IPC能力保持于高水平,Intel加入了两个Fusion机制包括Marco Fusion及Micro Fusion,同时采用了Memory Disambiguation提供了Out-of-order的效率,所有设计都让Intel Core微架构变能体现Performance per Watt的能力。
虽然AMD K8微架构已是三年前的产品,但其设计却一点也不显得落后,但面对有备而来的Intel Core微架构还是显得有心无力,现时AMD K8微架构仅存的优势就是内建记忆体控制器,但由于Intel Core微架构在Cache设计(加入更多的Prefetchers)、增强Branch Prediction命中率及记忆体存取上的技术改良(Memory Disambiguation),AMD于这记忆体效能的领先已被大幅收窄。据Intel表示,它们要把记忆体控制器放进处理器并不困难,是不为也非不能也,主要是考虑到加入记忆体控制器将会令产品被限制其记忆体支援弹性及升级能力,加上Intel估计记忆体的发展速度将会不断增加,AMD需要不断改良核心内的记忆体控制器设计才能追上记忆体发展的步伐,值得注意的是,未来IGP晶片组占市场比例将日益增加,内建记忆体控制器将成为IGP系统设计的弱点,效能上比不上北桥内建记忆体器方案。
无疑Intel Core微架构是一颗十分优秀的处理器,解决了一直以来Intel双核心处理器的设计弱点,其高效率低功耗设计更让微架构可跨越Desktop、Mobile及Server平台,效能绝对能凌驾现时所有x86微架构之上,相信AMD在下一代K8L微架构出台前会受到极严峻的压力。
[[i] 本帖最后由 轩辕ゞ无悔 于 2006-9-1 12:14 编辑 [/i]]
所欲 发表于 2006-9-3 20:37
em05 em05 em05
气体 发表于 2006-9-4 14:45
不希奇!!!
其实就是图拉丁!!!
只是酷睿是超级图拉丁而已`~~~~~~~~~~~~~~
轩辕ゞ无悔 发表于 2006-9-4 20:23
[quote]原帖由 [i]气体[/i] 于 2006-9-4 14:45 发表
不希奇!!!
其实就是图拉丁!!!
只是酷睿是超级图拉丁而已`~~~~~~~~~~~~~~ [/quote]
嘿嘿。。参考参考。。。
气体 发表于 2006-9-8 12:54
从架构的源头来看,其实就是古老的P6架构,
图拉丁的辉煌就在于超短的流水线,执行效率高!
同时发热功耗小!内部晶体管数量少!
简板 发表于 2006-9-9 19:54
楼主辛苦,支持一下~!!
页:
[1]