《电子技术应用》

同构与异构片上多核系统的演进过程

2017年电子技术应用第3期 作者:黄乐天1,别丽华2
2017/3/27 15:38:00

黄乐天1,别丽华2

(1.电子科技大学,四川 成都610054;2.华中农业大学 信息学院,湖北 武汉430070)


    摘  要: 系统级芯片是高端电子系统的核心,而片上多核系统是近年来系统级芯片的主要实现形式。近十年来,片上多核系统一直是数字集成电路领域的热点,经过众多研究者的不断努力诞生了大量很有意义的研究成果。但由于片上多核系统的研究者背景和应用领域不同导致发展演进过程较为复杂而难以理解。为减少这一问题的影响,总结了片上多核系统的演进历史与现状,并对片上多核系统未来的发展提出了一些看法。

    关键词: 片上多核;单芯片多处理器;多处理器片上系统

    中图分类号: TN4

    文献标识码: A

    DOI:10.16157/j.issn.0258-7998.2017.03.001


    中文引用格式: 黄乐天,别丽华. 同构与异构片上多核系统的演进过程[J].电子技术应用,2017,43(3):6-11,20.

    英文引用格式: Huang Letian,Bie Lihua. Evaluation of homogeneous and heterogeneous multi-core System-on-Chip[J].Application of Electronic Technique,2017,43(3):6-11,20.

0 引言

    信息与通信行业的飞速发展使得人类生活发生了巨大变革,计算机技术作为整个信息与通信行业的关键支撑技术,在强大需求的驱动下得到了迅猛的发展。对计算能力的巨大需求和单芯片内可集成的晶体管数目的不断增长促进了片上多核系统的诞生[1]与发展[2-4]。通过将多个简单的核心集成在同一块芯片内使得在单个芯片内部可同时执行多个线程或任务,进程和任务间通信延迟也大为降低,极大地提高了系统的吞吐量[5]。自2010年以后,以大数据挖掘、机器学习为代表的新兴信息技术领域的巨大发展,更进一步加速了片上多核系统的发展。

    第一款被大众所熟知的商用化片上多核系统是著名处理器芯片提供商之一的AMD公司面向个人电脑推出的ATHLON X2双核中央处理器Central Processing Unit(CPU),该款CPU在商业上大获成功。此后商用化片上多核系统的研制开始进入高潮。2005 年Intel发布了64位双核处理器Montecito[6],IBM公司则发布了具有9个核心的Cell处理器[7]。此后的10年间,片上多核系统开始大量被应用于各种信息基础设备,成为高性能计算与信息处理平台的核心器件。

    但实际上片上多核系统的研究开始于上个世纪90年代中期[1],在过去的20多年中片上多核系统架构一直处于不断发展和演进中。由于应用领域和研究人员的学术背景不同,片上多核系统的研究从一开始就有着明显的“流派”之分。随着研究的的持续深入,片上多核系统出现了越来越多的技术分支。对于很多刚接触片上多核系统研究的硕士生和低年级博士生而言,搞清楚这些技术分支的区别与联系并不是一件轻松的工作。本文针对这一问题,将总结片上多核系统近20年来的发展历程,尝试厘清片上多核系统发展的技术脉络。希望通过这一分析总结出片上多核系统的发展趋势,为广大学习片上多核系统的朋友们提供参考依据。

1 片上多核系统的分类

    片上多核系统由于起源不同、应用领域不同以及研究者的学术背景不同等原因,发展出了不同的技术路线。上文提到的Intel公司发布的Montecito处理器[6]和IBM公司发布的Cell处理器[7]就代表了两种最主要的技术路线。一类片上多核系统源于Symmetric Multi-Processing System(SMP)系统,被称之为Chip Multiprocessors (CMP)(国内一般翻译为单芯片多处理器),主要用于高性能通用计算领域。另一类片上多核系统则由片上系统Systemon-Chip(SoC)演进而来,被称为Multi-Processors System-on-Chip(MPSoC)。这类片上多核系统主要作为一种高端的嵌入式处理器被应用于通信、信号处理、多媒 体处理等领域。本文中将介绍这两类片上多核系统的演进历史,在后文将分别使用CMP和MPSoC代称这两类片上多核系统架构。

    采用CMP架构的片上多核系统通常被应用于工作站、服务器、云计算平台等通用计算设备,所运行的主要应用通常是以科学计算、仿真模拟为代表的大数据量通用计算。这类片上多核系统大多采用数据并行的并行程序开发模式,以共享存储器的方式来交换数据。这样的好处在于开发难度较低、程序的通用性较好,可以借用类似于OpenMP[8]这样已经较为成熟的并行编程模型加以开发。又由于科学计算、仿真模拟这类应用的特点通常是数据量超大,但不同处理器上所运行的核心程序往往是相同的。因此采用共享存储的方式使得多个处理器核心可以很容易共享同一块虚拟地址空间,这使得同一程序可以很方便地同时运行在不同的核心上,也可以很方便地共享同一个操作系统或管理程序。

    MPSoC与CMP差不多同时开始研究,但MPSoC的研究者主要来源于嵌入式处理器芯片设计领域。采用MPSoC架构的片上多核系统通常面向通信、网络、多媒体等高性能嵌入式计算应用。参考文献[9]和[10]归纳了运行在MPSoC架构的多核片上系统上的应用的一些特征。这些特征包括:通常是存储密集(memory-intensive)型的应用、大多具备流计算的形式、对计算的实时性要求较高、可以被划分为若干独立的子任务或子系统等。由于这一类应用通常可以被划分成若干独立的子任务或子系统,因此各个核心通常被设计得相对独立。数据通常被某一核心独立处理后再传递给下一核心处理,因而MPSoC架构的多核系统大多采用任务并行的开发模式,一般不使用共享存储机制而依靠核心之间的消息传递机制来直接完成数据的交换。

    但随着研究的深入和技术的进一步发展,CMP和MPSoC这两类主流的片上多核系统的特点也在不断变化。例如以Luca Benini为代表的一部分MPSoC的研究者也曾经考虑开发符合OpenMP标准的MPSoC架构[11]。今后,全世界不同的研究者也必将在总结前人经验的基础上,根据新的应用提出更多新的架构。

2 单芯片多处理器(CMP)演进历史与现状

2.1 早期的单芯片多处理器架构分析

    Hydra处理器是1996年美国斯坦福大学研制集成了4个核心的处理器,它被认为是首款具备CMP性质的片上多核系统。Hydra处理器的架构如图1所示。

yg1-t1.gif

    Hydra处理器采用了4个 MIPS 处理核心,每个核心拥有私有的指令缓存(I-Cache)和数据缓存(D-Cache)。二级缓存为4个核心共享,通过核心自身的存储控制器(Memory Controller,MC)及一组总线与二级缓存(L2 Cache)、主存储器接口(Main Memory Interface)和输入输出总线接口(I/O Bus Interface)互连。由于片上的二级缓存为4个核心所共享,因此4个核心实质上在逻辑上具备单一的内存地址空间。这也使得共享同一个操作系统或管理程序成为可能。

    Hydra处理器为后续CMP架构片上多核系统的发展奠定了基础,这一架构的片上多核系统在后续的演进过程中始终被Hydra处理器的初始设计所影响。

2.2 单芯片多处理器架构演进过程

    单芯片多处理器自Hydra处理器之后持续演进,其改进主要体现在内部互联结构和片上存储器的组织方式两大方面。

    在内部互联结构方面的演进主要体现在使用更为复杂的互联结构替代原本单一的总线互联模式。2000年由康柏计算机公司(Compaq Computer Corporation,后与惠普公司合并成为新惠普的一部分)发布的Piranh处理器[13]在继承Hydra处理器架构的基础上采用片内交换互连(Switch)结构替代了总线,从而可以支持集成更多的核心。在很长一段时期内,这种基于Switch的架构成为CMP的主流架构,例如2009年我国自主研发的四核龙芯3A处理器[14]依然采用了基于片内交换的互联方式。

    图2所示为Piranh处理器架构图,每个处理器芯片内部包含有8个独立的CPU单元,通过片内的交换结构和8个独立的二级缓存模块互联。由于CPU可以通过内部交换结构访问8个独立的二级缓存模块中的任意一个,因此8个独立缓存模块在逻辑上构成了一个完整的共享二级缓存。片内互联结构不但为CPU访问共享存储提供了通道,CPU也可以通过片内互联结构去访问一个共享的网络引擎。通过网络引擎不同的芯片可以实现板级或机柜级片间互联,从而构成一个更大的并行计算机系统。

yg1-t2.gif

    但即使采用了Switch 的架构,依然难以让片内核心数目超过8个,片上网络(Network on Chip,NoC)逐步发展起来替代交换结构成为CMP架构片上多核系统内部互联的主流方案。早在1997 年麻省理工学院MPSoC所研制的RAW微处理器架构就开始探索网络化互连的方式,其具体架构如图3所示。

yg1-t3.gif

    RAW微处理器架构采用了一种被称为Tile(有国内文献直译为瓦片,为避免歧义本文中均使用英文原文指代)的模块划分方式。这种划分方法把CPU、 私有Cache(L1 Cache)、共享Cache(L2 Cache)的一个Bank、网络接口(Network Interface NI)等硬件资源构建为一个独立的Tile。不同的Tile在芯片规划的平面内按一定的规律整齐排列,Tile和Tile之间通过NoC加以互联。这种采用Tile来划分和组织片上多核系统的方式优势在于每个核心比较规整,有利于芯片后端设计并具备较好的可扩展性。此后虽然有一些其他形式的核心划分与组织方式的论文发表,但基于Tile的划分与组织方式始终被绝大部分研究者所继承。

    片上网络成为CMP架构的片上多核系统内部互联的主流方式之后,片上缓存的组织方式也相应发生了改变。在使用总线或交换结构的时代,CPU访问不同Cache Bank的时间是基本保持一致的。但在使用片上网络作为内部互联以后,CPU访问不同的Cache Bank的时间已经不可能保持一致了。因此一种被称为非均匀高速缓存体系结构(Non-Uniform Cache Architecture,NUCA)的概念被提出。NUCA是基于片上网络的CMP片上多核系统所必然要面临的问题,但对NUMA(Non-Uniform Memory Architecture)的研究也推动了基于片上网络的CMP片上多核系统向前持续演进。改进NUMA条件下CMP架构片上多核系统的访存效率,也成为提升CMP架构片上多核系统性能的主要途径。由于这部分内容涉及到较多存储体系结构方面的研究,超出了本文所讨论的范围,因而在此不再进一步展开讨论。

    经过多年的发展,以片上网络为互联基础,以按NUMA体系组织片上缓存的做法已经成为CMP架构片上多核系统的主流设计方法。例如图4所示的32核心SPARC M7处理器[16]。该款处理器共有32个核心,每4个核心构成一个组(文献[16]中称其为SCC),总共8个组。每个组内部共享L2 Cache,但其他组不能访问。L3 Cache为全局共享Cache,可以被所有的所有核心访问。L3 Cache同样被划分为8个独立的bank,和对应的每个组一起组成了一个完整的Tile。

yg1-t4.gif

    SPARC M7处理器采用了片上网络互联不同的Tile。为了更有效地互联各个不同的Tile,研究者为SPARC M7处理器设计了三套不同的片上网络,分别是采用环网(Ring)结构的请求网络(Request Network)、采用广播(Broadcasting)结构的响应网络(Responses Network)以及采用网格(Mesh)结构的数据网络(Data Network)。不同的片上网络分别传送不同的控制信息和数据,从而使得访问Cache的效率能最大限度的提高。

    除SPARC M7处理器之外,Intel公司设计的E5-2600系列处理器[17]、IBM公司设计的Z系列处理器[18]等虽然实现细节上有所不同,但基本上都按照按NUMA体系组织片上缓存并使用了片上网络来实现互联。这两大特征已几乎成为现代CMP架构的多核片上系统的基本特征。

3 多处理器片上系统(MPSoC)演进历史与现状

3.1 早期的多处理器片上系统架构分析

    在MPSoC诞生初期的主要代表是一些集成了多个数字信号处理器(Digital Signal Processor DSP)和微处理器(Microprocessor Unit MPU)的专用芯片[19-21],主要被应用于数字电视、多媒体播放器等信号处理设备。与追求高性能的通用计算不同,MPSoC 主要应用领域所面临的主要问题是计算的实时性。由于计算任务的确定性更强,使得MPSoC的设计者和使用者能够也必须要精确地划分任务并合理地分配任务以应对各种挑战。图5所示的Viper处理器即为最早的一批MPSoC之一。

yg1-t5.gif

    从图5中可以看出,整个芯片可以被划分为两个相对独立的子系统,分别以MIPS(PR3940)CPU和TriMedia(TM32)CPU为核心。图5左侧为以MIPS(PR3940)CPU为核心的子系统,这部分子系统的架构类似于一个通用的嵌入式SoC芯片,集成了如UART、IEEE 1394协议控制器之类的接口模块。图5右侧为以TriMedia(TM32)CPU为核心,在这一子系统中集成了如MPEG-2视频解码器、视频输入处理器等多媒体处理单元,实质上构成了一个专用的多媒体处理器。因此可以很清楚地判断Viper处理器中以MIPS(PR3940)CPU为核心的子系统主要负责通用处理器控制和数据传输方面的功能,而以TriMedia(TM32)CPU为核心的子系统则主要负责多媒体信号处理。两个子系统相对独立,通过Fast C-Bridge、MIPS C-Bridge以及C-Bridge 3个总线桥相互连接。

    Viper处理器的架构很清晰地体现了MPSoC的一些典型特点:按任务需求划分为若干独立的子系统,每个子系统完成一个专门的功能,子系统之间相对独立等。这种架构设计方法充分体现了嵌入式系统的特性,因而被后来的研究者所继承和发扬。

3.2 多处理器片上系统架构演进过程

    和CMP架构的片上多核系统类似,随着MPSoC架构片上多核系统中核心数量的增加,不同核心之间的互连方式也由总线演进到了NoC这一过程。其后也有部分研究者提出采用交换矩阵(Crossbar Matrix)[22]或点对点直连[23]的方式来实现片上互联。但这些片上互联方法或受制于带宽无法支持集成太多的核心,或自身复杂程度会随着核心数量的增加而急剧增加。

    参考文献[24]介绍了一种“过渡形态”的MPSoC架构片上多核系统。在这颗芯片中采用了6×6阵列的形式来排列36个简单的DSP处理器核心,其具体架构如图6所示。

yg1-t6.gif

    AsAP核心内部有一个包含算术运算单元(ALU)、乘累加单元(MAC)以及控制逻辑的运算模块。以该模块为核心增加64个字的指令存储器和128个字的数据存储器构成了一个精简的可编程数字信号处理器。通过两个深度为32个字的FIFO构成了处理器与其他处理器通信的接口。某一个AsAP核心只能支持和周围相邻的核心通信,而无法做到与更多的核心通信。由于很多信号处理类应用都可以被抽象成流水线结构,因此AsAP的互联方式也可以支持大量的应用。文献[24]中就给出了实现DCT变换和802.11a/g基带信号处理两个案例。

    AsAP的架构虽然可以支持很多信号处理类的应用,但互联的灵活性确实受到了很大的限制。随着核心数目和应用复杂度的持续增加,后续提出MPSoC架构的片上多核系统都普遍采用了片上网络来作为核间互联的方式。

    除互联方式的演进外,MPSoC架构的片上多核系统在演进的过程中还出现了“同构多核”和“异构多核”两种不同的发展路线。

    参考文献[25]给出了一种典型的同构MPSoC架构片上多核系统,这种芯片采用集成同构处理器阵列来构建MPSoC架构片上多核系统。每一个独立的处理器可以运行某个特定的信号处理算法,核心之间按照数据流的方式来组织多核互联。同构多核的优势在于通用性很好,可以被用于实现不同的嵌入式系统。

    参考文献[26]则介绍了一种名为Tomahawk2的异构MPSoC架构片上多核系统,这种芯片往往是针对不同的应用而专门定制的,更接近于SoC技术的本源。图7给出了Tomahawk2的详细架构。

yg1-t7.gif

    从图7可以看出,Tomahawk2中包含了Duo-PE、CM、APP几种不同类型的处理器核心和FEC、SD等专用算法IP核以及FPGA、DDR-SDRAM等专用接口IP核。CM(Core Manager)核用于芯片的管理,主要负责任务的映射和动态调度。APP(Application Processor)为应用处理器,负责运行操作系统与应用程序。Duo-PE是Tomahawk2中的主要运算单元,包含了一个DSP处理器和一个RISC处理器,可以支持执行各类信号处理以及运算任务。每个核心均涉及了独立的时钟生成模块——ADPLL以及独立的功耗管理模块PMGT。因此从宏观上来说每一个核心都可以工作在不同的电压与频率上,整个芯片从全局上来看处于异步工作的状态。为解决不同核心之间异步通信的问题,Tomahawk2采用了片上网络来互联各个核心。不同的核心通过NI与片上网络连接,而NI本身包含一个异步FIFO,从而实质上起到了连接两个不同时钟域的作用。Tomahawk2可以加载/配置不同的程序以及设置不同的连接方式,从而实现不同的应用。除Tomahawk2外,后续发布的如FAUST[27]等MPSoC架构的片上多核系统也都采用了异构集成的方式。随着对芯片能效需求的提升,根据实际的需求设计并集成专用处理器核从而最大化能效成为片上多核系统的主流趋势。因此异构MPSoC架构的片上多核系统目前已经成为主流。

    虽然MPSoC架构的片上多核系统的形态差异相当大,但却基本都具备各核心之间相对独立、数据传输依靠不同核心之间直接建立传输途径而非通过共享存储器中转等特点。这些特点使得设计MPSoC架构的片上多核系统时,如何合理地将系统划分为不同核心为中心的子系统并用适当的方式加以组织和管理成为主要问题。这一过程一般被抽象为任务划分和任务映射问题。但由于这两大问题涉及到更多的内容,在本文中将不做详细的介绍。

4 片上多核系统研究展望

    经过近20年的发展,片上多核系统已经经历了从萌芽到成熟的整个历程。无论是CMP架构的片上多核系统还是MPSoC架构的片上多核系统的相关研究都已经取得了长足的进展,并有大量研究成果已经大量应用到实际的高端系统级芯片中。

    虽然片上多核系统已经进入到了成熟期,但人类对于产品性能的永不满足追求依然将推动片上多核持续发展。从目前来看,片上多核系统的研究主要呈现以下趋势:

    (1)片上多核系统内部互联方式复杂化,多样化。虽然片上网络已几乎成为片上多核系统互联的必然选择,但其内涵与外延都已发生了很大变化。采用标准Mesh拓扑和包交换的经典片上网络在实际的产品中并未广泛采用,而混合了多种不同互联形式的定制化片上网络以及总线与网络混合的互联结构却大行其道。可以预见未来会有更多更新的片上互联结构被提出。

    (2)由于加速器或专用处理器在完成特定任务时具有较高的能效,在系统中集成越来越多的专用而非通用的核心将成为必然。同时CMP和MPSoC两种架构也在逐步走向融合。参考文献[28]给出了一种现代异构多核片上系统的架构,在处理器节点内部采用了CMP架构,而整个片上系统宏观上来看却是一种MPSoC架构。这种混合架构必将对片上多核系统的架构组织和运行管理提出更大的挑战,也将成为未来的一大研究热点。

    (3)与片上多核系统往“异构”发展相适应的是以“软件为核心”的设计方法将成为未来设计的主流思潮。以往的设计方法是先有基础的硬件平台,在此基础上再设计相应的软件来实现功能。而“以软件为核心”的设计方法则要求硬件设计服从软件设计的需求,通过定制专用的核心实现软件处理的加速。目前这一方法尚在研究中,还缺乏成熟的设计流程和设计模式。

    片上多核系统是系统级芯片发展到一定阶段的必然产物,也是当前高端系统级芯片的主要实现形式。随着技术的进步和需求的推动,未来片上多核系统仍然将不断有新的研究热点出现。

参考文献

[1] OLUKOTUN K,NAYFEH B A,HAMMOND L,et al.The case for a single-chip multiprocessor[J].Acm Sigops Operating Systems Review,1996,31(9):2-11.

[2] WAINGOLD E,TAYLOR M,SRIKRISHNA D,et al.Baring it all to software:Raw machines[J].Computer,1997,30(9):86-93.

[3] TAYLOR M B,KIM J,MILLER J,et al.The raw micropro-cessor:A computational fabric for software circuits and general-purpose programs[J].IEEE Micro,2002,22(2):25-35.

[4] TAYLOR M B,LEE W,MILLER J,et al.Evaluation of the raw microprocessor:An exposed-wire delay architecture for ILP and streams[J].Acm Sigarch Computer Architecture News,2004,32(2):2-13.

[5] GORDON M I,THIES W,AMARASINGHE S.Exploiting coarse-grained task,data,and pipelineparallelism in stream programs[J].Acm Sigarch Computer Architecture News,2010,41(11):151-162.

[6] MCNAIRY C,BHATIA R.Montecito:A dual-core,dual-thread itanium processor[J].IEEE Micro,2005,25(2):10-20.

[7] KAHLE J.The cell processor architecture[C].38th annual IEEE/ACM International Symposium on Microarchitecture,Washington,DC,2005:49-56.

[8] DAGUM L,MENON R.OpenMP:an industry standard API for shared-memory programming[J].IEEE Computational Science and Engineering,1998,5(1):46-55.

[9] WOLF W.Multiprocessor system-on-chip technology[J].IEEE Signal Processing Magazine,2009,26(6):50-54.

文献[10-28]略

继续阅读>>