片上網絡通信協議研討

時間:2022-06-05 03:58:00

導語:片上網絡通信協議研討一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

片上網絡通信協議研討

隨著半導體制造工藝技術的發展,單芯片集成度一直遵循著摩爾定律發展,目前單芯片已集成上千萬邏輯門。傳統的SoC(片上系統)設計方法已成為當今IC設計的主流_】]。SoC設計采用總線架構技術,將整個系統功能模塊集成到一片硅片上。然而,隨著片內資源規模的擴大,尤其在多處理器系統設計中,SoC技術遇到了巨大挑戰:系統地址空間有限,不能無限地增加系統模塊;采用總線架構不能支持兩個或兩個以上功能模塊同時占用總線,降低通信效率;全局時鐘同步結構大大增加系統功耗[2-3]。為了解決多處理器系統中基于總線架構的SoC設計面I臨的困難,國外一些研究機構于本世紀初提出了基于片上網絡(NetworkonChip,NoC)的IC設計方法。NoC的核心思想是借鑒計算機網絡技術L4],采用路由和分組交換技術代替總線架構,從體系機構上徹底解決多處理器通信的發展瓶頸]。NoC架構與SoC架構相比主要的優點有:地址空間易于擴展,可集成無限多個功能模塊;具有并行通信能力,多個功能模塊可同時傳輸數據;采用全局異步局部同步(GloballyAsychronousLocallySynchro—nous,GALS)的時鐘策略,每個通信節點工作在獨立的時鐘,可有效降低系統功耗和設計面積。NoC架構將是未來系統設計的發展方向。目前,國內科研機構對NoC的研究還處于理論研究階段,主要針對NoC的拓撲結構及數據在通信節點之間傳輸的路由算法進行研究,取得了一系列研究成果。然而,還未發現有針對NoC架構中資源節點內部模塊擴展及其傳輸控制的研究。筆者重點介紹NoC結構的組成、工作原理,提出一種適宜NoC資源節點通信的單向總線傳輸協議,借鑒以太網技術定義了數據幀格式。設計采用MicroBlaze軟核處理器作為主資源節點,Flash控制器和RS232串口控制器作為從資源節點,采用VHDL硬件描述語言描述各個功能模塊,在XilinxFPGA開發板上驗證。

1NoC體系結構

NoC設計利用拓撲結構實現內部資源節點的通信,拓撲結構是NoC設計的關鍵技術之一,常用的拓撲結構有蜂窩結構、2D—Mesh、3D-Mesh、To—rus、Fat-tree、八角形結構、Proteo等_6’。其中,2D-Mesh結構簡單,易于硬件實現和網絡擴展。筆者采用2D—Mesh拓撲結構為例介紹NoC體系結構,如圖1所示。圖1中,S表示通信節點,實現相鄰節點的數據傳輸,每個通信節點與周圍4個通信節點和1個本地節點相連;R表示資源節點,數據傳輸的發起者或接收者,可以是處理器、存儲單元、ASIC、特定功能模塊IP等;RNI表示資源節點網絡接口l8],連接資源節點與通信節點,實現傳輸數據的打包和解包。資源節點發送數據時,發送數據經資源網絡接口打包成網絡傳輸幀格式,輸出到本地通信節點。根據發送數據的接收目的節點,采用一定的路由算法,確定XY路由和自適應DyAD路由算法,實現簡單、并能夠有效避免鎖死現象E9]。利用電路交換或包交換方式,源通信節點將數據傳輸到目的通信節點,目的通信節點將接收的數據發送到本地資源網絡接口,經過解包操作將有效數據傳輸給本地資源節點。從圖1可以看出,多個資源節點可以同時在2D—Mesh網絡中進行數據傳輸,增強了系統并行處理能力。然而,隨著系統規模的擴大,如果每個資源節點只包含一個處理單元,則網絡拓撲結構龐大,數據傳輸延遲增加,降低系統性能。如果每個資源節點包含一個處理系統,該系統由一個主資源節點和若干個從資源節點組成,則每個資源節點的功能增強,網絡拓撲結構精煉,增強系統功能。主資源節點與從資源節點的通信可以采用傳統的總線架構,如AMBA、Wishbone、CoreConnect等,但隨著從資源節點數目的增加,通信效率將成為上述總線應用的挑戰。為了增強NoC架構中資源節點系統的處理性能,筆者提出一種新的單向總線通信協議,實現主資源節點與從資源節點的并行通信。下面將詳細介紹該總線協議的工作原理及實現方法。

2單向總線的設計

單向總線結構如圖2所示。圖2中,MR表示主資源節點(MasterResource);SR表示從資源節點(SlaveResource);MRNI表示主資源節點網絡接圖2旱同總線結構口(MasterResourceNetworkInterface);SRNI表示從資源節點網絡接口(SlaveResourceNetworkInterface)。主資源節點獨占總線由時鐘線和數據線組成,通過該總線,主資源節點可向各個從資源節點同時發送數據;從資源節點共享總線由時鐘線和數據線組成,各從資源節點通過該總線向主資源節點發送數據。每個從資源節點網絡接口都與仲裁模塊相連,由總線占有請求信號線和仲裁模塊產生的應答信號線組成。

2.1單向總線工作原理

單向總線系統由一個主資源節點(MR)、若干個從資源節點(SR)、一個仲裁模塊、主資源網絡接口(MRNI)、各從資源網絡接口(SRNI)組成。MR發送數據經MRNI打包成數據幀,經MR獨占總線發送到各SRNI,各SRNI接收數據幀并檢測數據幀的目的地址。如果目的地址與本地從節點分配的地址相同,則該SRNI接收數據幀,解包后發送到本地從資源節點,否則丟棄該幀數據。MR獨占總線的時鐘信號和數據信號均由主資源節點發送,在時鐘上升沿發送數據幀,數據幀發送結束后,時鐘信號為低電平。該總線為單向只寫總線,由主資源節點發送數據到各從資源節點。當從資源節點向主資源節點發送數據時,首先通過各自獨立的請求信號線向仲裁模塊發送請求,仲裁模塊采用先到先服務原則實現對從資源節點的應答,請求應答信號線如圖2黑色長虛線所示。從資源網絡接口接收到應答信號后,則占用從資源共享總線,發送數據經從資源網絡接口打包后發送到主資源節點,數據發送完畢后,從資源節點釋放總線占有權。由于仲裁模塊也接收從資源節點發送的數據幀,所以仲裁模塊可判斷數據發送是否結束,從而接收下一個從資源節點的發送請求。如果多個資源節點同時發送請求信號,則根據各從資源節點事先定義的優先級進行應答。

2.2單向總線數據幀格式

主資源節點與從資源節點的通信數據必須按照定義的數據幀格式進行傳輸,數據幀結構見圖3。目的地址為接收數據包的資源節點的地址,占1字節,最多可支持256個資源節點;源地址為發送數據包的資源節點地址,占I字節;類型表示發送的數據幀的類型,可表示寫數據、讀命令或重發請求,占1字節;長度字段為發送數據的字節數,占2字節;數據字段為發送的有效數據,如從資源節點為存儲器模塊,則數據字段包含發送的數據及寫入地址;如果主資源節點向從資源節點發送讀命令,則數據字段包含要讀取數據的初始地址及讀取數據長度;校驗字段占2字節,采用CRC校驗。

2.3系統設計

下面詳細介紹資源網絡接口及仲裁模塊的邏輯設計。

2.3.1資源網絡接口設計

資源網絡接口是資源節點與單向總線通信的橋梁,接收單向總線的數據幀,解包后發送到資源節點;接收資源節點發送的數據,打包成數據幀格式發送到單向總線。主資源網絡接口與從資源網絡接口內部結構相似,只是數據發送、接收對應總線不同。下面以從資源網絡接口為例,介紹資源網絡接口的設計原理。主資源節點發送數據時,數據幀通過主資源節點獨占單向總線接口模塊發送到接收控制模塊。接收控制模塊首先對接收的數據幀的目的地址字段進行判斷,如果目的地址與本地資源節點地址不同,則丟棄該幀數據;如相同則繼續接收數據,并將數據段的有效數據存儲到接收緩存模塊;同時,將接收數據輸出到CRC校驗模塊進行校驗。當一幀數據接收完畢后,CRC校驗模塊計算的校驗值與數據幀的校驗位進行比較,如相同表明數據傳輸無誤,否則說明數據傳輸有誤,觸發發送控制模塊,產生數據重發請求。該請求通過請求應答模塊發送到仲裁模塊,獲得應答后,發送控制模塊輸出一個請求重發數據幀,發送到從資源節點共享單向總線,主資源節點收到該幀數據后,重發上次傳輸的數據。從資源節點發送數據時,從資源節點接口模塊將發送數據輸出到發送控制模塊,發送控制模塊將數據打包成數據幀格式輸出到發送緩存模塊。CRC校驗模塊對發送的數據進行校驗計算,并將校驗值輸出到發送控制模塊,發送控制模塊打包的一幀數據存人到發送緩存模塊后,發送控制模塊觸發請求應答模塊向仲裁模塊發送請求信號;待得到應答后,即取得從資源節點共享總線使用權,發送控制模塊觸發發送緩存模塊,將緩存模塊中的數據經從資源共享單向總線接口模塊發送到單向總線,主資源網絡接口模塊從只寫總線中讀取數據,解包后發送到主資源節點。

2.3.2仲裁模塊的設計

該模塊接收所有從資源網絡接口模塊發送的總線使用請求信號,采用先到先服務策略產生應答信號。如果多個從資源網絡接口發送的請求信號同時到達,則根據預先定義的優先等級對其響應。

2.4單向總線實現與驗證

單向總線系統設計采用VHDL描述。根據現代EDA設計使用的模塊化設計原則,用VHDL分別實現主資源網絡接口模塊、從資源網絡接口模塊、仲裁模塊的程序設計,在開發環境下綜合實現后,下載到FPGA開發板驗證。系統驗證環境利用Mi—croBlaze處理器軟核作為主資源節點,Flash控制器和RS232串口控制模塊作為從資源節點,驗證系統結構如圖5所示。主資源網絡接口(MRNI)作為用戶自定義IP核連接到PLB總線,主資源節點MicroBlaze處理器通過PLB總線訪問MRNI,以MicroBlaze處理器向Flash存儲器讀寫數據為例驗證該系統,MicroBlaze處理器通過PLB總線將數據寫入到MRNI,MRN1將數據打包成標準數據幀格式,目的地址為資源節點Flash控制器的地址,數據幀經主資源節點獨占總線寫入到Flash控制器的從資源網絡接口SR—NIl,SRNI1對接收的數據幀進行解包。如果CRC校驗正確,數據段中數值發送給從資源節點Flash控制器模塊,Flash控制器從接收的數據中提取寫入初始地址,將有效數據從初始地址開始連續寫入Flash存儲器。數據寫入完畢后,MicroBlaze處理器通過PLB總線訪問MRNI,請求從Flash存儲器中讀取數據,MRNI將讀請求數據幀發送到SR~NIl,SRNI1收到請求幀后,向仲裁模塊發送請求,得到應答后,占用SR共享總線,Flash控制器從外部Flash存儲器中讀取數據發送到SRNI,打包成數據幀格式通過SR共享總線發送到MRNI進行解包,解包后的數據經PLB總線傳輸到MicroBlaze處理器,MircoBlaze處理器將接收的數據與發送的數據進行比較,可判斷系統是否正確工作。MicroBlaze處理器還可通過對R$232串口控制器的訪問來驗證系統功能。MicroBlaze處理器通過PLB總線將輸出數據發送給MRNI,MRNI對數據進行打包,并通過MR獨占總線將數據發送到SRNI2,SRNI2對接收的數據進行解包,解包后的數據發送到從資源節點串口控制器,串口控制器將接收的數據通過RS232串口發送給PC機,PC機上使用超級終端打印輸出串口模塊發送的數據,通過比較,可知超級終端接收的數據即為MicroBlaze處理器發送的數據,從而可驗證系統正確工作。

3結束語

本文針對片上網絡架構提出一種新的資源節點通信協議。采用兩條單向總線實現了主資源節點與從資源節點的通信,定義適于單向總線傳輸的數據幀格式,設計MicroBlaze處理器作為主資源節點,Flash控制器和RS232串口控制器作為從資源節點,驗證系統可正確工作。相對于傳統片內總線,本文設計的單向總線結構簡單,資源節點易于擴展,兩個資源節點可同時占有兩條單向總線,實現對兩個資源節點的同時讀寫操作,提高了數據傳輸速率,增強系統性能。