文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.008
中文引用格式: 杭彥希,徐金甫,陳松濤,等. 面向片上網(wǎng)絡(luò)路由器FIFO故障的實(shí)時(shí)容錯(cuò)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2017,43(3):36-39.
英文引用格式: Hang Yanxi,Xu Jinfu,Chen Songtao,et al. Design of fault-tolerant router for online FIFO fault detection on network-on-chip[J].Application of Electronic Technique,2017,43(3):36-39.
0 引言
目前對(duì)路由器故障的檢測(cè)與容忍研究是片上網(wǎng)絡(luò)相關(guān)研究的一個(gè)重要方面。其解決辦法主要有以下兩類(lèi):(1)通過(guò)容錯(cuò)路由算法繞開(kāi)故障節(jié)點(diǎn),如文獻(xiàn)[1]和文獻(xiàn)[2]。但是這些方法容錯(cuò)粒度較大,一旦發(fā)現(xiàn)故障節(jié)點(diǎn)就選擇繞開(kāi)或者丟棄,極大地浪費(fèi)了片上緩存等資源;(2)通過(guò)修改路由器微結(jié)構(gòu)進(jìn)行容錯(cuò),如文獻(xiàn)[3]和文獻(xiàn)[5],但是根據(jù)文獻(xiàn)[4],在FIFO深度為32的路由器中,F(xiàn)IFO占用了94%以上的面積,發(fā)生故障的概率也最大,文獻(xiàn)[3]未對(duì)FIFO提出容錯(cuò)方案,這顯然對(duì)于設(shè)計(jì)容錯(cuò)路由器是不夠的。文獻(xiàn)[5]的檢錯(cuò)粒度大,且其采用的故障通道隔離技術(shù)浪費(fèi)了片上一些仍然可用的資源。文獻(xiàn)[4]提出了一種可靠的容錯(cuò)路由器架構(gòu)Vicis,但是文中提出的故障診斷是線(xiàn)下的,降低了路由器的工作效率。文獻(xiàn)[6]提出了一種在線(xiàn)的FIFO硬故障檢查方法,能夠在線(xiàn)對(duì)FIFO故障進(jìn)行檢測(cè),但是故障覆蓋率不高,也未對(duì)最關(guān)鍵的FIFO控制部分進(jìn)行故障檢測(cè),而且在對(duì)故障檢測(cè)后也未提出合適的容錯(cuò)方案。
綜合以上研究,本文針對(duì)于片上網(wǎng)絡(luò)FIFO提出了一種故障實(shí)時(shí)容忍設(shè)計(jì)方案,首先針對(duì)于片上網(wǎng)絡(luò)FIFO中易發(fā)生的故障建立故障模型;然后提出一種針對(duì)于片上網(wǎng)絡(luò)路由器FIFO的實(shí)時(shí)故障檢測(cè)算法,最后提出了有效的容錯(cuò)機(jī)制容忍FIFO故障。
1 FIFO功能模型及故障模型
本文選用的路由器是基本的蟲(chóng)孔路由器,采用蟲(chóng)孔交換機(jī)制,輸入通道中利用FIFO作為數(shù)據(jù)包緩存。
1.1 FIFO功能模型
本文討論的是異步雙端口RAM型FIFO,其功能模型如圖1所示。
FIFO相關(guān)控制信號(hào)作用如下:
FF:FIFO滿(mǎn)信號(hào),為1表示滿(mǎn),為0表示不滿(mǎn);
EF:FIFO空信號(hào),為1表示空,為0表示不空;
RS:復(fù)位信號(hào),將讀寫(xiě)地址恢復(fù)到初始地址(Initial Address,IA),即(RAR):=IA||(WAR):=IA||FF:=0||EF:=1,||代表操作同時(shí)獨(dú)立發(fā)生;
WE:寫(xiě)使能,WE=1時(shí)允許寫(xiě)操作;
RE:讀使能,RE=1時(shí)允許讀操作;
WClk:寫(xiě)時(shí)鐘;
RClk:讀時(shí)鐘。
1.2 FIFO故障模型
本文結(jié)合RAM型FIFO中尋址故障和功能故障發(fā)生相似性,將片上網(wǎng)絡(luò)FIFO故障分為存儲(chǔ)單元陣列故障和FIFO控制邏輯故障兩大類(lèi)。存儲(chǔ)單元陣列故障模型包括:固定型故障(Stuck-At Fault,SAF)、開(kāi)路故障(Stuck-Open Fault,SOF)、地址譯碼器故障(Address Decoder Fault,ADF)、跳變故障(Transition Fault,TF)、耦合故障(Coupling Fault,CF)(包括倒置耦合故障CFin,固化耦合故障CFid,狀態(tài)耦合故障CFst)、數(shù)據(jù)延時(shí)故障(Data Retention Fault,DRF)和多端口故障(Multi-Port Fault,MPF)。FIFO控制邏輯故障模型主要有以下5種:
FF=0,while(WAR)=(RAR) and (LO)=WO;
FF=1,while(WAR)≠(RAR) or (LO)≠WO;
EF=0,while(WAR=RAR) and (LO=RO);
EF=1,while(WAR)≠(RAR) or (LO)≠RO;
RS:(WAR)≠I(mǎi)A or (RAR)≠I(mǎi)A or (LO)≠RO。
2 容錯(cuò)設(shè)計(jì)
2.1 實(shí)時(shí)故障檢測(cè)算法描述
i=test_address;//FIFO地址指針
j=0;//j代表單地址測(cè)試周期
while(j≤2) do
if(j == 1||j == 2)
delay;//發(fā)現(xiàn)DRF故障
temp1=read(i);
if(j == 0)
if(0 < i < n-1) check(FF == 0&EF == 0);
if(i = n-1) check(FF == 0&EF == 1);
original = temp1;
write(i,!temp1) & temp2 = read(i);
result = compare(temp1,temp2);
else if(j == 1)
result = compare(temp1,original);
write(i,!temp1) & temp2 = read(i);
result = compare(temp1,temp2);
if(0 < i < n-1) check(FF == 0&EF == 0);
if(i = n-1) check(FF == 1&EF == 0);
else
result = compare(temp1,original);
end if
j = j+1;
endwhile
算法中i代表FIFO的測(cè)試地址,每次測(cè)試分為3個(gè)階段,由j來(lái)控制,當(dāng)j為0時(shí)執(zhí)行算法的第一個(gè)階段,讀出測(cè)試地址test_address的值,保存在一個(gè)臨時(shí)寄存器temp1中,并通過(guò)判斷是否是FIFO最后一個(gè)地址來(lái)檢查空標(biāo)志EF的狀態(tài),隨后將temp1的值保存在一個(gè)寄存器original中,然后對(duì)temp1取反,將取反值寫(xiě)到測(cè)試地址上,與此同時(shí),讀出測(cè)試地址上的值與temp1做比較;當(dāng)j為1時(shí),進(jìn)入第二個(gè)測(cè)試階段,先經(jīng)過(guò)一段時(shí)間的延遲,然后讀出測(cè)試地址上的值存在temp1中,與original值作比較,并將temp1值取反寫(xiě)回到測(cè)試地址上,與此同時(shí),讀出測(cè)試地址上的值,與temp1值作比較,并通過(guò)判斷是否是FIFO最后一個(gè)地址來(lái)檢查滿(mǎn)標(biāo)志FF的狀態(tài);當(dāng)j為2時(shí),同樣經(jīng)過(guò)一段延時(shí),然后讀出測(cè)試地址上的值,最后一個(gè)階段的讀操作保證了對(duì)前兩個(gè)階段未發(fā)現(xiàn)的故障再次進(jìn)行檢測(cè),有效增強(qiáng)了故障檢測(cè)能力。
2.2 故障覆蓋率分析
針對(duì)前文描述的不同故障類(lèi)型,本文對(duì)提出的測(cè)試算法能達(dá)到的故障覆蓋率分析如下。
耦合故障(CF): 算法對(duì)FIFO每個(gè)地址的值都采取了翻轉(zhuǎn)和讀寫(xiě)交替操作,但是地址只遞增遍歷一次,對(duì)于侵略單元地址大于受害單元地址的故障不能檢出,因此只能覆蓋50%的耦合故障。
數(shù)據(jù)延時(shí)故障(DRF):算法描述中的Del代表了一定的延時(shí)操作,可覆蓋DRF。
控制邏輯故障:可對(duì)空滿(mǎn)信號(hào)FF/EF故障進(jìn)行檢測(cè),但是因?yàn)樗惴◤?qiáng)調(diào)實(shí)時(shí)性和無(wú)損性,所以對(duì)復(fù)位信號(hào)RS故障無(wú)法檢測(cè)。
2.3 FIFO重定向機(jī)制
本文引入FIFO讀寫(xiě)指針重定向表(Redirection Table),提出一種FIFO故障檢測(cè)與重定向機(jī)制。讀寫(xiě)地址生成器生成的讀寫(xiě)指針輸入到重定向表中,產(chǎn)生輸入到FIFO緩存的讀寫(xiě)指針,其原理圖如圖3所示,深色方塊代表故障槽。在未檢測(cè)到故障時(shí),重定向表與FIFO中地址一一順序?qū)?yīng);當(dāng)檢測(cè)到故障后,測(cè)試電路產(chǎn)生地址更新信號(hào)address_update對(duì)重定向表進(jìn)行更新,有效避開(kāi)了故障并充分節(jié)省了片上資源。
3 功能比較及實(shí)驗(yàn)結(jié)果
3.1 功能比較
本文提出的路由器FIFO檢錯(cuò)容錯(cuò)方法與文獻(xiàn)[4]、文獻(xiàn)[6]提出的方法在故障覆蓋率、測(cè)試在線(xiàn)性和是否有容錯(cuò)機(jī)制分析比較如表1所示??梢园l(fā)現(xiàn)本文方案故障覆蓋率較高,具有實(shí)時(shí)測(cè)試性,且包含容錯(cuò)機(jī)制。
3.2 仿真實(shí)驗(yàn)
本文采用修改的開(kāi)源片上網(wǎng)絡(luò)仿真器作為仿真實(shí)驗(yàn)平臺(tái),使用systemC作為硬件描述語(yǔ)言,搭建的拓?fù)浣Y(jié)構(gòu)為4×4的mesh結(jié)構(gòu),F(xiàn)IFO深度為6個(gè)微片,路由算法采用XY維序路由方式。根據(jù)提出的算法設(shè)計(jì)相應(yīng)的FIFO故障測(cè)試電路,并通過(guò)設(shè)置故障測(cè)試電路不同的時(shí)鐘周期觀(guān)察網(wǎng)絡(luò)的延時(shí)和吞吐率。
圖4所示的是在不同的測(cè)試周期下網(wǎng)絡(luò)的吞吐率變化圖。隨著測(cè)試周期的不斷增加,吞吐率增長(zhǎng)越來(lái)越緩慢,逐漸接近一個(gè)固定值,這是因?yàn)楫?dāng)測(cè)試周期增加,對(duì)FIFO測(cè)試的頻率減少,測(cè)試過(guò)程對(duì)片上網(wǎng)絡(luò)正常工作模式的影響越來(lái)越小。
圖5所示為不同測(cè)試周期下的網(wǎng)絡(luò)延時(shí)變化圖,隨著測(cè)試周期的不斷增加,平均網(wǎng)絡(luò)延時(shí)逐漸接近一個(gè)固定值。
為測(cè)試本文容錯(cuò)機(jī)制對(duì)故障容忍的效果,在FIFO注入相同故障的情況下,比較基準(zhǔn)蟲(chóng)孔路由器和本文提出的路由器在不同數(shù)據(jù)包注入率下的吞吐率和延時(shí)。圖6所示為吞吐率對(duì)比圖,隨著注入率增大,采用基準(zhǔn)路由器和本文路由器的網(wǎng)絡(luò)的吞吐率都逐漸接近飽和值,但是因?yàn)楸疚穆酚善鞑扇×巳蒎e(cuò)措施,吞吐率改善約為17.89%。
圖7所示為延時(shí)對(duì)比圖,可以看出本文的路由器隨數(shù)據(jù)包注入率增加,延時(shí)均小于基準(zhǔn)路由器,這是因?yàn)榛鶞?zhǔn)路由器未設(shè)計(jì)合適的容錯(cuò)機(jī)制,隨注入率增加,基準(zhǔn)路由器的堵塞和丟包現(xiàn)象越來(lái)越嚴(yán)重。與基準(zhǔn)蟲(chóng)孔路由器相比,本文路由器延時(shí)改善約25.67%。
4 結(jié)論
本文根據(jù)FIFO讀寫(xiě)特性,提出了一種可對(duì)片上網(wǎng)絡(luò)路由器FIFO故障實(shí)時(shí)檢測(cè)并對(duì)故障容忍的方法。實(shí)驗(yàn)結(jié)果表明,在故障條件下,能有效提高片上網(wǎng)絡(luò)吞吐率,并且降低了網(wǎng)絡(luò)延時(shí)。
參考文獻(xiàn)
[1] 姚磊,蔡覺(jué)平,李贊,等.基于內(nèi)建自測(cè)技術(shù)的Mesh結(jié)構(gòu)NoC無(wú)虛通道容錯(cuò)路由算法[J].電子學(xué)報(bào),2012,40(5):983-989.
[2] Liu Junxiu,Jim Harkin,Li Yuhua,et al.Fault-tolerant networks-on-chip routing with coarse and fine-grained look-ahead[J].IEEE Transactions on Computer-aided Design of Integrated Circuits and Systems,2016,35(2):260-273.
[3] Pavan Poluri,Ahmed Louri.Shield:a reliable network-on-chip router architecture for chip multiprocessors[J].IEEE Transactions on Parallel and Distributed Systems,2016.
[4] Andrew DeOrio,David Fick,Valeria Bertacco,et al.A reli-able routing architecture and algorithm for NoCs[J].IEEE Transactions on Computer-aided design of Integrated Circuits and Systems.2012,31(5):726-739.
[5] 歐陽(yáng)一鳴,陳義軍,梁華國(guó),等.一種故障通道隔離的低開(kāi)銷(xiāo)容錯(cuò)路由器設(shè)計(jì)[J].電子學(xué)報(bào),2014,42(11):2142-2149.
[6] Bibhas Ghoshal,Kanchan Manna,Santanu Chattopadhyay et al.In-field test for permanent faults in FIFO buffers of NoC routers[J].IEEE Transactions on Very Large Scale Integration Systems.2016,24(1):393-397.
[7] SEBASTIAN W,JAVIER N,MIKEL L.A survey on design approaches to circumvent permanent faults in networks-on-chip[J].ACM Computing Surveys.2016,48(4):5920-5936.
作者信息:
杭彥希,徐金甫,陳松濤,郭朋飛
(解放軍信息工程大學(xué),河南 鄭州450001)