AHB(Advanced High Performance Bus)協定規範
參考:ARM (IHI 0033B.b) AMBA 5 AHB Protocol Specification : AHB5, AHB-Lite
文章目錄
- AHB(Advanced High Performance Bus)協定規範
-
- 一. 介紹
-
- 1.1 關于協定
-
- 1.1.1 主機
- 1.1.2 從機
- 1.1.3 互連
- 1.2 AHB修訂版(略)
- 1.3 操作
- 二. 信号描述
-
- 2.1 全局信号
- 2.2 主機信号
- 2.3 從機信号
- 2.4 解碼器信号
- 2.5 多路複用器信号
- 三. 傳輸
-
- 3.1 基本傳輸(讀寫時序)
- 3.2 傳輸類型(HTRANS——IDLE,BUSY,NONSEQ,SEQ)
- 3.3 鎖定傳輸(HMASTLOCK)
- 3.4 傳輸尺寸(HSIZE)
- 3.5 突發操作(HBURST——SINGLE,INCR4/8/16,WRAP4/8/16)
-
- 3.5.1 BUSY傳輸後突發終止
- 3.5.2 提前突發終止
- 3.5.3 突發示例
- 3.6 等待傳輸
-
- 3.6.1 等待狀态期間傳輸類型改變
- 3.6.2 等待狀态期間的位址改變
- 3.7 保護控制(HPROT[3:0])
- 3.8 存儲類型(HPROT[6:4])
-
- 3.8.1 資料或指令
- 3.8.2 無特權或有特權
- 3.8.3 記憶體類型
- 3.8.4 裝置記憶體要求
- 3.8.5 正常記憶體要求
- 3.8.6 配置設定屬性
- 3.8.7 遺留問題
- 3.9 安全傳輸(HNONSEC)
- 四. 總線互連
-
- 4.1 互連
- 4.2 位址解碼
-
- 4.2.1 預設從機
- 4.2.2 多從機選擇
- 4.3 讀資料和響應複用器
- 五. 從裝置響應信号
-
- 5.1 從機傳輸響應(HRESP——OKAY,ERROR)
-
- 5.1.1 傳輸完成
- 5.1.2 傳輸待定
- 5.1.3 錯誤響應
- 六. 資料總線
-
- 6.1 資料總線
-
- 6.1.1 HWDATA
- 6.1.2 HRDATA
- 6.2 位元組順序
-
- 6.2.1 小端
- 6.2.2 位元組不變的大端
- 6.2.3 字不變的大端
- 6.2.4 位元組不變性
- 6.3 資料總線位寬
-
- 6.3.1 在寬總線上實作窄從機
- 6.3.2 在窄總線上實作寬從機
- 6.3.3 在寬總線上實作主機
- 七. 時鐘與複位
-
- 7.1 時鐘和複位要求
-
- 7.1.1 時鐘
- 7.1.2 複位
- 八. 獨占傳輸
-
- 8.1 介紹
- 8.2 獨占通路螢幕
- 8.3 獨占通路信号(HEXCL,HMASTER,HEXOKAY)
-
- 8.3.1 響應信号
- 8.4 獨占傳輸限制
- 九. 原子性
-
- 9.1 單副本原子性大小
- 9.2 多副本原子性
- 十. 使用者信号
-
- 10.1 使用者信号描述(HAUSER,HWUSER,HRUSER)
- 10.2 使用者信号互連建議
一. 介紹
出于說明目的,本規範中使用了32位資料總線。但允許額外的資料總線寬度,如後文6.3資料總線寬度所示。
1.1 關于協定
AMBA AHB是一個适合高性能可綜合設計的總線接口。它定義了元件之間的接口,如主元件、互連元件和從元件。
最常見的AHB從機是内部存儲器裝置、外部存儲器接口和高帶寬外設。 盡管低帶寬外設可以作為AHB從機,但出于系統性能原因,它們通常位于AMBA進階外設總線(APB)上。更高性能的AHB和APB之間的橋接是使用AHB從機完成的,稱為APB橋。
圖1-1顯示了帶有AHB主裝置和三個AHB從裝置的單主AHB系統設計。總線互連邏輯由一個位址解碼器和一個從機到主機多路複用器組成。解碼器監控來自主機的位址,以便選擇合适的從機,多路複用器将相應的從機輸出資料路由回主機。
AHB還通過使用互連元件支援多主機設計,該互連元件提供仲裁并将信号從不同主機路由到适當的從機。
1.1.1 主機
主機提供位址和控制資訊來啟動讀寫操作。圖1-2顯示了一個主機接口。
1.1.2 從機
從機響應系統中主機發起的傳輸。從機使用來自解碼器的
HSELx
選擇信号來控制何時響應總線傳輸。
從機向主機發回信号:
- 總線傳輸的完成或延長。
- 總線傳輸的成功或失敗。
圖1-3顯示了一個從機接口。
1.1.3 互連
互連元件提供系統中主裝置和從裝置之間的連接配接。
單個主系統隻需要使用解碼器和多路複用器,如下節所述。
多主機系統需要使用互連,該互連提供仲裁以及從不同主機到适當從機的信号路由。位址、控制和寫資料信令需要這種路由。
解碼器:
該元件對每次傳輸的位址進行解碼,并為參與傳輸的從機提供選擇信号。它還向多路複用器提供控制信号。在所有使用兩個或更多從裝置的實作中,都需要一個集中式解碼器。
多路複用器:
需要一個從機到主機的多路複用器來多路複用從機到主機的讀資料總線和響應信号。解碼器為多路複用器提供控制。在所有使用兩個或更多從機的實作中,都需要一個集中式多路複用器。
1.2 AHB修訂版(略)
1.3 操作
主機通過驅動位址和控制信号開始傳輸。這些信号提供有關傳輸位址、方向、寬度的資訊,并訓示傳輸是否構成突發的一部分。傳輸可以是:
- 單次。
- 不在位址邊界換行的遞增突發。
- 在特定位址邊界換行的換行突發。
寫資料總線将資料從主機移動到從機,讀資料總線将資料從從機移動到主機。
每次傳輸包括:
位址階段——一位址和控制周期。
資料階段——資料的一個或多個周期。
從機不能請求延長位址階段,是以所有從機必須能夠在此期間對位址進行采樣。但是,從機可以使用
HREADY
請求主機擴充資料階段。該信号為低電平時,會将等待狀态插入傳輸,使從機有額外時間提供或采樣資料。從機使用
HRESP
來訓示傳輸的成功或失敗。
二. 信号描述
2.1 全局信号
2.2 主機信号
2.3 從機信号
2.4 解碼器信号
通常,解碼器還向多路複用器提供
HSELx
信号,或從
HSELx
信号導出信号/總線,以使多路複用器能夠将适當的信号從標明的從機路由到主機。重要的是,這些額外的多路複用器控制信号被重定時到資料階段。
2.5 多路複用器信号
三. 傳輸
3.1 基本傳輸(讀寫時序)
傳輸包括兩個階段:
Address:持續一個
HCLK
周期,除非它被前一個總線傳輸延長。
Data:可能需要幾個時鐘周期。使用
HREADY
信号控制完成傳輸所需的時鐘周期數。
HWRITE
控制與主機之間的資料傳輸方向。是以,當:
-
為高電平時,表示寫傳輸,主機在寫資料總線上廣播資料,HWRITE
;HWDATA[31:0]
-
為低電平時,執行讀傳輸,從機在讀資料總線上生成資料,HWRITE
。HRDATA[31:0]
最簡單的傳輸沒有等待狀态,是以傳輸由一個位址周期和一個資料周期組成。圖3-1顯示了一個簡單的讀傳輸,圖3-2顯示了一個簡單的寫傳輸。
在沒有等待狀态的簡單傳輸中:
- 主機在
上升沿後将位址和控制信号驅動到總線上。HCLK
- 然後,從機在
的下一個上升沿采樣位址和控制資訊。HCLK
- 從機對位址和控制進行采樣後,可以開始驅動相應的
響應。主機在HREADYOUT
的第三個上升沿對該響應進行采樣。HCLK
這個簡單的示例示範了在不同的時鐘周期内,傳輸的位址和資料階段是如何發生的。任何傳輸的位址階段都發生在前一次傳輸的資料階段。 位址和資料的這種重疊是總線流水線特性的基礎,能夠實作高性能操作,同時仍然為從機提供足夠的時間來響應傳輸。
從機可以在任何傳輸中插入等待狀态,以獲得額外的完成時間。每個從機都有一個
HREADYOUT
信号,在傳輸的資料階段驅動。該互連負責組合來自所有從機的
HREADYOUT
信号,以生成用于控制整體進度的單個
HREADY
信号。
圖3-3顯示了具有兩個等待狀态的讀傳輸。
圖3-4顯示了具有一個等待狀态的寫傳輸。
當以這種方式擴充傳輸時,它具有擴充下一次傳輸的位址階段的副作用。 圖3-5顯示了對不相關位址A、B和C的三次傳輸,其中位址C的位址階段延長。
在圖3-5中:
- 到位址A和C的傳輸是零等待狀态
- 到位址B的傳輸是一個等待狀态
- 将到位址B傳輸的資料階段擴充具有将到位址C傳輸的位址階段擴充的效果
3.2 傳輸類型(HTRANS——IDLE,BUSY,NONSEQ,SEQ)
根據
HTRANS[1:0]
的控制,傳輸可以分為四種類型之一。表3-1列出了這些。
圖3-6顯示了NONSEQ、BUSY和SEQ傳輸類型的使用。
在圖3-6中:
T0-T1 4拍讀取從一次NONSEQ傳輸開始。
T1-T2 主機無法執行第二拍,插入一個BUSY傳輸來延遲第二拍的開始。從機提供第一拍的讀取資料。
T2-T3 主機現在準備開始第二拍,是以SEQ傳輸信号出現。主機忽略從機在讀資料總線上提供的任何資料。
T3-T4 主機執行第三拍。從機提供第二拍的讀取資料。
T4-T5 主機執行最後一拍。從機無法完成傳輸,使用
HREADYOUT
插入單個等待狀态。
T5-T6 從機提供第三拍的讀取資料。
T6-T7 從機提供最後一拍的讀取資料。
3.3 鎖定傳輸(HMASTLOCK)
如果主機要求鎖定通路,那麼它還必須聲明
HMASTLOCK
信号。該信号向任何從機訓示目前傳輸序列不可分割,是以必須在處理任何其他傳輸之前進行處理。 通常,通過確定從機在微處理器SWP指令的讀和寫階段之間不執行其他操作,鎖定傳輸用于維護信号量的完整性。
圖3-7顯示了帶有微處理器SWP指令的
HMASTLOCK
信号。
(鎖定傳輸後,建議主機插入空閑傳輸。)
大多數從機不需要實作
HMASTLOCK
,因為它們隻能按照接收的順序執行傳輸。可以被多個主裝置通路的從裝置,例如,多端口記憶體控制器(MPMC)必須實作
HMASTLOCK
信号。
3.4 傳輸尺寸(HSIZE)
HSIZE[2:0]
表示資料傳輸的大小。表3-2列出了可能的傳輸大小。
(
HSIZE
設定的傳輸大小必須小于或等于資料總線的寬度。 例如,對于32位資料總線,
HSIZE
必須隻使用0b000、0b001或0b010。)
将
HSIZE
與
HBURST
結合使用,以确定換行突發的位址邊界。
HSIZE
信号的時序與位址總線完全相同。然而,它們必須在整個突發傳輸中保持不變。
3.5 突發操作(HBURST——SINGLE,INCR4/8/16,WRAP4/8/16)
4拍、8拍和16拍的突發、長度不确定的突發和單次傳輸在該協定中定義。它支援遞增和換行:
- 遞增突發通路順序位置,突發中每次傳輸的位址是前一個位址的增量。
- 換行突發跨越位址邊界時換行。位址邊界計算為突發中的節拍數和傳輸尺寸的乘積。拍數由
控制,傳輸大小由HBURST
控制。例如,字(4位元組)的四拍換行突發通路16位元組邊界時換行。是以,如果突發的起始位址是0x34,那麼它包括4次到位址0x34、0x38、0x3C和0x30的傳輸。HSIZE
HBURST[2:0]
控制突發類型。表3-3列出了可能的突發類型。
主機不得試圖啟動跨越1KB位址邊界(如0x400、0x800、0xc00及其倍數等)的遞增突發。
主機可以使用以下任一方式執行單次傳輸:
- 單次傳輸突發。
- 長度為1的未定義長度突發。
突發中的所有傳輸必須與等于傳輸大小的位址邊界對齊。 例如,字傳輸必須與字位址邊界對齊(
HADDR[1:0]
= 0b00),半字傳輸必須與半字位址邊界對齊(
HADDR[0]
= 0)。IDLE傳輸的位址也必須對齊,否則在仿真過程中,總線監控器可能會報告虛假警告。
3.5.1 BUSY傳輸後突發終止
突發開始後,如果主機需要更多時間才能繼續突發中的下一次傳輸,則主機使用BUSY傳輸。
在未定義長度的突發期間,INCR,主機可能會插入BUSY傳輸,然後決定不再需要資料傳輸。在這種情況下,主機可以執行一次NONSEQ或IDLE傳輸,進而有效終止未定義長度的突發。
對于以下類型的固定長度突發,協定不允許主機以BUSY傳輸結束突發:
- 遞增INCR4、INCR8和INCR16。
- 換行WRAP4、WRAP8和WRAP16。
這些固定長度的突發類型必須以SEQ傳輸結束。
SINGLE突發後,主機不允許立即執行BUSY傳輸。SINGLE突發之後必須是IDLE傳輸或NONSEQ傳輸。
3.5.2 提前突發終止
突發可以通過以下方式終止:
從屬錯誤響應:
如果從機提供錯誤響應,則主機可以取消突發中剩餘的傳輸。 但是,這并不是嚴格的要求,主機在突發中繼續其餘傳輸也是可以接受的。如果主機取消突發中剩餘的傳輸,則它必須在兩個周期的錯誤響應期間将
HTRANS
更改為IDLE。如果主機沒有完成該突發,則不要求它在下次通路該從機時重建該突發。例如,如果一個主機隻完成了8拍脈沖串中的3拍,那麼當它下一次通路該從機時,它不必完成剩餘的5次傳輸。
多層互連終止:
盡管不允許主裝置提前終止突發請求,但從裝置必須設計為在突發未完成時正常工作。當多層互連元件用于多主機系統時,從裝置可以終止突發,以便另一個主機可以通路從機。 如果發生這種情況,從機必須終止來自原主機的突發,然後對新主機做出适當響應。
3.5.3 突發示例
四拍換行突發,WRAP4:
圖3-8顯示了使用四拍換行突發的寫傳輸,第一次傳輸增加了等待狀态。
由于突發是一個四拍的字傳輸突發,是以位址在16位元組邊界處換行,在傳輸到位址0x3C後,再傳輸到位址0x30。
四拍遞增突發, INCR4:
圖3-9顯示了使用四拍遞增突發的讀傳輸,第一次傳輸增加了等待狀态。在這種情況下,位址不會在16位元組的邊界處換行,位址0x3C之後是到位址0x40的傳輸。
八拍換行突發,WRAP8:
圖3-10顯示了使用八拍換行突發的讀傳輸。
因為突發是一個8拍的字傳輸突發,是以位址在32位元組的邊界處換行,在傳輸到位址0x3C之後是傳輸到位址0x20。
八拍遞增突發,INCR8:
圖3-11顯示了使用八拍遞增突發的寫傳輸。
該突發使用半字傳輸,是以位址增加了2。因為突發是遞增的,位址繼續遞增超過16位元組的位址邊界。
長度不确定的突發,INCR:
圖3-12顯示了長度不确定的遞增突發。
圖3-12顯示了兩個突發:
- 第一個突發是由兩個半字傳輸組成的寫操作,從位址0x20開始。這些傳輸位址增加2。
- 第二次突發是一次讀取,包括從位址0x5C開始的三次字傳輸。這些傳輸位址遞增4。
3.6 等待傳輸
如果從機需要更多時間來提供或采樣資料,則使用
HREADYOUT
插入等待狀态。在等待傳輸期間,主機隻能對傳輸類型和位址進行更改。
3.6.1 等待狀态期間傳輸類型改變
當從機請求等待狀态時,主機不得更改傳輸類型,除非按照如下所述:
空閑傳輸:
在等待傳輸期間,允許主機将傳輸類型從IDLE更改為NONSEQ。 當
HTRANS
傳輸類型變為NONSEQ時,主機必須保持
HTRANS
不變,直到
HREADY
為高電平。
圖3-13顯示了單個突發的等待傳輸,傳輸類型從IDLE更改為NONSEQ。
在圖3-13中:
T0-T1——主機向位址A發起單次突發。
T1-T2——主機向位址Y插入一個空閑傳輸。從機插入一個等待狀态,
HREADYOUT
=LOW。
T2-T3——主機向位址z插入一個空閑傳輸。
T3-T4——主機将傳輸類型更改為NONSEQ,并向位址B發起一個INCR4傳輸。
T4-T6——如果
HREADY
為低,主機必須保持
HTRANS
不變。
T5-T6——到位址A的單次突發在
HREADY
為高電平時完成,主機開始到位址B的第一拍。
T6-T7——到位址B的INCR4傳輸的第一拍完成,主機開始到位址B+4的下一拍。
BUSY傳輸,固定長度突發:
在固定長度突發的等待傳輸期間,允許主機将傳輸類型從BUSY更改為SEQ。 當
HTRANS
傳輸類型更改為SEQ時,主機必須保持
HTRANS
不變,直到
HREADY
為高。
因為BUSY傳輸隻能在突發的連續節拍之間插入,是以這不适用于SINGLE突發。是以,這種情況适用于以下突發類型:
- INCR4、INCR8和INCR16。
- WRAP4、WRAP8和WRAP16。
圖3-14顯示了在固定長度突發中等待的傳輸,傳輸類型從BUSY變為SEQ。
在圖3-14中:
T0-T1——主機向位址0x24發起INCR4突發的下一拍。
T1-T3——主機向位址0x28插入一個BUSY傳輸。從機插入等待狀态,
HREADYOUT
=LOW。
T3-T4——主機将傳輸類型更改為SEQ,并将突發的下一拍初始化為位址0x28。
T4-T6——當
HREADY
為低電平時,主機必須保持
HTRANS
恒定。
T5-T6——節拍到位址0x24完成,
HREADY
為高。
T6-T7——向位址0x28傳輸的第三拍完成,主機開始向位址0x2C傳輸最後一拍。
BUSY傳輸,未定義長度的突發:
在等待未定義長度突發的傳輸期間,INCR,當
HREADY
為低電平時,主機被允許從BUSY轉換到任何其他傳輸類型。 如果執行了SEQ傳輸,則突發繼續,但是如果執行了IDLE或NONSEQ傳輸,則突發終止。
圖3-15顯示了在未定義長度的突發期間等待的傳輸,傳輸類型從BUSY變為NONSEQ。
在圖3-15中:
T0-T1——主機将INCR突發的下一拍發送到位址0x64。
T1-T3——主機向位址0x68插入一個BUSY傳輸。從機插入等待狀态,
HREADYOUT
=LOW。
T3-T4——主機将傳輸類型更改為NONSEQ,并向位址0x10發起新的突發。
T4-T6——當
HREADY
為低電平時,主機必須保持
HTRANS
恒定。
T5-T6——未定義長度突發在
HREADY
為高電平時完成,主機開始第一拍至位址0x10。
T6-T7——向位址0x10傳輸的第一拍完成,主機開始向位址0x14傳輸下一拍。
3.6.2 等待狀态期間的位址改變
當從機請求等待狀态時,主機隻能更改一次位址,如下所述:
在IDLE傳輸期間:
在等待傳輸期間,允許主機更改IDLE傳輸的位址。 當
HTRANS
傳輸類型更改為NONSEQ時,主機必須保持位址不變,直到
HREADY
為高。
圖3-16顯示了單個突發的等待傳輸,位址在IDLE傳輸期間發生變化。
在圖3-16中:
T0-T1——主機向位址A發起單次突發。
T1-T2——主機向位址Y插入一個IDLE傳輸。從機插入一個等待狀态,
HREADYOUT
=LOW。
T2-T3——主機向位址Z插入一個IDLE傳輸。
T3-T4——主機将傳輸類型更改為NONSEQ,并向位址B發起INCR4傳輸。在
HREADY
變為高電平之前,不允許再進行位址更改。
T5-T6——到位址A的單次突發在
HREADY
為高電平時完成,主機開始到位址B的第一拍。
T6-T7——到位址B的INCR4傳輸的第一拍完成,主機開始到位址B+4的下一拍。
出現ERROR響應後:
在等待傳輸期間,如果從機ERROR響應,那麼當
HREADY
為低電平時,主機可以更改位址。
圖3-17顯示了一個等待的傳輸,位址随着從機的ERROR響應而改變。
在圖3-17中:
T0-T1——主機向位址0x24發起突發的下一拍。
T1-T3——主機向位址0x28發起突發的下一拍。從機回答說OKAY。
T3-T4——從機報錯ERROR。
T4-T5——主機将傳輸類型更改為IDLE,并允許在
HREADY
為低電平時更改位址。從機完成ERROR響應。
T5-T6——位址0xC0的從機以OKAY響應。
3.7 保護控制(HPROT[3:0])
本規範的A發行版定義了一個4位
HPROT
信号,這将在本節中描述。本規範的B發行版增加了擴充記憶體類型,這将在記憶體類型中較長的描述。
保護控制信号
HPROT[3:0]
提供有關總線通路的附加資訊,主要供任何實作某種級别保護的子產品使用。
這些信号訓示傳輸是否為:
- 操作碼擷取或資料擷取。
- 特權模式通路或使用者模式通路。
對于具有存儲器管理單元(MMU)的主機,這些信号還訓示目前通路是可緩存的還是可緩沖的。表3-4列出了
HPROT
信号編碼。
許多主機無法生成準确的保護資訊。如果主機無法生成準确的保護資訊,本規範建議:
- 主機将
設定為0b0011,以對應于不可緩存、不可緩沖的特權資料通路。HPROT
- 除非絕對必要,否則從機不使用
。HPROT
HPROT
控制信号的時序與位址總線完全相同。然而,它們必須在整個突發傳輸中保持不變。
3.8 存儲類型(HPROT[6:4])
AHB5定義了擴充記憶體類型屬性。此屬性定義接口是否支援本節中描述的擴充記憶體類型。如果未定義此屬性,則接口不支援擴充記憶體類型。本規範增加了額外的
HPROT
信号,并提供了每種記憶體類型的更詳細的需求清單。
表3-5顯示了每個
HPROT
位的含義。
3.8.1 資料或指令
所有傳輸都包括資料或指令保護位
HPROT[0]
:
- 置位時,該位表示傳輸是資料通路。
- 解除置位時,該位表示傳輸是取指令。
協定将此訓示定義為一個提示。它不是在所有情況下都準确,例如,當事務包含指令和資料項的混合時。本規範建議主機将
HPROT[0]
設定為高,以訓示資料通路,除非該通路被明确稱為指令通路。
3.8.2 無特權或有特權
所有傳輸都包括特權或非特權保護位
HPROT[1]
:
- 置位時,該位表示傳輸是特權通路。
- 解除置位時,該位表示傳輸是非特權通路。
3.8.3 記憶體類型
本節提供了有關
HPROT
保護控制信号的更多資訊,以及這些信号與不同記憶體類型的關系。表3-6顯示了
HPROT[6:2]
信号和存儲器類型之間的映射。表3-6未顯示的位組合是不允許的。
裝置記憶體類型E字尾表示允許提前寫響應。裝置記憶體類型nE字尾表示不允許提前寫響應,寫響應必須來自最終目的地。
以下各節詳細介紹了每種記憶體類型的要求。
3.8.4 裝置記憶體要求
對于所有裝置記憶體,即裝置1和裝置2,所需的行為是:
- 讀取資料必須從最終目的地獲得。
- 不得将傳輸拆分為多個傳輸或與其他傳輸合并。
- 不得預取或推測性地執行讀取。
- 不得合并寫入。
- 從同一主機到同一從機的所有讀寫傳輸必須保持有序。
- 不得改變傳輸的大小,即
。HSIZE
- 允許将傳輸突發分成多個較小的突發。但是,原始突發中的NONSEQ和SEQ傳輸的總數必須與合成的較小突發中的NONSEQ和SEQ傳輸的總數相同。
-
允許的唯一更改是将Bufferabe的傳輸轉換為Non-bufferable。HPROT
此外,對于Device-nE:
- 必須從最終目的地獲得寫響應。
此外,對于Device-E:
- 寫響應可以從中間點獲得。
- 在給出寫響應時,所有其他主機都必須能夠觀察到寫傳輸。
- 寫傳輸必須及時到達最終目的地。
3.8.5 正常記憶體要求
對于所有正常記憶體,即正常Non-cacheable記憶體、 Write-through和Write-back,所需的行為是:
- 讀可以是推測性的。
- 讀取可以擷取比所需更多的資料。
- 可以合并寫入。
- 由
和HBURST
訓示的傳輸特性可以改變。HSIZE
- 從同一主機到重疊位址的讀寫傳輸必須保持有序。
- 對于可共享的事務,隻有在所有其他主機都可以看到傳輸時,才必須給出響應。
此外,對于普通Non-cacheable記憶體:
- 必須及時使寫傳輸在最終目的地可見。
- 讀取資料必須從以下來源獲得:最終目的地或正在向最終目标進行的寫入傳輸。
- 如果從寫傳輸中獲得讀資料:它必須從最新版本的寫入中獲得。不得緩存資料以供以後讀取。
- 讀取操作不得緩存擷取的資料供以後使用。
(對于普通的不可緩存記憶體,可以從仍在向最終目的地前進的寫傳輸中擷取讀資料,這與傳播以同時到達最終目的地的讀和寫傳輸是無法區分的。以這種方式傳回的讀資料并不表示寫傳輸在最終目的地可見。)
此外,對于Write-through:
- 寫響應可以從中間緩存或緩沖區獲得。
- 讀取資料可以緩存在中間緩存或緩沖區中。
- 讀寫傳輸需要緩存查找。
- 必須及時使寫事務在最終目的地可見。
此外,對于Write-back:
- 寫響應可以從中間緩存或緩沖區獲得。
- 讀取資料可以緩存在中間緩存或緩沖區中。
- 讀寫傳輸需要緩存查找。
- 不要求寫事務在最終目的地可見。
3.8.6 配置設定屬性
Write-through和Write-back傳輸包括配置設定屬性
HPROT[5]
:
- 聲明後,出于性能原因,本規範建議将此傳輸配置設定到緩存中。
- 取消聲明時,出于性能原因,本規範建議不在緩存中配置設定此傳輸。
3.8.7 遺留問題
表3-7顯示了本規範建議為僅包含
HPROT[3:0]
信号的元件提供
HPROT[6:0]
信号的映射。
當在僅包含
HPROT[3:0]
的系統中使用支援
HPROT[6:0]
的元件時,可以移除高階
HPROT
位。
3.9 安全傳輸(HNONSEC)
AHB5定義了安全傳輸屬性。此屬性定義接口是否支援安全和非安全傳輸的概念。如果未定義此屬性,則接口不支援安全傳輸。
一個支援安全傳輸的接口有一個額外的信号,
HNONSEC
。對于非安全傳輸,該信号被置位,對于安全傳輸,該信号被取消置位。
HNONSEC
是一個位址相位信号,具有與
HADDR
相同的有效性限制。
在不支援安全傳輸的元件之間進行接口時,必須小心。
(該信号被定義為當其被斷言時,傳輸被識别為不安全的。這與ARM安全擴充實作中的其他信令是一緻的。)
四. 總線互連
4.1 互連
互連元件提供系統中主裝置和從裝置之間的連接配接。
單個主系統隻需要使用解碼器和多路複用器,如下節所述。
多主機系統需要使用互連,該互連提供仲裁以及從不同主機到适當從機的信号路由。位址、控制和寫資料信号需要這種路由。本協定中沒有提供用于多主系統的不同方法的進一步細節,例如單層或多層互連。
4.2 位址解碼
位址解碼器為總線上的每個從機提供一個選擇信号
HSELx
。選擇信号是高階位址信号的組合解碼。鼓勵簡單的位址解碼方案,以避免複雜的解碼邏輯,并確定高速操作。
當
HREADY
為高電平時,從機必須隻對
HSELx
、位址和控制信号進行采樣,表明目前傳輸正在完成。在某些情況下,當
HREADY
為低電平時,可能會置位
HSELx
,但在目前傳輸完成時,所選從機已發生變化。
可以配置設定給單個從機的最小位址空間是1KB,位址區域的開始和結束必須存在于1KB的邊界上。所有主機都設計為不在1KB位址邊界上執行遞增傳輸。這確定突發永遠不會跨越位址解碼邊界。
圖4-1顯示了解碼器産生的
HSELx
從機選擇信号。
4.2.1 預設從機
如果系統設計不包含完全填滿的記憶體映射,則必須實作一個額外的預設從機,以便在通路任何不存在的位址位置時提供響應。
如果嘗試向不存在的位址位置進行NONSEQUENTIAL或SEQUENTIAL傳輸,則預設從機會提供ERROR響應。
IDLE或BUSY傳輸到不存在的位置會導緻零等待狀态OKAY響應。
4.2.2 多從機選擇
允許單個從機接口支援多個從機選擇信号
HSELx
。 每個
HSELx
信号對應于高階位址位的不同解碼。
這允許單個從接口提供多個邏輯接口,每個邏輯接口在系統位址映射中具有不同的位置。可以配置設定給邏輯接口的最小位址空間是1KB。這種方法不需要從機支援位址解碼來區分邏輯接口。
多個
HSELx
信号的一個典型用例是一個外設,它的主資料路徑和控制寄存器位于位址映射的不同位置。兩個位置都可以通過單個接口通路,無需從機執行位址解碼。
4.3 讀資料和響應複用器
AHB協定與讀資料多路複用器互連方案一起使用。主機向所有從機發送位址和控制信号,解碼器選擇合适的從機。來自所選從機的任何響應資料通過讀資料多路複用器傳遞給主機。
圖4-2顯示了實作具有三個從機的設計所需的多路複用器互連結構。
(如果支援獨占傳輸,多路複用器還必須将适當的
HEXOKAY
信号路由到主機。)
五. 從裝置響應信号
5.1 從機傳輸響應(HRESP——OKAY,ERROR)
主機開始傳輸後,從機控制傳輸進度。傳輸開始後,主機不能取消傳輸。
對于支援AHB5 Exclusive_Transfers屬性的元件,請參見獨占通路信号,以了解額外的
HEXOKAY
傳輸響應信号的詳細資訊。
從機在被通路時必須提供一個訓示傳輸狀态的響應。傳送狀态由
HRESP
信号提供。表5-1列出了
HRESP
狀态。
表5-1顯示,完整的傳輸響應是
HRESP
和
HREADYOUT
信号的組合。
表5-2列出了基于
HRESP
和
HREADYOUT
信号狀态的完整傳輸響應。
這意味着從機可以通過以下三種方式完成傳輸:
- 立即完成傳輸。
- 發出錯誤信号,訓示傳輸失敗。
- 插入一個或多個等待狀态,以便有時間完成傳輸。
這三種從機傳輸響應如下所述:
5.1.1 傳輸完成
當
HREADY
為高電平且
HRESP
為OKAY時,表示傳輸成功完成。
5.1.2 傳輸待定
典型的從機使用
HREADYOUT
将适當數量的等待狀态插入傳輸的資料階段。然後,傳輸完成,
HREADYOUT
為高,OKAY響應表示傳輸成功完成。
當從機在完成響應之前插入多個等待狀态時,它必須将
HRESP
驅動到OKAY。
5.1.3 錯誤響應
從機使用ERROR響應來訓示相關傳輸的某種形式的錯誤情況。通常這表示保護錯誤,例如試圖寫入隻讀存儲器位置。
雖然可以在單個周期内給出一個OKAY響應,但ERROR響應需要兩個周期。為了啟動錯誤響應,從機驅動
HRESP
為高電平以訓示錯誤,同時驅動
HREADYOUT
為低電平以将傳輸延長一個額外周期。在下一個周期中,
HREADYOUT
被驅動為高電平以結束傳輸,而
HRESP
保持被驅動為高電平以訓示錯誤。
由于總線的流水線特性,需要兩個周期的響應。當從機開始發出ERROR響應時,下一次傳輸的位址已經廣播到總線上。兩個周期的響應為主機提供了足夠的時間來取消下一次通路,并在下一次傳輸開始前将
HTRANS[1:0]
驅動到空閑狀态。
如果從機需要兩個以上的周期來提供ERROR響應,則可以在傳輸開始時插入額外的等待狀态。在此期間,
HREADY
為低電平,響應必須設定為OKAY。
圖5-1顯示了帶有ERROR響應的傳輸。
在圖5-1中:
T1-T2——從機插入一個等待狀态,并提供一個OKAY響應。
T2-T3——從機發出錯誤響應。這是錯誤響應的第一個周期,因為
HREADY
為低電平。
T3-T4——從機發出錯誤響應。這是錯誤響應的最後一個周期,因為
HREADY
現在為高電平。主機将傳輸類型更改為IDLE。這取消了對位址B的預期事務,該位址在T2時由一個從裝置寄存。
T4-T5——從機回應一個OKAY響應。
如果從機提供錯誤響應,則主機可以取消突發中剩餘的傳輸。但是,這并不是嚴格的要求,主機在突發中繼續其餘傳輸是可以接受的。
六. 資料總線
6.1 資料總線
實作AHB系統需要獨立的讀寫資料總線。盡管推薦的最小資料總線寬度指定為32位,但可以按照6.3資料總線位寬中所述進行更改。
6.1.1 HWDATA
在寫傳輸期間,主機驅動寫資料總線。如果傳輸被延長,則主機必須保持資料有效,直到傳輸完成,如
HREADY
高電平所示。
對于窄于總線寬度的傳輸,例如32位總線上的16位傳輸,主機隻需驅動适當的位元組通道。從機從正确的位元組通道中選擇寫資料。
6.1.2 HRDATA
在讀傳輸期間,适當的從機驅動讀資料總線。如果從機通過保持
HREADY
為低電平來延長讀傳輸,那麼從機隻需在傳輸的最後一個周期提供有效資料,如
HREADY
為高電平所示。
對于窄于總線寬度的傳輸,從機隻需在活動位元組通道上提供有效資料。主機從正确的位元組通道中選擇資料。從機隻需在傳輸完成時提供有效資料,并給出OKAY響應。錯誤響應不需要有效的讀取資料。
6.2 位元組順序
AHB同時支援大端和小端系統。支援兩種大端資料存儲方法。AHB5引入了Endian屬性來定義支援哪種形式的大端資料通路。
BE8:
位元組不變的大端。術語“位元組不變的大端”源于這樣一個事實,即位元組通路(8位)使用與對同一位址的小端序通路相同的資料總線位。
BE32:
字不變的大端。術語“字不變的大端”源于這樣一個事實,即字通路(32位)對最高有效(MS)和最低有效(LS)位元組使用相同的資料總線位作為對同一位址的小端通路。
下面這組等式定義了哪些資料位用于小端、位元組不變的大端和字不變的大端通路。這些方程使用以下變量:
- address——傳輸的位址。
- Data_Bus_Bytes——8位資料總線位元組通道的數量。
- INT(x)——x值向下取整
6.2.1 小端
當小端元件通路一個位元組時,下面的等式顯示使用了哪些資料總線位:
Byte_Lane = Address –(INT(Address / Data_bus_Bytes)) × Data_Bus_Bytes
資料在
DATA[(8 × Byte_Lane) + 7 : (8 × Byte_Lane)]
上傳輸。
當發生較大的小端位元組傳輸時,資料的傳輸方式如下:
- LS位元組被傳輸到傳輸位址。
- 遞增有效位元組被傳輸到順序遞增的位址。
6.2.2 位元組不變的大端
當位元組不變的大端位元組元件通路一個位元組時,下面的等式顯示使用了哪些資料總線位:
Byte_Lane = Address –(INT(Address / Data_bus_Bytes)) × Data_Bus_Bytes
資料在
DATA[(8 × Byte_lane) + 7 : (8 × Byte_lane)]
上傳輸。
當發生較大的位元組不變的大端位元組傳輸時,資料的傳輸方式如下:
- MS節被傳輸到傳輸位址。
- 遞減的有效位元組被傳輸到順序遞增的位址。
6.2.3 字不變的大端
當一個字不變的大端部件通路一個位元組時,下面的等式顯示使用了哪些資料總線位:
Address_Offset = Address –(INT(Address / Data_Bus_Bytes)) × Data_bus_Bytes
Word_Offset = (INT(Address_Offset / 4)) × 4
Byte_Offset = Address_Offset – Word_Offset
資料在
DATA[(8 × (Word_Offset + 3 – Byte_Offset)) + 7 : 8 × (Word_Offset + 3 – Byte_Offset)]
上傳輸。
對于32位總線,字偏移始終為零,是以等式簡化為:
DATA[(8 × (3 – Byte_Offset)) + 7 : 8 × (3 – Byte_Offset)]
對于使用字不變大端位元組序的半字和字傳輸,資料傳輸方式如下:
- 最高有效位元組被傳輸到傳輸位址。
- 遞減的有效位元組被傳輸到順序遞增的位址。
對于使用字不變大端位元組序的大于一個字的傳輸,資料被分割成字大小的塊:
- 最低有效字被傳輸到傳輸位址。
- 遞增的有效字被傳輸到遞增的位址。
傳輸大小小于資料總線寬度的突發傳輸對于突發的每一拍都有不同的有效位元組通道。
表6-1和表6-2顯示了32位總線上在小端或位元組不變大端系統中活動的位元組通道。在這兩種情況下,活動位元組通道是相同的,但是最高有效位元組和最低有效位元組的位置不同。
表6-3顯示了32位總線上的位元組通道,它們在字不變的大端系統中是有效的。
6.2.4 位元組不變性
位元組不變的大端資料結構的使用簡化了在單個記憶體空間中通路混合端資料結構。使用位元組不變的大端和小端意味着,對于資料結構中的任何多位元組元素:
- 元素使用相同的連續位元組記憶體,而不考慮資料的字元順序。
- 字元順序決定了記憶體中這些位元組的順序,也就是說它決定了記憶體中的第一個位元組是元素的MS位元組還是元素的LS位元組。
- 向給定位址的任何位元組傳輸都會将同一條資料總線上的8位資料傳遞到同一位址位置,而不管該位元組所屬的任何資料元素的字元順序如何。
圖6-1顯示了一個需要位元組不變通路的資料結構的例子。在這個例子中,頭字段使用小端排序,資料有效載荷使用大端排序。
例如,在這個結構中,Count是一個兩位元組的小端元素,這意味着它的最低位址是它的LS位元組。位元組不變性的使用確定了對有效載荷的大端通路不會破壞小端元素。
6.3 資料總線位寬
一種在不增加操作頻率的情況下提高總線帶寬的方法是使片内總線的資料路徑更寬。金屬層數的增加和嵌入式DRAM等大型片上存儲塊的使用是鼓勵使用更寬片上總線的驅動因素。
指定固定的總線寬度意味着,在許多情況下,總線寬度對于應用程式來說不是最佳的。是以,已經采用了一種方法,該方法能夠實作總線寬度的靈活性,但仍然確定子產品在設計之間高度便攜。
該協定允許資料總線為8、16、32、64、128、256、512或1024位寬。但是,建議使用最小32位的總線寬度。256位的最大總線寬度幾乎适用于所有應用。
對于讀寫傳輸,接收子產品必須從總線上正确的位元組通道中選擇資料。不需要跨所有位元組通道複制資料。
6.3.1 在寬總線上實作窄從機
圖6-2顯示了如何将原本設計用于32位資料總線的從子產品轉換為64位總線。這僅僅需要添加外部邏輯,而不是任何内部設計改變,是以該技術适用于硬宏單元。
對于輸出,将窄總線轉換為寬總線時,請執行以下操作之一:
- 複制寬總線兩端的資料,如圖6-2所示。
- 使用額外的邏輯來確定隻改變總線的适當部分。這導緻功耗降低。
從機隻能接受與其自然接口一樣寬的傳輸。如果主機嘗試的傳輸範圍超過從機所能支援的範圍,則從機可以使用ERROR傳輸響應。
6.3.2 在窄總線上實作寬從機
通過使用外部邏輯,預先設計或導入的從機可以适應較窄的資料總線。圖6-3顯示了在窄總線上實作的寬從機。
6.3.3 在寬總線上實作主機
主裝置可以被修改為在比原來更寬的總線上工作,就像從裝置被修改為在更寬的總線上工作一樣。通過以下方式實作:
- 多路複用輸入總線。
- 複制輸出總線。
(除非主機中包含某種機制來限制主機嘗試的傳輸寬度,否則主機無法在比最初預期更窄的總線上工作。主機絕不能嘗試寬度(如
HSIZE
所示)大于其所連接配接的資料總線的傳輸。)
七. 時鐘與複位
7.1 時鐘和複位要求
本節描述實作
HCLK
和
HRESETn
信号的要求。
7.1.1 時鐘
每個元件使用一個時鐘信号
HCLK
。所有輸入信号都在
HCLK
的上升沿采樣。所有輸出信号變化必須發生在
HCLK
的上升沿之後。
7.1.2 複位
複位信号
HRESETn
是協定中唯一低電平有效的信号,也是所有總線元件的主要複位信号。複位可以異步置位,但在
HCLK
上升沿後同步取消置位。
元件必須定義複位信号必須置位的最小周期數,以確定元件完全複位且輸出處于所需的複位值。
複位期間,所有主機必須確定位址和控制信号處于有效電平,并且
HTRANS[1:0]
訓示IDLE。
複位期間,所有從機必須確定
HREADYOUT
為高電平。
八. 獨占傳輸
8.1 介紹
AHB5定義了Exclusive_Transfers屬性。此屬性定義接口是否支援獨占傳輸的概念。如果未定義此屬性,則接口不支援獨占傳輸。
獨占傳輸提供了一種支援信号量類型操作的機制。
獨占通路序列是來自單個主機的獨占傳輸序列,使用以下步驟操作:
- 從一個位址執行獨占讀取傳輸。
- 基于從獨占讀取獲得的資料值,計算要存儲到該位址的新資料值。
- 在獨占讀取和獨占寫入之間,可以有其他非獨占傳輸。
- 使用新資料值對同一位址執行獨占寫入傳輸:如果獨占讀取傳輸後沒有其他主機寫入該位置,則獨占寫入傳輸成功并更新記憶體。如果自獨占讀取傳輸後,另一個主機已寫入該位置,則獨占寫入傳輸失敗,并且不會更新存儲位置。
- 對獨占寫入傳輸的響應訓示傳輸是成功還是失敗。
該序列確定隻有在存儲到存儲器的位置仍然保持用于計算要寫入該位置的新值的相同值時,才更新存儲器位置。
如果獨占寫入傳輸失敗,預計主機将重複整個獨占通路序列。
實施定義在獨占讀取傳輸後,同一主機對相同或重疊位置的更新是否會導緻關聯的獨占寫入傳輸成功或失敗。
8.2 獨占通路螢幕
需要獨占通路螢幕來支援獨占通路序列,并且該螢幕必須确定獨占寫入傳輸是成功還是失敗。
獨占通路螢幕必須能夠同時監視系統中每個獨占通路主機的至少一個位址位置。
獨占通路螢幕在系統中的位置未定義。但是,它的位置必須能夠觀察到對用于獨占通路序列的所有位址位置的通路。例如,如果一個系統包括多個記憶體控制器,要麼所有通路都通過包含獨占通路螢幕的中心點路由,要麼每個記憶體控制器都需要一個單獨的獨占通路螢幕。
不要求系統支援對所有位址位置的獨占通路序列。為對不支援獨占通路序列的位置的通路提供了故障安全機制。通常,系統應該支援對主存儲器的獨占通路序列,但不支援對任何外圍裝置的獨占通路序列。
8.3 獨占通路信号(HEXCL,HMASTER,HEXOKAY)
與獨占傳輸相關的附加信号有:
HEXCL
:
獨占傳輸。訓示傳輸是獨占通路序列的一部分。該信号是一個位址相位信号,具有與
HADDR
相同的有效性限制。
HMASTER[m:0]
:
主機辨別符。擁有多個具有獨占功能的線程的主線程必須生成此信号來區分線程。主機生成的
HMASTER
值将與互連生成的值相結合,以確定呈現給獨占通路螢幕的結果
HMASTER
值是唯一的。該信号是一個位址相位信号,具有與
HADDR
相同的有效性限制。
HEXOKAY
:
獨占OKAY。增加了一個額外的響應信号來訓示獨占傳輸的成功或失敗。
HMASTER[m:0]
信号的寬度由實作定義。但是,本規範建議以下寬度:
- 對于主機元件,實作支援的可獨占線程數所需的位數。
- 對于主機連接配接的互連端口,實作4位。可選地,互連可以支援更大位寬的配置。
- 對于從機或監控器元件,實作8位。可選地,從屬或監控元件可以支援更大位寬的配置。
HMASTER
信号允許用于專用傳輸以外的目的。允許系統中的互連和從屬元件使用該信号來區分系統中的不同主機,并适當地調整它們的行為。是以,必須為所有傳輸提供有效的
HMASTER
訓示,而不僅僅是獨占傳輸。
8.3.1 響應信号
HEXOKAY
信号用于訓示獨占傳輸的成功或失敗:
- 置位時,
表示獨占傳輸已成功,對于獨占寫入傳輸,存儲位置已更新。HEXOKAY
- 解除置位時,
表示獨占傳輸失敗。這可能是因為:已嘗試對不支援獨占傳輸的位址位置進行獨占傳輸。獨占寫入傳輸失敗,因為自比對的獨占讀取傳輸以來,記憶體位置沒有保持不變。在這種情況下,存儲位置不會更新。HEXOKAY
通過確定總是首先對不支援獨占傳輸的位址位置執行獨占讀取傳輸,主機可以確定不會嘗試對該位置執行獨占寫入傳輸。
以下限制适用于
HEXOKAY
:
-
必須僅在與HEXOKAY
相同的周期内有效。HREADY
-
不得在與HEXOKAY
相同的周期内置位。HRESP
8.4 獨占傳輸限制
以下限制适用于獨占傳輸:
- 必須進行單次資料傳輸。
- 必須顯示為突發類型SINGLE或突發類型INCR。
- 不得包含BUSY傳輸。
- 位址必須與高速緩存訓示的資料大小一緻。
-
信号的值必須保證獨占通路螢幕能夠看到傳輸。HPROT
(
HPROT
信号必須保證獨占通路螢幕能夠看到傳輸。如果獨占通路螢幕位于系統緩存的下遊,則傳輸必須是不可緩存的。如果獨占通路螢幕位于系統緩存的上遊,則允許傳輸是可緩存的。)
要将獨占讀取傳輸和獨占寫入傳輸視為同一獨占通路序列的一部分,以下信号對于兩次傳輸必須相同:
-
,位址。HADDR
-
,資料大小。HSIZE
-
,保護控制。HPROT
-
,突發類型。HBURST
-
,主機辨別符。HMASTER
-
,不安全,如果适用。HNONSEC
允許主機發出獨占讀取傳輸,并且絕不在同一獨占通路序列中進行獨占寫入傳輸。
允許主機發出獨占寫入傳輸,在同一獨占通路序列中,該傳輸之前沒有獨占讀取傳輸。在這種情況下,獨占寫入傳輸必須失敗,并且必須取消置位
HEXOKAY
響應信号。
一個主裝置不得在同一時間點有兩個未完成的獨占傳輸。當先前獨占傳輸的資料階段正在進行時,不能釋出獨占傳輸的位址階段。無論傳輸是否屬于同一獨占通路序列,這都适用。
允許釋出具有特定
HMASTER
值的獨占傳輸的位址階段,而具有不同
HMASTER
值的早期獨占傳輸的資料階段正在進行中。
(獨占傳輸的位址階段被定義為當
HEXCL
被置位,并且
HTRANS
訓示NONSEQ時。當
HTRANS
訓示IDLE時,
HEXCL
的斷言沒有被定義為獨占傳輸的位址階段。)
九. 原子性
9.1 單副本原子性大小
單拷貝原子性大小定義了傳輸保證原子性更新的資料位元組數。
單副本原子性大小是為一組正在通信的元件定義的。例如:
- 處理器、DSP和DRAM控制器屬于64位單拷貝原子組。
- 更大的組,包括處理器、DSP、DMA、DRAM、SRAM和外圍裝置,屬于32位單拷貝原子組。
傳輸的單副本原子性保證永遠不會大于其起始位址的對齊。例如,64位單拷貝原子組中未與8位元組邊界對齊的突發沒有任何64位單拷貝原子性保證。
當寫傳輸更新記憶體位置時,必須保證觀察者會看到:
- 位置沒有更新。
- 更新到至少單副本原子大小的資料量。
不允許另一個觀察者在某個時間點看到單拷貝原子性大小内的一些資料位元組被更新,然後在稍後的時間點看到同一單拷貝原子性大小内的其他資料位元組被更新。
與傳輸相關聯的位元組選通不影響單拷貝原子性大小。
要求大于單副本原子性大小的傳輸必須以至少為單副本原子性大小的塊來更新記憶體。
(在确定單副本原子性大小時,不考慮資料值更新的确切時刻。必須確定的是,沒有一個主機能夠觀察到原子資料的部分更新形式。例如,在許多系統中,資料結構(如連結清單)由32位原子元素組成。這些元素之一的原子更新需要同時更新整個32位值。任何主機都不能在某個時間點僅觀察到16位的更新,然後在稍後的時間點觀察到其他16位的更新。)
更複雜的系統需要支援更大的原子元素,特别是64位原子元素,以便主機可以使用基于這些更大原子元素的資料結構進行通信。
9.2 多副本原子性
AHB5定義了Multi_Copy_Atomicity屬性。定義該屬性是為了指定系統提供多副本原子性。
如果Multi_Copy_Atomicity屬性設定為真,則系統被定義為具有此屬性。
不支援Multi_Copy_Atomicity屬性的系統的預設值為假。
在下列情況下,系統被定義為多副本原子系統:
- 所有代理都以相同的順序觀察對相同位置的寫入。
- 對發行人以外的代理人可觀察到的位置的寫入可被所有代理人觀察到。
可以通過避免使用轉發緩沖區來確定多副本原子性,這可以使傳輸對系統中的一些代理可見,但對所有代理不可見。
十. 使用者信号
10.1 使用者信号描述(HAUSER,HWUSER,HRUSER)
為每個通道定義的使用者信号名稱有:
HAUSER
:使用者信号位址通道。
HWUSER
:寫資料通道使用者信号。
HRUSER
:讀資料通道使用者信号。
這些信号具有與相關通道相同的時序和有效性要求。
對于資料通道使用者信号,本規範建議:
- 使用者位數是接口寬度的整數倍,以位元組為機關。
- 每個位元組的使用者位被打包在相鄰的位中。
資料通道的使用者位位置定義為:
- 每個資料位元組有m個與之相關的使用者信号。
- 資料總線寬度為n位元組。
- 使用者位的總數為u,其中u = m × n。
使用者發出位元組y的信号,其中y = 0…(n–1),位于:
-
HWUSER[((y×m)+(m–1)):(y×m)]
-
HRUSER[((y×m)+(m–1)):(y×m)]
本規範建議在互連上包含使用者信号,但是不要求在主裝置或從裝置上包含使用者信号。
本規範建議互連元件支援使用者信号,以便它們可以在主元件和從元件之間傳遞。使用者定義信号的寬度由實作定義,每個通道的寬度可以不同。
10.2 使用者信号互連建議
對于未被互連修改的傳輸,與傳輸相關聯的使用者信号可以未經修改地通過互連傳輸。
對于由互連修改的傳輸,本節中的資訊提供了與生成的傳輸相關聯的使用者信号生成指南。
當一次轉移轉換為多次轉移時:
- 原始傳輸的
信号被複制到每個生成的傳輸中。HAUSER
- 對于包含原始傳輸的一些資料位元組的每個生成的傳輸,生成的傳輸的
和HWUSER
信号使用傳輸中包含的資料位元組的使用者位。HRUSER
如果多次轉移轉換為一次轉移:
- 第一次轉移的
信号用于産生所産生的轉移的HAUSER
信号。後續傳輸的HAUSER
信号被丢棄。HAUSER
- 生成傳輸的
和HWUSER
信号使用原始傳輸中相關資料位元組的組合使用者位。HRUSER