ylynzy 发表于: 2006-12-09 15:50 来源: 半导体技术天地
一、概述
内核(Core)是指位于处理器芯片中间、包含指令集和执行这些指令的逻辑电路的处理单元。它是微处理器的最重要组成部分。内核结合系统外围,例如缓存、内存管理单元、执行单元、指令级单元、定时器以及I/O端口等组成完整的处理器。当今各种嵌入设备的普及加速对更多功能、线程级并行性的需求,服务器面对更大的网络密度以及各种网络复杂应用(例如邮件、文档、数据库、VoIP通信等)的处理请求,PC系统需加载多项“背景任务”、3D图像与多媒体应用的增加等,这些都要求处理器具备更高性能的处理能力。
随著IC技术的发展,晶体管集成度也不断得到提高。据2005年ITRS(国际半导体技术路线)预测,目前单芯片已可集成11亿个晶体管。因此,单芯片可以具备更多的功能。而如何同时为处理器内的越来越多的功能部件提供足够的指令和数据,以使执行部件尽可能流畅地工作,从而获得较高性能和稳定度,则是业界设计的一大挑战。
通过不断提高处理器频率提升系统性能似乎即将成为过去式。在传统的单核处理器中,提高性能主要通过提高频率和增大缓存来实现,导致功耗与成本的增加;而单核处理器在付出高代价的同时,也只换来微弱性能的提高。微处理器工作时,内核的温度一般都达上百度,芯片表面温度也有几十度。而温度一旦过高或是散热性不好时,就会造成微处理器运行不正常甚至烧毁。目前,大多数主流微处理器都采用90nm制程。而90nm工艺器件的漏电流功耗占到总功耗的一半以上,加上晶体管数目的增加使得微处理器功耗和发热量的不断攀升,带来系统成本、散热、稳定性等一系列问题。单核处理器的频率发展到了极限已是业界的共识。况且,即使处理器频率可继续得到一定程度的发展,存储器发展缓慢的现状也只会使两者差距越拉越大,终不利于系统性能的提高。
业界把微处理器性能提升寄托在能进行并行处理的多核处理器上。有业者甚至认为多核处理器是在当前功耗前提下提升性能的唯一途径。单芯片多内核处理器(Chip Multi-Processor)或多核处理器,是指可以在单个芯片封装中包含两个甚至多个“执行内核”或运算单元的微处理器。操作系统将每个执行内核视作具有所有相关执行资源的独立处理器。利用多内核技术可以在较低频率、较小缓存的条件下大幅提高性能。相对大缓存的单核处理器而言,同样数量晶体管的多核处理器可拥有更出色的性能,而在性能功耗比方面,多核处理器同样具备明显的优势。围绕多核的技术问题成为当前微处理器领域研究和讨论的重点。为使读者更好了解多核处理器,下文将介绍与微处理器发展相关的各方面内容。
二、提高处理器性能的模式
设计师们在过去采用了许多提高处理器的性能的方法,这些方法都是基于提高处理器的指令级并行性(Instruction Level Parallelism,ILP)和线程级并行性(Thread Level Parallelism,TLP)进行的。首先,我们了解流水线(Pipeline)和多线程(Multithread)任务处理的概念及其相关内容。
指令的并行执行—流水线
![微处理器走进多内核时代_第1张图片](http://img.e-com-net.com/image/info5/687bbddd283b406e97d2f712eb0ca596.jpg)
图1.jpg
图1∶按次序逐条执行的指令
程序指令是被处理器逐条执行的麽?类似这样的排队机理,人们固然易于理解,但事实并非如此。从上世纪70年代开始,业界一直在为提高微处理器的指令级并行性(ILP)而不懈地努力。到80年代中期,处理器程序指令就不再是逐条执行的了,而是几个指令同时在所谓的“流水线(Pipeline)”里被(局部地)并行处理,以提高性能。
![微处理器走进多内核时代_第2张图片](http://img.e-com-net.com/image/info5/ec03977caa3646aa8946f5d943bb99ec.jpg)
图2.jpg
图2∶在流水线里,指令能被并行处理
指令的处理通常可分为四个步骤∶提取、解码、执行和写入。这四个过程好比是车间装配线上的A、B、C、D四个工序岗位。如果经过四个工序产生一个产品後,才轮到下一个产品进入第一工序的话,就意味著同一时间有三个岗位的工人是闲置的。这样的效率显然非常低。如果车间采取流水线式装配,即四个岗位的工人在同一时间对多个产品进行不同部件的装配,当前工人完成产品装配即把产品传给下一工序的工人进行装配,而同时接过进行过上一工序装配的产品进行当前工序装配工作。由于同一时刻工人没有处于闲置状态,生产效率将得到明显的提高。同样道理,处理器在同一时间内对不同的指令进行提取、解码、执行或写入作流水线式处理,则在某一长度的单位时间内,流水线式执行的指令肯定比逐条执行的指令数多。如果单指令处理的总周期不变,则处理器的性能得到了极大的提升。(见图2)
若将指令处理的四个步骤再细分成很多个段,使流水线成为一个深度流水线(Deeper Pipeline)或称超级流水线(Super Pipeline),进而增加单位时间内执行的指令数,同样也可提升处理器的整体性能。(见图3)
![微处理器走进多内核时代_第3张图片](http://img.e-com-net.com/image/info5/95cf29daef70470991f1b1906024f08b.jpg)
图3.jpg
图3∶细分多级的深度流水线增加了单位时间内执行的指令数
多发射处理器(Multiple Issue Processor)包括超标量处理器(Super Scalar Processor)和超长指令字(Very Long Instruction Word,VLIW)处理器,其思想是允许在一个时钟周期内发射多个操作执行以减少处理器的CPI(Cycle per Instruction,平均指令周期),更好地利用处理器的功能部件。提高多发射处理器资源利用率的关键问题是∶如何在程序中找到足够的指令级并行性。
超标量处理器在单个时钟周期内可以发射执行多条指令。(见图4)为了使多条指令可以并行执行,超标量处理器一般具有多个功能部件,如多个定点运算部件、浮点运算部件和Load/Store部件等。几乎所有现代的RISC和CISC微处理器都是一个深度流水线+超标量的处理器,但人们一般习惯将它们简称为超标量处理器。
![微处理器走进多内核时代_第4张图片](http://img.e-com-net.com/image/info5/c6abfbb992bb422fb4ac881f5da39d2c.jpg)
图4.jpg
图4∶超标量处理器同时发射多条指令,提高指令执行的并行性
![微处理器走进多内核时代_第5张图片](http://img.e-com-net.com/image/info5/3a37ad8d4e7743958e65c18707c73382.jpg)
图5.jpg
图5∶超标量+超深度流水线处理器
![微处理器走进多内核时代_第6张图片](http://img.e-com-net.com/image/info5/c667736723af41adb16ea02849c8290d.jpg)
图6.jpg
图6∶单线程的超标量处理器中出现垂直/水平浪费的机率比多线程处理器的多(横-指令时钟周期)
超标量处理器提升性能的关键在于通过硬件本身尽可能多地从应用中寻找指令级并行性。但它只能发掘单线程的指令级并行性来提高对微处理器资源的利用率,因此对具有较高线程级并行性且较低指令级并行性的商业应用,无法体现其性能优势。当超标量处理器无法在某个时钟周期找到足够的指令级并行性,那麽它就不能在这个周期填满全部指令发射槽,这样就造成了所谓的“水平浪费”(Horizontal Waste);如果超标量处理器由于缓存未命中或访问内存延迟而造成随後某些时钟周期中出现空置的指令发射槽,这样就造成了所谓的“垂直浪费”(Vertical Waste)。(见图6)
![微处理器走进多内核时代_第7张图片](http://img.e-com-net.com/image/info5/23922160cc8a4c769f3113889222588e.gif)
图7.gif
图7∶VLIW通过编译器来寻找ILP,可同时发射由多条微指令组合而成的超长指令
VLIW也是一种可以在单时钟周期内发射多条指令的处理器。与超标量处理器不同,它主要是通过编译器来寻找指令级并行性,然後编码成一条可同时发射的多条微指令组合而成的超长指令。与超标量处理器一样,超长指令字处理器也无法避免垂直浪费和水平浪费的产生。
超标量处理器是依赖硬件来发现指令级并行性,而VLIW处理器则依赖编译器来发现ILP。但它们只能应付单线程的指令级平行性来提高资源利用率,面对需要并行处理的多个独立应用,人们开始考虑利用线程级并行性来提高处理器资源利用率的体系结构。
任务的并行执行—多线程技术
现代先进的多线程(Multi-Thread)、同时多线程(Simultaneous Multi-Threading,SMT)和单芯片多内核处理器架构都是利用线程级并行性提高处理器资源利用率。线程是操作系统分配处理器时间的基本单元,它和进程是有区别的。进程一般指正在运行的程序,它具备独立的虚拟地址空间;一个进程中可以有多个线程同时执行代码。线程则没有单独的虚拟地址空间,而工作在父进程里面的线程可同时访问进程的所有资源。
![微处理器走进多内核时代_第8张图片](http://img.e-com-net.com/image/info5/c77c36fd0eda437e9d10958da33c416e.gif)
图8.gif
图8∶单线程与单核多线程
多线程处理器(MT)
多线程处理器的目的是减少延迟事件对处理器效率的影响,例如减少缓存不命中和执行时间长的指令对处理器效率的影响。多线程处理器通常为每个线程维护独立的处理器状态,包括寄存器与程序计数器(Program Counter)。因为能够快速地切换线程上下文,所以多线程处理器能在每个时钟周期发射一个独立线程的指令。多线程处理器又分为细粒度多线程(Fine-grained Multithreading)和粗粒度多线程(Coarse-grained Multithreading) 处理器。细粒度多线程处理器在每个时钟周期都进行线程上下文切换;粗粒度多线程处理器是在遇到延迟事件(缓存缺失或访存事件)时才进行线程上下文切换,否则将一直执行同一个线程的指令。由于存在多个独立的线程上下文可供提取指令,在遇到延迟事件时,多线程处理器将线程迅速切换去执行另一部分程序代码,从而减少了垂直浪费。(见图6)
同时多线程处理器(SMT)
尽管多发射处理器在一个时钟周期内能执行多条指令,但是当在一个时钟周期内不能找到足够的并行指令时,多发射处理器效率会下降。多线程处理器可以克服延迟事件和资源冲突所带来的限制,但是多个线程还是可能无法在一个时钟周期内同时使用指令发射槽,水平浪费仍然不可避免。SMT处理器在超标量处理器上增加了一些硬件,通过从多个活跃线程中动态选择与执行指令流,允许在单时钟周期内发射多个线程的多条指令,因而能够更好地利用处理器资源。
SMT结合了超标量和多线程处理器的特点,所以同时减少了水平浪费和垂直浪费。(见图6)首先,SMT允许在一个时钟周期内执行来自不同线程的多条指令,因此在单时钟周期内,其能够同时利用程序的线程级并行性和指令级并行性来消除水平浪费,提高处理器发射槽以及功能部件的利用率。其次,SMT允许任何活动线程的组合来发射指令,所以当由于延迟事件或者资源冲突导致只有一个活动线程时,该线程能够使用所有可获得的发射槽;这使得可以通过使用其他线程的未阻塞指令来消除垂直浪费。
英特尔版本的多线程叫做“超线程”(Hyper Threading)技术,它采用的是双线程上下文的SMT结构。超线程技术为物理处理器设置了两个架构状态接口,从而使操作系统等软件将其识别为两个逻辑处理器。
虽然支持超线程的英特尔P4处理器能同时执行两个线程,但逻辑处理器只维护各自的体系结构状态,包括通用和控制寄存器、高级可编程中断控制器(Advanced Programmable Interrupt Controller, APIC)的寄存器和状态寄存器。而超线程中的两个逻辑处理器并没有独立的执行单元、整数单元、缓存、控制逻辑以及总线等。逻辑处理器在运行过程中仍需要共享物理处理器上的这些资源。因此,在执行多线程时超线程的两个逻辑处理器是交替工作的。如果两个线程同时需要某个资源时,其中一个要暂停并让出资源,等待资源闲置时才能继续工作。因此,超线程技术所带来的性能提升远不能等同于两个相同时钟频率处理器带来的性能提升。可以说英特尔的超线程技术仅可以看做是对单个处理器运算资源的优化利用。
![微处理器走进多内核时代_第9张图片](http://img.e-com-net.com/image/info5/63a762ac2c514b0fa2b7bfa538e7c79e.gif)
图9.gif
图9∶多核处理器在不同的内核上处理多线程
单芯片多核处理器(CMP)
多核处理器则不是通过软件识别多处理器,而是在矽晶片(Die)上整合多个处理器内核,并通过并行总线将各内核连接起来,可同时执行多项任务。多核处理器的每个核心拥有独立的指令集、执行单元,与多线程技术中所采用的模拟共享机制完全不一样。多核处理器提高吞吐率和并行计算能力,利用线程应用缩短装载时间并提高应用性能,改善同时对多个用户、以及不断扩展的多任务处理要求的应用响应能力。根据芯片上集成的多个微处理器核心相同与否,可将多核处理器分为同构CMP和异构CMP。同构CMP大多数由通用的处理器组成,多个处理器执行相同或者类似的任务。异构CMP除含有通用处理器作为控制、通用计算之外,多集成DSP、ASIC、媒体处理器、VLIW处理器等针对特定的应用提高计算的性能。
多核,抑或SMT?
SMT与CMP都是通过利用程序中的TLP来提高程序性能与系统吞吐率。而SMT的设计更加灵活。因为当程序中的并行性在执行过程中动态变化时,SMT相对CMP具有性能优势。SMT通过在执行过程中增加或减少线程个数,可实现资源的最大化利用。而CMP在运行某些线程并行性较低的应用时,有可能出现资源利用率低的问题。
CMP相对SMT的优势在于其模块化设计的简洁性。CMP的复制简单因此设计起来非常容易,指令调度也更加简单。同时,像上述的英特尔超线程一样,所有SMT中的多个线程都会对共享资源进行竞争而影响其性能,CMP则对共享资源的竞争要少得多。因此,当应用的线程级并行性较高时,CMP性能一般要优于SMT。
同时,随著VLSI工艺技术的发展,晶体管特徵尺寸不断缩小,这使得晶体管门延迟不断减少,但互连线延迟却不断变大。当芯片的特徵尺寸减小到0.18um甚至更小时,线延迟已经超过门延迟,成为阻碍处理器性能提高的主要障碍。未来微处理器设计的趋势是采用功能分布的方法来减少线延迟,而SMT的集中式指令发射使其复杂化而不利于实现功能分布。在克服线延迟影响方面,CMP的分布式设计要明显优于SMT的集中式设计。
多核微处理器正对处理器内核本身的体系结构产生影响。随著多核结构的普及,将不断开发实现几个处理器内核并行工作的分割为线程的软件,并建立相应的开发环境。而且,和多核微处理器一样,采用SMT技术的单核微处理器的开发将加速推进。随著SMT技术的逐步成熟,多核与SMT的融合也是微处理器发展的一个趋势。
三、多核处理器的发展状况
x86处理器是微型计算机的主角,而高端服务器和嵌入式系统领域却是RISC处理器的天下。AMD和英特尔的CPU知名度高,因为在电脑配件市场,一般人都可以很容易接触到这些普遍用于PC的x86处理器。但却很少有人关心用于手机、游戏机等嵌入系统中的RISC处理器到底是怎麽回事,而对高端服务器中的RISC更是远离一般人。
事实上,RISC处理器的性能和技术创新远超x86产品。几乎所有先进的设计技术都是首先出现在RISC领域,然後才被x86产品所借鉴。换句话说,RISC处理器领域的每一次技术创新都会对x86产品产生重大深远的影响。
CMP技术最初出现在上世纪的九十年代末。那时候,许多微处理器领域的研究者都倡议使用CMP来替代复杂性较高的单线程处理器。到了2001年,IBM推出了第一款CMP架构的微处理器—双核Power 4用于IBM的RISC服务器之中。之後,几乎所有的RISC处理器都实现了从单核向多核的技术革新,而x86处理器厂商也在近几年年积极跟进,并在多种场合发出坚决走多核路线的决心。目前商用CMP处理器已经有不少,如用在服务器端的IBM Power4/5和SUN Niagara架构处理器,网络与高端嵌入应用的Broadcom SiByte系列,面向PC的AMD Opteron64 x2等。
IBM∶多核先驱
2001年IBM推出的Power4处理器包含了两个处理核心,它采用0.18mm工艺与SOI绝缘矽技术,运行频率为1.3GHz,集成了1.74亿个晶体管,芯片面积为415m2,每个处理器核心拥有64KB一级指令缓存与32KB一级数据缓存,两个核心共享三个512KB 的二级缓存,第三级缓存采用eDRAM内存,容量从32MB到128MB。Power4是第一款集成了处理器模块间高速Fabric光纤接口控制器的处理器,处理器模块之间带宽高达35GB/s。此外,Power4支持MCM多芯片封装技术,四个Power4处理器可以直接整合成一颗大小为85mm×85mm,引脚数多达5184的巨型芯片。
![微处理器走进多内核时代_第10张图片](http://img.e-com-net.com/image/info5/1a151982131c4bd0b4e446ff8d20c036.jpg)
图10.gif
图10∶IBM Power5服务器处理器包含8个内核,并支持SMT
Power5包括4颗95×95mm的 MCM芯片,每颗芯片包括2个核心。每个核心拥有64KB的一级指令缓存与32KB的一级数据缓存,二级缓存还是由三个模块组成,但每个模块的容量增加到了640KB。片外三级缓存的容量最小为36MB,通过MCM封装在同一个处理器模块内。Power5将通用与浮点缓存器的数目从80组增加到120组。此外,改进了如指令预取缓冲、指令执行状态保留站及地址转换表等单元,以便对SMT进行支持。此外,Power5内置了内存控制器,支持最大1024GB容量内存。在制作工艺上Power5采用了0.13微米工艺制造,并且是采用了基于8层铜互连技术的SOI工艺。
2001年3月,IBM、索尼和东芝建立STI联盟,著手开发一种全新的计算机体系结构Cell处理器,旨在提供比目前使用了复杂技术的RISC/CISC处理器高得多的效率来处理下一代宽带多媒体与图形应用,同时还具备RISC/CISC处理器无法比拟的功耗效率。
在2005年ISSCC(国际固体电路会议)上,IBM首次公布了有关Cell处理器的一些细节。它采取了与现在的主流处理器结构完全不同的设计,由一个Power结构的处理器核心(PPE,Power Processor Element)和8个辅助处理器(SPE,Synergistic Processor Element)组成,属于异构CMP。图11是Cell处理器的结构示意图。处理器核心之间通过单元互连总线(EIB,Element Interconnect Bus)相连。Cell原型芯片的面积为221m2,共集成了2.34亿个晶体管。Cell处理器采用90nm绝缘矽SOI 工艺,整个芯片的时钟频率为4.6GHz,核心电压1.3V,预计整个芯片的功耗为50~80W。Cell处理器的理论浮点运算峰值为256Gfps,相当于3.0GHz P4 6Gfps处理能力的44倍。Cell目前已为索尼的PS3游戏终端所采用。
![微处理器走进多内核时代_第11张图片](http://img.e-com-net.com/image/info5/fc80afff4c1847bba76191438be0cd40.jpg)
图11.jpg
图11∶Cell处理器架构方框图
SUN∶推动多核到新的高度
Sun公司的Niagara芯片架构也采用了多内核设计,基于该架构的处理器UltraSparc T1已于去年推出,其时钟频率为1.2Ghz,拥有8个内核和3MB二级缓存,能同时处理32个线程,峰值功耗仅为72瓦。特别是在多线程技术上,UltraSparc T1更值得关注。英特尔推出的超线程和IBM Power5的多线程(MultiThreading)实质上是双线程技术,而SUN UltraSPARC T1则做到了每核四线程。目前,Sun公司已经在T1000和T2000服务器中采用了UltraSparc T1处理器。
预计Niagara II预计将在2007年诞生,采用65纳米工艺制造,内核依然为8个,时钟频率提升到了1.4Ghz,可以同时支持64个线程,性能为目前T1芯片的2到3倍。 而Niagara III 预计将在2009年问世,采用45纳米工艺,时钟频率为1.4到2.0GHz,可以同时处理128个线程,性能为目前T1处理器的4到6倍。
![微处理器走进多内核时代_第12张图片](http://img.e-com-net.com/image/info5/3b9234afb71b45068f72e9e7f6b03ea8.jpg)
图12.jpg
图12∶Sun UltraSparc T1处理器集成了8个内核,利用CoolThreads多线程技术可同时并行处理32个线程
T1中的每个核都拥有专属的4路16KB L1指令快取与4路8KB L1数据快取,且具有同位检查(Parity Check)能力,可自行侦测并修正1bit的内容错误。此外,T1的L2 缓存实行八核共享,共有12路3MB 4-Bank,并具有ECC侦错、更错能力,八核是以Crossbar连接架构来存取这个L2 缓存。
AMD∶x86多核急先锋
![微处理器走进多内核时代_第13张图片](http://img.e-com-net.com/image/info5/b586d3c976d2495b937ee543e8681f8f.jpg)
图13.jpg
图13∶广受DIY装机者们喜爱的Athlon64 x2双核处理器
CMP架构在x86微处理领域的进展缓慢。AMD在2005年4月才推出了它的双核处理器Opteron,专用于服务器和工作站。并被惠普、IBM和SUN等服务器厂商的产品中使用该系列芯片。Opteron最大的技术革新,在于改变了x86架构一贯以“高频率”引导用户的做法,而是学习了RISC处理器的CMP思路,将更高带宽提到了与更高性能并重的位置,并创造了直连架构,将CPU直接连接到内存、I/O,同时引入HyperTransport超传输总线技术来消除传统的前端总线瓶颈,降低内存访问延时。
紧随其後它又推出了Athlon 64 X2双核系列产品,专用于台式机。目前,应用于高端台式机和笔记本的FX-60, FX-62以及Turion64 x2移动产品都已经出现在市场上。这些双核处理器的推出为AMD赢得了广泛的赞誉,树立的x86多核处理器先锋的良好现象。
英特尔∶多核蓝图展宏愿
![微处理器走进多内核时代_第14张图片](http://img.e-com-net.com/image/info5/a6bfe11b25754908aa1b505ef045875d.jpg)
图14.gif
图14∶英特尔双核Xeon处理器
在AMD推出双核Opteron不久,英特尔也很快推出了双核至强(Xeon)以及双核PentiumD。2006年5月,英特尔发布了其服务器芯片Xeon系列的新成员—双核Dempsey。该产品使用了65nm制造工艺,其5030和5080型号的主频在2.67GHz和3.73GHz之间。而在6月份,推出另一款双核芯片Woodcrest。英特尔声称与PentiumD系列产品相比,其计算性能提高了80%,能耗降低了20%。
尽管如此,由于不是双核直连架构、以及无整合内存控制器用来降低内存系统的延迟时间,英特尔双核处理器推出之初还是招致竞争对手AMD质疑其为“假双核”,从而引发双方口水大战。但多核宗旨是改善处理性能和功耗,目前并无固定的标准。因此,这些花絮并未能阻止任何厂商多核处理器的前进步伐。
英特尔明确表示将在未来推出的Multi-Core产品中整合更多的核心以提高处理性能。现在,英特尔开始了名为Kevet的multi-core计划。而英特尔最新的更长远规划是其Mini-core计划。Mini-core和Multi-Core的区别在于Multi-Core的核心是完全相同的x86处理器核心,而Mini-core则是x86核心配合特定用途的核心。也即Multi-Core发展的是同构CMP,而Mini-core发展的异构的CMP。
四、 小结
现在不少的多核处理器都融合了MT技术,例如英特尔的HT、IBM的Multitheading和Sun的Cooltheads。从技术本质上来讲,这些技术实际上大同小异。虽然英特尔的芯片很早就引入HyperTreading超线程功能、允许CPU执行两个线程,但HyperTreading设计僵化,线程一旦进入执行位置就不能再进行替换,即便该线程将占用很多执行资源与时间也必须持续等候。在不少时候,此举反而会令系统的效能降低,这也是英特尔的HT技术发展多年,但始终都没有获得广泛推行的主要原因。
不过,IBM与Sun的多线程技术在通畅性上更优异些。如IBM Power5能够侦测各线程的执行状况以及资源使用状态,在等候过久而其馀的核心又处于闲置状态时会立即将该线程进行转移,提升系统的并行执行能力。而UltraSPARC T1不但能进行线程的动态转移,而且任何一个执行单元有空余时,都可提取已排入其他位置的待处理线程来执行,借此来维持多核、多线程的平行处理利用率。
可见,CMP具有高主频、低功耗等优点,并能充分利用应用的指令级并行和线程级并行,使之得到业界的肯定,成为处理器体系结构发展的一个主要趋势。除了上面介绍的几大公司的多核产品外,还有微软Xbox 360游戏终端使用的三核心PowerPC微处理器、惠普PA-8800和PA-8900处理器、瑞萨整合8个MIPS内核的XLR处理器等。更有很多处于研发状态的多核处理器呼之欲出,例如一系列基于ARM11 MPCore内核的产品等。英特尔预期2006年年底多核处理器将占据主导地位。不久,微处理器将正式走进多内核时代。
五、软件开发没有跟上多核进度
多核处理器芯片内部将整合越来越多的内核。AMD高层甚至表示,整合的内核数量可以是无数个。更多核心为系统带来更大性能的提升当然是好事,但目前这却对基于多核芯片的多线程、并行处理软件的开发带来难题。
最早发现问题的是PS3、Xbox 360等平台的游戏开发商,由于两套系统完全不同于前一代产品,游戏开发者对此抱怨。多核心处理器编程对程序员来说就像是一场灾难,因为他们必须深入了解相应的硬件平台,然後才能据此编写代码,而让代码在核心之间平衡更是一大难题。如前面提及的索尼 PS3的Cell平台,程序员首次接触到异构CMP的主从模式的多核平台,因而对如何发挥出协处理器(coprocessor)的性能优势缺乏经验。由于编码的不到位,将使Cell充分发挥其性能产生影响。同样的事情现在也出现在x86领域,双核平台的出现让软件开发商考虑对双核优化的重要性。比较幸运的是,办公软件、网页浏览器等常用商务软件对处理器性能要求不高,因此这些x86软件都不需要作出变动。但真正需要考虑双核平台的仍然是x86平台下的游戏。对此,游戏开发商也是相当头疼,因为x86多核与PS3、Xbox 360游戏机的多核平台不同,未来对于英特尔 Mini-core或AMD HyperTransport协处理器平台也许又要作出改动。负责IBM多内核、多线程Power5服务器处理器设计的Balaram Sinharoy指出,现有软件只能在集成2~4个内核、而且每个内核只有两个线程的处理器上发挥性能优势。同时,多核处理器软件代码优化也对编译器和应用程序开发工具提出了挑战。面向多核处理器,业界需要通过努力改善软件设计来驱使应用程序的长期优化和效率提高。
为了充分发挥硬件性能,设备厂商希望开发商深入了解对应多核处理器的细节。现实问题是现存多种多核架构,通通研究的成本无疑惊人。因此开发者希望能够利用一个与硬件无关的自动化通用开发平台进行设计开发,这样编码工作将变得相当容易,同时也能够保证代码对不同架构具有出色的适应性。可惜的是,至今未见能为多核处理器进行高效编码的标准化工具出现。当然,我们没必要因此对多核平台失望。因为对x86的PC来说,使用多核心处理器能够极大提升系统的多任务效能,在软件业来不及跟上的时候,办公用户或许能够更多体验到双核平台的优势所在。
六 、结语
微处理器在频率发展的道路遭遇瓶颈,多内核技术成为提高性能并避免高功耗与散热问题的唯一可行途径。虽然目前基于多核技术的软件相对迟滞,但微处理器步进多核时代的步伐未受阻挡。而且,硬件、软件必在演变过程中相互促进。预计业界各大主要操作系统厂商正在准备推出相应的操作系统,以支持上市的多核处理器产品,例如微软的Windows、Sun的Solaris 10等。而随著这些曾用于高端设备的多核处理器走向大众市场,也将不断促进多核处理器硬件、软件和应用的发展。据iSuppli预计,2015年多核处理器出货量将由2005年的1480万颗发展到6.38亿颗,市场收入将由2005年的26亿美元增长到648亿美元。
参考资料∶
现代微处理器—— Jason Patterson(昆士兰大学博士)
多核: IT“芯”的必由之路——胡苏太
微处理器向多核技术发展——进藤智则 竹居智久