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