片上网络

引言

随着半导体工艺技术步入纳米阶段,在单一芯片中集成上亿晶体管已经成为现实,据itrs(international technology roadmap for semiconductors,国际半导体技术路线图)预测,到2010年,单个芯片上的晶体管数目将达到22亿个。如何有效地利用数目众多的晶体管是芯片体系结构必须回答的新问题。倘若因循单核的发展思路,芯片设计将面临互连延迟、存储带宽、功耗极限等性能提升的瓶颈问题。因此,业内普遍认识到,有必要研究新型的芯片体系架构以适应性能增长和功耗下降同时发生这样看似矛盾的需求。多核技术是一条可行之路。多核能够用多个低频率核单元产生超过高频率单核的处理效能,获得较佳的性价比。围绕着多核的一系列技术问题业已成为近期芯片业研究的重点和未来的主要发展方向。

按照不同的片上互连方式,多核soc可分为两大类:传统的基于总线的互连和基于网络的互连。前者是现有soc的扩展,通过多总线及层次化总线等技术使得片上集成更多的处理器核,从而实现高复杂度和高性能;而后者是近些年提出的崭新的概念,即多处理器核之间采用分组路由的方式进行片内通信,从而克服了由总线互连所带来的各种瓶颈问题,这种片内通信方式称为片上网络(network on a chip,noc)。

noc概述


基本概念

noc是指在单芯片上集成大量的计算资源以及连接这些资源的片上通信网络,如图1所示。noc包括计算和通信两个子系统,计算子系统(图中由pe,processing element构成的子系统)完成广义的“计算”任务,pe既可以是现有意义上的cpu、soc,也可以是各种专用功能的ip核或存储器阵列、可重构硬件等;通信子系统(图中由switch组成的子系统)负责连接pe,实现计算资源之间的高速通信。通信节点及其间的互连线所构成的网络被称为片上通信网络(on-chip network, ocn)[1-3],它借鉴了分布式计算系统的通信方式,用路由和分组交换技术替代传统的片上总线来完成通信任务。

noc技术优势分析

基于分组路由方式进行片上通信的noc在片上通信方式、功耗、基于重用的设计方法学、解决单一时钟全局同步等方面都具有优越性。
- 有利于提高通讯带宽
总线结构是现有芯片架构的通信脉络,随着电路规模越来越大,总线结构将成为芯片设计的瓶颈:虽然总线可以有效地连接多个通信方,但总线地址资源并不能随着计算单元的增加而无限扩展;虽然总线可由多用户共享,但一条总线无法支持一对以上的用户同时通信,即串行访问机制导致了通信的瓶颈。此外,片上通信是功耗的主要来源,庞大的时钟网络与总线的功耗将占据芯片总功耗的绝大部分。
noc的网络拓扑结构提供了良好的可扩展性;noc连线网络提供了良好的并行通信能力,从而使得通信带宽增加几个数量级;此外,noc将长的互连线变成交换开关之间互相连接的短连线,这对功耗控制变得极为有利;另一方面,noc借鉴了通讯协议中的分层思想,这就为从物理级到应用级的全面功耗控制提供了可能。
- 有利于提升重用设计
总线架构可扩展性和可重用性差,为此在芯片计算能力演变时,必须跟随着处理能力的需求而变更设计(如更高的内存宽度、更高的频率、更灵活的同步或异步设计等等),每一代芯片的推出都伴随着程度不等的设计变更,这对于开发人员而言是相当大的负担。若是将通信架构独立设计,并且运用更具弹性的技术,对于缩短设计周期、减少开发成本都有不小的帮助。
由于noc所使用的通信协议层本身属于独立的资源,因此提供了支持高效率可重用设计方法学的体系结构:现有规模的soc可以基于片上通信协议作为计算节点“即插即用”于noc的网络节点;给定的互连拓扑结构使得芯片集成可以采用基于片上通信的设计方法(communication-based design,cbd)来完成。通信和计算完全分离的技术(也就是通信与计算的正交设计)将重用范围从计算单元可重用扩展到计算与通信单元皆可重用的层次,从而大大提升了重用设计的水平。
- 有利于解决全局同步的难题
纳米工艺所带来的各种物理效应使得片上全局同步越来越困难。当采用50nm工艺,时钟频率为10ghz时,全局线延迟将达6~10个时钟周期,时钟偏斜(skew)变得难以控制,而时钟树又是影响芯片功耗和成本的一个主要因素。这些问题,随着集成器件尺寸越来越小,时钟频率越来越高,将变得越来越突出。
noc的片内网络通信方式,资源之间的短线互连和天然的全局异步局部同步(gals)时钟策略等特性是解决这些问题有效途径。
总而言之,研究noc设计方法和设计技术是满足纳米工艺条件下高集成度芯片发展的必然需求。

noc设计空间

完整的noc设计方法学包括很多方面的问题,它们对noc的发展都是至关重要的,且已经引起了学术界的广泛研究。carnegie mellon大学的u.y. ogras等人在文献中提出了noc设计空间的概念并将noc研究归纳为三大类关键问题:基础架构、通讯机制和映射优化

图中,“hard noc”(网格部分)指基本架构确定,各pe节点的内容也固定的一类noc结构,其设计空间只是图中一矩形部分,设计余度最小;“firm noc”(灰色阴影空间)指其基本架构已确定,网络通道宽度与通讯节点缓存大小不确定,其他维度对设计者完全自由的一类noc结构,设计者可以根据确定的应用实现最优的布图规划、通讯调度与任务分配算法、ip映射算法和路由交换解决方案,设计空间比较灵活;“soft noc”(白色立方体部分)指设计者需要根据应用来优化noc设计空间的所有问题,设计灵活性最高,但设计难度和工作量也相应最大。
设计者根据给定的具体应用,依据应用特征图(application characterization graph,apcg),在时间、成本、技术储备等约束条件下,首先按应用选择基于哪类noc开展设计;其次在该类noc的设计空间范围内解决相应关键问题,以探索最优的noc实现方案。

noc关键技术难点

noc关键技术主要包括系统建模、拓扑结构、路由方法、交换方法、缓存策略、服务质量和映射优化等,近年来都不同程度地取得研究进展,而阻碍noc走向大规模应用的瓶颈在于以下几方面:
1. 存储结构问题
memory是noc中十分重要的组件,在现有的片上多处理器系统中,存储器占到70%的芯片面积,并且在不久的将来会上升到90%;而从能耗的角度来看,存储器所引入的功耗也可达系统功耗的90%,这对芯片的散热、封装和可靠性等都带来了严重的问题;noc系统需要大量的存储元件,并被组织成复杂的存储子系统(memory subsystem),这个存储子系统将支持noc的并行数据存储、传输及交换。noc中大量的存储资源必将占用多个路由节点,且由于处理单元与存储资源之间的数据交换非常频繁,若在数据包传输路径上路由节点数目过多,会带来很大的通信延时。如何有效缩短源节点到目的节点间的距离对提高整个noc系统性能十分关键。
再者,从通信带宽的角度,随着工艺的进步,计算访存比进一步增大,意味着基于该结构获得接近峰值性能的应用算法越少。这就引入了一系列问题,如何让众多处理器核有足够的数据可算?如何更充分地利用片上有限存储空间实现核间共享,以避免片外访存?如何充分利用有限访存带宽,尽量让访存通道优先满足处于关键路径处理器核的访问请求?最近美国sandia国家实验室提出在多核处理器芯片上堆叠存储芯片,来解决带宽增长不足的问题,这或许是一种可行的方案。
总而言之,片上存储结构已经成为影响noc性能的关键因素之一。
2. 软件并行化问题
未来的基于多核的高性能处理芯片可能会遇到很多传统的串行程序自动并行化方法较难实施的应用。如果不能有效地利用noc片上并行处理资源,则并行计算的实际性能将会很低,因此如何通过有效的方法和模型,充分地利用noc的众多处理单元,并极大地降低应用的开发难度,便成为迫切需要解决的问题。
与并行计算机发展过程中遇到的问题相类似,noc并行处理体系结构所面临的主要问题是如何将应用中蕴含的不同层次、不同粒度的并行性有效地提取出来并映射到多核的并行硬件结构上去。这一问题的解决涉及包括程序设计模型、程序设计语言、编译系统及硬件支撑等在内的多个方面。
总体来说,开发并行程序可以有三种途径,一是串行程序自动并行化。这条路目前尚未走通,更为实际的目标应为人机交互的自动并行化;二是设计全新的并行程序设计语言。这种方法的缺点是需要全部改写原有程序,对用户来说成本和风险也很高,且效率不能保证。但是,随着多核的出现,若面向大众推广并行计算环境,就必须有一种新的容易被接受的程序设计语言。目前国际上正在研究的新兴并行程序设计语言如ibm的x10、upc(统一并行 c语言,c语言的扩展)和titanmin(java的扩展)等;第三条途径就是串行语言加并行库或伪注释制导语句的扩展,也即增加一个库或一些新的制导语句来帮助进行消息传递和并行。这正是mpi和openmp所采取的途径,也是目前比较容易被接受且性能较高的途径。但其程序开发效率很低,难度也比较大。
3. 功耗管理问题
虽然noc有助于提高芯片的能效(energy-efficiency),但不能忽视,由于多核系统片上集成规模的大幅度增加,功耗问题依然突出。如何在noc设计中提高能效,对众多计算资源进行调度管理以最大限度降低功耗依然是noc设计所面临的重要问题之一。
从体系结构角度看,noc主要包括处理器核、核间互连以及片上存储三个主要部分。noc的低功耗研究可以围绕功耗评估,处理器核功耗优化,片上网络功耗优化以及片上存储功耗优化这四个方面对各部分展开,其中功耗评估是noc低功耗设计的基础。
功耗是导致包括noc在内的多核技术出现的重要诱因,也是片上多处理器设计的重要制约因素。对于noc的不同设计模块和设计层次,都存在行之有效的降低功耗的方法,而这些方法又可能是互相牵制,互相影响的。因此需要贯穿noc体系结构到电路工艺的各方面的丰富知识,才能在设计早期做出正确的多核架构的选择。一般而言,从越高的设计抽象层次入手考虑低功耗设计问题,则可获得的降低功耗的效率就越大。

noc发展趋势


向层次化众核方向发展

微软公司2007年6月在美国西雅图召开了第一个以manycore(众核)为主题的研讨会(workshop),标志着众核设计已经成为技术发展的趋势和学术研究的热点。
集成电路设计总是想方设法把现有的各种电子电路乃至计算系统集成到单一芯片上,因此计算机体系结构历来是集成电路片上系统架构的参考体系。超级计算机是最强大的计算机,充分参考超级计算机的体系结构是设计多核处理器的基本思路。超级计算机体系架构的基本特征就是小核大阵列和层次化管理。无论是世界排名第一的roadrunner(122400个核),还是排名第二的bluegene/l(212992个核),如图3所示,都是采用高性能、层次化、可扩展的巨大阵列,连接数目众多的普通微处理器(小核)来保障最优的性能。超级计算机告诉我们,小核大阵列和层次化管理必将成为众核处理器的主流技术发展方向。

向三维noc方向发展

itrs 2007年版阐述了more moore(延伸摩尔定律)和more than moore(超越摩尔定律)两个概念,如图4所示,其中延伸摩尔定律是按照等比例缩小继续走微细化的道路,而超越摩尔定律追求的是功能多样化,并指出下一代soc(noc)与sip技术融合的发展趋势。

正如itrs所预测,在工艺技术发展和设计技术需求的双重驱动下,三维集成(又称为系统级封装,sip)技术愈来愈受到学术界和工业界的关注和重视。noc虽然克服了全局延迟过长带来的信号完整性及全局同步等一系列问题,但并没有在根本上解决缩短物理连线,减小信号时延的问题。由于二维 noc布局条件的限制,难以保证关键部件相邻以缩短关键路径长度,而三维集成技术可把不同的器件层堆叠起来,不仅在真正意义上缩短了连线的长度,并克服这种布局的限制。因此把noc和三维集成这两种设计技术融合起来的三维 noc就显得自然且引人。
三维noc是在单个芯片上将资源节点(resource)分布在不同的物理层上,并用三维立体架构实现资源间的互连,以构建高带宽、低延时、低功耗的noc系统。典型的三维mesh结构noc如图5所示。三维 noc是一个崭新的研究话题,近两年才在国际上被提出(最早一篇相关研究论文于2005年公开发表)。目前从事该领域研究的学术机构包括美国斯坦福大学、加州理工大学、宾州州立大学、华盛顿州立大学,瑞典皇家工学院、日本的keio university,加拿大的不列颠哥伦比亚大学,以及intel、toshiba等大公司的研究中心。可见,三维noc已经引起了国际上学术界和产业界的注意,很可能在未来几年内发展成为一个重要的研究领域,并得到广泛的关注。

产业发展趋势

多核技术在产业界已有广泛应用。从intel、amd、sun、cisco等国际老牌企业,到picochip(2000年成立)、ambric(2003年成立)、tilera(2004年成立)等新兴公司,多核产品层出不穷;从超级计算机到pc机,从路由器等宽带应用到多媒体等嵌入式市场,多核产品逐渐广为人知。

vdc research于2007年发表了《多核计算的嵌入式应用:全球市场机会与需求分析》。报告分析了多核技术从2006年到2011年的市场需求走势,如图6所示。图中的纵轴是以2006年总值为单位1,其他年份与2006年相比多核产品市场总额的倍数关系。研究表明,多核技术到2011年,嵌入式应用领域的市场总额将超过2007年的6倍,超过2006的44倍。如此快速的增长速度决定了我国不应该介入太晚,否则就只能再次走“产品跟踪”的老路。

结语

包括noc在内的多核技术是通用处理器技术升级的大方向已成为业内共识。多核技术是当代集成电路设计的战略性技术,它以很低的功率消耗、较强的并行处理以及优异的计算性能,征服了人们对集成电路性能的追求,“成为业界的重要里程碑”(intel总裁语)。
先进的noc结构可以通过集成现有的百兆频率核形成高性能多核处理器,大大降低了技术门槛,为中等设计公司带来了机会,目前已有一批中等公司和新兴公司在多核领域崭露头角,“国际寡头”垄断高性能处理器的格局正在发生变化。对我国现有设计能力而言,即使不能“一步登天”,但完全可以做到“所想即所得”,这亦为我国发展自主产权的高性能处理器产业提供了宝贵的契机。

posted @ 2016-02-27 14:25  窗外临街  阅读(757)  评论(0编辑  收藏  举报