文獻標識碼: 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)