close
嵌入式系統是當今計算機工業發展的一個熱點。隨著超大規模積體電路的迅速發展,半導體工業進入深亞微米時代,器件特徵尺寸越來越小,晶片規模越來越大,可以在單晶片上集成上百萬到數億只晶體管。如此密集的集成度使我們現下能夠在一小塊晶片上把以前由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進行討論,對三者特性進行分析和比較。
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位數據匯流排;
讀數據匯流排與寫數據匯流排分開。
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核類型(軟核、固核或硬核)、綜合工具、佈局和布線技術等。
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自動生成仲裁機製;
多個主設備可同時操作使用一條匯流排;
可變的匯流排寬度,即可自動調整匯流排寬度,以適應尺寸不匹配的數據;
提供了基於圖形界面的匯流排配置向導,簡單易用。
三種片上匯流排比較
透過以上對三種匯流排特性的介紹,可以對三種匯流排作個比較,如表1所列。
基於三種匯流排的特性,可以得出其應用的綜合比較,如表2所列。
三種匯流排各有特點,決定了其應用範圍的不同。AMBA 匯流排規範擁有眾多第三方支援,被ARM公司90%以上的合作伙伴採用,已成為廣泛支援的現有互連標準之一。Wishbone異軍突起,其簡單性和靈活性受到廣大SoC設計者的青睞。由於它是完全免費的,並有豐富的免費IP核資源,因此它有可能成為未來的片上系統匯流排互連標準。Avalon主要用於Altera公司系列PLD中,最大的優點在於其配置的簡單性,可由EDA工具快速生成,受PLD廠商巨頭Altera極力推薦,其影響範圍也不可忽視。
全站熱搜
留言列表