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