文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.02.006
中文引用格式: 林辛鑫,,王君實,,林水生,等. 低開銷片上網(wǎng)絡(luò)容錯傳輸機制[J].電子技術(shù)應(yīng)用,,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)集成到單個芯片上,,片上網(wǎng)絡(luò)(Network-On-Chips,NoCs)因其高帶寬和良好的靈活性,、可擴展性,,已經(jīng)成為片上系統(tǒng)(System-on-Chips,SoCs)主流的通信結(jié)構(gòu)[1],。然而,,隨著技術(shù)的快速發(fā)展,電路故障的幾率也隨之增長,,因此,,想要實現(xiàn)高可靠性和高性能,容錯手段尤為重要,。
數(shù)據(jù)鏈路上的比特錯誤被認為是片上最突出的錯誤來源[2],,它主要是由信道干擾造成的,例如串?dāng)_和耦合噪聲,。為了解決這個問題,,曾有許多研究者提出可容錯的片上網(wǎng)絡(luò)傳輸機制[3],糾錯和重傳是兩個常用的解決方法[4],。使用糾錯編碼(Error Correction Codes,,ECCs)盡管可以糾正一定數(shù)量的錯誤,但糾錯能力有限[5],。容錯主要在數(shù)據(jù)鏈路層和傳輸層,,分別對應(yīng)點到點(Hop-to-Hop,H2H)和端到端(End-to-End,,E2E)[6],。H2H的糾錯方法需要在每個路由器的每個端口提供一個譯碼器,以便在每一跳都能對數(shù)據(jù)包進行糾錯,;而E2E的糾錯方法只需在到達目的地后糾錯,。顯然,H2H極大地減少了面積開銷,,但糾錯能力也被削弱,。此外,,重傳可以用來彌補糾錯編碼的不足,提高可靠性,。通過重傳,,數(shù)據(jù)包無需在每一跳進行糾錯。然而,,過多的重傳會導(dǎo)致更大的時延(Latency)和功耗(Power Consumption),,特別是當(dāng)源地址和目的地址距離很大時這種開銷更為致命[7]。另外,,重傳也會帶來更大的網(wǎng)絡(luò)負載,,從而導(dǎo)致網(wǎng)絡(luò)的擁塞和飽和。因此,,為了平衡性能與開銷,,必須在重傳的次數(shù)和ECC的復(fù)雜度之間進行權(quán)衡。
本文提出了一種針對鏈路上瞬時故障[8]的傳輸機制,,在每一個路由器只對數(shù)據(jù)包的首部進行輕量級的檢錯,,而將所有數(shù)據(jù)的糾錯轉(zhuǎn)移到網(wǎng)絡(luò)接口(Network Interfaces,NIs)中進行,。該方案可以在不增加額外開銷的情況下,,提供比H2H和E2E更高的可靠性。
1 容錯機制描述
本文所提出的傳輸機制采用了ECC和E2E超時重傳機制[9],。數(shù)據(jù)包在源NIs中編碼,并在目的NIs進行譯碼,。如果譯碼正確,,目的節(jié)點向源節(jié)點發(fā)送一個確認信號(ACK)確認傳送成功;否則,,直接丟包,。為了實現(xiàn)重傳機制,源節(jié)點的NIs將對數(shù)據(jù)包進行備份,。如果在發(fā)包后的特定時間內(nèi)沒有收到ACK,,源NIs將重傳備份的數(shù)據(jù)包,當(dāng)收到正確的ACK再將備份的包從緩存中刪除,。在正確接收前,,數(shù)據(jù)包可能需要重傳多次。
所有NIs都將提供譯碼器,,重用這些單元進行糾錯,,可以在提高可靠性的同時降低硬件開銷。包頭在路由器中檢錯,,而負載部分通過旁路通道傳輸,,并不進行檢測,。如果沒有檢測到錯誤,數(shù)據(jù)包將遵循路由算法傳輸?shù)较乱粋€路由器,,如圖1右上部分所示,。
如果在包頭中檢測到錯誤,數(shù)據(jù)包將進入本地NIs進行糾錯,,包括包頭和負載,。隨后,校正過的數(shù)據(jù)包回到網(wǎng)絡(luò)中繼續(xù)傳輸,,如圖1左上部分所示,。當(dāng)然,如果錯誤個數(shù)超出糾錯碼的糾錯能力,,數(shù)據(jù)包將在此處被直接丟棄,,如圖1右下部分所示。
如上所述,,路由器提供的是簡單的檢錯電路而非譯碼電路,,極大降低了面積和功耗。另一方面,,重用NIs中的譯碼器進行糾錯和重傳機制使得可靠性有了保障,。
2 關(guān)鍵電路結(jié)構(gòu)
2.1 網(wǎng)絡(luò)接口結(jié)構(gòu)
為了讓糾錯后的數(shù)據(jù)包能重新回到網(wǎng)絡(luò)中,需要在NIs中增加一個回送通道和相應(yīng)的控制邏輯,。在本方案中,,到達目的NIs的不僅是正確的數(shù)據(jù)包,還有頭部包含錯誤的數(shù)據(jù)包,。因此,,所有數(shù)據(jù)包都將首先經(jīng)過譯碼器對包括包頭和負載的所有數(shù)據(jù)進行糾錯。如果某一個包的錯誤個數(shù)超過了糾錯碼的能力,,則在此丟掉它,。
如果正確糾錯的數(shù)據(jù)包的目的地址與NIs的地址相匹配,數(shù)據(jù)包將進入輸出隊列,,等待上層處理單元(Processing Elements,,PEs)調(diào)用,如圖2(a)所示,。否則數(shù)據(jù)包將進入回送緩存(Buffer),,如圖2(b)所示。在這種情況下,,ECC的輸出不是原信息而是編碼后的碼字,。此處使用回送緩存的目的是為了保證數(shù)據(jù)包的完整性,回送緩存比輸入隊列更優(yōu)先使用輸入信道。一旦輸入信道中沒有數(shù)據(jù)包,,回送緩存可以立刻使用該信道注入數(shù)據(jù),。
2.2 糾錯檢錯編碼
本文采用了一種結(jié)合漢明(7,4)碼和交織的奇偶校驗碼的作為檢錯器(Detectors),。它可以糾正單個比特的隨機錯誤并檢測2 bit的突發(fā)錯誤,。
漢明碼具有低開銷、易于實現(xiàn)的特性,,被廣泛應(yīng)用于NoCs[10],。編碼電路如圖3所示,首先使用漢明(7,,4)碼對數(shù)據(jù)進行編碼,,隨后將得到的7 bit碼字分為奇數(shù)部分和偶數(shù)部分,分別采用奇偶校驗碼編碼,。最后的碼字由來自漢明碼的7 bit數(shù)據(jù)(r[0]-r[6])和2 bit的奇偶校驗位(c[0],,c[1])構(gòu)成。
數(shù)據(jù)包在NIs進行完全的編碼和譯碼,。漢明碼在NIs中譯碼,,而奇偶校驗碼在每一次糾錯后都要進行更新。
在每個路由器中,,只使用奇偶校驗碼檢錯,,重新生成新的比特(s[0],s[1]),,并與原校驗位(c[0],,c[1])進行比較。如果s和c相同,,數(shù)據(jù)很可能是正確的,。如果漢明(7,4)碼中只有一位錯誤,,s與c會有1 bit不同。因此,,該檢錯碼能覆蓋漢明碼中的所有可糾正的錯誤,。
3 仿真結(jié)果
3.1 硬件開銷
在這一部分,ECC電路和網(wǎng)絡(luò)的面積,、功耗,、時序使用Synopsys Design Compiler的TSMC 45 nm 標準元件庫進行綜合得到。
譯碼器,、檢錯器的關(guān)鍵電路時延和功耗如表1所示,。顯然相比于漢明碼,本文提出的編碼只增加了0.55 ns的時延和5.5280 uW的能耗。在路由器中,,檢錯器比漢明碼的譯碼器更為簡單,,其時延僅僅是譯碼器的39.85%。
不同片上網(wǎng)絡(luò)結(jié)構(gòu)的面積如表2所示,。由于H2H中每個路由器的每個端口都放置了譯碼器,,其面積比基準NoC增加了12.14%。而本文提出的方法在路由器的每個端口只需要一個簡單的檢錯電路,,因此相對于基準NoC只增加了1.48%的面積,,并且比H2H少了10.66%。
3.2 時延和功耗開銷
本部分結(jié)果使用ESYNet仿真器在8×8的蟲洞交換網(wǎng)絡(luò)中對時延和功耗進行仿真得到,。數(shù)據(jù)包注入率為0.01 包/周期/路由器,,采用均勻分布的隨機注入方式。路由算法為XY路由算法,。通常情況下,,一個數(shù)據(jù)包分為5片,但ACK包的長度僅有1片,。本文僅處理瞬時故障,,錯誤率從0.0到0.003錯誤/比特/周期。對比項分別為H2H和E2E下的糾錯加上E2E超時重傳,。如表1所示,,漢明碼譯碼器的最大時延遠大于檢錯器的時延,因此在仿真時,,H2H需要為每個路由器的譯碼增加一個周期的時延,。由于進行了重傳,所有方案到達率理論上都能達到100%,。
時延和功耗的仿真結(jié)果如圖4所示,。從折線圖圖4(a)可以看出,當(dāng)沒有發(fā)生故障時,,H2H方案的時延最大,,因為它的每一跳增加了一個周期(Cycle);E2E和提出的方案具有相同的時延,。隨著錯誤率的逐漸增加,,E2E由于沒有糾錯機制,其時延迅速增加并且在錯誤率等于0.000 2時超過H2H,。這是由大量的重傳造成的,。相對于H2H,本文提出的方案在時延上略有優(yōu)勢,,這是因此采用了輕量級的檢錯碼,。首先,,由于檢錯碼實現(xiàn)簡單,在路由器中無需增加一級流水,,即無需額外一個Cycle,。此外,檢錯碼覆蓋了大多數(shù)可糾正的錯誤,,因此減少了重傳的次數(shù),。
柱狀圖圖4(b)描述了功耗的變化情況,與時延具有相似的趨勢,。在沒有故障時,,3種方法有相同的功耗,隨著錯誤率的增加,,E2E的功耗同樣迅速增加,,而H2H和提出的方案具有相似的走勢并且增長緩慢。由于路由器的功耗比譯碼器或檢錯器要大得多,,顯然功耗主要來自重傳,。E2E中大量的重傳導(dǎo)致了巨大的功耗。而對于另兩種方法,,由于有效的容錯機制極大減少了重傳帶來的功耗,。
4 結(jié)論
本文提出了一種低開銷的解決鏈路瞬時故障的傳輸機制。在每個路由器中,,輕量級的檢錯碼被用來對包頭檢錯,,而數(shù)據(jù)包的糾錯則在NIs中由漢明碼來完成,超時重傳機制用來處理被丟棄的包,。邏輯時序分析和仿真結(jié)果顯示,,本文提出的方案能更好地實現(xiàn)可靠性、性能和開銷之間的平衡,。它不但能提供和H2H一樣的可靠性,,并且比H2H和E2E具有更低的面積、時延和功耗上的開銷,。
參考文獻
[1] 付方發(fā).基于片上網(wǎng)絡(luò)的MPSoC關(guān)鍵技術(shù)研究[D].哈爾濱:哈爾濱工業(yè)大學(xué)航天學(xué)院,,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,,F(xiàn)EERO 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.
作者信息:
林辛鑫,,王君實,,林水生,黃樂天
(電子科技大學(xué) 通信與信息工程學(xué)院,,四川 成都611731)