AMBA總線陣營的強(qiáng)大超乎多數(shù)人的想象。AMBA總線是一個(gè)在SoC領(lǐng)域使用的事實(shí)上的標(biāo)準(zhǔn)。AMBA總線的最大優(yōu)點(diǎn)是開放的架構(gòu),和因此帶來的免費(fèi)。開放的總線標(biāo)準(zhǔn)使AMBA總線迅速普及,而且更易吸收整個(gè)半導(dǎo)體界的成果。
AMBA總線標(biāo)準(zhǔn)提供的AXI,AHB,ASB,APB和ATB總線,不僅使用在ARM處理器系統(tǒng)中,MIPS和PowerPC處理器也開始使用AMBA總線。在接下來的文章中我們重點(diǎn)為大家介紹AHB, AXI總線協(xié)議。
內(nèi)容概括
這次為大家講述的內(nèi)容包括:
AHB介紹
總線互聯(lián)
AHB信號描述
基本傳輸
0****1
AHB介紹
AMBA是為提高性能綜合設(shè)計(jì)的要求而產(chǎn)生的新一代AMBA總線它是支持總線主機(jī)和提供高帶寬的高性能總線。AHB實(shí)現(xiàn)了高性能,高時(shí)鐘頻率系統(tǒng)的以下特征要求:突發(fā)傳輸;分塊處理;單周期總線主機(jī)移交;單時(shí)鐘沿操作;非三態(tài)執(zhí)行;
AHB 的設(shè)計(jì)可能包含一個(gè)或者多個(gè)主機(jī),一個(gè)典型的系統(tǒng)將至少包含處理器和測試接口。然而,將直接數(shù)據(jù)存?。?a href="http://www.ttokpm.com/tags/dma/" target="_blank">DMA)或者數(shù)字信號處理器(DSP)包含作總線主機(jī)也很普遍。
典型的 AMBA AHB 系統(tǒng)設(shè)計(jì)包含以下的成分:
AHB 主機(jī) :總線主機(jī)能夠通過提供地址和控制信息發(fā)起讀寫操作。任何時(shí)候只允許一個(gè)總線主機(jī)處于有效狀態(tài)并能使用總線。
AHB 從機(jī) :總線從機(jī)在給定的地址空間范圍內(nèi)響應(yīng)讀寫操作??偩€從機(jī)將成功、失敗或者等待數(shù)據(jù)傳輸?shù)男盘柗祷亟o有效的主機(jī)。
AHB 仲裁器 :總線仲裁器確保每次只有一個(gè)總線主機(jī)被允許發(fā)起數(shù)據(jù)傳輸。即使仲裁協(xié)議已經(jīng)固定,任何一種仲裁算法,比如最高優(yōu)先級或者公平訪問都能夠根據(jù)應(yīng)用要求而得到執(zhí)行。AHB 必須只包含一個(gè)伸裁器,盡管在單總線主機(jī)系統(tǒng)中這顯得并不重要。
AHB 譯碼器: AHB 譯碼器用來對每次傳輸進(jìn)行地址譯碼并且在傳輸中包含一個(gè)從機(jī)選擇信號。所有 AHB 執(zhí)行都必須僅要求有一個(gè)中央譯碼器。
02
總線互聯(lián)
AHB總線協(xié)議設(shè)計(jì)使用一個(gè)中央多路選擇器互聯(lián)方案。使用該方案所有總線主機(jī)設(shè)備輸出地址和控制信號來指示它們想執(zhí)行的傳輸,同時(shí)仲裁器決定哪一個(gè)主機(jī)能夠?qū)⑺牡刂泛涂刂菩盘栠B通到所有的從機(jī)。當(dāng)然也需要—個(gè)譯碼器來控制讀數(shù)據(jù)和響應(yīng)多路信號選擇器,多路信號選擇器選中米自傳輸中所包含從機(jī)的適當(dāng)信號。圖 1表示了實(shí)現(xiàn)包含三個(gè)主機(jī)和四個(gè)從機(jī)的AHB設(shè)計(jì)的結(jié)構(gòu)要求。
圖1 多路選擇器互聯(lián)
0****3
AHB信號描述
名稱 | 來源 | 描述 |
---|---|---|
HCLK總線時(shí)鐘 | 時(shí)鐘源 | 時(shí)鐘為所有總線傳輸提供時(shí)基。所有信號時(shí)序都和HCLK的上升沿相關(guān)。 |
HRESETn復(fù)位 | 復(fù)位控制器 | 總線復(fù)位信號,低電平有效,用來復(fù)位系統(tǒng)和總線。這是唯一低電平有效的信號。 |
HADDR[31:0]地址總線 | 主機(jī) | 32位地址總線 |
HTRANS[1:0]傳輸類型 | 主機(jī) | 表示當(dāng)前傳輸?shù)念愋停梢允沁B續(xù),不連續(xù),空閑和忙 |
HWRITE傳輸方向 | 主機(jī) | 該信號為高表示一個(gè)寫傳輸,為低表示一個(gè)讀傳輸 |
HSIZE[2:0]傳輸大小 | 主機(jī) | 表示傳輸?shù)拇笮?,三位表?…7,分別對應(yīng)8bits(byte), 16bits(halfword),32bits(word),64bits, 128bits,256bits, 512bits,1024bits |
HBURST[2:0]突發(fā)類型 | 主機(jī) | 表示傳輸是否組成了突發(fā)的一部分。支持4個(gè),8個(gè),16個(gè)節(jié)拍的突發(fā)傳輸,突發(fā)傳輸可以使增量或回環(huán)。 |
HPROT[3:0]保護(hù)控制 | 主機(jī) | 提供總線訪問的附加信息,主要是給那些希望執(zhí)行某種保護(hù)級別的模塊使用的。這個(gè)信號指示當(dāng)前傳輸是否為預(yù)取指令或者數(shù)據(jù)傳輸,同時(shí)也表示傳輸是保護(hù)模式訪問還是用戶模式訪問。對帶存儲器管理單元的總線主機(jī)而言這些信號也用來指示當(dāng)前傳輸是高速緩存的(cache)還是緩沖的(buffer)。 |
HWDATA[31:0]寫總線數(shù)據(jù) | 主機(jī) | 寫數(shù)據(jù)總線用來在寫操作期間從主機(jī)到總線從機(jī)傳輸數(shù)據(jù)。建議最小的數(shù)據(jù)總線寬度為 32 位。在要求高帶寬運(yùn)行時(shí)擴(kuò)展(數(shù)據(jù)總線)還是很容易的。 |
HSELx從機(jī)選擇 | 譯碼器 | 每個(gè) AHB 從機(jī)都有自己獨(dú)立的從機(jī)選擇信號并且用該信號來表示當(dāng)前傳輸是否是打算送給選中的從機(jī)。該信號是地址總線的簡單組合譯碼。 |
HRDATA[31:0]讀數(shù)據(jù)總線 | 從機(jī) | 讀數(shù)據(jù)總線用來在讀操作期間從總線從機(jī)向總線主機(jī)傳輸數(shù)據(jù)。建議最小的數(shù)據(jù)總線寬度為 32 位。在要求高帶寬運(yùn)行時(shí)擴(kuò)展(數(shù)據(jù)總線)還是很容易的。 |
HREDAY傳輸完成 | 從機(jī) | 當(dāng) HREADY 為高時(shí)表示總線上的傳輸已經(jīng)完成。在擴(kuò)展傳輸時(shí)該信號可能會被拉低。注意:總線上的從機(jī)要求 HREADY 作為輸入輸出信號。 |
HRESP[1:0]傳輸響應(yīng) | 從機(jī) | 傳輸響應(yīng)給傳輸狀態(tài)提供了附加信息。提供四種不同的響應(yīng):OKEY、 ERROR、 RETRY 和 SPLIT。 |
0****4
基本傳輸
一筆傳輸由如下兩部分組成:
地址階段 :一個(gè)周期
數(shù)據(jù)階段 :一個(gè)或多個(gè)周期,由HBURST信號決定需要幾個(gè)有效周期,可以由HREADY發(fā)出請求延長一個(gè)周期。
01
沒有等待狀態(tài)的single transfer
-
第一個(gè)周期的上升沿,主機(jī)將地址信息和控制信息發(fā)送到總線上;
-
第二個(gè)周期的上升沿,從機(jī)采樣地址和控制信號,并將HREADY拉高;如果是寫操作,主機(jī)會在第二個(gè)周期的上升沿過后傳輸要寫入的數(shù)據(jù);如果是讀操作,從機(jī)會在HREADY信號拉高后將讀取的數(shù)據(jù)寫入總線;
-
第三個(gè)周期的上升沿,如果是寫操作,主機(jī)獲取HREADY高信號,表明從機(jī)已成功接收數(shù)據(jù),操作成功;如果是讀操作,主機(jī)獲取HREADY高信號,表明此時(shí)的讀數(shù)據(jù)有效并且接收下來,操作成功。需要注意,HREADY信號在數(shù)據(jù)有效期間必須為高,并且延續(xù)到第三個(gè)周期的上升沿之后,確保主機(jī)的正確采樣。
02
slave插入等待狀態(tài)的single transfer
從機(jī)可以及時(shí)處理主機(jī)請求,但也可能存在從機(jī)太慢不能立即處理的情況。這時(shí)需要讓主機(jī)稍微等一等,需要從機(jī)插入一些等待的狀態(tài)。如下圖所示,HREADY信號在第二和第三周期拉低,意在告訴主機(jī),從機(jī)不能立即處理,需要主機(jī)等待2個(gè)周期。在這里需要注意2點(diǎn):
如果是寫操作,主機(jī)要在等待期間保持寫數(shù)據(jù)不變,直到本次傳輸完成;如果是讀操作,從機(jī)不需要一開始就給出數(shù)據(jù),僅當(dāng)HREADY拉高后才給出有效數(shù)據(jù)。
03
多個(gè)single transfer的pipeline操作
擴(kuò)展數(shù)據(jù)周期的一個(gè)負(fù)效應(yīng)是必需延長相應(yīng)的下一筆傳輸?shù)牡刂分芷?。A和C為零等待傳輸,B加入了一個(gè)等待周期,因此相應(yīng)的C地址周期要進(jìn)行擴(kuò)展。
- 第一個(gè)周期,主機(jī)發(fā)起一個(gè)操作A,并驅(qū)動地址和控制信號;
- 第二個(gè)周期,從機(jī)收到了來自總線的請求,將HREADY信號拉高;
- 第二個(gè)周期上升沿后,主機(jī)發(fā)現(xiàn)有操作B需要執(zhí)行,并且檢查到上一周期的HREADY為高,則發(fā)起第二個(gè)操作B;
- 第三個(gè)周期,主機(jī)獲取HREADY信號為高,表示操作A已經(jīng)完成;
- 第三個(gè)周期上升沿后,主機(jī)發(fā)現(xiàn)有操作C需要執(zhí)行,并且檢查到上一周期的HREADY為高,則發(fā)起第三個(gè)操作C;
- 第三個(gè)周期上升沿后,從機(jī)由于繁忙插入了一個(gè)等待狀態(tài),將HREADY拉低;
- 第四個(gè)周期,主機(jī)獲取HREADY信號為低,知道從機(jī)希望等待,于是主機(jī)保持和上一拍一樣的信號;
- 第四個(gè)周期,從機(jī)處理完了事務(wù),將HREADY信號拉高,表示可以繼續(xù)處理;
- 第五個(gè)周期,主機(jī)獲取HREADY信號為高,知道從機(jī)已經(jīng)可以處理B操作;
- 第五個(gè)周期上升沿后,B操作完成;
- 第六個(gè)周期上升沿后,C操作完成。
需要注意幾點(diǎn):
HREADY在一定程度上表示了從機(jī)的pipeline能力,在AHB中是2個(gè)pipe,也就是總線上最多存在2個(gè)未處理完的transfer。只有當(dāng)總線上未完成的transfer少于2個(gè)時(shí),主機(jī)才能發(fā)起操作。
-
半導(dǎo)體
+關(guān)注
關(guān)注
334文章
26311瀏覽量
209940 -
soc
+關(guān)注
關(guān)注
38文章
4021瀏覽量
217014 -
總線
+關(guān)注
關(guān)注
10文章
2817瀏覽量
87697 -
AMBA
+關(guān)注
關(guān)注
0文章
67瀏覽量
14872
發(fā)布評論請先 登錄
相關(guān)推薦
評論