再谈Intel CPU微结构–过去,现在和将来
作者 陈怀临 | 2010-09-26 14:35 | 类型 芯片技术, 行业动感 | 25条用户评论 »
【陈怀临注:时光如梭。上次写这篇文章是2008年10月。转眼2年过去。这次做一些修订和校注。】 Intel CPU的产品称呼比较混乱。这一点对于在Intel工作的员工也是如此。下面是笔者在这方面的一些经验。希望对读者同学们有所帮助。 首先,对非专业人士而言,接触的名称通常为CPU的产品品牌(Brand Name),而不是微结构(Micro-Architecture)名称。什么是微结构?就是你看不见的那些东西。例如流水线(Pipeline)的设计,局部总线(Local Bus),缓存(Cache)的设计,存储总线(Memory Bus)等。到目前为止,一般而言,Intel CPU微结构的系列为:i386, i486, P5, P6, Netburst, Pentium-M,Core(Merom 65nm和 Penryn 45nm)。Core微结构的65nm流片有:Merom,Concore,Allendale等;45nm的流片Penryn,Workfiled,Yorkfield等。Penryn是Merom的直系后代。Nehalem是基于Penryn 45纳米流程的直系后代。从Penryn 45nm工艺流程的基础上,Nehalem微结构横空出世。在Nehalem与Core微结构的继承性上,目前英文的wiki上是不精确的。Nehalem最大的特点就是FSB和(或)北桥的消失,QPI的引入和把在Core微结构抛弃(或曰暂停的)HyperThreading从新引入。 Nehalem之后的事情比较清爽:Nehalem, Westmere(Nehalem在32nm工艺下的Tick ),Sandy Bridge,Ivy Bridge(Sandy Bridge在28nm 工艺下的Tick)和Haswell。通常,我们也可以说Nehalem和Westmere都属于Nehalem微结构。Sandy Bridge和Ivy Bridge都属于广义的Sandy Bridge微结构。这种关系就是Intel现在非常重要的Tick Tock的流程。如下图所示,为Intel的TT模型。 Tick其实就是Introduce一个新的工艺和各种PROCESS。Tock就是Introduce一个新的微结构。 工艺与结构的拆分对于Intel这些年来的成功是根本的。这里面的原因其实也很简单:如果一个芯片建立在一个新的工艺 AND又是一个新的微结构上。一旦出了问题,基本上整个公司就歇了一半了。CEO就要买豆腐撞死。没有Baseline的事情,最好不要去做。所以TT模式可以你确保,在一个已经酒精考验的PROCESS下,Tock一下,如果芯片有问题,那就基本上是新的结构出了问题。如果一个基于考验过的微结构在一个新的工艺下(Tick一下),如果芯片有问题,显然是工艺方面有bug。。。。总而言之,这样一个拿着billion美金烧出来的芯片,就可控了。。。 另外,TT模型的另外一个好处就是把工程师队伍有效的运作起来。例如,Core的Merom和Pennyn都是Intel以色列团队主导做的;然后Nehalem和Westmere是美国Oregon团队做的;然后Sandy Bridge和Ivy Bridge又是犹太人主导;再下面再是美国团队做。TT下去,循环往复。。 Intel在这个方面是从血的教训里学来的。当年的最新的NetBurst redesign Prescott在90nm就是Tick(90nm 所以,Intel的微结构变化可以简单概括为: 同一个名称的CPU可以是来自不同的微结构。如Celeron CPU有P6微结构的,Netburst微结构的,Pentium-M微结构的和Core微结构的。如果不懂的话,您购买了一个Netburst微结构的Celeron,在性能价格比上就不好了。在同年代中,您当然应该选择Pentium-M的款式。对Intel的Xeon名称的CPU也一样,读者可以发现,Xeon可以来自不同的微结构技术。 因此,CPU的产品名称基本上没有用。一定要知道其来自哪个微结构。换言之,CPU名称与微结构的映射关系是M:N。 这些微结构名词与我们日常看到的广告上的“Inside Intel”的名称的关系如下: (本文不讨论IA64体系结构。笔者认为IA64除了在科学计算方面,基本上没有任何意义了。) <微结构名称>: {CPU品牌(Brand)}+ i386: 80386DX, 80386SX, 80376, 80386SL, 80386EX i486: 80486DX, 80486SX, 80486DX2, 80486SL, 80486DX4 P5: Pentium, Pentium with MMX P6: Pentium Pro, Pentium II, Celeron (Pentium II-based), Pentium III, Pentium II and III Xeon, Celeron (Pentium III Coppermine-based), Celeron (Pentium III Tualatin-based) Netburst:(32位)Pentium 4, Xeon, Mobile Pentium 4-M, Pentium 4 EE, Pentium 4E, Pentium 4F,(64位)Pentium D, Pentium Extreme Edition, Xeon Pentium-M:Pentium M, Celeron M, Intel Core, Dual-Core Xeon LV, Intel Pentium Dual-Core Core:(64位)Xeon, Intel Core 2, Pentium Dual Core, Celeron M Nehalem:Xeon, Core i7,Core i7 Extreme,Core i5。 Westmere:Xeon, Core i7,Core i7 Extreme,Core i5, Core i3,Pentium,Celeron 在基于Nehalem微结构下45nm工艺下流片的CPU有: 桌面(Desktop) 服务器(Server) 下图是Nehalem-EX和Nehalem-EP的结构比较图: Westmere-EX (还没有出来。应该10个核,20个线程) 下图所示为Westmere的Clarkdale的芯片图。一个Package,二个Die。CPU Die是32nm;Graphic芯片是45nm。换言之,就是混在一起完事交差。读者想想马上要出来的无缝的Sandy Bridge的GPU集成,就知道其中之区别了。
下图所示为Sand Bridge的Die图。与Westmere + GPU的双芯片(Die)解决方案,我们可以看见,GPU Seamlessly进来了。。。 | |
雁过留声
“再谈Intel CPU微结构–过去,现在和将来”有25个回复
考考大家
在微体系方面,Sandy bridge比Nehalem都有什么提升?
相信在毛泽东思想领导下的龙芯一定可以星星之火燎原,胡老师是我们的明灯
好好学习下!谢谢分享!
最近依赖首席的文章学习CPU体系架构中。。。弱弱问一下,工艺和微结构对CPU整体表现的影响分别在哪里?工艺影响体积和功耗?微结构决定性能?
那些fabless的公司应该不会采取这种TT开发模型吧,微结构的稳定性由ARM等IP公司保证,工艺的可靠性由TSMC等foundry保证。。。
认识一个在以色列Intel的外国人(PHD来的)感觉那人不怎么样。。。。
Intel里面很多人都不怎么样,很正常,不过还是有很多牛人的说。。。。
Intel的x86已经很久很久没有新意了。
倒是最近AMD的Bobcat有点意思,尤其跟cortex-A9, Atom相比。如果真如AMD说的那么好,Intel应该有人要买块豆腐撞了。
http://www.chip-architect.com/news/AMD_Ontario_Bobcat_vs_Intel_Pineview_Atom.jpg
7楼,AMD都快在前端总线上撞死了倒是真的,Intel没有新意,怎么I7还没怎么掉价呢?
首席是CPU专业的
@marro:amd的前端总线怎么了?ht?愿闻其详。
p.s: 不要喷我,我也是intel粉丝。没有新意不是贬义词,一个姿势玩这么久才是真牛。激进的设计一直都是loser的玩法。
什么样才叫新意啊……一个月换一个架构?
首席能给分析一下这种GPU结构上的无缝集成对于未来的OS有什么新的机会吗? 感觉这个应该能够从根本上改变OS,毕竟CPU资源的定义渐渐的在改变。
未来也许商业计算也要GPU密集型了。
不看好gpu,看好xilinx那些可以部分重构的,带硬核的fpga
首先,对非专业人士而言,接触的名称通常为CPU的产品品牌(Brand Name),而不是微结构(Micro-Architecture)名称。什么是微结构?就是你看不见的那些东西。例如流水线(Pipeline)的设计,局部总线(Local Bus),缓存(Cache)的设计,存储总线(Memory Bus)等。
自己掌嘴吧。micro-architecture并不是system design。请莫混淆。
There’s a ‘s’ in Clarksfield.
To #13, Have you done any performance evlauation on Xlinux FPGA?
The so called embedded micro-processor from Xlinux is not for high-performance applications but mediocre-performance embedded systems.
It seems you are comparing apples with oranges.
FPGA能够跟处理器拼高性能应用的是那些可编程逻辑,而不是那个硬核,硬核只是用来跑OS来管理那些可编程逻辑而已。
FPGA的应用是有限的。 比如双精度的浮点运算就不太适合。
高性能计算目前主要是靠CPU+GPU来实现的。 有那个世界TOP-100的超级计算机是用CPU+FPGA实现的?
总之, 在有限的应用领域FPGA是合适的但在高性能计算方面,尤其是需要浮点计算是,CPU+GPU是正道!
我想问的大概是:
http://www.linux-mag.com/id/7872
GPU太便宜,计算能力太强大,OS不可能无视这一变化的。
目前来看, OS对GPU无能为力。 所有的工作都是在语言层面上,在用户空间上做文章。
在GPU上运行的OS(Runtime System)和在CPU上运行的不同。GPU被看做是CPU的co-processor.
在GPU上运行一个JVM的可行性有多大?
可以看看xilinx的吹水
http://rssi.ncsa.illinois.edu/docs/industry/Xilinx_presentation.pdf
和这个
http://www.xilinx.com/support/documentation/white_papers/wp375_HPC_Using_FPGAs.pdf
还有已有的FPGA HPC cluster
http://www.rcs.uncc.edu/wiki/index.php/Main_Page
个人觉得FPGA做HPC的障碍在于FPGA的成本和开发工具.
而且,也可以归结为一个动态重构的模型,例如一条加法指令可以指挥CPU做加法,那么我们可不可以这样想:
一个加法指令把CPU配置成一个加法器
所以,现在动态重构的FPGA也可以算是一种”CPU”,而是他的”指令”可以把FPGA配置成更复杂的硬件.
个人觉得动态重构的FPGA一定程度上反映了”CPU/GPU”这些计算设备的进化方向.
>在GPU上运行一个JVM的可行性有多大?
ZERO
感叹一下TT模型,最近在做一个大项目,妈的大领导非要用一个现在还在研发中的平台,稳定性根本无从说起,出了事情还得和另一个部门扯皮
没有任何微架构细节,非常贴近市场非常水。
下面的文章还能算言之有物
http://www.realworldtech.com/page.cfm?ArticleID=RWT091810191937
http://www.realworldtech.com/page.cfm?ArticleID=RWT082610181333