片上匯流排Wishbone 學習(一)片上匯流排綜述1 引言
傳統的IC設計方法已無法適應新的SoC設計要求,需要根本的變革,即從以功能設計為基礎的傳統IC設計流程轉變到以功能整合為基礎的SoC設計全新流程。SoC設計以IP的設計複用和功能組裝、整合來完成。SoC設計的重點為系統功能的分析與劃分、軟硬體功能的劃分、IP 的選擇與使用、多層次驗證環境和外界設計諮詢服務等。隨著以IP核複用為基礎的SoC設計技術的發展,如何有效地對眾多IP供應商提供IP核,在實際設計時進行有效互聯的問題日益受到重視。為了使IP核整合更快速、更方便,縮短進入市場的時間,迫切需要一種標準的互聯方案。在這一背景下產生的片上匯流排OCB(on-chip
bus)技術,基於IP 核互聯標準技術的發展,目前已形成較有影響力的三種匯流排標準為:IBM公司的CoreConnect,ARM 公司的AMBA(Advanced MicrocontrollerBusArchitecture)和SilicoreCorp公司的Wishbone。
2 片上匯流排與板上匯流排的差異 ①片上匯流排多採用單向訊號線,而板上匯流排多採用三態訊號。片上三態匯流排無論在功耗、速度、可測性上都存在很大缺陷,而且一旦出現多驅動情況便會損毀晶片(比如若應該輸出"Z"的訊號實際輸出為"1",而另有一個訊號輸出為"0",就形成一個低電阻通路,導致局部電流過大,熱量難以及時釋放,從而增加晶片功耗和大大降低晶片壽命)。由於片上布線資源較為豐富,因此片上匯流排多採用單向訊號線。由於電路板上布線資源較為昂貴,因此板上匯流排多採用三態匯流排,但是由於三態匯流排的功耗問題和速度限制,目前板上匯流排也在向串列和非三態方向發展,如USB
和PCI Express。
②片上匯流排比板上匯流排更加簡單靈活。首先片上匯流排結構要簡單,這樣可以佔用較少的邏輯單元;其次時序要簡單,以利於提高匯流排的速度;第三介面要簡單,如此可減少與IP 核串連的複雜度。片上系統應用廣泛,不同的應用對匯流排的要求各異,因此片上匯流排具有較大的靈活性。其一,多數片上匯流排的資料和地址寬度都可變,其二,部分區上匯流排的互連結構可變,如Wishbone 匯流排支援點到點、資料流、共用匯流排和交叉開關四種互連方式;其三,部分區上匯流排的仲裁機制靈活可變,如Wishbone 匯流排的仲裁機制可以完全由使用者定製。而板上匯流排則較為死板,時序也更加苛刻。
3 CoreConnect匯流排
CoreConnect擁有完備的一整套技術文檔,在技術上可行性較強。IBM 公司的CoreConnect串連匯流排還提供了三種基本類型串連功能塊,即處理器內部匯流排PLB(Processor Local Bus)、片上外圍匯流排OPB(On-ChipPeripheral Bus)和裝置控制匯流排DCR(Device Control Register)。CoreConnect匯流排的邏輯結構1所示,它清楚地定義了所有的系統構成組件以及它們是如何串連的,下面分別介紹PLB
、DCR 和OPB 的主要技術特徵。
3.1 PLB
PLB標準是為匯流排傳輸的主要發出者和接受者之間提供高頻寬、低延遲的串連。其主要特徵為:
● 高效能處理器內部匯流排;
● 交疊的讀和寫功能(最快每周期兩次傳輸);
● 支援分段傳輸;
● 地址流水(減少延遲);
● 讀和寫分開;
● 32~64位元據匯流排;
● 32位地址空間;
● 支援16~64位元組突發傳輸模式;
● 支援位元組使能(非對準和3 位元組傳輸);
● 支援仲裁、R E Q、G N T 和L O C K;
● 延遲和隱藏仲裁(減少延遲);
● 4級仲裁優先權;
● 特殊DMA(Direct Memory Access)模式,如快速的從記憶體到記憶體;
● 地址和資料狀態扼制(Address and data phase throttling);
● 延遲計數器(保證保持延遲到預想的程度)。
3.2 OPB
OPB標準為串連具有不同的匯流排寬度及時序要求的外設和記憶體提供了一條途徑,並盡量減小對PLB 效能的影響。其主要特性如下:
● 片上外圍匯流排;
● 多個主裝置;
● 32位地址空間;
● 讀和寫資料匯流排分開;
● 8~32位元據匯流排;
● 動態匯流排寬度;
● 支援重試模式(如果主裝置要求的從裝置忙,主裝置隔一段時間再次請求);
● 支援突發(burst)傳輸模式;
● 支援D M A;
● 裝置可以是記憶體映射(支援D M A);
● 檢測匯流排逾時功能(在仲裁器中);
● 支援仲裁、R E Q、G N T 和L O C K。
3.3 DCR
裝置控制寄存器匯流排DCR是用來規範CPU通用寄存器裝置,控制寄存器之間傳輸資料。DCR 匯流排在記憶體位址映射中取消了配置寄存器,減少取操作,增加處理器內部匯流排的頻寬。其主要特徵如下:
● 10位地址匯流排;
● 32位元據匯流排;
● 同步和非同步傳輸;
● 分布式結構。
CoreConnect是一套精心設計和構造完整、通用的解決方案,可以應用在類似於工作站這樣的高效能系統的串連,對於簡單的嵌入式應用來說可能有點太複雜,提供的許多特性無法用到,但可以適應於未來更龐大、更複雜的系統串連。
4 AMBA匯流排
先進的微控制器匯流排體繫結構AMBA規範定義了三種匯流排:
(1)AHB(Advanced High-performance Bus):用於串連高效能系統模組。它支援突發資料轉送方式及單個資料轉送方式,所有時序參考同一個時鐘沿;
(2)ASB(Advanced System Bus):用於串連高效能系統模組,它支援突發資料轉送模式;
(3)APB(Advance Peripheral Bus):是一個簡單介面支援低效能的外圍介面。
一個典型的基於AMBA 的微控制器同時整合AHB(或ASB )和APB 介面,2 所示。A S B匯流排是舊版的系統的匯流排,而新版的AHB 匯流排增強了對效能、綜合及時序驗證的支援。APB 匯流排通常用作的局部的第二匯流排,作為AHB 或ASB 上的單個從屬模組。
根據AMBA 的規範,串連AHB/ASP 和APB 的APB 橋的唯一功能是提供更簡單的介面。任何由低效能外圍裝置產生的延遲會由串連高效能(AHB/ASP)匯流排的橋反映出來。橋本身彷彿是一個簡單APB匯流排的主裝置,它訪問與之相連的從裝置,並且通過高效能匯流排上控制訊號的子集控制它們。下面給出AHB、ASP 和APB 的主要特徵。
4.1 AHB
AHB是先進的系統匯流排。它主要的目的就是串連高效能、高吞吐率的裝置,例如CPU、DMA 和DSP。它的主要特性:
● 高效能新一代匯流排;
● 多控制器;
● 分段傳輸;
● 單周期匯流排控制權移交;
● 沒有三態實現方式;
● 32~128位匯流排寬;
● 包含一種訪問保護機制,用來區別特權訪問和無特權訪問模式,或指令和資料提取等;
● 突發傳輸模式最大為16節;
● 訪問空間限制在32 位;
● 提供為較慢裝置使用而扼制資料流的機制;
● 支援仲裁、R E Q、G N T 和L O C K;
● 支援位元組、半字和字傳輸。
AHB 匯流排和ASB 匯流排有下列不同的特點:
● AHB 匯流排支援分開處理。有很長響應延遲的從機在準備傳輸的資料時讓出匯流排從事其它傳送操作;
● 使用單一時鐘沿控制所有操作,有利於綜合和設計驗證(通過使用靜態時序分析和其他相似工具);
● 使用中心多路器匯流排方案而不是三態驅動的雙向匯流排;
● 支援更寬的64位或128位元據匯流排配置。
4.2 ASP
ASP是通用系統匯流排,是一種微處理器和系統外設的高效能互連,主要特徵如下:
● 多控制器;
● 突發資料轉送方式;
● 流水線傳送;
● 32-128位匯流排寬度;
● 包含一種訪問保護機制,用來區別特權訪問和無特權訪問模式,或指令和資料提取等;
● 雙向資料匯流排;
● 提供為較慢裝置使用而扼制資料流的機制;
● 仲裁支援REQ 、GNT 和LOCK。
4.3 APB
APB是外圍互聯匯流排,重點是最小功耗和便於使用,主要特徵如下:
● 低效能、低功率外圍匯流排;
● 單控制器;
● 非常簡單,只有4 個控制訊號(加上時鐘和複位);
● 32位地址空間;
● 多達32位元據匯流排;
● 分開讀和寫資料匯流排。
AMBA 是一種基本的SoC 匯流排,它分成三種匯流排。根據需要,系統設計者必須選擇對接三種匯流排中的哪一種。一個高效能裝置可能選擇AHB 或ASP 匯流排,這將給IP 核整合者帶來困難,因為兩種匯流排都試圖訪問同一類型的裝置。還沒有明確的辦法將裝置與AHB 和ASP 匯流排整合。APB 橋似乎不但不會提供任何好處,而且會限制串連在上面的高效能匯流排。所有三種匯流排都包含一個地址狀態和一個或多個資料狀態。
5 Wishbone匯流排
Wishbone匯流排是Silicore公司推出的片上匯流排協議。它的結構極其簡單、靈活,又完全公開、完全免費,獲得眾多支援。圖3 給出了Wishbone匯流排的邏輯結構:
Wishbone 匯流排的主要特徵概括如下:
● 所有應用使用一個匯流排體繫結構;
● 簡單、緊湊的體繫結構;
● 支援多控制器;
● 64位地址空間;
● 8~64 位元資料匯流排(可擴充);
● 單周期讀和寫;
● RMW(R E A D - M O D I F Y - W R I T E )周期;
● 事件周期;
● 支援重試;
● 支援記憶體映射,FIFO(FISRT IN FIRST O U T )和十字互串連口;
● 提供為較慢裝置使用而扼制資料流的機制;
● 使用者定義標誌為,確定資料轉送類型;
● 由終端使用者定義仲裁方式。
Wishbone 匯流排採用握手協議。當MASTER 準備好傳輸資料時置STB_O 為高,STB_O 將保持高狀態直到SLAVE 將ACK_I、ERR_I 或RTY_I 之一置為高, 資料轉送周期結束。這種機制下,MASTER 和SLAVE 均可控制資料轉送速率。其握手時序4。
Wishbone 匯流排有四種將MASTER 與SLAVE 串連在一起方式,分別為點對點、資料流、共用匯流排和十字互連。其中點對點方式可以最簡單地將一個MASTER 與一個SLAVE 相連;資料流方式可以實現資料轉送的流水;共用匯流排方式將多個MASTER和SLAVE 相連,不過任何時刻只能有一個MASTER 佔據匯流排;十字互連則可實現多個MASTER和多個SLAVE之間同時傳輸資料。圖5給出了採用點對點互聯方式的Wishbone匯流排主從介面。
Wishbone有三種資料轉送方式,分別為單讀寫、塊讀寫和R M W(R E A D - M O D I F Y - W R I T E )。其中單讀寫為最簡單。圖6 給出了單讀周期的時序。為了更直觀地瞭解Wishbone匯流排介面串連如何簡單、靈活,圖7 給出了8 位SLAVE 的輸出連接埠圖。
Wishbone只定義了一種高速匯流排,在既需要高速匯流排又需要低速匯流排的系統中,提供了兩Wishbone介面,比起設計兩個不同的介面要簡單得多。
6 總結
在以上介紹的三種匯流排中,CoreConnect雖免費不過需要IBM 公司許可,ARM 沒有明確的正式說法,可能也會免費,而Wishbone 是絕對免費的。三種匯流排都是同步的匯流排,使用時鐘上升沿驅圖7 8-bit SLAVE輸出連接埠動和採樣訊號。匯流排的基本操作幾乎沒有區別,最大的區別在於提供的特性和規範的完整性。CoreConnect和AMBA都給設計者提供了一種系統匯流排的選擇。系統整合設計者當試圖串連為不同串連設計的裝置時會遇到問題,在建立全面完整的系統時需要橋。而在Wishbone
中,所有的IP核都串連在同一標準介面上。系統設計者可以選擇在一個微處理器核上實現兩個介面,一個給高速低延遲裝置,一個給低速低效能裝置。綜上所述,我們認為採取Wishbone作為IP核的基本互聯的介面標準更便於設計,它的訊號十分直接,如果需要可以很容易被其它介面所採用。Wishbone 匯流排完全公開、完全免費,易於推廣,當然一個規範能否成為行業標準,除了本身的技術特性外,還要看是否被業界接受。Wishbone已被OPENCORE 聯盟採用,並且有可能成為IEEE標準。因此,Wishbone 匯流排從技術上講簡單、靈活、功能強大及易於移植,從經濟角度考慮又全部免費,易於全面推廣。我們認為它極有可能成為未來SoC
片上匯流排的通用標準,其前景看好。