多核处理器的关键技术及其发展趋势

0引言
多核处理器也称为片上多处理器(chip multi-processor ,CMP ),或单芯片多处理器。自1996年美国斯坦福大学首次提
出片上多处理器(CMP )思想和首个多核结构原型,到2001年IBM 推出第一个商用多核处理器POWER4,再到2005年Intel 和AMD 多核处理器的大规模应用,最后到现在多核成为市场主流,多核处理器经历了十几年的发展。在这个过程中,多核处理器的应用范围已覆盖了多媒体计算、嵌入式设备、个人计算机、商用服务器和高性能计算机等众多领域,多核技术及其相关研究也迅速发展,比如多核结构设计方法、片上互连技术、可重构技术、下一代众核技术等。然而,多核处理器的技术并未成熟,多核的潜力尚未完全挖掘,仍然存在许多待研究的问题。
1多核处理器介绍
多核处理器将多个完全功能的核心集成在同一个芯片
内,整个芯片作为一个统一的结构对外提供服务,输出性能。多核处理器首先通过集成多个单线程处理核心或者集成多个同时多线程处理核心,使得整个处理器可同时执行的线程数
或任务数是单处理器的数倍,这极大地提升了处理器的并行性能。其次,多个核集成在片内,极大地缩
短了核间的互连线,核间通信延迟变低,提高了通信效率,数据传输带宽也得到提高。再者,多核结构有效共享资源,片上资源的利用率得到了提高,功耗也随着器件的减少得到了降低。最后,多核结构简单,易于优化设计,扩展性强[1-2]。这些优势最终推动了多核的发展并逐渐取代单处理器成为主流。
在整体结构设计上多核处理器与传统的单处理器相比,多核内部结构没有固定的组织形式,可以有很多种实现方式。各个研究机构和厂商根据自己的应用目标设计出结构完全不同的多核结构。虽然如此,但在已有的多核处理器中仍存在几种比较典型的结构,它们分别代表了多核处理器结构中的某一类特点,而Hydra 、Cell 和RAW 处理器就是3种典型的结构。
1.1Hydra 处理器
Hydra 处理器是1996年美国斯坦福大学研制得一个集成
了4个核心的处理器,这在当时是一种新型的处理器结构。Hydra 在一个芯片上集成了4个核心,核心间通过总线结构共享片上二级缓存、存储器端口和I/O 访问端口,整体结构如图1所示。4个核心采用了通用的百万指令级(MIPS )处理器,每
收稿日期:2008-09-16;修订日期:2008-12-08。
体系结构与外围设备
个独立的处理核心有私有的一级缓存,其中指令缓存和数据缓存相互分离。4个核心共享的二级缓存,采用DRAM 存储。核心之间、核心到二级缓存、主存与片内以及I/O 设备与片内的通信都是由总线结构来实现的[4]
。Hydra 被认为是一种典型的多核结构,不仅在于它是第一个多核处理器设计原型,还因为它采用了共享二级缓存的同构对称设计和高速总线的核间通信方式。
1.2Cell 处理器
2001年3月,IBM 与Sony 、Toshiba 合作,
着手开发一种全
新的微处理器结构——Cell 处理器,旨在以高效率、低功耗来处理下一代宽带多媒体与图形应用。如图2所示,Cell 处理器主要包含9个核心、一个存储器控制器和一个IO 控制器,片上的部件互联总线将它们连接在一起。核心间通信和访问外部端口均是通过内部总线进行,而且为了便于核间通信,整个Cell 内部采用统一编址。这9个核心由一个PowerPC 通用处理器(power processing element ,PPE )和8个协处理器(synergistic processing element ,SPE )组成。PPE 是一个有二级缓存结构的64位PowerPC 处理核心。SPE 是一个使用本地存储器的32位微处理器,它没有采用缓存结构。PPE 与SPE 除了在结构上不同外,它们的功能也有差别:PPE 是通用微处理器,拥有完整的功能,主要职能是负责运行基本程序和协调SPE 间任务的运行;SPE 则是结构较简单,只用来从事浮点运算[5]
。Cell 的
这种不对称结构被认为是一种典型的异构多核结构。
1.3RAW 处理器
美国麻省理工学院研究的可重构RAW 处理器芯片采用
了一种Tile 结构的多核处理器发展思路。RAW 处理器结构主要由16个Tile 单元和片上网络构成,如图3所示。片上的每个Tile 单元是一个完整的计算核心,负责处理各种运算,它包含了处理器、浮点运算单元、指令和数据缓存、静态和动态路由结构。片上网络是由可编程的、高度集成的互连结构构成。互连结构中的同步网络端口,让Tile 间的访问通信延迟很小,性能接近寄存器的访问存取。RAW 中的Tile 单元还能通过片上网络和芯片边缘的逻辑通道,高速简单地连接到外部存储器资源和各种IO 设备,可直接执行存储器存取[6]。由于RAW 处理器结构简单,功耗小,可扩展,而且片上网络通信效率高,因此RAW 结构被认为是片上网络多核结构的代表。
2多核发展的关键技术
室外隔音墙
多核处理器结构不仅有性能潜力大、集成度高、并行度
高、结构简单和设计验证方便等诸多优势,而且它还能继承传统单处理器研究中的某些成果,例如同时多线程、宽发射指令、降压低功耗技术等。但多核处理器毕竟是一种新的结构,在多核结构设计和应用开发中出现了以前未曾遇到的新问题,这些问题给多核处理器的未来提出了挑战。
图1Hydra 处理器结构
Centralized Bus Arbitration Mechanisms
CPU0CPU1CPU2CPU3
L1Inst.
Cache L1Data Cache CPU0Memory Controller L1Inst.
Cache
L1Data Cache CPU1Memory Controller L1Inst.
Cache L1Data Cache CPU2Memory Controller L1Inst.
Cache L1Data Cache CPU3Memory Controller
Write-through Bus Read/replace Bus
On-chip L2Cache
Main Memory Interface
DRAM Main Memory I/O Bus Interface
I/O Devices
SXU LS DMA
SXU LS DMA
SXU LS DMA
SXU LS DMA
2.1核心结构的选择
目前多核处理器的核心结构主要有同构和异构两种。同
构结构采用对称设计,原理简单,硬件上较易实现。当前主流的双核和四核处理器基本上都采用同构结构。同构设计的问题在于:随着核心数量的不断增多,如何保持各个核心的数据一致;如何满足核心的存储访问和I/O 访问需求;如何选择一个各方面性能均衡、面积较小以及功耗较低的处理器;如何平衡若干处理器的负载和任务协调等。
与同构结构相比,异构的优势是通过组织不同特点的核心来优化处理器内部结构,实现处理器性能的
最佳化,而且能有效地降低功耗。但是异构结构也存在着一些难点。首先,搭配哪几种不同的核,核心间任务如何分工以及如何实现。其次,结构是否具有良好的扩展性,还是受到核心数量的限制。再者,处理器指令系统设计和实现也是问题。因为不同核所用的指令系统对系统的实现也是很重要的,那么采用这些不同的核,是采用相同的指令系统还是不同的指令系统,能否运行操作系统等,也是需要考虑的内容
[1-3]
2.2存储结构设计
处理器与主存储器之间的速度差距一直是处理器结构设
计中必须考虑的问题,因为存储系统自身的体系结构设计直接关系到系统整体性能,会对整个芯片的尺寸、功耗、布局、性能以及运行效率等各方面产生很大的影响。以往在单处理器中通过采用缓存结构基本上能较好地解决这个问题,能保证处理器性能得到发挥。可是,发展到了多核处理器时代,核心和主存之间因速度差距而带来的问题变得严重了。由于处理器内部核心数目增多,对主存的访问需求增加,而单处理器时代的缓存层次和访问带宽已经不能跟上多核处理器的访问需求,必须针对多核处理器进行相应的存储结构设计,并解决好存储系统的效率问题。
螺母当前对存储系统设计,绝大多数处理器采用缓存设计,也有些处理器采用了片上存储器结构。缓存结构设计的优点是硬件设计与实现容易,易于应用开发与编程,缺点是需要保证缓存数据的一致,而且结构扩展不易。针对缓存数据一致性问题,其解决策略主要有总线侦听协议和基于目录的目录协议。侦听协议是每块缓存通过缓存侦听器时刻侦听总线,以接受一致性命令,不足的是它只适合核心数目较少的情况。目录协议是通过目录表记录自身存储块在其他缓存中的状态,以便维持一致性时使用点对点的通信,缺点是实现代价太大,并发访问目录时存在性能瓶颈。除了上述的硬件一致性算法,还有基于多处理机的软件一致性算法,但能否作为多核结构
的缓存一致性机制,这些需要进一步的探讨研究。目前大多
数多核处理器采用总线的侦听协议。
片内存储器是将片外的存储器引到了片内,它与片外存储器一样是统一编址,因此它避开了缓存不命中和一致性问题,但它由于采用了存储器结构,其访问延迟较缓存大。当前一些研究人员通过采用高速动态随机存储器来组成片内存储器,缩小了与缓存间的性能差距。
除了选择何种存储结构外,存储结构设计的问题还有:存储器多大比较合适;在哪一级实现数据的共享和通信比较合适;在哪一级解决缓存一致性问题比较合理;存储结构如何支持多线程的应用等。
2.3片上通信
多核芯片上的多个核心虽然各自执行自己的代码,但是
不同核心间可能需要进行数据的共享和同步,因此片上通信结构的性能将直接影响处理器的性能。当前片上通信主要有3种方式:总线共享、交叉开关互连和片上网络(network on chip ,NOC )。
总线共享结构是指片上核心、输入输出端口以及存储器通过共享二级或三级Cache ,或者通过连接核心的总线进行通信。总线结构的长处是较为简单,易于设计实现,当前多数双核和四核处理器基本上都采用了该结构,但缺点是总线结构可扩展性较差,适用于核心数较少的情况。比较典型的总线共享结构处理器有Hydra 、Intel 的Core 、IBM 的Power4/5等。
交叉开关互连结构由交叉开关以及接口逻辑构成。交叉开关与总线结构相比,优势是数据通道多,访问带宽更大,但不足是交叉开关结构占用的片上面积也较大,而且随着核心数的增加,性能也会下降,因此它也只适用于核心数较少的情况。例如AMD 公司的Athlon x2双核处理器用交叉开关来控制核心与外部的通信。
片上网络是把互连网络用于片上系统设计,解决片上组件之间的通信问题,它借鉴了并行计算机的互联网络[7]。片上网络与并行计算机的互连相比有很多相同点:支持包通信、可扩展、提供透明的通信服务等;但也有不同之处:片上网络技术支持同时访问,而且有可靠性高以及可重用性高等特点。它与总线结构、交叉开关结构相比,片上网络可以连接更多IP 组件、可靠性高、可扩展性强以及较低的
功耗,因此片上网络被认为是更加理想的大规模CMP 互连技术。当前片上网络主要有二维网格网络、3K Tours 等互连结构。片上网络设计的问题是寻网络开销和多核耦合程度最佳的平衡,并同时考虑网络的可扩展性。RAW 处理器就采用了片上二维网络结构,它通过集成高速网络和优化的路由算法,片上核心间的通信延迟最大不会超过6个周期,而且该结构可扩展性强。
这3种结构虽各有优势和不足,但亦可融合,比如在全局范围采用片上网络而在局部选择总线或者交叉开关结构,以实现性能与复杂性的平衡。
2.4低功耗
传统单处理器的一个瓶颈就是随着频率的提升,功耗越
来越高,最终使得芯片无法正常运行。在早期的多核处理器设计中,主要通过降低核心频率来降低处理器的功耗,但是这样限制了核心的运算性能,并没有从根本上实现高性能、低功
图3RAW 处理器结构
TIle0TIle4TIle8TIle12TIle1TIle5TIle9TIle13TIle2TIle6TIle10TIle14TIle3
TIle7
TIle11
TIle15
耗的目的。功耗过高不仅导致能源消耗,而且热堆积和过高的功耗密度也会对系统稳定性造成影响。现在一个芯片上可以集成接近10亿个晶体管,如此众多的片上资源,如何控制它的功耗,保持较高性能,成为了一个重要的问题。
在多核处理器产生以前,低功耗技术主要有降低动态消耗和降低静态消耗技术两方面[8-9]。动态消耗包括处理器内部各元件正常工作时所消耗的电能,例如电容性的充放电、切换频率、逻辑门的状态转换等。降低动态消耗一直以来都是人们研究的重点,而且技术比较成熟。降低动态消耗技术现在主要有多元功能电压技术、动态电压调节、时钟屏蔽技术等。静态消耗技术是指来自漏电流的功率消耗,特点是即使元件处在空闲状态也会消耗电能,具体包括亚阈值漏电流和门漏电流。降低静态消耗技术的主要技术有通道长度调整、寄存器锁存技术、能量选通技术等[8]。
上面两方面的技术主要在电路层次上去进行低功耗设计和技术开发。在多核处理器出现以前,这些技术便已出现在单核处理器上。随着多核处理器的产生,由于多核处理器在结构和实现上有了新的特点,所以研究人员又在新的方面发现了降低功耗的方法,例如异构结构设计、动态线程分派与转移技术等[8-9]。异构的结构设计就是利用异构结构对片上资源的最佳化配置,处理器的执行效率提升,使
得处理器不仅具有高性能也降低了功耗[8,10]。动态线程分派与转移技术是利用多核心处理能力,将某个核心上的过多负载转移到负载小的核心上,从而使处理器在不降低处理性能的情况下,降低处理器功耗。
研究人员还通过对操作系统的设计和优化来降低多核处理器的运行功耗。例如当任务较少时,操作系统会关闭一个核心或降低处理器频率,并降低封锁转速,来使整个系统降低消耗。
因此,低功耗设计包含了电路级、结构级、算法级和操作系统级等多个方面的内容,是一个需要从多方面进行综合考虑的问题[8-9]。
2.5操作系统设计
由于多核内部有多个核心,那么就存在任务分配、调度、仲裁以及平衡负载等问题,多核之间的任务调度是充分利用多处理器性能的关键。现有的操作系统还无法有效地支持多核处理器的任务运行。为满足实时处理的要求,均衡各处理器负载,任务调度机制需要研究的内容有设计和优化分布式实时任务调度算法、动态任务迁移技术等[1]。当前关于多核的任务调度算法主要有全局队列调度、局部队列调度和共生队列调度算法。全局队列调度是操作系统维护一个全局的任务等待队列,当系统中有一个CPU核心空闲时,操作系统便从全局任务等待队列中选取就绪任务并开始在此核心上执行,它的优点是CPU核心利用率较高。局部队列调度是指操作系统为每个CPU内核维护一个局部的任务等待队列,
当系统中有一个CPU内核空闲时,便从该核心的任务等待队列中选取恰当的任务执行,局部队列调度的优点是任务基本上无需在多个CPU核心间切换,有利于提高CPU核心局部缓存命中率,缺点是CPU利用率太低。共生调度方法的基本思想是将访问共享资源较多的任务和访问共享资源较少的任务调度到同一时刻执行,从而最大程度上减少资源冲突。目前,多数多核的操作系统采用了基于全局队列的任务调度算法。2.6平衡设计原则
平衡设计原则是指在芯片的复杂度、内部结构、性能、功耗、扩展性、部件成本等各个方面做一定的权衡,即不能为了单纯地获得某一方面的性能而导致其它方面的问题,在设计过程中要坚持从整体结构的角度去权衡各个具体的结构问题。
在多核处理器设计工程中,项目人员需要坚持平衡设计的原则。因为往往在减少一个方面问题的同时就增加了另一个方面的问题,所以在设计过程中要仔细权衡对某些问题的解决方法,尽量采用简单、易于实现、成本低廉而且对整体性能影响不大的设计。微处理结构设计的重点不在于其中某一个细节采用什么复杂或性能表现较好的设计,而是在于整体的设计目标。也即是说要得到在一个通常情况下,逻辑结构简单和对大多数应用程序有良好性能的微处理器结构,在适当的时候为了整体目标就不得不牺牲某一方面。当然在具体的设计中,不能只是简单的选择,应该是建立在科学的实验和模拟分析基础上的选择或平衡。因此在多核处理器设计中,要以科学分析的数据结果为基础,坚持合理平衡的设计原则。
2.7软件应用开发
多核处理器在利用多个核心的并行执行能力来提高处理器运算性能的同时,也给软件开发者带来了麻烦。当前的困境是众多应用并没有利用多核的性能潜力,多核的性能优势没有体现。这主要有两个原因:一方面并行编程复杂,没有一个易于程序员编写并行程序的编程工具和环境;另一方面一些应用的线程级加速潜力有限。
并行编程困难的问题从并行计算机产生以来就存在,只是随着多核的主流化,问题更加突出了。多核系统下的并行编程,主要是开发多核的线程级并行性,但是已有的并行编程模式、编程语言不能完全适合多核环境,不能将多核的多线程并行潜力完全发挥出来,例如OpenMP、MPI、并行C等。因此,针对多核环境下对并行编程应用的要求,许多研究机构和公司一方面对现有的并行编程模型和编程语言进行修改和改进,例如改进支持共享存储结构的OpenMP、OpenMP+MPI的混合编程模型、PThread多线程编程模型;另外一方面,在资金项目的支持和市场的推动下,各类研究机构也正在积极研制开发新一代的并行编程模型和并行编程语言,例如事务存储编程模型、Intel公司的Ct编程模型、IBM公司的X10语言、SUN公司的Fortress语言、Cray公司的Chapel语言等[11]。
另外一方面,多数应用的并行加速潜力有限是因为当前在实际应用中,可供程序员迅速开发出来的程序还是单线程的,同时多数应用也是用C或C++编写的,它们一直被设计为单线程,而单线程程序中
所能开发和利用的并行性始终是有限的。所以对于这些应用,要么重新编写并行代码,要么研发面向多核结构的自动并行化工具,使得这些应用能在多核处理器系统中高效应用。
3多核发展趋势
方形磁铁多核处理器产生的直接原因是替代单处理器,解决微处理器的发展瓶颈,但发展多核的深层次原因还是为了满足人类社会对计算性能的无止境需求,而且这种压力还会持续下去。即便在当前,设计者已经有效地将多核性能提高到了一
个新的水平,可是人们对性能的渴望并未就此泯灭。
阻碍多核性能向更高水平发展的问题很多,可真正束缚多核发展的是低功耗和应用开发两个问题。由于现有的多核结构设计方法和技术还不能有效地处理好这两个问题,因此有必要在原有技术基础上探索新的思路和方法。下面的内容是为了实现高性能、低功耗和高应用性的目标多核处理器呈现得几种发展趋势:
(1)多核上将集成更多结构简单、低功耗的核心。为了满足性能需求,通过集成更多核心来提高性能是必然选择,但是核心的结构也必须考虑。因为如果核心结构过于复杂,随着核心数量的增多,不仅不能提升性能,还会带来线延迟增加和功耗变大等问题。例如,2007年Tilera公司和Plurality公司分别推出自己的64核处理器产品[12-13],而Intel公司也将推出80个核心的低功耗处理器。
(2)异构多核是一个重要的方向。研究表明,将结构、功能、功耗、运算性能各不相同的多个核心集成在芯片上,并通过任务分工和划分将不同的任务分配给不同的核心,让每个核心处理自己擅长的任务,这种异构组织方式比同构的多核处理器执行任务更有效率,实现了资源的最佳化配置,而且降低了整体功耗[10]。
(3)多核上应用可重构技术。大规模高性能可编程器件的出现,推动了现场可编程门阵列(field programmable gate ar-rays,FPGA)技术的发展。在芯片上应用FPGA技术有高灵活性、高可靠性、高性能、低能耗和低成本多种优势。微处理器设计人员注意到了这种优势,并将FPGA等可重构技术应用到多核结构上,让结构具备可重构性和可编程性。这种创新思路大大提高了多核的通用性和运算性能,使处理器既有了通用微处理器的通用性,又有专用集成电路的高性能,使之兼具了灵活性、高性能、高可靠、低能耗等众多优良特点[14-16]。
4结束语
多核处理器结构通过采用简化单核结构、增加核心数目和片上部件等结构设计方法提高了处理器性能,适应了工艺发展和应用的需求,逐步成为了应用的主流。多核下一步深入发展是需要解决低功耗和应用开发等几个重要问题,而这些问题的解决是一个综合考虑的过程。它要求研究人员需要根据设计目标和应用需求采用适当的技术和解决方案,不能一味使用某些技术,需要多方面权衡的选择。因
此,深入理解各项关键技术是多核结构设计和实现的基础,而对多核结构设计的研究又将推动多核技术的发展。总的来看,多核正向着众核方向发展[17],并呈现多核心、低功耗、异构和可重构等几个方面的趋势。虽然现阶段多核发展仍面临众多挑战,但多核的未来值得期待。参考文献:
[1]史莉雯,樊晓桠,张盛兵.单片多处理器的研究[J].计算机应用研
助勃器
究,2007,24(9):46-49.
[2]刘必慰,陈书明,汪东.先进微处理器体系结构及其发展趋势[J].
计算机应用研究,2007,24(3):16-26.
[3]谢向辉,胡苏太,李宏亮.多核处理器及其对系统结构设计的影
响[J].高性能计算技术,2007(4):1-6.
[4]Kunle Olukotun,Basem A Nayfeh,Lance Hammond,et al.The
case for a single chip multiprocessor[C].Proc7th Int'l Conf Architectural Support for Programming Languages and Opera-ting Systems.New York:ACM Press,1996:2-11.
[5]Kahle J A,Day M N,Hofstee H P,et al.Introduction to the cell
multiprocessor[J].IBM Journal Research And Development, 2005,49(4/5):589-604.
[6]Michael Taylor.The raw prototype design document V5.02[C].
Proceeding of the IEEE International Conference on Solid-Sa-tate Circuits,2005:1-107.
[7]孙利荣,蒋泽军,王丽芳.片上网络[J].计算机工程,2005,31(20):
1-2.
[8]郝松,都志辉,王曼,等.多核处理器降低功耗技术综述[J].计算
机科学,2007,34(11):259-263.
[9]张骏,樊晓桠,刘松鹤.多核、多线程处理器的低功耗设计技术
研究[J].计算机科学,2007,134(10):301-305.
[10]Kumar R,Farkas K I,Jouppi N P,et al.Single-ISA heterogeneous
multi-core architectures:The potential for processor power re-duction[C].Proceedings of the36th International Symposium on Microarchitecture,IEEE,2003:81-92.
[11]陈莉.科学和工程计算的并行程序设计语言[J].信息技术快报,
2005,3(11):1-16.
[12]Plurality LTD.Announce its new hypercore architecture line of
multicore processor[EB/OL].www.plurality,2007. [13]Tilera LTD.Tile processor architecture technology brief[EB/OL].
www.tilera,2007.
[14]ALTERA.FPGA architecture[R].ALTERA White Paper V er.
1.0,2006.
[15]Todman T J,Constantinides G A,Wilton SJE,et al.Reconfigu-
rable computing:Architectures and design methods[J].IEE Proc Comput Digit Tech,2005,152(2):193-
207.
[16]安虹.用可重构计算技术实现高效能通用微处理芯片[J].信息
技术快报,2006,4(6):1-23.
[17]Microsoft.The manycore shift:Microsoft parallel computing ini-
超声波放大器tiative ushers computing into the next era[R].Microsoft,2007.
[6]Anthony Jones,Jim Ohlund.Network programming for Microso-
电梯运行检测平台ft Windows[M].2nd Ed.Microsoft Press,2002.
[7]周坤,傅德胜.基于Windows Socket的网络数据传输及其安全
[J].计算机工程与设计,2007,28(22):5381-5386.[8]李勇,包世态,周品,等.基于Winsock的AIS网络数据传
输研究[J].计算机工程与设计,2008,29(4):949-951.
[9]严军勇,金翊,左开中.无进(借)位运算器的降值设计理论及其在
三值光计算机中的应用[J].中国科学,E辑,2008,38(12):2112-2122.
(上接第2413页)

本文发布于:2024-09-21 15:28:44,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/139697.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:处理器   结构   核心   性能   设计
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议