專利名稱:基于動(dòng)態(tài)優(yōu)先級(jí)的總線仲裁器和動(dòng)態(tài)改變優(yōu)先級(jí)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及SOC芯片設(shè)計(jì),特別涉及芯片的實(shí)時(shí)性響應(yīng)處理和調(diào)度管理的總線仲裁器。
背景技術(shù):
在多主處理系統(tǒng)中,總線仲裁器起著比較關(guān)鍵的作用,一個(gè)良好的仲裁器對(duì)總線的傳輸效率提高有著直接的關(guān)系,在SOC設(shè)計(jì)領(lǐng)域同樣存在總線調(diào)度策略問題。
然而SOC的應(yīng)用對(duì)象是多種多樣的,針對(duì)不同處理會(huì)有不同的調(diào)度策略,需要?jiǎng)討B(tài)配置優(yōu)先級(jí),能根據(jù)任務(wù)做動(dòng)態(tài)處置,提高實(shí)時(shí)響應(yīng)性。
常規(guī)的做法是事先分配好優(yōu)先級(jí),用戶開發(fā)者往往較難改變仲裁效果,不利于用戶做進(jìn)一步靈活開發(fā)。在SOC芯片設(shè)計(jì)中,勢(shì)必由硬件連線決定,一旦流片后,就不能改變優(yōu)先級(jí)分配了。
為了改變這種情況,需要引入動(dòng)態(tài)改優(yōu)先級(jí)的機(jī)制,此外,要避免失衡問題,每一個(gè)主設(shè)備能根據(jù)自身響應(yīng)時(shí)間提升優(yōu)先級(jí),使系統(tǒng)動(dòng)態(tài)均衡。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種可動(dòng)態(tài)改變優(yōu)先級(jí)的總線仲裁器;本發(fā)明的另一目的是提供一種可通過程序指令動(dòng)態(tài)改變優(yōu)先級(jí)的總線仲裁器;本發(fā)明的再一個(gè)目的是提供一種總線仲裁器,該仲裁器可接受設(shè)備的請(qǐng)求而提升該設(shè)備的優(yōu)先級(jí)。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種基于動(dòng)態(tài)優(yōu)先級(jí)的總線仲裁器,包括總線仲裁判優(yōu)電路,該總線仲裁判優(yōu)電路與多個(gè)主設(shè)備連接,接收來自于所述主設(shè)備的總線請(qǐng)求信號(hào),并根據(jù)主設(shè)備的優(yōu)先級(jí)對(duì)發(fā)起總線請(qǐng)求的主設(shè)備進(jìn)行優(yōu)先級(jí)排序;還包括優(yōu)先級(jí)寄存器,用于存儲(chǔ)二進(jìn)制表示的各主設(shè)備的優(yōu)先級(jí),所述優(yōu)先級(jí)寄存器可接收外部指令來更新其內(nèi)存儲(chǔ)的各主設(shè)備的優(yōu)先級(jí);譯碼器,分別與所述總線仲裁判優(yōu)電路和所述優(yōu)先級(jí)寄存器連接,用于對(duì)優(yōu)先級(jí)寄存器中存儲(chǔ)的優(yōu)先級(jí)進(jìn)行譯碼。
所述優(yōu)先級(jí)寄存器還與所述多個(gè)主設(shè)備連接,以接受來自所述主設(shè)備的優(yōu)先級(jí)升級(jí)請(qǐng)求信號(hào)。
本發(fā)明還提供一種動(dòng)態(tài)改變優(yōu)先級(jí)的方法,用于動(dòng)態(tài)改變多個(gè)主設(shè)備總線請(qǐng)求的優(yōu)先級(jí),包括1)提供一總線仲裁判優(yōu)電路,該總線仲裁判優(yōu)電路與多個(gè)主設(shè)備連接,接收來自于所述主設(shè)備的總線請(qǐng)求信號(hào),并根據(jù)主設(shè)備的優(yōu)先級(jí)對(duì)發(fā)起總線請(qǐng)求的主設(shè)備進(jìn)行優(yōu)先級(jí)排序;2)提供一優(yōu)先級(jí)寄存器,用于二進(jìn)制表示的各主設(shè)備的優(yōu)先級(jí);3)提供一譯碼器,用于用于對(duì)優(yōu)先級(jí)寄存器中存儲(chǔ)的優(yōu)先級(jí)進(jìn)行譯碼;4)所述優(yōu)先級(jí)寄存器接收來自于程序的指令或者來自主設(shè)備的升級(jí)請(qǐng)求信號(hào),更新所述優(yōu)先級(jí)寄存器中的所述主設(shè)備的優(yōu)先級(jí)。
采用本發(fā)明后,用戶可以動(dòng)態(tài)調(diào)整設(shè)備的優(yōu)先級(jí)分配,防止總線上主設(shè)備有些“撐死”(總得到服務(wù))、有些“餓死”(老得不到服務(wù))現(xiàn)象,而且設(shè)備本身可以在負(fù)載發(fā)生變化時(shí)主動(dòng)申請(qǐng)調(diào)整優(yōu)先級(jí),獲取較好的總線仲裁機(jī)制。
圖1是本發(fā)明的基于動(dòng)態(tài)優(yōu)先級(jí)的總線仲裁器的示意圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
如圖1所示的總線仲裁器10,包括設(shè)備優(yōu)先級(jí)寄存器11、譯碼器12和總線仲裁判優(yōu)電路13。多個(gè)主設(shè)備1~n和總線仲裁器10中的總線仲裁判優(yōu)電路13相連接,以便向總線仲裁器10發(fā)送總線占有請(qǐng)求信號(hào)??偩€仲裁判優(yōu)電路13根據(jù)設(shè)備優(yōu)先級(jí)寄存器11中存儲(chǔ)的設(shè)備優(yōu)先級(jí)對(duì)發(fā)起總線請(qǐng)求的主設(shè)備進(jìn)行優(yōu)先級(jí)排序,最后總線仲裁器10根據(jù)優(yōu)先級(jí)排序?qū)⒖偩€切換給相應(yīng)的主設(shè)備。
在圖1中,優(yōu)先級(jí)寄存器11存儲(chǔ)有各個(gè)主設(shè)備的優(yōu)先級(jí),在一個(gè)實(shí)施例中,該寄存器允許每個(gè)設(shè)備有四種優(yōu)先級(jí),分別用存儲(chǔ)在寄存器11內(nèi)的二進(jìn)制數(shù)00、01、10和11來表示,其優(yōu)先級(jí)順序?yàn)?1>10>01>00。在一個(gè)實(shí)施例中,寄存器11存儲(chǔ)的優(yōu)先級(jí)如表1所示。
表1
其中,表1的第二行就是優(yōu)先級(jí)寄存器11存儲(chǔ)的優(yōu)先級(jí)。寄存器11中的優(yōu)先級(jí)可以通過BIOS或系統(tǒng)調(diào)度程序的指令來設(shè)置。例如在圖1中,寄存器11接收來自于程序的指令,在寄存器11內(nèi)寫入設(shè)備優(yōu)先級(jí)。當(dāng)系統(tǒng)運(yùn)行時(shí),可以接收程序的指令來更新寄存器11中的數(shù)據(jù),而動(dòng)態(tài)改變?cè)O(shè)備的優(yōu)先級(jí),然后通過譯碼器12直傳到總線仲裁判優(yōu)電路13,隨下次請(qǐng)求總線而有效。
在優(yōu)先級(jí)寄存器11和總線仲裁判優(yōu)電路13之間設(shè)置一個(gè)譯碼器12,該譯碼器將在寄存器11中的二進(jìn)制表示的優(yōu)先級(jí)轉(zhuǎn)化成總線仲裁判優(yōu)電路13可使用的硬件信號(hào)。例如,對(duì)于表1中用兩位二進(jìn)制數(shù)描述的一個(gè)主設(shè)備的優(yōu)先級(jí),可以使用一個(gè)2-4譯碼器來實(shí)現(xiàn)譯碼,以便由總線仲裁判優(yōu)電路13判斷該主設(shè)備歸到哪個(gè)優(yōu)先級(jí)上。
總線仲裁判優(yōu)電路13是總線仲裁器的常規(guī)部件,它根據(jù)主設(shè)備的優(yōu)先級(jí)采用一定的仲裁算法對(duì)提出總線請(qǐng)求的主設(shè)備進(jìn)行排序,并按排序結(jié)果順序?qū)⒖偩€使用權(quán)切換給相應(yīng)的主設(shè)備,這是本領(lǐng)域的技術(shù)人員所熟知的。例如現(xiàn)對(duì)優(yōu)先級(jí)進(jìn)行排隊(duì),對(duì)于同一優(yōu)先級(jí),仲裁時(shí)按設(shè)備號(hào)進(jìn)行排序,這樣任一設(shè)備首先歸到相應(yīng)優(yōu)先級(jí),然后在同一優(yōu)先級(jí)進(jìn)行排隊(duì)。在實(shí)際應(yīng)用中,還要考慮阻塞(BLOCK)、獨(dú)占(LOCK)、取消(ABORT)、重排序(REARBITER)等情況,首先沒有較高優(yōu)先級(jí)申請(qǐng)者,其次同級(jí)申請(qǐng)沒有排在前面,才能獲得仲裁權(quán),控制總線。
雖然上述技術(shù)方案可以通過程序指令動(dòng)態(tài)改變寄存器11中各主設(shè)備的優(yōu)先級(jí),但是在實(shí)際應(yīng)用時(shí),各個(gè)主設(shè)備對(duì)總線的占用需求經(jīng)常發(fā)生變化,因此,就需要能夠在主設(shè)備有饑餓感時(shí)提升該設(shè)備的優(yōu)先級(jí)。
作為本發(fā)明的一個(gè)改進(jìn),如圖1所示,各主設(shè)備1~n還分別與優(yōu)先級(jí)寄存器11,以便向優(yōu)先級(jí)寄存器11發(fā)送優(yōu)先級(jí)升級(jí)請(qǐng)求信號(hào)。當(dāng)一個(gè)主設(shè)備有饑餓感時(shí),可向仲裁器10發(fā)出優(yōu)先級(jí)升級(jí)請(qǐng)求,優(yōu)先級(jí)寄存器11內(nèi)存儲(chǔ)的該設(shè)備的優(yōu)先級(jí)隨之做相應(yīng)修改,并通過譯碼器12直接影響總線仲裁判優(yōu)電路13,獲取總線服務(wù)。例如在一個(gè)實(shí)施例中,各主設(shè)備1~n在優(yōu)先級(jí)寄存器11的優(yōu)先級(jí)如表1所示,當(dāng)主設(shè)備3對(duì)總線的需要有饑餓感時(shí),它向優(yōu)先級(jí)寄存器11發(fā)出一升級(jí)請(qǐng)求信號(hào),優(yōu)先級(jí)寄存器11中存儲(chǔ)的優(yōu)先級(jí)隨之發(fā)生改變,如表2所示。
表2
當(dāng)優(yōu)先級(jí)寄存器11的優(yōu)先級(jí)更新后,通過譯碼器12直傳到總線仲裁判優(yōu)電路13,隨下次請(qǐng)求總線而有效。
權(quán)利要求
1.一種基于動(dòng)態(tài)優(yōu)先級(jí)的總線仲裁器,包括總線仲裁判優(yōu)電路,該總線仲裁判優(yōu)電路與多個(gè)主設(shè)備連接,接收來自于所述主設(shè)備的總線請(qǐng)求信號(hào),并根據(jù)主設(shè)備的優(yōu)先級(jí)對(duì)發(fā)起總線請(qǐng)求的主設(shè)備進(jìn)行優(yōu)先級(jí)排序;其特征在于,還包括優(yōu)先級(jí)寄存器,用于存儲(chǔ)二進(jìn)制表示的各主設(shè)備的優(yōu)先級(jí),所述優(yōu)先級(jí)寄存器可接收外部指令來更新其內(nèi)存儲(chǔ)的各主設(shè)備的優(yōu)先級(jí);譯碼器,分別與所述總線仲裁判優(yōu)電路和所述優(yōu)先級(jí)寄存器連接,用于對(duì)優(yōu)先級(jí)寄存器中存儲(chǔ)的優(yōu)先級(jí)進(jìn)行譯碼。
2.根據(jù)權(quán)利要求1所述的基于動(dòng)態(tài)優(yōu)先級(jí)的總線仲裁器,其特征在于,所述優(yōu)先級(jí)寄存器還與所述多個(gè)主設(shè)備連接,以接受來自所述主設(shè)備的優(yōu)先級(jí)升級(jí)請(qǐng)求信號(hào)。
3.一種動(dòng)態(tài)改變優(yōu)先級(jí)的方法,用于動(dòng)態(tài)改變多個(gè)主設(shè)備總線請(qǐng)求的優(yōu)先級(jí),包括1)提供一總線仲裁判優(yōu)電路,該總線仲裁判優(yōu)電路與多個(gè)主設(shè)備連接,接收來自于所述主設(shè)備的總線請(qǐng)求信號(hào),并根據(jù)主設(shè)備的優(yōu)先級(jí)對(duì)發(fā)起總線請(qǐng)求的主設(shè)備進(jìn)行優(yōu)先級(jí)排序;2)提供一優(yōu)先級(jí)寄存器,用于二進(jìn)制表示的各主設(shè)備的優(yōu)先級(jí);3)提供一譯碼器,用于用于對(duì)優(yōu)先級(jí)寄存器中存儲(chǔ)的優(yōu)先級(jí)進(jìn)行譯碼;4)所述優(yōu)先級(jí)寄存器接收來自于程序的指令或者來自主設(shè)備的升級(jí)請(qǐng)求信號(hào),更新所述優(yōu)先級(jí)寄存器中的所述主設(shè)備的優(yōu)先級(jí)。
全文摘要
本發(fā)明公開了一種基于動(dòng)態(tài)優(yōu)先級(jí)的總線仲裁器和動(dòng)態(tài)改變優(yōu)先級(jí)的方法。該總線仲裁器,包括與多個(gè)主設(shè)備連接總線仲裁判優(yōu)電路,用于存儲(chǔ)二進(jìn)制表示的各主設(shè)備優(yōu)先級(jí)的優(yōu)先級(jí)寄存器,該優(yōu)先級(jí)寄存器可接收外部指令來更新其內(nèi)存儲(chǔ)的各主設(shè)備的優(yōu)先級(jí),譯碼器分別與所述總線仲裁判優(yōu)電路和所述優(yōu)先級(jí)寄存器連接,用于對(duì)優(yōu)先級(jí)寄存器中存儲(chǔ)的優(yōu)先級(jí)進(jìn)行譯碼。進(jìn)行優(yōu)先級(jí)動(dòng)態(tài)改變時(shí),所述優(yōu)先級(jí)寄存器接收來自于程序的指令或者來自主設(shè)備的升級(jí)請(qǐng)求信號(hào),更新所述優(yōu)先級(jí)寄存器中的所述主設(shè)備的優(yōu)先級(jí)。采用本發(fā)明后,用戶可以動(dòng)態(tài)調(diào)整設(shè)備的優(yōu)先級(jí)分配,而且設(shè)備本身可以在負(fù)載發(fā)生時(shí)主動(dòng)申請(qǐng)調(diào)整優(yōu)先級(jí),獲取較好的總線仲裁機(jī)制。
文檔編號(hào)G06F13/14GK1661579SQ20041000341
公開日2005年8月31日 申請(qǐng)日期2004年2月25日 優(yōu)先權(quán)日2004年2月25日
發(fā)明者張志敏 申請(qǐng)人:中國科學(xué)院計(jì)算技術(shù)研究所