文献标识码: A
DOI:10.16157/j.issn.0258-7998.2017.02.006
中文引用格式: 林辛鑫,王君实,林水生,等. 低开销片上网络容错传输机制[J].电子技术应用,2017,43(2):33-35,39.
英文引用格式: Lin Xinxin,Wang Junshi,Lin Shuisheng,et al. Low overhead fault tolerant transmission mechanism for Network-on-Chip[J].Application of Electronic Technique,2017,43(2):33-35,39.
0 引言
随着越来越多的处理器核(Cores)集成到单个芯片上,片上网络(Network-On-Chips,NoCs)因其高带宽和良好的灵活性、可扩展性,已经成为片上系统(System-on-Chips,SoCs)主流的通信结构[1]。然而,随着技术的快速发展,电路故障的几率也随之增长,因此,想要实现高可靠性和高性能,容错手段尤为重要。
数据链路上的比特错误被认为是片上最突出的错误来源[2],它主要是由信道干扰造成的,例如串扰和耦合噪声。为了解决这个问题,曾有许多研究者提出可容错的片上网络传输机制[3],纠错和重传是两个常用的解决方法[4]。使用纠错编码(Error Correction Codes,ECCs)尽管可以纠正一定数量的错误,但纠错能力有限[5]。容错主要在数据链路层和传输层,分别对应点到点(Hop-to-Hop,H2H)和端到端(End-to-End,E2E)[6]。H2H的纠错方法需要在每个路由器的每个端口提供一个译码器,以便在每一跳都能对数据包进行纠错;而E2E的纠错方法只需在到达目的地后纠错。显然,H2H极大地减少了面积开销,但纠错能力也被削弱。此外,重传可以用来弥补纠错编码的不足,提高可靠性。通过重传,数据包无需在每一跳进行纠错。然而,过多的重传会导致更大的时延(Latency)和功耗(Power Consumption),特别是当源地址和目的地址距离很大时这种开销更为致命[7]。另外,重传也会带来更大的网络负载,从而导致网络的拥塞和饱和。因此,为了平衡性能与开销,必须在重传的次数和ECC的复杂度之间进行权衡。
本文提出了一种针对链路上瞬时故障[8]的传输机制,在每一个路由器只对数据包的首部进行轻量级的检错,而将所有数据的纠错转移到网络接口(Network Interfaces,NIs)中进行。该方案可以在不增加额外开销的情况下,提供比H2H和E2E更高的可靠性。
1 容错机制描述
本文所提出的传输机制采用了ECC和E2E超时重传机制[9]。数据包在源NIs中编码,并在目的NIs进行译码。如果译码正确,目的节点向源节点发送一个确认信号(ACK)确认传送成功;否则,直接丢包。为了实现重传机制,源节点的NIs将对数据包进行备份。如果在发包后的特定时间内没有收到ACK,源NIs将重传备份的数据包,当收到正确的ACK再将备份的包从缓存中删除。在正确接收前,数据包可能需要重传多次。
所有NIs都将提供译码器,重用这些单元进行纠错,可以在提高可靠性的同时降低硬件开销。包头在路由器中检错,而负载部分通过旁路通道传输,并不进行检测。如果没有检测到错误,数据包将遵循路由算法传输到下一个路由器,如图1右上部分所示。
如果在包头中检测到错误,数据包将进入本地NIs进行纠错,包括包头和负载。随后,校正过的数据包回到网络中继续传输,如图1左上部分所示。当然,如果错误个数超出纠错码的纠错能力,数据包将在此处被直接丢弃,如图1右下部分所示。
如上所述,路由器提供的是简单的检错电路而非译码电路,极大降低了面积和功耗。另一方面,重用NIs中的译码器进行纠错和重传机制使得可靠性有了保障。
2 关键电路结构
2.1 网络接口结构
为了让纠错后的数据包能重新回到网络中,需要在NIs中增加一个回送通道和相应的控制逻辑。在本方案中,到达目的NIs的不仅是正确的数据包,还有头部包含错误的数据包。因此,所有数据包都将首先经过译码器对包括包头和负载的所有数据进行纠错。如果某一个包的错误个数超过了纠错码的能力,则在此丢掉它。
如果正确纠错的数据包的目的地址与NIs的地址相匹配,数据包将进入输出队列,等待上层处理单元(Processing Elements,PEs)调用,如图2(a)所示。否则数据包将进入回送缓存(Buffer),如图2(b)所示。在这种情况下,ECC的输出不是原信息而是编码后的码字。此处使用回送缓存的目的是为了保证数据包的完整性,回送缓存比输入队列更优先使用输入信道。一旦输入信道中没有数据包,回送缓存可以立刻使用该信道注入数据。
2.2 纠错检错编码
本文采用了一种结合汉明(7,4)码和交织的奇偶校验码的作为检错器(Detectors)。它可以纠正单个比特的随机错误并检测2 bit的突发错误。
汉明码具有低开销、易于实现的特性,被广泛应用于NoCs[10]。编码电路如图3所示,首先使用汉明(7,4)码对数据进行编码,随后将得到的7 bit码字分为奇数部分和偶数部分,分别采用奇偶校验码编码。最后的码字由来自汉明码的7 bit数据(r[0]-r[6])和2 bit的奇偶校验位(c[0],c[1])构成。
数据包在NIs进行完全的编码和译码。汉明码在NIs中译码,而奇偶校验码在每一次纠错后都要进行更新。
在每个路由器中,只使用奇偶校验码检错,重新生成新的比特(s[0],s[1]),并与原校验位(c[0],c[1])进行比较。如果s和c相同,数据很可能是正确的。如果汉明(7,4)码中只有一位错误,s与c会有1 bit不同。因此,该检错码能覆盖汉明码中的所有可纠正的错误。
3 仿真结果
3.1 硬件开销
在这一部分,ECC电路和网络的面积、功耗、时序使用Synopsys Design Compiler的TSMC 45 nm 标准元件库进行综合得到。
译码器、检错器的关键电路时延和功耗如表1所示。显然相比于汉明码,本文提出的编码只增加了0.55 ns的时延和5.5280 uW的能耗。在路由器中,检错器比汉明码的译码器更为简单,其时延仅仅是译码器的39.85%。
不同片上网络结构的面积如表2所示。由于H2H中每个路由器的每个端口都放置了译码器,其面积比基准NoC增加了12.14%。而本文提出的方法在路由器的每个端口只需要一个简单的检错电路,因此相对于基准NoC只增加了1.48%的面积,并且比H2H少了10.66%。
3.2 时延和功耗开销
本部分结果使用ESYNet仿真器在8×8的虫洞交换网络中对时延和功耗进行仿真得到。数据包注入率为0.01 包/周期/路由器,采用均匀分布的随机注入方式。路由算法为XY路由算法。通常情况下,一个数据包分为5片,但ACK包的长度仅有1片。本文仅处理瞬时故障,错误率从0.0到0.003错误/比特/周期。对比项分别为H2H和E2E下的纠错加上E2E超时重传。如表1所示,汉明码译码器的最大时延远大于检错器的时延,因此在仿真时,H2H需要为每个路由器的译码增加一个周期的时延。由于进行了重传,所有方案到达率理论上都能达到100%。
时延和功耗的仿真结果如图4所示。从折线图图4(a)可以看出,当没有发生故障时,H2H方案的时延最大,因为它的每一跳增加了一个周期(Cycle);E2E和提出的方案具有相同的时延。随着错误率的逐渐增加,E2E由于没有纠错机制,其时延迅速增加并且在错误率等于0.000 2时超过H2H。这是由大量的重传造成的。相对于H2H,本文提出的方案在时延上略有优势,这是因此采用了轻量级的检错码。首先,由于检错码实现简单,在路由器中无需增加一级流水,即无需额外一个Cycle。此外,检错码覆盖了大多数可纠正的错误,因此减少了重传的次数。
柱状图图4(b)描述了功耗的变化情况,与时延具有相似的趋势。在没有故障时,3种方法有相同的功耗,随着错误率的增加,E2E的功耗同样迅速增加,而H2H和提出的方案具有相似的走势并且增长缓慢。由于路由器的功耗比译码器或检错器要大得多,显然功耗主要来自重传。E2E中大量的重传导致了巨大的功耗。而对于另两种方法,由于有效的容错机制极大减少了重传带来的功耗。
4 结论
本文提出了一种低开销的解决链路瞬时故障的传输机制。在每个路由器中,轻量级的检错码被用来对包头检错,而数据包的纠错则在NIs中由汉明码来完成,超时重传机制用来处理被丢弃的包。逻辑时序分析和仿真结果显示,本文提出的方案能更好地实现可靠性、性能和开销之间的平衡。它不但能提供和H2H一样的可靠性,并且比H2H和E2E具有更低的面积、时延和功耗上的开销。
参考文献
[1] 付方发.基于片上网络的MPSoC关键技术研究[D].哈尔滨:哈尔滨工业大学航天学院,2012.
[2] SRIDHARA S R,SHANBHAG N R.Coding for system-on-chip networks: a unified framework[J].IEEE transactions on very large scale integration(VLSI) systems,2005,13(6):655-667.
[3] MURALI S,THEOCHARIDES T,VIJAYKRISHNAN N,et al.Analysis of error recovery schemes for networks on chips[J].Trans.VLSI Systems,2000,8(4):379-391.
[4] LEHTONEN T,LILJEBERG P,PLOSILA J.Analysis of forward error correction methods for nanoscale networks-on-chip[C].Proceedings of the 2nd international conference on Nano-Networks.ICST(Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering),2007:3.
[5] BERTOZZI D,BENINI L,G De MICHELI,Error control schemes for on-chip communication links:the energy-reliability tradeoff[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2005(6):818-831.
[6] PANDE P P,GANGULY A,FEERO B,et al.Design of low power & reliable networks on chip through joint crosstalk avoidance and forward error correction coding[C].2006 21st IEEE International Symposium on Defect and Fault Tolerance in VLSI Systems.IEEE,2006:466-476.
[7] PARK D,NICOPOULOS C,KIM J,et al.Exploring fault-tolerant network-on-chip architectures[C].International Conference on Dependable Systems and Networks(DSN'06).IEEE,2006:93-104.
[8] YU Q,AMPADU P.Transient and permanent error co-management method for reliable networks-on-chip[C].Networks-on-Chip(NOCS),2010 Fourth ACM/IEEE International Symposium on.IEEE,2010:145-154.
[9] SHAMSHIRI S,GHOFRANI A,CHENG K T.End-to-end error correction and online diagnosis for on-chip networks[C].2011 IEEE International Test Conference.IEEE,2011:1-10.
[10] DUTTA A,TOUBA N A.Reliable network-on-chip using a low cost unequal error protection code[C].22nd IEEE International Symposium on Defect and Fault-Tolerance in VLSI Systems(DFT 2007).IEEE,2007:3-11.
作者信息:
林辛鑫,王君实,林水生,黄乐天
(电子科技大学 通信与信息工程学院,四川 成都611731)