侯 寧, 賀 偉, 宋宇鯤
(1.河南城建學(xué)院 電氣與信息工程學(xué)院,河南 平頂山 467000;2.合肥工業(yè)大學(xué) 微電子設(shè)計研究所,安徽 合肥 230009)
片上網(wǎng)絡(luò)(network on chip,NoC)是1999年前后幾個研究小組提出的一種全新的片上互連通訊架構(gòu)[1-2]。與總線、交叉開關(guān)等傳統(tǒng)架構(gòu)相比,NoC在可擴(kuò)展性、可重用性、設(shè)計效率、通訊帶寬等方面具有優(yōu)勢[3-5]。至今,NoC已經(jīng)成為多核處理器互連通訊架構(gòu)的事實(shí)標(biāo)準(zhǔn)。
路由器是NoC的核心部件,而交換機(jī)制是決定路由器行為特征的最重要因素。蟲孔交換和電路交換資源消耗較少,是NoC路由器最常采用的2種交換機(jī)制,而且各有優(yōu)缺點(diǎn)。蟲孔交換是一種無連接的交換方式,常與虛擬通道流控機(jī)制結(jié)合使用,鏈路利用率很高,但是支持虛擬通道的蟲孔交換路由器不能保證報文切片連續(xù)到達(dá)。電路交換是一種面向連接的交換方式,鏈路建立后傳輸延遲確定,能夠保證報文切片連續(xù)到達(dá),但是鏈路利用率較低,并且建立和撤銷鏈路的延遲不能忽視。
相比于支持虛擬通道的蟲孔交換機(jī)制,電路交換較低的鏈路利用率影響了其在NoC中的使用。但是電路交換可保證報文切片連續(xù)到達(dá),這對于大量、連續(xù)數(shù)據(jù)傳輸?shù)膹?qiáng)實(shí)時應(yīng)用,以及具備向量計算能力的運(yùn)算節(jié)點(diǎn)來說非常重要。
本文研究了不同通訊特征下,電路交換路由器和支持虛擬通道的蟲孔交換路由器的通訊性能差異,并針對電路交換路由器鏈路利用率低的不足,提出虛擬電路機(jī)制,提高路由器通訊性能。
包連接電路(packet connected circuit,PCC)路由器是2003年瑞典林雪平大學(xué)SoCBUS項目提出的一種典型的電路交換路由器[6]。它使用攜帶路由信息的報文切片建立傳輸鏈路,以電路交換的方式傳輸數(shù)據(jù),傳輸結(jié)束后撤銷電路。蟲孔交換路由器具有通道緩存,采用蟲孔交換方式。針對通道緩存的管理和調(diào)度問題,研究者提出了多種不同結(jié)構(gòu)的支持虛擬通道的蟲孔交換路由器[7-9]。本文以基本結(jié)構(gòu)支持虛擬通道的蟲孔交換路由器(virtual channel router,VCR)為研究對象,其中虛擬通道數(shù)量和單個通道緩存深度均為4。
采用C++語言分別建立PCC和VCR的周期精確2DMesh NoC仿真器,網(wǎng)絡(luò)維度均為8×8。交通發(fā)生器(traffic generator,TG)產(chǎn)生隨機(jī)分布通訊,分析不同注入率、不同報文長度(packet length,PL)下2種交換機(jī)制路由器的通訊性能。為保證仿真準(zhǔn)確性warm-up周期數(shù)為4×107,隨后開始統(tǒng)計。仿真總周期數(shù)為108。
不同PL下,VCR和PCC平均切片延遲隨注入率變化曲線如圖1所示。由圖1可知,PL增加使VCR和PCC平均切片延遲逐漸逼近:PL=16時,PCC平均切片延遲2倍于VCR;PL=1 024且注入率小于0.1flit/(node×cycle)時,PCC平均切片延遲接近VCR。
圖1 2種交換機(jī)制路由器通訊性能曲線
PCC平均延遲大幅降低的原因在于,一方面,PL增加,建鏈后傳輸?shù)那衅瑪?shù)量增加,建鏈的額外延遲占報文傳輸延遲的比重降低,平均切片延遲減少;另一方面,隨著PL增加,統(tǒng)計周期內(nèi)待傳輸報文的數(shù)量減小,擁塞次數(shù)降低,鏈路利用率提高,平均切片延遲減少。相比之下,VCR的虛擬通道機(jī)制能夠有效地提高鏈路利用率,平均切片延遲始終維持在較低水平。
從VLSI實(shí)現(xiàn)角度分析,PCC不需要緩沖區(qū),面積較小,0.18μm工藝下,5端口的PCC面積僅為0.06mm2;VCR需要緩沖區(qū),面積較大,相同或更好工藝下,面積大于1mm2,VCR面積是PCC的十幾倍。
綜合考慮通訊性能和資源消耗,得出如下結(jié)論:電路交換路由器面積很小,PL較大(大于512)且注入率較低(小于0.1flit/(node×cycle))時,通訊性能可以接受,但PL較?。ㄐ∮?6)或注入率較高(大于0.15flit/(node×cycle))時通訊性能很差;支持虛擬通道的蟲孔交換路由器面積較大,但通訊性能優(yōu)異。
PCC傳輸報文需要4個階段:① 帶有路由信息的頭切片由源節(jié)點(diǎn)發(fā)出,逐級經(jīng)過路由到達(dá)目的節(jié)點(diǎn);② 應(yīng)答信號由目的節(jié)點(diǎn)發(fā)出,沿頭切片經(jīng)過的反向路徑到達(dá)源節(jié)點(diǎn),建鏈完畢;③ 體切片傳輸;④ 源節(jié)點(diǎn)撤銷鏈路。建鏈過程中,PCC逐級鎖定鏈路,一旦頭切片擁塞,已鎖定鏈路不能再由其他報文使用,造成鏈路閑置,降低鏈路使用率。本文定義這種現(xiàn)象為建鏈阻塞(setup link block,SLB)問題。
SLB問題實(shí)例如圖2所示。報文A建鏈?zhǔn)?,頭切片緩沖在路由器4中,持續(xù)請求south方向鏈路。由于報文A鎖定路由器3和4間的鏈路,報文B的頭切片不能使用該鏈路,使報文B建鏈?zhǔn)。鴪笪腁建鏈成功前,路由器3和4間的鏈路一直空閑。
圖2 SLB問題實(shí)例
SLB問題類似于隊列頭(head-of-line,HoL)阻塞問題[10]。VCR的虛擬通道流控機(jī)制[11]有效地緩解了HoL問題。與虛擬通道思想類似,本文提出虛擬電路(virtual circuit,VC)緩解SLB問題。
2項措施使VC能夠緩解SLB問題:① 報文頭切片不再鎖定鏈路,而由應(yīng)答信號Ack鎖定;② 設(shè)置多個頭切片寄存器并共享鏈路。VC緩解SLB問題的原理如圖3、圖4所示。
在圖3中,報文A的頭切片擁塞時,空閑的頭切片寄存器可以緩存后繼報文B的頭切片,并且由于頭切片不再鎖定鏈路,路由器3與4間鏈路仍能使用,使路由器1~5中同時存在報文A和報文B建立的2條VC。圖4中,報文B的頭切片到達(dá)目的節(jié)點(diǎn)并觸發(fā)應(yīng)答信號Ack;Ack反向逐級鎖定鏈路,報文B的VC成為傳輸鏈路,建鏈成功;同時,報文A的VC仍存在,頭切片繼續(xù)請求路由器4的south方向鏈路。
圖3 報文A和B分別建立2條虛擬電路
圖4 報文B的虛擬電路成為物理鏈路
多個端口同時收到Ack信號的情形如圖5所示。
圖5 多個端口同時收到Ack信號
設(shè)計確保公平性的輪轉(zhuǎn)仲裁機(jī)制,決定可以繼續(xù)鎖定鏈路的Ack信號。仲裁失敗的Ack信號被鎖存,直到鏈路釋放后進(jìn)行下一次仲裁。
VC緩解了SLB問題,提高鏈路利用率,但SLB問題仍存在。支持VC后SLB問題的變化如圖6所示。報文A和報文B的頭切片共用路由器4與1間鏈路,分別建立VC并觸發(fā)Ack信號。報文A的Ack信號經(jīng)仲裁成功鎖定路由器4與1間鏈路。報文B的Ack信號鎖存在路由器1中,但也同時鎖定了路由器1與2和路由器2與3間鏈路,造成2條鏈路閑置。此時,報文C的頭切片只能緩存在路由器2中,持續(xù)請求east方向鏈路,造成新的SLB問題。
圖6 支持虛擬電路后SLB問題的變化
下面仿真分析支持虛擬電路機(jī)制的包連接電路路由器(packet connected circuit router with virtual-circuit mechanism,VCPCC)的通訊性能。
采用C++語言建立VCPCC的周期精確2D Mesh NoC仿真器,VCPCC的每個端口支持4條虛擬鏈路,其余實(shí)驗(yàn)條件和預(yù)加載通訊特征與前述相同。
對于不同PL,VCPCC、PCC和VCR 3種路由器的平均切片延遲隨注入率變化曲線如圖7所示。
圖7 3種路由器通訊性能曲線
不同PL下,在注入率為0.15flit/(node×cycle)時,VCPCC平均切片延遲與PCC相比降低的比率見表1所列。平均來說,VCPCC平均切片延遲比PCC降低約26.3%。VCPCC和PCC飽和注入率分別在0.20flit/(node×cycle)和0.15flit/(node×cycle)左右。VCPCC飽和注入率比PCC提高約25.0%。
由前述分析可知,電路交換路由器急需提升短報文傳輸時的通訊性能。不同PL下,在注入率為0.15flit/(node×cycle)時,以平均切片延遲為指標(biāo),VCPCC和PCC分別達(dá)到VCR通訊性能的比率見表2所列。VCPCC的通訊性能已經(jīng)全面接近VCR,即使對于短報文(PL=16)傳輸,VCPCC的通訊性能也可以達(dá)到VCR的80.0%。
表1 VCPCC與PCC相比平均切片延遲降低比率
表2 VCPCC和PCC分別達(dá)到VCR通訊性能的比率 %
測試虛擬電路數(shù)目(VCLN)對VCPCC通訊性能的影響。實(shí)驗(yàn)中設(shè)置VCLN的值為2、4、8,PL=512,其他測試條件不變。測試結(jié)果如圖8所示。
圖8 虛擬電路數(shù)目對通訊性能影響
對于短報文(PL=16)傳輸,VCLN由2增至4時,VCPCC通訊性能改善較大,但VCLN繼續(xù)增加后,VCPCC通訊性能改善有限;長報文(PL=512)傳輸時,增大VCLN對VCPCC通訊性能改善不大。這是由于鏈路一旦鎖定,后續(xù)的頭切片即被阻塞,不能繼續(xù)建立VC。考慮VC的資源開銷,VCPCC中VCLN設(shè)置為2個較為適宜。
采用Verilog HDL語言實(shí)現(xiàn)5通道,單個通道包括2個VCLN,32bit位寬VCPCC的RTL建模,使用ModelSim仿真驗(yàn)證通過后,利用Xil-inx公司的ISE針對Virtex-6-550t器件完成邏輯綜合。同時,完成了5通道,單個通道包括4個深度為4的虛擬通道,32bit位寬VCR,以及5通道、32bit位寬PCC的邏輯綜合。VCPCC、PCC和VCR資源消耗對比見表3所列。
表3 VCPCC、PCC和VCR路由器資源消耗
VCPCC消耗的邏輯資源是PCC的3倍。VCPCC主要增加了VC控制邏輯、VC分配邏輯以及開關(guān)仲裁邏輯,這些邏輯主要由多路選擇器和仲裁器組成。盡管VCPCC與PCC相比占用更多邏輯資源,但是VCPCC顯著提升了電路交換路由器的通訊性能,并且在短報文傳輸時也表現(xiàn)良好,擴(kuò)展了電路交換路由器的應(yīng)用范圍。
VCPCC仍然是一種電路交換路由器,不需要通道緩存。文獻(xiàn)[12]研究表明,在70nm CMOS工藝下,典型通道緩存的漏電流功耗占路由器漏電流總功耗的70%,通道緩存面積超過路由器總面積的50%以上。通道緩存是路由器面積和功耗的主要來源。因此,與VCR相比,VCPCC在面積和功耗2個方面更具優(yōu)勢。
仿真實(shí)驗(yàn)表明,由于電路交換路由器的鏈路利用率很低,通訊性能較差,特別對于短報文傳輸,電路交換路由器的通訊性能極差,嚴(yán)重限制系統(tǒng)整體性能提升。針對該問題,提出支持虛擬電路機(jī)制的包連接電路路由器(VCPCC)。與一般的電路交換路由器(PCC)相比,VCPCC平均切片延遲降低約26.3%,飽和注入率提高約25.0%。更重要的是,對于短報文傳輸,VCPCC通訊性能可以達(dá)到VCR的80.0%,而PCC只能達(dá)到VCR的52.1%,這使得電路交換路由器基本滿足短報文傳輸要求,應(yīng)用范圍更廣,并能顯著改善系統(tǒng)性能。在資源消耗方面,由于增加了虛擬電路,VCPCC消耗的邏輯資源是PCC的3倍,而由于VCPCC仍然是一種電路交換路由器,不需要通道緩存,因此在面積和功耗2個方面遠(yuǎn)小于支持虛擬通道的蟲孔交換路由器(VCR)。
[1] Guerrier P,Greiner A.A generic architecture for on-chip packet-switched interconnections[C]//Proceedings of Design,Automation and Test in Europe,F(xiàn)rance,2000:250-256.
[2] Benini L,De Micheli G.Networks on chip:a new SoC paradigm[J].IEEE Computer,2002,35(1):70-78.
[3] 侯 寧,趙紅梅,張多利,等.層次化架構(gòu)嵌入式多核處理器原型設(shè)計及其編程研究[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2014,37(11):1322-1327.
[4] 岳 峰,李潤豐,陳 田.基于隨機(jī)路由的高性能片上路由器設(shè)計與仿真[J].電子測量與儀器學(xué)報,2013,27(7):669-675.
[5] Pande P P,Grecu C,Jones M,et al.Performance evaluation and design trade-offs for network-on-chip interconnect architectures[J].IEEE Transactions on Computers,2005,54(8):1025-1040.
[6] Wiklund D,Liu D.SoCBUS:switched network on chip for hard real time embedded systems[C]//Proceedings of International Parallel and Distributed Processing Symposium,2003.doi:10.1109/IPDPS.2003.1213180.
[7] Nicopoulos C A,Park D,Kim J.ViChaR:a dynamic virtual channel regulator for network-on-chip router[C]//The 39th Annual IEEE/ACM International Symposium on Micro architecture,2006:333-346.
[8] Lai Mingche,Wang Zhiying,Gao Lei,et al.A dynamically-allocated virtual channel architecture with congestion awareness for on-chip routers[C]//Proceedings of 45th Conferences of Design Automation Conference (ACM/IEEE DAC),Anaheim,USA,2008:630-633.
[9] 王 堅,李玉柏,蔣勇男.片上網(wǎng)絡(luò)通信性能分析建模與緩存分配優(yōu)化算法[J].電子與信息學(xué)報,2009,31(5):1059-1062.
[10] Karol M J,Hluchyj M G,Morgan S P.Input versus output queueing on a space-division packet switch[J].IEEE Transactions on Communications,1987,35 (12):1347-1356.
[11] Dally W J.Virtual channel flow control[J].IEEE Transaction on Parallel and Distributed Systems,1992,3(2):194-205.
[12] Chen X,Peh L.Leakage power modeling and optimization in interconnection network[C]//ACM Proceedings of International Symposium on Low Power Electronics and Design,2003:90-95.