技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > 雙層AMBA總線(xiàn)設(shè)計(jì)及其在SoC芯片設(shè)計(jì)中的應(yīng)用

雙層AMBA總線(xiàn)設(shè)計(jì)及其在SoC芯片設(shè)計(jì)中的應(yīng)用

時(shí)間:2008-04-29 10:12:00來(lái)源:ronggang

導(dǎo)語(yǔ):?本文給出的雙層AMBA總線(xiàn)設(shè)計(jì)能極大地提高總線(xiàn)帶寬,并使系統(tǒng)架構(gòu)更為靈活。文章詳細(xì)介紹了此設(shè)計(jì)的實(shí)現(xiàn),并從兩個(gè)方面對(duì)兩種總線(xiàn)方式進(jìn)行了比較
摘 要:AMBA總線(xiàn)是目前主流的片上總線(xiàn)。本文給出的雙層AMBA總線(xiàn)設(shè)計(jì)能極大地提高總線(xiàn)帶寬,并使系統(tǒng)架構(gòu)更為靈活。文章詳細(xì)介紹了此設(shè)計(jì)的實(shí)現(xiàn),并從兩個(gè)方面對(duì)兩種總線(xiàn)方式進(jìn)行了比較。 關(guān)鍵詞:雙層AMBA總線(xiàn);總線(xiàn)帶寬;SoC 引言   一般說(shuō)來(lái),SoC芯片是由片上芯核、用戶(hù)設(shè)計(jì)的IP核以及將這兩者集成在一起的總線(xiàn)組成的。片上芯核決定了使用何種片上總線(xiàn)以及芯片的體系結(jié)構(gòu)。ARM系列嵌入式微處理器憑借其高性能、低功耗的特點(diǎn)占據(jù)了市場(chǎng)的主要份額,ARM7TDMI因其相對(duì)低廉的價(jià)格在SoC芯片設(shè)計(jì)中應(yīng)用比較廣泛。同時(shí),ARM公司開(kāi)發(fā)的AMBA (Advanced Microprocessors Bus Architecture)片上總線(xiàn)架構(gòu)由于其本身的高性能以及ARM核的廣泛應(yīng)用,成為了一種流行的片上總線(xiàn)結(jié)構(gòu)。除了片上芯核和片上總線(xiàn),各種由用戶(hù)設(shè)計(jì)的或者由供應(yīng)商提供的IP也集成在SoC芯片上。   ARM7TDMI需要通過(guò)總線(xiàn)訪(fǎng)問(wèn)各個(gè)Slave;DMA工作時(shí)也需要通過(guò)總線(xiàn)訪(fǎng)問(wèn)外設(shè)進(jìn)行數(shù)據(jù)交換;而LCD控制器模塊為了實(shí)現(xiàn)實(shí)時(shí)顯示更是需要不斷地通過(guò)總線(xiàn)來(lái)訪(fǎng)問(wèn)顯存讀取數(shù)據(jù);系統(tǒng)中其他的Master在工作時(shí)也要占用總線(xiàn)。   特別要引起注意的是LCD控制器模塊。彩屏顯示需要很大的數(shù)據(jù)量,以一塊320×240、16bpp的TFT彩屏為例,其每一幀需要:320× 240×16/8=153.6kByte。這么大的數(shù)據(jù)量不可能通過(guò)片上存儲(chǔ)器提供,勢(shì)必要通過(guò)存儲(chǔ)器接口從外設(shè)取得。由于LCD控制器所需要的數(shù)據(jù)量很大并且需要實(shí)時(shí)顯示,LCD控制器的工作將會(huì)占據(jù)大量的片上總線(xiàn)帶寬,甚至影響整個(gè)系統(tǒng)的正常運(yùn)行。而在目前的消費(fèi)電子領(lǐng)域,支持彩屏應(yīng)用幾乎是不可缺少的。   解決此問(wèn)題可以通過(guò)采用優(yōu)化總線(xiàn)切換算法、增加片內(nèi)Cache、改進(jìn)總線(xiàn)架構(gòu)等方法。其中,優(yōu)化總線(xiàn)切換算法帶來(lái)的性能改善比較有限,而 Cache本身設(shè)計(jì)的復(fù)雜性以及其License高昂費(fèi)用,使之在很多情況下也不合適。因而,采用雙總線(xiàn)架構(gòu)的AMBA不失為一個(gè)較好的選擇。 雙總線(xiàn)架構(gòu)AMBA及其實(shí)現(xiàn)   在單層總線(xiàn)情況下,所有的Master和Slave都掛在A(yíng)HB總線(xiàn)上。任何一個(gè)Master如果要訪(fǎng)問(wèn)Slave的話(huà),都必須先申請(qǐng)總線(xiàn),在獲得總線(xiàn)所有權(quán)后,通過(guò)總線(xiàn)互聯(lián)結(jié)構(gòu)中的MUX進(jìn)行地址、數(shù)據(jù)和控制信號(hào)的交換,而其他的Master此時(shí)必須等待。 雙層AMBA總線(xiàn)結(jié)構(gòu)   雙層AMBA總線(xiàn)架構(gòu)則通過(guò)使用更為復(fù)雜的內(nèi)部互聯(lián)結(jié)構(gòu),能夠同時(shí)有兩組Master和Slave通過(guò)AMBA進(jìn)行數(shù)據(jù)的交互,極大地提高了總線(xiàn)的帶寬。而且任一個(gè)Master也都可以訪(fǎng)問(wèn)任一層上的Slave。另外,在采用了雙層AMBA總線(xiàn)以后,對(duì)于A(yíng)HB Master和AHB Slave來(lái)說(shuō)是透明的,不需要任何的修改。對(duì)于這個(gè)雙層AMBA總線(xiàn),設(shè)置其能支持16個(gè)Master和16個(gè)Slave,并且每層各帶8個(gè)Master和8個(gè)Slave。   其中的雙層AMBA總線(xiàn)本身由三部分組成:Layer1的總線(xiàn)譯碼器、預(yù)仲裁器和多個(gè)數(shù)據(jù)選擇器(MUX);Layer2的總線(xiàn)譯碼器、預(yù)仲裁器和多個(gè)數(shù)據(jù)選擇器;整個(gè)總線(xiàn)的核心仲裁器(Arbiter)。其中,前二者基本是一致的,而核心仲裁器是整個(gè)雙層總線(xiàn)架構(gòu)的核心。其原理是:每層的8個(gè) Master先在本層進(jìn)行一次譯碼與仲裁,得到的結(jié)果送至核心仲裁器,再由核心仲裁器決定狀態(tài)的切換以及各個(gè)MUX如何進(jìn)行數(shù)據(jù)流和控制流的選擇。 內(nèi)部部件的設(shè)計(jì)   結(jié)合AMBA協(xié)議,以下介紹這個(gè)雙層AMBA總線(xiàn)的各個(gè)組成部件。由于第二層的各個(gè)部件的設(shè)計(jì)和功能和第一層相似,因而只介紹第一層。   * Layer1的譯碼器   該譯碼器采用集中式的地址譯碼機(jī)制,有利于提高外圍設(shè)備的可移植性。譯碼器接收到當(dāng)前占用總線(xiàn)的Master所發(fā)出的地址信號(hào),生成對(duì)應(yīng)于各個(gè)Slave的片選信號(hào),送給核心仲裁器。片選信號(hào)的生成是通過(guò)與各個(gè)Slave的基址比較得到的。   值得注意的是,由于每個(gè)Master都可以訪(fǎng)問(wèn)Slave0~Slave15的任一個(gè),所以譯碼器要能生成至少16個(gè)片選信號(hào)。   另外,每一層的譯碼器都應(yīng)該要有一個(gè)缺省片選信號(hào),對(duì)應(yīng)于缺省Slave。這個(gè)缺省Slave的響應(yīng)分兩種情況:對(duì)于IDLE或BUSY傳輸,作出OKAY回應(yīng);對(duì)于NONSEQU ENTIAL或SEQUENTIAL傳輸,作出ERROR回應(yīng)。   * Layer1的預(yù)仲裁器   仲裁器接收各個(gè)Master發(fā)出的總線(xiàn)請(qǐng)求信號(hào)(HBusReq)和所需的總線(xiàn)切換的判斷信號(hào),采用一定的總線(xiàn)仲裁算法,確定出可以占據(jù)總線(xiàn)的 Master,并生成M to S MUX1的控制信號(hào)。與單層的AMBA不同,其生成的HMaster_layer1、BusHgrant_layer1信號(hào)送到核心仲裁器,而不是直接送給各個(gè)HMaster。另外,接收到的當(dāng)前Slave響應(yīng)是從核心仲裁器送出來(lái)的。   仲裁器可以采用的總線(xiàn)切換算法有兩種:固定優(yōu)先級(jí)算法和循環(huán)優(yōu)先級(jí)算法。在A(yíng)MBA規(guī)范中,可以根據(jù)實(shí)際需要靈活選擇總線(xiàn)的切換算法。在這個(gè)部件里,采用了固定優(yōu)先級(jí)的算法,即Master0優(yōu)先級(jí)最低,而Master7優(yōu)先級(jí)最高。  ?。?Layer1的多路選擇器   在Layer1中共有4個(gè)MUX,分別是M to S MUX1、M to S MUX2、S to M MUX1和S to M MUX2。其中,M to S MUX1接收Layer1仲裁器的信號(hào)作為片選信號(hào),從8組總線(xiàn)信號(hào)中選擇一組輸出給核心仲裁器、Layer1的M to S MUX2和Layer2的M to S MUX2。對(duì)于M to S MUX2,其控制信號(hào)是從核心仲裁器得到的,它的作用是從兩組總線(xiàn)信號(hào)中選擇一組送給Layer1中相應(yīng)的Slave。而S to M MUX1則是接收核心仲裁器輸出的片選信號(hào),從Layer1的8組總線(xiàn)響應(yīng)信號(hào)(Hready、Hresp、Hrdata)選擇一組送給核心仲裁器、 Layer1的S to M MUX2和Layer2的S to M MUX2。由S to M MUX2輸出一組總線(xiàn)響應(yīng)信號(hào)給Layer1的所有的Master。   * 核心仲裁器   核心仲裁器的主要作用是:從兩層的譯碼器輸出的片選信號(hào)出發(fā),得到初始狀態(tài);再由Slave的響應(yīng)信號(hào)以及傳輸狀態(tài)來(lái)決定何時(shí)進(jìn)行狀態(tài)的切換;同時(shí),根據(jù)自己所處的狀態(tài),輸出相應(yīng)信號(hào)給相關(guān)的MUX作為控制信號(hào),輸出Hmaster、BusHgrant信號(hào)給每層的Master,以及輸出相應(yīng)的 Slave響應(yīng)信號(hào)給兩層的預(yù)仲裁器。   由于存在不同層的Master同時(shí)訪(fǎng)問(wèn)同一層的Slave的情況,核心仲裁器也要考慮總線(xiàn)切換算法。又因?yàn)樵诤诵闹俨闷骼镏炼嗍莾蓚€(gè)Master搶占總線(xiàn),故可以采用簡(jiǎn)單的循環(huán)優(yōu)先級(jí)算法。   核心仲裁器的主要部分是一個(gè)狀態(tài)機(jī),它由七個(gè)狀態(tài)組成:   IDLE:系統(tǒng)復(fù)位后進(jìn)入此狀態(tài),完成部分?jǐn)?shù)據(jù)的初始賦值;   M1S1M2S2:Layer1的Master和Layer1的Slave通信,Layer2的Master和Layer2的Slave通信,即兩層總線(xiàn)并行運(yùn)行;   M1S2M2S1:Layer1的Master和Layer2的Slave通信,Layer2的Master和Layer1的Slave通信;   M1S1M2S1:Layer1的Master和Layer1的Slave通信,Layer2的Master在等待和Layer1的Slave的通信;   M1S2M2S2:Layer1的Master和Layer2的Slave通信,Layer2的Master在等待和Layer2的Slave的通信;   M2S1M1S1:Layer2的Master和Layer1的Slave通信,Layer1的Master在等待和Layer1的Slave的通信;   M2S2M1S2:Layer2的Master和Layer2的Slave通信,Layer1的Master在等待和Layer2的Slave的通信。   這七個(gè)狀態(tài)之間的切換是由兩層譯碼器給出的片選信號(hào)、當(dāng)前占據(jù)總線(xiàn)的Master發(fā)出的控制信號(hào)以及與此Master通信的Slave的響應(yīng)信號(hào)共同決定的。當(dāng)涉及到ARM Master的狀態(tài)切換,需考慮三級(jí)流水線(xiàn)特性,給予適當(dāng)?shù)牡却芷凇?   另外,在核心仲裁器里還有一級(jí)輸入鎖存部分,用于鎖存正在等待的Master發(fā)出的地址和控制信號(hào)。 設(shè)計(jì)結(jié)果以及測(cè)試平臺(tái)的建立   對(duì)于以上實(shí)現(xiàn),采用Verilog語(yǔ)言在RTL級(jí)進(jìn)行描述,使用Synopsys的VCS工具進(jìn)行功能仿真。為了驗(yàn)證以上設(shè)計(jì)的正確性,針對(duì)圖1 所示的架構(gòu),把單層AMBA改為雙層的AMBA,并把LCDC Master和LCDC Slave移至第二層。同時(shí)在第二層增加了一個(gè)簡(jiǎn)單的MC Slave,并在其外面掛了SRAM、SDRAM的存儲(chǔ)器模型,其中的SDRAM用于LCDC Master顯存數(shù)據(jù)的存放,其他的結(jié)構(gòu)保持不變(如圖3)。同時(shí),還準(zhǔn)備了一套基于A(yíng)RM匯編語(yǔ)言的測(cè)試程序進(jìn)行系統(tǒng)的配置。在這個(gè)測(cè)試程序運(yùn)行以后,共有三個(gè)Master:ARM Master、DMA Master和LCDC Master會(huì)不斷訪(fǎng)問(wèn)總線(xiàn)。   結(jié)果表明設(shè)計(jì)是正確的:ARM Master可以對(duì)Layer2的Slave進(jìn)行配置;在第二層的LCDC Master從同層的MC Slave讀數(shù)據(jù)的同時(shí),第一層的Master正在訪(fǎng)問(wèn)同層的Slave;Layer1的其他Master也能夠申請(qǐng)到Layer2的總線(xiàn)以訪(fǎng)問(wèn) Layer2的外存。   另外,為了考察LCD控制器對(duì)總線(xiàn)的占用率,在A(yíng)HB上掛了一個(gè)Hmaster Monitor的子模塊,用于統(tǒng)計(jì)各個(gè)Master占據(jù)當(dāng)前總線(xiàn)的時(shí)鐘周期數(shù)。 兩種總線(xiàn)方式的比較   從兩個(gè)方面比較單層AMBA總線(xiàn)與雙層AMBA總線(xiàn)的設(shè)計(jì)。   首先,從降低LCD控制器總線(xiàn)占用率方面看。由表1可以看出,在使用單層AMBA總線(xiàn)的情況下,LCD控制器占用的總線(xiàn)帶寬都比較大:對(duì)于典型的 320×240、16bpp的TFT彩屏,LCD控制器占用了16.3%的總線(xiàn)帶寬。使用雙層AMBA總線(xiàn)時(shí),除了ARM Master 對(duì)兩個(gè)Slave進(jìn)行配置要占總線(xiàn)周期以外,LCD控制器將只會(huì)占用Layer2的帶寬。   其次,從綜合的結(jié)果看,雙層AMBA占用的面積要大一些。在包括APB模塊的情況下,單層AMBA綜合得到的面積為17000門(mén),而雙層 AMBA的面積為18500門(mén)。兩者都支持16個(gè)Master和16個(gè)Slave。采用TSMC 0.25工藝標(biāo)準(zhǔn)單元庫(kù),使用Synopsys的Design Compiler工具進(jìn)行門(mén)級(jí)網(wǎng)表的綜合。   對(duì)于雙層AMBA總線(xiàn)的實(shí)際的應(yīng)用,可以把Layer1的MC Slave外接非易失性存儲(chǔ)器,而Layer2的MC Slave外接易失性存儲(chǔ)器。這樣,可以把指令區(qū)置于Layer1,而數(shù)據(jù)區(qū)置于Layer2。于是,ARM Master的取指操作就可以在Layer1完成,而LCD控制器對(duì)顯存數(shù)據(jù)的讀取則在Layer2完成。而這兩者恰恰是占總線(xiàn)帶寬很大的操作,因而很大程度上減少了各個(gè)Master因?yàn)榭偩€(xiàn)搶占而等待的時(shí)間,提高了總線(xiàn)帶寬。 結(jié)語(yǔ)   ARM7TDMI在SoC芯片的設(shè)計(jì)中得到了極大的應(yīng)用,但由于其自身不帶Cache,使之需要頻繁訪(fǎng)問(wèn)外存。如果此時(shí)片上集成了其他需要很大數(shù)據(jù)帶寬的模塊,就會(huì)使系統(tǒng)的性能大幅下降。而雙層AMBA總線(xiàn)在占用面積略為增加的條件下,能極大地提高總線(xiàn)帶寬,并且提供了更為靈活的系統(tǒng)架構(gòu)。這對(duì)于基于A(yíng)RM7TDMI的SoC芯片以及其他類(lèi)似架構(gòu)的SoC芯片來(lái)說(shuō),有著很重要的意義和實(shí)用價(jià)值。 參考文獻(xiàn)   1 Advanced Microcontroller Bus Architecture(AMBA)Specification. ARM Co.Ltd,2000   2 Multi-layer AHB Overview. ARM Co.Ltd,2001   3 張慶利. AMBA片內(nèi)總線(xiàn)結(jié)構(gòu)的設(shè)計(jì). 微處理機(jī). 2002年5月 作者簡(jiǎn)介:   彭煒豐,東南大學(xué)專(zhuān)用集成電路工程技術(shù)研究中心碩士研究生,研究方向?yàn)閿?shù)字專(zhuān)用集成電路設(shè)計(jì)與驗(yàn)證。潘江濤,東南大學(xué)專(zhuān)用集成電路工程技術(shù)研究中心碩士研究生,研究方向?yàn)閿?shù)字專(zhuān)用集成電路設(shè)計(jì)。 劉新寧,東南大學(xué)專(zhuān)用集成電路工程技術(shù)研究中心教師。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:現(xiàn)場(chǎng)總線(xiàn)控制系統(tǒng)在煤礦中的應(yīng)用

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

相關(guān)資訊