片上网络(精选8篇)
片上网络 篇1
1片上网络概述
1.1 No C基本概念
一个No C由路由节点、网络接口和处理单元这三种基本要素组成。No C像计算机网络一样可以分为通信子网和资源子网。通信子网由网络接口一边的所有路由节点及其间的物理链路构成,专门负责No C各个节点间数据的传递以及路由。资源子网由网络接口另一边的所有处理单元构成,负责处理数据,完成目标任务。
1.2 No C死锁问题
互联网络的节点通过网络接口发送、接收消息或报文,消息和报文都携带了目的节点的信息。在直接网络中,报文到达目的节点之前通常要经过多个中间节点。而在开关网络中,报文到达目的节点之前通常要经过多个开关。但是,即使每个报文都存在连续源与目的的节点的无故障路径,有的报文仍可能不会到达目的地。假设路由算法可以使用那些路径,但在有的情况下报文仍不能发送。例如中间节点或开关需要一定的缓冲器来存储部分报文或整个报文。但是缓冲器的容量是有限的。对于那些报文头还没有到达目的节点的报文,一方面要请求缓冲器,另一方面又要占用当前缓冲报文的缓冲器,这就可能产生死锁。当某些报文因为请求的缓冲器满而不能朝着他们的目的地前进时,将会产生死锁。包含在死锁配置内的所有报文将永远被阻塞。一个报文由于目的节点不能吸收它,也可能永久性的被死锁在网络中。这种死锁是在应用中产生的,在死锁状态下,一组报文将永久被阻塞,每个报文总在请求其他报文占用资源,而自己又占用着其他报文所请求的资源。
2 No C多播通信及容错算法设计
2.1多播通信概念
多播是一种一点对多点的通信技术,即允许一台或多台主机发送单一数据包(一次的,同时的)到多台主机。多播通信方式能有效的节约网络带宽,而片上网络亦采用网络设计的思想,因此将两者有机的结合能提高通信效率,改善片上网络性能。在片上网络多播通信中,多播通信方式分为三种方式,一种是基于路径的(path_based)多播通信,该通信方式限定多播数据包拷贝的数量和位置,为了能正确传送到目的地,多播数据包得在包头中带上各个目的地的地址,遵循特定的路径和方式将数据包传送到目的地,这种方式虽然能避免死锁,但是增加了数据包的长度以及网络延迟。另外一种方式就是基于树(tree_based)的多播通信,这种通信方式是通过建立多播树来实现的,这种方法可以减少延迟,但是如果不干预注入队列,容易产生死锁,因此需要合适的方式来控制死锁,最后一种为适应性(adaptive)多播通信方式,该方式从某种意义上结合了基于路径和基于树的两种方式的优点,但是实现这种方法需要特殊路由的支持,如多播旋转路由MRR(Multicast Rotar Router)就提供了对适应性多播通信的支持。
2.2基于路径的多播路由算法
为了支持无死锁的多播和广播虫孔路由。除非消息非常短,否则基于树的通信模式性能不会很好,因为如果任何一条分支被阻塞。整个树都会被阻塞。一种解决方法是阻止在中间节点的分支,从而形成多播路径模式。为了减小多播路径的长度,目的节点集可以分成几个不相交的子集,源消息的副本可以在不相交的几条多播路径上传送,每条路径对应一个目的节点子集。这种多目的路由策略称为基于路径的路由。
2.3基于路径的多播容错路由算法
本文采用矩形故障模型,并对每个矩形故障域增加了扩展的边界线,并且要求故障区不存在共享边界.例如在2维mesh网络中,任意2个属于不同故障区的路由器的水平和垂直距离至少为3。一般来说,构造凸故障区的过程即声明某些非失效路由器为不安全路由器的过程:
(1)若路由器有2个及2个以上的邻居是失效路由器或不安全路由器,那么该路由器也是不安全路由器。
(2)若路由器有一个水平(垂直)方向的邻居是失效或不安全路由器,并且有一个垂直(水平)方向的距离为2的邻居是失效或不安全路由器,那么该路由器为不安全路由器。
因为包含在故障区内的不安全路由器不允许参与网络通信,因此与其相连的处理器以及存储器单元(即使没有故障)也不能对系统做出贡献。为了减少系统在网络有故障情况下的性能损失,故障模型应该尽可能少地声明不安全路由器。
3实验结果与分析
本文在结合C和C++语言的基础上,开发了片上网络多播模拟器。模拟器中采用虫孔交换机制,仿真数据的最小单元是微片,其中每个消息都固定为32个微片大小,每个通道的缓存固定为32,本算法的最大特点是不使用任何虚拟通道,本模拟器执行步骤如下:
1初始化MESH网络,设置包的状态为NONE,并清空所有通道的缓冲。
2读取输入的包生成间隔时间并初始化工作计数器。
3对于每一个节点,在每一个周期内都更新数据和包的状态标识。
4当所有任务运行结束后,将结果参数写入到指定的文件中。
3.1单播路由算法性能比较
本次模拟实验中,对于本文中提出的路由算法单播方面和传统的XY路由算法进行了对比,目的地址是随机产生的,MESH大小分别为4×4和8×8,运行周期为500,微片和缓冲大小均为32,分别采集了不同注入率下两种算法的平均消息延迟。
3.2多播容错路由算法性能比较
本次模拟实验中,对于本文中提出的多播容错路由算法进行了仿真,目的地址是随机产生的,MESH大小为8×8,运行周期为500,微片和缓冲大小均为32,分别采集了在单个故障域、多个故障域和不同注入率下容错算法和不容错算法的平均消息延迟。
本文提出的多播容错路由算法,相对于原来的不容错路由算法,平均消息延迟有了一定程度上的降低,而且这种降低比率在高注入率(注入率大于0.5)更加明显。8×8MESH中单故障域情况下,随着消息注入率的提升,两个算法的丢包率都在上升,但是本文的容错算法显然具有更低的丢包率,容错算法的丢包率降低了大约0.03,说明本文的算法具有较好的单故障域容错性能。
摘要:随着集成电路制造工艺的不断发展,集成在芯片上晶体管的数量也随之增多,已超过几十亿晶体管的规模,因此芯片上可以集成越来越多的IP核。随着芯片中IP核数量的增多,基于总线结构的片上系统(System-on-Chip,So C)已不能满足数据的通信要求,为了解决这个问题,片上网络(Network-on-Chip,No C)作为一种全新的互联结构被提出来。其核心是把网络设计的思想移植到芯片设计中,将片上资源互连起来,并将计算与通信分离。片上网络具有很好的空间可扩展性,采用的全局异步一局部同步的通信机制使并行通信效率更高。NOC带来了一种全新的片上通信方式,它的引入有利于提升可重用设计、解决通信瓶颈和全局同步等难题。本文在研究片上网络结构的基础上,针对片上网络多播通信的特点提出了一种多播容错路由算法。
关键词:片上网络,多播通信,容错路由
片上网络 篇2
摘 要 本文针对《片上系统(SoC)设计导论》课程的理论教学中出现的问题,根据社会对集成电路设计人才的需求,结合该门课程的教学内容和教学计划,对该门课程进行项目化教学探讨。
关键词 片上系统设计导论 集成电路设计 项目化教学
中图分类号:G642 文献标识码:A 文章编号:1002-7661(2015)17-0010-02
随着半导体工艺和集成电路设计技术的发展,集成电路的规模可以达上亿个晶体管,已经发展到片上系统SoC(System on Chip)。现代片上系统(SoC)是利用IP核(Intellectual Property Core)复用和深亚微米技术,采用软件和硬件结合的设计和验证方法,在一块芯片上实现复杂的功能。它广泛应用于汽车、医疗设备、手机和其他消费电子,其应用领域的市场应用结构如图1所示。
图1 2013年集成电路设计市场应用结构
图2 2008-2014年集成电路行业的产值
2008年以来,我国集成电路产业总产值从2107亿元增长到2915亿元。2014年,据国家统计局统计,共生产集成电路1015.5亿块,同比增长12.4%,增幅高于上年7.1个百分点;集成电路行业销售产值同比增长8.7%,增幅高于上年0.1个百分点。集成电路行业的产值如图2所示。
近年来,半导体集成电路产业在国家政策支持下发展迅速,因此对人才的需求在不断增加。据权威机构报道,2010年以来,中国IC产业对设计工程师的需求将达到30万人以上,并且逐年增加,但目前国内实际人才数量相较于需求远远不够。高校是人才培养的摇篮,但高校大多数教授基础概念,并了解基本的设计流程和设计方法,远不能满足行业的要求。
针对这一现象,《片上系统(SoC)设计导论》课程将结合《固体物理》《半导体物理》《数字集成电路设计》《模拟集成电路设计》《VHDL语言》等多门课程,以项目化教学的形式进行教学,并且对其进行探讨。
一、采用项目化教学改善学生只会理论、不会设计的现状
(1)解决SoC设计与相关课程之间的内部联系,教学内容主要涉猎到相类似的部分,通过将一个大项目分解成几个小项目,通过逐渐加大项目的难度,使学生在项目中逐渐加深了对知识点的理解,并且将课程的主要内容相互衔接与融合,形成完整的SoC设计概念。例如通过对矩阵加法器的项目分解如下几个小项目来实现,具体项目如图3所示。通过这些项目设计过程完整地训练,既培养了较强的SoC设计能力,还提升了学生的择业面。
图3 项目流程图
(2)项目中会先有示例,然后引导学生对分解的小项目做设计,熟悉设计流程和设计方法,而且解决了理论教学与实践教学相脱节的问题,转变了传统的理论教学方式,达到较好的教学效果。
二、 通过PDCA戴明环的方式改善设计的产品不能用的问题
(1)在SoC设计的过程中,通过跟踪课内外学生设计中反应的问题,对项目难易度的进行调整,提高学生的综合素质,逐步锻炼和培养学生的自主学习、团结协作等能力。
(2)结合新的技术或者领域,对项目进行适当的调整,在基础层上让学生边学边做,在单个简单的模块中进行训练,最后实现复杂的项目要求的功能,达到SoC设计能力的提高。
通过PDCA戴明环的方式来持续改进教学方法,对教学内容和教学计划进行合理和高效的修改。PDCA戴明环如图4所示。
图4 PDCA循环
三、小结
教师指导学生设计一个完整的项目,其中包括需求、硬件设计、软件设计、验证等部分。学生不仅掌握了基本概念,也提高了设计实践能力,更提升了团队意识。《片上系统(SoC)设计导论》课程项目化教学改变了传统的理论课教学方式,以目标为导向,以设计作为考核标准,充分发挥了学生的能动性和协作能力,使学生理论与实践齐头并进,缩短了与集成电路设计人才的距离。
参考文献:
[1] 陈超,王心一,王成华. 基于PSoC的实验教学平台开发[J]. 实验室研究与探索, 2010,29(10):110-113.
[2] 马仁杰,王荣科,左雪梅等. 管理学原理[M]. 北京:人民邮电出版社,2013,(9).
[3]周殿凤.片上可编程系统项目化教学探讨[J].轻工科技, 2013,(5):190-191.
[4] 张丽霞.可编程片上系统项目化教学设计探讨[J]. 电子世界, 2014,(3):178.
基金项目:(1)重庆市高等学校教学改革研究重点项目(132014); (2)重庆市高等教育学会2013-2014年高等教育科学研究课题(CQGJ13C446);(3)重庆市教育科学“十二五”规划课题(2014-GX-006)。
片上网络性能及功耗仿真实验研究 篇3
工艺飞速发展,芯片集成度越来越高,片上系统结构日益复杂。片上共享总线技术不断改进,但其局限性仍极大地阻碍了片上系统的进一步发展。因此采用片上网络成为可替代片上共享总线系统的新型解决方案。
多核课题中,片上网络成为解决片上系统互联问题的研究热点,关于片上网络的研究主要集中在任务映射和路由器。软件模拟和综合成硬件是片上网络领域主流的分析方法[1]。考虑到教学实验和创新研究的通用性和灵活性等特点,综合定制芯片原型无助于由浅入深地理解片上网络的体系结构,且因其特性固定故不适合进行灵活地实验,再者原型实际测量工作很复杂,教学实验并不适合采用综合芯片原型的方法。软件建模和模拟方法对于设计流程、模块集成和片上网络概念的验证相当重要。在设计片上网络时,有一个具备分析处理单元、片上互联等性能参数的仿真实验平台,对研究片上网络的实验教学以及创新设计有重要意义。
受所有权保护,多数片上网络工具不开放,免费的片上网络软件仿真实验平台,如Noxim、NIRGAM、OCCN和NIRGAM等作为常规参考对研究工作是相当有帮助的。本文以NIRGAM[2]模拟器作为片上网络仿真实验平台,因其开源、文档丰富等优点,且基于SystemC便于进行软硬件协同设计和验证。
本文分析了片上网络体系结构及NIRGAM片上网络仿真平台,基于2D MESH片上网络架构实现了JPEG编码器和XYYX[3]路由算法,并对三种路由算法进行了功耗与时延的对比实验,体现了NIRGAM在应用和路由方面扩展的便捷性以及在网络时延和功耗方面的评估能力,表明了基于SystemC片上网络仿真实验平台在教学和研究方面的可行性。
1 片上网络体系结构
1.1 片上网络组成要素
一个片上网络由路由器、网络接口和处理单元这三种基本要素组成[4]。
片上网络像计算机网络可分通信子网和资源子网。通信子网由网络接口一边的所有路由器和其间的链路构成,负责各个节点间数据的传递及路由功能。而资源子网由网络接口另一边的所有处理单元构成,负责处理数据,完成目标应用的功能。
网络接口是处在资源子网与通信子网间的装置,起到数据连接和转换的功能。它通常具有双向功能,实现网络的上行与下行。
1.2 处理单元
处理单元可以是任何异构的核。大致分为以下三种类型[5]:作为发送器,只生成数据。它所发送的数据服从某种分布,具有包注入率、包和片尺寸、目标地址等特征。作为接收器时,只消化从片上网络发来的数据包。它具有接收率这样的特征。加工器是指处理单元对数据进行加工,或从数据中获取信息完成一种任务,然后向网络发送一组新数据。整个资源子网通过一系列代表各种任务的处理单元对数据的协作加工,达成目标应用。
片上网络中的处理单元并不是单纯的发送器或者接收器等,而可能因仿真实验的需要具备多种能力,如通信量生成器,它可以同时是收发器,向通信子网注入代表各种特征分布的数据。
1.3 路由器
路由器是一个交换单元,负责把数据包转发至目的地。以通常的2D MESH拓扑结构片上网络为例,路由器具有4个方向端连接邻居节点,1个端连接本地处理单元。若是其他拓扑,路由的方向数是不同的。路由器根据路由策略来决定从哪个端转发。
有效的路由策略不仅对传输时延,而且还有网络能耗和拥塞状况产生影响。根据决策自适应性分为确定性路由和自适应路由两大类,其中确定性路由是指根据源目的地址确定的路由方式,源目的节点之间只有一条转发路线,而自适应路由则根据网络中各节点的拥塞状况等绕远路。根据路由决策者分为源路由和分布式路由两种,其中源路由是指路由完全由源节点指定,而分布式路由表示路由策略由中间各个节点根据情况而定。根据实际路径情况分为最短路径路由和非最短路径路由,顾名思义前者指实际路由的路径是源目的节点间最短的路径,而后者指的是实际路径可能不是最短的选择。另外还有一些特殊的路由策略,如防死锁、活锁等。
2 基于SystemC的片上网络仿真实验平台
片上网络实验平台可以采用ESE、OPNET、OMNeT++和Ns-2等通用网络建模工具自行建模,也可以采用由各个研究组织开发和提供支持的免费模拟器,如Noxim、OCCN、NIRGAM[2]和NNSE等。
SystemC是由OSCI开发的统一建模平台,为系统设计提供了统一的语言以便更好地进行软硬件协同设计和验证。它在C++基础上添加一个SystemC类库。类库是采用C++编写的各种函数和数据类型等的程序库,将并发、时钟和特殊数据类型等硬件描述概念引入C++,使其能够对硬件进行建模描述。
基于SystemC的片上网络实验平台主要有四个:Noxim、NIRGAM、NNSE和OCCN。
(1)Noxim由卡塔尼亚大学的计算机体系结构团队开发和维护。Noxim基于SystemC,采用命令行的方式对片上网络的各种参数进行配置,可以对拓扑规模、缓冲区大小、包尺寸的分布率、路由算法、选择策略、包注入率、通信分布、通信类型以及热点通信分布进行自定义配置,可以按照吞吐量、延迟和能耗对片上网络进行性能评估。
(2)NIRGAM由英国南安普顿大学电子与计算机科学院电子系统设计团队和印度Jaipur Malaviya国家技术研究所计算机科学与工程系联合开发。NIRGAM基于SystemC,是一个采用模块化设计,可扩展的片上网络模拟器,能够对拓扑、虚通道、缓冲区、路由算法以及IP核应用进行自定义配置,可以方便地对模拟器进行扩展,追加IP核和路由算法以评价新的应用。NIRGAM输出平均延迟和吞吐量作为片上网络性能评估参考。
(3)NNSE由瑞典皇家技术研究所电子、计算机和软件系统系研究开发。NNSE基于SystemC支持AXI,网络和通信参数配置采用XML方式,对拓扑、流控制、路由算法及通信类型等进行配置,通过产生的延迟和吞吐量对片上网络进行性能评估。
(4)OCCN由意法半导体公司、AST Grenoble实验室研究开发。OCCN基于SystemC,对通用通信API做了定义,为片上通信建模提供了灵活开源的库文件。通过OCCN库可以构建各种片上通信架构。
OCCN可参考的资料较少,官方提供的参考文档陈旧。NNSE文档最丰富,且国内有来自国防科技大学、南京大学、复旦大学和华为公司等的研究组采用其进行长期研究,但NNSE模拟器本身未提供方便的扩展API,扩展时需对内核进行修改。Noxim模拟器代码规范,适合作为理解片上网络架构的指导,但同样没有提供方便的扩展API,需要对模拟器的各个部分做修改,不利于反复做对比实验。NIRGAM文件结构清晰,专门提供了IP核、通信量类型和路由算法的扩展API,通过说明手册方便使用,且能够生成统计图,结果分析更直观、方便。下一节以NIRGAM为例,对片上网络体系结构以及NIRGAM本身作进一步分析。
3 NIRGAM仿真实验平台教学实验
3.1 NIRGAM仿真实验平台架构
NIRGAM核心引擎从配置文件nirgam.config中获取NoC拓扑构建和模拟过程所需的参数,从配置文件application.config中获取指定的应用程序映射关系,然后按照上述参数配置并全局控制模拟器,构建所描述的目标NoC实验平台,将应用程序库以及路由算法库与NoC中的每个节点绑定起来以表达应用,使NoC实现特定功能。NIRGAM模拟结束后,将期间采集到的信息和最终统计数据保存至文件,以供导出分析或绘制Matlab和gnuplot等图。
NIRGAM模拟NoC的行为,必须模拟NoC的基本构件及通信机制,这些由NIRGAM核心引擎来实现,如图1所示。
3.2 NIRGAM核心引擎结构分析
(1)NoC模块对平面2D片上网络网络拓扑模型做了整体描述,包括呈平面矩阵分布的若干tile(网络节点)以及作为tile间相互通信介质的若干signals(节点外部信号),并将它们按照指定的拓扑规则进行组合,构成一个平面网格网络。该模块同时还负责统计模拟运行的周期数。
(2)BaseNWTile和NWTile模块对片上网络节点结构和功能进行了细致描述。其包含了5种子模块——输入通道、输出通道、VCA(虚通道分配器)、调度器以及应用程序IP核——用以实现网络节点的交换、路由、流控等功能。
(3)InputChannel模块对输入通道的结构和功能进行了描述。一个输入通道负责接收并缓存一个方向上的数据,将其源和目的地址发送给调度器,同时也把虚通道标识发送给VCA,等待调度器的路由指令以及VCA分配下一个虚通道号,然后根据指令转发给对应目标方向上的输出通道。
(4)OutputChannel模块对输出通道的结构和功能进行了描述。输出通道接收从各个方向输入通道转发的数据并向对应方向传递数据。
(5)VCAllcator模块对虚通道分配器的结构和功能进行了描述。虚通道分配器据本地输入通道所获的邻居节点输入虚通道的状态信息,确定接下来进入输出通道的对应虚通道号,并给该输入通道指令做出决策。VCA中动态缓存了4向邻居节点以及连接IP核的输入虚通道状态信息。
(6)Controller模块对调度器的结构和功能进行了描述。调度器据源目的地址及邻居节点输入通道状态,对本地输入通道做路由决策。
(7)ipcore模块对处理单元的基础结构和功能进行了描述。用户可根据需要继承该模块,追加新功能。IP核完成了一个或一组任务,通过输入通道和输出通道构成的应用网络接口与NoC对接,收发数据。一系列IP核达成特定的应用。
3.3 NIRGAM教学实验
3.3.1 NIRGAM处理单元设计实验
罗提出将通信量生成机制与注入机制封装在一个处理单元内部,可以在不影响处理单元内其他模块时,仅改变通信量生成机制以此改变资源子网向通信子网发送的数据特征,全面地评估片上网络性能[6]。本文构建的一组处理单元不是作为通信量生成器生成抽象数据特征,而是代表了JPEG编码过程中各个任务,协作完成JPEG基本的编码功能。
每个tile上的IP核代表一个任务。NIRGAM允许用户将IP核动态的与任何一个tile绑定,以此赋予一个tile处理某种任务的能力。如果没有绑定任何IP核,那该tile表现为纯路由节点,只负责根据策略提供路由转发功能。处理单元设计是在继承基础IP核模块之上编写自己的IP核。
据JPEG编码器原理图,按照进程网络模型[7]理论,分解成5个独立的任务,分为位图输入、DCT变换、量化、Z字形变换、哈夫曼编码输出5个任务。根据这5个任务,在基础IP核模块中加入实现其相应任务的函数,使得触发recv进程时调用函数处理数据包,处理完毕的同时触发send进程将新数据包送回网络中,由网络传递给下一个节点,交给下一个处理单元完成下一步任务。如图2所示是JPEG编码器应用IP映射拓扑结构,由NIRGAM通过application.config配置文件确定。
NIRGAM模拟结束生成m文件,由Matlab建模工具运行得到此次模拟中所统计的平均吞吐量,可知这5个任务的负载是不均衡的,其中包都是从位图输入模块注入,所以该处的端口吞吐量很大,且产生了较大的发送延迟。其他模块都是边接收,边处理,边发送的方式,所以能及时将数据送出,避免通道堵塞。该实验采用XY路由,是一种确定性路由,不会根据网络状况均衡负载。于是可以对IP核在拓扑上的布局做优化,使得负载更均匀。结果直观,实验灵活,可以大大缩短对方案调试和修正周期。
3.3.2 NIRGAM路由器设计实验
越智能的路由器,其逻辑越复杂,功耗越大。NIRGAM的路由扩展可以直接使用模拟器所提供的API,复杂度更高更智能的路由策略,甚至需要对NIRGAM的核心引擎进行修改,如输入输出通道等。
本文以董提出的基于Turn model原理的XY增强型XYYX路由算法[3]为例进行了路由设计实验,该算法的特点是改善了XY路由算法在x方向上的拥塞情况。其算法思想巧妙但不复杂,可以直接利用API的calc_next功能。
模拟结束,观察由NIRGAM统计的平均片时延,如图2算法使得网络中xy方向的延迟都很小。每个片的具体路由可以通过写入日志留作分析查看。上图可以很直观的看到该路由算法对于该应用模型是否合适,以便做出调整。软件仿真实验平台对问题的反应更迅速,方便了算法的优化。
3.3.3 NIRGAM路由算法对比验证实验
在上一小节的基础上,掌握了新路由算法的基本设计方法,并且通过NIRGAM可以生成直观的拓扑性能图,可以方便对当前XYYX路由算法的效果进行分析,但是却不便于路由算法之间的定量对比,这时可以从NIRGAM的日志文件中提取时延和Orion模块统计的功耗数据。Orion模块能够计算出链路和路由器的参考功耗。
本文以4×4 MESH拓扑结构为实验环境,采用CBR恒定码率的通信量模型向网络中注入数据,其中数据包的目的地址选择随机模式。在此基础上,对XY、OE和一种改进型的XY容错路由算法进行定量的对比分析,如图3所示。
OE是一种基于Turn model原理的自适应路由算法,判决逻辑相对于简单的XY确定性路由算法复杂,因此功耗始终相对较大。在本实验环境中并无出现故障点,随着数据注入率递增,改进型XY容错路由算法和XY路由算法功耗相当。逻辑简单的XY路由算法对flit的处理过程是最快的,因而时延最小,另两种算法在节点都需要进行较多的判断,其中因为实验环境无故障点,容错XY路由算法无须对故障点进行过多的判断,所以和XY算法时延接近。当注入率达到0.9时,网络出现丢包现象,时延陡增。
4 结束语
多核课题中,片上网络成为解决片上系统互联问题的研究热点,关于片上网络的研究主要集中在任务映射和路由器等。本文以免费开源的NIRGAM模拟器为例,实现了基于片上网络架构的JPEG编码器和XYYX路由器,并对路由算法进行了时延与功耗的对比实验。实验中分析的基于SystemC片上网络仿真实验平台拥有灵活的扩展能力和性能评估能力,满足了片上网络教学实验的需要,也为开展片上网络设计与创新提供了支持。实验平台都采用软件方式模拟片上网络的行为,实现了对其的整体模拟,有效地缩短了片上网络设计和验证的周期,增强了研究的可测试性和效率,从而提高教学的质量和效率。不足之处在于功耗仿真能力偏弱,不如芯片原型接近实际,需要未来更进一步的研究。总体上,基于SystemC的片上网络仿真实验平台,方便教学实验,有利于提高学生的创新和动手能力。
参考文献
[1]Erno Salminen,On network-on-chip comparison[J].Digital SystemDesign Architectures Methods and Tools,2007:503-510.
[2]Lavina Jain,NIRGAM[EB/OL].(2011).http://nirgam.ecs.so-ton.ac.uk.
[3]欧阳一鸣.基于2D Mesh的NoC路由算法设计与仿真[J].计算机工程,2009,35(22):227-235.
[4]William J Dally.Principles and practices of interconnection networks[M].California:Morgan Kaufmann Publishers,2004:1-42.
[5]Kubisch S.E-Core-A Configurable IP Core for Application-specificNoC Performance Evaluation[J].DAC Workshop on DiagnosticServices in Network-on-Chips,2007.
[6]罗丹.基于OCP接口的片上网络性能评估平台[J].中国集成电路,2010,19(8):45-50.
片上网络 篇4
片上系统(SoC)[1]是当今微电子芯片发展的必然趋势,在日常生活中有着广泛的应用。随着片上系统处理器数目急剧增长,传统总线传输方式已不能满足片上系统的通信需求。片上网络(NoC)[1]作为解决片上系统通信需求的新技术,被视为未来片上系统的主流通信方式,具有重要研究意义。
与基于总线的通信方式不同,NoC采用分组路由的形式来传输数据[2]。二维mesh片上网络是最常用的NoC模型,也是目前绝大多数NoC相关工作的研究对象。图1是一个二维mesh片上网络示意图,其中A为资源节点,B为网络适配器,C为路由节点,D为链路。一个完整的NoC包括BCD三部分。
随着CMOS技术发展到深亚微米,甚至是纳米阶段,芯片对辐射和温度的变化越来越敏感,错误也变得越来越难以预测和避免。在当前工艺背景下,人们很难从设计和制造角度消除这些错误[3],所以对NoC容错路由算法和各种重传机制的研究显得必不可少。NoC上的错误分为瞬时错误和永久性错误两种。
瞬时错误是指信号传输中串扰造成的比特翻转[4],它具有不可预见性和不可重复性,故NoC上一般采用重传机制来克服瞬时错误。Murali介绍并分析了端到端请求重传、交换机到交换机请求重传、混合请求重传三种请求重传机制[5]。文献[6,7]分别提出了一种发送者主动发送冗余分组的容错通信机制。
永久性错误是指NoC上各种硬件的永久性损坏,包括链路损坏、路由器损坏等,是一种不可恢复的错误。由于路由器损坏可以视为一种特殊的链路损坏,各种NoC容错路由算法的主要研究内容是如何克服链路损坏问题。
为了解决NoC链路永久性损坏的问题,本文提出一种基于前缀的容错源路由算法(Prefix-based Fault Tolerant Source Routing, PFTSR),该算法适用于二维mesh片上网络。与各种片上网络非源路由算法[8,9,10]相比,源路由算法可以探测到更多路径,便于发现并解决路由中的问题。对于源路由算法,最重要的问题在于如何为分组指定路径。与典型NoC上容错源路由算法SRN[11]相比,本文提出的算法大大减少了路由发现阶段所产生的路由请求分组,从而降低该阶段功耗。同时PFTSR具有可以压缩路径存储信息,可能找到更多的路径等优点。
1 相关工作
NoC上容错路由算法可以分为非源路由容错算法和源路由容错算法两种。
1.1 非源路由容错算法
在非源路由容错算法中,分组路由取决于目标节点的位置。非源路由容错算法可以分为基于本地链路情况的算法和基于路由表的算法。Zhen提出的算法[8]是一种基于本地链路情况的算法,它对XY路由进行修改以绕开断路。这种基于本地链路情况的容错路由算法的缺点算法性能受断路数量和分布的影响较大。Schonwald提出的FDWR算法[9]和C. Feng提出的FTDR算法[10]均为基于路由表的容错路由算法。在这类算法中,各个节点都需要创建和维护一个路由表,表中记录本节点通过各个方向到其它节点的估计距离。每个到达节点的分组由路由表信息来决定转发方向。这类算法的缺点在于创建和维护路由表需要大量时间和空间。
1.2 源路由容错算法
与非源路由算法相比,源路由算法允许源节点根据需要探测更多到目标节点的路径,便于发现和解决问题。在源路由容错算法中,分组路由信息由源节点确定,如何为分组确定一条传输路径是最主要的工作。Kim[10]将普通网络的源路由算法应用于NoC上,提出片上网络的容错源路由SRN算法,在该算法的路由发现阶段中,源节点采用广播路由请求分组的方法收集各个中间节点的地址信息。为了减少冗余分组的数量,中间节点只在第一次接收该路由请求分组并且未发现自己的地址时,对分组进行广播。当目标节点收到路由请求分组,它会将已记录完整路由信息的分组发给源节点。
这种算法的主要缺点是路由发现方法具有盲目性,采用广播路由分组会造成大量的冗余数据包。对于一个二维mesh片上网络,源节点和目标节点之间的路径是可预测的。我们可以通过预测并根据反馈调整的方式来探测路径,从而减少路由请求分组的数量。
2 基于前缀的容错源路由算法
本文提出一种适用于二维mesh片上网络的基于前缀的容错源路由算法PFTSR。该算法的优点在于:
(1) 克服了SRN算法路由发现阶段广播路由请求分组造成大量冗余分组的问题;
(2) 对路径表示方法进行改进,压缩路由信息;
(3) 与SRN算法相比可以发现更多从源节点到目标节点的路径;
(4) 不依赖于路由表,从而不需要大量的存储空间和预处理时间,适用于大规模片上网络。
2.1 PFTSR算法描述
在PFTSR算法中,对于任意源节点A(xa,ya)到任意目标节点B(xb,yb)之间的任意路径λ=l1l2l3…ln,若其中l1…li完好而li+1是断路,那么l1…li+1称为该路径的前缀。若λ的长度等于
该算法要求每个节点保存本地链路信息,每个方向的链路状态由一个二进制位表示,0表示链路正常,1表示链路损坏。源节点每隔一定时间发送一个路由请求分组。该路由请求分组不是采用广播方式传播,而是由源节点事先指定一条可能的路径。在初始阶段,源节点会随机生成一条到目标节点的曼哈顿距离路径封装在路由请求分组中,如果该路径不经过损坏的链路而成功到达目标节点,则目标节点发送一个ACK反馈分组让其原路返回。当源节点收到一个ACK反馈分组,则表明路由发现成功。若路由请求分组所沿路径包含断路,则断路之前的节点会向源节点发送NACK反馈分组。
源节点根据反馈信息提取路径的前缀,以获得断路位置信息,并由本地资源节点维护一个前缀表。前缀表的大小由用户根据实际需要确定,每提取到一个新的前缀,资源节点根据其长度将其添加至前缀表中。当前缀表容量已满或者接收到NACK反馈分组的次数超过一个阈值,源节点会根据一条前缀,绕过断路选择一个中间节点作为“伪源”,由伪源探测到目标节点的路径。假设源节点A通过路径α选择中间节点C作为伪源,C会开始探测从它本身到目标节点B的曼哈顿距离路径。如果C找到一条C和B之间的可用曼哈顿距离路径β,则将β与α连接起来,作为一条可用路径ξ发送给源节点。
2.2 路由探测分组数据结构
在PFTSR算法中,在路由发现阶段由(伪)源节点发出的分组称为路由请求分组,中间节点和目标节点发给(伪)源节点的称为反馈分组,它们统称为路由探测分组(RD)。图2给出了路由探测分组的数据结构,各域的含义如下:
D和S:分别是目标节点和源节点的ID。
RSD:真实源节点/目标节点的ID,当且仅当T等于1,2,5时有意义,当T等于2时存储真实目标节点ID,当T等于1或5时存储真实源节点ID。
P:计数器,指示路由节点来获得下一步。路由节点转发路由请求分组前会将计数器减1,转发反馈分组前会将计数器加1。
L:路径长度,R的最低2L-bit存储路径信息。
T:路由探测分组的类型,共有6种类型。类型1为源节点发送的原始路由请求分组,类型2为伪源节点发送的伪源路由请求分组;类型3为源节点发送给伪源节点的伪源指定分组;类型4为目标节点发送给源节点的成功反馈ACK;类型5为中间节点发送给源节点的失败反馈分组NACK;类型6为目标节点发送给伪源节点的成功消息pseudo-ACK。
2.3 路径表示和处理
在PFTSR算法中,路径每一步由两位二进制数表示,共可表示4种方向,分别是东(11), 西(00), 北(10), 南(01)。这样表示路径是为了方便向源节点发送反馈消息,反馈消息发送者只需将路径按位取反,就可以得到返回路径。
以图3所示的5×5-mesh片上网络为例,如果源节点0要生成一条到目标节点24的曼哈顿距离路径,那么节点0会先算出两节点间东西方向和南北方向的距离,接着在长度为8的路径中随机挑选4步置为东(11),剩下的4步置为南(01)。比如(1111110101010111)2就是一条可能的路径。当节点3接收到包含这条路径的路由请求分组,它会判断出下一步的方向往南,为断路。所以节点3会将路径翻转,成为(0000001010101000)2,并且重置路由探测分组的P域和T域,向源节点发送NACK反馈分组。
当源节点收到节点3发来的NACK反馈分组,会将其所含路径再取反,得到(1111110101010111)2,接着提取前缀。由于节点0和节点3之间的曼哈顿距离为3,所以该路径的第四步为断路,前缀为(11111101)2,若其不在前缀表中,源节点会将其按照长度添加至前缀表。
2.4 伪源节点的选择
在某些情况下,源节点和目标节点之间并不存在可用的曼哈顿距离路径。若源节点只是探测曼哈顿距离路径,在如图4所示的极端情况下,NoC上仅有的少数几条断路就会造成路由发现失败。同时由于PFTSR算法的随机性,源节点不能保证在有限时间内发现一条存在的可用曼哈顿距离路径。为了解决这两个问题,源节点在必要情况下必须主动修改路径以绕开断路,以保证起码克服一条断路。
因此,当前缀表容量已满或者接收到NACK反馈分组的次数超过一个阈值X,源节点启动偏离路径探测。它会选择一条最长的前缀进行“抖动”,即在断路之前加入与之垂直的一步以绕开断路。选择最长前缀是因为它最靠近目标节点,可尽量避免再遇到已经探测到的断路。若修改后的前缀不含断路,它会到达伪源。在图4(a)中,唯一的前缀为(1111)2,为了绕过节点5与节点6之间的断路,源节点会将前缀改为(110111)2或者(111011)2(分别在两个发送周期发出),也就是分组会沿着4→5→9→10或者4→5→1→2转发。若修改后的前缀不含断路,则它会到达“伪源”,这种前缀称为健康前缀。一旦被选为伪源节点,节点2或者节点10即开始探测到节点7的曼哈顿距离路径。源节点持续选择伪源节点,直至接收到ACK反馈消息或者已经超过最后一个伪源节点的预计反馈时间。
2.5 各节点对路由探测分组的处理
路由节点对路由探测分组的处理流程如图5所示。路由节点首先判断自身是否为该分组的目标节点,如果是则转发给本地资源节点。否则路由节点会根据路由探测分组的P域和R域取得下一步方向,检查本节点对应方向的链路是否断开,如果链路完好则修改路由探测分组的P域并转发分组,否则发送给本地资源节点。
每接收到一个路由探测分组,资源节点对其进行如下处理:
3 实验结果及分析
本文将PFTSR算法和经典的片上网络容错源路由算法SRN进行比较。通过在NIRGAM[6]实验平台进行仿真,针对两种算法在路由发现阶段的功耗和找到第一条可用路径的时延进行比较。NIRGAM是英国南开普敦大学开发的一种基于SystemC的仿真器,它的计时精确到每个周期,并且融合了ORION[7],可以精确地计算每个路由器上的功耗,是片上网络的主流仿真器。本文在两个NOC情景上进行实验。第一个NOC情景如图3所示,其中的1号到4号断路会被依次加入,考察两种算法在一般情况下的性能。第二个NOC情景如图4a所示,考察在没有可用曼哈顿距离路径的情况下两种算法的表现。由于PFTSR算法的随机性,实验重复运行20次,取性能平均值与SRN算法作比较。PFTSR中源节点发送路由探测分组的间隔为20个周期。启动偏离路径探测的失败次数阈值X为曼哈顿距离路径的总数。下面分功耗和时延两方面进行比较。
3.1 功耗比较
图6给出了在图3所示NOC情景中,PFTSR算法和SRN算法在路由发现阶段的功耗性能对比。可以看到PFTSR算法的功耗远远小于SRN算法,这是由于PFTSR算法不采用广播机制,极大减少了路由发现阶段路由探测分组的数量。同时,PFTSR算法的功耗并没有随着断路数目的增加而明显变化,这是由PFTSR算法的随机性决定的。
图7给出了在图4(a)所示NOC情景中,PFTSR算法和SRN算法在路由发现阶段的功耗性能对比。可以看到,在这种必须启动偏离路径探测的情况下,PFTSR算法的功耗仍是远远小于SRN算法的。这是因为PFTSR算法的功耗跟源节点和目标节点的距离有关,而SRN算法采用的广播机制忽视了源节点和目标节点的位置关系,会造成大量功耗。
3.2 时延比较
图8给出了在图3所示情景中,PFTSR算法和SRN算法发现第一条可用路径的时延性能对比。可以看到,在这种情况下PFTSR算法的时延明显小于SRN算法。图9给出了在图4(a)所示NOC情景中两个算法的时延对比。在这种极端情况下,PFTSR会启动偏离路径探测,故时延比SRN算法略大。但是考虑到PFTSR在功耗方面极大的优越性,以及大多数情况下PFTSR时延方面的优势,这种极端情况下时延的略微增大是可以接受的。
3.3 PFTSR的其它优点
首先,在PFTSR中,路由的每一步由2-bit表示,而SRN算法需要记录各个中间节点的地址,每一步需要log2n-bit,其中n为NOC上的节点数。故PFTSR具有压缩路由信息的优点。其次,在PFTSR中,源节点可根据实际需要探测不同路径,而在SRN算法中,因为中间节点只在第一次收到路由请求分组时将其转发,源节点最多只能找到4条到目标节点的路径。所以PFTSR允许源节点发现更多的路径。
4 结 语
本文提出了一种基于前缀的片上网络容错源路由算法PFTSR。算法采用随机生成曼哈顿距离路径的方式进行路由探测,并且根据反馈信息提取前缀以获得断路位置信息,在必要时绕开断路启动偏离路径探测。与典型算法SRN相比,PFTSR极大降低了算法在路由发现阶段的功耗,并且在大多数情况下能明显降低发现第一条路径的时延。它同时具有压缩路由信息和允许源节点根据需要探测更多路径的优点。
片上网络 篇5
近年来迅速发展的片上多处理器系统(Multi-Processor System on a Chip,MPSo C)以其高速并行运算能力使其在智能手机、平板电脑、数字电视机顶盒等设备中得以广泛使用。日益丰富的功能应用对处理器运算能力不断地提出更高的要求,提高处理器运算能有两种可行的方法,一种方法是提高处理器的工作频率,另一种方法就是采用片上多处理器系统;一方面由于制造工艺的限制使得处理器的工作频率在短期内不会有较大的突破,另一方面由于处理器工作频率越高就意味着工艺尺寸越小,而工艺尺寸的缩小意味着更高的设计难度、制造成本和更大的风险,所以更高的数据运算能力要求处理器数进一步增加,但是当处理器数>6时总线架构不适用于任务计算/通信比较大的多处理器系统,而当处理器数不少于16时需要采用更高级的通信方案[1]。片上网络(No C)便是将来大规模多处理器片上系统的主要通信架构。
片上网络(Network on Chip,No C)技术将计算机网络技术移植到芯片设计中,在芯片上实现了处理器的本地访问在本地实现,处理器间的信息交互由网络来完成,实现了全局异步和局部同步的通信,且使芯片资源更加丰富。这种新结构能够从体系结构上彻底解决总线结构对当前芯片进一步发展的瓶颈性阻碍(如:扩展性差、线通信效率低、单一时钟同步问题等)。本文使用VHDL硬件描述语言设计了一款4×4片上网络芯片,经过逻辑验证后在FPGA实际硬件平台上对其完成了验证,并对其进行物理设计,得到了该款芯片的版图。
1 片上网络架构的设计
典型的片上网络通信系统可划分为功能子系统和通信子系统。图1是片上网络系统架构示意图。系统主要由三部分组成:资源模块(Resource)、网络接口(Interface)和片上网络[2];资源模块可以是功能子系统(包括处理器、存储器、多种外设)、也可以是单一模块(如DSP/GPIO/MPEG等),资源模块通过网络接口连接至片上网络,片上网络由网络节点(Node)和链路通道(Link)组成,它构成了相对独立的通信子系统,通过它,可以实现全局异步和局部同步通信:每个资源模块可工作于独立时钟域,各资源模块间通过片上网络进行异步通信,这样可以很好地解决全局同步带来的通信瓶颈性问题。
1.1 片上网络拓扑结构的设计
网络节点(Node)和链路通道(Link)的排列形式称为片上网络的拓扑结构,它不仅决定网络节点间链路通道的排列形式,而且直接影响片上网络的通信效率、所占用资源的多少和功耗的大小等。二维拓扑结构因其很好的适应了集成电路二维工艺的特点而得到广泛应用,是片上网络最为常用的拓扑结构。常见的二维片上网络拓扑结构主要包括网格(Mesh)、单环网(STorus)和双环网(DTorus)[3]。如图3所示。
图2中分别是16节点的网格、单环网、双环网的二维拓扑结构。网格型No C的网络节点只能通过x、y方向的链路通道与相邻的网络节点相互通信;单环网增加了纵向两边界节点间的链路通道;双环网的纵、横边界节点间均有链路通道。二维网格型网络因其结构简单、容易分析和布局等优点,已成为研究的热点。本文所设计的No C芯片采用二维网格型拓扑结构。
1.2 网络节点的设计
片上网络通过网络节点实现链路通道的分配及网络数据传输控制[4]。本文所设计的每个网络节点均有5个端口(West端、East端、South端、North端和LS端),每个端口对应一个虚拟通道分配器(VCA),由该分配器实现对应虚拟通道的使用分配。此外,每个网络节点还有一个仲裁器(ARB)和一个交换器(SW)(见图3)。
仲裁器控制端口分配,由它响应各端口的传输请求、控制交换器的切换实现对数据传输路径的控制。由仲裁器对某一端口被多个端口同时请求传输这一竞争现象进行仲裁。交换器则在来自仲裁器的交换控制信号的控制下建立数据传输的路径通道。
1.3 链路通道的设计
链路通道(Link)不仅实现数据传输过程中的暂时存储、路由控制等功能,还实现网络节点之间、网络节点与所挂的本地系统之间的相互通信[5]。本设计中的链路通道是一种通用型全双工双向通道。链路通道主要由两条虚拟通道(VC)和两个地址生成模块(block)构成(见图4)。虚拟通道实现传输数据包的存储和路由控制,地址生成模块完成节点地址编码,虚拟通道根据节点地址编码来确定它将连接至的节点地址。本文使用VHDL硬件描述语言完成了该款No C芯片的设计,在Modulesim仿真平台上完成了该芯片的逻辑验证,证明了其逻辑功能的正确性。
本文使用VHDL硬件描述语言完成了该款No C芯片的设计,在Modulesim仿真平台上完成了该芯片的逻辑验证,证明了其逻辑功能的正确性。
2 FPGA验证
2.1 FPGA验证平台及方法
本文所采用的验证平台是Xilinx-ISE 10.1软件和一块Xilinx Virtex-5 XC5VFX70T FPGA开发板;
本文所采用的验证方法是在每一个网络节点挂载一个VHDL语言描述模拟资源模块,由每个网络节点的模拟资源模块依次向其后的网络节点发送数据(如[00.00]节点依次向[00.01],[00.10],[00.11]…[11.11]发送数据,[00.01]节点依次向[00.10],[00.11],[01.00]…[11.11],[00.00]发送数据),并接收来自其他网络节点的数据;用Xilinx-ISE 10.1软件的组件Chip Scope Pro Generator将每个网络节点发送的数据及目标节点、接收的数据及源节点等信息生成在线逻辑分析仪的IP核,将该IP核插入到设计中,分别完成Synthesize,Translate,Map,Place&Route后生成.bit文件下载到FPGA开发板上,用Xilinx-ISE 10.1软件的组件Chip Scope Pro Analyzer观察相关信号在实际硬件电路中的变化情况,如果在实际电路中每个数据包都能够正确的传输于源节点和目标节点之间,就能证明本文所设计4×4 No C功能的正确性。
2.2 FPGA验证结果
在FPGA验证平台上,当工作频率高达100 MHz时每个由模拟资源模块发出的数据包都能准确的在源节点与目标节点之间传输;图5所示为[00.00]和[00.10]节点分别向[00.10]和[00.01]节点发送数据包,[00.10]和[00.01]分别正确的接收到了源节点发来的数据。经过FPGA实际硬件电路验证,证明了本设计的正确性。
3 逻辑综合
本文的设计综合选用Synopsys公司的Design Compiler(DC)软件,基于HJTC180nm工艺库进行。经过analyze、elaborate、link和uniguify四步完成该设计的读入;将操作条件设为温度高、电压低和工艺偏差大的WORST[6];设计优化约束如表1所示;综合后本设计没有出现时序违反,证明满足各项时序要求,可以进行物理设计。
4 物理设计
本文所设计No C芯片的物理设计采用Cadence公司的Encounter物理设计软件进行,该软件可以完成从RTL到GDSⅡ的纳米数字电路的完整设计。
本设计不仅添加了标准单元和I/O PAD参考库,还分别为它们添加防止天线效应参考库,以防天线效应。本设计有114个功能I/O、4组供电I/O和4组ESD过流保护I/O,功能I/O选用驱动电流为16 m A、宽度为75μm、工作电压为1.8 V的PLIB16N单元;由于本设计规模较大,工作频率高达100 MHz,所以进行I/O排布和模块摆放时不仅充分考虑了模块与模块间的互联通信、拥塞度等的影响,还充分考虑了其对芯片供电均衡和互联线长短的影响。
本设计由5、6层金属构成1对宽度为50 nm电源环,在第6层金属上每隔100 nm添加一条宽度为100 nm的电源带。本设计的布局是由EDA工具自带布局工具自动完成的。
由于H型时钟树从中心到达各个叶子节点的距离相等,时钟偏差理论上为0,所以本文选用H型时钟树进行时钟树综合,本设计中由于个别时钟级数较深,采取了插入buffer的方法来提高时钟的驱动能力[7]。完成布线及空白处填充后得到了本芯片的物理设计版图(如图6所示)。
表2是完成物理设计后得到的芯片面积与功耗。由表2可见该款芯片的面积是11.6 mm2,总功耗大约1.63 W。
5 结语
本文完成了一款网格型(Mesh)4×4 No C芯片的设计,经过逻辑功能仿真后在FPGA实际硬件环境中对其进行验证,证明了其设计的正确性且可在高达100 MHz时钟频率下正常工作。本文基于180 nm HJTC工艺库对该芯片完成了芯片物理设计,最终得到了本设计的版图、面积和功耗,进一步证明了No C这种新型芯片结构硬件化的可行性。
参考文献
[1]杨盛光,李丽,徐懿,等.基于总线共享架构的片上多处理器系统性能探索[J].微电子学与计算机,2007(12):16-19.
[2]葛芬.专用片上网络设计关键技术研究[D].南京:南京航空航天大学,2010.
[3]马立伟.专用片上网络设计方法:通信建模、拓扑构造与自动生成[D].北京:清华大学,2006.
[4]朱小虎,曹阳,王力纬.多级拥塞控制的NoC路由算法[J].北京邮电大学学报,2007,30(5):91-94.
[5]荆元利.基于片上网络的系统芯片研究[D].西安:西北工业大学,2005.
[6]QIAN Yue,LU Zhong-hai,DUO Wen-hua.Analysis ofworst-case delay bounds for best-effort communication in worm hole netsworks on chip[C]//NoCS 2009 3rd ACM/IEEE Interna tional Symposium on Networks-on-Chip.San Diego,CA:ACM,2009:44-53.
片上网络 篇6
关键词:片上网络,容错设计,可靠性
0引言
以2000年由瑞典 皇家理工 学院Hemani、Janstch等人首先 在论文中 明确定义 了 “Network on Chip ”的概念为 标志[1], 片上网络 正式成为 一个研究 领域已经15年了 。 自该领域 诞生之初 起 ,片上网络 的可靠性 设计就被 作为一个 重要问题 被各国研 究者所重 视 。 Benini和Micheli分析了片 上通信网 络的分层 模型并且 给出了每 层模型应 该具备的 功能时 , 明确提出 了可靠性 设计的需 求[2]。 片上网络 的可靠性 问题随着 集成电路 工艺的进 步和片上 网络互联 规模的扩 大变得日 趋严重 。 一方面集 成电路工 艺在向纳 米级演进 的过程中 ,由于加工 精度 、功耗密度 、 集成规模 等因素而 导致工艺 误差 、 老化 、 单粒子翻 转等问题 日益严重 ,从而导致 器件的故 障概率极 大增加 。 另一方面 随着片上 网络规模 的扩大而 导致的总 元件数量 的上升 ,导致片上 网络中故 障发生的 总量急剧 上升 。 因此通过 合理的容 错设计方 法提升片 上网络的 可靠性成 为片上网 络进一步 发展过程 中绕不开 的一大难 题 。
集成电路 的故障类 型依据其 发生频率 和产生条 件可以划 分为临时 性故障(Transient Fault) 、间歇性故 障 (Intermittent Fault ) 以及永久 性故障 ( Permanent Fault ) 三类[3]。 参考文献 [4] 中总结了 多种不同 的物理效 应和三类 故障的对 应关系 。 临时性故 障主要由 于孤立事 件翻转 (Single Event Upset , SEU和Single Event Transient , SET ) 以及电子 系统内部 噪声引起 。 此类故障 的主要特 点是临时 出现且发 生位置随 机分布 ,与外界环 境和工作 条件关系 不大 。 与临时性 故障相对 应的是永 久性故障 ,主要由工 艺误差 、老化 、电迁移等 原因引起 的元器件 损伤造成 。 永久性故 障一旦发 生将永久 存在 ,且故障的 总量将随 着集成电 路使用时 间的增加 而持续增 大 。 永久故障 的位置分 布有一定 的随机性 , 但由老化 、 电迁移等 原因引起 的永久性 故障则在 一定程度 上受温度 、功耗密度 等内外部 环境因素 的影响 。 间歇性故 障介于临 时性故障 和永久性 故障之间 , 主要是由 于不同因 素而导致 的时序问 题而诱发 。 虽然某些 因老化等 因素导致 的间歇性 故障会随 着集成电 路使用时 间的增加 而退化为 永久性故 障 ,但更多的 间歇性故 障则是由 于特定时 刻串扰 (Crosstalk)、 温度变化 ( Temperature Variation ) 、 电压紧急 ( Voltage Emergency ) 等内外部 环境因素 造成的时 序问题而 引发 。 因而这些 时序问题 发生的时 间和概率 虽然也呈 现出一定 的随机性 ,但却更容 易发生在 集成电路 中关键路 径 (Critical Path ) 和受环境 因素影响 更大的区 域 。 由于间歇 性故障和 临时性故 障均不会 持续发生 ,在以往的 一些研究 中通常将 其归为一 类故障加 以研究[5]。 但随着集 成电路工 艺的进步 和低压/近阈值集 成电路设 计方法的 兴起 , 间歇性故 障由于其 发生概率 极大提升 而成为了 一个重要 问题[6], 近年来针 对这类故 障的研究 明显增加 。
由于集成 电路故障 成因和类 型的研究 大多属于 器件和工 艺层面的 研究内容 ,在研究容 错设计时 通常需要 根据设计 目标的特 点将其抽 象为特定 的故障模 型以便深 入研究 。 在抽象的 过程中将 不可避免 地简化故 障的某些 特征 ,而不合理 的特征取 舍可能导 致基于此 模型的容 错设计研 究出现偏 差 ,进而设计 出容错效 率较低的 硬件结构或出现过度设计(Over Design)。 对于片上网络而言 , 故障可以 在数据链 路层 、网络层和 传输层分 别被抽象 为不同的 模型 。 数据链路 层主要将 故障抽象 为链路上 信号的阻 塞 (Stuck-at)和翻转 (Upset)[7]。 网络层的 故障模型 主要为自 适应容错 路由研究 服务 ,传统上将 故障划分 为链路故 障和路由 器故障[8]。 在传输层 的故障模 型则主要 是考虑数 据包内容 错误或完 全丢失[9]。 这些模型 在很大程 度上降低 了容错设 计的复杂 度 ,但相应的 也隐藏了 一些关键 特性 。 但更为严 重的是 ,这些模型 大多直接 借鉴传统 的计算机/通信网络 故障模型 , 对片上网 络的特异 性没有给 予足够的 体现 。 造成这种 情况的部 分原因是 因为片上 网络在研 究的初期 大多以架 构设计 、 拓扑分析 、 路由算法 研究等相 对高层次 的研究为 主 ,与之相伴 的容错设 计研究也 大多采用 相对粗糙 的模型 。
随着片上 网络研究 的全面成 熟和片上 多核技术 的普及 ,片上网络 已经从系 统结构设 计层面转 向实现与 应用层面 。 自2007年Tilera公司推出 了基于片 上网络互 联结构的64核处理器Tile64[10]起 ,基于片上 网络的多 核处理器 芯片日渐 增多 。 多伦多大 学ABDELFATTAH M S等人于2014年发布了 面向现场 可编程门 阵列 (FPGA) 的嵌入式 片上网络[11]则标志着 片上网络 开始被用 于多核处 理器芯片 以外其他 类型的芯 片中 。 而在这一 过程中片 上网络的 实现结构 也日益明 确 ,多数关键 模块的实 现形式已 有一些基 本定论 。 因此我们 有条件重 新思考在 当前和未 来集成电 路工艺条 件下片上 网络故障 模型的合 理性 , 从而得到 更加合理 、 可行 、 适用的故 障模型 , 为进一步 提升容错 设计的容 错效率并 减少过度 设计带来 的额外开 销奠定基 础 。 同时正确 地分析导 致故障行 为的物理 效应 ,也将有助 于设计合 理的容错 方案 。 本文将分 别对现有 片上网络 故障模型 和容错设 计方法的 合理性进 行初步分 析 ,为从事片 上网络容 错设计的 相关研究 者提供参 考 。
1片上网络故障模型合理性分析
传统的片 上网络故 障模型在 片上网络 容错设计 的研究中 曾发挥过 重要作用 ,但随着片 上网络的 发展以及 实用化程 度的提高 ,片上网络 故障模型 与实际的 片上网络 故障行为 之间的差 距日益明 显 。 因此需要 从造成片 上网络故 障行为集 成电路物 理效应出 发 ,重新审视 片上网络 故障模型 的合理性 。
1.1传输层故障模型分析
传统网络 的传输层 故障模型 主要分为 数据包内 容错误与 数据包完 全丢失 。 其中数据 包丢失是 传统网络 传输层所 要解决的 主要问题 。 造成传统 网络中传 输层数据 包丢失的 主要原因 包括 :
(1) 数据包内容错误超过底 层协议可以 恢复的极 限而被底 层硬件 (如网卡等 )直接丢弃 而造成的 数据包丢 失 ;
( 2 ) 数据报头 错误导致 错误的传 输 , 如IP报头 、 TCP报头校验 错误时数 据包会被 丢弃而造 成数据包 丢失 ;
(3 ) 由于传输过程中链路拥 塞而导致数据包 超过生存 时间而被 丢弃 。
由于数据 包内容成 果底层协 议可以恢 复的极限 这一问题 和底层故 障概率以 及容错设 计能力有 关 ,传统网络 中数据包 由于传输 距离较远 而容易出 现错误 ,而片上网 络底层的 故障概率 却并不一 定很高 。 对这一问 题的具体 探讨将在1.3节中再详 细讨论 。
相比于传 统网络 ,片上网络 的传输层 故障有其 不同的特 征 。 相对于传 统网络 ,片上网络 的规模偏 小且拓扑 结构相对 固定 ,因而在设 计之初可 以通过多 种仿真方 法对片上 网络的传 输带宽作 较为精确 的分析 。 同时由于 片上网络 所承载的 是多处理 器核心之 间传输的 信息 ,由于信息 传输实时 性要求较 高而导致 拥塞避免 是片上网 络设计优 化过程中 必须要考 虑的重要 问题 。 因此由于 链路拥塞 而丢弃数 据包这种 行为通常 在片上网 络中并不 被允许 ,因而这一 故障原因 在片上网 络中并不 存在 。
与传统网 络大多采 用串行传 输方式不 同 , 片上网络 基本是基于Flit的并行传输方式,通常在首个Flit中包含地址 、控制等重 要信息 。 由于采用 并行传输 的方法 ,不同的位 通常采用 不同的物 理连线传 输并独立 地存储于 不同的存 储单元中 ,因此针对 重要信息 的位所用 物理连线 和存储单 元可以采 用有别于 普通位的 保护措施 以加强 。 如对地址 信息采用 性能更强 的纠错编 码 ,控制信号 采用三模 冗余 (TMR)等[12],这些链路 层容错措 施将有效 降低甚至 消除由于 报头错误 而导致的 数据包丢 失的问题 。
综上 , 在一个容 错设计合 理的片上 网络中 , 传输层故 障模型中 的数据包 丢失故障 可以基本 忽略 。 因此需要 充分地分 析底层设 计的容错 能力以确 定正确传 输层故障 模型是否 需要考虑 丢包故障 。
1.2网络层故障模型分析
在过去10多年片上 网络容错 路由的研 究通常面 向由永久 性故障引 起的片上 网络路由 节点或链 路功能性 问题 , 通常认为 由于制造 缺陷 、 老化等原 因造成的 晶体管失 效是导致 永久性故 障的主要 原因 。 在传统网 络的网络 层故障模 型中 ,故障一般 被分为链 路故障和 路由节点 故障以方 便容错路 由算法的 研究 。 在早期的 片上网络 容错路由 的研究中 也普遍地 采用了这 样的划分 方法 ,这一时期 片上网络 的研究大 多停留在 架构设计 与分析的 层面 。 但随着Intel等公司先 后发布了 一系列基 于片上网 络的多核 处理器芯 片[13]之后 ,片上网络 的硬件实 现结构日 益明确 ,相应的网 络层故障 模型也需 要革新 。
传统网络 中路由节 点故障可 能由多种 原因导致 , 如路由器 的电源失 效导致其 因断电而 无法工作 ,整个路由 器的功能 将完全丧 失而导致 与其相连 的链路均 处于断开 状态 。 片上网络 路由节点 与传统网 络路由节 点不同的 是其功能 完全由晶 体管组成 的逻辑电 路实现 ,而晶体管 并不会出 现大面积 同时失效 的情况 。 因此 ,如果单个 晶体管的 失效不会 导致整个 片上网络 路由节点 的功能完 全丧失 ,则片上网 络路由节 点故障实 质上并不 存在 。
一个典型 的片上网 络路由节 点硬件实 现结构如 图1所示 。
从图1中可以看 出其数据 通路 (Data path)可划分为 输入缓冲 器 、交换矩阵 、输出寄存 器等三个 部分 。 其中输入 缓冲器中 任何晶体 管失效最 多只能导 致与自身 相关的输 入链路出 现故障 ,输出寄存 器中任何 晶体管失 效同样最 多只能导 致与自身 相关的输 出链路失 效 。 因而这两 部分任意 晶体管失 效均无法 造成整个 路由节点 出现工作 不正常的 情况而导 致路由节 点故障 。 交换矩阵 中的故障 行为和其 具体的实 现结构有 关 , 参考文献 [14] 中给出了 三种不同 的交换矩 阵实现方 式 ,可以分别 由传输管 矩阵 、三态门矩 阵以及标 准CMOS逻辑门实 现的多路 复用器 。 传输管矩 阵和三态 门矩阵相 比于标准 的CMOS逻辑门的 多路复用 器而言虽 然具有更 小的面积 和更低的 功耗 , 但由于这 两种方案 均存在延 迟难以确 定 、 驱动能力 偏弱 、可能由于 控制信号 的时序问 题而产生 临时性的 短路等问 题而在实 际的芯片 中较少采 用 。 采用传输 管矩阵构 建交换矩 阵时 ,若某个传 输管由于 某种原因 处于导通 状态 , 则至少有 一对输入 线与输出 线处于短 路状态 ,如图2(a)所示 。 处于这种 状态的交 换矩阵不 但影响故 障传输管 所在的输 出 ,还有可能 通过短接 的输入线 影响到其 他输出的 电平 。 而采用的 三态门矩 阵和标准CMOS逻辑门的 多路复用 器构建的 交换矩阵 由于其单 向传输的 特性 , 则只会影 响到故障 所在的输 出 , 如图2 (b) 所示 。 由此可见 , 在不采用 传输管矩 阵构建交 换矩阵时 , 单个晶体 管的失效 只影响其 所在的输 出端口 ,而不会波 及其余输 出端口 。 因而在大 多数不采 用传输管 实现交换 矩阵的路 由节点中 ,数据通路 上任意位 置出现单 个晶体管 失效均可 以被等效 为输入链 路故障或 输出链路 故障 ,而不会出 现路由节 点功能整 体失效的 情况 。
在对路由 节点的架 构分析中 , 路由节点 控制通路 ( Control path ) 故障通常 被认为会 导致路由 节点整体 功能失效 。 这是因为 架构设计 人员在仿 真中习惯 于调用同 样的功能 函数来模 拟各个输 入和输出 链路的路 由 、仲裁等功 能 。 但在实际 的路由节 点硬件结 构中 ,路由计算 单元通常 与输入缓 冲器配对 实现 ,而仲裁电 路则通常 与输出寄 存器配对 实现 。 这样设计 的原因是 可以保证 多个输入 输出链路 可以同时 完成路由 计算 /仲裁的工 作 , 从而最大 限度地利 用硬件并 行工作的 特性提升 包交换的 速度 。 参考文献[15]中给出了 路由计算 模块和仲 裁模块实 现的示意 图 , 从中可以 较为明确 地获悉这 种配对的 特性 。 因此 ,当某个路 由计算单 元中晶体 管失效而 导致该单 元工作不 正常时 ,可以认为 与之配对 的输入缓 冲器工作 不正常而 将其等价 为输入链 路故障 。 而当某个 仲裁模块 中晶体管 失效而导 致该单元 工作不正 常时也可 以认为与 之配对的 输出寄存 器工作不 正常而等 效为输出 链路故障 。 因此 ,在一般情 况下路由 节点控制 逻辑中单 个晶体管 失效也不 会造成其 整体功能 失效 。 随着失效 晶体管数 量的增加 ,可能出现 多条输入/输出链路 故障 , 从而使得 节点大部 分功能丧 失 。 此时可以 将多条链 路故障等 效为路由 节点故障 。
结合上面 的分析可 以得出这 样的结论 , 在使用常 规的片上 网络路由 器硬件结 构设计方 案时 ,单个或少 量的晶体 管失效通 常不会引 起路由节 点整体功 能的失效 或故障 。 这些故障 基本可以 被等效为 链路故障 而非路由 节点故障 。 但随着一 些新的仲 裁方法或 路由算法 的提出 , 其对应的 电路结构 可能会发 生一些变 化而导致 出现路由 节点故障 的可能 ,但出现这 种故障的 可能性需 要进一步 探讨 。 针对一个 具体的片 上网络设 计其容错 方案时对 片上网络 路由节点 的具体电 路结构进 行适当的 分析 ,即可以确 定是否有 必要采用 路由节点 故障模型 。 目前大部 分容错路 由的研究 者已经开 始更倾向 于使用链 路故障模 型而非路 由节点故 障模型 。
1.3链路层故障模型分析
链路层故 障模型主 要考虑由 于数据在 传输过程 中某些比 特位的翻 转 、呆滞等现 象造成该 位出现错 误 。 造成链路 层故障的 物理效应 有很多 。 元件老化 、电迁移效 应 、制造误差 等原因造 成的某位 信号线短 路或断路 可以被认 为是链路 层的永久 性故障 ,单粒子翻 转效应等 影响存储 单元状态 而造成数 据错误可 以被认为 是链路层 的临时性 故障 ,电压紧急 、串扰 (Crosstalk)等在特定 的外部环 境或特定 工作状态 下引起的 数据错误 可以被认 为是链路 层的间歇 性故障 。 因而链路 层故障实 际包含了 临时性故 障 、 间歇性故 障和永久 性故障三 种不同的 故障分类 。 这三种故 障在链路 层虽然故 障行为表 现相近 ,但由于其 成因的区 别导致使 用链路层 故障模型 时其故障 概率和故 障注入方 式有所区 别 。
临时性故 障由于是 由单粒子 翻转等原 因引起的 , 其发生时 间和位置 均近似呈 随机分布 。 因此针对 临时性故 障的链路 层故障模 型可以视 为以一定 的概率随 机在更改 任意位置 、 任意信号 线的值 , 并不需要 对故障的 注入做特 殊的处理 。 发生间歇 性故障则 明显的受 到环境以 及具体硬 件结构的 影响 ,其发生的 时间和位 置存在一 定的规律 性 ,但故障是 否发生仍 然具有一 定的随机 性 。 永久性故 障根据其 产生原因 不同 ,故障出现 的规律也 有较大区 别 。 由加工误 差引起的 永久性故 障在分布 时具有随 机性 , 但由于老 化引起的 永久性故 障则明显 与环境有 关 , 因而其空 间位置的 分布不是 完全随机 的 。 所以链路 层间歇性 故障和永 久性故障 的发生概 率和空间 分布问题 是一个需 要讨论的 问题 。
首先对链 路层间歇 性故障的 发生概率 和空间分 布加以讨 论 。 串扰 (Crosstalk)被认为是 引起链路 层间歇性 故障的一 个重要因 素 。 一般认为 由于信号 线上特定 的信号跳 变引起某 些信号变 化延迟 ,若恰好与 时钟抖动 等因素相 配合则容 易导致该 信号被保 存为一个 错误的值 ,从而引发 故障 。 一般片上 网络容错 设计研究 者在考虑 串扰引起 的间歇性 故障时 ,通常习惯 于从信号 跳变过程 本身去加 以考虑 , 通过编码 或其他方 式改变跳 变的图案 ( Pattern ) 来对其加 以避免[16]。 但实际上 串扰本身 是否会发 生其实需 要一定的 外部条件 ,同时其是 否会引起 故障实际 上更取决 于其是否 真正破坏 了数字集 成电路的 时序 。 要发生串 扰通常需 要信号线 线距和线 长均满足 一定的条 件 ,因而可能 发生串扰 的位置通 常在两个 路由节点 之间的互 联线上而 非其内部 连线 。 但从参考 文献[17]中明确给 出的路由 节点中各 级流水线 延迟的情 况来看 ,在链路传 输 (Link Transmission ,LT)即两个路 由节点之 间信号传 输阶段的 延迟要远 远小于其 他级流水 线 。 换言之 , 在常规拓 扑结果中 链路传输 本身并不 处于关键 路径 ( Critical Path ) 上 。 因而不管 是否出现 因为串扰 而导致信 号延迟的 情况 ,在链路传 输阶段的 时序余量 可以充分 保证被下 一级路由 节点接收 的信号处 于稳定状 态 。 但对于某 些面向特 定应用的 非规则片 上网络而 言[18],在网络中 存在一定 的长走线 ,因而可能 由于延迟 较大而容 易受到串 扰的影响 。 造成间歇 性故障的 其他因素 诸如电压 紧急 、 温度等同 样导致特 定位置的 信号出现 故障 , 通常这些 故障更多 出现在关 键路径上 。 在设计阶 段虽然设 计者无法 准确地预 知所有故 障发生的 位置与概 率 ,但却可以 通过对设 计方案进 行仿真与 分析确定 容易发生 故障的薄 弱环节 ,从而合理 地设置和 使用链路 层故障模 型 。
链路层永 久性故障 的发生概 率和空间 分布同样 有一定规 律可循 。 由于老化 引起的永 久性故障 与老化条 件有关 ,因而分析 并确定容 易引起老 化的环境 因素对确 定这类故 障发生的 概率和空 间分布是 有很大帮 助的 。 温度是引 起晶体管 老化的重 要原因 ,对于集成 电路的温 度分布可 以在设计 阶段即通 过一系列 的热仿真 得到 。 而由于工 艺误差或 制造过程 引起的永 久性故障 比较难以 精确建模 , 但可以通 过分析电 路模块的 规模简单 等效得到 , 在此不再 赘述 。
2容错设计方法合理性分析
片上网络 的容错设 计方法已 有相当数 量的论文 讨论 , 但这些论 文通常只 注重介绍 容错方法 本身 , 而对容错 设计方法 的使用前 提与使用 场景缺乏 深入分析 与讨论 。 这一现象 导致容错 设计方法 的合理性 存在较大 问题 ,因而本文 结合之前 对故障模 型的分析 对容错设 计方法的 合理性进 行必要的 分析 。
2.1基于离线测试的容错方法
基于离线 测试的容 错方法是 一种最基 本的容错 方法 ,其目的在 于提高芯 片的良品 率 。 较为典型 的基于离 线测试的 容错方法 即为片上 网络自适 应路由 。 大多数自 适应路由 都是在故 障状态已 知的前提 下 ,通过外部 所给出的 故障信息 按自适应 路由算法 调整信息 的传输路 径以避开 出现故障 的链路或 路由节点 。
按具备自 适应路由 能力的路 由节点对 故障信息 的知晓程 度不同 ,自适应路 由可分为 基于全局 信息的自 适应路由 算法 、基于局部 信息的自 适应路由 算法和基 于本地信 息的自适 应路由算 法三类 。 基于全局 信息的自 适应路由 算法需要 使用整个 网络的各 个资源的 状态信息 。 当然 ,一个路由 器需要确 切知晓网 络中所有 资源的状 态信息非常困难,代价非常高。 因而此类算法常采用空间迭代 , 使得每个 路由器获 得等价的 全局信息 , 如Q-Routing[19]。 基于局部 信息的自 适应路由 算法需要 路由节点 知晓临近节点的 信息 ,Fo N[20]以及FRR[21]是此类算 法的典型 代表 。 相比于全 局信息 ,获取局部 信息的代 价要小很 多 。 此类自适 应路由算 法也一直 在优化故 障信息传 输的开销 。 基于本地 信息的自 适应路由 算法则只 关注与路 由节点相 连的链路 或节点的 状态 ,Gradient算法[22]就是该类 算法的代 表 。 这三类算 法中虽然 基于全局 信息的自 适应路由 算法效果 最好 ,但由于其 信息传播 开销最大 而较少有 人研究 。 基于本地 信息的自 适应路由 算法性能 提升受到 较大限制 而导致优 化空间较 小 ,但在故障 概率较低 的情况下 已经足以 满足设计 需求 。 基于局部 信息的自 适应路由 算法是前 几年研究 的热点 ,其难点在 于平衡信 息传播开 销 、算法复杂 度等多方 面的因素 。
在传统的 自适应路 由方法的 研究论文 中几乎不 曾提及如 何检测并 确定某条 链路或路 由节点已 处于故障 状态 ,其通常认 为故障信 息已经确 认并作为 已知前提 开展研究 。 因而 ,离线测试 作为一种 基本的检 测手段可 以直接与 这些自适 应路由算 法相配合 作为提高 良品率的 方法 。 但需要注 意的是离 线测试只 能针对出 厂后的芯 片加以检 测 , 因而主要 检测由于 生产加工 问题而引 起故障 。 这类故障 的成因 、分布及其 行为在前 文已有分 析 。 在选择或 设计合理 的自适应 路由算法 时应对其 充分加以 考虑 ,避免使用 与之不相 符合的故 障模型或 错误估计 故障概率 。
2.2基于在线测试的容错方法
与基于离 线测试的 容错方法 不同 , 基于在线 测试的容 错方法往 往需要与 一定的在 线测试手 段相配合 。 首先通过 在线测试 确定故障 的位置或 发生的概 率 ,再采取相 应的方法 绕开或替 换故障单 元以达到 容错的目 的 。
基于编码 的在线检 测方法是 开销较小 、 实现也较 为方便的 一种 。 这种方法 通过检错 或纠错编 码检测传 输过程中 数据出现 的错误 。 但由于纠 错编码同 时也具备 错误数据 恢复的功 能 ,因而在大 多数研究 中把这类 方法归结 于容错方 法而非在 线检测方 法 。 但实际上 合理运用 纠错或检 错编码并 与测试数 据注入方 法配合是 可以达到 在线检测 效果的 ,在后文中 将对此做 一定的分 析 。 基于编码 的方法可 以很方便 地与重传 机制相配 合构成较 为高效的 混合纠错 重传机制 (hybrid FEC/ARQ )[23], 该方法对 于临时性 故障的容 错效果较 好 。 但使用混 合纠错重 传机制会 导致比较 大硬件开 销和传输 延迟 ,因而通常 被用于传 输层容错 。
按照特定 的规则向 网络注入 专门的测 试数据包 , 可以根据 包的到达 情况和接 受到的数 据对片上 网络的链 路和路由节点加以检测。 与基于编码的方法不同的是,由于发送 的数据包 内容是确 定的 ,可以在接 收端通过 比对检测 出链路中 多个数据 故障 。 由于其传 输路径可 以提前设 置 , 可以对路 由节点中 不同的传 播路径加 以测试[24]。 使用特定 的测试数 据包不但 可以判断 链路层故 障引起的 数据错误 ,还可以通 过数据包 能否正常 地通过特 定的传输 路径来判 断路由节 点中某些 控制逻辑 是否出错 。 当测试出 路由节点 的问题后 将其映射 为链路故 障模型 ,再配合自 适应路由 算法即可 以实现网 络层容错 设计 。 采用专门 测试数据 包的另外 一个优点 在于通过 统计已到 达数据包 的错误概 率 ,在明确数 据包传输 路径的基 础上可以 求解出不 同链路或 传输路径 上包的错 误概率 ,进而对于 诊断间歇 性故障有 极大的好 处 。
在线测试 的另外一 种方式是 采用在线 的内建自 测试(BIST)电路 。 这类在线 测试方法 需要针对 片上网络 设计专门 的电路测 试电路[25],并用适当 的方法将 被测电路 与其他的 部分电路 隔离 。 采用内建 自测试电 路可以在 更细粒度 的层面检 测故障 ,有利于采 用更细粒 度的错误 恢复机制 。 但内建自 测试电路 测试的规 模与其测 试粒度有 关 ,测试粒度 越细则电 路复杂度 和规模越 大 。 近年来将 内建自测 试电路用 于片上网 络容错设 计的研究 者主要把 精力放在 如何平衡 在线检测 性能 、粒度和代 价 。
2.3基于纠错和硬件冗余的容错方法
纠错与硬 件冗余从 本质上来 说属于同 一类方法 。 纠错依靠 传输更多 的信息使 得数据错 误可以被 修复 ,硬件冗余 则通过在 网络中增 加更多的 硬件资源 以使当部 分硬件出 现故障时 片上网络 仍然可以 正常运行 。 在传输更 多信息时 必然涉及 到使用更 多的硬件 资源如连 线或存储 单元来 ,因而也是 一种意义 上硬件冗 余 。 严格意义 上说 ,片上网络 自适应路 由算法就 是利用了 片上网络 互联资源 的硬件冗 余来达到 容错目的 。
纠错的效 果与纠错 编码的复 杂度以及 传输过程 中出现错 误的概率 有关 。 在端到端 传输的错 误概率显 然大于在 两个路由 节点之间 传输的错 误概率 。 因而在两 个路由节 点之间才 有纠错编 码的效果 显然好于 端到端传 输 , 但后者的 面积 、延迟 、功耗等开 销要远远 小于前者[26]。 各种开销 的增加实 际上会导 致片上网 络的整体 性能下降 , 在很多时 候使得容 错设计失 去了原本 的意义 。 换言之 , 如果主动 降低片上 网络的性 能如运行 速度等 ,往往可以 使得间歇 性故障概 率下降而 在使用端 到端纠错 达到同样 的效果 。 这方面的 研究目前 尚缺乏比 较全面和 深入的分 析 。
最普通的 硬件冗余 容错方法 是三模冗 余 (Triple Modular Redundancy , TMR )[27], 即通过将 同样的硬 件资源复 制为3份同时运 算 ,通过投票 选取最可 能的结果 。 三模冗余 被广泛的 应用各种 高可靠要 求的硬件 设备中 。 但三模冗 余的劣势 也非常明 显 ,由于其三 倍于正常 硬件开销 而带来的 极大硬件 资源和功 耗增加 。 同时由于 三模冗余 导致硬件 开销增大 ,变相地也 使得错误 发生的概 率有很大 增加 。 因此 ,一种采用 硬件资源 相对精简 的模块作 为三模冗 余替代方 案的研究 思路也正 在兴起[28]。 这种方法 一方面减 小了各种 开销 ,另一方面 可以使得 系统的可 靠性进一 步提升 。
就纠错与 硬件冗余 的容错方 法而言 , 其面临的 最重要的 问题在于 设计本身 是否存在 过度设计 (Over Design) 而导致不 必要的开 销甚至影 响片上网 络可靠性 最大限度 地提升 。 这一方面 的研究由 于需要对 片上网络 从物理效 应 、故障概率 到容错设 计方法做 比较完整 的建模与 深入分析 而一直未 取得较大 突破 。
2.4其他容错方法
除上述多 种容错设 计方法外 , 还有一些 其他的容 错设计方 法可以被 应用到片 上网络的 容错设计 中 。 目前这些 方法已经 在其他电 路设计领 域被采用 了 ,但片上网 络领域研 究还相对 较少 。 基于感知 的容错方 法和基于 设计优化 的容错方 法就是比 较重要的 两种 。
基于感知 的设计方 法其实质 在于通过 测量环境 参数 、 分析电路 的工作状 态 , 进而判断 电路是否 在当前环 境条件下 工作在不 稳定的临 界状态 。 当判明当 前状态后 ,通过调整 电路的工 作状态使 得错误率 降低到可 以被纠正 的程度 。 目前这种 方法已经 被应用于 高能效处 理器可靠 性设计中[29]。 片上网络 领域还较 少见到采 用类似的 设计方法 。
基于设计 优化的容 错方法是 指在设计 优化时不 但考虑优 化系统性 能 、 资源或功 耗开销等 , 同时可以 把可靠性 问题加以 优化 。 例如可以 通过优化 专用片上 网络的拓 扑结构来 减少或避 免串扰引 起的故障 。 这一容错 设计方法 已经在专 用集成电 路中逐步 被采用 ,但同样在 片上网络 研究领域 使用还相 对较少 。
3结语
片上网络 篇7
1.1 片上互连网络
传统的单芯片多处理器普遍采用共享总线的方式进行处理器之间的通信与数据传输, 由于这种结构实现方式简单、发展比较成熟, 并可以使用IP核来简化设计, 从而得到了广泛的应用。然而, 随着微电子技术的发展, 单芯片多处理器结构逐渐朝着多核化 (几十或上百个核) 和异构化 (即包含不同类型的核) 的方向发展, 共享总线结构在带宽、信号集成度、信号延迟以及全局同步等方面都面临着新的问题, 逐渐成为影响系统处理器性能的主要瓶颈。由于上述原因, 共享总线无法满足大规模系统的需要。把互连网络用于片上系统设计, 解决片上组件之间的通信问题, 这就是片上网络。传统的共享总线结构采用广播方式进行通信, 使得系统的功耗浪费在无效的通信上。与此相反, 由于片上网络采用了全局异步、局部同步以及端到端的通信方式, 只有参与通信的组件是激活的, 因此大大降低了系统的功耗。
片上网络 (Network-On-Chip:NOC) 是通过一个网络的转换来实现计算、存储以及I/O设备资源之间的连通。各种设备资源使用的是带有地址的数据包, 通过交换矩阵的方式, 这些数据包被路由到它们的目的地, 从而实现资源之间的通讯。NOC是片上系统 (System-On-Chip:SOC) 的一种新的设计方法。基于NOC的片上系统能较好地适应复杂SOC设计中常使用的全局异步、局部同步的时钟机制, 随着硬件工艺的发展, 片上系统在通信上也产生了一些问题, 包括共享总线的带宽瓶颈、复杂的仲裁、全局的互连以及全局时钟同步等, 片上网络的引入可以在一定程度上解决上述问题, NOC方法带来了一种全新的片上通信方法, 显著改善了传统总线式系统的性能。
1.2 片上互连网络的低功耗
一方面, 片上网络 (NOC) 的结构被看作是高扩展性、高可靠性以及片上模块通讯的基础设施平台[1]。NOC的架构使用分层协议和包括了片上路由、链接以及预定义拓扑网络接口的分组交换网络, 如图1所示:
图1中所示的是片上网络的基本结构, 片上互连网络 (NOC) 是一种低功耗的结构, 具有高带宽、质量控制等优点[2]。因此, 片上网络 (NOC) 被认为是未来集成工艺下多核技术发展的必然方向。
另一方面, 片上网络通过将片上系统相连接实现片上的网络互连, 达到物理层次上的资源共享, 虽然相比于传统共享总线的设计结构, 片上网络具有低功耗的优良性质, 然而, 当大量的片上系统互连成为一个片上网络后, 能耗问题将会更加突显, 因此, 在片上互连网络的研究领域里, 能耗问题也越来引起人们的重视, 相关针对于片上互连网络低功耗方面的研究也将成为片上网络领域的一个重要内容。
2 片上互连网络设计原理及功耗分析
对于片上互连网络结构与原理方法上的研究有很多方面, 例如设计方法、拓扑探索、服务质量保证 (QoS) 、软件的资源管理以及测试与验证等。上述方面在片上互连网络模型的设计上也是十分重要的, 不同的设计会直接影响到系统的性能以及功耗。因此, 要从低功耗角度对片上互连网络结构进行研究, 首先就要分析传统的片上互连网络结构, 通过与低功耗片上互连网络结构的对比, 可以让我们更深入地了解影响片上网络互连功耗的相关原因。
2.1 共享总线与片上网络
2.1.1 共享总线结构
各种数据处理设备 (包括计算机或外围设备) 通过公共数据通道 (总线) 连接起来, 构成共享总线系统结构, 简称共享总线。共享总线采用广播的方式进行信息的发送, 因此, 总线系统的性能取决于总线的带宽, 随着总线带宽的提高, 系统性能的增加, 系统的功耗也将大幅度增加。
2.1.2 片上网络结构
片上网络结构为资源提供了基础的通讯设施。片上网络结构的设计, 我们要遵循两个宗旨:一是尽可能将硬件资源以独立块的形式出现, 并通过将数据块作为一种网络元素节点来实现片上网络;二是片上网络在设计上需要保持良好扩展性和可配置性, 从而适应各种不同的工作流。
如图2所示, 在片上网络的体系结构下, 不同的节点之间可以通过交换节点进行信息的传递与交换, 这样可以大幅度提高系统的性能, 但是这种设计也增加了芯片结构的复杂性以及带宽的要求, 在单位面积上的功耗也会增加。
2.2 传统片上网络设计
传统的互连网络的设计很少考虑功耗问题, 而是把关注点更多的集中在片上网络的性能上, 如图3中所示的三种片上网络结构设计其性能以及功耗的示意图:
由图3可以看出, 传统的片上互连网络随着其性能的提高, 其功耗也不断增加, 而且这种增大的幅度并不是以线性的比例增长, 功耗的大幅度提高也会直接导致硬件成本的增加, 这样在有限的资源条件下会限制片上系统性能的进一步提升。
2.3 低功耗片上互连网络设计
片上网络结构的设计, 首先要针对目标系统设计一个最佳的拓扑网络结构, 常见的拓扑结构包括总线结构、星形结构、网状结构、点对点以及分层拓扑结构等。这些结构在能量损耗以及功耗方面都有着不同的特性。图4所示为片上互连网络的一种同步结构。
3 片上互连网络低功耗分析
传统共享总线模式通过广播的方式传输信息, 连接在总线上的计算机以及外部设备在不停的监听信息、交换信息, 总线带宽成为了性能的瓶颈, 而且随着总线带宽的不断提高, 外接设备的不断升级, 其功耗也将急速增加。而图2所示的一个片上互连网络通过节点间的相互通讯实现了并行的消息传输, 这样就避免了总线带宽的瓶颈问题, 另外, 由于片上互连网络采用了全局异步、局部同步设计及端到端的通信方式, 只有参与通信的组件是激活的, 因此大大降低了系统的功耗。因此, 片上网络在相同性能的情况下其功耗要远远低于共享总线结构模式。
另一方面, 从图2中我们也不难看出, 由于片上网络采用了一种拓扑的结构模式, 因此, 当片上网络达到一定规模的时候, 节点之间的通讯所消耗的能量也将急剧增加。针对于这种情况, 一些科研工作者设计了一些降低片上网络功耗的结构, 例如一种基于激光的致力于动态降低高带宽芯片通讯中的能量耗散的片上网络结构[3]以及一种基于路由灵活性设计的片上网络结构[4]。此外, 还有一些适用于片上网络的算法的创新, 在提高片上系统的性能的同时也在一定程度上降低了片上网络的功耗。
片上网络低功耗的设计与实现大多是基于技术的更新与拓扑结构的改善来实现的, 这也是研究如何进一步降低片上网络的功耗问题的重要方向和途径。
4 片上互连网络低功耗总结及展望
相比于传统的共享总线结构, 片上网络可以解决在新的网络环境下所面临的瓶颈问题, 性能上有所提升, 单位面积上的功耗有所下降, 但是, 随着片上网络拓扑范围和节点数量的不断增加, 其功耗也不断增大。
尽管片上互连网络在片上通信方面相比共享总线技术有着很大的优势, 但是它并不会完全取代传统的共享总线结构技术, 为了达到性能、复杂性以及功耗上的平衡, 需要将这些技术相互结合, 比如在局部范围内仍然采用总线方式以达到较高的通信速度和较低的复杂度, 而在全局范围内采用片上网络以减少全局同步的需求、增加数据带宽并达到较高的信号可靠性, 从而实现系统的低功耗。
在片上网络的设计上, 要注意很多的问题, 包括拓扑综合、传输通道带宽、缓存尺寸、底层规划等问题[5], 此外, 在降低片上互连网络的功耗方面, 不仅需要更先进、更节能的技术, 而且需要更加合适的调度算法, 这样才能使得片上网络的功耗进一步下降, 从而进一步提高片上系统的性能。
低功耗是片上系统研究的重要内容, 目前, 片上网络的研究还处于起步阶段, 虽然出现了不少针对于低功耗的设计架构, 但是, 在商业产品中还没有得到广泛的应用。片上网络互连的低功耗问题将是一个长期被人们研究的话题, 随着通讯技术的不断升级、硬件设备的更新换代、各种优秀的算法被发明, 片上网络的功耗将会逐步降低, 不断满足企业和社会的需求。
摘要:片上网络 (Network-On-Chip:NOC) 是通过一个网络的转换来实现计算、存储以及I/O设备资源之间的连通, NOC是片上系统 (System-On-Chip:SOC) 一种新的设计方法, 基于NOC的片上系统能很好地适应复杂SOC设计中常使用的全局异步局部同步的时钟机制。因此, NOC方法带来了一种全新的片上通信方法, 显著改善了传统总线式系统的性能, 被认为是未来集成工艺下多核技术发展的必然方向。该文通过对片上互连网络自上而下的结构分析, 通过与传统的共享总线结构的对比, 来研究片上互连网络架构中与功耗相关的基本要素, 以及影响功耗大小的原因, 同时, 通过分析低功耗片上互连网络设计的相关成果, 来找出片上互连网络中与功耗相关的要点, 为片上互连网络 (NOCs) 低功耗的相关研究提供参考。
关键词:片上网络 (NOC) ,片上系统 (SOC) ,共享总线,低功耗
参考文献
[1]Benini L.Networks on chips:A new SoC paradigm[J].IEEE Computer, 2002, 36 (1) :70-78.
[2]A 51mw 1.6GHz On-Chip Network for Low Power Heterogeneous Soc Platform KangminLee, Se-JoongLee, Sung-EunKim, Hye-MiChoi, DonghyunKim, SunyoungKim, Min-WukLee, Hoi-Jun Yoo Semiconductor System Lab.Korea Advanced Institute of Science and Technolo gy
[3]The Case for Low-Power Photonic Networks on Chip Assaf Shacham, Keren Bergman, Luca P.Carloni Columbia University Dept.of Com puter Science.
[4]Exploiting the Routing Flexibility for Energy/Performance Aware Mapping of Regular Noc Architectures Jingcao Hu Radu Marculescu De partment of Electrical and Computer Engineering Carnegie Mellon University Pittsburgh, PA 15213-3890, USA.
片上网络 篇8
随着科学技术的发展, 传统的SoC基于总线传输方式已经不能满足传输的需要, 由此出现了片上网络。相对于SoC, 片上网络提供了对于不同的片上处理核的一种有效的连接方式。同时, 计算单元被映射到网络的块中 (如图1所示) , 计算单元之间的通讯被打包通过块中内嵌的路由器来传递, 传统的分布式缓存路由器如图2所示。NoC的设计能使多个应用程序同时运行。在这过程中网络资源的应用包括对于任务包时间槽的分配, 在同一链路上传递的包的优先级的判定以及何时产生和接收这些包。而判断最终性能的一个很重要的指标就是最后一个任务完成的时间。目前已有许多文章对NoC的优化进行研究。在文献[1]中, 作者对于通常块结构的NoC架构提出了在满足带宽要求条件下的一个映射问题。在文献[2]中, 作者提出了最小化执行时间和功耗的一个映射问题。然而, 以上分析都没有考虑到包调度的延迟, 也没考虑到总的运行时间, 因此不能满足严格的最后期限要求。在文献[3]中, 作者提到了一个共享式缓存路由器架构, 这种架构能大大地减少NoC总体面积, 但是对阻塞情况的改进仍然不是很理想。
针对以上路由方法的不足, 本研究提出一种多路径路由方法, 从所有可利用的路径中通信, 这样可以平均地把通信任务分布到各个路径中, 因此可以更好地利用带宽, 以减少阻塞情况的出现。
1 路由器架构实现
片上网络的资源是受限的, 特别是对于缓存和面积的要求。在标准的计算机网络中, 网络路由器一般有较大的缓存空间。在发生拥塞的情况下, 网络的性能在很大程度上受缓存大小的影响。但对于片上网络, 缓存的大小因为面积和功耗的限制, 不能很大[4]。当片上网络采用分布式缓存的路由器时, 有些端口会发生堵塞, 有些端口的缓存则可能空闲, 因此整体的利用率不高, 因此, 采用共享式缓存可以提高缓存的利用率, 而且可以有效地减少传输堵塞的情况, 并且能适应不同的应用程序。一种共享缓存的路由器的架构图如图3所示。缓存是采用多端口的存储器, 每个方向的端口都有两个分别指向头和尾的指针。
2 多路径路由方法
多路径路由方法就是从所有可以利用的路径中通信, 这样可以平均地把通信任务分布到各个路径中, 从而可以更好地利用带宽, 以减少阻塞的情况。由于采用多路径路由方法时, 包并不是按顺序到达的, 因此需要额外的机制来保障。可以采用查询表来记录各个包的到达情况, 并对每个包都加上额外的标记来表示该包在整个任务中的顺序[5]。如果标记正好与查询表当前需要接收的包顺序一致, 则把该包路由到目标, 并且表中的所需接收包的顺序加1;反之, 则将接收到的包放入缓存中, 直到需要该包为止。因为在特定路径上的包是按顺序的, 所以只有当包不是按相同路径到达的时候, 包才不是按序的。
为了支持多路径路由方法, 需要在图3的路由器架构中加上一个查询表。具体结构如图4所示 (该图省略了端口及其缓存) 。
3 路由调度算法描述
3.1 维序XY路由算法的分析
维序XY路由是最简单、也是最常用的单路径确定性路由算法。该算法中分组的路由只取决于源节点和目的节点的地址, 与网络状况无关。分组先在X维上路由, 当分组到达与目的节点同一列时, 转向在Y维上的路由, 最后到达目的节点[6]。硬件设计和实现简单, 在网络流量不大时, 具有较小的时延, 并且可防止死锁和活锁。
但是, 当源节点和目的节点被确定时, 路由路径就被惟一确定。该算法在mesh结构的网络中容易造成网络中央负载过大, 产生热点 (hot spot) 或热点区域, 发生拥塞。
3.2 多路径路由算法的基本思想
在本设计的多路径路由算法中, 节点通过监视其他节点的流量状况来选择分组路由的下一跳。对于多路径调度算法, 需要观察每条路径的流量, 以减少拥塞情况的发生。然后, 基于路径的流量, 为每条路径分配可以使用的概率值。在运行时, 根据每条路径的概率值, 在路径集合中为各个分组选择路径。
算法只允许分组在源和目的节点之间以最短路径传输, 如果源节点和目的节点之间的最短路径有多条, 本地节点根据网络的流量状况和概率值为分组选择一条路由。多路径路由算法描述如下:
(1) 如果当前节点与目的节点的地址具有相同的X维 (或Y维) 坐标, 则将分组沿Y维 (或X维) 路由至目的节点;
(2) 如果不满足, 则本地节点根据其相邻节点可通过的概率值, 选择相应的路径将分组发送出去。
因为限制分组通过最短路径传输, 从而避免了死锁和活锁的发生。
3.3 多路径调度算法的实现
线性规划属于运筹学的分支, 一般表示为在若干约束条件下, 探求目标函数的极大或者极小值。如果目标函数为线性函数, 则称为线性规划。
为了使流量的分布平均, 必须对路由进行调度。整个问题可以看成是LP (linear programming) 问题, 即线性规划问题。该线性规划的目标是使得NoC每条路径的流量平均, 并且满足路径的带宽约束, 在这个基础上为每个连接分配路由。
为解决这个线性规划问题, 本研究先做了如下定义:
定义1 NoC的拓扑图是一个有向图G (V, E) , 每一条边vk∈V代表拓扑结构中的一个网络接口, 有向边el∈E代表网络接口之间的有向通信。NoC中的一对处理核作为连接i, 源节点作为si, 目的节点作为di。连接i的数据传输速率是ri。
定义2SPi为连接i的所有最短的路径 (即从源节点到目标节点的路径) 的集合。Path
为了更好地减少阻塞情况, 本研究必须对每个路径分配相应的流量。为了达到最佳的分配效果, 笔者采用了线性规划方法来解决。此时的LP问题的目标为:
Min.te (1)
式中 te—NoC上任意有向边上的最大流量。
目标是使该最大流量值最小, 使得每条有向边上分配均匀的流量, 避免拥塞。
在该线性规划中, 必须满足的约束条件如下:
flowel≤bandwidthel, ∀el (4)
式 (2) 中, f
当知道所有连接上每条路径的流量时, 就能够根据路径上相应的流量, 计算路由可以使用的概率值。
解决以上LP问题, 能在考虑多路径路由的情况下考虑连接上的调度情况, 使拥塞情况最小, 从而达到最小执行时间的效果。
4 仿真与分析
为了支持多路径的结构, 查询表和多路径的组合逻辑会带来额外的功耗。根据文献[8]中对门的计算和综合结果, 多出的功耗约20 mW, 是整个NoC功耗的5%左右。对于功耗估计, 为了不失一般性, 本研究假设源地址和目的地址的位数是8, 并且包标记的长度也是8位。根据文献[6]中的估算, 多路径在面积方面的开销在5%以内。
为了验证多路径路由算法的有效性, 本研究采用了随机生成图TGFF (task graphs for free) [9]。TGFF既能产生独立的任务, 也能产生部分有序的任务图。总之, TGFF能描述处理器的属性、通讯资源、任务以及任务间通讯。
在本实验中, 产生了50个任务, 并且映射到4×4的块状片上网络架构上, 产生了通信量均匀分布和集中分布两种情况。均匀分布是指一个任务被等概率随机地分配到一个PE上;集中分布是指任务被分配到特定的PE上, 以便产生集中的热点, 此时, 在特定的PE上分配的概率是一般情况的4倍。为了比较, 本研究选取了维序XY算法作为路由调度算法, 并以此作为测试基准。并且, 和文献[3]一样, 本研究也对每个路由器缓存分别为20, 40, 160 flits的情况下与测试基准做比较, 其实验结果如表1所示。
从实验结果来看, 多路径路由算法对于均匀分布与集中分布这两种情况都有明显的改善, 这是因为新算法将通信量更加均匀的分布在整个片上网络架构里。同时, 对于集中分布的情况比均匀分布的情况改善地更多, 因为集中分布的通信量比较集中, 因而更容易发生堵塞情况, 将通信要求分布到其他链路中能大大减少阻塞的情况。对于路由器缓存对结果的影响, 可以看到随着缓存的增大, 总的执行时间的减少量也随着减少。这是因为, 对于较大的缓存, 采用维序XY算法较不容易引起拥塞情况的发生。
在实际情况中, 采用多路径路由算法改善的结构与应用程序的特点有关, 也与应用程序任务的映射关系有关。
5 结束语
本研究提出了一种结合共享缓存和多路径路由算法的新方法, 该方法能充分利用整个片上网络架构的通信资源。多路径路由算法能从所有可利用的路径中通信, 这样可以平均地把通信任务分布到各个路径中, 因此可以更好地利用带宽, 减少阻塞情况的出现。利用该方法, 能显著地减少总的任务运行时间。
摘要:片上网络的路由器共享缓存技术能在不减少性能的前提下减少面积, 针对传统的共享缓存技术的路由器架构, 提出了一种支持多路径路由方法的架构。然后在线性规划理论的基础上, 提出了一种基于线性规划的共享缓存的多路径路由算法。与传统的单路径确定性路由算法相比, 该方法能充分利用网络带宽以减少拥塞, 从而能显著地减少任务总的执行时间。仿真实验结果表明, 该多路径路由方法在通信均匀分布的情况下节省12%~13%的执行时间, 在通信集中分布的情况下则节省22%~23%的执行时间。
关键词:片上网络,共享缓存,多路径路由,线性规划
参考文献
[1]MURALI S, MICHELI G D.Bandwidth-constrained map-ping of cores onto Noc architecture[C]//In Proc.DATE, 2004:16-20.
[2] MARCON C. Exploring Noc mapping strategies: An Energy and Timing Aware Technique[C]//In the Proc. of DATE, 2005:502-507.
[3] LEUNG L, TSUI C. Optimal link scheduling on improving best-effort and guaranteed services performance in Network-on-Chip systems[C]//In DAC06: Proceedings of the 43rd annual Conference on Design Automation, 2006:833-838.
[4] HU J, MARCULESCU R. Application-Specific Buffer Space allocation for Networks-on-Chip Router Design[C]//In the Proc. of ICCAD, 2004:354-361.
[5] MURALI S, ATIENZA D, BENINI L, et al. A multi-path routing strategy with guaranteed in-order packet delivery and fault-tolerance for networks on chip[C]//In Proceedings of the 43rd ACM/IEEE Design Automation Conference (DAC’06) , San Francisco, Calif, USA, 2006:845-848.
[6]DUATO J, YALAMANCHILI S, NI L.Interconnection Net-works, an Engineering Approach[M].IEEE Computer Soci-ety Press, 1997.
[7] HANSSON A. A unified approach to constrained mapping and routing on network-on-chip architectures[C]//Proc. ISSS, 2005:75-80.
[8]STERGIOU S.XpipesLite:a Synthesis Oriented Design Li-brary for Networks on Chips[C]//Proc.DATE, 2005:1183-1193.
【片上网络】推荐阅读:
社会网络分析网络传播05-25
社交网络之网络舆情05-28
网络文献与网络阅读探析08-26
网络时代网络金融分析05-11
网络层面管理通信网络05-31
网络问政与网络舆情10-12
计算机网络与网络通信10-17
计算机网络和网络通信07-31
广播网络化网络广播化08-04
用网络协议分析工具侦测网络故障05-24