片上網(wǎng)絡通信協(xié)議研討
時間:2022-06-05 03:58:00
導語:片上網(wǎng)絡通信協(xié)議研討一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
隨著半導體制造工藝技術的發(fā)展,單芯片集成度一直遵循著摩爾定律發(fā)展,目前單芯片已集成上千萬邏輯門。傳統(tǒng)的SoC(片上系統(tǒng))設計方法已成為當今IC設計的主流_】]。SoC設計采用總線架構技術,將整個系統(tǒng)功能模塊集成到一片硅片上。然而,隨著片內(nèi)資源規(guī)模的擴大,尤其在多處理器系統(tǒng)設計中,SoC技術遇到了巨大挑戰(zhàn):系統(tǒng)地址空間有限,不能無限地增加系統(tǒng)模塊;采用總線架構不能支持兩個或兩個以上功能模塊同時占用總線,降低通信效率;全局時鐘同步結構大大增加系統(tǒng)功耗[2-3]。為了解決多處理器系統(tǒng)中基于總線架構的SoC設計面I臨的困難,國外一些研究機構于本世紀初提出了基于片上網(wǎng)絡(NetworkonChip,NoC)的IC設計方法。NoC的核心思想是借鑒計算機網(wǎng)絡技術L4],采用路由和分組交換技術代替總線架構,從體系機構上徹底解決多處理器通信的發(fā)展瓶頸]。NoC架構與SoC架構相比主要的優(yōu)點有:地址空間易于擴展,可集成無限多個功能模塊;具有并行通信能力,多個功能模塊可同時傳輸數(shù)據(jù);采用全局異步局部同步(GloballyAsychronousLocallySynchro—nous,GALS)的時鐘策略,每個通信節(jié)點工作在獨立的時鐘,可有效降低系統(tǒng)功耗和設計面積。NoC架構將是未來系統(tǒng)設計的發(fā)展方向。目前,國內(nèi)科研機構對NoC的研究還處于理論研究階段,主要針對NoC的拓撲結構及數(shù)據(jù)在通信節(jié)點之間傳輸?shù)穆酚伤惴ㄟM行研究,取得了一系列研究成果。然而,還未發(fā)現(xiàn)有針對NoC架構中資源節(jié)點內(nèi)部模塊擴展及其傳輸控制的研究。筆者重點介紹NoC結構的組成、工作原理,提出一種適宜NoC資源節(jié)點通信的單向總線傳輸協(xié)議,借鑒以太網(wǎng)技術定義了數(shù)據(jù)幀格式。設計采用MicroBlaze軟核處理器作為主資源節(jié)點,F(xiàn)lash控制器和RS232串口控制器作為從資源節(jié)點,采用VHDL硬件描述語言描述各個功能模塊,在XilinxFPGA開發(fā)板上驗證。
1NoC體系結構
NoC設計利用拓撲結構實現(xiàn)內(nèi)部資源節(jié)點的通信,拓撲結構是NoC設計的關鍵技術之一,常用的拓撲結構有蜂窩結構、2D—Mesh、3D-Mesh、To—rus、Fat-tree、八角形結構、Proteo等_6’。其中,2D-Mesh結構簡單,易于硬件實現(xiàn)和網(wǎng)絡擴展。筆者采用2D—Mesh拓撲結構為例介紹NoC體系結構,如圖1所示。圖1中,S表示通信節(jié)點,實現(xiàn)相鄰節(jié)點的數(shù)據(jù)傳輸,每個通信節(jié)點與周圍4個通信節(jié)點和1個本地節(jié)點相連;R表示資源節(jié)點,數(shù)據(jù)傳輸?shù)陌l(fā)起者或接收者,可以是處理器、存儲單元、ASIC、特定功能模塊IP等;RNI表示資源節(jié)點網(wǎng)絡接口l8],連接資源節(jié)點與通信節(jié)點,實現(xiàn)傳輸數(shù)據(jù)的打包和解包。資源節(jié)點發(fā)送數(shù)據(jù)時,發(fā)送數(shù)據(jù)經(jīng)資源網(wǎng)絡接口打包成網(wǎng)絡傳輸幀格式,輸出到本地通信節(jié)點。根據(jù)發(fā)送數(shù)據(jù)的接收目的節(jié)點,采用一定的路由算法,確定XY路由和自適應DyAD路由算法,實現(xiàn)簡單、并能夠有效避免鎖死現(xiàn)象E9]。利用電路交換或包交換方式,源通信節(jié)點將數(shù)據(jù)傳輸?shù)侥康耐ㄐ殴?jié)點,目的通信節(jié)點將接收的數(shù)據(jù)發(fā)送到本地資源網(wǎng)絡接口,經(jīng)過解包操作將有效數(shù)據(jù)傳輸給本地資源節(jié)點。從圖1可以看出,多個資源節(jié)點可以同時在2D—Mesh網(wǎng)絡中進行數(shù)據(jù)傳輸,增強了系統(tǒng)并行處理能力。然而,隨著系統(tǒng)規(guī)模的擴大,如果每個資源節(jié)點只包含一個處理單元,則網(wǎng)絡拓撲結構龐大,數(shù)據(jù)傳輸延遲增加,降低系統(tǒng)性能。如果每個資源節(jié)點包含一個處理系統(tǒng),該系統(tǒng)由一個主資源節(jié)點和若干個從資源節(jié)點組成,則每個資源節(jié)點的功能增強,網(wǎng)絡拓撲結構精煉,增強系統(tǒng)功能。主資源節(jié)點與從資源節(jié)點的通信可以采用傳統(tǒng)的總線架構,如AMBA、Wishbone、CoreConnect等,但隨著從資源節(jié)點數(shù)目的增加,通信效率將成為上述總線應用的挑戰(zhàn)。為了增強NoC架構中資源節(jié)點系統(tǒng)的處理性能,筆者提出一種新的單向總線通信協(xié)議,實現(xiàn)主資源節(jié)點與從資源節(jié)點的并行通信。下面將詳細介紹該總線協(xié)議的工作原理及實現(xiàn)方法。
2單向總線的設計
單向總線結構如圖2所示。圖2中,MR表示主資源節(jié)點(MasterResource);SR表示從資源節(jié)點(SlaveResource);MRNI表示主資源節(jié)點網(wǎng)絡接圖2旱同總線結構口(MasterResourceNetworkInterface);SRNI表示從資源節(jié)點網(wǎng)絡接口(SlaveResourceNetworkInterface)。主資源節(jié)點獨占總線由時鐘線和數(shù)據(jù)線組成,通過該總線,主資源節(jié)點可向各個從資源節(jié)點同時發(fā)送數(shù)據(jù);從資源節(jié)點共享總線由時鐘線和數(shù)據(jù)線組成,各從資源節(jié)點通過該總線向主資源節(jié)點發(fā)送數(shù)據(jù)。每個從資源節(jié)點網(wǎng)絡接口都與仲裁模塊相連,由總線占有請求信號線和仲裁模塊產(chǎn)生的應答信號線組成。
2.1單向總線工作原理
單向總線系統(tǒng)由一個主資源節(jié)點(MR)、若干個從資源節(jié)點(SR)、一個仲裁模塊、主資源網(wǎng)絡接口(MRNI)、各從資源網(wǎng)絡接口(SRNI)組成。MR發(fā)送數(shù)據(jù)經(jīng)MRNI打包成數(shù)據(jù)幀,經(jīng)MR獨占總線發(fā)送到各SRNI,各SRNI接收數(shù)據(jù)幀并檢測數(shù)據(jù)幀的目的地址。如果目的地址與本地從節(jié)點分配的地址相同,則該SRNI接收數(shù)據(jù)幀,解包后發(fā)送到本地從資源節(jié)點,否則丟棄該幀數(shù)據(jù)。MR獨占總線的時鐘信號和數(shù)據(jù)信號均由主資源節(jié)點發(fā)送,在時鐘上升沿發(fā)送數(shù)據(jù)幀,數(shù)據(jù)幀發(fā)送結束后,時鐘信號為低電平。該總線為單向只寫總線,由主資源節(jié)點發(fā)送數(shù)據(jù)到各從資源節(jié)點。當從資源節(jié)點向主資源節(jié)點發(fā)送數(shù)據(jù)時,首先通過各自獨立的請求信號線向仲裁模塊發(fā)送請求,仲裁模塊采用先到先服務原則實現(xiàn)對從資源節(jié)點的應答,請求應答信號線如圖2黑色長虛線所示。從資源網(wǎng)絡接口接收到應答信號后,則占用從資源共享總線,發(fā)送數(shù)據(jù)經(jīng)從資源網(wǎng)絡接口打包后發(fā)送到主資源節(jié)點,數(shù)據(jù)發(fā)送完畢后,從資源節(jié)點釋放總線占有權。由于仲裁模塊也接收從資源節(jié)點發(fā)送的數(shù)據(jù)幀,所以仲裁模塊可判斷數(shù)據(jù)發(fā)送是否結束,從而接收下一個從資源節(jié)點的發(fā)送請求。如果多個資源節(jié)點同時發(fā)送請求信號,則根據(jù)各從資源節(jié)點事先定義的優(yōu)先級進行應答。
2.2單向總線數(shù)據(jù)幀格式
主資源節(jié)點與從資源節(jié)點的通信數(shù)據(jù)必須按照定義的數(shù)據(jù)幀格式進行傳輸,數(shù)據(jù)幀結構見圖3。目的地址為接收數(shù)據(jù)包的資源節(jié)點的地址,占1字節(jié),最多可支持256個資源節(jié)點;源地址為發(fā)送數(shù)據(jù)包的資源節(jié)點地址,占I字節(jié);類型表示發(fā)送的數(shù)據(jù)幀的類型,可表示寫數(shù)據(jù)、讀命令或重發(fā)請求,占1字節(jié);長度字段為發(fā)送數(shù)據(jù)的字節(jié)數(shù),占2字節(jié);數(shù)據(jù)字段為發(fā)送的有效數(shù)據(jù),如從資源節(jié)點為存儲器模塊,則數(shù)據(jù)字段包含發(fā)送的數(shù)據(jù)及寫入地址;如果主資源節(jié)點向從資源節(jié)點發(fā)送讀命令,則數(shù)據(jù)字段包含要讀取數(shù)據(jù)的初始地址及讀取數(shù)據(jù)長度;校驗字段占2字節(jié),采用CRC校驗。
2.3系統(tǒng)設計
下面詳細介紹資源網(wǎng)絡接口及仲裁模塊的邏輯設計。
2.3.1資源網(wǎng)絡接口設計
資源網(wǎng)絡接口是資源節(jié)點與單向總線通信的橋梁,接收單向總線的數(shù)據(jù)幀,解包后發(fā)送到資源節(jié)點;接收資源節(jié)點發(fā)送的數(shù)據(jù),打包成數(shù)據(jù)幀格式發(fā)送到單向總線。主資源網(wǎng)絡接口與從資源網(wǎng)絡接口內(nèi)部結構相似,只是數(shù)據(jù)發(fā)送、接收對應總線不同。下面以從資源網(wǎng)絡接口為例,介紹資源網(wǎng)絡接口的設計原理。主資源節(jié)點發(fā)送數(shù)據(jù)時,數(shù)據(jù)幀通過主資源節(jié)點獨占單向總線接口模塊發(fā)送到接收控制模塊。接收控制模塊首先對接收的數(shù)據(jù)幀的目的地址字段進行判斷,如果目的地址與本地資源節(jié)點地址不同,則丟棄該幀數(shù)據(jù);如相同則繼續(xù)接收數(shù)據(jù),并將數(shù)據(jù)段的有效數(shù)據(jù)存儲到接收緩存模塊;同時,將接收數(shù)據(jù)輸出到CRC校驗模塊進行校驗。當一幀數(shù)據(jù)接收完畢后,CRC校驗模塊計算的校驗值與數(shù)據(jù)幀的校驗位進行比較,如相同表明數(shù)據(jù)傳輸無誤,否則說明數(shù)據(jù)傳輸有誤,觸發(fā)發(fā)送控制模塊,產(chǎn)生數(shù)據(jù)重發(fā)請求。該請求通過請求應答模塊發(fā)送到仲裁模塊,獲得應答后,發(fā)送控制模塊輸出一個請求重發(fā)數(shù)據(jù)幀,發(fā)送到從資源節(jié)點共享單向總線,主資源節(jié)點收到該幀數(shù)據(jù)后,重發(fā)上次傳輸?shù)臄?shù)據(jù)。從資源節(jié)點發(fā)送數(shù)據(jù)時,從資源節(jié)點接口模塊將發(fā)送數(shù)據(jù)輸出到發(fā)送控制模塊,發(fā)送控制模塊將數(shù)據(jù)打包成數(shù)據(jù)幀格式輸出到發(fā)送緩存模塊。CRC校驗模塊對發(fā)送的數(shù)據(jù)進行校驗計算,并將校驗值輸出到發(fā)送控制模塊,發(fā)送控制模塊打包的一幀數(shù)據(jù)存人到發(fā)送緩存模塊后,發(fā)送控制模塊觸發(fā)請求應答模塊向仲裁模塊發(fā)送請求信號;待得到應答后,即取得從資源節(jié)點共享總線使用權,發(fā)送控制模塊觸發(fā)發(fā)送緩存模塊,將緩存模塊中的數(shù)據(jù)經(jīng)從資源共享單向總線接口模塊發(fā)送到單向總線,主資源網(wǎng)絡接口模塊從只寫總線中讀取數(shù)據(jù),解包后發(fā)送到主資源節(jié)點。
2.3.2仲裁模塊的設計
該模塊接收所有從資源網(wǎng)絡接口模塊發(fā)送的總線使用請求信號,采用先到先服務策略產(chǎn)生應答信號。如果多個從資源網(wǎng)絡接口發(fā)送的請求信號同時到達,則根據(jù)預先定義的優(yōu)先等級對其響應。
2.4單向總線實現(xiàn)與驗證
單向總線系統(tǒng)設計采用VHDL描述。根據(jù)現(xiàn)代EDA設計使用的模塊化設計原則,用VHDL分別實現(xiàn)主資源網(wǎng)絡接口模塊、從資源網(wǎng)絡接口模塊、仲裁模塊的程序設計,在開發(fā)環(huán)境下綜合實現(xiàn)后,下載到FPGA開發(fā)板驗證。系統(tǒng)驗證環(huán)境利用Mi—croBlaze處理器軟核作為主資源節(jié)點,F(xiàn)lash控制器和RS232串口控制模塊作為從資源節(jié)點,驗證系統(tǒng)結構如圖5所示。主資源網(wǎng)絡接口(MRNI)作為用戶自定義IP核連接到PLB總線,主資源節(jié)點MicroBlaze處理器通過PLB總線訪問MRNI,以MicroBlaze處理器向Flash存儲器讀寫數(shù)據(jù)為例驗證該系統(tǒng),MicroBlaze處理器通過PLB總線將數(shù)據(jù)寫入到MRNI,MRN1將數(shù)據(jù)打包成標準數(shù)據(jù)幀格式,目的地址為資源節(jié)點Flash控制器的地址,數(shù)據(jù)幀經(jīng)主資源節(jié)點獨占總線寫入到Flash控制器的從資源網(wǎng)絡接口SR—NIl,SRNI1對接收的數(shù)據(jù)幀進行解包。如果CRC校驗正確,數(shù)據(jù)段中數(shù)值發(fā)送給從資源節(jié)點Flash控制器模塊,F(xiàn)lash控制器從接收的數(shù)據(jù)中提取寫入初始地址,將有效數(shù)據(jù)從初始地址開始連續(xù)寫入Flash存儲器。數(shù)據(jù)寫入完畢后,MicroBlaze處理器通過PLB總線訪問MRNI,請求從Flash存儲器中讀取數(shù)據(jù),MRNI將讀請求數(shù)據(jù)幀發(fā)送到SR~NIl,SRNI1收到請求幀后,向仲裁模塊發(fā)送請求,得到應答后,占用SR共享總線,F(xiàn)lash控制器從外部Flash存儲器中讀取數(shù)據(jù)發(fā)送到SRNI,打包成數(shù)據(jù)幀格式通過SR共享總線發(fā)送到MRNI進行解包,解包后的數(shù)據(jù)經(jīng)PLB總線傳輸?shù)組icroBlaze處理器,MircoBlaze處理器將接收的數(shù)據(jù)與發(fā)送的數(shù)據(jù)進行比較,可判斷系統(tǒng)是否正確工作。MicroBlaze處理器還可通過對R$232串口控制器的訪問來驗證系統(tǒng)功能。MicroBlaze處理器通過PLB總線將輸出數(shù)據(jù)發(fā)送給MRNI,MRNI對數(shù)據(jù)進行打包,并通過MR獨占總線將數(shù)據(jù)發(fā)送到SRNI2,SRNI2對接收的數(shù)據(jù)進行解包,解包后的數(shù)據(jù)發(fā)送到從資源節(jié)點串口控制器,串口控制器將接收的數(shù)據(jù)通過RS232串口發(fā)送給PC機,PC機上使用超級終端打印輸出串口模塊發(fā)送的數(shù)據(jù),通過比較,可知超級終端接收的數(shù)據(jù)即為MicroBlaze處理器發(fā)送的數(shù)據(jù),從而可驗證系統(tǒng)正確工作。
3結束語
本文針對片上網(wǎng)絡架構提出一種新的資源節(jié)點通信協(xié)議。采用兩條單向總線實現(xiàn)了主資源節(jié)點與從資源節(jié)點的通信,定義適于單向總線傳輸?shù)臄?shù)據(jù)幀格式,設計MicroBlaze處理器作為主資源節(jié)點,F(xiàn)lash控制器和RS232串口控制器作為從資源節(jié)點,驗證系統(tǒng)可正確工作。相對于傳統(tǒng)片內(nèi)總線,本文設計的單向總線結構簡單,資源節(jié)點易于擴展,兩個資源節(jié)點可同時占有兩條單向總線,實現(xiàn)對兩個資源節(jié)點的同時讀寫操作,提高了數(shù)據(jù)傳輸速率,增強系統(tǒng)性能。