王勝,屈凌翔
(中國電子科技集團公司第五十八研究所,江蘇無錫214072)
基于NoC的網(wǎng)絡(luò)接口設(shè)計
王勝,屈凌翔
(中國電子科技集團公司第五十八研究所,江蘇無錫214072)
與總線架構(gòu)相比,片上網(wǎng)絡(luò)具有支持并行通信、良好的可擴展性、規(guī)則的結(jié)構(gòu)、可重用性等優(yōu)點。網(wǎng)絡(luò)接口是片上網(wǎng)絡(luò)中處理器核與路由節(jié)點之間的接口,網(wǎng)絡(luò)接口的數(shù)據(jù)轉(zhuǎn)化和傳輸效率影響整個片上網(wǎng)絡(luò)的工作效率。研究的NoC系統(tǒng)采用3×3二維mesh的結(jié)構(gòu),DSP核采用AMBA總線結(jié)構(gòu),路由節(jié)點采用包交換方式,為了實現(xiàn)二者之間的數(shù)據(jù)轉(zhuǎn)換與交換,設(shè)計了網(wǎng)絡(luò)接口。為了提升傳輸效率,網(wǎng)絡(luò)接口設(shè)計支持數(shù)據(jù)批傳輸,批傳輸不需DSP核參與,節(jié)省處理器資源。在完成網(wǎng)絡(luò)接口的RTL設(shè)計后,進行了仿真驗證,保證了網(wǎng)絡(luò)接口的功能正確性。
片上網(wǎng)絡(luò);網(wǎng)絡(luò)接口;路由節(jié)點;數(shù)據(jù)包
隨著片上可集成的晶體管數(shù)目越來越龐大,設(shè)計者可以在一個單片上集成越來越多的處理器核及配套的復(fù)雜系統(tǒng)。但是隨著處理器核數(shù)量的增加,傳統(tǒng)基于總線架構(gòu)的SoC顯現(xiàn)出局限性:帶寬限制、可擴展性差、設(shè)計復(fù)雜等,于是片上網(wǎng)絡(luò)[1]架構(gòu)應(yīng)運而生。NoC[2]架構(gòu)由瑞典皇家技術(shù)學(xué)院率先提出,隨后斯坦福大學(xué)提出了包交換技術(shù)代替連線結(jié)構(gòu)的思想[3]。國內(nèi)參與NoC研究的高校也越來越多,如西安電子科技大學(xué)在路由算法[4~5]方面的研究,南京大學(xué)、哈爾濱工業(yè)大學(xué)、合肥工業(yè)大學(xué)等都在NoC領(lǐng)域有所建樹。針對NoC架構(gòu)系統(tǒng)規(guī)模大、功耗相對較高的問題,合肥工業(yè)大學(xué)提出采用總線翻轉(zhuǎn)(BI)編碼算法和格雷碼編碼組成聯(lián)合編碼的方法來降低功耗[6]。經(jīng)過十幾年的發(fā)展與論證,對于NoC架構(gòu)的研究也趨于成熟。
片上網(wǎng)絡(luò)的關(guān)鍵技術(shù)研究大致可以分為三個方向:拓撲結(jié)構(gòu),路由器和網(wǎng)絡(luò)接口(Network Interface)。從結(jié)構(gòu)上來說,不管什么形式的片上網(wǎng)絡(luò)都是由路由模塊和網(wǎng)絡(luò)接口模塊所構(gòu)成的[7]。網(wǎng)絡(luò)接口是NoC系統(tǒng)的重要組成部分,是本地子系統(tǒng)(處理器核)和路由節(jié)點之間的轉(zhuǎn)接口,網(wǎng)絡(luò)接口的數(shù)據(jù)轉(zhuǎn)化和傳輸效率影響整個片上網(wǎng)絡(luò)的工作效率。
網(wǎng)絡(luò)接口的主要作用是:(1)讓處理器核承擔(dān)最小的通訊服務(wù)任務(wù);(2)將處理器核與網(wǎng)絡(luò)通信部分分離,即計算和通訊間的分離,使計算資源對網(wǎng)絡(luò)透明,從而實現(xiàn)處理器資源間的互連,且能提高設(shè)計的重用性。網(wǎng)絡(luò)接口在處理器一側(cè)實現(xiàn)了總線接口,在網(wǎng)絡(luò)一側(cè)實現(xiàn)了網(wǎng)絡(luò)接口。網(wǎng)絡(luò)接口主要考慮地址信號、數(shù)據(jù)的打包、解包、編碼、同步等問題。本文設(shè)計的網(wǎng)絡(luò)接口主要功能包括:對AHB總線上的數(shù)據(jù)和路由節(jié)點(Router)上的數(shù)據(jù)包(Packet)進行數(shù)據(jù)格式轉(zhuǎn)化和交換;實現(xiàn)本地內(nèi)核到其他核存儲空間的數(shù)據(jù)讀寫;實現(xiàn)本地存儲空間和其他核存儲空間之間的大批量數(shù)據(jù)傳輸。數(shù)據(jù)批傳輸主要負責(zé)大規(guī)模的數(shù)據(jù)傳輸,由網(wǎng)絡(luò)接口控制,不需要處理器核參與,處理器核可以繼續(xù)處理其他程序,極大地提高了處理器的效率。
本文設(shè)計的網(wǎng)絡(luò)接口集成在一個3×3二位mesh結(jié)構(gòu)的NoC中,如圖1所示,NoC系統(tǒng)中包含9個DSP核。網(wǎng)絡(luò)接口(NI)連接本地DSP系統(tǒng)和路由節(jié)點,負責(zé)兩者之間的數(shù)據(jù)交換。網(wǎng)絡(luò)接口負責(zé)把本地DSP系統(tǒng)發(fā)過來的數(shù)據(jù)打包后發(fā)送到相連的路由節(jié)點中,數(shù)據(jù)包通過路由網(wǎng)絡(luò)傳送到目的路由節(jié)點,再通過目的地的網(wǎng)絡(luò)接口解析后,取出傳輸?shù)挠行?shù)據(jù)存入目的存儲空間中。本文設(shè)計的網(wǎng)絡(luò)接口支持三種數(shù)據(jù)傳輸模式:
(1)本地DSP寫異地存儲器:由本地DSP發(fā)起寫數(shù)據(jù)請求,數(shù)據(jù)通過網(wǎng)絡(luò)接口打包后發(fā)送到異地存儲器;
(2)本地網(wǎng)絡(luò)接口搬運本地存儲器的數(shù)據(jù)到異地存儲器:由本地DSP配置本地網(wǎng)絡(luò)接口的控制寄存器,本地網(wǎng)絡(luò)接口根據(jù)相關(guān)配置讀入本地存儲器的數(shù)據(jù),打包后傳輸?shù)街付ǖ漠惖卮鎯ζ髦?,支持?shù)據(jù)批傳輸,傳輸過程中不需要DSP參與;
(3)本地DSP讀異地存儲器:由本地DSP配置異地網(wǎng)絡(luò)接口,異地網(wǎng)絡(luò)接口根據(jù)相關(guān)配置,搬運異地存儲器的數(shù)據(jù)到本地存儲器中,支持數(shù)據(jù)批傳輸。
圖1 NoC系統(tǒng)框圖
如圖2所示,網(wǎng)絡(luò)接口包括控制寄存器組、數(shù)據(jù)打包模塊、數(shù)據(jù)包解析模塊、輸入輸出FIFO、數(shù)據(jù)選擇判定模塊等。其中,控制寄存器組包含目的地址寄存器、源地址寄存器、搬運控制寄存器、寫控制寄存器、中斷狀態(tài)寄存器、中斷使能寄存器、中斷屏蔽寄存器,主要負責(zé)生成數(shù)據(jù)傳輸?shù)刂?、傳輸控制信息、中斷信息、?shù)據(jù)包信息。寫打包模塊主要負責(zé)把本地DSP直接往異地存儲器寫的數(shù)據(jù)打包,其接收本地DSP直接發(fā)過來的目的地址、包個數(shù)信息、待傳輸數(shù)據(jù),分別打包生成頭包和中間包,然后發(fā)送到輸出FIFO。搬運打包模塊主要根據(jù)控制寄存器組生成的相關(guān)控制信息,從本地存儲器中讀入待傳輸數(shù)據(jù),打包后發(fā)送到輸出FIFO,支持數(shù)據(jù)批傳輸,傳輸過程中不需要本地DSP參與。輸出數(shù)據(jù)緩沖、輸入數(shù)據(jù)緩沖是數(shù)據(jù)FIFO,主要負責(zé)數(shù)據(jù)發(fā)送和接收時的緩沖。數(shù)據(jù)包解析模塊包括VC0解析模塊和VC1解析模塊,主要接收輸入FIFO送過來的數(shù)據(jù)包,VC0解析模塊接收來自虛擬通道0的數(shù)據(jù)包,VC1解析模塊接收來自虛擬通道1的數(shù)據(jù)包,數(shù)據(jù)解析模塊對接收到的數(shù)據(jù)包進行解析后,根據(jù)數(shù)據(jù)包中的目的地址信息,把數(shù)據(jù)寫入本地存儲器的對應(yīng)地址中,并根據(jù)數(shù)據(jù)包中的中斷信息更新中斷狀態(tài)寄存器,產(chǎn)生相應(yīng)的中斷給本地DSP。數(shù)據(jù)選擇判定模塊根據(jù)數(shù)據(jù)解析模塊生成的控制信號,把來自虛擬通道0和虛擬通道1的數(shù)據(jù)存入各自的目的地址。
圖2 網(wǎng)絡(luò)接口結(jié)構(gòu)框圖
本地處理器系統(tǒng)中的數(shù)據(jù)通過AHB總線傳輸,而片上網(wǎng)絡(luò)中的數(shù)據(jù)以數(shù)據(jù)包的形式傳輸,數(shù)據(jù)的打包與數(shù)據(jù)包的解析由網(wǎng)絡(luò)接口完成。網(wǎng)絡(luò)接口將AHB總線的數(shù)據(jù)和地址格式轉(zhuǎn)化為Router能識別的數(shù)據(jù)包格式。數(shù)據(jù)包中包含頭Flit和數(shù)據(jù)Flit,兩種Flit結(jié)構(gòu)分別如圖3、圖4所示。頭Flit主要包含標志位、控制信息和目的存儲器地址信息,數(shù)據(jù)Flit主要用來存儲需要傳輸?shù)臄?shù)據(jù)。
隧洞地處祁呂賀蘭山字型構(gòu)造東翼前弧,華北地臺之山西臺背斜與鄂爾多斯臺向斜的過渡帶、相對穩(wěn)定區(qū)。地質(zhì)構(gòu)造變動微弱、構(gòu)造形跡有小型褶皺和斷裂構(gòu)造等。加里東造山運動影響整個華北區(qū)域地殼垂直整體隆起,致使本區(qū)缺失奧陶系上統(tǒng)-石炭系下統(tǒng)的地層,后又經(jīng)歷多次間隙性垂直升降運動,當進入燕山運動以后,構(gòu)成東西構(gòu)造有別,河谷下切侵蝕與堆積交替完成,黃河河流階地發(fā)育。調(diào)查分析河曲縣歷史上地震情況,未發(fā)生過較大破壞性地震,考慮周邊地震影響,本區(qū)地震基本烈度Ⅵ度。本區(qū)地震動峰值加速度為0.05 g,地震反應(yīng)譜特征周期為0.45 s。
圖3 頭Flit結(jié)構(gòu)
圖4 數(shù)據(jù)Flit結(jié)構(gòu)
根據(jù)功能,網(wǎng)絡(luò)接口主要劃分為以下幾個部分:AHB數(shù)據(jù)輸出到Router的數(shù)據(jù)發(fā)送邏輯;Router數(shù)據(jù)包輸入到AHB的數(shù)據(jù)接收邏輯;網(wǎng)絡(luò)接口直接讀存儲器并發(fā)送數(shù)據(jù)到Router的數(shù)據(jù)搬運邏輯。數(shù)據(jù)發(fā)送邏輯負責(zé)把數(shù)據(jù)打包后發(fā)送到路由節(jié)點,主要通過以下三個步驟實現(xiàn)數(shù)據(jù)發(fā)送:
(1)配置寫目的地址寄存器;
(2)配置寫控制寄存器;
(3)DSP核通過AHB總線發(fā)送數(shù)據(jù)給網(wǎng)絡(luò)接口。
數(shù)據(jù)發(fā)送邏輯整體結(jié)構(gòu)如圖5所示。MUX根據(jù)讀使能信號選擇將Core發(fā)送的數(shù)據(jù)或者網(wǎng)絡(luò)接口讀自MEM的數(shù)據(jù)發(fā)送到數(shù)據(jù)打包模塊中。只要網(wǎng)絡(luò)接口有讀請求,則輸入數(shù)據(jù)選擇AHB RD DATA,否則選擇AHB WR DATA。數(shù)據(jù)打包模塊主要負責(zé)將接收的數(shù)據(jù)打包成Router能識別的數(shù)據(jù)包,數(shù)據(jù)包控制位有電源管理位、有效位、VC位、頭Flit位、目的地址位、方向位等。打包模塊將數(shù)據(jù)包發(fā)送到深度為16的輸出FIFO中,該FIFO只有在不空且Router能接收數(shù)據(jù)包時才能進行RD操作,將數(shù)據(jù)包發(fā)送到路由。與Router的握手控制模塊由Router輸入的flow_ctrl_in信號控制,該模塊中設(shè)計了一個計數(shù)器,計數(shù)器計數(shù)范圍等于Router輸入端口FIFO深度,網(wǎng)絡(luò)接口每發(fā)送一個數(shù)據(jù)到Router,Router的flow_ctrl_in信號就進行一次反饋,計數(shù)器自動計數(shù),若Router的FIFO已滿,則網(wǎng)絡(luò)接口不能發(fā)送數(shù)據(jù),直到Router能再次接收數(shù)據(jù)。
圖5 數(shù)據(jù)發(fā)送邏輯
如圖6所示,數(shù)據(jù)接收邏輯主要負責(zé)接收Router發(fā)送過來的數(shù)據(jù)并進行數(shù)據(jù)包解析,將有效數(shù)據(jù)通過AHB總線發(fā)送到本地存儲器。路由數(shù)據(jù)包有VC0和VC1兩種類型,根據(jù)數(shù)據(jù)包VC位(即bit34)判定數(shù)據(jù)包來自哪個虛擬通道,輸入FIFO接收來自不同虛擬通道的數(shù)據(jù),并根據(jù)虛擬通道位的值分別發(fā)送到VC0和VC1的解碼邏輯中解碼,把有效數(shù)據(jù)發(fā)送到總線。
圖6 數(shù)據(jù)接收邏輯
輸入FIFO存入Router數(shù)據(jù)后,只有當網(wǎng)絡(luò)接口不對本地存儲器進行RD操作時,才會根據(jù)數(shù)據(jù)輸出選擇邏輯的data_sel信號,選擇是輸出VC1還是VC0的數(shù)據(jù),該數(shù)據(jù)位寬是36位,與Router數(shù)據(jù)位寬相同。VC1和VC0數(shù)據(jù)分別有自己的數(shù)據(jù)解析模塊,該模塊主要工作原理如下:若接收的Flit是頭Flit,即數(shù)據(jù)[32]位為“1”,則記錄該數(shù)據(jù)包的bit[31:0]位到寄存器中,這32位數(shù)據(jù)作為該數(shù)據(jù)包的目的地址基址;若接收數(shù)據(jù)不是頭Flit,表示該數(shù)據(jù)包內(nèi)數(shù)據(jù)是需要存入本地存儲器的數(shù)據(jù),數(shù)據(jù)解析邏輯將其中的bit[31: 0]位提出并存入寄存器;并且目的地址自動增加偏移地址。根據(jù)data_sel信號,選擇輸出VC0還是VC1的數(shù)據(jù)和地址。
有一種特殊情況,數(shù)據(jù)地址是網(wǎng)絡(luò)接口搬運控制寄存器(地址寄存器、源地址寄存器)的地址,那么該數(shù)據(jù)將會存入指定寄存器中。當數(shù)據(jù)搬運寄存器組配置完成后會啟動數(shù)據(jù)搬運操作,也就是異地核讀本地存儲器操作。
(1)配置數(shù)據(jù)搬運源地址寄存器,該寄存器中存的地址是本地存儲器的本地地址;
(2)配置數(shù)據(jù)搬運目的地址寄存器,該寄存器中存的地址是全局地址;
(3)配置數(shù)據(jù)搬運控制寄存器,該寄存器由兩部分組成,bit[31]是使能位,bit[9:0]是數(shù)據(jù)Flit個數(shù)位。
圖7 數(shù)據(jù)搬運邏輯
整個數(shù)據(jù)搬運邏輯工作原理如下:本地DSP核通過AHB總線或者其他核通過路由傳輸數(shù)據(jù),給數(shù)據(jù)搬運控制寄存器配置讀取請求信息,使得網(wǎng)絡(luò)接口作為Master通過AHB總線對本地存儲器進行讀操作。網(wǎng)絡(luò)接口讀取本地存儲器中對應(yīng)地址的數(shù)據(jù),并將讀取的數(shù)據(jù)發(fā)送到讀功能實現(xiàn)邏輯,進行數(shù)據(jù)打包等一系列工作,并將數(shù)據(jù)包發(fā)送給FIFO,由其發(fā)送給路由。網(wǎng)絡(luò)接口搬運過程中使用的FIFO和本地核寫操作使用的FIFO是同一個,但是網(wǎng)絡(luò)接口讀操作優(yōu)先級更高,如果網(wǎng)絡(luò)接口正在進行讀操作,Core數(shù)據(jù)寫入操作將暫停,直到網(wǎng)絡(luò)接口讀操作完成才繼續(xù)執(zhí)行。
網(wǎng)絡(luò)接口完成數(shù)據(jù)傳輸任務(wù)后,通過中斷系統(tǒng)通知本地DSP核,由DSP核產(chǎn)生相關(guān)響應(yīng)。網(wǎng)絡(luò)接口中包含中斷信息輸入寄存器、中斷信息輸出寄存器、中斷使能寄存器、中斷屏蔽寄存器、中斷狀態(tài)寄存器等寄存器。在網(wǎng)絡(luò)接口進行數(shù)據(jù)傳輸前,需要預(yù)先配置好中斷信息輸入寄存器,中斷使能寄存器和中斷屏蔽寄存器。
網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù)后,會自動發(fā)送一個中斷信息包,該包中含中斷信息輸入寄存器的內(nèi)容。接收端網(wǎng)絡(luò)接口根據(jù)中斷信息包的內(nèi)容及中斷使能情況決定是否產(chǎn)生中斷。
網(wǎng)絡(luò)接口在完成RTL設(shè)計及模塊級仿真后,集成到3×3二維mesh結(jié)構(gòu)的NoC中,并完成系統(tǒng)級仿真驗證。網(wǎng)絡(luò)接口在NoC中主要負責(zé)本地系統(tǒng)和router之間的數(shù)據(jù)轉(zhuǎn)換和傳輸,因此在系統(tǒng)仿真中主要測試在各核進行數(shù)據(jù)傳輸時,網(wǎng)絡(luò)接口的數(shù)據(jù)轉(zhuǎn)換和交換是否正常,包括其三種傳輸模式。表1是部分數(shù)據(jù)傳輸?shù)膖estcase列表。
表1 testcase列表
以core0子系統(tǒng)向core4子系統(tǒng)進行數(shù)據(jù)批傳輸為例,這類操作需要本地DSP配置搬運源地址、目的地址以及搬運控制寄存器。配置完成后,使能網(wǎng)絡(luò)接口開始數(shù)據(jù)傳輸,傳輸過程中DSP核不再參與。搬運操作使能后,將控制寄存器中的搬運Flit個數(shù)、搬運數(shù)據(jù)源地址基址、目的地址基址讀出并存入讀打包控制邏輯。打包控制邏輯會產(chǎn)生AHB讀請求信號~hwrite_o和地址信號haddr_o,讀取本地存儲器數(shù)據(jù);之后會根據(jù)目的地址信息,讀取數(shù)據(jù)個數(shù)信息等在打包控制邏輯中生成路由能識別的Packet。數(shù)據(jù)打包完成后會通過FIFO16發(fā)送到Router0中。網(wǎng)絡(luò)接口讀取本地存儲器的值并打包發(fā)送到router的波形如圖8所示。
圖8 網(wǎng)絡(luò)接口傳輸數(shù)據(jù)
根據(jù)路由算法,Router0接收到網(wǎng)絡(luò)接口發(fā)送過來的數(shù)據(jù)包后,解析數(shù)據(jù)包中的路由地址,把數(shù)據(jù)包發(fā)送到Router1中,Router1解析路由地址后,把數(shù)據(jù)包發(fā)送到Router4中。數(shù)據(jù)在各路由節(jié)點之間傳輸?shù)牟ㄐ稳鐖D9所示。Router4接收到數(shù)據(jù)包后,把數(shù)據(jù)通過其連接的網(wǎng)絡(luò)接口傳輸?shù)絚ore4子系統(tǒng)中,該過程與網(wǎng)絡(luò)接口的數(shù)據(jù)接收過程相同。
通過對比core0子系統(tǒng)和core4子系統(tǒng)中相關(guān)存儲器中的值,可發(fā)現(xiàn)數(shù)據(jù)傳輸成功完成。
圖9 Router之間數(shù)據(jù)傳輸
本文所設(shè)計的網(wǎng)絡(luò)接口支持單周期完成數(shù)據(jù)打包工作,并把數(shù)據(jù)包傳輸?shù)铰酚晒?jié)點中,只要路由節(jié)點中的FIFO不滿,數(shù)據(jù)包就可以連續(xù)傳輸,保證了數(shù)據(jù)的傳輸效率。同時網(wǎng)絡(luò)接口設(shè)計支持數(shù)據(jù)批傳輸,在需要大批量的數(shù)據(jù)傳輸時,由網(wǎng)絡(luò)接口本身完成,不需要處理器參與,節(jié)省了處理器資源,提升了整個系統(tǒng)的處理效率。網(wǎng)絡(luò)接口設(shè)計完成后,集成到整個NoC系統(tǒng)中并通過了系統(tǒng)仿真,確保了功能的正確性。
[1]段宜賓,王曉東,唐磊.片上網(wǎng)絡(luò)關(guān)鍵技術(shù)及仿真方法研究[J].通信技術(shù),2009,42(12).
[2]J Axel,T Hannu.Networks on chip[M].Kluwer Academie Publishers,2003:3-18.
[3]W J Dally,B Towles.Route packets,not wires:On-chip interconnection networks[C].In Design Automation Conf, 2001.
[4]朱小兵.片上網(wǎng)絡(luò)路由算法研究[D].西安:西安電子科技大學(xué)碩士學(xué)位論文,2009.
[5]張香香.片上網(wǎng)絡(luò)虛通道分配算法研究[D].西安:西安電子科技大學(xué)碩士學(xué)位論文,2012.
[6]杜高明,李向陽.基于多路徑路由片上網(wǎng)絡(luò)的低功耗聯(lián)合編碼電路設(shè)計[J].微電子學(xué)與計算機,2017,34.
[7]王璐.基于OCP-IP協(xié)議的片上網(wǎng)絡(luò)接口設(shè)計[D].西安:西安理工大學(xué)碩士學(xué)位論文,2013.
Design of Network Interface Based on NoC
WANG Sheng,QU Lingxiang
(China Electronics Technology Group Corporation No.58 Research Institute,Wuxi 214072,China)
Compared with the bus architecture,Network-on-Chip has the advantages of supporting parallel communication,great scalability,regular structure,reusability and so on.The network interface of which the data conversion and transmission efficiency affect the work efficiency of the whole Network-on-Chip,is between processor cores and routing nodes on Network-on-Chip.This paper focuses on the structure of Network-on-Chip and elaborates the design and verification of a network interface.The NoC system studied in this paper adopts the structure of 3×3 two-dimensional mesh.The DSP core adopts AMBA bus structure.The router adopts packet switching mode.In order to realize the data conversion and exchange between the dsp and router,the network interface is designed.In order to improve the transmission efficiency,the network interface design supports data batch transmission.The batch transmission does not need the DSP core.That saves the processor resources.After the RTL design of the network interface,the simulation is carried out to ensure the correctnessofthe networkinterface.
Network-on-Chip;Networkinterface;router;packet
TN402
:A
:1681-1070(2017)09-0023-05
2017-6-19
王勝(1979—),男,江蘇無錫人,碩士學(xué)歷,主要研究領(lǐng)域為集成電路與系統(tǒng)設(shè)計。