《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 基于交點隊列型Crossbar的多層AXI總線設計
基于交點隊列型Crossbar的多層AXI總線設計
2017年電子技術應用第3期
胡春林1,2,王 鎮(zhèn)2,王申卓1,2,汪 健2,徐大誠1
1.蘇州大學 電子信息學院,江蘇 蘇州215006; 2.中國兵器工業(yè)集團北方電子研究院有限公司微電子部,江蘇 蘇州215163
摘要: AXI總線內部傳統(tǒng)的核間通信結構對處理器核之間的通信存在多方面的限制,已難以滿足多核SoC(System on Chip)日益發(fā)展的性能需求。提出以交點隊列(Crosspiont-Queued,CQ)型Crossbar代替?zhèn)鹘y(tǒng)的核間通信結構,設計一種多層AXI總線。通過Simulink工具對交點隊列型核間通信結構進行建模與仿真,確定其交點緩存的最佳深度。并結合VCS仿真工具對所設計的RTL代碼進行了全方面的仿真,結果表明,所設計的通信架構能夠完整地實現(xiàn)讀寫功能。
中圖分類號: TP302
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.006
中文引用格式: 胡春林,王鎮(zhèn),王申卓,等. 基于交點隊列型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.
Design of a multi-layer AXI bus based on the crosspiont-queued crossbar
Hu Chunlin1,2,Wang Zhen2,Wang Shenzhuo1,2,Wang Jian2,Xu Dacheng1
1.School of Electronic and Information Engineering,Soochow University,Suzhou 215006,China; 2.CNIGC,Suzhou 215163,China
Abstract: With in AXI Bus,there are many restrictions for the inter-core communication which lead to AXI Bus seem hardly to meet the growing performance requirement of multi-processor System-on-Chip.This paper presents a multi-layer AXI Bus which introduces crosspiont-queued structure to connect cores instead of traditional connection structure.Through modeling and simulation analysis by Simulink,the most optimum buffer lengths of crosspiont-queued can be confirmed. After times all round simulating for code of this design by VCS,result shows that the design can realize total function which an on-chip communication architecture should possess.
Key words : AXI Bus;multi-processor SoC;crosspiont-queued;multi-layer Bus

0 引言

    多核時代的到來,使得對片內通信效率的要求越來越高,因而通信架構成為了設計的重點和難點,直接影響著SoC最終的性能、面積、功耗等因素。國內外已有多家研究機構發(fā)布了各自的總線標準,其中ARM公司發(fā)布的AXI總線結構具有高性能、低延遲等優(yōu)點,能夠使 SoC以更低的功耗、更小的面積獲得更加優(yōu)異的性能[1],成為當前主流的片上通信架構,在實際SoC中應用最多。AXI總線將讀、寫地址通道和讀、寫數(shù)據(jù)通道完全分離,支持burst傳輸和亂序傳輸,具有很好的并行性。

    AXI總線結構中,處理器核(主設備)之間通常采用共享存儲的方式來實現(xiàn)核間的數(shù)據(jù)交互,這種核間通信方式結構雖簡單,但由于通信效率低,且存在數(shù)據(jù)一致性等問題,使其難以滿足日益發(fā)展的多核SoC內部核間通信的性能要求。

    基于此,本文提出一種基于交點隊列型Crossbar結構的多層AXI總線,并實現(xiàn)內部集成4個處理器核的多核SoC片內通信。在AXI總線結構的基礎上,核間采用交點隊列結構代替?zhèn)鹘y(tǒng)的共享存儲結構,實現(xiàn)4個處理器核之間點對點的分布式連接,處理器核可以同時工作而不受制約,且核間無數(shù)據(jù)共享,從結構上避免了數(shù)據(jù)一致性問題。同時,AXI的多層總線結構可充分利用總線的帶寬,提高模塊的并行性,能進一步提升總體架構的通信效率。

1 多層總線通信結構

1.1 整體結構

    根據(jù)系統(tǒng)需求,本設計將外設從設備分為4類,Slave0用于配置寄存器,Slave1用于連接UART、CAN等串口外設,Slave2用于連接片上SRAM,Slave3用于連接外部存儲器接口。系統(tǒng)總體的片上通信結構如圖1所示。采用交點隊列型Crossbar的核間通信結構如圖1上半部分全陣列,每個處理器核都與其他3個處理器核點對點互聯(lián),在交點處內置異步FIFO緩存,實現(xiàn)局部同步,整體異步。在與外設通信時,處理器核通過AXI總線可單獨與任一從設備進行數(shù)據(jù)交互。核間交點隊列型Crossbar作為系統(tǒng)的第一層總線結構,時鐘頻率與處理器核同步,實現(xiàn)處理器核之間的高速通信;AXI總線的交叉網(wǎng)絡作為第二層總線結構,實現(xiàn)各處理器核與片上外設模塊之間的連接,在保證高速傳輸?shù)耐瑫r,方便各處理器核與各功能模塊直接通訊;slave接口可直接連接高速設備,也可作為轉接器,連接串口外設等多路低速設備,構成本設計的第三層總線結構。

wdz2-t1.gif

1.2 隊列深度的仿真與驗證

    交點隊列型Crossbar的內部結構中,每對處理器核的連線中間都有一個緩存隊列,發(fā)送端處理器核根據(jù)數(shù)據(jù)的目標將數(shù)據(jù)發(fā)送至對應的緩存隊列,接收端處理器核則根據(jù)仲裁結果讀取其中一路緩存隊列中的數(shù)據(jù)。若節(jié)點緩存隊列滿,則將后繼到來的數(shù)據(jù)丟包[2]。對于丟包的問題,本設計通過保留輸入端與隊列之間的握手信號來解決,數(shù)據(jù)一旦丟包則再次請求輸入端發(fā)送丟失的數(shù)據(jù)。緩存隊列的深度和調度算法是影響核間交點隊列型Crossbar結構通信效率的關鍵因素,隊列過小則會導致握手請求過于頻繁,影響通信效率,隊列過大則會導致資源的浪費,因而必須找到隊列吞吐量與緩沖隊列深度之間的平衡點。文獻[3~4]結合不同的調度算法,通過建模仿真,找出了不同調度算法和隊列深度對平均延遲、丟包率產(chǎn)生的影響,并指出輪詢算法(Round Robin,RR)為最佳的仲裁方案。

    為進一步驗證隊列深度對丟包的影響,本文根據(jù)M/M/1排隊理論的知識[5],利用Simulink工具構建了交點隊列型Crossbar的仿真模型。如圖2所示,模型設立了3個相互獨立的信源以及1個信宿,3個信源分別代表core0、core1、core2,信宿代表core3,“隊列0-3”表示core0到core3的緩存隊列,以此類推。模型主要模擬core0、core1、core2向core3發(fā)送數(shù)據(jù),并觀察它們之間緩存隊列中數(shù)據(jù)包的個數(shù)。信源端調度器代表解碼器,將來自信源的數(shù)據(jù)隨機分配給3個深度足夠大的緩存隊列。信宿端調度器按照輪詢算法接收core3與其他core之間交點緩存隊列中的數(shù)據(jù),并發(fā)送給core3。緩存隊列用于存放未被輪詢調度器接收的數(shù)據(jù),通過信號觀察器可查看隊列在每個時刻存儲的數(shù)據(jù)包的數(shù)量。

wdz2-t2.gif

    對模型進行了2 500個時序的仿真后,結果如圖3所示,圖3(a)~圖3(c)分別記錄著3個交點緩存隊列中存放數(shù)據(jù)包的個數(shù),圖3(d)記錄信宿接收數(shù)據(jù)包的個數(shù)。從仿真結果可看出,3個緩存隊列中數(shù)據(jù)包的數(shù)量在絕大多數(shù)時序內都小于32。文獻[6]推導出了在RR調度機制下,交點隊列型Crossbar節(jié)點吞吐量的計算公式,對于本設計的4×4交叉網(wǎng)絡,在負載設為1的情況下,當隊列深度設為32時,節(jié)點的吞吐量將達0.98。由此,本文將交叉節(jié)點緩存隊列的深度設為32。

wdz2-t3.gif

2 主要模塊的設計與實現(xiàn)

2.1 核間互連結構

    本設計的核間互連結構如圖4所示,其中queue即為核間交點隊列型Crossbar結構中的緩存隊列。數(shù)據(jù)在送至緩存隊列之前,w_addr信號根據(jù)此數(shù)據(jù)的目標核,選通對應的核間交點緩存隊列。當交點緩存隊列中有數(shù)據(jù)時,隊列就會向目標核發(fā)出請求讀取的信號,隨后仲裁器根據(jù)調度算法從3路請求信號中選擇一路;得到仲裁器的允許后,目標核就會選通該隊列,并形成一條鏈路進行數(shù)據(jù)傳輸。此外,每個緩存隊列與發(fā)送端處理器核之間都有一個response回路信號,用于監(jiān)視數(shù)據(jù)是否已經(jīng)送至緩存隊列中,若發(fā)生丟包,則通知發(fā)送端處理器,令其再次發(fā)送丟失的數(shù)據(jù)。

wdz2-t4.gif

2.2 Slave接口模塊

    Slave接口模塊主要實現(xiàn)AXI總線到從模塊之間的協(xié)議轉換以及時序轉換。圖5為Slave接口模塊的結構圖,兩個FIFO分別用于緩存總線發(fā)送給從模塊的數(shù)據(jù)和從模塊發(fā)送給總線的數(shù)據(jù),寫返回邏輯主要用于通知總線此次寫事務是否成功,last返回邏輯產(chǎn)生的rlast信號則用于通知總線此次讀取的數(shù)據(jù)為從模塊發(fā)送的最后一個數(shù)據(jù)。根據(jù)AXI協(xié)議,總線端信號主要包括寫地址通道信號、寫數(shù)據(jù)通道信號、寫應答通道信號、讀數(shù)據(jù)通道信號、讀地址通道信號。Slave接口模塊一方面將這些將基于AXI的協(xié)議包解碼出通用的寫使能信號、寫地址信號、寫數(shù)據(jù)信號等基本信號;另一方面將來自從模塊的讀使能信號、讀地址信號、讀數(shù)據(jù)信號轉換成AXI協(xié)議信號。

wdz2-t5.gif

2.3 仲裁器模塊的設計

    設計的仲裁器結構如圖6所示,由優(yōu)先編碼器、屏蔽優(yōu)先級編碼器、屏蔽優(yōu)先級解碼器以及指針控制電路組成。仲裁開始后,請求信號一方面進入固定優(yōu)先級仲裁器仲裁;另一方面與優(yōu)先級寄存器中經(jīng)取反后的信號做與運算,可編程優(yōu)先編碼器將此結果編碼后得到屏蔽信號。屏蔽信號主要用于和固定優(yōu)先級編碼器編碼后的結果做與運算,實現(xiàn)屏蔽功能。屏蔽編碼后的結果再與可編程優(yōu)先級編碼器的結果做或運算即得輸出結果,該結果即為仲裁器對仲裁請求做出的應答信號。同時,將此結果送至指針更新控制電路,對優(yōu)先級指針進行更新。

wdz2-t6.gif

3 仿真

    本文設計的四核SoC片上通信結構主要包括交點隊列型核間通信模塊、仲裁器、譯碼器、Master與Slave接口模塊等。采用Verilog HDL語言對交點隊列核間通信模塊進行RTL設計,并結合Testbench,使用Synopsys VCS仿真工具對交點隊列型核間通信結構進行了功能仿真,仿真后的波形如圖7所示。圖中INTM0_M1置高,表示核0發(fā)數(shù)據(jù)給核1。按照AXI協(xié)議,信息源通過VALID信號來指示通道中的數(shù)據(jù)和控制信息何時有效,目地源則用READY信號來表示何時能夠接收數(shù)據(jù)。當SOIN_ARREADY與SOIN_ARV-ALID同時為高電平時,表示傳輸?shù)牡刂酚行?;SOIN_RREADY與SOIN_ RVALID同時為高,表示傳輸?shù)臄?shù)據(jù)有效。只有當傳輸?shù)牡刂酚行Ш螅襍OIN_RREADY與SOIN_RVALID同時為高時,core1才會讀取來自core0的數(shù)據(jù)。從圖可看出,所設計的交點隊列結構能完整地實現(xiàn)數(shù)據(jù)交換,且讀寫過程與AXI協(xié)議一致。

wdz2-t7.gif

4 結論

    多核SoC設計中,采用傳統(tǒng)共享存儲的核間通信方式存在硬件資源浪費、效率低等問題,已經(jīng)難以滿足多核SoC日益發(fā)展的性能需求。針對這些問題,本文結合交點隊列型交叉開關結構,設計并實現(xiàn)一種交點隊列型Crossbar結構的多層AXI總線。核間點對點的分布式連接可使處理器核同時工作而不受約束,極大地提高了核間通信效率。通過對4×4交叉網(wǎng)絡的建模仿真,確定了交點緩存隊列的最佳深度為32,并結合公式計算,得出其內部節(jié)點的吞吐量高達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隊列的通信網(wǎng)絡排隊模型化研究[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,王  鎮(zhèn)2,王申卓1,2,汪  健2,徐大誠1

(1.蘇州大學 電子信息學院,江蘇 蘇州215006;

2.中國兵器工業(yè)集團北方電子研究院有限公司微電子部,江蘇 蘇州215163)

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。