参考网址:http://blog.sina.com.cn/s/blog_4843d0550100an91.html
多核处理器日益普及,现在的Intel商用处理器,很多都是具有双核、四核的了。许多权威都预测,未来的处理器,很可能是一种众核的处理器,处理器上集成数十个、数百个甚至更多的处理器核心。但是这样一种发展趋势真的能成为广泛应用的主流么?
在“众核发展趋势浅析”http://www.ict.ac.cn/diffusive/channel/detail5647.asp 中,分析了众核处理器的发展趋势。
固然,通过将大量处理器核集成到一个芯片上,能够解决现今处理器设计实现中的许多难题,让摩尔定律持续发展,而且也能够做到TFLOPS级别的处理器。但是,这么多硬件集成到一个芯片内部,如何利用它们、发挥它们的效能,将是软件面临的严峻挑战。
最简单的思想是充分挖掘软件的并行性,让尽可能多的硬件同时“动”起来。但是这个思想是一个理想而已。从向量机到VLIW,每一种处理器体系结构的发展,无不是想利用大量的硬件资源加速软件的执行。但从目前看来,这些问题都没有很好的解决。因此,向量机只适合特定的科学计算任务,而VLIW面临硬件利用率较低的尴尬。同样的问题还会出现在多核、众核处理器上。解决这个问题的一个方法就是多线程,但是如何将传统应用程序多线程化,能“多”到多少线程,仍然是一个棘手的问题。因为传统的程序员都是喜欢串行书写代码的,改变人的思想要比改变处理器的设计难得多,而且还有这么多遗留的应用程序。
另外一个方法就是虚拟化,如果有一天,一种完美的虚拟化计算环境出现了,可以在一个众核甚至异构集群的环境中,很好的虚拟成一个单一的处理器,那真是太好了。程序员可以轻松的书写串行代码,遗留的程序可以在强大的硬件支持、完美的虚拟化环境里快速执行.....但是如何虚拟化?效率如何?还是软件问题。
现在众核处理器出现的原型最多的是在图形图像处理器上,应为许多图形图像处理可以非常好的进行大规模并行计算,这对图形图像处理应用是非常有利的。
另一方面,从硬件的发展角度来看,从CISC到RISC再到VLIW再到多核、众核,硬件的总体发展趋势是简化硬件的控制设计,将更多的硅片贡献给计算引擎。这可以说是硬件设计师逐渐变得懒惰,更依赖于软件设计师,特别是编译、操作系统等系统软件。这不是一个好的趋势。软硬件设计应当更加紧密的结合在一起,合理分工,一同完成计算任务。现在的VLSI技术,可以在一个芯片上集成亿万级别的晶体管,其实硬件可以做更多的事情,而不仅仅是将更多的计算资源“暴露”给编译器。
因此,个人觉得未来的处理器应该从“通用化”向“专用化”甚至“可重构”的方向发展。很可能是一个强大的处理器核与许多“专用”或者“可重构”的处理器一同构成芯片。面向特定应用或者面向特定领域进行加速计算。
另外一些值得关注的硬件体系结构方向,例如Processor In Memory,HTMT等。这些体系结构、芯片发展方向,为解决摩尔定律的问题提示了新的方向。