資料來源
(1) amba bus spec翻譯.pdf
3.傳輸
3.3鎖定傳輸
(1) 如果master需要鎖存訪問locked access,它需要是能MASTLOCK信號;該信號告訴所有slave當前傳輸序列transfer sequence是不可分割的,需要優先處理(多master場景下的應用??);
注1:圖3-7展示了微處理器SWP指令下HMASTLOCK信號,先對地址A進行讀操作,在下一個周期執行寫操作,中間不能進行其他傳輸,只能該master進行傳輸;
注2:推薦一個鎖定傳輸后,master插入一個空閑傳輸IDLE;
注3:master可以在鎖定傳輸序列的開始,中間和結束時對空閑傳輸使能HMASTLOCK信號,也就是將空閑傳輸當作鎖定傳輸的一部分(但是不建議這樣使用,因為空閑說明總線能被其他master使用,但又是鎖定傳輸的一部分,就是說還是當前master占用總線);
注4:master可以在多個空閑傳輸上使能HMASTLOCK,並在沒有執行一個非空閑傳輸的情況下釋放HMASTLOCK信號(不建議這樣使用,影響總線仲裁);
3.4傳輸大小
(1) HSIZE指出一次數據傳輸的大小;
(2) 傳輸大小必須小於等於數據總線寬度;
(3) HSIZE和HBRUST決定回環突發傳輸wrapping burst的地址邊界,見3.5章節;
(4) HSIZE信號的時序和地址總線一樣,但它們需要在整個突發傳輸中保持不變;
3.5 突發傳輸burst操作
(1) 本協議定義了4拍,8拍,16拍, 未定義長度和單次傳輸(如上圖所示),支持增量突發傳輸(INCR)和回環突發傳輸(WRAP);
(2) 增量突發傳輸(incrementing burst)訪問連續的地址,每次傳輸的地址時上次傳輸地址加固定數值,地址可以理解為等差數列;
(3) 回環突發傳輸(wrapping burst):當跨越地址邊界時,拍的數目(HBURST)乘以傳輸的大小(HSIZE)得到地址邊界(address boundary);
注1:如果回環突發傳輸中,HBURST=3‘b010(4拍回環突發傳輸),HSIZE=3'b011(8 byte),地址邊界為4*8=32, 起始地址為0x34,那么4拍回環傳輸的地址分別為0x34, 0x3c, 0x44,0x4c(0x34='d52,除以32無法整除,保持原樣; 0x3c=’d60,除以32無法整除,保持原樣; 0x44='d68,除以32無法整除,保持原樣; 0x4c='d76,除以32無法整除,保持原樣);
注2:如果回環突發傳輸中,HBURST=3‘b010(4拍回環突發傳輸),HSIZE=3'b011(8 byte),地址邊界為4*8=32, 起始地址為0x50,那么4拍回環傳輸的地址分別為0x50, 0x58, 0x40,0x48(0x50='d80,除以32無法整除,保持原樣; 0x58=’d88,除以32無法整除,保持原樣; 0x60='d96,除以32可以整除,地址變為0x60-0x20,即0x40; 0x48='d72,除以32無法整除,保持原樣);
(4) Burst大小決定拍的數目,而不是傳輸大小,傳輸大小由HSIZE決定; Burst里的所有傳輸,必須和傳輸大小HSIZE地址邊界對齊(空閑傳輸的地址也必須對齊);
3.5.1 在busy傳輸后終止突發傳輸
(1) 突發傳輸開始后,master使用忙傳輸busy請求更多的時間來繼續完成下一個突發傳輸;
(2) 在未定義長度突發傳輸中,master可能插入busy傳輸,然后決定沒有數據需要傳輸; 這種情況下,可以接受master執行一個非連續或者空閑傳輸終止突發傳輸;
(3) 協議不允許master使用busy傳輸結束固定長度的突發傳輸,如INCR4,INCR8,INCR16和WRAP4, WRAP8, WRAP16;這些固定長度的突發傳輸類型必須用SEQ傳輸終止;
(4) master也不允許在single突發傳輸后,使用busy傳輸; single突發傳輸必須跟着空閑傳輸或者非連續傳輸;
3.5.2 提前終止突發
(1) 當slave錯誤回應或多層互連終止時,突發傳輸會終止;
(2) slave發出錯誤響應,master可以取消突發傳輸剩下的部分;但是,這不是嚴格的要求,也允許master繼續傳輸剩下的; 如果master取消傳輸,它需要在兩個錯誤響應周期中將HTRANS改為空閑(???);
(3) 當多master系統使用多層互連組件,master可以終止突發傳輸以便另一個master可以訪問該slave;
3.5.3 突發傳輸案例
(1) 上圖為4拍回環突發傳輸的寫操作;因為HSIZE為word,即4個byte,所以地址加4;此外,從圖中可看出,第一次傳輸中slave增加了等待狀態;
(2) 上圖為4拍的增量突發讀傳輸;第一個傳輸中,slave加入了等待狀態;
(3) 上圖為8拍的回環突發讀傳輸;
(4) 上圖展示了8拍的增量寫突發傳輸;
(5) 上圖中,第一個burst由兩個半字傳輸組成,每次地址加2; 第二個burst由三個字傳輸組成,每次地址加4;