前言
之前和大家一起學習過AXI、AHB,這次來一起對Soc中的總線有個宏觀的學習。
總線提供了系統(tǒng)中各個設(shè)備之間一種互連的訪問共享硬件機制。
在數(shù)字系統(tǒng)中,總線承擔數(shù)據(jù)傳輸?shù)娜蝿?wù)如處理器和存儲器之間的數(shù)據(jù)傳輸。
總線的傳輸能力由總線的寬度和工作頻率決定。
總線的設(shè)計通常要考慮4個因素:
?總線寬度、?時鐘頻率、?仲裁機制、?傳輸類型。
總線連接的設(shè)備根據(jù)功能不同分為總線主設(shè)備和從設(shè)備。
?總線主設(shè)備可以發(fā)起一個傳輸任務(wù)?而從設(shè)備則對主設(shè)備發(fā)起的事務(wù)做出回應(yīng)。
?有些設(shè)備既可以是總線的主設(shè)備,也可以是總線的從設(shè)備,如DMA控制器等。當總線上存在多個主設(shè)備時,這些主設(shè)備有可能在一段時間內(nèi)同時需要競爭使用總線。
?這時需要一種仲裁機制來決定總線的使用。仲裁機制的差異會影響總線的利用效率和任一總線主設(shè)備所見到的遲滯。使用較多的仲裁機制有輪詢機制和按照優(yōu)先級順序機制。
?在輪詢機制中,仲裁邏輯循環(huán)檢查各個主設(shè)備的使用請求,從而決定哪一個主設(shè)備使用總線,每個總線的主設(shè)備擁有相同的優(yōu)先級,但重要的請求可能需要等待較大的延時后才能獲得總線的控制權(quán)。
?在按照優(yōu)先級順序的仲裁機制中,各個主設(shè)備分配不同的優(yōu)先級。在這種設(shè)計中,優(yōu)先級高的主設(shè)備可以在較少延時下獲得總線的使用權(quán)。在仲裁機制中,有必要啟用某些保護機制,確??偩€傳輸?shù)恼_M行。
例如,在傳輸數(shù)據(jù)過程中采用鎖定的機制,只有當前傳輸結(jié)束后才能重新啟動仲裁機制,確保該次傳輸?shù)恼=Y(jié)束。這在多個主設(shè)備競爭訪問同一個資源時可以確保數(shù)據(jù)傳輸?shù)恼_性。
總線在傳輸數(shù)據(jù)時,可以采用不同的傳輸類型以適應(yīng)不同的數(shù)據(jù)傳輸要求。在大多數(shù)總線中可以實現(xiàn)固定大小的數(shù)據(jù)塊傳輸和可變大小的數(shù)據(jù)塊傳輸。更加復(fù)雜和先進的總線行為還包括分離處理(Split Transactions)、原子處理(Atomic Transactions)等。
當從設(shè)備需要比較長的時間處理主設(shè)備的數(shù)據(jù)傳輸時,可以將總線的控制權(quán)交給其他主設(shè)備。當該從設(shè)備完成數(shù)據(jù)的處理后,從設(shè)備通知主設(shè)備可以繼續(xù)上次沒有完成的數(shù)據(jù)傳輸。
目前,各大IP提供商都先后推出了自己的總線標準。較有影響力的片上總線標準有ARM公司的AMBA總線、IBM公司的CoreConnect總線、Silicore Corp的Wishbone總線和Altera的Avalon總線等。
SoC設(shè)計的一個重要特點是基于IP核的復(fù)用。
為解決眾多IP核復(fù)用的問題需要一個快速的連接方案,由此產(chǎn)生了開放核協(xié)議(OCP)。
OCP是由OCP-IP組織定義的一種標準化的IP 核接口(Interface)或插座(Socket),以便任何帶有這一接口的IP都可以在SoC內(nèi)直接點對點的連接,或通過帶有這一標準接口的總線進行互連。
1 AMBA總線
AMBA總線是ARM公司開發(fā)的片上總線標準,目前已經(jīng)到了3.0版本。AMBA總線標準包括
?AHB(Advanced High-performance Bus)總線、
?ASB (Advanced System Bus)總線、
?APB(Advanced Peripheral Bus)總線
?AXI總線
AHB和ASB總線連接高性能系統(tǒng)模塊,ASB是舊版本的系統(tǒng)總線,使用三態(tài)總線,目前已被新版本的AHB總線所代替。AHB是AMBA2.0標準。
而AXI是最新推出的新一代AMBA3.0標準。
APB總線連接低速的外圍設(shè)備。
典型的AMBA系統(tǒng)結(jié)構(gòu)如所示。
?
AHB總線連接的系統(tǒng)模塊有處理器、DMA控制器、片內(nèi)存儲器、外部存儲器接口、LCD控制器等。
這些設(shè)備往往工作在較高時鐘頻率下,對系統(tǒng)的性能有較大影響。
AHB總線支持仲裁、突發(fā)傳輸、分離傳輸、流水操作、多主設(shè)備等復(fù)雜事務(wù)。
APB總線連接的外圍設(shè)備有UART接口、鍵盤、USB接口、鍵盤接口、時鐘模塊等。
APB沒有復(fù)雜事務(wù)實現(xiàn),非流水線操作,可達到減少功耗和易于使用的目的。
最近幾年,隨著超大規(guī)模SoC的興起,嵌入式系統(tǒng)的性能需求越來越高,導致對片上總線的帶寬要求也越來越苛刻。雖然AHB總線的協(xié)議在理論上可以讓用戶不斷地增加總線位寬從而達到更大的帶寬,但是在節(jié)省功耗的前提下,用戶希望通過極小的總線寬度、極低的總線頻率來實現(xiàn)很高的數(shù)據(jù)吞吐量,也就是對協(xié)議傳輸效率的要求達到極致。
順應(yīng)這種趨勢,ARM在2004年推出了AMBA3.0-AXI協(xié)議。AXI總線是一種多通道傳輸總線,將地址、讀數(shù)據(jù)、寫數(shù)據(jù)、握手信號在不同的通道中發(fā)送,不同訪問之間的順序可以打亂,用BUSID來表示各個訪問的歸屬。
Master在沒有得到返回數(shù)據(jù)的情況下可以發(fā)出多個讀寫操作。讀回的數(shù)據(jù)順序可以被打亂,同時還支持非對齊數(shù)據(jù)訪問。由于各個傳輸之間僅依靠傳輸ID來相互識別,沒有時序上的依賴關(guān)系,所以可以被插入寄存器來打斷限制頻率的關(guān)鍵路徑。那么從理論上講,AXI協(xié)議就沒有頻率上限了。
AXI總線還定義了在進出低功耗節(jié)電模式前后的握手協(xié)議。規(guī)定如何通知進入低功耗模式,何時關(guān)斷時鐘,何時開啟時鐘,如何退出低功耗模式。
這使得所有IP在進行功耗控制的設(shè)計時,有據(jù)可依,容易集成在統(tǒng)一的系統(tǒng)中。圖4-3所示為一種典型的基于AMBA 3 AXI總線協(xié)議的SoC結(jié)構(gòu)實例。
AXI不僅繼承了AHB便于集成、便于實現(xiàn)和擴展的優(yōu)點,還在設(shè)計上引入了指令亂序發(fā)射、結(jié)果亂序?qū)懟氐戎卮蟾倪M,使總線帶寬得到最大程度的利用,可進一步滿足高性能系統(tǒng)的大量數(shù)據(jù)存取的需求。
【AHB與AXI、APB的區(qū)別與聯(lián)系】[1]
2 CoreConnect總線
CoreConnect是IBM開發(fā)的一套片上系統(tǒng)總線標準。CoreConnect總線包括
?PLB(Procesor Local Bus)總線、
?OPB(On-Chip Peripheral Bus)總線、
?DCR(Device Control Register)總線。
圖4-4所示為CoreConnect的總線結(jié)構(gòu)圖。
在CoreConnect總線中,
?PLB總線連接高性能設(shè)備如處理器、存儲器接口、DMA等。
?OPB總線連接低性能設(shè)備,如各種外圍接口等。OPB總線減少了外圍設(shè)備對于PLB性能的影響。在PLB和OPB之間存在一個轉(zhuǎn)接的總線橋。PLB到OPB總線橋?qū)崿F(xiàn)了PLB總線上主設(shè)備到OPB總線上從設(shè)備的數(shù)據(jù)傳輸。它在PLB總線上是從設(shè)備,但在OPB總線上卻成為主設(shè)備。與之相對應(yīng),OPB到PLB的橋在OPB上是從設(shè)備,但會作為PLB總線的主設(shè)備,實現(xiàn)OPB總線上的主設(shè)備到PLB總線的從設(shè)備的數(shù)據(jù)傳輸。
?DCR總線主要用來訪問和配置PLB和OPB總線設(shè)備的狀態(tài)和控制寄存器。DCR總線結(jié)構(gòu)實現(xiàn)了在PLB或OPB傳輸之外的數(shù)據(jù)傳輸。在PLB或OPB總線上的主設(shè)備都需要經(jīng)過總線仲裁設(shè)備來獲取對于總線的控制權(quán)。
3 Wishbone總線
Wishbone總線是由Silicore公司推出的片上總線標準。這種總線具有簡單、靈活和開放的特點,現(xiàn)在已經(jīng)被OpenCores采用并組織維護。
在AMBA或CoreConnect總線中,高速設(shè)備和低速設(shè)備分別在不同的總線上。
而在Wishbone中,所有核都連接在同一標準接口上。
當需要時,系統(tǒng)設(shè)計者可以選擇在一個微處理器核上實現(xiàn)兩個接口,一個給高速設(shè)備,另一個給低速設(shè)備。Wishbone總線的結(jié)構(gòu)如圖4-5所示。
一個Wishbone系統(tǒng)由主設(shè)備、從設(shè)備、INTERCON和SYSCON組成。
其中INTERCON定義了主設(shè)備和從設(shè)備之間的連接方式,而SYSCON用來產(chǎn)生系統(tǒng)時鐘和復(fù)位信號。
在Wishbone中有4種不同的連接方式可以使用,它們分別是點對點、數(shù)據(jù)流、共享總線和交叉連接方式。
4 AVALON總線
AVALON總線主要應(yīng)用在FPGA中,作為SOPC(System On a Programmable Chip)中的片上總線。AVALON總線是Altera推出Nios核時開發(fā)的片上總線,系統(tǒng)結(jié)構(gòu)如圖4-6所示。
在AVALON總線中,主設(shè)備之間通過仲裁機制決定是否獲得總線的控制權(quán)。
5 開放核協(xié)議
IP在SoC中的互連概括起來可以通過兩種方案解決,一種是采用標準的總線結(jié)構(gòu)(如AMBA),另一種是定義一種通用的總線接口,而不限制總線的采用。
開放核協(xié)議(OCP,Open Core Protocol)是由OCP-IP組織定義的IP互聯(lián)協(xié)議。
它不是總線定義,而是在IP核之間的一種獨立于總線之外的高性能接口規(guī)范,這種方法提高了IP的重用率,進而可以減少設(shè)計時間、設(shè)計風險和制造成本。
一個IP核可以是處理器、外圍設(shè)備或片上總線。
OCP在兩個通信實體之間定義了點到點的接口。這兩個通信實體中,一個作為主設(shè)備,可以發(fā)起命令;另一個作為從設(shè)備,對主設(shè)備的命令做出回應(yīng)。
該OPC結(jié)構(gòu)如圖4-7所示。OCP是在國際IP標準組織(VISA)的虛擬接口標準VCI上的擴展。
OCP-IP組織還相繼開發(fā)了相應(yīng)的IP接口自動生成工具,并提供一定的技術(shù)支持,使得OCP接口具有更好的實用價值。
IP核自身的特點決定了其是否作為OCP封裝接口中的主設(shè)備、從設(shè)備或兩者都是。
總線封裝接口模塊作為OCP的補充。在系統(tǒng)的數(shù)據(jù)傳輸過程中,系統(tǒng)的發(fā)起者(OCP主設(shè)備)輸出命令和數(shù)據(jù)到總線封裝接口模塊。
OCP并不規(guī)定總線的功能。總線封裝接口模塊設(shè)計中,需要將OCP請求轉(zhuǎn)換成總線傳輸。
OCP主設(shè)備負責將總線傳輸轉(zhuǎn)換成合法的OCP命令;OCP從設(shè)備接收主設(shè)備發(fā)出的命令,并做出回應(yīng)。
6 復(fù)雜的片上總線結(jié)構(gòu)
以上分析了目前使用較為廣泛的幾種標準總線結(jié)構(gòu)。在實際的使用中,尤其在一些復(fù)雜的SoC設(shè)計中,往往會在這些總線協(xié)議的基礎(chǔ)上采用更加復(fù)雜的總線結(jié)構(gòu)以滿足處理器、存儲器和其他與之相連的設(shè)備之間的相互矛盾。
下面以AMBA總線為例,分析兩種較為常見的總線結(jié)構(gòu)。
在AMBA總線中,高性能設(shè)備工作在高速總線AHB上,其他慢速設(shè)備工作在低速總線APB上,高速總線和低速總線之間通過橋連接在一起。
當高速總線上的設(shè)備比較多時,一條高速總線的設(shè)計無法滿足系統(tǒng)的要求,這時需要增加總線,如圖4-8所示。
在這種設(shè)計中,兩種總線主設(shè)備分別工作在不同的AHB總線上,但它們都可以訪問所有從設(shè)備。這樣兩個主設(shè)備在分別訪問本地總線的從設(shè)備時可以減少總線上的等待時間,提高總線的訪問效率。
當主設(shè)備訪問相鄰總線的從設(shè)備時需要通過總線橋進行,在這種設(shè)計中一般主設(shè)備訪問相鄰總線從設(shè)備的可能性較小。
更加復(fù)雜的總線結(jié)構(gòu)如圖4-9所示,在這種總線結(jié)構(gòu)中,不但有兩條高速總線還有一條低速總線。
兩個片內(nèi)存儲器分別只能由該總線上的主設(shè)備訪問。
兩個主設(shè)備對于低速總線或片外存儲器有共同的訪問權(quán)限,這時候需要增加總線的仲裁機制來決定在某個時刻由哪個主設(shè)備來訪問相應(yīng)的從設(shè)備。
來源:TrustZone
審核編輯:劉清
評論
查看更多