1 引言
片上系统(System on
Chip,SoC)将计算资源,即多个处理核和大的可重用的组件集成到一个芯片上,实现了计算资源之间的点到点的连接转向了总线的连接。相对于点到点的连接,总线的连接降低了设计的难度,减少了芯片的面积成本,有利于计算资源的标准化。
随着硅工艺的进一步发展,总线连接的通信方式面临着许多问题。1)总线限制了所连接的计算资源的数量。总线只能实现共享信道的通信,适合连接3到10个计算资源,若再增加计算资源,总线争用就会带来严重的竞争冲突,降低了信道的的吞吐量。2)深亚微米的物理层带来问题。长而细的全局总线,电阻大,消耗大量的能量;线间存在较大的偶合电容,对信号的传输造成大的干扰。3)系统信号同步问题。随着芯片集成度增加和芯片速度提高,芯片上各部分模块很难实现全局信号同步。4)芯片的设计效率和计算资源重用问题。每个片上系统有不同通信结构要求,系统内的每个计算资源也有不同通信结构要求,这就带来了重用的问题,降低了芯片的设计效率[1]。
为了解决设计复杂SoC时的问题,一些研究机构提出了以通信为中心的复杂SoC的计算资源的集成设计方法――片上网络(Network on
Chip,NoC)。NoC实现了计算资源与通信结构(网络)的分离[2,3]。目前有许多机构在NoC方面做了大量研究,具有重要影响有:意大利Bologna大学和美国Stanford大学联合研发的一个可综合的、高性能NoC的XPipes;荷兰
Philips公司研发的具有保证服务并提供尽最大努力服务NoC的?THEREAL。英国Manchester大学研发的使用握手信号进行数据交换的自定时NoC的CHAIN,法国Pierre et Marie Curie大学研发的通用可扩展NOC的SPIN。国内研究刚刚起步,主要有清华大学、西安电子科技大
学等。NoC研究涉及到从物理设计到体系结构、应用服务、设计方法和工具等诸多方面。从系统结构角度看,NoC研究的重点在于NoC的拓扑结构、NoC协议、NoC服务质量、NoC的信号同步和低功耗等问题[4,5]。
2 NoC的组成及设计流程
2.1 NoC的组成
NoC由计算资源和通信网络两部分组成。计算资源一般由IP核和本地内存组成,对应应用层上一个独立的应用,是芯片物理层上一个独立的信号同步处理区域。IP核是一个可以重构的硬件单元,例如处理器、DSP等[6]。 通信网络主要包含路由器、信道和资源网络接口。图1给出一个3x3 NoC拓扑结构。计算资源只受到芯片面积和接口的条件限制。资源网络接口将资源和网络连接,使资源相对网络透明,实现了异构计算资源间的方便、灵活的通信。NoC结构是一种片上通信基础结构,涉及了OSI的物理层、数据链路层和网络层[4]。
图1 一个3x3 NoC拓扑结构
2.2 资源网络接口
资源网络接口是计算资源与网络间的接口,目的是:1)让计算资源承担最小的通讯服务任务;2)将计算资源与网络通信部分分离,即计算和通讯间的分离,使计算资源对网络透明,从而实现异构资源间的互连,且能提高设计的重用性。资源网络接口在计算资源这一侧实现了资源接口,在网络这一侧实现了网络接口。资源网络接口易于使用分层的方法实现系统。在分离高层,易于计算资源的重用;在分离的低层使得网络资源的重用优化,提高了实际设计效率[5]。资源网络接口主要考虑地址信号,数据的打包、解包、编码,同步等问题。
2.3 拓扑结构
NOC的拓扑结构定义系统中每个计算资源结点通过信道与其它计算资源结点的连接关系。拓扑结构通常用图来描述。结构既可以是规则的也可以是不规则的。NOC的拓扑结构主要有网格结构、环网格结构、混合结构、非规则结构等,如图2所示。
图2 NOC的拓扑结构
网络传输信息的能力主要依靠其拓扑结构。拓扑结构除了对网络延迟、吞吐量、面积、容错以及功耗的极大影响外,还对路由设计策略和计算资源到网络结点的映射起着重要的作用。目前还没有一个理论方案来确定最优的拓扑结构来实现任何一个给定的应用。相对于规则拓扑,不规则拓扑构虽然能提高性能、降低功耗、减小面积,但同时可能产生版图设计、不均匀的线长等设计问题。因此,决定有效的拓扑结构以平衡高层性能与细节的实现方法受到了微米或纳米级工艺的制约。
2.4 设计流程
NOC设计分为计算资源结构和NOC结构的设计两部分。NOC设计流程如图3所示。首先进行计算资源结构设计,计算资源结构描述了应用系统的行为,计算资源单元实现系统的功能。计算资源结构设计一般涉及两种模型---行为模型和计算资源结构模型。行为模型被划分并映射到计算资源结构模型。
NOC结构的设计必须依照计算资源结构的设计。1)通信的模型化和分析。分析所有计算资源之间数据信息传输的特点,抽取传输信息的数量,信息单元的尺寸,通信的类型和速率。在计算资源结构的仿真中,通过跟踪信息流可以获取通信的特点、要求,建立通信的模型。2)拓扑结构与协议设计。在建立的通信模型基础上设计拓扑结构和协议,目标是用尽可能少的网络资源实现计算资源之间的通信要求,同时要考虑系统的性能和扩展性。这一步是NOC设计核心。3)版图规划评估。在NOC中,不是逻辑电路,而是互连结构主要影响着系统的功耗和面积。芯片的版图规划评估是通过评估时钟周期上每个互连的延迟以及分析功耗、面积,为互连获得设计要求。4)系统性能分析。在仿真平台上(例如OPENNET),通过对计算资源结构的通信跟踪,仿真NOC 结构。仿真结果可用于对不同设计的选择和完善系统的设计。如果设计不能满足性能要求或仅有太小的性能富余,必须返回前2步。5)NOC逻辑与电路设计。逻辑电路的行为由拓扑和协议的设计定义,通过硬件语言描述,并且综合。
图3 NOC 设计流程
互连设计要求有好的线路和晶体管模型。互连设计是分析的重点。6)功耗、面积分析。累加每一个活动的功耗,可计算出NOC的最大功耗;累加每一个设计部分,得到总的硅和金属使用的面积。如果功耗和面积不能满足要求,必须返回选择不同的电路设计或重新进行版图规划,最坏情况下进行拓扑结构和协议的设计。
3 NOC协议
3.1交换技术
交换技术是按照某种方式动态分配传输线路和接口的资源。交换技术包括两种主要类型,电路交换、包交换。1)电路交换 在发送数据前源端与目的端之间先建立链路,然后进行数据传输,数据传输结束后必须释放链路。交换单元可以实现空分交换或时分交换。典型的空分交换是crossbar。电路交换的优点是在数据传输过程种不需要交换结点进行路由选择,传输延迟小,并且数据是按序到达目的端。适合每次批量传输数据且实时性要求高的应用。缺点是信道利用率低,建立和释放连接浪费额外时间,缺乏灵活性,不适合突发数据的传输。2)包交换 发送数据前后不需要建立和释放链路,每个包既携带数据又携带地址信息,独立地在每个经过的交换结点上进行路由选择。包交换的优点是不需要建立和释放链路花费附加时间;在数据传输过程中动态分配带宽,信道利用率高,吞吐量高;对结点、链路故障具有容错能力。适合突发数据的传输。缺点是,在交换结点中存储整个包需要很大的缓存器,这将会增加NoC的面积成本(NoC交换结点相对于IP核,应该占用较小的面积)。为了解决大的缓存器的面积问题,将包交换使用存储转发方式改进为虚通道和虫孔路由方式[7]。
3.2 路由策略
路由是确定一个信息从源到目的的机制。依据路由算法是否随网络通信量或拓扑自适应地调整变化,路由算法可以分为静态路由选择算法和动态路由选择算法两类。NOC主要的静态路由选择算法有源路由算法和X-Y路由算法,源路由算法是由源结点指定包到目的结点的路由,X-Y路由遵循先按行走,再按列走;动态路由涉及动态分布机制,基于局部链路拥塞,能很好地适应网络状态的变化,但算法实现复杂、开销大。
3.3 流量控制
在NoC领域,流量控制被特定用于端到端之间的传输协议的业务量。它是通过利用接受端的接受速率控制发送端的发送速率。有利于避免缓冲区溢出及丢包,平滑通讯量的作用。然而通过限制注入网络包的方式进行流量控制限制了网络中同时传输包的数量。NOC可以借助在计算机网络中一般使用用滑动窗口技术,但这会增加源结点的面积成本。
3.4 拥塞控制
在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏,这种情况就叫拥塞。拥塞控制既是一个动态问题,也是一个全局问题。进行拥塞控制需要付出相应的代价。首先需要获得网络内部流量的分布信息,在实施拥塞控制时,还需要在结点之间交换信息。拥塞控制需要预留一部分资源,如交换结点的缓存,带宽等。检测NOC拥塞的主要指标有:由于缺少缓存或超时而被丢失的包的比例、平均队列长度、超时重传的包的数量;平均时延等,这些指标的上升标志着拥塞程度加重。
4 性能评估
性能评估是NoC的一个主要方面。为了比较不同结构的NoC性能,必须使用一套标准的性能评价测量。1)吞吐率 网络中单位时间由源结点传输到目的结点的数据量。它衡量一个网络传输数据的能力和效率。影响NOC吞吐率的因素很多,物理线路的质量,路由算法,流量和拥塞控制的策略。2)延迟 指在NoC从源结点发送数据包头部信息开始,到目标结点接受数据包尾部信息为止所经历的时间(以时钟周期为单位)。流控单元(Flit)从源结点到达目标结点,必须经过由交换结点和网络互连所组成的一条路径。每一个信息根据源结点和目的结点以及路由算法,会产生不同的延时。3) 面积 NOC的通信网络部分的面积主要由互连线、资源网络接口及路由器上的队列、交换结构、路由和仲裁逻辑电路结构。片上网络互连线比较长,一般需要加入带有缓存的中继器,以确保互连线延时不超过一个时钟周期。因此,必须考虑中继器的缓存面积。4)功耗 NOC 动态功耗主要有两个来源:结点功耗和网络互联功耗。每一个结点处理器内部的操作产生结点功耗。网络互联功耗是指当包在互联网上传输时,互联线和每个交换结点内部逻辑门的功耗。估计功耗时,需要计算线和逻辑门的功。KTH开发了一个Nostrum的模拟环境[5],可以进行网格结构和环网格结构结构网络性能评估并给出相应的分析结果。Princeton大学开发了可以进行功耗估计的Orion动态功耗模拟器和周期精确链路功耗估计的LUNA功耗性能模拟器,它们嵌入在PoPNet 网络模拟器。
5 NOC技术研究发展方向
NoC研究目前主要集中NoC的拓扑结构、NoC协议、NoC服务质量、NoC的信号同步和低功耗等方面。NOC下一步研究发展方向为:1)研究针对具体应用的映射算法。不同的应用具有不同的通信和流量模型,考虑通信的局部化,面积均匀化,以及IP核可重用等,需要研究特定的映射算法,映射算法影响NoC的功耗和性能。2)研究容错处理技术。对于纳米级的物理效应,漏电流、场效应会带来信号的完整性问题、以及器件和连线瞬时或永久的失效问题,研究容错技术,提高NOC的可靠性。3)研究具有重构和自重构能力的计算资源结构及相应的实现电路。使得应用系统在设计时能适应协议、标准和应用的变化,而在运行时又能适应运行条件的变化。4)异步电路的实现问题。传统的SOC采用的同步电路,在IC设计中同步电路设计技术比较成熟,NOC采用全局异步局部同步的策略,这就一方面产生了全局异步与局部同步接口问题,另一方面考虑改变传统同步电路为异步电路实现大问题。5)NoC的研究将会更加针对于实际应用,如面向无线通信、图像处理和多媒体应用。
6结束语
本文作者创新点是在系统研究相关文献的基础上,分析、给出了NoC研究的关键技术:设计流程、拓扑结构、路由技术、交换技术、性能评估;并指出了目前研究存在的问题和今后的研究方向,这对该领域的探索研究有一定的意义。随着半导体技术的发展以及电子产品的功能、复杂度的增加,片上系统的规模越来越大,NOC将成为SOC发展的主要方向。