扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
“Larrabee(阿拉伯人)”的重要性并不在于英特尔名为“Larrabee”的图形芯片。Larrabee反映了英特尔未来CPU架构的发展方向。Larrabee的核心理念是最新的x86指令LNI (Larrabee New Instruction,Larrabee新指令)以及CPU核心网络。而且,Larrabee还引导着英特尔主流CPU技术的发展趋势。
因为PC服务器CPU的主流趋势要么是加强数据级并行性(Data-Level Parallelism,DLP),要么是加强线程级并行性(Thread-Level Parallelism,TLP),所以有人会认为在开发这种架构的时候Larrabee起到了帮助作用,而且Larrabee还将应用于检测工具中。
单从一款产品来说,Larrabee的成功与否并不重要。重要的不是Larrabee本身,不管Larrabee是否能够取得成功,我们都可以从Larrabee看到未来英特尔CPU发展的趋势,从Larrabee我们能推测出英特尔新一代架构的成功与否。
准确地说,未来英特尔将把1/3的精力放在CPU架构上。因为目前英特尔公司内部有三个开发x86架构CPU的团队,其中一个团队主要负责Larrabee和指令集。
这三个团队中有一个团队是隶属于英特尔数字企业部门的俄勒冈州Hilzboro开发中心,主要负责Pentium III/4和Core i7的研发工作。第二个团队是隶属于英特尔移动部门的以色列Haifa开发中心,主要负责Pentium M和Core 2的研发工作。最后一个是负责Atom系统研发工作的德克萨斯州Austin开发中心。Hilzboro和Haifa团队开发主流x86 CPU架构已经有两年时间了。
Larrabee是由三个团队中的Hilzboro团队研究人员开发的。有趣的是,不仅这款产品,包括升级的指令集架构在内都是属于每个团队的。
图中是英特尔指令集和CPU架构扩展的方向(点击放大),从图中可以看出来Intel的CPU发展可以划分成三个阶段,第一个阶段是从1991年到2002年的单核时期,这期间主要以提升CPU主频来增强CPU的性能,此间年均性能增长幅度在52%左右,而从2003年开始至2009年,也就是我们现在所处的多核(线程)处理器阶段,通过多核与多线程技术来进一步提升性能,并加强了浮点运算能力,年均增长幅度在15%左右,从2009年开始,随着AVX等新一代向量指令集的加入,CPU将进化入新的多核心+向量处理的阶段,浮点运算能力也将达到新的水平,预计年均性能增长幅度可达40%
两个指令扩展:Haifa团队的AVX和Hilzboro团队的LNI英特尔将在2010年推出装载AVX(Advanced Vector Extensions,高级向量扩展指令集)新型SIMD指令的CPU产品。而且据说Haifa团队研发的更新一代处理器“Sandy Bridge”将采用这个新的指令扩展。实际上,在英特尔IDF大会上登台讲解AVX的演讲者中大多数是Haifa团队成员。总之,出现在英特尔指令集升级路线图中的AVX不仅是Haifa团队开发的,而且被加载到了Haifa团队开发的CPU中。
另一个是由Hilzboro团队开发的LNI(Larrabee New Instruction,Larrabee新指令)。如果开发了这个指令集的团队实现了每个指令集的扩展,那么LNI或者完善后的指令就将被主流CPU所采用,当然这也将改变Hilzboro开发主流CPU的路线,也许英特尔计划在2012年推出代号为Haswell的CPU将成为成功的新一代产品。总之,Larrabee将为英特尔2012年之后CPU架构奠定下坚实的基础。
从这点来看,可以推测出明年(2009年)以后Intel处理器的指令集架构将出现一种分裂的态势。一种是面向主流x86处理器的256bit向量的AVX扩展指令,一种则是高吞吐量处理器所采用的512bit向量的LNI指令集,这种将向量指令集扩展成两个并行发展的系统,给人一种“走向分裂”的异样感觉。也因此,Intel内部两个研发团队之间相互竞争的状态也明显体现出来。
如果Intel把Larrabee产品作为未来的一个发展走向,并因此新设立了视觉计算业务群组(VCG,Visual Computing Group),那么LNI向x86处理器指令架构的扩张将会容易很多,指令集部分也将具备了一贯性。如果Intel真的采取了这一战略,那么作为产品而开发的Larrabee所被赋予的地位和战略重要性,将在很长时期内不可动摇。然而,以现有的产品计划,Larrabee更像是x86处理器的一个“鬼影”,或者说是一个潜在的“破坏者”,从这些策略上的差异上也可以看出Intel内部各研发部门之间的分歧,或者说是一种“隔阂”。
而且,Hilzboro团队的负责人Patrick Gelsinger(英特尔数字企业部门高级副总裁兼总经理)暗示说,AVX不仅将继续保留在SSE计划中,而且还将长期作为指令集扩展路线图的一部分。也许在关注完AVX之后,我们又要继续关注LNI了。
英特尔指令集架构的演化,Larrabee的出现,让英特尔ISA的发展出现了分支,也使其未来的发展产生了变数
LNI广泛应用于x86 CPU内核中Larrabee核心起到了在网络架构中连接扩展指令LNI、CPU内核群以及Ann核心(CPU内核外的块)的作用。LNI则由于更广范围的向量处理特点而被用于提高DLP和有效提高性能。就像LNIX是未来英特尔主流CPU的关键一样,核心网络也将成为未来英特尔CPU的一个重要因素。
首先,英特尔的Larrabee研发团队在开发Larrabee核心网络的时候,采用了用于服务器内部连接的总线环网(Ring Bus)技术。据负责Larrabee研发的英特尔首席架构师Doug Carmean称,他们最初尝试采用并行的高速二级缓存将CPU内核与总线环网相连接。但是,由于Larrabee架构不能很好地配合这个项目,最终被摒弃了。
服务器类型的互连
图为服务器类型的互连:3D图形
之后的计划是将每个CPU内核分成若干个小容量的二级缓存。这种架构很适合将像素数据放在缓存中的Larrabee,不过存在一些问题:必须保持两个分离二级缓存之间的一致性。
英特尔其他像Larrabee这样的高吞吐量CPU也采用了这种缓存架构。这种内存分离式的架构不像GPU那样需要专门的访问路径。在高吞吐量处理器被作为主目标的处理流程中基本用不到缓存,因为庞大的数据流中大多数数据是需要进行回收的。不过,由于英特尔通过LNI扩展缓存控制指令,因此这种缓存方法在某些情况下可以用于数据流的处理。
从Hilboro的战略计划中,我们可以清楚地看到为什么英特尔在缓存架构方面遇到了难题。那是因为当LNI被加载到主流x86 CPU的时候,这种缓存架构是适用的,同时很容易保持程序的连贯性。然而,英特尔在多核心架构下遇到了维持内存连贯性的问题。GPU和Cell B.E.就不会遇到这个问题,因为不需要保持内核之间的连贯性。
图为在缓存中央的Larrabee总线环网
全新时代的缓存架构接下来,Carmean带领的架构师团队第一次采用了集中安装缓存标签目录的方法。
Carmean表示:“我们最初尝试了增加全局标签目录块,这种块以总线环网中心为圆点,以环状范围管理所有缓存。实际上,所有二级缓存标记的硬拷贝都被保留下来。”
然而,这种方法存在一个重大问题:全局标签目录成为限制性能和可扩展性的根源所在。
Carmean表示:“标签目录成为环网中一个热点,而这个热点又成了限制性能的罪魁祸首。”而且,随着核心数的增加,对标签目录的访问也更加密集,核心数的可扩展性也遇到了障碍。这也是解决分散标签目录问题的关键所在。
这就是Larrabee遇到的实际情况,分布式标签目录被分配到了每个CPU核心,我们可以通过hush地址访问分布在环网上的目录地址。因为和全局标签目录一样不是集中在一点上的,所以不会对性能造成限制。而且,核心越多可扩展性也就越高。
图为带有中央标签目录的Larrabee环网
图为分布式标签目录,其中标签目录被添加到每个缓存中
而且,为了减少缓存之间的数据传输量,英特尔加强了缓存协议的一致性。另外英特尔还采用了将持有状态添加到MESI标准中的MOESI协议。据称这可以直接转换缓存线,降低传输量。
添加能够向MESI中添加持有状态的MOESI
未来还将开发“锁缓存”技术
提高CPU核心的可扩展性也是有可能实现的
据称,在这个Larrabee架构中,16个CPU核心可以成双地与互动环网相连接。英特尔曾在SIGGRAPH大会上表示,在这个环网中也是有可能进行扩展的。
Carmean表示,超过16核心的环网被称为“Xring”。由于连接两个或者更多个环网的交叉点上添加了不止一对核心,所以环网的结构可能会更加灵活。Carmean表示:“这样能够扩展增加更多的核心,让Larrabee变得更加模块化。而且,物理配置的灵活性也增强了。”下图中,超过16个内核被手动连接到三个环网中。
具有可扩展性的Larrabee总线环网,但核心数量越多,对带宽的需求也就越大,并且需要有更灵活的物理拓朴架构
最初Larrabee是没有这种“Xring”结构的,但是后来扩展产品中采用了这种结构,这使得Larrabee的快速变革成为一种可能。总之,这种24核心或者32核心的产品不要对基础架构做任何变更就可以快速完成配置。
英特尔首席技术官Justin R. Rattner此前也曾经提到过,Larrabee这种片上网络结构将实现架构上的变革。
Rattner还阐述了通过结合虚拟机支持来加强缓存一致性的计划。运行不同的虚拟机是不需要维持CPU核心之间的一致性,因为内存和缓存的分离是在一台虚拟机中完成的。
因此维持CPU核心之间的一致性只是为了让相同的虚拟机运行起来,因为这时候缓存和CPU核心的分离是在不同虚拟机中进行的。看上去Larrabee的分布式标签模式似乎适用于这种情况。
Larrabee块结构图(点击放大)
将来CPU可能适用于Larranee的各个方面
作为扩展Larrabee指令的LNI不仅可以用于小型CPU核心,而且还可以用于PC服务器的大型CPU核型中。Gelsinger坦言,LNI能够加载到通用大型CPU核心中。Larrabee的核心网络也可以应用到PC服务器的CPU中。
总之,英特尔凭借开发Larrabee的经验,提高CPU核心数,实现了主流CPU的高度数据并行性。在这种情况下,这项技术使大型CPU核心比Larrabee核心的单线程性能更高。
这样看来,英特尔未来将逐步提高主流CPU产品的向量操作性能,通过Larrabee实现线程和任务的并行性。如果英特尔在2012年以后开始朝这个方向走下去,那么其光明前景是可以预见到的。
然而,我们不知道未来Larrabee将何去何从。英特尔的Larrabee策略不仅是针对高性能计算领域,而且还瞄准了图形产品。在图形方面,Larrabee具有与GPU不同的灵活性,它将开辟出一片新天地。不过,Larrabee也存在一些缺陷,因此它能否与其他图形芯片相抗衡,现在还是不能确定的。