本课程得到Intel®大学合作计划支持课程网站:多核处理器技术华南理工大学陈虎博士tommychen74@yahoo.com.cn参考文献[1]TomR.Halfhill,IntelGoesQuad,Issue#234,ProcessorWatch,Oct.19,2006[2]CameronMcNairy,RohitBhatia,MONTECITO:ADual-Core,Dual-ThreadITANIUMProcessor,IEEEMirco,Mar./Apr.,2005[3]RonKalla,BalaramSinharoy,JoelM.Tendle,IBMPOWER5CHIP:ADual-Core,MultithreadedProcessor,IEEEMicro,Mar./Apr.,2004[4]PoonachaKongetira,KathirgamarAingaran,KunleOlukotun,NIAGARA:A32-wayMultithreadedSPARCProcessor,IEEEMicro,Mar./Apr.,2005[5]ToshinariTakayanagi,JinukLukeShin,ect.,ADual-Core64-bitUltraSPARCMicroprocessorforDenseServerApplications,IEEEJOURNALOFSOLID-STATECIRCUITS,Vol.40(1):7-18,JAN.2005[6]IntelCorp.,IntelIXP2400NetworkProcessorProductBrief,[7]MotorolaInc.,MotorolaC-5ArchitectureGuide,[8]JohnMontrym,HenryMoreton,THEGEFORCE6800,IEEEMicro,Mar./Apr.,2005[9]J.A.Kahle,etc.,IntroductiontotheCellmultiprocessor,IBMJ.RES.&DEV.VOL.49(4/5):589-604,JULY/SEP.,2005[10]UjvalJ.Kapasi,etc.,ProgrammableStreamProcessors,IEEEComputer,Aug.,2003[11]TomR.Halfhill,Ambric'sNewParallelProcessor,Issue#234-ProcessorWatch-October19,2006[12]SriramVangal,JasonHoward,etc.,An80-Tile1.28TFLOPSNetwork-on-Chipin65nmCMOS,IEEEInternationalSolid-StateCircuitsConference,2007微处理器技术发展的主要历史回顾90年代——增大指令的并行发射能力指令级并行性自身存在很大限制,超标量技术已经到了尽头;VLIW(超长指令字)存在二进制代码不兼容,对编译要求高的缺点;90年代末期——提高主频流水线不断细化,指令间相关性导致系统复杂性大大提高;MemoryWall,存储器性能滞后,严重影响整体性能;功耗问题严重;微处理器技术发展的主要历史回顾本世纪前5年——多线程只能屏蔽线程的存储器访问延迟,增加系统吞吐率(15%左右),并未提高单个单线程的执行速度;当前和未来五年——多核充分利用摩尔定律带来的芯片面积,放置多个微处理器内核;通过开发程序内的线程级或进程级并行性提高性能典型的多核处理器系统通用处理器:Intel——Xeon5300(四核)IBM——POWER5(双核)SUN——NIAGARA(8核)、UltraSpac(双核)网络处理器Intel——IXP2400Motorola——C-5嵌入式系统TI——OMAP,DavinciARM——ARM11MP图像处理Nvdia——GF6800多媒体处理IBM,Sony和Toshiba——Cell处理器Stanford大学——Imagine实验系统Ambric——AM2045(360核)Intel——80个核的实验处理器多核处理器系统中的主要问题每个处理器地址空间的关系怎样?存储器层次如何划分?如何保持存储器的一致性?互连结构如何?并行程序设计模型如何?存储器结构——cc-UMAcache-coherenceUnifiedMemoryAccess所有CPU共享一个统一的地址空间;有单独的L1Cache;采用多级Cache结构;采用总线或者Crossbar作为互连结构;使用Cache一致性协议维护数据一致性;采用多线程或者多进程作为并行软件设计方法CPU0CPU1…CPUnL1CacheL1CacheL1CacheL1CacheL2,L3CachesMaimMemorySUN’sNIAGARA8个4线程处理器通过crossbar连接到4个L2CacheL1Cache:16KBforInstructions8KBforDataCache一致性协议:在L2Cache建立L1Cache的tagshadows读不命中时,根据L2Cache的tagshadow寻找合适数据;写数据时,无效所有具有此拷贝的L1Cache。ARM’sARM11MP多个ARM11核有独自的L1Cache通过SnoopControlUnit实现Cache一致性协议:保持了L1Cache物理地址的Tag采用MESI(Modified,exclusive,shared,invalid)协议cc-UMA的评价优点:硬件实现数据一致性协议,软件不需要关心;多线程/进程的并行软件资源丰富;缺点:Cache一致性协议的性能和面积开销;Cache一致性协议可能对互连结构有特殊要求,例如侦听协议需要总线结构,影响了互连结构主频和数据宽度;总线或Crossbar难以支持更多的处理器;结论适用于通用计算连接的处理器数目受到限制存储器结构——异构多处理器系统中的处理器类型不完全一致典型配置是一个RISC处理器+一个或多个DSP每个处理器有独自的Cache地址空间不完全重叠数据一致性由软件/硬件协同完成CPU0CPU1…CPUnL1CacheL1CacheL1CacheL1CacheConnectionAchitectureMaimMemory存储器结构——LMLocalMemory每个从CPU(SCPU)仅能访问局部存储器主处理器(MCPU)将各个局部存储器作为全局地址映射的一个部分采用环行、流水线等互连结构;硬件提供简单的数据一致性方法(如DMA一致性)由软件控制一致性MCPUSCPU0…SCPUnCacheLMLMLMConnectionArchitectureMaimMemoryIBM’sCell主CPU——64bitPowerPC32KL1Cache512KL2Cache地址空间包括所有的局部存储器和主存从CPU——8个SPE,包含:4个并行可执行单元;128KB局部存储器仅能直接访问局部存储器,需要通过DMA访问其它局部存储器或者主存IBM’sCell四路环行连接;集中式仲裁;数据宽度16字节/环;主频1.6GHZ峰值传输带宽204.8Gbps通过DMA实现数据交换;有全局唯一的DMA地址一致性检查部件Intel的80核处理器单个处理器上集成了80个处理单元80个处理器单元按照10×8的mesh结构连接采用65nm工艺实现100M个晶体管主频4GHZ性能达到TFLOPSIntel的80核处理器每个处理单元包含:两个浮点乘加器(FMAC)寄存器文件2KB数据存储器3KB指令存储器五方向路由节点(Router)Nvidia’sGeForce6800多级专用处理器流水线方式连接每个处理器有局部存储器或寄存器组LM结构的评价优点:局部存储器与处理器核紧密耦合,存储器带宽高;数据一致性检查机制比较简单,开销大幅度小;面向应用和针对芯片布局设计的连接拓扑结构,提高处理器核之间互连通道的频率和带宽。缺点:局部存储器的空间有限,使用和调度完全需要软件控制,这直接造成了软件设计的难度,难以继承业已存在的丰富软件资源。适合于特定的应用Intel®Multi-core独立L2Cache,独立外部存储器接口共享的L2Cache和外部存储器接口Intel®Multi-core独立L2Cache,共享存储器接口独立L2Cache和L3Cache,共享存储器接口多核时代对软件设计的挑战在单个芯片上集成了众多处理器核,软件人员如何能发挥出它们的性能优势,试想一下在有100个处理器核上编写程序?答案在于程序的并行化!程序并行化的主要途径通过编译技术将串行程序并行化目前并行编译技术对线程级、任务级的并行化尚处于起步阶段设计全新的并行程序设计语言这需要全部改写原来的程序,工程量巨大串行语言加并行库或伪注释制导语句的扩展增加一个库或一些新的制导语句来帮助进行并行化和并行自主设计并行化程序