三種常用SoC片上總線的分析與比較
SoC相比板上系統(tǒng),具有許多優(yōu)點(diǎn):
?、?nbsp;充分利用IP技術(shù),減少產(chǎn)品設(shè)計(jì)復(fù)雜性和開發(fā)成本,縮短產(chǎn)品開發(fā)的時(shí)間;
?、?nbsp;單芯片集成電路可以有效地降低系統(tǒng)功耗;
?、?nbsp;減少芯片對外引腳數(shù),簡化系統(tǒng)加工的復(fù)雜性;
?、?nbsp;減少外圍驅(qū)動(dòng)接口單元及電路板之間的信號傳遞,加快了數(shù)據(jù)傳輸和處理的速度;
?、?nbsp;內(nèi)嵌的線路可以減少甚至避免電路板信號傳送時(shí)所造成的系統(tǒng)信號串?dāng)_。
SoC的設(shè)計(jì)過程中,最具特色的是IP復(fù)用技術(shù)。即選擇所需功能的IP(給出IP定義)核,集成到一個(gè)芯片中用。由于IP核的設(shè)計(jì)千差萬別,IP核的連接就成為構(gòu)造SoC的關(guān)鍵。片上總線(On-Chip Bus,OCB)是實(shí)現(xiàn)SoC中IP核連接最常見的技術(shù)手段,它以總線方式實(shí)現(xiàn)IP核之間數(shù)據(jù)通信。與板上總線不同,片上總線不用驅(qū)動(dòng)底板上的信號和連接器,使用更簡單,速度更快。一個(gè)片上總線規(guī)范一般需要定義各個(gè)模塊之間初始化、仲裁、請求傳輸、響應(yīng)、發(fā)送接收等過程中驅(qū)動(dòng)、時(shí)序、策略等關(guān)系。
由于片上總線與板上總線應(yīng)用范圍不同,存在著較大的差異,其主要特點(diǎn)如下:
?、?nbsp;片上總線要盡可能簡單。首先結(jié)構(gòu)要簡單,這樣可以占用較少的邏輯單元;其次時(shí)序要簡單,以利于提高總線的速度;第三接口要簡單,如此可減少與IP核連接的復(fù)雜度。
?、?nbsp;片上總線有較大的靈活性。由于片上系統(tǒng)應(yīng)用廣泛,不同的應(yīng)用對總線的要求各異,因此片上總線具有較大的靈活性。其一,多數(shù)片上總線的數(shù)據(jù)和地址寬度都可變,如AMBA AHB支持32位~128位數(shù)據(jù)總線寬度;其二,部分片上總線的互連結(jié)構(gòu)可變,如Wishbone總線支持點(diǎn)到點(diǎn)、數(shù)據(jù)流、共享總線和交叉開關(guān)四種互連方式;其三,部分片上總線的仲裁機(jī)制靈活可變,如Wishbone總線的仲裁機(jī)制可以完全由用戶定制。
?、?nbsp;片上總線要盡可能降低功耗。因此,在實(shí)際應(yīng)用時(shí),總線上各種信號盡量保持不變,并且多采用單向信號線,降低了功耗,同時(shí)也簡化了時(shí)序。上述三種片上總線輸入數(shù)據(jù)線和輸出數(shù)據(jù)線都是分開的,且都沒有信號復(fù)用現(xiàn)象。
片上總線有兩種實(shí)現(xiàn)方案,一是選用國際上公開通用的總線結(jié)構(gòu);二是根據(jù)特定領(lǐng)域自主開發(fā)片上總線。本文就目前SoC上使用較多的三種片上總線標(biāo)準(zhǔn)——ARM的AMBA、Silicore的Wishbone和Altera的Avalon進(jìn)行討論,對三者特性進(jìn)行分析和比較。
AMBA總線
AMBA(Advanced Microcontroller Bus Architecture)總線規(guī)范是ARM公司設(shè)計(jì)的一種用于高性能嵌入式系統(tǒng)的總線標(biāo)準(zhǔn)。它獨(dú)立于處理器和制造工藝技術(shù),增強(qiáng)了各種應(yīng)用中的外設(shè)和系統(tǒng)宏單元的可重用性。AMBA總線規(guī)范是一個(gè)開放標(biāo)準(zhǔn),可免費(fèi)從ARM獲得。目前,AMBA 擁有眾多第三方支持,被ARM公司90%以上的合作伙伴采用,在基于ARM處理器內(nèi)核的SoC設(shè)計(jì)中,已經(jīng)成為廣泛支持的現(xiàn)有互聯(lián)標(biāo)準(zhǔn)之一。AMBA總線規(guī)范2.0于1999年發(fā)布,該規(guī)范引入的先進(jìn)高性能總線(AHB)是現(xiàn)階段AMBA實(shí)現(xiàn)的主要形式。AHB的關(guān)鍵是對接口和互連均進(jìn)行定義,目的是在任何工藝條件下實(shí)現(xiàn)接口和互連的最大帶寬。AHB接口已與互連功能分離,不再僅僅是一種總線,而是一種帶有接口模塊的互連體系。
AMBA總線規(guī)范主要設(shè)計(jì)目的如下:① 滿足具有一個(gè)或多個(gè)CPU或DSP的嵌入式系統(tǒng)產(chǎn)品的快速開發(fā)要求;② 增加設(shè)計(jì)技術(shù)上的獨(dú)立性,確??芍赜玫亩喾NIP核可以成功地移植到不同的系統(tǒng)中,適合全定制、標(biāo)準(zhǔn)單元和門陣列等技術(shù);③ 促進(jìn)系統(tǒng)模塊化設(shè)計(jì),以增加處理器的獨(dú)立性;④ 減少對底層硅的需求,以使片外的操作和測試通信更加有效。
AMBA總線是一個(gè)多總線系統(tǒng)。規(guī)范定義了三種可以組合使用的不同類型的總線:AHB(Advanced High-performance Bus)、ASB(Advanced System Bus)和APB(Advanced Peripheral Bus)。典型的基于AMBA的SoC核心部分如圖1所示。其中高性能系統(tǒng)總線(AHB或ASB)主要用以滿足CPU和存儲器之間的帶寬要求。CPU、片內(nèi)存儲器和DMA設(shè)備等高速設(shè)備連接在其上,而系統(tǒng)的大部分低速外部設(shè)備則連接在低帶寬總線APB上。系統(tǒng)總線和外設(shè)總線之間用一個(gè)橋接器(AHB/ASB-APB-Bridge)進(jìn)行連接。
AMBA的AHB適用于高性能和高時(shí)鐘頻率的系統(tǒng)模塊。它作為高性能系統(tǒng)的骨干總線,主要用于連接高性能和高吞吐量設(shè)備之間的連接,如CPU、片上存儲器、DMA設(shè)備和DSP或其它協(xié)處理器等。其主要特性如下:
- 支持多個(gè)總線主設(shè)備控制器;
- 支持猝發(fā)、分裂、流水等數(shù)據(jù)傳輸方式;
- 單周期總線主設(shè)備控制權(quán)轉(zhuǎn)換;
- 32~128位數(shù)據(jù)總線寬度;
- 具有訪問保護(hù)機(jī)制,以區(qū)分特權(quán)模式和非特權(quán)模式訪問,指令和數(shù)據(jù)讀取等;
- 數(shù)據(jù)猝發(fā)傳輸最大為16段;
- 地址空間32位;
- 支持字節(jié)、半字和字傳輸。
AMBA的ASB適用于高性能的系統(tǒng)模塊。在不必要適用AHB的高速特性的場合,可選擇ASB作為系統(tǒng)總線。它同樣支持處理器、片上存儲器和片外處理器接口與低功耗外部宏單元之間的連接。其主要特性與AHB類似,主要不同點(diǎn)是它讀數(shù)據(jù)和寫數(shù)據(jù)采用同一條雙向數(shù)據(jù)總線。
AMBA的APB適用于低功耗的外部設(shè)備,它已經(jīng)過優(yōu)化,以減少功耗和對外設(shè)接口的復(fù)雜度;它可連接在兩種系統(tǒng)總線上。其主要特性如下:
- 低速、低功耗外部總線;
- 單個(gè)總線主設(shè)備控制器;
- 非常簡單,加上CLOCK和RESET,總共只有4個(gè)控制信號;
- 32位地址空間;
- 最大32位數(shù)據(jù)總線;
- 讀數(shù)據(jù)總線與寫數(shù)據(jù)總線分開。
Wishbone總線
Wishbone最先是由Silicore公司提出的,現(xiàn)在已被移交給OpenCores組織維護(hù)。由于其開放性,現(xiàn)在已有不少的用戶
Wishbone總線規(guī)范是一種片上系統(tǒng)IP核互連體系結(jié)構(gòu)。它定義了一種IP核之間公共的邏輯接口,減輕了系統(tǒng)組件集成的難度,提高了系統(tǒng)組件的可重用性、可靠性和可移植性,加快了產(chǎn)品市場化的速度。Wishbone總線規(guī)范可用于軟核、固核和硬核,對開發(fā)工具和目標(biāo)硬件沒有特殊要求,并且?guī)缀跫嫒菀延兴械木C合工具,可以用多種硬件描述語言來實(shí)現(xiàn)。
Wishbone總線規(guī)范的目的是作為一種IP核之間的通用接口,因此它定義了一套標(biāo)準(zhǔn)的信號和總線周期,以連接不同的模塊,而不是試圖去規(guī)范IP核的功能和接口。
Wishbone總線結(jié)構(gòu)十分簡單,它僅僅定義了一條高速總線。在一個(gè)復(fù)雜的系統(tǒng)中,可以采用兩條Wishbone總線的多級總線結(jié)構(gòu):其一用于高性能系統(tǒng)部分,其二用于低速外設(shè)部分,兩者之間需要一個(gè)接口。這個(gè)接口雖然占用一些電路資源,但這比設(shè)計(jì)并連接兩種不同的總線要簡單多了。用戶可以按需要自定義Wishbone標(biāo)準(zhǔn),如字節(jié)對齊方式和標(biāo)志位(TAG)的含義等等,還可以加上一些其它的特性。Wishbone的一種互連結(jié)構(gòu)如圖2所示。
靈活性是Wishbone總線的另一個(gè)優(yōu)點(diǎn)。由于IP核種類多樣,其間并沒有一種統(tǒng)一的間接方式。為滿足不同系統(tǒng)的需要,Wishbone總線提供了四種不同的IP核互連方式:
- 點(diǎn)到點(diǎn)(point-to-point),用于兩IP核直接互連;
- 數(shù)據(jù)流(data flow),用于多個(gè)串行IP核之間的數(shù)據(jù)并發(fā)傳輸;
- 共享總線(shared bus),多個(gè)IP核共享一條總線;
- 交叉開關(guān)(crossbar switch)(圖2),同時(shí)連接多個(gè)主從部件,提高系統(tǒng)吞吐量。
還有一種片外連接方式,可以連接到上面任何一種互連網(wǎng)絡(luò)中。比如說,兩個(gè)有Wishbone接口的不同芯片之間就可以用點(diǎn)到點(diǎn)方式進(jìn)行連接。
Wishbone總線主要特征如下:
- 所有應(yīng)用適用于同一種總線體系結(jié)構(gòu);
- 是一種簡單、緊湊的邏輯IP核硬件接口,只需很少的邏輯單元即可實(shí)現(xiàn);
- 時(shí)序非常簡單;
- 主/從結(jié)構(gòu)的總線,支持多個(gè)總線主設(shè)備;
- 8~64位數(shù)據(jù)總線(可擴(kuò)充);
- 單周期讀寫;
- 支持所有常用的總線數(shù)據(jù)傳輸協(xié)議,如單字節(jié)讀寫周期、塊傳輸周期、控制操作及其它的總線事務(wù)等;
- 支持多種IP核互連網(wǎng)絡(luò),如單向總線、雙向總線、基于多路互用的互連網(wǎng)絡(luò)、基于三態(tài)的互連網(wǎng)絡(luò)等;
- 支持總線周期的正常結(jié)束、重試結(jié)束和錯(cuò)誤結(jié)束;
- 使用用戶自定義標(biāo)記(TAG),確定數(shù)據(jù)傳輸類型、中斷向量等;
- 仲裁器機(jī)制由用戶自定義;
- 獨(dú)立于硬件技術(shù)(FPGA、ASIC、bipolar、MOS等)、IP核類型(軟核、固核或硬核)、綜合工具、布局和布線技術(shù)等。
Avalon總線
Avalon總線是Altera公司設(shè)計(jì)的用于SOPC(System On Programmable Chip,可編程片上系統(tǒng))中,連接片上處理器和其它IP模塊的一種簡單的總線協(xié)議,規(guī)定了主部件和從部件之間進(jìn)行連接的端口和通信的時(shí)序。
Avalon總線的主要設(shè)計(jì)目的如下:① 簡單性,提供一種非常易于理解的協(xié)議;② 優(yōu)化總線邏輯的資源使用率,將邏輯單元保存在PLD(Programmable Logic Device,可編程邏輯器件)中;③ 同步操作,將其它的邏輯單元很好地集成到同一PLD中,同時(shí)避免復(fù)雜的時(shí)序。
傳統(tǒng)的總線結(jié)構(gòu)中,一個(gè)中心仲裁器控制多個(gè)主設(shè)備和從設(shè)備之間的通信。這種結(jié)構(gòu)會產(chǎn)生一個(gè)瓶頸,因?yàn)槿魏螘r(shí)候只有一個(gè)主設(shè)備能訪問系統(tǒng)總線。Avalon總線的開關(guān)構(gòu)造使用一種稱之為從設(shè)備仲裁(Slave-side arbitration)的技術(shù),允許多個(gè)主設(shè)備控制器真正地同步操作。當(dāng)有多個(gè)主設(shè)備訪問同一個(gè)從設(shè)備時(shí),從設(shè)備仲裁器將決定哪個(gè)主設(shè)備獲得訪問權(quán)。圖3是一個(gè)多主設(shè)備同時(shí)訪問存儲器的例子。在此系統(tǒng)中,高帶寬外設(shè),如100M以太網(wǎng)卡,可以不需暫停CPU而直接訪問存儲器。通過允許存儲訪問獨(dú)立于CPU。Avalon開關(guān)結(jié)構(gòu)優(yōu)化了數(shù)據(jù)流,從而提高了系統(tǒng)的吞吐量。
Avalon總線主要特性如下:
- 32位尋址空間;
- 支持字節(jié)、半字和字傳輸;
- 同步接口;
- 獨(dú)立的地址線、數(shù)據(jù)線和控制線;
- 設(shè)備內(nèi)嵌譯碼部件;
- 支持多個(gè)總線主設(shè)備,Avalon自動(dòng)生成仲裁機(jī)制;
- 多個(gè)主設(shè)備可同時(shí)操作使用一條總線;
- 可變的總線寬度,即可自動(dòng)調(diào)整總線寬度,以適應(yīng)尺寸不匹配的數(shù)據(jù);
- 提供了基于圖形界面的總線配置向?qū)?,簡單易用?
三種片上總線比較
通過以上對三種總線特性的介紹,可以對三種總線作個(gè)比較,如表1所列。
基于三種總線的特性,可以得出其應(yīng)用的綜合比較,如表2所列。
三種總線各有特點(diǎn),決定了其應(yīng)用范圍的不同。AMBA 總線規(guī)范擁有眾多第三方支持,被ARM公司90%以上的合作伙伴采用,已成為廣泛支持的現(xiàn)有互連標(biāo)準(zhǔn)之一。Wishbone異軍突起,其簡單性和靈活性受到廣大SoC設(shè)計(jì)者的青睞。由于它是完全免費(fèi)的,并有豐富的免費(fèi)IP核資源,因此它有可能成為未來的片上系統(tǒng)總線互連標(biāo)準(zhǔn)。Avalon主要用于Altera公司系列PLD中,最大的優(yōu)點(diǎn)在于其配置的簡單性,可由EDA工具快速生成,受PLD廠商巨頭Altera極力推薦,其影響范圍也不可忽視。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論