專(zhuān)利名稱(chēng):一種基于amba總線的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁方法及仲裁器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于AMBA總線仲裁技術(shù)領(lǐng)域,涉及一種基于AMBA總線的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁方法及仲裁器。
背景技術(shù):
隨著半導(dǎo)體設(shè)計(jì)能力以及工藝制程的不斷進(jìn)步,在單一芯片上集成多種功能模塊早已成為可能,SoC設(shè)計(jì)理念以及模塊復(fù)用思想的提出,更是使大規(guī)模數(shù)字集成電路的設(shè)計(jì)有了質(zhì)的飛躍。現(xiàn)在的SoC芯片,集成了多個(gè)處理器及運(yùn)算單元,包括中央處理器、圖像處理器、多媒體音頻/視頻編解碼器以及多種功能的數(shù)字信號(hào)處理單元。在一個(gè)SoC系統(tǒng)中,決定系統(tǒng)性能的不再是單一處理器的運(yùn)行速度,而主要取決于各個(gè)處理器單元之間的高效通信及其帶寬的平衡分配。仲裁器負(fù)責(zé)處理各個(gè)處理器訪問(wèn)總線的優(yōu)先級(jí),協(xié)調(diào)多個(gè)處理器共享總線引起的競(jìng)爭(zhēng),保證總線資源合理、高效的分配,以使系統(tǒng)性能達(dá)到最優(yōu)。AMBA 總線(Advanced Microcontroller Bus Architecture)是 ARM 公司提出的一種多級(jí)片上總線互聯(lián)結(jié)構(gòu),AMBA-AHB總線規(guī)定了仲裁協(xié)議及仲裁器的接口,但協(xié)議中并沒(méi)有規(guī)定仲裁器使用何種仲裁算法,因此仲裁器的仲裁算法設(shè)計(jì)具有很強(qiáng)的靈活性。
圖1所示為基于AMBA總線的仲裁器的示意圖。對(duì)AMBA總線的仲裁器示意圖中部分重要信號(hào)及功能的詳細(xì)說(shuō)明如下HBUSREQx[15:0] :AHB總線主設(shè)備發(fā)出的請(qǐng)求訪問(wèn)總線的申請(qǐng)信號(hào)。每個(gè)總線主設(shè)備都會(huì)有一個(gè)輸出到仲裁器的申請(qǐng)信號(hào)HBUSREQx,AHB總線系統(tǒng)最多支持多達(dá)16個(gè)獨(dú)立的AHB總線主設(shè)備。HGRANTx[15:0]:授予信號(hào)是仲裁器的輸出信號(hào),表示最高優(yōu)先級(jí)的主設(shè)備獲得訪問(wèn)總線的授權(quán)。主設(shè)備在HGRANTx信號(hào)為高且HREADY有效的時(shí)鐘HCLK上升沿獲得總線授權(quán)。HMASTER[3:0]:仲裁器使用HMASTER[3:0]信號(hào)表示獲得總線授權(quán)的主設(shè)備編號(hào),該信號(hào)還用來(lái)控制中央地址譯碼器和控制信號(hào)多路選擇器。當(dāng)有從設(shè)備申請(qǐng)進(jìn)行一次SPLIT傳輸時(shí),應(yīng)該記錄當(dāng)前主設(shè)備編號(hào)HMASTER,以使從設(shè)備恢復(fù)傳輸時(shí)能夠告知仲裁器授予相應(yīng)主設(shè)備總線使用權(quán)。HLOCKx [15:0]:主設(shè)備在發(fā)起一次鎖定傳輸時(shí),與請(qǐng)求信號(hào)一起聲明的鎖定傳輸信號(hào)。鎖定傳輸信號(hào)提不仲裁器主設(shè)備正在執(zhí)行一系列不可分割的傳輸。一旦鎖定傳輸開(kāi)始,在本次傳輸結(jié)束之前,仲裁器不能將總線控制權(quán)授予其他主設(shè)備。HMASTERLOCK :仲裁器通過(guò)聲明HMASTERLOCK信號(hào)來(lái)表明當(dāng)前傳輸是一次鎖定傳輸,該信號(hào)具有和地址以及控制信號(hào)相同的時(shí)序。HRESP[1:O] =HRESP是從設(shè)備傳輸響應(yīng)信號(hào),在傳輸進(jìn)行階段如果從設(shè)備認(rèn)為傳輸?shù)膱?zhí)行將占用大量的時(shí)鐘周期時(shí),從設(shè)備可以發(fā)出一個(gè)SPLIT響應(yīng)。該信號(hào)提示仲裁器當(dāng)前進(jìn)行傳輸?shù)闹髟O(shè)備不應(yīng)該繼續(xù)占用總線,直到從設(shè)備做好完成這次傳輸?shù)臏?zhǔn)備發(fā)出SPLIT申請(qǐng),先前的主設(shè)備將再次獲得總線并完成數(shù)據(jù)傳輸。HSPLITx [16:0]:當(dāng)從設(shè)備能夠完成一次SPLIT傳輸時(shí),將聲明HSPLITx [15:0]所對(duì)應(yīng)位,以便通知仲裁器賦予相應(yīng)主設(shè)備總線授權(quán)以完成傳輸。由于AMBA總線規(guī)范沒(méi)有規(guī)定總線仲裁算法,因此設(shè)計(jì)者可以根據(jù)需要自由的進(jìn)行算法的選擇和修改。但不論哪一種算法,都應(yīng)該滿足以下四個(gè)基本要求:(I)每一時(shí)刻只能有一個(gè)主設(shè)備占用總線;(2) 一次完整傳輸不允許被打斷;(3)先請(qǐng)求的主設(shè)備應(yīng)該首先得到響應(yīng),當(dāng)同一時(shí)刻有多個(gè)主設(shè)備發(fā)出請(qǐng)求時(shí),應(yīng)該按照仲裁算法的優(yōu)先級(jí)次序進(jìn)行響應(yīng)。(4)仲裁算法應(yīng)該保證“公平”,保證每個(gè)主設(shè)備都可以在一定的時(shí)間內(nèi)獲得總線。比較常見(jiàn)的仲裁算法主要包括固定優(yōu)先級(jí)算法、輪轉(zhuǎn)優(yōu)先級(jí)算法、基于固定優(yōu)先級(jí)和輪轉(zhuǎn)優(yōu)先級(jí)的混合優(yōu)先級(jí)算 法以及加權(quán)優(yōu)先循環(huán)算法等。A.固定優(yōu)先級(jí)算法:所謂固定優(yōu)先級(jí)算法是指每個(gè)主設(shè)備訪問(wèn)共享總線的優(yōu)先級(jí)是固定的,重要性高的主設(shè)備相應(yīng)的要保證高的優(yōu)先級(jí),這種算法雖然保證了主設(shè)備的運(yùn)行速度,但是其缺點(diǎn)也很明顯,就是當(dāng)高優(yōu)先級(jí)主設(shè)備長(zhǎng)期占用總線時(shí),低優(yōu)先級(jí)的主設(shè)備等待時(shí)間會(huì)很長(zhǎng),缺乏公平性。B.輪轉(zhuǎn)優(yōu)先級(jí)算法:輪轉(zhuǎn)優(yōu)先級(jí)算法是指主設(shè)備的優(yōu)先級(jí)會(huì)隨著主設(shè)備占用總線而變化,當(dāng)一個(gè)主設(shè)備占用總線后,它的優(yōu)先級(jí)隨即變?yōu)樽畹蛷亩蛊渌蛢?yōu)先級(jí)主設(shè)備有機(jī)會(huì)獲得總線。這種算法 保證了公平性,由于這種算法過(guò)于平均,使得每個(gè)主設(shè)備訪問(wèn)總線的帶寬幾乎一樣,而當(dāng)主設(shè)備需要更大的帶寬進(jìn)行多次實(shí)時(shí)數(shù)據(jù)傳輸時(shí),會(huì)由于優(yōu)先級(jí)的降低而增加訪問(wèn)延遲,降低數(shù)據(jù)傳輸效率。C.混合優(yōu)先級(jí)算法:混合優(yōu)先級(jí)算法是指將固定優(yōu)先級(jí)算法和輪轉(zhuǎn)優(yōu)先級(jí)算法相結(jié)合,通常給主設(shè)備A賦予最高的優(yōu)先權(quán),其他主設(shè)備仍舊采用輪轉(zhuǎn)優(yōu)先級(jí)算法。雖然這種算法在一些特定的情況下能夠適應(yīng)系統(tǒng)各主設(shè)備對(duì)共享總線的帶寬需求,但是由于周邊主設(shè)備仍舊采用的是輪轉(zhuǎn)優(yōu)先級(jí)算法,因此并不能從根本上解決對(duì)各總線主設(shè)備合理分配總線帶寬的問(wèn)題。D.加權(quán)優(yōu)先循環(huán)算法:加權(quán)優(yōu)先循環(huán)算法是指根據(jù)主設(shè)備的不同需求分配給其不同的加權(quán)因子,從而決定不同主設(shè)備訪問(wèn)總線的優(yōu)先級(jí)別,而這個(gè)加權(quán)因子也決定了在一次循環(huán)中各主設(shè)備訪問(wèn)總線的次數(shù)Ci,其原理如下:假設(shè)系統(tǒng)中有η個(gè)主設(shè)備,每個(gè)主設(shè)備
η
的初始加權(quán)因子為Wi,其中W..>W1...>Wn,則加權(quán)因子之和為
權(quán)利要求
1.一種基于AMBA總線的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁方法,其特征在于,包括以下操作: 在一次完整循環(huán)的初始階段,各主設(shè)備的加權(quán)因子復(fù)位,各個(gè)主設(shè)備的加權(quán)因子為Wi,Wi也決定了一次循環(huán)中每個(gè)主設(shè)備最多得到總線的次數(shù)Ci, Wi=Ci ; 在一次循環(huán)中,各主設(shè)備的優(yōu)先級(jí)高低由加權(quán)因子決定,加權(quán)因子越大的主設(shè)備優(yōu)先級(jí)越高;各個(gè)主設(shè)備的優(yōu)先級(jí)在每一次發(fā)生總線仲裁后重新進(jìn)行排序,當(dāng)一個(gè)主設(shè)備得到一次總線授權(quán)后,其相應(yīng)的加權(quán)因子遞減1,伴隨著加權(quán)因子的減小,各主設(shè)備的優(yōu)先級(jí)實(shí)時(shí)地發(fā)生變化,以新的優(yōu)先級(jí)順序作為下一次仲裁的依據(jù);當(dāng)某一個(gè)主設(shè)備的加權(quán)因子減小到O后,各個(gè)主設(shè)備的加權(quán)因子會(huì)重新復(fù)位,開(kāi)始下一輪循環(huán)。
2.如權(quán)利要求1所述的基于AMBA總線的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁方法,其特征在于,若一個(gè)主設(shè)備得到一次總線授權(quán)后,其相應(yīng)的加權(quán)因子遞減I之后與其他主設(shè)備的加權(quán)因子相等時(shí),之前被總線授權(quán)的主設(shè)備的優(yōu)先級(jí)大于其他主設(shè)備。
3.如權(quán)利要求1所述的基于AMBA總線的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁方法,其特征在于,設(shè)各個(gè)主設(shè)備的加權(quán)因子W..>w1...>wn,則加權(quán)因子之和為w.
4.如權(quán)利要求1所述的基于AMBA總線的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁方法,其特征在于,所述的各主設(shè)備的加權(quán)因子的產(chǎn)生為: 主設(shè)備傳輸計(jì)數(shù)模塊對(duì)一定時(shí)間內(nèi)各主設(shè)備的傳輸次數(shù)進(jìn)行統(tǒng)計(jì),當(dāng)任何一個(gè)主設(shè)備的傳輸次數(shù)達(dá)到預(yù)設(shè)值時(shí),對(duì)此段時(shí)間內(nèi)各主設(shè)備發(fā)送數(shù)據(jù)次數(shù)進(jìn)行寄存,得到各主設(shè)備的傳輸數(shù)據(jù)值tranSX_count,并將該值發(fā)送給加權(quán)因子基礎(chǔ)值產(chǎn)生模塊;加權(quán)因子基礎(chǔ)值產(chǎn)生模塊根據(jù)tranSX_count值得到各主設(shè)備的加權(quán)因子基礎(chǔ)值Dl ; 與此同時(shí),主設(shè)備等待計(jì)數(shù)模塊對(duì)各主設(shè)備的等待時(shí)間進(jìn)行記錄,當(dāng)任何一個(gè)主設(shè)備的等待時(shí)間所經(jīng)歷的HCLK周期達(dá)到預(yù)設(shè)值時(shí),對(duì)各個(gè)主設(shè)備的等待時(shí)間計(jì)數(shù)器值waitX_count進(jìn)行寄存,并將該值發(fā)送給加權(quán)因子修正值產(chǎn)生模塊;加權(quán)因子修正值產(chǎn)生模塊根據(jù)waitX_count值得到加權(quán)因子修正值D2 ; 主設(shè)備等待計(jì)數(shù)模塊同時(shí)負(fù)責(zé)產(chǎn)生各主設(shè)備新的加權(quán)因子值,當(dāng)任何一個(gè)主設(shè)備的等待時(shí)間達(dá)到預(yù)設(shè)值時(shí),主設(shè)備等待計(jì)數(shù)模塊發(fā)出sample_data信號(hào);同時(shí)將加權(quán)因子基礎(chǔ)值D1、加權(quán)因子修正值D2相加取平均值,將結(jié)果與當(dāng)前各主設(shè)備加權(quán)因子相加,并且再次取平均值,得到下一階段的各主設(shè)備加權(quán)因子值。
5.一種基于AMBA總線的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁器,其特征在于,包括: 權(quán)重位產(chǎn)生模塊,該模塊通過(guò)對(duì)總線上各主設(shè)備的傳輸數(shù)據(jù)的數(shù)量和等待時(shí)間進(jìn)行監(jiān)視,對(duì)各主設(shè)備的傳輸需求進(jìn)行預(yù)測(cè),產(chǎn)生各主設(shè)備的初始加權(quán)因子并將其發(fā)送給優(yōu)先級(jí)產(chǎn)生模塊; 優(yōu)先級(jí)產(chǎn)生模塊,該模塊接收權(quán)重位產(chǎn)生模塊傳送過(guò)來(lái)的各主設(shè)備的初始加權(quán)因子,以此作為一次循環(huán)中各主設(shè)備訪問(wèn)次數(shù)的初始值;在一次循環(huán)中每一次發(fā)生總線仲裁,對(duì)相應(yīng)得到總線的主設(shè)備的加權(quán)因子值進(jìn)行減I操作,伴隨著加權(quán)因子的變化,主設(shè)備優(yōu)先級(jí)排序也實(shí)時(shí)發(fā)生變化,新的主設(shè)備優(yōu)先級(jí)排序?qū)⒆鳛橹俨脮r(shí)總線授權(quán)的依據(jù),并實(shí)時(shí)地獲得發(fā)出總線申請(qǐng)并且具有最高優(yōu)先級(jí)的主設(shè)備編號(hào);當(dāng)各主設(shè)備的加權(quán)因子中有減小為O的值時(shí),加權(quán)因子重新賦值,開(kāi)始下一次循環(huán); 總線移交判定模塊,該模塊對(duì)總線的控制信號(hào)、鎖定傳輸標(biāo)志以及分塊傳輸控制模塊信號(hào)進(jìn)行檢測(cè),當(dāng)控制信號(hào)達(dá)到總線移交的標(biāo)準(zhǔn)時(shí),總線移交判斷模塊的輸出控制信號(hào)有效,發(fā)出仲裁許可信號(hào);仲裁信號(hào)輸出模塊接收到輸出控制信號(hào)有效后,完成一次總線的仲裁和移交; 鎖定傳輸模塊,鎖定塊傳輸控制模塊用來(lái)處理主設(shè)備的鎖定傳輸申請(qǐng),當(dāng)主設(shè)備在申請(qǐng)總線的同時(shí)聲明HL0CK_M[15:0]信號(hào)的相應(yīng)位時(shí),則主設(shè)備發(fā)起的是一次鎖定傳輸;鎖定傳輸模塊確保發(fā)起鎖定傳輸?shù)闹髟O(shè)備在獲得總線后沒(méi)有其他的主設(shè)備被授予總線直至傳輸結(jié)束;當(dāng)鎖定傳輸結(jié)束前,如果從設(shè)備發(fā)出SPLIT響應(yīng),則此時(shí)總線主設(shè)備將授權(quán)給虛擬主設(shè)備; 仲裁信號(hào)輸出模塊,該模塊在接到總線移交判定模塊發(fā)出的輸出控制信號(hào)有效信號(hào)后,對(duì)優(yōu)先級(jí)產(chǎn)生模塊生成的主設(shè)備編號(hào)進(jìn)行寄存和譯碼,并對(duì)該主設(shè)備所對(duì)應(yīng)HGRANT_M[15:0]信號(hào)的相應(yīng)位進(jìn)行聲明;同時(shí),仲裁信號(hào)輸出模塊還對(duì)被授予的主設(shè)備編號(hào)HMASTER進(jìn)行輸出,表明哪個(gè)主設(shè)備正在占用總線并進(jìn)行一次傳輸;仲裁信號(hào)中的鎖定傳輸信號(hào)HMASTERLOCK由鎖定傳輸控制模塊得到。
6.如權(quán)利要求5所述的基于AMBA總線的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁器,其特征在于,所述的權(quán)重位產(chǎn)生模塊包括主設(shè)備傳輸計(jì)數(shù)模塊、基礎(chǔ)值產(chǎn)生模塊、主設(shè)備等待計(jì)數(shù)模塊和修正值產(chǎn)生模塊; 各主設(shè)備的權(quán)重位產(chǎn)生為: 系統(tǒng)復(fù)位后,各主設(shè)備的加權(quán)因子值為預(yù)設(shè)值,此時(shí)各主設(shè)備的加權(quán)因子相等; 主設(shè)備傳輸計(jì)數(shù)模塊和主設(shè)備等待計(jì)數(shù)模塊分別對(duì)主設(shè)備的數(shù)據(jù)傳輸量和等待時(shí)間進(jìn)行統(tǒng)計(jì);當(dāng)確認(rèn)主設(shè)備進(jìn)行了一次數(shù)據(jù)的發(fā)送時(shí),相應(yīng)主設(shè)備的傳輸計(jì)數(shù)值tranS_count加I ;當(dāng)確認(rèn)主設(shè)備正在申請(qǐng)一次總線,但并未得到總線授權(quán),主設(shè)備處于等待狀態(tài),相應(yīng)主設(shè)備的等待時(shí)間計(jì)數(shù)值weight_count加I ; 各主設(shè)備的發(fā)送數(shù)據(jù)計(jì)數(shù)值和等待時(shí)間計(jì)數(shù)值分別和各自的內(nèi)部比較值比較,當(dāng)任何一個(gè)主設(shè)備的數(shù)據(jù)傳輸計(jì)數(shù)器值與預(yù)設(shè)比較值相同時(shí),對(duì)此刻所有主設(shè)備的傳輸數(shù)據(jù)計(jì)數(shù)值trans_count進(jìn)行寄存,同時(shí)對(duì)各個(gè)計(jì)數(shù)器值進(jìn)行清零,準(zhǔn)備下一輪計(jì)數(shù);當(dāng)任何一個(gè)主設(shè)備等待時(shí)間計(jì)數(shù)值與預(yù)設(shè)比較值相等時(shí),對(duì)各主設(shè)備的計(jì)數(shù)值wait_Count進(jìn)行寄存,并將計(jì)數(shù)器值清零; 對(duì)于采樣得到的各主設(shè)備數(shù)據(jù)傳輸計(jì)數(shù)器值trans_count和等待時(shí)間計(jì)數(shù)器值wait_count,分別輸入到基礎(chǔ)值產(chǎn)生模塊和修正值產(chǎn)生模塊,得到各主設(shè)備的4bit 二進(jìn)制加權(quán)因子的基礎(chǔ)值Dl和修正值D2 ; 基礎(chǔ)值Dl的產(chǎn)生為:對(duì)各個(gè)主設(shè)備的傳輸計(jì)數(shù)值進(jìn)行排序,如果兩個(gè)主設(shè)備的計(jì)數(shù)值相等,則根據(jù)各個(gè)主設(shè)備的接口順序進(jìn)行排列并賦值,給傳輸計(jì)數(shù)值最大的主設(shè)備賦值為特定值,其余主設(shè)備按照順序遞減; 修正值D2的產(chǎn)生為:對(duì)各主設(shè)備等待時(shí)間計(jì)數(shù)值進(jìn)行比較,對(duì)于計(jì)數(shù)值達(dá)到預(yù)設(shè)值的主設(shè)備,將其修正值賦值為特定值,其余主設(shè)備的修正值均為O ; 將各個(gè)主設(shè)備的加權(quán)因子基礎(chǔ)值Dl和修正值D2相加,對(duì)得到的結(jié)果取平均值,得到SI,這個(gè)結(jié)果與當(dāng)前各主設(shè)備的加權(quán)因子值再次相加取平均值,得到S2 ; 當(dāng)?shù)却龝r(shí)間計(jì)數(shù)器與內(nèi)部 預(yù)設(shè)值相等時(shí),發(fā)出sample_data信號(hào),對(duì)S2值進(jìn)行采樣,從而得到下一個(gè)階段各個(gè)主設(shè)備的加權(quán)因子值。
7.如權(quán)利要求5所述的基于AMBA總線的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁器,其特征在于,所述的優(yōu)先級(jí)產(chǎn)生模塊包括掩膜模塊、最高優(yōu)先級(jí)主設(shè)備判定模塊、分塊主設(shè)備產(chǎn)生模塊以及主設(shè)備選擇控制模塊; 掩膜模塊,該模塊對(duì)各從設(shè)備發(fā)出的應(yīng)答信號(hào)HRESP和從設(shè)備的分塊傳輸請(qǐng)求信號(hào)HSPLIT進(jìn)行檢測(cè),當(dāng)從設(shè)備不能立刻響應(yīng)主設(shè)備的傳輸請(qǐng)求,應(yīng)答信號(hào)HRESP為SPLIT響應(yīng)時(shí),表示嘗試這次傳輸?shù)目偩€主設(shè)備不應(yīng)該被授予總線,掩膜模塊記錄此時(shí)占用總線的主設(shè)備編號(hào),并對(duì)相應(yīng)的主設(shè)備申請(qǐng)進(jìn)行屏蔽,從而使其他低優(yōu)先級(jí)的主設(shè)備占用總線;當(dāng)發(fā)出SPLIT響應(yīng)的從設(shè)備確定能夠完成傳輸,掩膜模塊在接到此信號(hào)的同時(shí),解除對(duì)相應(yīng)主設(shè)備的屏蔽,以使總線能夠及時(shí)授予相應(yīng)的主設(shè)備以重試傳輸; 最高優(yōu)先級(jí)主設(shè)備判定模塊,該模塊對(duì)各主設(shè)備的優(yōu)先級(jí)進(jìn)行排序,得到申請(qǐng)總線的最高優(yōu)先級(jí)主設(shè)備的編號(hào);最高優(yōu)先級(jí)主設(shè)備產(chǎn)生為: 對(duì)權(quán)重位產(chǎn)生模塊傳輸來(lái)的各個(gè)主設(shè)備的權(quán)重值masterX_weight_value進(jìn)行寄存,作為加權(quán)因子計(jì)數(shù)值count_x的初始值,同時(shí)對(duì)總線上各主設(shè)備的傳輸狀態(tài)進(jìn)行監(jiān)測(cè),在一次循環(huán)中,各主設(shè)備的加權(quán)因子以寄存的masterX_weight_value為基礎(chǔ)進(jìn)行遞減,優(yōu)先級(jí)排序邏輯對(duì)各主設(shè)備的加權(quán)因子計(jì)數(shù)值進(jìn)行比較,實(shí)時(shí)得到各個(gè)主設(shè)備的優(yōu)先級(jí)排序;當(dāng)某個(gè)主設(shè)備進(jìn)行一次總線傳輸后,其相應(yīng)的加權(quán)因子計(jì)數(shù)值(30111^_1減I ;最高優(yōu)先級(jí)產(chǎn)生邏輯根據(jù)此排序以及各主設(shè)備的申請(qǐng),得到此刻申請(qǐng)總線且具有最高優(yōu)先級(jí)的主設(shè)備編號(hào) alg_next_master ; 當(dāng)任何一個(gè)主設(shè)備的加權(quán)因子計(jì)數(shù)值count_X為O時(shí),主設(shè)備選擇控制模塊將重新載入各個(gè)主設(shè)備的權(quán)重值masterX_weight_value,作為加權(quán)因子計(jì)數(shù)值的初始值,并開(kāi)始下一輪判定; 分塊主設(shè)備產(chǎn)生模 塊,當(dāng)有從設(shè)備聲明HSPLIT[15:0]的相應(yīng)位以發(fā)起一次分塊傳輸時(shí),分塊主設(shè)備產(chǎn)生模塊根據(jù)此刻各主設(shè)備的優(yōu)先級(jí)排序,將申請(qǐng)分塊傳輸?shù)母髦髟O(shè)備中具有最高優(yōu)先級(jí)的主設(shè)備編號(hào)most_sig_hsplit送入主設(shè)備選擇控制模塊; 主設(shè)備選擇控制模塊,該模塊對(duì)總線申請(qǐng)以及鎖定和分塊傳輸信號(hào)進(jìn)行檢測(cè),得到不同的控制信號(hào),輸出next_master主設(shè)備編號(hào)。
8.如權(quán)利要求5所述的基于AMBA總線的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁器,其特征在于,所述的總線移交判定模塊在以下幾種情況下將發(fā)起一次總線仲裁: O當(dāng)總線從設(shè)備請(qǐng)求一次分塊傳輸,并且當(dāng)前主設(shè)備沒(méi)有進(jìn)行一次鎖定傳輸時(shí),總線移交判定模塊使輸出控制信號(hào)require_arbiter有效,進(jìn)而完成一次總線的仲裁; 2)當(dāng)從設(shè)備沒(méi)有發(fā)出分塊傳輸請(qǐng)求,并且當(dāng)前主設(shè)備的傳輸不是鎖定傳輸時(shí),有: a、當(dāng)前主設(shè)備沒(méi)有傳輸數(shù)據(jù)時(shí),總線移交判定模塊使require_arbiter信號(hào)有效,實(shí)現(xiàn)一次總線的仲裁; b、當(dāng)前主設(shè)備正在進(jìn)行一次非連續(xù)單一突發(fā)傳輸,則此時(shí)總線移交判定模塊可發(fā)起一次仲裁,總線仲裁允許信號(hào)require_arbiter=l’ bl ; C、當(dāng)前主設(shè)備在進(jìn)行4拍增量突發(fā)或者4拍回環(huán)突發(fā)的最后一個(gè)數(shù)據(jù)傳輸周期,總線移交判定模塊可發(fā)起一次仲裁,總線仲裁允許信號(hào)require_arbiter=l’ bl ; d、當(dāng)前主設(shè)備在進(jìn)行8拍增量突發(fā)或者8拍回環(huán)突發(fā)的最后一個(gè)數(shù)據(jù)傳輸周期,總線移交判定模塊可發(fā)起一次仲裁,總線仲裁允許信號(hào)require_arbiter=l’ bl ;e、當(dāng)主設(shè)備進(jìn)行一次不定長(zhǎng)突發(fā)傳輸時(shí),是否發(fā)起一次總線仲裁,由當(dāng)前占用總線的主設(shè)備決定;當(dāng)主設(shè)備在傳輸數(shù)據(jù)的同時(shí)繼續(xù)發(fā)出總線申請(qǐng)信號(hào)時(shí),總線移交判定模塊不發(fā)出總線仲裁允許信號(hào);當(dāng)主設(shè)備在傳輸數(shù)據(jù)的同時(shí)沒(méi)有發(fā)出總線申請(qǐng)信號(hào),此時(shí)總線移交判定模塊發(fā)出總線仲裁允許信號(hào)。
9.如權(quán)利要求5所述的基于AMBA總線的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁器,其特征在于,所述的鎖定塊傳輸控制模塊同時(shí)還對(duì)HMASTERLOCK信號(hào)進(jìn)行聲明,以表不一次鎖定傳輸,HMASTERLOCK信號(hào)屬于仲裁信號(hào)的一部分。
10.如權(quán)利要求5所述的基于AMBA總線的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁器,其特征在于,所述的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁器接收主機(jī)的總線申請(qǐng)信號(hào)HBUSREQ[15:0]及鎖定傳輸信號(hào)HLOCK[15:0],輸出仲裁信號(hào);MUX1通過(guò)對(duì)仲裁器輸出信號(hào)HMASTER進(jìn)行譯碼,將獲得授權(quán)的主設(shè)備發(fā)出的控制信號(hào)、地址信號(hào)以及數(shù)據(jù)信號(hào)輸出到總線上,監(jiān)視模塊對(duì)各個(gè)主機(jī)的發(fā)送時(shí)間和總線授權(quán)時(shí)間 進(jìn)行記錄。
全文摘要
本發(fā)明公開(kāi)了一種基于AMBA總線的自適應(yīng)實(shí)時(shí)加權(quán)優(yōu)先仲裁方法及仲裁器,在一次循環(huán)中,各主設(shè)備的優(yōu)先級(jí)高低由加權(quán)因子決定,加權(quán)因子越大的主設(shè)備優(yōu)先級(jí)越高;各個(gè)主設(shè)備的優(yōu)先級(jí)在每一次發(fā)生總線仲裁后重新進(jìn)行排序,當(dāng)一個(gè)主設(shè)備得到一次總線授權(quán)后,其相應(yīng)的加權(quán)因子遞減1,伴隨著加權(quán)因子的減小,各主設(shè)備的優(yōu)先級(jí)實(shí)時(shí)地發(fā)生變化,以新的優(yōu)先級(jí)順序作為下一次仲裁的依據(jù);當(dāng)某一個(gè)主設(shè)備的加權(quán)因子減小到0后,各個(gè)主設(shè)備的加權(quán)因子會(huì)重新復(fù)位,開(kāi)始下一輪循環(huán)。改善了加權(quán)優(yōu)先循環(huán)算法在一次循環(huán)中低優(yōu)先級(jí)主設(shè)備等待時(shí)間過(guò)長(zhǎng)的缺陷,同時(shí)解決由于加權(quán)因子固定而使各主設(shè)備所分配的總線帶寬無(wú)法根據(jù)系統(tǒng)功能的變化而實(shí)時(shí)變化的問(wèn)題。
文檔編號(hào)G06F13/38GK103077141SQ201210575069
公開(kāi)日2013年5月1日 申請(qǐng)日期2012年12月26日 優(yōu)先權(quán)日2012年12月26日
發(fā)明者王少峰, 耿莉, 鈔朝燕, 陳鐳鋮, 趙慧 申請(qǐng)人:西安交通大學(xué)