从多核到众核处理器( 三 )


斯坦福的Hydra处理器是最早提出的片上多核处理器 。Hydra发明后成立了一家公司,然后这个公司被SUN公司购买(后来SUN又被Oracle买了,不过那是后话),Hydra也就成为了现在SUN主流处理器Niagara的原型 。不仅如此,现在Intel的双核、四核处理器也是采用了和Hydra类似的结构 。Hydra的出发点也就是看到了多发射超标量处理器架构的末日,然后将多个简单的处理器核集成在了一个芯片上,互连方式还是最简单的总线互连,每个处理器通过总线广播的方式发送信息,也通过总线侦听来接受其他处理器 。这种方法设计简单、有效,可以重用复杂的处理器设计,并且借用版级总线设计的协议,是一种多核发展初级阶段的重要一步 。下图就是Hydra的示意图,可以看到这其实就是一个集成在片上的总线带动的多处理器 。这种结构的发展也有不同的阶段和变体:最初只有处理器核、总线和缓存集成在片上;后来存储和I/O控制器也集成了进到片上来;图中的总线之下的L2缓存有时候也会被放在总线与处理器之间;片上与片外的连接也不一定要是处理器与存储器的接口,而可以成为两个或多个多核处理器的接口 。Hydra引领的以总线为主的片上多核设计方案也成为了工业界第一代双核甚至四核处理器设计的雏形 。

从多核到众核处理器

文章插图
 
最早的双核处理器以及Intel的第一代四核处理器都是这种设计 。总线可以替换为交换开关,来实现类似的功能 。如下图所示的是SUN在2007年推出的八核Niagara 2,其互连结构就是交换开关 。
从多核到众核处理器

文章插图
 
这种结构有以下这些特点:
• 从存储器读写的角度来讲这种设计统称为UMA(Uniform Memory Access) 。每个处理器核访问存储的路径都是一样的,总线(或者交换开关)被不同的处理器核交替使用从而达到访问共享存储的目的 。这种存储访问结构自然地支持了内存空间在各个处理器核之间共享已经基于总线侦听的缓存一致性协议 。
• 各个处理器核类似于传统的单核处理器,具有较为强大的计算功能,只是作了一些裁剪来优化功耗等要素 。也就是说,就算单线程应用程序没有任何改变,也能在新的多核处理器上运行,性能有可能有所提高 。
• 从编程上来讲类似于传统的多处理器编程,再加上内存空间共享,并控制了多线程编程的复杂度 。比如说,像Linux之类的操作系统很早就支持多处理器,可以无缝地在多核处理器上运行,并从容地调配多个应用程序进程 。其实,最早多核处理器的性能提升大部分就来自于应用程序能够各自独享一个核所带来的独占优势
从多核到众核处理器

文章插图
 
这种结构的明显劣势来自于总线或者交换开关成为系统瓶颈,这个瓶颈体现在系统性能和功耗两个方面:从系统性能上来讲这种体系结构的核心:总线或者交换开关仍旧依赖全局金属互联线,其性能并不能随着半导体技术进步而提高 。这种全局性地互连要求所有的通信都先汇聚到同一个地方然后又再传播出去,其效率之低也是可想而知的 。从延迟上讲,电信号需要给长达整个芯片边长的金属线充电,其电阻电容很大,充电时间很长,因此信号延迟很大;从吞吐率上来讲,所有的信号传输都要通过这个总线或者交换开关,其带宽是无法适应处理器核数量的增长的 。同样的坏消息来自于功耗 。无论是连接多个核的总线还是四通八达的交换开关,其功耗都不是可以扩展的 。上述的不可扩展性决定了,基于片上总线或者交换开关的体系结构终究不能支持片上多核随着摩尔定律而扩展到片上众核,人们不得不放弃这种简单的结构而选择流处理器或者片上网络等较为复杂的体系结构 。
Hydra的故事虽然简单,但是却发生在1996,可以说在那个年代是极其具有前瞻性的 。一句题外话,在那个年代,ISCA(International Symposium on Computer Architecture,计算机体系结构最牛的学术会议 )还基本上是Cache Architecture的天下,所有的体系结构研究者还在考虑怎么样提高单核的性能 。反观今日,当世界上所有人都在讨论多核的时候,我们是不是应该前瞻性地考虑一下下一个热点是什么呢?
流处理器以及GPGPU(通用图形处理器)
流处理器以及GPGPU代表的路径是完全绕开了传统处理器设计而针对新的应用借鉴其他专用处理器(GPU)而展开的全新设计 。具体地讲,Hydra面对的应用还是超标量处理器所面对的传统应用,大量的程序循环和跳转,不规则的内存地址访问 。而随着计算技术不断升入到人们的生活当中,另一种计算模式异军凸显,这就是大规模的数据并行计算模式 。比较通俗一点的应用就是图像和视频的处理以及综合,比如视频的编解码,动画的合成等 。在数字通讯的年代这种计算越发重要,像无线基站或者手机上各种通讯协议栈的处理 。在单核的年代,进行这种计算的处理器叫DSP(Digital Signal Processor),以有别于CPU这种擅长控制和跳转的处理器 。DSP的结构与普通的CPU的超标量结构不同,大量采用了SIMD(Single Instruction Multiple Data)或者VLIW(Very Long Instruction word)的结构,以实现在同一个处理器流程通路下的数据乃至指令的并行 。那么就像Hydra是超标量CPU在多核时代的领头羊一样,斯坦福这个信息工业的圣地也诞生了DSP在多核时代的领头羊Imagine 。


推荐阅读