十几年前当英特尔遇到CPU性能墙的时候,芯片的单核时代最终划上句号。如果英特尔不将处理器的主频提升到4GHz、5GHz甚至更高,那么他们将要通过在多个CPU内核之间分配工作来获得性能。
这对于那些多线程执行的应用来说是有利的。但是仍然有一些应用,例如大规模计算或者数据搜索分类,步骤B需要步骤A的结果,在这种情况下,一个 5GHz的内核将让你获得比2个2.5GHz内核更高的性能。
因此,英特尔开发了一项名为"Anaphase"的技术,并在近日公布。英特尔在去年的International Symposium on Computer Architecture上首次透露了这项在Intel Labs Barcelona开发的技术,并且在本月初的研究展示日上进行公布。
这个硬件与软件的混合体采用了多个内核来提高单线程性能,依赖不同的猜测技巧来自动分区单线程应用,这样就可以在多个内核上处理这些应用。
这相当于接手一项繁重的任务,然后分成若干个小块。这通常被认为是非常困难的,因为处理过程中的猜测部分要求某种"根据事实或经验作出的猜测"– 因此,会引入潜在的故障危险。
为了处理这些潜在的障碍,英特尔引入了一个被称为Inter-Core Memory Coherency Module(ICMC)的新单元,它会更新程序排序的内存状态,检测内存错误,实施检查点和恢复机制来修复错误。ICMC模块可以集成到未来的英特尔处理器设计中。
在软件方面,猜测线程是在编译过程中确定下来的。编译器检测出一个特定的代码域适合于猜测多线程,并在编译过程中被映射成优化的代码。然后两个猜测线程会在需要的时候对数据进行同步。
英特尔曾经尝试过这种技术,但只是作为一项单纯的硬件解决方案。Anaphase这个硬件与软件的结合体比非Anaphase优化应用的性能高出31%~41%。
现在Anaphase仍然是一个研究项目,Intel Labs Barcelona的研究员正在尝试将这项技术集成到未来的处理器设计中。
目前市场中已经存在类似于Anaphase的技术,但是这种技术的实施还只限于特定的、使用RISC处理器的大规模并行系统中,In- Stat首席技术研究院Jim McGregor这样表示。
他说:"目前这种系统是非常昂贵的。这是很难做的,而且当你尝试一次在多个线程上执行的时候就更加困难了。它需要高级的算法和大规模并行解决方案。"
英特尔还预计支持Anaphase的设计将不会局限于x86 CPU。例如,英特尔已经推出了一款48核的片上超级计算机设计,并在基于x86的GPU–Larrabe上进行了测试。英特尔在去年12月展示了 Larrabee,但是之后该项目成了一个没有时间表的计划。
McGregor认为,英特尔可以在Anaphase方面取得一些进展,但是关于它是否会和现有解决方案一样高效的问题现在还不明确。
他说:"专有的RISC系统可以向一个更小的空间内配置更多处理器,但是从系统角度来说,x86更为廉价。最终这将归结于算法和运行效率。"