NoC和互联IP 供应商有Arteris、NetSpeed和Sonics。NetSpeed2018年被英特尔收购,Sonics于2019年3月又被Facebook纳入旗下,至此Arteris成了片上网络(NoC)互联IP市场唯一的IP供应商。为什么半导体厂商都盯上了NoC?

近日,致力于NoC发展的第13届IEEE/ACM国际片上网络研讨会(NoC)也公开了一份本届技术计划委员会名单。通过这份名单,让我们来一起了解下NoC领域的专家以及技术现状。

什么是NoC

随着技术进步,集成电路工艺的发展,芯片的集成度越来越高,如何有效将更多的晶体管“塞”进芯片,是芯片体系结构必须要面对的问题。在以往的发展中,芯片体系结构采用的是单核,但按照这种结构来发展,芯片设计将面临互连延迟、存储、功耗等方面的限制。因此,片上多核系统成为了理想的选择,多核能够用多个低频率核单元产生超过高频单核的处理效能。

按照不同的片上互联方式,多核SoC可分为两大类:传统的机遇总线的互联和基于网络的互联。后者是多处理器核之间采用分组路由的方式进行片内通信,也被称作片上网络network-on-chip(NoC)。

NoC 的概念是由Agarwal(1999 年)、Guerrier 和Greiner(2000 年)、Dally 和Towles(2001 年)、Benini 和Micheli(2002 年)、Jantsch 和Tenhunen(2003 年)等人逐步提出的。

NoC带来了一种全新的片上通信方法,其性能明显优于传统总线式系统(bus)。基于NoC的系统能更好地适应在未来复杂多核SoC设计中使用的全局异步局部同步的时钟机制。经过近十年的发展,NoC 技术的领域框架已经基本成形,上图给出了NoC 基础理论的体系。NoC 技术领域包括体系结构、纳米设计技术、EDA实现理论与工具等几个主要方面。

(典型的NoC结构示意图)

“体系结构”研究NoC 的基本软硬件结构,是当前学术界的研究重点。其中的“OCN 结构”研究NoC 的基础通讯架构(backbone);“拓扑结构”研究NoC通讯系统的拓扑框架;“通讯协议”着眼于基础架构中的高效通信;“NoC 软件”侧重于操作系统;“NoC 基础元件库”相当于SoC 时代的IP 库,库元件既包括SoC、IP 等传统元件,也包括链接通道(1ink)、接口、路由器、电开关等NoC 时代的特有元件;“系统集成和验证技术”研究如何在上述基础上设计NoC 芯片。

NoC具有以下特点:

片上网络有助于简化路由和交换功能所需的硬件。

可以为网络的不同区域提供多拓扑和多选项支持。

与芯片上的网络结合使用时,可扩展性,互操作性和功能开发得到增强。

与其他设计相比,芯片上的网络提高了复杂片上系统的功效。

与其他设计相比,处理同步问题更好。大多数片上系统中存在的布线拥塞也由芯片上的网络更好地处理。

片上网络提供更高的工作频率。

时序收敛更容易实现。

由于其精心设计和分层的方法,问题的验证更容易。

NoC关键技术难点

NoC关键技术主要包括系统建模、拓扑结构、路由方法、交换方法、缓存策略、服务质量和映射优化等:

存储结构问题

Memory是NoC中十分重要的组件,在现有的片上多处理器系统中,存储器占到70%的芯片面积,并且在不久的将来会上升到90%;而从能耗的角度来看,存储器所引入的功耗也可达系统功耗的90%[6],这对芯片的散热、封装和可靠性等都带来了严重的问题;NoC系统需要大量的存储元件,并被组织成复杂的存储子系统(memory subsystem),这个存储子系统将支持NoC的并行数据存储、传输及交换。NoC中大量的存储资源必将占用多个路由节点,且由于处理单元与存储资源之间的数据交换非常频繁,若在数据包传输路径上路由节点数目过多,会带来很大的通信延时。如何有效缩短源节点到目的节点间的距离对提高整个NoC系统性能十分关键。

再者,从通信带宽的角度,随着工艺的进步,计算访存比进一步增大,意味着基于该结构获得接近峰值性能的应用算法越少。这就引入了一系列问题,如何让众多处理器核有足够的数据可算?如何更充分地利用片上有限存储空间实现核间共享,以避免片外访存?如何充分利用有限访存带宽,尽量让访存通道优先满足处于关键路径处理器核的访问请求?美国Sandia国家实验室提出在多核处理器芯片上堆叠存储芯片,来解决带宽增长不足的问题,这或许是一种可行的方案。

总而言之,片上存储结构已经成为影响NoC性能的关键因素之一。

软件并行化问题

未来的基于多核的高性能处理芯片可能会遇到很多传统的串行程序自动并行化方法较难实施的应用。如果不能有效地利用NoC片上并行处理资源,则并行计算的实际性能将会很低,因此如何通过有效的方法和模型,充分地利用NoC的众多处理单元,并极大地降低应用的开发难度,便成为迫切需要解决的问题。

与并行计算机发展过程中遇到的问题相类似,NoC并行处理体系结构所面临的主要问题是如何将应用中蕴含的不同层次、不同粒度的并行性有效地提取出来并映射到多核的并行硬件结构上去。这一问题的解决涉及包括程序设计模型、程序设计语言、编译系统及硬件支撑等在内的多个方面。

总体来说,开发并行程序可以有三种途径,一是串行程序自动并行化。这条路目前尚未走通,更为实际的目标应为人机交互的自动并行化;二是设计全新的并行程序设计语言。这种方法的缺点是需要全部改写原有程序,对用户来说成本和风险也很高,且效率不能保证。但是,随着多核的出现,若面向大众推广并行计算环境,就必须有一种新的容易被接受的程序设计语言。目前国际上正在研究的新兴并行程序设计语言如IBM的X10、UPC(统一并行 C语言,C语言的扩展)和Titanmin(Java的扩展)等;第三条途径就是串行语言加并行库或伪注释制导语句的扩展,也即增加一个库或一些新的制导语句来帮助进行消息传递和并行。这正是MPI和OpenMP所采取的途径,也是目前比较容易被接受且性能较高的途径。但其程序开发效率很低,难度也比较大。

功耗管理问题

虽然NoC有助于提高芯片的能效(Energy-Efficiency),但不能忽视,由于多核系统片上集成规模的大幅度增加,功耗问题依然突出。如何在NoC设计中提高能效,对众多计算资源进行调度管理以最大限度降低功耗依然是NoC设计所面临的重要问题之一。

从体系结构角度看,NoC主要包括处理器核、核间互连以及片上存储三个主要部分。NoC的低功耗研究可以围绕功耗评估,处理器核功耗优化,片上网络功耗优化以及片上存储功耗优化这四个方面对各部分展开,其中功耗评估是NoC低功耗设计的基础。

功耗是导致包括NoC在内的多核技术出现的重要诱因,也是片上多处理器设计的重要制约因素。对于NoC的不同设计模块和设计层次,都存在行之有效的降低功耗的方法,而这些方法又可能是互相牵制,互相影响的。因此需要贯穿NoC体系结构到电路工艺的各方面的丰富知识,才能在设计早期做出正确的多核架构的选择。一般而言,从越高的设计抽象层次入手考虑低功耗设计问题,则可获得的降低功耗的效率就越大。

NoC领域的专家

NoC自1999年提出后,NoC已经有商用,只是还没有大规模应用。但是,基于未来人工智能技术的前景,已经有了一些公司开始致力于NoC的发展,包括AMD、Intel、英伟达、高通等。

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

除了公司在致力于NoC的开发以外,更多的是院校在开展相关方面的研究。通过NoCs 2019 TPC的名单,让我们认识下NoC领域的专家们。

从上述表格中,我们发现在本份入选名单中,大学等研究机构占有36位,占总数的73.5%。而在全部入选的49位中,又出现了6位华人。

Jieming Yin(AMD Research):

Yin Jieming是AMD Research的研究员。2008年,Jieming获得了哈尔滨工业大学电气工程专业的学士学位。2015年Jieming在University of Minnesota, Twin Cities获得计算机科学专业博士学位。 他的研究主要集中在设计高能效的异构多核系统,片上网络(NoC)设计和实现以及SoC组件集成。 他的工作涉及仿真方法和仿真平台开发,性能建模和功耗建模。

Jiang Xu (Hong Kong University of Science and Technology):

Jiang Xu于2003年至2005年在新泽西州NEC实验室担任研究员,负责网络芯片设计和实施。2005年至2007年他加入了纽约Sandbridge Technologies的一家初创公司,开发并实施了两代基于NoC的超低功耗多处理器片上系统。2007年,徐教授加入香港科技大学电子与计算机工程系。他建立了大数据系统实验室,Xilinx-HKUST联合实验室和OPTICS(互连计算系统光学/光子技术)实验室。

Zhonghai Lu (KTH Royal Institute of Technology):

Zhonghai Lu 1989年获得北京师范大学广播电子学士学位,并获得系统级设计硕士学位和博士学位。并分别于2002年和2007年在瑞典斯德哥尔摩的KTH皇家理工学院获得电子和计算机系统设计学位。他从1989年到2000年担任电子和嵌入式系统领域的工程师。他目前是KTH皇家理工学院电气工程和计算机科学学院的副教授。他目前的研究兴趣包括互连网络,计算机架构和实时网络物理系统。

Xinfei Guo (Mellanox Technologies):

Xinfei Guo是半导体行业的芯片设计工程师。在加入行业之前,他于2018年从弗吉尼亚大学获得计算机工程博士学位,于2012年获得佛罗里达州盖恩斯维尔佛罗里达大学电子与计算机工程(混合信号设计专业)硕士学位,2010年获得西安西安电子科技大学电子材料科学学士学位。他的博士研究侧重于可靠性设计(以“加速主动自我修复技术”为代表),用于物联网和硬件安全的新型微架构,低功耗和节能数字设计以及CAD设计方法。他目前的工作和研究兴趣包括具有高级节点的新物理设计方法,智能硬件和开源硬件(OSH)。

Weichen Liu (Nanyang Technological University):

Weichen Liu 博士是新加坡南洋理工大学计算机科学与工程学院的助理教授。在此之前,他是中国重庆大学的教员。他在香港科技大学获得博士学位,在中国哈尔滨工业大学获得工学博士学位。他当前研究的项目为新兴的多核处理器以及新兴的片上通信架构。

Dong Xiang(Tsinghua University):

董翔教授分别于1987年和1990年在重庆大学获得计算机科学学士和硕士学位。他于1993年获得中国科学院计算技术研究所计算机工程博士学位。他于1994年至1995年在加拿大康考迪亚大学担任博士后,并在伊利诺伊大学协调科学实验室工作。 Urbana Champaign,1995年至1996年。1996年至2003年,他在清华大学微电子学院担任副教授。他于2003年3月进入清华大学软件学院。现为清华大学软件学院教授。

*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。