《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于交點(diǎn)隊(duì)列型Crossbar的多層AXI總線設(shè)計(jì)
基于交點(diǎn)隊(duì)列型Crossbar的多層AXI總線設(shè)計(jì)
2017年電子技術(shù)應(yīng)用第3期
胡春林1,,2,,王 鎮(zhèn)2,,王申卓1,2,,汪 健2,,徐大誠1
1.蘇州大學(xué) 電子信息學(xué)院,江蘇 蘇州215006,; 2.中國兵器工業(yè)集團(tuán)北方電子研究院有限公司微電子部,江蘇 蘇州215163
摘要: AXI總線內(nèi)部傳統(tǒng)的核間通信結(jié)構(gòu)對處理器核之間的通信存在多方面的限制,,已難以滿足多核SoC(System on Chip)日益發(fā)展的性能需求,。提出以交點(diǎn)隊(duì)列(Crosspiont-Queued,CQ)型Crossbar代替?zhèn)鹘y(tǒng)的核間通信結(jié)構(gòu),,設(shè)計(jì)一種多層AXI總線,。通過Simulink工具對交點(diǎn)隊(duì)列型核間通信結(jié)構(gòu)進(jìn)行建模與仿真,確定其交點(diǎn)緩存的最佳深度,。并結(jié)合VCS仿真工具對所設(shè)計(jì)的RTL代碼進(jìn)行了全方面的仿真,,結(jié)果表明,所設(shè)計(jì)的通信架構(gòu)能夠完整地實(shí)現(xiàn)讀寫功能,。
中圖分類號: TP302
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.006
中文引用格式: 胡春林,,王鎮(zhèn),王申卓,,等. 基于交點(diǎn)隊(duì)列型Crossbar的多層AXI總線設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,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 引言

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

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

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

1 多層總線通信結(jié)構(gòu)

1.1 整體結(jié)構(gòu)

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

wdz2-t1.gif

1.2 隊(duì)列深度的仿真與驗(yàn)證

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

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

wdz2-t2.gif

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

wdz2-t3.gif

2 主要模塊的設(shè)計(jì)與實(shí)現(xiàn)

2.1 核間互連結(jié)構(gòu)

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

wdz2-t4.gif

2.2 Slave接口模塊

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

wdz2-t5.gif

2.3 仲裁器模塊的設(shè)計(jì)

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

wdz2-t6.gif

3 仿真

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

wdz2-t7.gif

4 結(jié)論

    多核SoC設(shè)計(jì)中,采用傳統(tǒng)共享存儲的核間通信方式存在硬件資源浪費(fèi),、效率低等問題,,已經(jīng)難以滿足多核SoC日益發(fā)展的性能需求,。針對這些問題,,本文結(jié)合交點(diǎn)隊(duì)列型交叉開關(guān)結(jié)構(gòu),設(shè)計(jì)并實(shí)現(xiàn)一種交點(diǎn)隊(duì)列型Crossbar結(jié)構(gòu)的多層AXI總線,。核間點(diǎn)對點(diǎn)的分布式連接可使處理器核同時工作而不受約束,,極大地提高了核間通信效率,。通過對4×4交叉網(wǎng)絡(luò)的建模仿真,,確定了交點(diǎn)緩存隊(duì)列的最佳深度為32,并結(jié)合公式計(jì)算,,得出其內(nèi)部節(jié)點(diǎn)的吞吐量高達(dá)0.98,。四路Slave接口既能連接高速設(shè)備,又能作為轉(zhuǎn)接器,,連接多路低速設(shè)備,,這種AXI的多層結(jié)構(gòu)有利于總線帶寬的充分利用。

參考文獻(xiàn)

[1] 胡景華.基于AXI總線的SoC架構(gòu)設(shè)計(jì)與分析[D].上海:上海交通大學(xué).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隊(duì)列的通信網(wǎng)絡(luò)排隊(duì)模型化研究[J].科學(xué)技術(shù)工程,,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.蘇州大學(xué) 電子信息學(xué)院,,江蘇 蘇州215006;

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

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