SOPC設(shè)計(jì)中的兩種片上總線分析與比較
SoC(Systemon Chip,片上系統(tǒng))以其能提高產(chǎn)品性能、縮小產(chǎn)品體積等優(yōu)點(diǎn),逐漸成為嵌入式系統(tǒng)發(fā)展的主流趨勢(shì)。SOPC(System On a Programmable Chip,可編程片上系統(tǒng))利用可編程邏輯器件來實(shí)現(xiàn)SoC,具有設(shè)計(jì)方式靈活,可裁減、可擴(kuò)充、可升級(jí),并具備軟硬件在系統(tǒng)可配置的性能。將處理器IP(Intellectual Property,知識(shí)產(chǎn)權(quán))內(nèi)核嵌入到可編程邏輯器件是SOPC設(shè)計(jì)的前提條件。
在Altera的FPGA器件上嵌入處理器等IP核可實(shí)現(xiàn)SOPC,設(shè)計(jì)時(shí)可使用的RISC處理器核有3種:ARM的工業(yè)標(biāo)準(zhǔn)處理器硬核ARM922T、Altera的16位Nios和32位Nios II處理器軟核,而片上總線可采用AMBA和Avalon兩種總線。在嵌入了ARM922T的Excalibur系列FPGA上,使用了AMBA總線的高性能總線AHB(Advanced High-performance Bus);而在可嵌入Nios的FPGA上則使用Avalon總線。這兩種總線也是目前SoC設(shè)計(jì)使用較多的片上總線標(biāo)準(zhǔn)。
1 片上總線與傳統(tǒng)總線體系的比較
片上總線是實(shí)現(xiàn)SoC中IP核連接最常見的技術(shù)手段,它以總線方式實(shí)現(xiàn)IP核之間的數(shù)據(jù)通信。片上總線規(guī)范一般需要定義各個(gè)模塊之間初始化、仲裁、請(qǐng)求傳輸、響應(yīng)、發(fā)送接收等過程中的驅(qū)動(dòng)、時(shí)序、策略等關(guān)系。
傳統(tǒng)總線協(xié)議中,仲裁器控制一至多個(gè)總線主設(shè)備與從設(shè)備的通信。總線主設(shè)備首先通過仲裁器來申請(qǐng)總線控制權(quán),然后仲裁器才允許單一主設(shè)備訪問總線。如果多個(gè)主設(shè)備試圖同時(shí)訪問總線,仲裁器將根據(jù)既定的仲裁策略,將總線資源分配給其中一個(gè)主設(shè)備。例如,在優(yōu)先級(jí)仲裁機(jī)制中,優(yōu)先級(jí)高的主設(shè)備將首先得到總線控制權(quán)。
控制總線的主設(shè)備會(huì)占用總線,并與相應(yīng)從設(shè)備通信。圖1說明了優(yōu)先級(jí)仲裁總線體系的結(jié)構(gòu),該體系在傳統(tǒng)微處理器系統(tǒng)中工作良好。由于主、從設(shè)備是位于印制板或底板上的獨(dú)立部件,總線需要驅(qū)動(dòng)底板上的信號(hào)和連接器。而且,鑒于有限的印制板資源和可用I/O引腳數(shù)目,所有系統(tǒng)部件還必須共用總線。
片上總線無需驅(qū)動(dòng)底板上的信號(hào)和連接器,使用更簡(jiǎn)單且速度更快;同時(shí),為了滿足帶寬要求,片上總線普遍采用并發(fā)多主設(shè)備總線體系。這種總線體系通過消除傳統(tǒng)總線系統(tǒng)中一次僅有一個(gè)主設(shè)備可以訪問系統(tǒng)總線的帶寬瓶頸,來增加系統(tǒng)帶寬。在此體系中,總線主設(shè)備競(jìng)爭(zhēng)的是獨(dú)立的從設(shè)備,而非總線本身。
2 AMBA總線及其應(yīng)用
2.1 AMBA總線
AMBA(Advanced Microcontroller Bus Architecture)總線用于高性能嵌入式系統(tǒng),獨(dú)立于處理器和制造工藝技術(shù),增強(qiáng)了各種應(yīng)用中外設(shè)和系統(tǒng)宏單元的可重用性。AMBA是多總線體系,目前的AMBA總線規(guī)范2.0版定義了3種可以組合使用的總線體系:APB(Advanced Peripheral Bus),ASB(Advanced System Bus),AHB。AHB是現(xiàn)階段AMBA的主要形式。
典型的AMBA總線結(jié)構(gòu)如圖2所示。其中的高性能系統(tǒng)總線(AHB或ASB)主要用以滿足CPU和存儲(chǔ)器之間的帶寬要求。CPU、片內(nèi)存儲(chǔ)器和DMA等高速設(shè)備連接在系統(tǒng)總線上,而系統(tǒng)的大部分低速外設(shè)則連接在低帶寬總線APB上。系統(tǒng)總線和外設(shè)總線之間用一個(gè)橋接器(AHB/ASB-APB-Bridge)連接。
AHB適用于高性能、高時(shí)鐘頻率的系統(tǒng)。作為高性能系統(tǒng)的骨干總線,AHB主要用于高性能、大吞吐量設(shè)備之間的連接,如CPU、片上存儲(chǔ)器、DMA設(shè)備和DSP或其它協(xié)處理器等,有支持并發(fā)多主設(shè)備、支持多種數(shù)據(jù)傳輸方式等主要特性。
在不必使用AHB的高速特性時(shí),可選擇ASB作為系統(tǒng)總線。ASB也支持CPU、片上存儲(chǔ)器和片外處理器接口與低功耗外部宏單元之間的連接。ASB的主要特性與AHB類似,主要不同點(diǎn)是采用同一條雙向數(shù)據(jù)總線來讀、寫數(shù)
據(jù)。
APB非常簡(jiǎn)單,適用于低速、低功耗的外設(shè),只有一個(gè)總線主設(shè)備控制器,最大支持32位數(shù)據(jù)總線寬度,讀、寫數(shù)據(jù)總線分開。
2.2 AMBA在Excalibur器件中的應(yīng)用
嵌入了ARM922T的Excalibur器件使用AHB1和AHB2兩種總線提供有效處理數(shù)據(jù)給不同片上外設(shè):AHB2上的低速外設(shè)和AHB1上的高速外設(shè)。其優(yōu)點(diǎn)是可以分開高、低速外設(shè),最大發(fā)揮較快外設(shè)的性能,從而提高整個(gè)系統(tǒng)的性能。圖3給出了基于ARM922T的Excalibur器件總線體系。
該總線體系通過總線橋允許ARM922T訪問片上外設(shè)和PLD。PLD中的外設(shè)通過PLD到模塊的橋訪問AHB2外設(shè)。在AHB1和AHB2總線上都有片上存儲(chǔ)器單元(SRAM、雙口SRAM和SDRAM)。為避免數(shù)據(jù)出錯(cuò),總線內(nèi)部仲裁在每個(gè)存儲(chǔ)器單元中完成。
3 Avalon總線及其應(yīng)用
3.1 Avalon總線
Avalon總線是SOPC設(shè)計(jì)中連接片上處理器和其它IP模塊的一種簡(jiǎn)單總線協(xié)議,規(guī)定了主、從構(gòu)件之間的端口連接以及通信時(shí)序關(guān)系。使用Avalon總線,能優(yōu)化處理器和外設(shè)間的數(shù)據(jù)流,提高系統(tǒng)的吞吐量,并且允許根據(jù)應(yīng)用特性裁剪總線體系,從而獲得最佳的系統(tǒng)性能。Avalon總線有支持并發(fā)多主設(shè)備、自動(dòng)生成仲裁機(jī)制、可配置等主要特性。
在基于Nios或者Nios II軟核的系統(tǒng)中,Avalon總線通過可編程邏輯器件內(nèi)部的互連邏輯來連接處理器和其他外設(shè)。當(dāng)某外設(shè)接收多個(gè)資源的數(shù)據(jù)時(shí),多路復(fù)用器選擇正確數(shù)據(jù)。主設(shè)備無需訪問某個(gè)特定從設(shè)備時(shí),它們之間的互連邏輯將被取消,從而節(jié)省硬件資源。
主-從設(shè)備對(duì)之間有專門接口,因此多個(gè)主設(shè)備可以同時(shí)啟動(dòng),并發(fā)傳輸數(shù)據(jù)給從設(shè)備。只有一個(gè)主設(shè)備訪問某從設(shè)備時(shí),該主設(shè)備可以立即訪問目標(biāo)從設(shè)備。有兩個(gè)主設(shè)備的并發(fā)多主設(shè)備的總線體系能提供高達(dá)兩倍的吞吐量;有3個(gè)主設(shè)備時(shí),則能提供高達(dá)3倍的吞吐量。
兩個(gè)主設(shè)備競(jìng)爭(zhēng)同一個(gè)從設(shè)備時(shí),需要執(zhí)行從設(shè)備仲裁。對(duì)于基于Nios或者Nios II的系統(tǒng),系統(tǒng)生成軟件SOPC Builder完全在Avalon總線模塊內(nèi)執(zhí)行從設(shè)備仲裁??杀欢鄠€(gè)主設(shè)備訪問的從設(shè)備都有一個(gè)仲裁器,在SOPC Builder中也可以設(shè)置仲裁優(yōu)先級(jí)。
圖4說明了Avalon總線是如何實(shí)現(xiàn)從設(shè)備仲裁的。其中,系統(tǒng)主設(shè)備CPU和DMA控制器共享同一個(gè)從設(shè)備(數(shù)據(jù)存儲(chǔ)器外設(shè)),數(shù)據(jù)存儲(chǔ)器完成仲裁。如果所有主設(shè)備同時(shí)開始與從設(shè)備的數(shù)據(jù)傳輸,仲裁器會(huì)指定獲得從設(shè)備訪問權(quán)的主設(shè)備。CPU使用和DMA控制器之間的互連來建立DMA傳輸。
3.2 Avalon在SOPC設(shè)計(jì)中的應(yīng)用
在FPGA系列器件上基于Nios或者Nios II進(jìn)行SOPC設(shè)計(jì)時(shí),Avalon總線規(guī)范由系統(tǒng)生成工具SOPC Builder自動(dòng)生成。Avalon總線模塊作為系統(tǒng)模塊的主干,使系統(tǒng)外設(shè)間實(shí)現(xiàn)通信,很少作為分離單元使用。系統(tǒng)要與片外存儲(chǔ)器通信時(shí),必須在Avalon總線和連接外部存儲(chǔ)器的總線之間加入Avalon三態(tài)橋,圖5給出了一個(gè)Avalon總線模塊框圖的實(shí)例。此時(shí),需要選擇總線輸入信號(hào)是否需要寄存器寄存。寄存器會(huì)提高片外時(shí)鐘寄存邏輯的最大頻率,同時(shí)也增加延遲。
4 兩種片上總線比較
對(duì)兩種總線的主要特性進(jìn)行比較,結(jié)果如表1所示。
AMBA和Avalon的不同點(diǎn),決定了其應(yīng)用范圍的不同。AMBA總線規(guī)范擁有眾多第三方支持,已成為廣泛支持的現(xiàn)有互連標(biāo)準(zhǔn)之一,主要用于基于ARM處理器核的SoC設(shè)計(jì)中。Avalon則主要用于在Altera系列FPGA上實(shí)現(xiàn)SOPC,其配置的簡(jiǎn)單性、可由EDA工具快速生成等優(yōu)點(diǎn),再加上受Altera極力推薦,其影響范圍也不可忽視,Nios II處理器的高性能也進(jìn)一步擴(kuò)充了Avalon總線的應(yīng)用范圍。AMBA和Avalon這兩種總線都具有支持多主設(shè)備控制器、支持多種傳輸方式等特點(diǎn),從而能滿足片上總線的要求。
5 結(jié)束語
系統(tǒng)中片上總線的選擇需要考慮總線的性能、應(yīng)用范圍、可用IP核資源等,總線的具體應(yīng)用形式也各有其特性。文中將片上總線與傳統(tǒng)總線進(jìn)行比較,介紹了并發(fā)多主設(shè)備總線體系;同時(shí)通過對(duì)AMBA和Avalon兩種片上總線的詳細(xì)分析、比較,針對(duì)它們的不同特性及具體應(yīng)用形式闡述了各自的應(yīng)用范圍,從而方便設(shè)計(jì)師對(duì)這兩種片上總線的充分理解,為SOPC及其他SoC設(shè)計(jì)中的片上總線選擇和應(yīng)用提供了參考。除了AMBA和Avalon之外,SoC設(shè)計(jì)中還可以選用IBM的CoreConnect、Silicore的Wishbone等總線,它們也各有其特點(diǎn)和適用領(lǐng)域。
評(píng)論