雙層AMBA總線設(shè)計及其在SoC芯片設(shè)計中的應(yīng)用_第1頁
雙層AMBA總線設(shè)計及其在SoC芯片設(shè)計中的應(yīng)用_第2頁
雙層AMBA總線設(shè)計及其在SoC芯片設(shè)計中的應(yīng)用_第3頁
雙層AMBA總線設(shè)計及其在SoC芯片設(shè)計中的應(yīng)用_第4頁
雙層AMBA總線設(shè)計及其在SoC芯片設(shè)計中的應(yīng)用_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、雙層AMBA總線設(shè)計及其在SoC芯片設(shè)計中的應(yīng)用摘要:AMBA總線是目前主流的片上總線。本文給出的雙層AMBA總線設(shè)計能極大地提高總線帶寬,并使系統(tǒng)架構(gòu)更為靈活。文章詳細介紹了此設(shè)計的實現(xiàn),并從兩個方面對兩種總線方式進行了比較。關(guān)鍵詞:雙層AMBA總線;總線帶寬;SoC引言一般說來,SoC芯片是由片上芯核、用戶設(shè)計的IP核以及將這兩者集成在一起的總線組成的。片上芯核決定了使用何種片上總線以及芯片的體系結(jié)構(gòu)。ARM系列嵌入式微處理器憑借其高性能、低功耗的特點占據(jù)了市場的摘要:AMBA總線是目前主流的片上總線。本文給出的雙層AMBA總線設(shè)計能極大地提高總線帶寬,并使系統(tǒng)架構(gòu)更為靈活。文章詳細介紹了

2、此設(shè)計的實現(xiàn),并從兩個方面對兩種總線方式進行了比較。關(guān)鍵詞:雙層AMBA總線;總線帶寬;SoC引言一般說來,SoC芯片是由片上芯核、用戶設(shè)計的IP核以及將這兩者集成在一起的總線組成的。片上芯核決定了使用何種片上總線以及芯片的體系結(jié)構(gòu)。ARM系列嵌入式微處理器憑借其高性能、低功耗的特點占據(jù)了市場的主要份額,ARM7TDMI因其相對低廉的價格在SoC芯片設(shè)計中應(yīng)用比較廣泛。同時,ARM公司開發(fā)的AMBA(AdvancedMicroprocessorsBusArchitecture)片上總線架構(gòu)由于其本身的高性能以及ARM核的廣泛應(yīng)用,成為了一種流行的片上總線結(jié)構(gòu)。除了片上芯核和片上總線,各種由用戶

3、設(shè)計的或者由供應(yīng)商提供的IP也集成在SoC芯片上。ARM7TDMI需要通過總線訪問各個Slave;DMA工作時也需要通過總線訪問外設(shè)進行數(shù)據(jù)交換;而LCD控制器模塊為了實現(xiàn)實時顯示更是需要不斷地通過總線來訪問顯存讀取數(shù)據(jù);系統(tǒng)中其他的Master在工作時也要占用總線。特別要引起注意的是LCD控制器模塊。彩屏顯示需要很大的數(shù)據(jù)量,以一塊320240、16bpp的TFT彩屏為例,其每一幀需要:32024016/8=153.6kByte。這么大的數(shù)據(jù)量不可能通過片上存儲器提供,勢必要通過存儲器接口從外設(shè)取得。由于LCD控制器所需要的數(shù)據(jù)量很大并且需要實時顯示,LCD控制器的工作將會占據(jù)大量的片上總線

4、帶寬,甚至影響整個系統(tǒng)的正常運行。而在目前的消費電子領(lǐng)域,支持彩屏應(yīng)用幾乎是不可缺少的。解決此問題可以通過采用優(yōu)化總線切換算法、增加片內(nèi)Cache、改進總線架構(gòu)等方法。其中,優(yōu)化總線切換算法帶來的性能改善比較有限,而Cache本身設(shè)計的復(fù)雜性以及其License高昂費用,使之在很多情況下也不合適。因而,采用雙總線架構(gòu)的AMBA不失為一個較好的選擇。雙總線架構(gòu)AMBA及其實現(xiàn)在單層總線情況下,所有的Master和Slave都掛在AHB總線上。任何一個Master如果要訪問Slave的話,都必須先申請總線,在獲得總線所有權(quán)后,通過總線互聯(lián)結(jié)構(gòu)中的MUX進行地址、數(shù)據(jù)和控制信號的交換,而其他的Mas

5、ter此時必須等待。雙層AMBA總線結(jié)構(gòu)雙層AMBA總線架構(gòu)則通過使用更為復(fù)雜的內(nèi)部互聯(lián)結(jié)構(gòu),能夠同時有兩組Master和Slave通過AMBA進行數(shù)據(jù)的交互,極大地提高了總線的帶寬。而且任一個Master也都可以訪問任一層上的Slave。另外,在采用了雙層AMBA總線以后,對于AHBMaster和AHBSlave來說是透明的,不需要任何的修改。對于這個雙層AMBA總線,設(shè)置其能支持16個Master和16個Slave,并且每層各帶8個Master和8個Slave。其中的雙層AMBA總線本身由三部分組成:Layer1的總線譯碼器、預(yù)仲裁器和多個數(shù)據(jù)選擇器(MUX);Layer2的總線譯碼器、預(yù)

6、仲裁器和多個數(shù)據(jù)選擇器;整個總線的核心仲裁器(Arbiter)。其中,前二者基本是一致的,而核心仲裁器是整個雙層總線架構(gòu)的核心。其原理是:每層的8個Master先在本層進行一次譯碼與仲裁,得到的結(jié)果送至核心仲裁器,再由核心仲裁器決定狀態(tài)的切換以及各個MUX如何進行數(shù)據(jù)流和控制流的選擇。內(nèi)部部件的設(shè)計結(jié)合AMBA協(xié)議,以下介紹這個雙層AMBA總線的各個組成部件。由于第二層的各個部件的設(shè)計和功能和第一層相似,因而只介紹第一層。Layer1的譯碼器該譯碼器采用集中式的地址譯碼機制,有利于提高外圍設(shè)備的可移植性。譯碼器接收到當(dāng)前占用總線的Master所發(fā)出的地址信號,生成對應(yīng)于各個Slave的片選信號

7、,送給核心仲裁器。片選信號的生成是通過與各個Slave的基址比較得到的。值得注意的是,由于每個Master都可以訪問Slave0Slave15的任一個,所以譯碼器要能生成至少16個片選信號。另外,每一層的譯碼器都應(yīng)該要有一個缺省片選信號,對應(yīng)于缺省Slave。這個缺省Slave的響應(yīng)分兩種情況:對于IDLE或BUSY傳輸,作出OKAY回應(yīng);對于NONSEQUENTIAL或SEQUENTIAL傳輸,作出ERROR回應(yīng)。Layer1的預(yù)仲裁器仲裁器接收各個Master發(fā)出的總線請求信號(HBusReq)和所需的總線切換的判斷信號,采用一定的總線仲裁算法,確定出可以占據(jù)總線的Master,并生成Mt

8、oSMUX1的控制信號。與單層的AMBA不同,其生成的HMaster_layer1、BusHgrant_layer1信號送到核心仲裁器,而不是直接送給各個HMaster。另外,接收到的當(dāng)前Slave響應(yīng)是從核心仲裁器送出來的。仲裁器可以采用的總線切換算法有兩種:固定優(yōu)先級算法和循環(huán)優(yōu)先級算法。在AMBA規(guī)范中,可以根據(jù)實際需要靈活選擇總線的切換算法。在這個部件里,采用了固定優(yōu)先級的算法,即Master0優(yōu)先級最低,而Master7優(yōu)先級最高。Layer1的多路選擇器在Layer1中共有4個MUX,分別是MtoSMUX1、MtoSMUX2、StoMMUX1和StoMMUX2。其中,MtoSMUX

9、1接收Layer1仲裁器的信號作為片選信號,從8組總線信號中選擇一組輸出給核心仲裁器、Layer1的MtoSMUX2和Layer2的MtoSMUX2。對于MtoSMUX2,其控制信號是從核心仲裁器得到的,它的作用是從兩組總線信號中選擇一組送給Layer1中相應(yīng)的Slave。而StoMMUX1則是接收核心仲裁器輸出的片選信號,從Layer1的8組總線響應(yīng)信號(Hready、Hresp、Hrdata)選擇一組送給核心仲裁器、Layer1的StoMMUX2和Layer2的StoMMUX2。由StoMMUX2輸出一組總線響應(yīng)信號給Layer1的所有的Master。核心仲裁器核心仲裁器的主要作用是:從兩

10、層的譯碼器輸出的片選信號出發(fā),得到初始狀態(tài);再由Slave的響應(yīng)信號以及傳輸狀態(tài)來決定何時進行狀態(tài)的切換;同時,根據(jù)自己所處的狀態(tài),輸出相應(yīng)信號給相關(guān)的MUX作為控制信號,輸出Hmaster、BusHgrant信號給每層的Master,以及輸出相應(yīng)的Slave響應(yīng)信號給兩層的預(yù)仲裁器。由于存在不同層的Master同時訪問同一層的Slave的情況,核心仲裁器也要考慮總線切換算法。又因為在核心仲裁器里至多是兩個Master搶占總線,故可以采用簡單的循環(huán)優(yōu)先級算法。核心仲裁器的主要部分是一個狀態(tài)機,它由七個狀態(tài)組成:IDLE:系統(tǒng)復(fù)位后進入此狀態(tài),完成部分數(shù)據(jù)的初始賦值;M1S1M2S2:Layer

11、1的Master和Layer1的Slave通信,Layer2的Master和Layer2的Slave通信,即兩層總線并行運行;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和Layer

12、1的Slave通信,Layer1的Master在等待和Layer1的Slave的通信;M2S2M1S2:Layer2的Master和Layer2的Slave通信,Layer1的Master在等待和Layer2的Slave的通信。這七個狀態(tài)之間的切換是由兩層譯碼器給出的片選信號、當(dāng)前占據(jù)總線的Master發(fā)出的控制信號以及與此Master通信的Slave的響應(yīng)信號共同決定的。當(dāng)涉及到ARMMaster的狀態(tài)切換,需考慮三級流水線特性,給予適當(dāng)?shù)牡却芷?。另外,在核心仲裁器里還有一級輸入鎖存部分,用于鎖存正在等待的Master發(fā)出的地址和控制信號。設(shè)計結(jié)果以及測試平臺的建立對于以上實現(xiàn),采用Ver

13、ilog語言在RTL級進行描述,使用Synopsys的VCS工具進行功能仿真。為了驗證以上設(shè)計的正確性,針對圖1所示的架構(gòu),把單層AMBA改為雙層的AMBA,并把LCDCMaster和LCDCSlave移至第二層。同時在第二層增加了一個簡單的MCSlave,并在其外面掛了SRAM、SDRAM的存儲器模型,其中的SDRAM用于LCDCMaster顯存數(shù)據(jù)的存放,其他的結(jié)構(gòu)保持不變(如圖3)。同時,還準備了一套基于ARM匯編語言的測試程序進行系統(tǒng)的配置。在這個測試程序運行以后,共有三個Master:ARMMaster、DMAMaster和LCDCMaster會不斷訪問總線。結(jié)果表明設(shè)計是正確的:A

14、RMMaster可以對Layer2的Slave進行配置;在第二層的LCDCMaster從同層的MCSlave讀數(shù)據(jù)的同時,第一層的Master正在訪問同層的Slave;Layer1的其他Master也能夠申請到Layer2的總線以訪問Layer2的外存。另外,為了考察LCD控制器對總線的占用率,在AHB上掛了一個HmasterMonitor的子模塊,用于統(tǒng)計各個Master占據(jù)當(dāng)前總線的時鐘周期數(shù)。兩種總線方式的比較從兩個方面比較單層AMBA總線與雙層AMBA總線的設(shè)計。首先,從降低LCD控制器總線占用率方面看。由表1可以看出,在使用單層AMBA總線的情況下,LCD控制器占用的總線帶寬都比較大

15、:對于典型的320240、16bpp的TFT彩屏,LCD控制器占用了16.3%的總線帶寬。使用雙層AMBA總線時,除了ARMMaster對兩個Slave進行配置要占總線周期以外,LCD控制器將只會占用Layer2的帶寬。其次,從綜合的結(jié)果看,雙層AMBA占用的面積要大一些。在包括APB模塊的情況下,單層AMBA綜合得到的面積為17000門,而雙層AMBA的面積為18500門。兩者都支持16個Master和16個Slave。采用TSMC0.25工藝標準單元庫,使用Synopsys的DesignCompiler工具進行門級網(wǎng)表的綜合。對于雙層AMBA總線的實際的應(yīng)用,可以把Layer1的MCSla

16、ve外接非易失性存儲器,而Layer2的MCSlave外接易失性存儲器。這樣,可以把指令區(qū)置于Layer1,而數(shù)據(jù)區(qū)置于Layer2。于是,ARMMaster的取指操作就可以在Layer1完成,而LCD控制器對顯存數(shù)據(jù)的讀取則在Layer2完成。而這兩者恰恰是占總線帶寬很大的操作,因而很大程度上減少了各個Master因為總線搶占而等待的時間,提高了總線帶寬。結(jié)語ARM7TDMI在SoC芯片的設(shè)計中得到了極大的應(yīng)用,但由于其自身不帶Cache,使之需要頻繁訪問外存。如果此時片上集成了其他需要很大數(shù)據(jù)帶寬的模塊,就會使系統(tǒng)的性能大幅下降。而雙層AMBA總線在占用面積略為增加的條件下,能極大地提高總線帶寬,并且提供了更為靈活的系統(tǒng)架構(gòu)。這對于基于ARM7TDMI的SoC芯片以及其他類似架構(gòu)的SoC芯片來說,有著很重要的意義和實用價值。參考文獻1Advanc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論