多核处理器技术应用天地广阔

    不难看出,多核处理器是处理器发展的必然趋势。无论是移动与嵌入式应用、桌面应用还是服务器应用,都将采用多核的架构。 
  
    多核技术 是处理器发展的必然 
  
    近20年来,推动微处理器性能不断提高的因素主要有两个:半导体工艺技术的飞速进步和体系结构的不断发展。半导体工艺技术的每一次进步都为微处理器体系结构的研究提出了新的问题,开辟了新的领域;体系结构的进展又在半导体工艺技术发展的基础上进一步提高了微处理器的性能。这两个因素是相互影响,相互促进的。一般说来, 工艺和电路技术的发展使得处理器性能提高约20倍,体系结构的发展使得处理器性能提高约4倍,编译技术的发展使得处理器性能提高约1.4倍。但是今天,这种规律性的东西却很难维持。多核的出现是技术发展和应用需求的必然产物。这主要基于以下事实: 
  
    1.十亿晶体管时代即将到来 
  
    根据摩尔定律,微处理器的速度以及单片集成度每18个月就会翻一番。经过多年的发展,目前通用微处理器的主频已经突破了4GHz,数据宽度也达到64位。在制造工艺方面也同样以惊人的速度在发展,0.13um工艺的微处理器已经批量生产,90nm工艺以下的下一代微处理器也已问世。照此下去,到2010年左右,芯片上集成的晶体管数目将超过10亿个。因此,体系结构的研究又遇到新的问题:如何有效地利用数目众多的晶体管?国际上针对这个问题的研究方兴未艾。多核通过在一个芯片上集成多个简单的处理器核充分利用这些晶体管资源,发挥其最大的能效。 
  
    2.门延迟逐渐缩短,而全局连线延迟却不断加长
  
    随着VLSI工艺技术的发展,晶体管特征尺寸不断缩小,使得晶体管门延迟不断减少,但互连线延迟却不断变大。当芯片的制造工艺达到0.18微米甚至更小时,线延迟已经超过门延迟,成为限制电路性能提高的主要因素。在这种情况下,由于CMP(单芯片多处理器)的分布式结构中全局信号较少,与集中式结构的超标量处理器结构相比,在克服线延迟影响方面更具优势。
  
    3.符合Pollack规则
  
    按照Pollack规则,我们知道处理器性能的提升与其复杂性的平方根成正比。 如果一个处理器的硬件逻辑提高一倍,至多能提高性能40%,而如果采用两个简单的处理器构成一个相同硬件规模的双核处理器,则可以获得70%~80%的性能提升。同时在面积上也同比缩小。
  
    4.能耗不断增长
  
    随着工艺技术的发展和芯片复杂性的增加,芯片的发热现象日益突出。多核处理器里单个核的速度较慢,处理器消耗较少的能量,产生较少的热量。同时,原来单核处理器里增加的晶体管可用于增加多核处理器的核。在满足性能要求的基础上,多核处理器通过关闭(或降频)一些处理器等低功耗技术,可以有效地降低能耗。
  
    5.设计成本的考虑
  
    随着处理器结构复杂性的不断提高,和人力成本的不断攀升,设计成本随时间呈线性甚至超线性的增长。多核处理器通过处理器IP等的复用,可以极大降低设计的成本。同时模块的验证成本也显著下降。
  
    6.体系结构发展的必然
  
    超标量(Superscalar)结构和超长指令字(VLIW)结构在目前的高性能微处理器中被广泛采用。但是它们的发展都遇到了难以逾越的障碍。Superscalar结构使用多个功能部件同时执行多条指令,实现指令级的并行(Instruction-Level Parallelism,ILP)。但其控制逻辑复杂,实现困难,研究表明,Superscalar结构的ILP一般不超过8。VLIW结构使用多个相同功能部件执行一条超长的指令,但也有两大问题:编译技术支持和二进制兼容问题。
  
    未来的主流应用需要处理器具备同时执行更多条指令的能力,但是从单一线程中已经不太可能提取更多的并行性,主要有以下两个方面的原因:一是不断增加的芯片面积提高了生产成本;二是设计和验证所花费的时间变得更长。在目前的处理器结构上,更复杂化的设计也只能得到有限的性能提高。
  
    对单一控制线程的依赖限制了多数应用可提取的并行性,而主流商业应用,如在线数据库事务处理(Online Database Transaction)与网络服务(如Web服务器)等,一般都具有较高的线程级并行性(TLP,Thread Level Parallelism)。为此,研究人员提出了两种新型体系结构: 单芯片多处理器(CMP)与同时多线程处理器(Simultaneous Multithreading,SMT),这两种体系结构可以充分利用这些应用的指令级并行性和线程级并行性,从而显著提高了这些应用的性能。
  
    从体系结构的角度看,SMT比CMP对处理器资源利用率要高,在克服线延迟影响方面更具优势。CMP相对SMT的最大优势还在于其模块化设计的简洁性。复制简单设计非常容易,指令调度也更加简单。同时SMT中多个线程对共享资源的争用也会影响其性能,而CMP对共享资源的争用要少得多,因此当应用的线程级并行性较高时,CMP性能一般要优于SMT。此外在设计上,更短的芯片连线使CMP比长导线集中式设计的SMT更容易提高芯片的运行频率,从而在一定程度上起到性能优化的效果。
  
    总之,单芯片多处理器通过在一个芯片上集成多个微处理器核心来提高程序的并行性。每个微处理器核心实质上都是一个相对简单的单线程微处理器或者比较简单的多线程微处理器,这样多个微处理器核心就可以并行地执行程序代码,因而具有了较高的线程级并行性。由于CMP采用了相对简单的微处理器作为处理器核心,使得CMP具有高主频、设计和验证周期短、控制逻辑简单、扩展性好、易于实现、功耗低、通信延迟低等优点。此外,CMP还能充分利用不同应用的指令级并行和线程级并行,具有较高线程级并行性的应用如商业应用等可以很好地利用这种结构来提高性能。目前单芯片多处理器已经成为处理器体系结构发展的一个重要趋势。
   
    多核处理器的特点

    按共享Cache的层次可以把单芯片多处理器的结构主要分为三类:共享一级Cache、共享二级Cache、共享主存。这种分类方式侧重于存储层次的组织和微处理器在哪一层次上相




连接。

在共享一级Cache的单芯片多处理器结构中,一级Cache由多个处理器所共享,也就是微处理器在一级Cache这个层次上相连接。在共享二级Cache的结构中,每个微处理器拥有独立的一级Cache,二级Cache由多个微处理器所共享,即微处理器在二级Cache这个层次上相连。在共享主存的结构中,每个微处理器既拥有独立的一级Cache,还拥有独立的二级Cache,或者存储系统中不设Cache,主存由多个微处理器所共享,即微处理器在主存这个层次上相连接。共享主存结构与一般基于总线共享主存的多处理机的结构相类似。

    应用程序的通信量可分为:通信量大的、通信量中等的、通信量小的三种。对于通信量大的程序,共享一级Cache结构的性能要明显优于其他两种结构。对于通信量中等的程序,共享一级Cache结构的性能要比其他结构好10%。对于通信量较小的程序,共享一级Cache结构的性能与其他两种结构的差不多。但是共享一级Cache结构的设计较为复杂,处理器之间的耦合度比较高,在处理器数目增加时可扩展性较差。

    如果按照单芯片多处理器上的处理器是否相同,可以分为同构CMP和异构CMP,国外推出的一个多核CPU??Hydra是同构CMP,同构CMP大多数由通用的处理器组成,多个处理器执行相同或者类似的任务。异构CMP除含有通用处理器作为控制、通用计算之外,多集成DSP、ASIC、媒体处理器、VLIW处理器等针对特定的应用提高计算的性能。Cell处理器就是异构CMP的一个例子。

多核处理器主要具有以下几个显著的优点:

● 控制逻辑简单:相对超标量微处理器结构和超长指令字结构而言,单芯片多处理器结构的控制逻辑复杂性要明显低很多。相应的单芯片多处理器的硬件实现必然要简单得多。

● 高主频:由于单芯片多处理器结构的控制逻辑相对简单,包含极少的全局信号,因此线延迟对其影响比较小,因此,在同等工艺条件下,单芯片多处理器的硬件实现要获得比超标量微处理器和超长指令字微处理器更高的工作频率。

● 低通信延迟:由于多个处理器集成在一块芯片上,且采用共享Cache或者内存的方式,多线程的通信延迟会明显降低,这样也对存储系统提出了更高的要求。

● 低功耗:通过动态调节电压/频率、负载优化分布等,可有效降低CMP功耗。

● 设计和验证周期短:微处理器厂商一般采用现有的成熟单核处理器作为处理器核心,从而可缩短设计和验证周期,节省研发成本。
   
    多核处理器的关键技术


    简单地说,多核处理器研究方向主要集中在下面几个方向上:

● CMP的体系结构:针对单芯片多处理器的几个显著优点,如控制逻辑简单、高主频,低通信延迟等,如何设计




单芯片多处理器的体系结构,以充分发挥其独特优势,是首先要研究的重要问题。此外还要考虑单芯片多处理器能否与其他结构,如超标量结构,多线程结构等相互取长补短,以求得性能的提高。

● 芯片面积的分配模型:建立一个芯片面积的分配模型,将处理器的数目和Cache的容量作为可调的参数,进行性能模拟,以获取比较好的解决方案。往往相同的芯片面积,不同的分配方案之间存在很大的性能差异,同时功耗也会有很大差异。

● 设计空间的探索:其实异构将是多核发展的重要方向。根据应用的需求,研究多核的构成粒度、数量等等问题。

● Cache的结构:在计算机体系结构的发展史上,Cache一直扮演着非常重要的角色。共享Cache或独有Cache孰优孰劣,需不需要在一块芯片上建立多级Cache,这些都是很值得探讨的问题。单芯片多处理器结构中,如果存在多个Cache必然涉及到Cache一致性的问题。传统的Cache一致协议在单芯片多处理器中不一定高效,因此,在传统经典协议的基础上,能不能设计出针对单芯片多处理器新的Cache一致性协议,并保证协议的正确性也是一个重要的研究方向。

● 高速通信机制:高速通信机制对于单芯片多处理器性能的影响不言而喻。高速通信机制用来支持多个进程或线程在芯片上运行,支持它们之间的数据通信。另外,高速通信机制还支持多个处理器间的同步。需要注意的是,在这种通信机制中可能存在冲突问题,需要仲裁机制来解决这个问题。目前对于片上互连网络的研究主要就是为了解决这个问题。

● 编译技术的支持:编译技术如何利用单芯片多处理器结构的并行计算能力和高度通信机制,也就是如何充分发挥单芯片多处理器的结构优势,这是一个比较关键的问题。因此,编译技术的好坏对一个程序的执行速度影响是非常大的。通过编译技术的支持来发挥单芯片多处理器的高性能是非常重要的途径,其关键是发掘程序中所蕴含的并行性。

● 任务调度:任务调度的本质是一个资源分配问题,也就是说,多个任务如何分配到处理器资源上去,以尽量提高资源的利用率,实现多个处理器之间的动态负载平衡。还有一些相关问题也值得进一步研究,包括单芯片多处理器结构在什么样的负载下有比较好的性能,不同的单芯片多处理器结构在不同的负载下性能又如何等。

    总的来说,多核处理器的硬件结构不是十分复杂,多核的研究焦点还在于多核的软件支持和多核处理器的带宽问题。

    随着构成多核处理器核心数目的不断扩大,为了多核计算机系统性能的提高和可靠性的增长需求,研究开发新型软件编程模型的工作显得格外重要。在目前情况下,多核应用开发工具和平台的研发尤为迫切。这主要包括:智能的优化编译器、程序调试工具、性能监测和调协工具、并行编程环境、能耗调度问题等等。

    多核处理器的未来发展

    应用需求的不断提高是计算机发展的根本动力。换句话说,即使计算机不断地快速发展和进步,它也永远满足不了无休止的应用的需求。如目前的服务器应用,要求高的吞吐率和在多处理器上的多线程应用;Internet的应用、P2P和普适计算的应用都促使了计算机性能的不断提升。“以人为本”的计算需求,协同的工作模式是现代应用的显著特点。对于单处理器性能而言,过去是每1.5年提高2倍。而目前是每5年提高2倍。从计算机系统结构角度上看,多核处理器的出现也是大势所趋!而多核技术的不断进步也促进了个人电脑、高性能计算机和服务器的不断发展进步。

    从计算机技术发展来看,在20世纪90年代初期,大型主机、小型计算机和工组站技术不断应用于个人计算机上,如超标量技术、绘图技术等;同时在消费类电子上也采用了RISC等技术。到20世纪90年代后期,随着个人计算机的不断发展和普及,PC技术(如IO技术、用户接口技术、存储系统与设备)在不断应用于消费类电子上的同时,也促进了高性能计算机、服务器系统的不断进步,如集群计算技术、IO技术、RAID技术等在这些系统中的普遍应用。而如今,随着音视频技术从模拟信号到数字信号的转变,以人为本的应用理念和协同交互的实时需求等消费类电子应用需求对处理器性能提出了更高的要求。如IBM的Cell处理器,这个代表当今计算机体系结构最高水平的处理器,就是为了满足Sony Playstation 游戏机等消费类电子应用而诞生的。其异构的多核架构、实时处理技术、高速并行数据传输技术、并行编译技术必将在个人计算机和高性能计算机、服务器上得以应用,进而实现以消费类电子为主导的处理器技术的不断进步!

    不难看出,多核处理器是处理器发展的必然趋势。无论是移动/嵌入式应用、桌面应用还是服务器应用,都将采用多核的架构。 正如著名计算机体系结构专家、美国U.C.Berkeley 大学David A. Partterson教授指出的那样,未来的计算机系统硬件和软件功能特点将会发生180度转弯:计算机硬件将是灵活的、可重构的,而软件则是难于改变或者说相对固定的,这也是由于计算机软硬件技术的发展和成本等因素造成的。未来的多核处理器芯片将包含很多通用的处理器核,每个处理器核运行2~4个线程。同时芯片中包含成千个异构可编程加速器,用于媒体加速等特殊处理。同时也满足可重构的要求。

    从目前来看,一些桌面应用尚不支持多线程、价格相对偏高和应用开发工具的不成熟,还在一定程度上限制多核处理器的推广。随着应用需求的扩大和技术的不断进步,多核必将展示出其强大的性能优势。

链接:塔式、机架式和刀片式服务器

    人们经常按塔式、机架式和刀片式这三种结构来划分服务器,服务器的外形为什么会有这样的划分呢?主要原因就是具体的应用环境不同,塔式服务器长得跟我们平时用的台式机一样,占用空间比较大,一般是一些小型企业自己使用自己维护;而机架式服务器长得就像卧着的台式机,可以一台一台地放到固定机架上,因此而得名,它可以拿到专业的服务器托管商那里进行托管,这样每年只需支付一定的托管费,就免去了自己管理服务器的诸多不便;而刀片服务器是近几年才比较流行的一种服务器架构,它非常薄,可以一片一片地叠放在机柜上,通过群集技术进行协同运算,能够处理大量的任务,特别适合分布式服务,如作为Web服务器。