文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.006
中文引用格式: 胡春林,王鎮,王申卓,等. 基于交點隊列型Crossbar的多層AXI總線設計[J].電子技術應用,2017,43(3):29-32.
英文引用格式: Hu Chunlin,Wang Zhen,Wang Shenzhuo,et al. Design of a multi-layer AXI bus based on the crosspiont-queued crossbar[J].Application of Electronic Technique,2017,43(3):29-32.
0 引言
多核時代的到來,使得對片內通信效率的要求越來越高,因而通信架構成為了設計的重點和難點,直接影響著SoC最終的性能、面積、功耗等因素。國內外已有多家研究機構發布了各自的總線標準,其中ARM公司發布的AXI總線結構具有高性能、低延遲等優點,能夠使 SoC以更低的功耗、更小的面積獲得更加優異的性能[1],成為當前主流的片上通信架構,在實際SoC中應用最多。AXI總線將讀、寫地址通道和讀、寫數據通道完全分離,支持burst傳輸和亂序傳輸,具有很好的并行性。
AXI總線結構中,處理器核(主設備)之間通常采用共享存儲的方式來實現核間的數據交互,這種核間通信方式結構雖簡單,但由于通信效率低,且存在數據一致性等問題,使其難以滿足日益發展的多核SoC內部核間通信的性能要求。
基于此,本文提出一種基于交點隊列型Crossbar結構的多層AXI總線,并實現內部集成4個處理器核的多核SoC片內通信。在AXI總線結構的基礎上,核間采用交點隊列結構代替傳統的共享存儲結構,實現4個處理器核之間點對點的分布式連接,處理器核可以同時工作而不受制約,且核間無數據共享,從結構上避免了數據一致性問題。同時,AXI的多層總線結構可充分利用總線的帶寬,提高模塊的并行性,能進一步提升總體架構的通信效率。
1 多層總線通信結構
1.1 整體結構
根據系統需求,本設計將外設從設備分為4類,Slave0用于配置寄存器,Slave1用于連接UART、CAN等串口外設,Slave2用于連接片上SRAM,Slave3用于連接外部存儲器接口。系統總體的片上通信結構如圖1所示。采用交點隊列型Crossbar的核間通信結構如圖1上半部分全陣列,每個處理器核都與其他3個處理器核點對點互聯,在交點處內置異步FIFO緩存,實現局部同步,整體異步。在與外設通信時,處理器核通過AXI總線可單獨與任一從設備進行數據交互。核間交點隊列型Crossbar作為系統的第一層總線結構,時鐘頻率與處理器核同步,實現處理器核之間的高速通信;AXI總線的交叉網絡作為第二層總線結構,實現各處理器核與片上外設模塊之間的連接,在保證高速傳輸的同時,方便各處理器核與各功能模塊直接通訊;slave接口可直接連接高速設備,也可作為轉接器,連接串口外設等多路低速設備,構成本設計的第三層總線結構。
1.2 隊列深度的仿真與驗證
交點隊列型Crossbar的內部結構中,每對處理器核的連線中間都有一個緩存隊列,發送端處理器核根據數據的目標將數據發送至對應的緩存隊列,接收端處理器核則根據仲裁結果讀取其中一路緩存隊列中的數據。若節點緩存隊列滿,則將后繼到來的數據丟包[2]。對于丟包的問題,本設計通過保留輸入端與隊列之間的握手信號來解決,數據一旦丟包則再次請求輸入端發送丟失的數據。緩存隊列的深度和調度算法是影響核間交點隊列型Crossbar結構通信效率的關鍵因素,隊列過小則會導致握手請求過于頻繁,影響通信效率,隊列過大則會導致資源的浪費,因而必須找到隊列吞吐量與緩沖隊列深度之間的平衡點。文獻[3~4]結合不同的調度算法,通過建模仿真,找出了不同調度算法和隊列深度對平均延遲、丟包率產生的影響,并指出輪詢算法(Round Robin,RR)為最佳的仲裁方案。
為進一步驗證隊列深度對丟包的影響,本文根據M/M/1排隊理論的知識[5],利用Simulink工具構建了交點隊列型Crossbar的仿真模型。如圖2所示,模型設立了3個相互獨立的信源以及1個信宿,3個信源分別代表core0、core1、core2,信宿代表core3,“隊列0-3”表示core0到core3的緩存隊列,以此類推。模型主要模擬core0、core1、core2向core3發送數據,并觀察它們之間緩存隊列中數據包的個數。信源端調度器代表解碼器,將來自信源的數據隨機分配給3個深度足夠大的緩存隊列。信宿端調度器按照輪詢算法接收core3與其他core之間交點緩存隊列中的數據,并發送給core3。緩存隊列用于存放未被輪詢調度器接收的數據,通過信號觀察器可查看隊列在每個時刻存儲的數據包的數量。
對模型進行了2 500個時序的仿真后,結果如圖3所示,圖3(a)~圖3(c)分別記錄著3個交點緩存隊列中存放數據包的個數,圖3(d)記錄信宿接收數據包的個數。從仿真結果可看出,3個緩存隊列中數據包的數量在絕大多數時序內都小于32。文獻[6]推導出了在RR調度機制下,交點隊列型Crossbar節點吞吐量的計算公式,對于本設計的4×4交叉網絡,在負載設為1的情況下,當隊列深度設為32時,節點的吞吐量將達0.98。由此,本文將交叉節點緩存隊列的深度設為32。
2 主要模塊的設計與實現
2.1 核間互連結構
本設計的核間互連結構如圖4所示,其中queue即為核間交點隊列型Crossbar結構中的緩存隊列。數據在送至緩存隊列之前,w_addr信號根據此數據的目標核,選通對應的核間交點緩存隊列。當交點緩存隊列中有數據時,隊列就會向目標核發出請求讀取的信號,隨后仲裁器根據調度算法從3路請求信號中選擇一路;得到仲裁器的允許后,目標核就會選通該隊列,并形成一條鏈路進行數據傳輸。此外,每個緩存隊列與發送端處理器核之間都有一個response回路信號,用于監視數據是否已經送至緩存隊列中,若發生丟包,則通知發送端處理器,令其再次發送丟失的數據。
2.2 Slave接口模塊
Slave接口模塊主要實現AXI總線到從模塊之間的協議轉換以及時序轉換。圖5為Slave接口模塊的結構圖,兩個FIFO分別用于緩存總線發送給從模塊的數據和從模塊發送給總線的數據,寫返回邏輯主要用于通知總線此次寫事務是否成功,last返回邏輯產生的rlast信號則用于通知總線此次讀取的數據為從模塊發送的最后一個數據。根據AXI協議,總線端信號主要包括寫地址通道信號、寫數據通道信號、寫應答通道信號、讀數據通道信號、讀地址通道信號。Slave接口模塊一方面將這些將基于AXI的協議包解碼出通用的寫使能信號、寫地址信號、寫數據信號等基本信號;另一方面將來自從模塊的讀使能信號、讀地址信號、讀數據信號轉換成AXI協議信號。
2.3 仲裁器模塊的設計
設計的仲裁器結構如圖6所示,由優先編碼器、屏蔽優先級編碼器、屏蔽優先級解碼器以及指針控制電路組成。仲裁開始后,請求信號一方面進入固定優先級仲裁器仲裁;另一方面與優先級寄存器中經取反后的信號做與運算,可編程優先編碼器將此結果編碼后得到屏蔽信號。屏蔽信號主要用于和固定優先級編碼器編碼后的結果做與運算,實現屏蔽功能。屏蔽編碼后的結果再與可編程優先級編碼器的結果做或運算即得輸出結果,該結果即為仲裁器對仲裁請求做出的應答信號。同時,將此結果送至指針更新控制電路,對優先級指針進行更新。
3 仿真
本文設計的四核SoC片上通信結構主要包括交點隊列型核間通信模塊、仲裁器、譯碼器、Master與Slave接口模塊等。采用Verilog HDL語言對交點隊列核間通信模塊進行RTL設計,并結合Testbench,使用Synopsys VCS仿真工具對交點隊列型核間通信結構進行了功能仿真,仿真后的波形如圖7所示。圖中INTM0_M1置高,表示核0發數據給核1。按照AXI協議,信息源通過VALID信號來指示通道中的數據和控制信息何時有效,目地源則用READY信號來表示何時能夠接收數據。當SOIN_ARREADY與SOIN_ARV-ALID同時為高電平時,表示傳輸的地址有效;SOIN_RREADY與SOIN_ RVALID同時為高,表示傳輸的數據有效。只有當傳輸的地址有效后,且SOIN_RREADY與SOIN_RVALID同時為高時,core1才會讀取來自core0的數據。從圖可看出,所設計的交點隊列結構能完整地實現數據交換,且讀寫過程與AXI協議一致。
4 結論
多核SoC設計中,采用傳統共享存儲的核間通信方式存在硬件資源浪費、效率低等問題,已經難以滿足多核SoC日益發展的性能需求。針對這些問題,本文結合交點隊列型交叉開關結構,設計并實現一種交點隊列型Crossbar結構的多層AXI總線。核間點對點的分布式連接可使處理器核同時工作而不受約束,極大地提高了核間通信效率。通過對4×4交叉網絡的建模仿真,確定了交點緩存隊列的最佳深度為32,并結合公式計算,得出其內部節點的吞吐量高達0.98。四路Slave接口既能連接高速設備,又能作為轉接器,連接多路低速設備,這種AXI的多層結構有利于總線帶寬的充分利用。
參考文獻
[1] 胡景華.基于AXI總線的SoC架構設計與分析[D].上海:上海交通大學.2013:21-29.
[2] RADONJIC M,RADUSINOVIC I.Average latency and loss probability analysis of cross-point queued crossbar switch[C]//ELMA-R,2010 PROCEEDINGS.IEEE,2010:203-206.
[3] DIVANOVIC S,KOVACEVIC V,RADONJIC M,et al.Crosspoint queued switch performance analysis under multicast traffic[C]//Telecommunications Forum(TELFOR),2012 20th.IEEE,2012:226-229.
[4] RADONJIC M,RADUSINOVIC I.CQ switch performance analysis from the point of buffer size and scheduling algorithms[C]//Telecommunications Froum(TELEFOR),2012 20th.IEEE,2012:210-217.
[5] 張霖,劉建明,李宏周.基于M/M/m隊列的通信網絡排隊模型化研究[J].科學技術工程,2013(5).
[6] KANIZO Y,HAY D,KESLASSY I.The cross-piont-queued switch[C]//INFOCOM 2009,IEEE.IEEE,2009:729-737.
作者信息:
胡春林1,2,王 鎮2,王申卓1,2,汪 健2,徐大誠1
(1.蘇州大學 電子信息學院,江蘇 蘇州215006;
2.中國兵器工業集團北方電子研究院有限公司微電子部,江蘇 蘇州215163)