AHB 總線問答(轉)

AHB總線問答


http://blog.163.com/huanhuan_hdu/blog/static/1352981182011625916845/跨域


仲裁:主設備能夠在一個突發傳輸中解除HLOCK信號嗎?緩存

應用於AHB性能

AHB規範中要求全部在地址傳輸相位內的控制(除了HADDRHTRANS)在突發傳輸週期中保持穩定。spa

儘管HLOCK信號不是一個地址傳輸相位內的信號,可是它卻直接控制HMASTLOCK信號,而該信號是在地址傳輸相位的。設計

因此HLOCK信號必須在整個突發傳輸週期中維持爲高,而且只能在最後一個地址傳輸相位以後改變,HMASTLOCK信號隨之改變。blog

仲裁:主設備能夠在被分配到總線而有不須要使用總線的時候進行一個不是IDLE的傳輸嗎?接口

應用於AHB內存

是的。主設備能夠在被分配到總線而有不須要使用總線的時候進行一個不是IDLE的傳輸。可是請注意,在這種狀況下任然建議主設備繼續維持請求信號,以便仲裁器不會在傳輸過程當中將總線使用權分配給另外一個優先級更低的主設備。同步

仲裁:若是一個主設備當前被默認分配到了總線使用權,那麼它在開始一個非IDLE傳輸以前須要維持HBUSREQ多少個週期?it

應用於AHB

不須要。主設備能夠當即開始一次非IDLE傳輸。

仲裁:HLOCK信號和HMASTLOCK信號之間有什麼關係?

應用於AHB

在每一個傳輸週期中的地址傳輸相位開始的時候,仲裁器都會對將要驅動地址信號線的主設備的HLOCK信號採樣,若是HLOCK信號在此時有效那麼仲裁器就會拉高HMASTLOCK並維持整個傳輸週期中的地址傳輸相位階段。

仲裁:HGRANT信號能夠在什麼什麼改變?

應用於AHB

HGRANT信號能夠在任意週期改變,並有多是一下幾種狀況:

  • HGRANT信號有效,而後在當前傳輸週期完成以前移除。這是有可能的而且是容許的,由於HGRANT信號只在HREADY信號爲高的時候被主設備採樣。

  • 主設備能夠不須要申請而獲得總線使用權。

  • 以上兩點意味着主設備可能在申請總線的同時得到總線使用權。這發生在在主設備在同一個週期申請總線並同時被仲裁器分配總線使用權。

仲裁:爲何HADDR信號有時候是仲裁器的輸入信號?

應用於AHB

地址總線,HADDR,本是不須要做爲仲裁器的輸入信號的,可是在有些設計中卻能夠用於幫助仲裁器決定改變總線使用權的恰當時機。例如,仲裁器能夠設計成當突發傳輸到達4字邊界的時候改變總線使用權。

仲裁器能夠設計成老是容許突發傳輸完成嗎?

應用於AHB

應用於AMBA AHB

從設備給出SPLITRETRY ERROR 響應總會引發突發傳輸提早結束,而這是不受仲裁器控制的,所以(仲裁器)必須予以支持。

未定義長度的INCR 突發傳輸的結束點並不能預測到,因此尚未有效的方法設計仲裁器以保證在將總線授予另外一個主設備時突發傳輸已經結束。

定長的INCRx WRAPx突發傳輸可以計數它們傳輸的節拍,因此仲裁器能夠容許他們傳輸結束。可是因爲AHB仲裁的同步時序,因此沒有辦法避免在突發傳輸第一次傳輸發起以後就當即結束突發傳輸的可能性。

仲 裁器只有經過對HBURST 信號的採樣才知道一個定長的突發傳輸正在進行。可是HBURST 信號第一次能夠被採樣到的店是在突發傳輸第一節拍的第一個時鐘週期以後,而在那時,仲裁器極可能已經決定將總線授予另外一個主設備並相應要改變HGRANT 信號。在這種狀況下,只有一條從HBURST HGRANT 的組合路徑可以幫助及時檢測到突發傳輸以免提早結束,可是組合路徑在AHB 總線中是不容許的。

主設備應該在一個鎖定傳輸中何時拉高是釋放HLOCK 信號?

應用於AHB

在一個鎖定傳輸中,HLOCK 信號必須至少在地址傳輸相位以前一個週期拉高。這樣才能保證仲裁器在地址傳輸相位開始的時候,採樣到的HLOCK 信號爲高。

主設備應該在鎖定傳輸中最後一次傳輸的地址傳輸相位發起以後釋放HLOCK 信號。

主設備應該在何時釋放HBUSREQ 信號?

應用於AHB

對於一個未定義長度的突發傳輸(INCR),主設備必須保持HBUSREQ 信號爲高一直到突發傳輸中的最後一次傳輸的地址傳輸相位發起以後。這將意味着若是倒數第二次傳輸是一個零等待狀態,那麼主設備可能會在未定義長度突發傳輸以後還被授予總線都多一次額外的傳輸。

對於定長突發傳輸,主設備能夠在第一次得到總線發起傳輸以後就釋放HBUSREQ 信號。只因此能夠這樣作是由於仲裁器可以對突發傳輸中的傳輸節拍計數並保持主設備一直被授予總線知道突發傳輸的結束。

可是,仲裁器並無強制要求必須容許突發傳輸的結束。因此,若是仲裁器在突發傳輸結束以前就改變了HGRANT 信號,那麼主設備必須再次拉高HBUSREQ 信號。

仲裁器在一次鎖定傳輸以後何時會將總線授予另外一個主設備?

應用於AHB

仲裁器總會授予主設備在鎖定傳輸週期以後一個額外的傳輸,因此主設備可以保證在鎖定傳輸週期以後HMASTLOCK 信號爲低的時候執行一次傳輸。而這恰巧又是在鎖定傳輸的最後一次傳輸的數據相位上。

此 時,仲裁器能夠將改變HGRANT 信號授予另外一個主設備,可是若是在最後一次鎖定傳輸的數據相位上收到一個RETRY 響應,那麼仲裁器將會繼續驅動HGRANT 信號以確保那個執行鎖定傳輸的主設備繼續得到總線;若是在最後一次鎖定傳輸的數據相位上收到一個SPLIT 響應,那麼仲裁器將會將總線授予一個虛擬的主設備。

整體:對於一個容許斷電或者時鐘中止的從設備,須要什麼樣的系統支持?

應用於AHB

若是系統視圖訪問一個斷電的或者時鐘中止的從設備,你必須確保此次訪問可以喚醒電源供電或恢復時鐘,或者配置AHB 譯碼器全部這種類型的訪問重定向到一個虛擬從設備,這樣以免系統訪問一個無效的從設備時永遠等停在那裏。

這種方式的重定向須要確保隨機IDLE  地址的訪問將會有HREADY 爲高,HRESP=OKAY 的默認響應,可是對於真正的訪問(NONSEQ 或者SEQ)將會有ERROR 響應。

整體:何時能夠發生突發傳輸提早結束?

應用於AHB

突發傳輸提早結束或是由於仲裁器在突發傳輸過程當中改變HGRANT 信號,或是由於從設備在任一傳輸節拍中給出非OKAY 響應。注意雖然主設備不能決定一個定長的突發傳輸直到主設備被仲裁器或者從設備提示要這樣作。

全部的AHB 主設備,從設備和仲裁器都必須設計成支持突發傳輸提早結束。

整體:HTRANS 信號能夠在HREADY 爲低時改變嗎?

應用於AHB

通常來講,AHB 主設備不該該在HREADY 信號爲低的時候改變控制信號,可是在如下狀況,容許改變HTRANS 信號:

  • HTRANS = IDLE

AHB 主設備在執行一個內部操做而且沒有發起一次總線傳輸。可是在AHB 等待狀態下(HREADY 爲低),主設備可能會決定須要一次總線傳輸而後在下一個週期將HTRANS 改成NONSEQ

  • HTRANS = BUSY

HTRANS 在此時正是給予主設備必定時間以完成其內部操做,而這多是與HREADY 信號無關的(例如,AHB 中的等待狀態)。所以HTRANS 信號能夠在下一個週期改變爲任意合法的值,如,在突發傳輸須要繼續時改成SEQ,在突發傳輸結束時改成IDLE,在須要發起一個單獨的傳輸時改成 NONSEQ

  • HRESP = SPLITRETRY

正如AHB 規範中所述,主設備必須在雙週期響應SPLITRETRY的第二個週期保持HTRANSIDLE,因此HTRANS 會在第二個週期中從第一個週期中的值改變爲IDLE

  • HRESP = ERROR

主 設備容許在迴應ERROR 響應時改變HTRANS 信號,就像迴應SPLITRETRY響應同樣,而且取消當前突發傳輸中的後續傳輸(即便HTRANS當前表示的是定長突發傳輸)。在這種狀況 下,HTRANS 信號在第響應的二個週期改變爲IDLE。或者主設備也能夠容許繼續當前傳輸。

整體:BUSY 傳輸能夠發生在突發傳輸以後嗎?

應用於AHB

BUSY 傳輸只能發生在不定長突發傳輸(INCR)的結束。

BUSY 傳輸不能發生在定長突發傳輸(SINGLEINCR4WAP4INCR8WAP8INCR16WAP16)的結束。

整體:主設備能夠在傳輸等待中改變地址和控制信號嗎?

應用於:AHB

能夠的。若是地址和控制信號表示的是一個IDLE 傳輸,那麼主設備能夠在HREADY 爲低的時候將傳輸改成一個真正的傳輸(NONSEQ)。

可是若是主設備當前正表示一個真正的傳輸(NONSEQ或者SEQ),那麼主設備不能在傳輸等待中取消此次傳輸,除非主設備接收到SPLITRETRY或者ERROR 響應。

整體:AHB 主設備能夠直接連到AHB 從設備嗎?

應用於:AHB

任何不支持SPLIT 響應的從設備均可以直接連到AHB 主設備上。若是從設備確實有使用SPLIT 響應,那麼一個簡化版的中採起仍是須要的。
若是一個AHB 主設備直接連到AHB 從設備,那麼必須確保從設備在復位的時候維持HREADY 信號爲高,而且從設備選擇信號HSEL 永遠維持爲高。

整體:全部的從設備都必須支持BUSY 傳輸類型嗎?

應用於AHB

是的。全部從設備都必須支持BUSY 傳輸類型以確保它可以與任何主設備兼容。

整體:地址必須對齊嗎?即便是IDLE 傳輸?

應用於:AHB

是的。地址應高根據傳輸寬度(HSIZE)對齊,即便是IDLE 傳輸。這會避免在仿真的時候,總線監視器發出的警告。

整體:在AHB 系統中能夠支持多少個主設備?

應用於:AHB

AHB 規範中提供了最多16 個主設備,然而,這還包括一個虛擬主設備,即真正的總線主設備最多以後15 個。習慣上總線主機號0 被分配給虛擬總線主機。

整體:AHBAPB的橋接器如何處理不是32-bits 的訪問?

應用於:AHBAPB

橋接器應該簡單的將整個32-bit 的數據都傳輸過去。可是請注意,當進行小於32-bit的數據傳輸時,確保外設正處在APB 數據總線上的正確比特位上。

整體:HREADY 信號是從設備的輸入信號仍是輸出信號?

應用於:AHB

AHB 從設備必須將HREADY 信號既做爲輸入信號又做爲輸出信號。

從設備須要輸出HREADY 信號以便可以擴展傳輸中的數據傳輸相位。

從設備同時須要將HREADY 信號做爲一個輸入信號,以便可以判斷上一次選擇的從設備在何時完成它的最後一次傳輸,以及當前從設備的數據傳輸相位即將開始。

每個AHB 從設備都應該有一個HREADY 輸出信號(習慣上命名爲HREADYOUT)鏈接到從設備—主設備多路器上多路器的輸出信號就是全局HREADY 信號,它將鏈接到AHB 系統上的全部主設備而且同時做爲HREADY 輸入信號反饋輸入到全部的從設備。

整體:默認從設備真的須要嗎?

應用於:AHB

若是整個4G byte空間都被定義使用到了,那麼默認從設備是不須要的。可是,若是在整個存儲地址空間分配上存在未定義的區域,那麼確保在訪問不存在的地址空間時AHB 系統不會發生死鎖是很重要的。默認主設備的功能是很是簡單的,而且同時在譯碼器中就實現了。

整體:虛擬主設備真的須要嗎?

應用於:AHB

任何存在支持SPLIT 響應的從設備的AHB 系統都是須要有虛擬主設備的。應爲若是全部其它主設備都接收到了SPLIT 響應,那麼系統會將總線使用權分配給虛擬主設備。
虛擬主設備中不須要什麼邏輯,它的實現只須要簡單的將其輸入信號鏈接到地址/控制多路器的虛擬主機位置。虛擬主機須要驅動HTRANS IDLEHLOCK 爲低,全部其它主設備輸出信號驅動爲合法狀態。

整體:主設備在擴展的傳輸中能夠改變HADDR 嗎?

應用於AHB

如 果主設備表示它想進行NOSEQSEQ 或者BUSY 傳輸,那麼它就不容許在擴展的傳輸中(當HREADY 爲低時)改變地址總線上的值,除非它接收到了ERRORRETRY 或者SPLIT 響應。若是主設備表示它想進行一個IDLE 傳輸,那麼它能夠改變地址信號。

整體:有規定須要HPROTHSIZE HWRITE 信號在突發傳輸中須要保持恆定嗎?

應用於AHB

是的,控制信號必須在整個突發傳輸中都要保持恆定。

整體:規範裏面建議只有16個等待狀態,若是須要16個以上的等待週期該怎麼作?

應用於AHB

對於一些從設備而言,16個以上的等待週期是能夠接受的。例如,一個串行的ROM,它只在系統商店初始化的時候會被訪問時會插入大量的等待狀態,可是在系統完成上電初始化以後,它並不影響系統性能和延時的計算。

對於另外一些從設備,存在多項選擇。SPLIT 或者RETRY 響應能夠用於表示從設備暫時還不能執行數據傳輸請求,或者從設備被訪問時,給出一箇中斷響應,或者在查詢一個狀態寄存器以後能訪問。這兩種狀況都表示從設備不可以在可接受的等待週期中給出應答。

整體:不一樣的突發傳輸用在什麼地方?

應用於AHB

一般,主設備在高速緩存行填充的時候使用迴環突發傳輸,主設備先是想獲取他想要的數據,而後完成突發傳輸把剩餘的數據取出藥用於高速緩存行填充。增量突發傳輸主要用在像DMA控制器一類的主設備,須要填充一個可能不是地址邊界對齊的存儲器的緩衝區。

整體:對於從設備而言,應該爲HREADY HRESP 信號什麼樣的默認狀態?

應用於AHB

建議HREADY 的默認狀態爲高,而且HRESP OKAY 狀態。這樣的組合可以保證從設備即便是在低功耗模式下也能對IDLE 傳輸給出正確的響應。

整體:虛擬總線主設備和默認總線主設備之間有什麼區別?

應用於AHB

默認總線主設備是指系統中沒有主設備在申請總線的時候,總線被分配給的那個主設備。一般狀況下,最有可能申請總線的主設備就是默認總線主設備。

虛 擬主設備是指只進行IDLE 傳輸的主設備。系統須要虛擬主設備是以便仲裁器可以保證可以將總線分配給一個不進行任何實際傳輸的主設備。仲裁器在如下兩種狀況下須要這樣作:在一個鎖定 傳輸中獲得一個SPLIT 響應;在全部其餘主設備都已經獲得SPLIT 響應的狀況下,又獲得一個SPLIT 響應。

整體:HPROT 信號默認應該是什麼值?

應用於AHB

許多主設備不能產生準確的保護信息,那麼對於這些主設備,HPROT 信號默認應該表示爲:Non-cacheable, Non-bufferable, Privileged, Data Accesses,也就是HPROT[3:0] = 4'b0011

整體:AHB 信號在復位時是什麼狀態?

應用於AHB

AHB 規範中指出在復位時,總線信號應該是一個肯定的有效的值。簡單的理解就是信號應該是邏輯‘0’或‘1’,而不是高阻態Hi-Z。實際應該是什麼樣的有效的值要取決於設計者。HTRANS 信號是惟一一個在復位時肯定的信號,它將強制爲IDLE

同時,HREADY 信號在復位時保持高電平也很重要。若是全部的系統從設備在復位時驅動HREADY 信號爲高,這將保證這是狀況正常。可是,若是存在從設備在復位的時候不是驅動HREADY 爲高的,應該保證復位時選中的那個從設備須要驅動HREADY 爲高。

整體:主設備應該在何時重建被提早結束的突發傳輸?有哪些限制它如何重建突發傳輸?

應用於AHB

惟 一的限制就是主設備應該使用有效的突發傳輸組合來重建剩下的突發傳輸。例如:若是一個主設備要進行一次8 拍的突發傳輸,可是在傳輸3 拍以後就失去了總線控制權,那麼剩下的5 拍傳輸可使用1 SINGLE 突發傳輸加一次4 拍的INCR4 傳輸,或者也可使用5 拍的未定義長度INCR 突發傳輸。

爲了簡單,建議主設備使用INCR 突發傳輸去完成剩下的傳輸。

整體:爲何一次突發傳輸不容許跨域1 kbyte 邊界?

應用於AHB

若是AHB 從設備在突發傳輸開始的時候採樣到HSELx 信號,它就會知道它將在整個突發傳輸過程當中都被選擇。一樣的,對於在突發傳輸開始的時候沒有被選擇的從設備也知道它在下一次突發傳輸以前都不會被選擇到。

1 kbyte AHB 從設備在存儲器空間分配中能夠佔據的最小空間。所以,若是一個突發傳輸跨越了1 kbyte 邊界,那麼訪問多是開始的時候訪問一個從設備然後的傳輸又轉向另外一個從設備,而根據上述緣由,這是不容許發生的。

選擇1 kbyte 邊界是由於它對於一個合理的突發傳輸已經足夠大,可是對於那些能夠對其到1 kbyte 空間而無需使用太多的可用內存空間的外設來講又過小。

如何將一個AHB 主設備連到一個AHB-lite 系統上?

應用於AHB

AHB-lite 系統沒有任何仲裁邏輯,因此全功能AHB 主設備將會永久的得到總線。全功能AHB 主設備HBUSREQ 輸出信號保留不接,HGRANT 輸入信號直接接到邏輯‘1’1'b1)。

因爲AHB-lite 不支持SPLIT RETRY 響應,AHB-lite HRESP 信號只有1 位,因此全功能AHB 主設備HRESP[1:0] 輸入信號應該將HRESP[1] 接到邏輯‘0’1'b0)。

全功能AHB 主設備是在鎖定傳輸的地址傳輸相位以前驅動HLOCK 信號的,而且一般是經由仲裁模塊重現返回到全功能主設備以產生HMASTLOCK 信號,這將是和地址傳輸相位對其的。

下面的Verilog 代碼能夠用來產生 AHB LOCK -> AHB-lite HMASTLOCK 信號返回時序功能。

always @( negedge HRESETn or posedge HCLK ) begin
    if ( !HRESETn )
        HMASTLOCK <= 1'b0;
    else begin
        if ( HREADY )
            HMASTLOCK <= HLOCK;
    end
end
下面的例子顯示了能夠在總線上產生的HTRANS 傳輸順序:
一個普通的4 拍突發傳輸跟一個IDLE 傳輸。
N - S - S - S - I
一個帶有BUSY 傳輸的普通4 拍突發傳輸。
N - S - B - S - B - S - I
一個拍突發傳輸跟着另外一個突發傳輸。
N - S - S - S - N - S - S - S - I
一個單次傳輸跟一個4 拍的突發傳輸。
N - N - S - S - S - I
一個單次傳輸跟一個IDLE 傳輸。
N - I
一個帶有BUSY 傳輸的未定義長度突發傳輸。
N - B - S - B - S - B - I
一個帶有BUSY 傳輸的未定義長度突發傳輸緊跟着另外一個突發傳輸。
N - B - S - B - S - B - N - S

如何將一個AHB 從設備連到一個AHB-lite 系統上?

應用於AHB

只要從設備不產生SPLIT 或者RETRY 響應,那麼AHB 從設備和AHB-lite是兼容的,能夠之間鏈接。

如 果AHB 從設備須要產生RETRY 響應,那麼須要一個Ahb2Ahb 橋接器(在ARM AMBA Design Kit(ADK)中有幾個例子)鏈接AHB 從設備和AHB-lite系統。這個Ahb2Ahb 可以本地支持RETRY 響應,並保持AHB-lite 系統端的HREADY 爲低(1'b0)。

若是AHB 從設備須要支持SPLIT 響應,那麼不只須要上面支持RETRY 響應用到的Ahb2Ahb 橋接器,還須要一個本地虛擬主設備和一個仲裁器。SPLIT 響應須要仲裁器將總線分配給兩一個主設備,因此須要一個虛擬主設備放在本地全功能AHB 總線上去驅動IDLE 傳輸,只到從設備能夠去完成SPLIT 傳輸。

AHB AHB-lite 有什麼區別?

應用於AHB
AHB-lite
是全功能的AMBA 2 AHB 規範的一個簡化版本,只支持一個主設備。
這樣的簡化移除了仲裁邏輯所須要的信號,HBUSREQ 信號和HGRANT 信號,而且HRESP 信號只須要1 位,SPLIT RETRY 從設備響應只用在對多主設備的支持上。
移除任何仲裁邏輯同時意味着AHB 主設備HLOCK 輸出信號須要會發給與地址傳輸相位對其的HMASTLOCK 信號(一般由AHB 仲裁器完成的功能)。

AMBA 系統鎮中復位信號應該維持多少個週期?

應用於AHBAPB

建議系統上的主設備組件和從設備組件應該在復位請求大於1 或者2 個週期時清除狀態。同時建議系統設計者應該維持復位信號至少16 個週期,除非知道有主設備組件或者從設備組件須要更長週期的復位請求。

AHB 怎樣處理鎖定傳輸中的SPLIT 響應?

應用於AHB

若是一個傳輸中受到SPLIT 響應,那麼仲裁器就會奪回被SPLIT 的主設備的總線使用權並該主設備將不會再參與仲裁,直到從設備表示傳輸能夠完成。若是一次訪問是鎖定的,那麼該次訪問就不能被其它主設備的訪問所打斷。

AHB 系統在處理這兩種需求同時發生的狀況只有一條途徑,那就是將總線分配給「虛擬主設備」。虛擬主設備只進行IDLE 傳輸,這在鎖定傳輸中式容許的,若是將總線分配給其它任何主設備都將違背鎖定傳輸協議,若是仲裁器忽略SPLIT 相同將違背SPLIT 協議,因此虛擬主設備是惟一的選擇。

虛擬主設備同時用在全部主設備都收到SPLIT 響應的狀況下(虛擬主設備不能接受SPLIT 響應)。
建議支持split 的從設備的設計者能確保從設備監聽HMASTLOCK 輸入信號,以便在鎖定傳輸中不返回SPLIT 響應,應爲那樣也是無濟於事的。

SPLITRETRYSPLIT RETRY 響應能夠在突發傳輸中的任什麼時候候給出嗎?

應用於AHB

是的,從設備能夠在突發傳輸中的任何一次傳輸給出SPLITRETRYERROR 響應。從設備被沒有限制只能在第一次傳輸給出這些響應。

SPLITRETRY:從設備能夠在給出SPLIT 響應的同一個週期拉高HSPLITx 信號嗎?

應用於AHB

不能夠。規範中要求HSPLITx 信號只能在給出SPLIT 響應以後被拉高。

SPLITRETRY:從設備能夠同時使用SPLIT RETRY 響應嗎?

應用於AHB

一般,從設備並不一樣時使用SPLIT RETRY 響應。對於那些可能同時被多個不一樣的主設備訪問的從設備都應該使用SPLIT 響應。RETRY 響應主要用在只被一個主設備訪問的外設中。

SPLITRETRY:全部的主設備都應該支持SPLIT RETRY 嗎?

應用於AHB

是的。全部主設備都必須支持SPLIT RETRY 響應,以確保它們可以和任何的從設備兼容。主設備處理SPLIT RETRY 響應的方式都是同樣的。

注意:若是系統是基於AHB-lite的,SPLIT RETRY 響應都是不支持的。AHB-lite 是單主設備方案,因此SPLIT RETRY 響應都是沒有意義的。

SPLITRETRY:全部的從設備都應該支持SPLIT RETRY 嗎?

應用於AHB

不是的。從設備只須要支持它須要使用的響應類型。例如:一個簡單的片上存儲器模塊能夠在僅僅一個等待狀態後就可以響應全部的傳輸,那麼它就不須要SPLIT RETRY 響應。

SPLITRETRY:在SPLIT 響應或RETRY 響應以後的IDLE 傳輸中,應該在總線上給出什麼地址?

應用於AHB

其實在這個傳輸週期中,總線上是什麼地址信號並無什麼影響。被選擇的不該該有任何行爲,而且必須給出零等待的OKAY 響應。

在許多狀況下,主設備保持地址信號不變將會更簡單,地址信號保持主設備想要進行的下一次傳輸的地址不變,並只在下一次傳輸返回那個由於SPLIT 或是RETRY 響應而必須從新進行的傳輸的地址上。

在一些設計上,主設備多是在IDLE 傳輸週期中返回到那個須要重傳的地址上,這個固然也是徹底能夠接受的。

SPLITRETRYSPLIT RETRY 響應有什麼不一樣?

應用於AHB

SPLIT RETRY 響應都被從設備在須要不少週期才能完成傳輸時使用的。這些響應容許數據傳輸表現出完成,以免總線停頓,可是這也同時表示傳輸應該在下一次得到總線的時候從新嘗試上一次傳輸。

它 們二者的不一樣在於:SPLIT 響應告訴仲裁器能夠將總線使用優先級交給全部其餘主設備直到SPLIT 傳輸能夠結束(其實是忽略該主設備之後全部的傳輸請求直到發出SPLIT 的那個從設備表示它能夠完成SPLIT 傳輸),而RETRY 響應僅僅告訴仲裁器將總線使用權交給最高優先級的主設備。

SPLIT 響應比RETRY 響應實現起來更復雜,可是它的優點在於容許最有效的使用總線帶寬。

主設備在SPLIT RETRY 響應上相同的行爲,主設備應該放棄下一次傳輸並從新嘗試當前訪問失敗的訪問。

SPLITRETRY:當AHB 主設備在在突發傳輸中間接收到從設備的RETRY 響應時,應該在HTRANS 上使用什麼信號?

應用於:AHB

傳輸不管在什麼時候從新發起的時候,它必須設置HTRANS NONSEQ,而且須要根據需求調整HBURST 信息(一般值表示INCR)。

SPLITRETRY:主設備可能會在SPLIT 響應以後永遠失去總線嗎?

應用於:AHB

是的。因此從設備必須不能在給出SPLIT 響應的同一個週期拉該HSPLIT 的相應位,這樣的話主設備會永遠失去總線。

整體:AHB APB 橋如何處理不是32-bit 的訪問?

應用於:AHBAPB

橋接器只應該簡單的傳輸完整的32-bit 的數據。須要注意若是向APB 從設備進行少於32-bit 的數據傳輸,確保設備在APB 總線上正確的位置很重要。

整體:爲何在APB 上沒有等待信號?

應用於:APB

APB 在設計上是儘量的有簡單的接口。擁有這樣簡單的設計使得在鏈接一個新的APB 設備的時候更加簡單,而且在分析計算系統性能的時候更簡單。

雖然不少APB 設備是低速設備,像是UART,它們一般經過控制寄存器訪問的。一般設備驅動程序首先會訪問狀態寄存器肯定它是否空閒,而後纔會去去訪問數據寄存器。這樣的兩個操做均可以不須要附加的等待狀態,所以外設能夠做爲一個APB 設備而被訪問。
若是確是須要等待狀態的外設,能夠設計成AHB 從設備,在不多數狀況下,若是設計須要包括不少這樣的外設,那麼可使用第二級AHB 總線以減輕主系統總線的負荷。

(完)

相關文章
相關標籤/搜索