多核处理器:计算方式的革命
多核处理器的出现实际上是一次计算方式的革命。国外有些专家说,大家的免费午餐没有了(Free Lunch is Over!),我们不得不面对并发和并行操作这些通常是并行计算的专业人员和高端用户才需要面对的问题。对于从事IT的人来说,摩尔定律一直是一个圣经,当然对存储和价格来说目前它仍然成立,但对处理器性能来说,目前我们只能用多核的方式让它继续沿着摩尔定律上升。散热和漏电是两个迫使我们不得不转向多核处理的深层次的工业原因,工业界在2006年突然要面临一个拐点,从单核向多核处理器急速拐弯,这是大部分人甚至处理器制造商都没有预料到的,至少没想到出现的这么快。
传统提高处理器性能的方法,一个是通过缩小线宽,不断提高主频,12年里从60MHz提高到了3.8GHZ。第二条途径是运行时优化,通过采用功能更强大的指令,流水处理、分枝预测、多指令并行和指令重排序等来实现。第三条途径是通过不断增大Cache的容量来实现。
实际上这也是一个不断寻求更高性能手段的发展历程,多核的出现也是其中的一个阶段。就如同流水线、多级Cache等刚被引入处理器设计中,受到很大的抵制一样,多核的引入初期,肯定也不会很快被接受。但相信通过一段时间的适应,以及工业界和科研界的努力,多核也会最终成为未来处理器的标准配制,大家逐渐习以为常。多核的引入实际上增加了一个新的处理器设计自由度,在给体系结构设计带来更多灵活性的同时,当然也给用户带来了很多的复杂性。
当前各个主流处理器厂商都推出了自己的多核产品,八核的,甚至更多核的产品也已或即将出现。 英特尔公司2006年底抢先推出了自己的四核产品,AMD公司也会在2007年推出自己的四核产品。实际上,不同的多核处理器可以有不同的生产工艺,有的是在一片硅片上同时造出两个紧邻的紧耦合的核来,有的是把两个分离的核封装在一个芯片里。这里面涉及生产工艺复杂性和提高成品率,降低成本,缩短生产周期等方面的问题,所以会有不同的制造选项。
多核处理器的高速Cache层次比较复杂,其中有每个核私有的L1 Cache,有多个核共享或私有的L2 Cache,甚至更多的核共享的L3 Cache。这就导致不同的核访问不同位置Cache的速度和延迟不同,出现NUCA的现象(非一致Cache访问)。NUCA也是目前学术界研究的课题之一。
现在才不过几个核,大家还不必太害怕,将来我们可能会面临几百个核,简直是核的海洋,这种情况甚至连搞并行计算的专家都感到害怕和麻烦。一个机器里那么多核,怎么去很好的利用?这肯定是大家首先冒出来的一个问题。本来并行计算就很难了,再放那么多核就更困难了。
其实90年代末就已经有人在做多核处理器的研究,其思路是把功能简单的处理器用网络连接起来,互相协作来解决延迟的问题。比较早的是RAW处理器,由美国MIT大学开发,是我们目前称为Tile结构处理器的先驱(http://cag-www.lcs.mit.edu/raw)。
![]() |
图 RAW处理器的原型芯片外观

图RAW处理器的互联网络重构
现在比较热的一个Tile结构处理器研究项目叫TRIPS,其目标是实现单处理器一个周期达到万亿次操作且可靠、智能自适应的目标,是由美国DARPA的多态计算体系结构项目从2000年开始资助Texas大学的Austin分校2000万美元开展的一个研究项目,整个项目由30名研究人员(含研究生)组成。但Trips所采用的体系结构与传统的冯-诺依曼体系有所不同,不是目前流行的指令流驱动,而是数据流驱动(显示数据图执行EDGE),以数据的到达作为指令执行的触发标志,而不是根据用户或编译器预先规定好的指令顺序来执行。该处理器每周期可以调度一个包含128条指令的指令块映射到执行单元的网格上执行,且可以通过多态重组合的功能挖掘包括指令级并行、线程并行和数据并行等多层次的并行,从而适应不同的应用需求。该处理器2006年已经推出原型系统,是目前比较被看好的未来处理器的一个发展方向。
![]() |
TRIPS处理器原型系统
![]() |
TRIPS处理器芯片布局