一种用于片上容错通信的随机路由算法-中国科学院

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种用于片上容错通信的随机路由算法∗
张磊 李华伟 李晓维
(中国科学院计算技术研究所计算机系统结构重点实验室,先进测试技术实验室,北京)
zlei@,lihuawei@,lxw@
摘 要芯片制造工艺进入深亚微米和纳米级以后,片上将会出现更多新的难以预测和消
除的故障类型。

应用容错机制和算法实现可靠的片上通信是片上网络(Network on Chip,简称NoC)要解决的一个重要问题。

本文概述了主要的片上容错通信算法,提出了一种带有端到端反馈的随机路由算法,并比较了这些算法的平均传输延迟,功耗和可靠性。

实验
表明,这种算法具有较短的延迟,较低的功耗,并能提供高可靠的片上通信。

关键词容错;可靠性;片上网络;扩散算法;随机走动;检错纠错;随机路由;
1 引言
工艺的进步不断驱动着SoC性能和复杂度的提高,片上将会集成数以百计,甚至更多的处理单元、存储单元、DSP核以及I/O模块等。

为了缩短面市时间,SoC芯片应该以一种即插即用的方式复用已有的部件。

这种系统集成方法使得片上的互连机制成为关键因素[1]。

传统的片上互连机制一般使用共享总线结构,或者是专用的互连结构。

由于这些结构的可扩展性不好,不能满足未来片上通信的需求。

为了克服这些局限性,最近提出使用片上网络(Network on Chip,简称NoC)[1-3],作为片内互连的基本结构。

它为片上各部件之间的通信提供预定义的服务质量(QoS),包括带宽、延迟、可靠性等。

在各种QoS中,传输的可靠性是最重要的方面之一。

在深亚微米和纳米工艺条件下,片上网络的容错通信机制已经是不可或缺的一个重要方面。

导致片上传输不可靠的因素主要有两方面[4]:首先是串扰对于长传输线的影响;另一个方面就是由于各种原因,如宇宙射线、电磁干扰、工艺的不稳定等,导致瞬时错误和软错误将显著的增加。

在设计阶段完全避免和消除这些故障是不可能的或者代价是非常昂贵的,因此必须使用一定的容错机制。

由于功耗开销和芯片面积的限制,传统的容错算法不再适合片上网络,而必须有专门的针对片上网络的容错机制。

本文以一种最常用的NoC模型为基础,概述了主要的容错算法,提出一种随机路由算法,并给出实验结果和分析。

2 片上网络的错误恢复和容错机制
一种最常用的片上网络结构,如图1所示。

在这种结构中,一个晶片被划分成16个对称的小块(Tile)。

计算资源,如处理单元等,被映射在这些tile上面。

Tile之间通过片上网络进行通信。

每一个tile都有一个网络接口(Network Interface)与网络交换机(Switch)相连,每一个交换机同周围四个邻居交换机相连。

网络接口是数据包的收发装置。

这种Mesh结构是本文算法研究和实现的基本模型。

目前针对片上网络的容错算法,主要分为两类,一类是基于检错纠错码的请求重传机制;另一类是基于随机通信的容错机制。

∗本文获得国家重点基础研究发展计划(973计划/编号2005CB321604),国家自然科学基金项目(编号90207002)资助。

作者简介张磊男,1981年生,博士研究生,主要研究方向包括片上网络和芯片设计。

2.1 请求重传
片上网络的请求重传机制可以分为三类:端到端的重传机制、交换机到交换机的重传机制和混合机制[5]。

00
33
图1 二维Mesh结构的片上网络 图2 路由向量示意图 端到端的重传机制使用CRC或者奇偶校验码来检查数据包的完整性。

数据包只在接收端被检查,中间交换机只负责转发数据包。

数据发送端等待接收端的反馈以决定是否重传。

交换机到交换机的重传机制则不同,每一跳交换机都要检查通过它的数据包,因此都需要解码器,这种每跳确认的机制可以提供较好的服务质量。

混合机制使用端到端的纠错码,如双检错单纠错码,可以在一定程度上减少重传的开销。

但是复杂的纠错逻辑将带来较大的芯片面积开销。

2.2 随机通信
请求重传机制需要很多片上资源,而且具有较长的传输延迟,这严重限制了SoC系统的性能[6]。

对于NoC来说,连线资源是非常丰富的,针对这一特点,有学者提出了随机通信算法。

Dumitras[4]提出了概率扩散(Probability Flooding)算法。

在这个算法中,数据源,称为生产者,以概率p广播数据包,它的某些邻居就会收到这个数据包的一份拷贝。

在下一个扩散周期,所有拥有这个数据包的tile以相同的概率p向它们的邻居广播数据包。

这个过程一直进行下去,直到数据包传播到数据的接收端,称为消费者。

概率扩散算法不需要重传,因为消费者会从它四周的邻居处得到很多冗余的数据包。

概率扩散算法具有指数传播速度。

Pirretti[6]提出了直接扩散(Direct Flooding)和N-冗余随机走动(N-Redundant Random Walk)算法。

直接扩散克服了概率扩散中目的地被忽视的缺点。

对于扩散算法,不管是概率扩散还是直接扩散都需要在网络中传输大量冗余的数据包,从而造成了很大的开销。

在N-冗余随机走动算法中,每跳交换机不再广播数据包,而是将数据包转发给随机选择的某一个邻居。

该算法向网络中注入确定数目的数据包,即N,N是预先计算好的,并能满足一定的可靠性要求。

每个数据包沿着略微不同的路径到达消费者。

实验证明,和扩散算法相比,随机走动算法可以极大的减少传输开销。

3 随机路由算法
请求重传的传输延迟可能会很长,而随机通信能达到很高的转发速度,但是大量的冗余数据包造成了很大的转发功耗,这与未来芯片低功耗的要求背道而驰。

N-冗余随机走动算法正是针对这一问题。

但是这种算法也有很多局限。

首先,每一个交换机都要有概率的标准化逻辑和随机数产生器,这是一个相当大的电路开销,而且也会影响转发的速度;其次,N的选择比较复杂,不能灵活的适应各种片上环境的需求;最后,N-冗余随机走动算法不能达到100%的可靠性。

如果消费者收到第N个数据包仍然是错误的,此时生产者已经停止了发送,消费者无法收到正确的数据包;而另一方面,如果消费者在第N个数据包之前,已经收到了正确的拷贝,但是生长者还会继续发送冗余的数据包直到第N个,造成带宽和功耗的浪费。

基于上述分析,本文提出了一种带有端到端反馈的随机路由算法。

如图2所示,一个4X4的Mesh
片上网络。

假设生产者是00,消费者是33,为了避免不必要的传输开销,规定从00路由到33,只能向右,或者向下,也就是最短路由。

设向右用0表示,向下用1表示,那么黑色表示的路由向量为(001101),红色为(100110)。

从00到33的所有路由向量都由6位组成,其中一定含有三个0和三个1,也就是必须向右路由三次,向下路由三次才能到达消费者。

按照排列组合的理论可知,一共有
6! / (3! * 3!) = 20
个路由向量。

我们把这20个路由向量存储在生产者的查找表里,并产生一个从1到20的随机数,来选择其中的一个路由向量。

被选中的路由向量封装在数据包的路由域中。

每个中间交换机只需要读取其中一位来确定下一步的转发方向。

消费者接收到数据包后进行校验,并发送ack 或nack 通知生产者是否收到了正确的数据包。

Ack/nack 的路由向量只需要将源数据包中的路由向量变反,如(000111)变为(111000),就能按照原路返回。

此时0表示向左,1表示向上。

生产者采用流水的方式向网络中注入数据包,即每一个周期随机挑选一个路由向量,发送一个数据包拷贝,直到它收到ack 。

随机路由算法需要一个特殊的方向域(Direction Field ,简称DF),表明生产者和消费者的相对位置。

图3描述了如何构建路由向量表以及如何设置DF 域。

图3 (a) 路由向量
图3 (b) DF域
图3的过程只需要在每次传输前执行一次。

此外还需要一个位检测指针(Bit Check Pointer ,简称BCP),交换机根据BCP 检测路由向量中相应的位。

随机路由算法的伪码描述如图4所示。

4 实验
4.1 实验方案
我们使用概率统计的方法,在Matlab 中模拟三种算法。

对于请求重传算法,假设交换机之间的传输失效率是p ,那么传1次成功的概率就是(1-p ),传两次的概率为p (1-p ),传三次的概率为(1-p )p 2,
图4 (a) 图4 (b)
表1 转发方向表
图4 (c) 图4 随机路由算法
→:向右转发 ←:向左转发 ↑:向上转发 ↓:向下转发 X :忽略
依此类推。

假设两个交换机之间需要传C 次才能成功,那么随机数C 的期望C μ和标准方差C σ为:
C μ=1*(1-p )+2*p (1-p )+3*p 2(1-p )+......+n*p (n-1)(1-p )+......=∑; (1)

=−−1
)1()1(n n p np 2C σ =(1-p )(1-C μ)2+p (1-p )(2-C μ)2+......+p n-1(1-p )(n-C μ)2 +......=∑; (2)

=−−−1
)1(2)1()(n n C p p n μ求得:C μ =
p
−11
;C σ=
)1/(p p −;
我们在Matlab 中产生一个服从N (C μ,C σ2)正态分布的随机数,作为交换机之间成功发送数据包所需要传输的次数,并计算传输的延迟和需要发送数据包的总数。

对于N-冗余随机走动算法,由于交换机之间不需要重传,所以网络中发送的数据包数目和平均延迟都是确定的。

对于N-冗余随机走动算法,由于每一跳都需要进行标准化和产生随机数,所以在模拟中,我们假设交换机的转发需要两个周期,而其他的一般转发需要一个周期。

对于N-冗余随机走动算法,如果交换机之间的传输失效率为p ,数据包从00传输到33的可靠性为:
R =N *(1-p )6
也就是说至少有一个数据包在六跳中都没有失效。

对于随机路由算法,采用端到端的重传确认,传输失效率为p’
p’ = 1-(1-p )6
表示在传输过程中,至少有一对交换机之间的传输发生失效的概率。

并用同样的方法产生一个正态分布的随机数,表示在消费者接收到第一个正确的数据包之前所接收的数据包总数。

要说明的是,在实验中我们假设反馈数据包使用三模冗余[5],即一次并行的反馈三个ack 或nack ,具有很高的传输可靠性,所以忽略了ack 和nack 丢失和被损坏的情况。

4.2 结果和分析
本小节中我们比较和分析三种算法,即交换机到交换机的请求重传、N -冗余随机走动算法(N =64)和随机路由算法的传输延迟、功耗和可靠性。

·传输延迟 在4X4的Mesh 网络中,交换机间的传输失效率分别为1%, 2%, 3%, 4%, 5%, 10%和20%,网络中生产者分别向消费者发送10个,50个和200个数据包。

图5给出了平均传输延迟和交换机间失效率的关系。

在数据源发送的数据包较少的情况下,例如10个数据包,请求重传的平均延迟较小,而随机走
50 Packets
501001501%
2%
3%
4%
5%
10%20%
交换机间的传输失效率
200 Packets
1002003004005006001%
2%
3%
4%
5%10%
20%
10 Packets
102030405060701%
2%
3%
4%
5%10%20%
平均传输延迟(周期)
图5 平均传输延迟 vs. 交换机间的传输失效概率
200 Pack ets
50000
1000001500002000001%2%3%4%5%10%20%
5
图6 网络中转发的数据包总数 vs. 交换机间的传输失效概率
图7 可靠性比较
动的延迟却非常大,因为数据包的转发需要两个周期;当数据包数目增大以后,如50个或者200个,
请求重传的延迟迅速增长,比其他两种算法都要大。

而不管在什么情况下,随机路由算法的平均延迟都是最短的。

根据图5我们还可以看出随机走动和随机路由算法的平均延迟相对失效率的变化很小,而请求重传的延迟随失效率的变大增长很快。

这说明确定性算法不适合解决随机错误,如瞬时错误。

·功耗 在该实验中我们只评估数据包的转发功耗,不考虑缓存等的功耗。

我们假设三种算法的转发逻辑都是相同的,那么转发功耗只取决于片上网络转发的数据包总数[6]。

转发的数据包数目越多就意味着转发功耗越高。

图6描述了网络中转发的数据包总数和交换机间的传输失效率之间的关系。

请求重传机制对于失效率的变化是很敏感的,失效率的变化导致发送数据包的数目抖动很大;而随机走动和随机路由算法则没有抖动或者抖动很小。

由图6可以看出随机路由算法所要转发的数据包总数总是小于随机走动算法。

当数据源发送的数据包数目较小的时候,请求重传机制的开销是最小的,而随机走动开销是最大的。

随着数据包数目的增加,重传机制的开销迅速增加,而随机路由算法的功耗开销是最小的。

所以当应用程序需要在两个节点之间大量发送数据包的时候,使用随机路由算法可以极大的节省转发功耗;而当两个节点之间只需要进行一些简单的握手协议,数据量较小的时候,请求重传机制是较好的选择。

而随机走动算法在任何情况下,都具有相当大的功耗开销。

·可靠性 图7给出了三种算法的可靠性比较。

由于请求重传和随机路由算法,都必须进行反馈和确认,因此如果消费者没有收到正确的数据包,算法就不会停止。

随机走动算法则不然,随着链路失效率的增大,其可靠性逐渐降低,即使是使用64-冗余的随机走动算法,其可靠性也很低,它只
能提供best-effort 的服务,而不是guaranteed-service 。

10 Pack ets
1000
2000300040005000
1%
2%
3%
4%
5%10%20%
数据包总数
0 Pack ets
5000
100001500020000250001%
2%
3%
4%5%10%20%
交换机间的传输失效率0
204060801001201%
3%
5%
20%
交换机间的传输失效率可靠性%
请求重传随机走动(N=64)随机路由
5 结论
本文概述了目前片上网络中广泛采用的错误恢复和容错通信的机制,并提出了一种带有端到端反馈的随机路由算法。

随机路由算法结合了随机走动算法的低延迟和重传机制的高可靠性。

数据包发送前随机挑选路由向量,可以有效的处理随机错误;中间交换机不需要进行计算和处理,可以达到很高的转发速度;消费者收到正确的数据包以后会通知生产者停止继续发送数据包,避免了不必要的传输开销;生产者在收到确认信息之前不会停止发送数据包,保证了高可靠的传输。

对响应数据包丢失的处理,超时的处理等将在后续工作中展开。

参考文献
[1]L. Benini and G. D. Micheli. Networks on chip: a new paradigm for systems on chip design[C] // Proceedings of Design
Automation and Test in Europe Conference and Exhibition, Paris, France,2002: 418 –419.
[2]Dally, W.J.T., B. Route packets, not wires: on-chip interconnection networks[C] // Proceeding of Design Automation
Conference, Las Vegas, Nevada, USA, 2001: 684-689
[3]Adriahantenaina, A.; Charlery, H.; Greiner, A.; Mortiez, L.; Zeferino,C.A. SPIN: a scalable, packet switched, on-chip
micro-network[C] // Proceeding of Design, Automation and Test in Europe Conference and Exhibition, Munich, Germany, 2003:70 - 73
[4]Dumitras, T.K., S.; Marculescu, R.. Towards On-Chip Fault-Tolerant Communication[C] // Design Automation
Conference, Proceedings of ASP-DAC, Kitakyushu, Japan, 2003: 225-232
[5]Murali, S. Analysis of Error Recover Schemes for Networks on Chips[J]. IEEE Design & Test, 2005, 22(5):434- 442
[6]Pirretti, M.L., G.M.; Brooks, R.R.; Vijaykrishnan, N.; Kandemir, M.; Irwin, M.J. Fault Tolerant Algorithms for
Network-On-Chip Interconnect[C] // IEEE International Annual Symposium on VLSI, Lafayette, LA, USA, 2004:46-51
A Random Routing Algorithm for on-chip Fault Tolerant
Communication
Zhang Lei Li Huawei Li Xiaowei
Advanced Test Technology Laboratory, Key Laboratory of Computer System and Architecture, Institute of
Computing Technology, Chinese Academy of Sciences, Beijing
Abstract In DSM and nanometer technology, there will present more and more new fault types, which are difficult to predict and avoid. Applying fault tolerant algorithms and mechanisms to achieve reliable on-chip communication is one of the most important issues of network on chip (NoC). We review the main on-chip fault tolerant communication algorithms, and propose a random routing algorithm with end-to-end feedback. The average transmission latency, power consumption and reliability are compared. As experiments show, the proposed random routing algorithm has lower latency, lower power consumption compared with those of others, and it can provide on-chip communication with high reliability.
Key words fault tolerant; reliability; network on chip; flooding; random walk; error correcting & detecting; random routing;。

相关文档
最新文档