專(zhuān)利名稱(chēng):總線控制系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種總線控制系統(tǒng)及其方法,并且尤其涉及一種包括總線仲裁器的總線控制系統(tǒng)及其方法,所述總線仲裁器用于在多個(gè)總線主裝置之間仲裁使用總線。
背景技術(shù):
通常使用總線控制系統(tǒng),其用于把多個(gè)裝置連接到一個(gè)總線并且用于在所述裝置之間仲裁使用所述總線。請(qǐng)求使用總線的裝置被稱(chēng)作總線主裝置。由總線主裝置通過(guò)總線所訪問(wèn)的裝置被稱(chēng)作總線從裝置。用于向總線主裝置許可(仲裁)使用總線的仲裁電路被稱(chēng)作仲裁器。
近年來(lái),隨著信息處理單元和電子設(shè)備等已經(jīng)發(fā)展得更為高效并且具有更高級(jí)的功能,從而增加了連接到總線的總線主裝置,因而所述總線控制系統(tǒng)變得更為復(fù)雜。由總線所轉(zhuǎn)送并處理的數(shù)據(jù)也變得多樣化,包括容許轉(zhuǎn)送延遲的信息(例如文本信息)以及不容許轉(zhuǎn)送延遲的信息(例如音頻和電影信息)。因此,想要能夠更高效地仲裁使用總線的技術(shù)。
在總線控制系統(tǒng)中,仲裁器通過(guò)依照由所指定的仲裁算法所定義的次序來(lái)使用總線并且通過(guò)提供用于使用所述總線的權(quán)利來(lái)執(zhí)行仲裁。存在兩種方法用于仲裁算法,它們是;固定優(yōu)先級(jí)方法,其中優(yōu)先向具有較高優(yōu)先級(jí)的總線主裝置給予使用總線的權(quán)利;以及循環(huán)(round robin)方法,其中以相同比率向每個(gè)總線主裝置給予使用總線的權(quán)利。常規(guī)的仲裁器使用固定優(yōu)先級(jí)方法或循環(huán)方法來(lái)仲裁總線。
例如,在日本未經(jīng)審查的專(zhuān)利公開(kāi)申請(qǐng)6-243092中公開(kāi)了使用固定優(yōu)先級(jí)方法的常規(guī)仲裁器。圖14示出了在日本未經(jīng)審查的專(zhuān)利公開(kāi)申請(qǐng)6-243092中所公開(kāi)的常規(guī)總線控制系統(tǒng)的配置。總線主裝置901a、901b和總線從裝置910共同被連接到總線940。仲裁器920響應(yīng)于來(lái)自總線主裝置901a和901b使用總線的請(qǐng)求來(lái)仲裁使用總線940。如果許可使用所述總線,那么總線主裝置901a和901b經(jīng)由總線940向總線從裝置910轉(zhuǎn)送數(shù)據(jù)。
總線監(jiān)視電路950監(jiān)視在總線940中所執(zhí)行的數(shù)據(jù)轉(zhuǎn)送,并且根據(jù)所檢測(cè)的通信頻率和總線的等待時(shí)間來(lái)向優(yōu)先級(jí)寄存器930指定總線主裝置901a和901b的優(yōu)先級(jí)。仲裁器920依照在優(yōu)先級(jí)寄存器930中所存儲(chǔ)的優(yōu)先級(jí)來(lái)許可總線主裝置901a或總線主裝置901b使用總線。例如通過(guò)按優(yōu)先次序列出具有較長(zhǎng)總線等待時(shí)間的總線主裝置來(lái)減少諸如超限運(yùn)行(overrun)和欠載運(yùn)行(underrun)之類(lèi)的錯(cuò)誤。
然而在常規(guī)的總線控制系統(tǒng)中,仲裁器始終只利用固定優(yōu)先級(jí)方法來(lái)執(zhí)行總線仲裁。在應(yīng)用循環(huán)方法而不是固定優(yōu)先級(jí)方法的情況下,只利用循環(huán)方法來(lái)執(zhí)行總線仲裁。特別是,常規(guī)的總線控制系統(tǒng)只利用一種仲裁算法來(lái)進(jìn)行操作,所述仲裁算法可以是由仲裁器預(yù)先定義的固定優(yōu)先級(jí)方法或循環(huán)方法。常規(guī)的總線控制系統(tǒng)在一種仲裁算法的范圍內(nèi)改變仲裁次序。即,常規(guī)的總線控制系統(tǒng)依照相同的因素(要素)來(lái)執(zhí)行仲裁,其中所述因素是優(yōu)先級(jí),即便在改變所述優(yōu)先級(jí)之后也是如此。
在常規(guī)的總線控制系統(tǒng)中,如果使用固定優(yōu)先級(jí)方法來(lái)轉(zhuǎn)送適于固定優(yōu)先級(jí)方法的數(shù)據(jù),那么可以高效地仲裁并利用總線。然而如果使用固定優(yōu)先級(jí)方法來(lái)轉(zhuǎn)送適于循環(huán)方法的數(shù)據(jù),那么不能高效地仲裁并利用總線。類(lèi)似地,在常規(guī)的總線控制系統(tǒng)中,如果使用循環(huán)方法來(lái)轉(zhuǎn)送適于固定優(yōu)先級(jí)方法的數(shù)據(jù),那么不能高效地利用總線。如果不能高效地使用總線,那么用于數(shù)據(jù)轉(zhuǎn)送的等待時(shí)間可能會(huì)增加,可能會(huì)產(chǎn)生超限運(yùn)行或欠載運(yùn)行,可能會(huì)導(dǎo)致數(shù)據(jù)轉(zhuǎn)送的瓶頸,由此降低了系統(tǒng)性能。因此常規(guī)的總線控制系統(tǒng)不能夠在任何時(shí)間以最適當(dāng)?shù)闹俨盟惴▉?lái)仲裁總線。
此外,在常規(guī)的總線控制系統(tǒng)中,需要總線監(jiān)視電路來(lái)監(jiān)視通信頻率和數(shù)據(jù)轉(zhuǎn)送等待以便切換優(yōu)先級(jí),并且由硬件來(lái)確定切換時(shí)間。為此,只有當(dāng)檢測(cè)到預(yù)定條件時(shí)才切換優(yōu)先級(jí)。通過(guò)指定總線等待時(shí)間的閾值以便根據(jù)所述總線等待時(shí)間來(lái)改變優(yōu)先級(jí),可以保證用于總線主裝置的最低吞吐量。然而它甚至要求檢測(cè)總線等待時(shí)間的閾值并且并不總是選擇最適當(dāng)?shù)膬?yōu)先級(jí)。此外,利用硬件控制,對(duì)于每個(gè)總線或總線主裝置,需要用于檢測(cè)等待時(shí)間等的電路。如果總線或總線主裝置的數(shù)目很大,那么所述電路可能很復(fù)雜,這增加了電路大小。
如上所述,現(xiàn)在已經(jīng)發(fā)現(xiàn),常規(guī)的總線控制系統(tǒng)并不總是能夠利用最適當(dāng)?shù)闹俨盟惴▉?lái)仲裁總線,并且由于只能使用指定的仲裁算法來(lái)仲裁所述總線,所以不能高效地使用所述總線。
發(fā)明內(nèi)容
依照本發(fā)明的一方面,提供了一種總線控制系統(tǒng),其包括共同連接到總線的多個(gè)總線主裝置,用于依照多個(gè)仲裁算法中的任何一個(gè)來(lái)在多個(gè)總線主裝置之間仲裁使用總線的總線仲裁器,和用于切換所述多個(gè)仲裁算法的仲裁算法控制單元??偩€控制系統(tǒng)能夠切換總線仲裁器的仲裁算法,并且能夠利用最適當(dāng)?shù)闹俨盟惴▉?lái)仲裁使用所述總線,由此能夠高效地使用所述總線。
依照本發(fā)明的另一方面,提供了一種總線控制系統(tǒng),其包括共同連接到總線的多個(gè)總線主裝置,用于依照預(yù)定仲裁算法來(lái)在多個(gè)總線主裝置之間仲裁使用總線的總線仲裁器,和用于切換所述多個(gè)總線主裝置的優(yōu)先級(jí)或仲裁次序的仲裁算法控制單元。總線控制系統(tǒng)能夠在諸如循環(huán)方法或固定優(yōu)先級(jí)方法之類(lèi)的一個(gè)仲裁算法內(nèi)切換優(yōu)先級(jí)或仲裁次序,使得能夠利用最適當(dāng)?shù)闹俨盟惴▉?lái)仲裁使用總線并且高效地使用所述總線。
依照本發(fā)明的另一方面,提供了一種用于在多個(gè)總線主裝置之間仲裁使用總線的總線控制方法,其包括依照預(yù)先確定的多個(gè)不同仲裁算法中的任何一個(gè)來(lái)在多個(gè)總線主裝置之間仲裁使用總線,以及根據(jù)要由所述多個(gè)總線主裝置執(zhí)行的處理來(lái)切換所述多個(gè)仲裁算法。該總線控制方法能夠切換用于總線的仲裁算法,使得能夠利用最適當(dāng)?shù)闹俨盟惴▉?lái)仲裁使用所述總線并且高效地使用所述總線。
本發(fā)明提供了一種總線控制系統(tǒng)和方法,其通過(guò)選擇總線主裝置來(lái)仲裁總線從而能夠高效地使用所述總線。
結(jié)合附圖根據(jù)以下描述,本發(fā)明的以上及其它目的、優(yōu)點(diǎn)和特征將變得更加清楚,其中圖1是示出依照本發(fā)明的總線控制系統(tǒng)的配置的配置圖;圖2A和2B是用于解釋依照本發(fā)明的仲裁算法的說(shuō)明圖;圖3A和3B是用于解釋依照本發(fā)明的仲裁算法的說(shuō)明圖;圖4是示出依照本發(fā)明的系統(tǒng)控制單元的配置的框圖;圖5是示出依照本發(fā)明的總線控制過(guò)程的流程圖;圖6是示出依照本發(fā)明的仲裁算法確定過(guò)程的流程圖;圖7A和7B是用于解釋依照本發(fā)明的仲裁算法的說(shuō)明圖;圖8是示出依照本發(fā)明的總線控制系統(tǒng)的配置的配置圖;圖9A和9B是用于解釋依照本發(fā)明的仲裁算法的說(shuō)明圖;圖10A和10B是用于解釋依照本發(fā)明的仲裁算法的說(shuō)明圖;圖11A和11B是用于解釋依照本發(fā)明的仲裁算法的說(shuō)明圖;圖12A和12B是用于解釋依照本發(fā)明的仲裁算法的說(shuō)明圖;圖13是示出依照本發(fā)明的仲裁算法確定過(guò)程的流程圖;和圖14是示出依照常規(guī)控制系統(tǒng)的總線控制系統(tǒng)的配置的配置圖。
具體實(shí)施例方式
現(xiàn)在這里將參考說(shuō)明性實(shí)施例來(lái)描述本發(fā)明。那些本領(lǐng)域技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,使用本發(fā)明的教導(dǎo)可以實(shí)現(xiàn)許多替代實(shí)施例,并且本發(fā)明不局限于用于說(shuō)明目的所圖示的實(shí)施例。
第一實(shí)施例以下詳細(xì)描述了第一實(shí)施例的總線控制系統(tǒng)。此實(shí)施例的總線控制系統(tǒng)其特征在于它依照所要執(zhí)行的處理來(lái)切換仲裁器的仲裁算法。
以下參考圖1詳細(xì)地描述此實(shí)施例的總線控制系統(tǒng)的硬件配置??偩€控制系統(tǒng)例如是由一個(gè)或多個(gè)芯片構(gòu)成的系統(tǒng)LSI,其被提供給諸如個(gè)人計(jì)算機(jī)、信息處理單元和蜂窩式電話之類(lèi)的電子設(shè)備。
如圖1所示,總線控制系統(tǒng)包括總線主裝置101a、101b和101c,總線從裝置110,仲裁器120,算法寄存器130??偩€主裝置101a、101b和101c與總線從裝置110共同連接到總線140。
總線主裝置101a、101b和101c向仲裁器120進(jìn)行用于使用總線的請(qǐng)求。如果仲裁器120允許它們使用總線,那么它們經(jīng)由總線140向總線從裝置110轉(zhuǎn)送數(shù)據(jù)。
在此例子中,總線主裝置101a是用于控制整個(gè)系統(tǒng)操作的CPU(系統(tǒng)控制單元)1??偩€主裝置101b和101c是用于在CPU1的控制之下執(zhí)行各種操作的輔助功能單元??偩€主裝置101b例如是用于直接轉(zhuǎn)送數(shù)據(jù)以便與之外的存儲(chǔ)器通信的DMA(直接存儲(chǔ)器訪問(wèn))2??偩€主裝置101c是用于處理音頻和圖像數(shù)據(jù)的DSP(數(shù)字信號(hào)處理器)3??偩€從裝置110是用于存儲(chǔ)為操作CPU1、DMA2和DSP3所必須的信息的存儲(chǔ)器(存儲(chǔ)單元)4,諸如RAM。存儲(chǔ)器4例如存儲(chǔ)了要由CPU1執(zhí)行的程序和計(jì)算數(shù)據(jù)、用于DMA2的外部數(shù)據(jù)以及用于DSP3的音頻和圖像數(shù)據(jù)。
例如,當(dāng)總線控制系統(tǒng)在蜂窩式電話中進(jìn)行呼叫時(shí),在CPU1中執(zhí)行用于呼叫的程序,由用戶所輸入的音頻在DSP3中被轉(zhuǎn)換為音頻數(shù)據(jù),并且所述音頻數(shù)據(jù)被存儲(chǔ)到存儲(chǔ)器4。在音頻數(shù)據(jù)被CPU1處理之后,所述音頻數(shù)據(jù)被DMA2轉(zhuǎn)送到外面。從外面所接收的音頻數(shù)據(jù)被存儲(chǔ)到存儲(chǔ)器4,由CPU1處理,在DSP3中被轉(zhuǎn)換為音頻,并且最后輸出給用戶。
算法寄存器130為仲裁器120指定用于仲裁使用總線的仲裁算法。仲裁算法用于依照確定因素(要素)來(lái)選擇總線主裝置以便執(zhí)行仲裁。仲裁算法依照所指定的因素(要素)來(lái)向總線仲裁器指定用于許可總線主裝置所使用總線的次序,即用于提供使用所述總線的權(quán)利的次序。固定優(yōu)先級(jí)方法或循環(huán)方法被指定到算法寄存器130作為仲裁算法。在固定優(yōu)先級(jí)方法中,依照優(yōu)先級(jí)因素來(lái)選擇總線主裝置。在循環(huán)方法中,依照預(yù)定次序而不是優(yōu)先級(jí)(非優(yōu)先級(jí)方法)來(lái)選擇總線主裝置。例如,利用循環(huán)方法,指定“0”,而利用固定優(yōu)先級(jí)方法,指定“1”。在此實(shí)施例中,CPU1、系統(tǒng)控制單元根據(jù)要執(zhí)行的處理來(lái)向算法寄存器130指定仲裁算法。換句話說(shuō),CPU1作為仲裁算法控制單元操作以便切換到不同的仲裁算法。
仲裁器120依照多個(gè)不同仲裁算法中的任何一個(gè)來(lái)執(zhí)行總線仲裁。在此實(shí)施例中,仲裁器120依照向算法寄存器130所指定的仲裁算法來(lái)執(zhí)行總線仲裁。更加具體地,響應(yīng)于來(lái)自總線主裝置101a、101b和101c的總線使用請(qǐng)求,仲裁器120依照被指定到算法寄存器130的循環(huán)方法或固定優(yōu)先級(jí)方法來(lái)選擇總線主裝置,以便許可使用總線。
以下參考圖2A到3B詳細(xì)地描述由此實(shí)施例的仲裁器120所使用的仲裁算法,即由CPU1指定到算法寄存器130的仲裁算法。
圖2A和2B示出了其中仲裁算法是循環(huán)方法的例子。圖2A示出了其中利用循環(huán)方法選擇并許可每個(gè)總線主裝置使用總線的次序。在循環(huán)方法中,優(yōu)先級(jí)對(duì)于所有總線主裝置來(lái)說(shuō)是相等的,并且以相同的比率許可所述總線主裝置使用總線。即,在所指定的單元,依照101a、101b和101c的次序來(lái)重復(fù)選擇總線主裝置使用總線。作為例子,由每個(gè)數(shù)據(jù)轉(zhuǎn)送單元來(lái)選擇下一總線主裝置。
圖2B示出了其中依照循環(huán)方法來(lái)執(zhí)行仲裁以轉(zhuǎn)送數(shù)據(jù)的例子。例如,從總線主裝置101a產(chǎn)生用于轉(zhuǎn)送數(shù)據(jù)A的四個(gè)總線使用請(qǐng)求。從總線主裝置101b產(chǎn)生用于轉(zhuǎn)送數(shù)據(jù)B的四個(gè)總線使用請(qǐng)求。從總線主裝置101c產(chǎn)生用于轉(zhuǎn)送數(shù)據(jù)C的兩個(gè)總線使用請(qǐng)求。利用循環(huán)方法,依照101a、101b和101c的次序來(lái)許可總線主裝置使用總線,并且依照A、B和C(T0到T3)的次序來(lái)轉(zhuǎn)送數(shù)據(jù)。在許可總線主裝置101a到101c使用總線之后,用于總線主裝置101c的數(shù)據(jù)C完成轉(zhuǎn)送(T3到T6)。然后,重復(fù)許可總線主裝置101a和101b使用總線,并且轉(zhuǎn)送所有數(shù)據(jù)A和B(T6到T10)。如圖2B所示,如果循環(huán)方法被用為仲裁算法,從每個(gè)總線主裝置平均地轉(zhuǎn)送數(shù)據(jù),并且數(shù)據(jù)A和B在鄰近時(shí)間完成轉(zhuǎn)送(T9和T10)。
圖3A和3B示出了其中依照固定優(yōu)先級(jí)方法執(zhí)行仲裁的例子。圖3A示出了其中利用固定優(yōu)先級(jí)方法來(lái)許可總線主裝置使用總線的次序。在固定優(yōu)先級(jí)方法中,對(duì)每個(gè)總線主裝置指定不同的優(yōu)先級(jí),并且優(yōu)先許可具有較高優(yōu)先級(jí)的總線主裝置使用總線。換句話說(shuō),首先選擇具有最高優(yōu)先級(jí)的總線主裝置,并且在處理完所述總線主裝置的所有處理之后,選擇具有次高優(yōu)先級(jí)的總線主裝置。在此例子中,總線主裝置101a的優(yōu)先級(jí)最高,總線主裝置101b的優(yōu)先級(jí)第二高,而總線主裝置101c的優(yōu)先級(jí)最低。可以預(yù)先向仲裁器120指定優(yōu)先級(jí),或者CPU1可以向算法寄存器130指定優(yōu)先級(jí)。
圖3B示出了其中依照固定優(yōu)先級(jí)方法來(lái)執(zhí)行仲裁以便轉(zhuǎn)送數(shù)據(jù)的例子。從每個(gè)總線主裝置所產(chǎn)生的總線使用請(qǐng)求與圖2B中的相同。在固定優(yōu)先級(jí)方法中,重復(fù)許可具有最高優(yōu)先級(jí)的總線主裝置101a使用總線,并且數(shù)據(jù)A被完成轉(zhuǎn)送(T0到T4)。然后重復(fù)許可具有次高優(yōu)先級(jí)的總線主裝置101b使用總線,并且數(shù)據(jù)B被完成轉(zhuǎn)送(T4到T8)。然后重復(fù)許可具有第三高優(yōu)先級(jí)的總線主裝置101c使用總線,并且數(shù)據(jù)C被完成轉(zhuǎn)送(T8到T10)。如圖3B所示,如果固定優(yōu)先級(jí)方法用于仲裁算法,那么優(yōu)先從具有較高優(yōu)先級(jí)的總線主裝置轉(zhuǎn)送數(shù)據(jù),導(dǎo)致數(shù)據(jù)A首先被完成轉(zhuǎn)送。在如圖2B所示的循環(huán)方法中,到T9時(shí)數(shù)據(jù)A被完成轉(zhuǎn)送,而在固定優(yōu)先級(jí)方法中,到T4時(shí)數(shù)據(jù)A被完成轉(zhuǎn)送。
以下參考圖4詳細(xì)地描述CPU1、系統(tǒng)控制單元(仲裁算法控制單元)的功能塊。圖4中的每個(gè)塊由用于CPU1的硬件或要在所述硬件中執(zhí)行的軟件構(gòu)成。例如CPU1依照在存儲(chǔ)器4中所存儲(chǔ)的程序來(lái)執(zhí)行處理,以與硬件合作來(lái)實(shí)現(xiàn)每個(gè)塊的功能。
如圖4所示,CPU1包括總線輸入/輸出單元210、算法確定單元211、算法設(shè)置單元212和處理執(zhí)行單元213。
總線輸入/輸出單元210利用總線140輸入/輸出數(shù)據(jù)。為了使用總線140,總線主裝置首先向仲裁器120輸出總線使用請(qǐng)求,等待許可以便使用總線,并且經(jīng)由所述總線140執(zhí)行數(shù)據(jù)轉(zhuǎn)送。
算法確定單元211從存儲(chǔ)器4讀取要由總線輸入/輸出單元210所執(zhí)行的程序。然后,算法確定單元211識(shí)別所要執(zhí)行的處理的特性并且確定用于所述處理的適當(dāng)仲裁算法。
算法設(shè)置單元212向算法寄存器130指定用于表明由算法確定單元211所確定的仲裁算法的信息。
處理執(zhí)行單元213執(zhí)行從存儲(chǔ)器4中所讀取的程序的處理。例如處理執(zhí)行單元213依照程序執(zhí)行各種計(jì)算,與存儲(chǔ)器4進(jìn)行數(shù)據(jù)轉(zhuǎn)送,或者控制DMA2和DSP3的操作。
以下參考圖5的流程圖來(lái)詳細(xì)地描述此實(shí)施例的總線控制系統(tǒng)的總線控制過(guò)程。例如當(dāng)用戶啟動(dòng)包括呼叫、電視電話和電子郵件之類(lèi)的某種應(yīng)用程序時(shí),開(kāi)始總線控制過(guò)程。
CPU1執(zhí)行以下所描述的步驟S401到S404。首先算法確定單元211獲取要執(zhí)行的處理(S401)。用于處理用戶操作的程序和必要的數(shù)據(jù)被從存儲(chǔ)器4輸入到處理判定211。
然后算法確定單元211確定適于在S401中所獲取的處理的仲裁算法(S402)。例如,算法確定單元211依照從存儲(chǔ)器4所讀取的程序或數(shù)據(jù)來(lái)確定最適當(dāng)?shù)闹俨盟惴ㄊ茄h(huán)方法還是固定優(yōu)先級(jí)方法。稍后描述仲裁算法的確定過(guò)程的細(xì)節(jié)。
然后算法設(shè)置單元212向算法寄存器130指定在S402中所確定的仲裁算法(S403)。在由算法確定單元211所確定的仲裁算法是循環(huán)方法的情況中,算法設(shè)置單元212向算法寄存器指定“0”。在仲裁算法是固定優(yōu)先級(jí)方法的情況中,算法設(shè)置單元212向算法寄存器130指定“1”。
然后處理執(zhí)行單元213執(zhí)行在S401中所獲取的處理(S404)。處理執(zhí)行單元213依照從存儲(chǔ)器4中所讀取的程序或數(shù)據(jù)來(lái)執(zhí)行處理。當(dāng)在S403中指定算法寄存器130時(shí),仲裁器120依照所指定的仲裁算法來(lái)仲裁使用總線(S405)。特別地,如圖2A到3B所示,仲裁器120進(jìn)行仲裁并且數(shù)據(jù)被各自的總線主裝置轉(zhuǎn)送。
如果在S404中執(zhí)行處理,那么例如CPU1、DMA2和DSP3向仲裁器120輸出總線使用請(qǐng)求,以便CPU1處理存儲(chǔ)器4中的數(shù)據(jù),所述DMA2向存儲(chǔ)器4轉(zhuǎn)送外部數(shù)據(jù),或者DSP3轉(zhuǎn)換所述存儲(chǔ)器4中的音頻數(shù)據(jù)。如果算法寄存器130是“0”,那么仲裁器120利用循環(huán)方法來(lái)許可總線使用請(qǐng)求。如果算法寄存器130是“1”,那么仲裁器120利用固定優(yōu)先級(jí)方法來(lái)許可總線使用請(qǐng)求。CPU1、DMA2和DSP3依照被許可的次序來(lái)使用總線140向存儲(chǔ)器4執(zhí)行數(shù)據(jù)轉(zhuǎn)送。
以下參考圖6的流程圖來(lái)詳細(xì)地描述在圖5的S402中所示出的仲裁算法的確定過(guò)程。確定過(guò)程用于CPU1的算法確定單元211確定適于所要執(zhí)行的處理的仲裁算法。
首先算法確定單元211獲得每個(gè)總線主裝置的總線使用模式(S501)。例如算法確定單元211獲得處理模式,即當(dāng)執(zhí)行處理時(shí)每個(gè)總線主裝置使用總線的模式,作為用于確定適當(dāng)仲裁算法的要素??偩€的使用模式例如包括使用總線的概率、要轉(zhuǎn)送的數(shù)據(jù)量和數(shù)據(jù)轉(zhuǎn)送頻率。除以上要素之外,使用模式可以包括數(shù)據(jù)的特性,諸如是否可以許可延遲以及是否需要接連轉(zhuǎn)送數(shù)據(jù)。
然后算法確定單元211判定在S501中所獲得的總線使用模式在總線主裝置之間是均等還是不均等的(S502)。作為判定仲裁算法的基準(zhǔn),算法確定單元211判定總線使用模式是均等還是不均等的,即判定每個(gè)總線主裝置是否依照幾乎相同的模式來(lái)使用總線。特別地,算法確定單元211判定總線使用概率和數(shù)據(jù)轉(zhuǎn)送量是否幾乎相同。
如果在S502中判定總線使用模式幾乎是均等的,那么算法確定單元211確定仲裁算法會(huì)是循環(huán)方法(S503)。例如如果每個(gè)總線主裝置使用總線的概率及其它因素幾乎是相同的,換句話說(shuō),如果所述總線被每個(gè)總線主裝置平等地使用,那么算法確定單元211確定仲裁算法會(huì)是循環(huán)方法。更具體地,在如圖2B中從每個(gè)總線主裝置平等地執(zhí)行數(shù)據(jù)轉(zhuǎn)送并且完成總線主裝置101a的數(shù)據(jù)A轉(zhuǎn)送的時(shí)間可以是T9的情況下,仲裁算法被指定為循環(huán)方法。
如果在S502中判定總線使用模式是不均等的,那么算法確定單元211確定仲裁算法會(huì)是固定優(yōu)先級(jí)方法(S504)。例如,如果每個(gè)總線主裝置使用總線的概率及其它因素是不同的,或者如果需要在其它總線主裝置之前轉(zhuǎn)送數(shù)據(jù),即在所指定的總線主裝置優(yōu)先使用所述總線的情況中,算法確定單元211確定仲裁算法會(huì)是固定優(yōu)先級(jí)方法。更具體地,如果如圖3B所示,需要從總線主裝置101a優(yōu)先轉(zhuǎn)送數(shù)據(jù)并且需要在T4前完成轉(zhuǎn)送,那么仲裁算法被確定為固定優(yōu)先級(jí)方法。
如上所述,在此實(shí)施例中,寄存器的設(shè)置值被改變并且根據(jù)所要執(zhí)行的處理來(lái)切換用于仲裁器的仲裁算法。在其中每個(gè)總線主裝置被平等處理的情況下,仲裁算法被確定為循環(huán)方法(循環(huán)算法)。另一方面,在其中指定的總線主裝置被優(yōu)先處理的情況下,仲裁算法被確定為固定優(yōu)先級(jí)方法(固定優(yōu)先級(jí)算法)。把本發(fā)明應(yīng)用于蜂窩式電話使得能夠選擇適于諸如呼叫、電視電話和電子郵件之類(lèi)的應(yīng)用的仲裁算法。
通過(guò)切換仲裁算法而不是如常規(guī)技術(shù)中在一個(gè)仲裁算法內(nèi)切換優(yōu)先級(jí),更靈活地指定了用于仲裁使用總線的次序,由此能夠依照更適當(dāng)?shù)拇涡騺?lái)仲裁。因此可以有效地使用總線并且減少用于等待數(shù)據(jù)轉(zhuǎn)送的時(shí)間。結(jié)果大大地減少了由于總線主裝置等待使用總線所產(chǎn)生的超限運(yùn)行/欠載運(yùn)行。此外,如果總線主裝置包括用來(lái)存儲(chǔ)正等待被轉(zhuǎn)送的數(shù)據(jù)的FIFO存儲(chǔ)器,那么可以通過(guò)降低轉(zhuǎn)送等待時(shí)間來(lái)減少FIFO存儲(chǔ)器的量。
此外,通過(guò)指定在總線主裝置最大負(fù)載時(shí)所要使用的仲裁算法,可以計(jì)算使用總線的概率,從而可以容易地估算向所述總線主裝置提供的FIFO存儲(chǔ)器的量。例如,如果在應(yīng)用本發(fā)明之前,DMA(即總線主裝置)能夠使用總線的概率在最壞的情況下是1/4,那么使用依照本發(fā)明的1/2固定優(yōu)先級(jí)方法可以減少一半FIFO存儲(chǔ)器的量。
還可以減少用于數(shù)據(jù)轉(zhuǎn)送的等待時(shí)間,因此也縮短了用于完成每個(gè)總線主裝置的處理的時(shí)間。據(jù)此,在具有諸如多處理器之類(lèi)的子系統(tǒng)的冗余配置系統(tǒng)中,可以通過(guò)停止已經(jīng)完成處理的CPU的時(shí)鐘并且通過(guò)切換到節(jié)能模式來(lái)降低功耗。
此外,在如常規(guī)技術(shù)中硬件將監(jiān)視總線使用的方法中,還需要監(jiān)視電路。然而在此實(shí)施例中,通過(guò)使用軟件控制,可以抑制電路大小的增加,并且甚至還便于控制具有大量總線主裝置的大型系統(tǒng)。
此外,利用硬件控制,只有當(dāng)監(jiān)視電路等檢測(cè)到預(yù)定條件時(shí)的情況才可以被控制,由此只保證了總線主裝置的最低吞吐量。利用此實(shí)施例,當(dāng)在執(zhí)行處理之前仲裁算法被預(yù)先切換時(shí),不必等待直到監(jiān)視電路檢測(cè)到預(yù)定條件,以便使用最適當(dāng)?shù)姆椒▉?lái)仲裁總線,有助于改進(jìn)總線使用的效率。
特別是,在此實(shí)施例中,通過(guò)使用軟件而不是硬件來(lái)控制能以更靈活的條件進(jìn)行控制。更具體地,對(duì)于需要保證最低吞吐量的處理,可以選擇滿足所述條件的仲裁算法。對(duì)于其它總線主裝置能夠長(zhǎng)時(shí)間等待的處理,可以選擇保證最大吞吐量的仲裁算法。
第二實(shí)施例以下詳細(xì)地描述依照本發(fā)明第二實(shí)施例的總線控制系統(tǒng)。此實(shí)施例的總線控制系統(tǒng)其特征在于它將多個(gè)總線主裝置分組并且根據(jù)所要執(zhí)行的處理來(lái)切換組間和組內(nèi)仲裁算法。
這里描述了當(dāng)將總線主裝置分組時(shí)仲裁算法的簡(jiǎn)單例子,以便與第一實(shí)施例相比較。圖7A和7B示出了在總線主裝置101a、101b和101c之間仲裁使用總線的例子,就像圖2A到3B一樣。
圖7A是把總線主裝置101a到101c分組為兩個(gè)組以便進(jìn)行仲裁的例子。在此例子中,總線主裝置101a被分組為組1,而總線主裝置101b和101c被分組為組2。在此實(shí)施例中,指定了兩個(gè)仲裁算法,它們是;用于確定仲裁次序(用于許可總線使用請(qǐng)求的次序)的組間仲裁算法,和用于確定組中每個(gè)總線主裝置的仲裁次序的組內(nèi)仲裁算法。例如用于仲裁組1和2的仲裁算法將被指定為循環(huán)方法,并且用于仲裁總線主裝置101b和總線主裝置101c的仲裁算法將被指定為循環(huán)方法。在這種情況下,按順序重復(fù)地選擇組1和2。如果組1被選擇,那么許可總線主裝置101a使用總線。如果組2被選擇,那么重復(fù)地選擇總線主裝置101b或總線主裝置101c來(lái)許可使用總線。
圖7B是其中依照?qǐng)D7A的仲裁算法來(lái)轉(zhuǎn)送數(shù)據(jù)的具體例子。從每個(gè)總線主裝置所產(chǎn)生的總線使用請(qǐng)求與圖2B中的相同。在此方法中,總線主裝置101a和總線主裝置101b或101c被選擇,并且依照A、B、A和C的次序來(lái)轉(zhuǎn)送數(shù)據(jù)(T0到T4)。依照類(lèi)似的方式,轉(zhuǎn)送數(shù)據(jù)A、B、A和C,并且完成總線主裝置101a和101c的數(shù)據(jù)A和C(T4到T8)。然后重復(fù)地選擇總線主裝置101b并且數(shù)據(jù)B被完成轉(zhuǎn)送(T8到T10)。如在圖2B和3B中,利用循環(huán)方法,到T9時(shí)數(shù)據(jù)A被完成轉(zhuǎn)送,而利用固定優(yōu)先級(jí)方法,到T4時(shí)數(shù)據(jù)A被完成轉(zhuǎn)送。然而在此方法中,如圖7B所示,到T7時(shí)數(shù)據(jù)A被完成轉(zhuǎn)送。據(jù)此,與第一實(shí)施例中的簡(jiǎn)單循環(huán)方法或固定優(yōu)先級(jí)方法相比,第二實(shí)施例能夠取決于處理而更詳細(xì)地調(diào)整。
以下參考圖8詳細(xì)地描述此實(shí)施例的總線控制系統(tǒng)的硬件配置。在圖8中,與圖1中的組件相同的組件由與其相同的附圖標(biāo)記來(lái)標(biāo)示,并且省略了對(duì)其的詳細(xì)描述。
除圖1中的組件之外,總線控制系統(tǒng)包括總線主裝置102a、102b和102c。每個(gè)總線主裝置共同被連接到總線140。例如總線主裝置102a就像總線主裝置101a一樣是CPU??偩€主裝置102b就像總線主裝置101b一樣是DMA。總線主裝置102c就像總線主裝置101c一樣是DSP。
圖8是把六個(gè)總線主裝置分組為三個(gè)組的例子。在此例子中,總線主裝置101a和102a被分組為組1??偩€主裝置101b和102b被分組為組2??偩€主裝置101c和102c被分組為組3。所述組是指定仲裁算法的單元??偩€主裝置所屬的組可以預(yù)先指定到仲裁器120,或者CPU可以指定到算法寄存器130。
總線主裝置101a是如第一實(shí)施例中用于控制整個(gè)系統(tǒng)的CPU1,具有與圖4中相同的功能塊??偩€控制過(guò)程與圖5相同。在此實(shí)施例中,CPU1的每個(gè)塊向算法寄存器130指定組間仲裁算法和組內(nèi)仲裁算法。換句話說(shuō),CPU1是用于切換組間和組內(nèi)仲裁算法的仲裁算法控制單元。
例如假定向算法寄存器130指定幾個(gè)數(shù)據(jù)位。對(duì)于第一位,當(dāng)指定組間仲裁算法時(shí),指定“0”表明循環(huán)方法或者“1”表明固定優(yōu)先級(jí)方法。從第二位以后,對(duì)于每個(gè)組作為組內(nèi)仲裁算法指定“0”表明循環(huán)方法或者“1”表明固定優(yōu)先級(jí)方法。仲裁器120依照所指定的仲裁算法來(lái)在組之間仲裁使用總線的次序。例如,仲裁器120查閱算法寄存器130,并且如果第一位是“0”,那么仲裁器120依照循環(huán)方法來(lái)在組間進(jìn)行仲裁。如果第一位是“1”,那么仲裁器120依照固定優(yōu)先級(jí)方法來(lái)在組間進(jìn)行仲裁。如果第一位之后的位是“0”,那么利用循環(huán)方法來(lái)執(zhí)行組內(nèi)仲裁。如果第一位之后的位是“1”,那么利用固定優(yōu)先級(jí)方法來(lái)執(zhí)行組內(nèi)仲裁。
以下參考圖9A到12B詳細(xì)地描述在此實(shí)施例的仲裁器120中所使用的仲裁算法,即CPU1向算法寄存器130所指定的仲裁算法。
圖9A和9B示出了其中組間仲裁算法被指定為循環(huán)方法并且組內(nèi)仲裁算法也被指定為循環(huán)方法的例子。圖9A示出了其中依照仲裁算法選擇每個(gè)總線主裝置被許可使用總線的次序。在此方法中,組之間的優(yōu)先級(jí)是相等的,并且在組內(nèi)總線主裝置之間的優(yōu)先級(jí)也是相等的。因而以相同的比率許可每個(gè)組使用總線,并且同樣以相同的比率許可每個(gè)總線主裝置使用所述總線。
在此方法中,按順序重復(fù)地選擇組1、2和3,并且逐個(gè)選擇每個(gè)組中的總線主裝置。當(dāng)每個(gè)組被選擇時(shí),選擇所述組中的總線主裝置之一來(lái)許可使用總線。
圖9B示出了其中利用圖9A中的方法來(lái)執(zhí)行仲裁以便轉(zhuǎn)送數(shù)據(jù)的例子。例如,假定產(chǎn)生各自來(lái)自總線主裝置101a和102a的兩個(gè)總線使用請(qǐng)求以轉(zhuǎn)送數(shù)據(jù)A1和A2,產(chǎn)生各自來(lái)自總線主裝置101b和101b的兩個(gè)總線使用請(qǐng)求以轉(zhuǎn)送數(shù)據(jù)B1和B2,并且產(chǎn)生各自來(lái)自總線主裝置101c和102c的兩個(gè)總線使用請(qǐng)求以轉(zhuǎn)送數(shù)據(jù)C1和C2。
在此方法中,按順序選擇來(lái)自組1的總線主裝置101a、來(lái)自組2的總線主裝置101b以及來(lái)自組3的總線主裝置101c。然后按順序選擇來(lái)自組1的總線主裝置102a、來(lái)自組2的總線主裝置102b以及來(lái)自組3的總線主裝置102c。結(jié)果,按順序來(lái)轉(zhuǎn)送數(shù)據(jù)A1、B1、C1、A2、B2和C2(T0到T6)。依照類(lèi)似的方式選擇總線主裝置來(lái)許可使用總線,并且按順序轉(zhuǎn)送數(shù)據(jù)A1、B1、C1、A2、B2和C2,從而完成所有的數(shù)據(jù)轉(zhuǎn)送(T6到T12)。
如圖9B所示,如果組間和組內(nèi)仲裁算法被指定為循環(huán)方法,那么不僅可以從每個(gè)組平等地轉(zhuǎn)送數(shù)據(jù),而且可以從所述組中的每個(gè)總線主裝置平等地轉(zhuǎn)送數(shù)據(jù)。在這種情況下,來(lái)自組1到3的數(shù)據(jù)A2、B2和C2在鄰近時(shí)間完成轉(zhuǎn)送(T10到T12),而在組1中,數(shù)據(jù)A1和A2在鄰近時(shí)間完成轉(zhuǎn)送(T7和T10)。
在圖10A和10B中,組間仲裁算法被指定為固定優(yōu)先級(jí)方法,而組內(nèi)仲裁算法被指定為循環(huán)方法。圖10A示出了其中依照此方法來(lái)許可總線主裝置使用總線的次序。利用此方法,在組之間指定不同的優(yōu)先級(jí),而在組中的總線主裝置之間的優(yōu)先級(jí)是相等的。因此,優(yōu)先許可具有較高優(yōu)先級(jí)的組使用總線,而以相同的比率許可組中的總線主裝置使用所述總線。
換句話說(shuō),利用此方法,首先選擇具有最高優(yōu)先級(jí)的組,并且在完成該組中的總線主裝置的處理之后,選擇具有次高優(yōu)先級(jí)的組。當(dāng)一個(gè)組被選擇時(shí),重復(fù)選擇所述組中的每個(gè)總線主裝置來(lái)許可使用總線。在此例子中,組1的優(yōu)先級(jí)最高,組2的優(yōu)先級(jí)第二高,而組3的優(yōu)先級(jí)最低。
圖10B示出了其中利用圖10A中的方法來(lái)執(zhí)行仲裁以便轉(zhuǎn)送數(shù)據(jù)的例子。從每個(gè)總線主裝置所產(chǎn)生的總線使用請(qǐng)求與圖9B中的相同。在此方法中,對(duì)于具有最高優(yōu)先級(jí)的組1,依照總線主裝置101a和102a的次序來(lái)許可使用總線以便完成數(shù)據(jù)A1和A2的數(shù)據(jù)轉(zhuǎn)送(T0到T4)。然后對(duì)于具有次高優(yōu)先級(jí)的組2,依照總線主裝置101b和102b的次序來(lái)許可使用所述總線,完成數(shù)據(jù)B1和B2的數(shù)據(jù)轉(zhuǎn)送(T4到T8)。然后對(duì)于具有第三最高優(yōu)先級(jí)的組3,依照總線主裝置101c和102c的次序來(lái)許可使用總線以便完成數(shù)據(jù)C1和C2的數(shù)據(jù)轉(zhuǎn)送(T8到T12)。
如圖10B所示,在組間仲裁算法被指定為固定優(yōu)先級(jí)方法并且組內(nèi)仲裁算法被指定為循環(huán)方法的情況中,優(yōu)先選擇具有較高優(yōu)先級(jí)的組來(lái)執(zhí)行數(shù)據(jù)轉(zhuǎn)送,并且平等地選擇所述組中的每個(gè)總線主裝置來(lái)執(zhí)行數(shù)據(jù)轉(zhuǎn)送。在這種情況下,到T4時(shí)完成組1的數(shù)據(jù)轉(zhuǎn)送,比其它組更快。在組1內(nèi),數(shù)據(jù)A1和A2在鄰近時(shí)間完成轉(zhuǎn)送(T3和T4)。
圖11A和11B示出了其中組間仲裁算法被指定為循環(huán)方法并且組內(nèi)仲裁算法被指定為固定優(yōu)先級(jí)方法的例子。圖11A示出了其中利用此方法來(lái)許可使用總線的次序。利用此方法,在組之間的優(yōu)先級(jí)是相等的,而在組內(nèi)的優(yōu)先級(jí)是不同的。據(jù)此,以相同的比率來(lái)許可這些組使用總線,而在組內(nèi),優(yōu)先許可具有較高優(yōu)先級(jí)的總線主裝置使用所述總線。
換句話說(shuō),利用這種方法,按順序重復(fù)地選擇組1、2和3,并且逐個(gè)選擇每個(gè)組中的總線主裝置。當(dāng)一個(gè)組被選擇時(shí),選擇在該組內(nèi)具有較高優(yōu)先級(jí)的總線主裝置。如果完成了具有較高優(yōu)先級(jí)的總線主裝置的所有處理,那么選擇具有下一最高優(yōu)先級(jí)的總線主裝置。在此例子中,在組2內(nèi)總線主裝置101a具有最高優(yōu)先級(jí),總線主裝置102a具有次高優(yōu)先級(jí)。在組2內(nèi),總線主裝置101b具有最高優(yōu)先級(jí),并且總線主裝置102b具有次高優(yōu)先級(jí)。在組3內(nèi),總線主裝置101c具有最高優(yōu)先級(jí),并且總線主裝置102c具有次高優(yōu)先級(jí)。
圖11B示出了其中利使用圖11A中的方法來(lái)執(zhí)行仲裁以便轉(zhuǎn)送數(shù)據(jù)的例子。從每個(gè)主裝置所產(chǎn)生的總線使用請(qǐng)求與圖9B中的相同。在此方法中,依照組1、2和3的次序來(lái)選擇總線主裝置。選擇在組1中具有較高優(yōu)先級(jí)的總線主裝置101a一次,選擇在組2中具有較高優(yōu)先級(jí)的總線主裝置101b一次,并且選擇在組3中具有較高優(yōu)先級(jí)的總線主裝置101c一次,來(lái)許可使用總線。然后數(shù)據(jù)A1、B1和C1被完成轉(zhuǎn)送(T0到T6)。此外,選擇在組1中具有較低優(yōu)先級(jí)的總線主裝置102a一次,選擇在組2中具有較低優(yōu)先級(jí)的總線主裝置102b一次,并且選擇在組3中具有較低優(yōu)先級(jí)的總線主裝置102c一次,來(lái)許可使用總線。然后數(shù)據(jù)A2、B2和C2被完成轉(zhuǎn)送(T6到T12)。
如圖11B所示,在組間仲裁算法被指定為循環(huán)方法并且組內(nèi)仲裁算法被指定為固定優(yōu)先級(jí)方法的情況中,平等地選擇每個(gè)組來(lái)執(zhí)行數(shù)據(jù)轉(zhuǎn)送,而在組內(nèi),優(yōu)先選擇具有較高優(yōu)先級(jí)的總線主裝置來(lái)轉(zhuǎn)送數(shù)據(jù)。在這種情況下,在組1到3中的數(shù)據(jù)A2、B2和C2在鄰近時(shí)間完成轉(zhuǎn)送(T10到T12),而在組1中,數(shù)據(jù)A1在T4完成轉(zhuǎn)送,比數(shù)據(jù)A2更快。
圖12A和12B示出了其中組間仲裁算法被指定為固定優(yōu)先級(jí)方法并且組內(nèi)仲裁算法也被指定為固定優(yōu)先級(jí)方法的例子。圖12A示出了其中使用此方法來(lái)許可使使用總線的次序。利用此方法,組之間的優(yōu)先級(jí)是不同的,并且組內(nèi)總線主裝置之間的優(yōu)先級(jí)也是不同的。據(jù)此,優(yōu)先許可具有較高優(yōu)先級(jí)的組使用總線,并且優(yōu)先許可在所述組內(nèi)具有較高優(yōu)先級(jí)的總線主裝置使用所述總線。
換句話說(shuō),利用此方法,首先選擇具有最高優(yōu)先級(jí)的組,并且在完成所述組中的總線主裝置的所有處理之后,選擇具有下一最高優(yōu)先級(jí)的組。當(dāng)一個(gè)組被選擇時(shí),選擇具有較高優(yōu)先級(jí)的總線主裝置,并且在完成該總線主裝置的所有處理之后,選擇具有下一最高優(yōu)先級(jí)的總線主裝置。在此例子中,組1具有最高優(yōu)先級(jí),組2具有次高優(yōu)先級(jí),并且組3具有最低優(yōu)先級(jí)。在組1內(nèi),總線主裝置101a具有最高優(yōu)先級(jí),并且總線主裝置102a具有次高優(yōu)先級(jí)。在組2內(nèi),總線主裝置101b具有最高優(yōu)先級(jí),并且總線主裝置102b具有次高優(yōu)先級(jí)。在組3內(nèi),總線主裝置101c具有最高優(yōu)先級(jí),并且總線主裝置102c具有次高優(yōu)先級(jí)。
圖12B示出了其中利用圖12A中的方法來(lái)執(zhí)行仲裁以便轉(zhuǎn)送數(shù)據(jù)的例子。從每個(gè)總線主裝置所產(chǎn)生的總線使用請(qǐng)求與圖9B中的相同。利用此方法,對(duì)于具有最高優(yōu)先級(jí)的組1,首先重復(fù)地選擇具有較高優(yōu)先級(jí)的總線主裝置101a來(lái)完成轉(zhuǎn)送數(shù)據(jù)A1。然后重復(fù)地選擇具有較低優(yōu)先級(jí)的總線主裝置102來(lái)完成轉(zhuǎn)送數(shù)據(jù)A2(T0到T4)。對(duì)于具有次高優(yōu)先級(jí)的組2,首先重復(fù)地選擇具有較高優(yōu)先級(jí)的總線主裝置101b來(lái)完成轉(zhuǎn)送數(shù)據(jù)B1。然后選擇具有較低優(yōu)先級(jí)的總線主裝置102b來(lái)完成轉(zhuǎn)送數(shù)據(jù)B2(T4到T8)。然后對(duì)于具有第三最高優(yōu)先級(jí)的組3,首先重復(fù)地選擇具有較高優(yōu)先級(jí)的總線主裝置來(lái)完成轉(zhuǎn)送數(shù)據(jù)C1。然后選擇具有較低優(yōu)先級(jí)的總線主裝置102c來(lái)完成轉(zhuǎn)送數(shù)據(jù)C2(T8到T12)。
如圖12B所示,在組間和組內(nèi)仲裁算法被指定為固定優(yōu)先級(jí)方法的情況中,優(yōu)先選擇具有較高優(yōu)先級(jí)的組來(lái)執(zhí)行數(shù)據(jù)轉(zhuǎn)送,并且優(yōu)先選擇在所述組中具有較高優(yōu)先級(jí)的總線主裝置來(lái)執(zhí)行數(shù)據(jù)轉(zhuǎn)送。在這種情況下,到T4時(shí)完成組1的數(shù)據(jù)轉(zhuǎn)送,比其它組更快。在組1內(nèi),在T2完成數(shù)據(jù)A1的數(shù)據(jù)轉(zhuǎn)送,比數(shù)據(jù)A2更快。
盡管在此實(shí)施例中,組內(nèi)仲裁算法對(duì)于所有組被指定為相同的,然而可以對(duì)每個(gè)組指定不同的仲裁算法。此外,多個(gè)組(子組)在一個(gè)組中可以形成層次結(jié)構(gòu),并且可以向每個(gè)子組和層次指定仲裁算法。
以下參考圖13的流程圖來(lái)詳細(xì)地描述此實(shí)施例的確定過(guò)程。確定過(guò)程就像圖6一樣是圖5的S402中的過(guò)程,其中CPU1的算法確定單元211確定適于所要執(zhí)行的處理的仲裁算法。用于確定仲裁算法的因素與第一實(shí)施例相同。
首先,算法確定單元211獲得每個(gè)總線主裝置的總線使用模式(S601)。在此例子中,算法確定單元211除每個(gè)總線主裝置的總線使用模式之外還獲得每個(gè)組的總線使用模式。例如從每個(gè)總線主裝置的總線使用概率和數(shù)據(jù)轉(zhuǎn)送量來(lái)計(jì)算每個(gè)組的總線使用概率和數(shù)據(jù)轉(zhuǎn)送量。
然后,算法確定單元211判定在S601中所獲得的總線使用模式在組之間是均等還是不均等的(S602)。如果總線使用模式是均等的,那么算法確定單元211確定組間仲裁算法會(huì)是循環(huán)方法(S603)。如果總線使用模式是不均的,那么算法確定單元211確定組間仲裁算法會(huì)是固定優(yōu)先級(jí)方法(S604)。例如,如果每個(gè)組的總線使用概率及其它因素幾乎是相同的,那么算法確定單元211指定組間仲裁算法會(huì)是循環(huán)方法。特別地,在其中可以在每個(gè)組中以與圖9B和圖11B中的相同比率來(lái)執(zhí)行數(shù)據(jù)轉(zhuǎn)送并且組1中的數(shù)據(jù)A1和A2可以在T10完成轉(zhuǎn)送的情況下,仲裁算法將被指定為循環(huán)方法。此外,如果每個(gè)組的總線使用概率及其它因素是不同的,那么算法確定單元211指定組間仲裁算法會(huì)是固定優(yōu)先級(jí)方法。更具體地是,在其中需要從組1中優(yōu)先執(zhí)行數(shù)據(jù)轉(zhuǎn)送并且需要在T4以前完成組1中的數(shù)據(jù)A1和A2的情況下,仲裁算法將被指定為固定優(yōu)先級(jí)方法。
然后,算法確定單元211判定在S601中所獲得的總線使用模式在每個(gè)組中的總線主裝置之間是均等還是不均相等的(S605)。如果總線使用模式是均等的,那么算法確定單元211確定組內(nèi)仲裁算法會(huì)是循環(huán)方法(S606)。如果總線使用模式是不均等的,那么算法確定單元211確定組內(nèi)仲裁算法會(huì)是固定優(yōu)先級(jí)方法(S607)。例如,如果組中的每個(gè)總線主裝置的總線使用概率及其它因素幾乎是相同的,那么算法確定單元211指定組內(nèi)仲裁算法會(huì)是循環(huán)方法。特別地,在其中對(duì)于組中的每個(gè)總線主裝置可以以與圖9B和圖11B中的相同比率來(lái)執(zhí)行數(shù)據(jù)轉(zhuǎn)送并且總線主裝置101a的數(shù)據(jù)A1可以在T7或T3完成轉(zhuǎn)送的情況下,仲裁算法將被指定為循環(huán)方法。此外,如果組中的每個(gè)總線主裝置的總線使用概率及其它因素是不同的,那么算法確定單元211指定組間仲裁算法會(huì)是固定優(yōu)先級(jí)方法。更具體地是,如果需要優(yōu)先從總線主裝置101a轉(zhuǎn)送數(shù)據(jù),并且對(duì)于總線主裝置101a的數(shù)據(jù)A1的數(shù)據(jù)轉(zhuǎn)送如圖11B和12B所示需要在T3或T4以前完成,那么仲裁算法被確定為固定優(yōu)先級(jí)方法。
盡管在此例子中,在確定組間仲裁算法之后確定組內(nèi)仲裁算法,但確定次序并不限于上述次序。例如可以在確定組內(nèi)仲裁算法之后確定組間仲裁算法,或者可以同時(shí)確定組間仲裁算法和組內(nèi)仲裁算法。
如至此所描述的,在此實(shí)施例中,當(dāng)根據(jù)所要執(zhí)行的處理來(lái)切換仲裁算法時(shí),切換組間仲裁算法和組內(nèi)仲裁算法。這能夠?yàn)樘幚砟J竭x擇更適當(dāng)?shù)闹俨盟惴ā@缭谝粋€(gè)處理中,總線主裝置101a和102負(fù)荷重,而其它總線主裝置負(fù)荷輕。在這種處理中,組間仲裁算法被指定為固定優(yōu)先級(jí)方法以便向組1給出優(yōu)先權(quán)。在另一處理中,總線主裝置101a和102a負(fù)荷重,而其它總線主裝置要平等地處理。在這種處理中,組間仲裁算法被指定為固定優(yōu)先級(jí)方法,并且組內(nèi)仲裁算法被指定為循環(huán)方法。因此,此實(shí)施例與第一實(shí)施例相比較能夠更詳細(xì)地調(diào)整并且允許更高效的總線使用,據(jù)此比所述第一實(shí)施例更好地縮短了總線等待時(shí)間。
其它實(shí)施例在以上例子中,盡管依照所要執(zhí)行的處理來(lái)切換仲裁算法,然而可以根據(jù)所要執(zhí)行的處理來(lái)在一個(gè)仲裁算法內(nèi)切換用于選擇總線主裝置的次序。在固定優(yōu)先級(jí)方法中可以依照所要執(zhí)行的處理來(lái)改變每個(gè)總線主裝置或組的優(yōu)先級(jí)。例如具有最高概率來(lái)使用總線的總線主裝置可以被指定為具有最高優(yōu)先級(jí)。在這種情況下,用于表明仲裁算法是固定優(yōu)先級(jí)方法的信息以及用于表明總線主裝置和組的優(yōu)先級(jí)的信息被存儲(chǔ)到算法寄存器130。然后仲裁器120依照所述優(yōu)先級(jí)來(lái)仲裁總線。
此外,在循環(huán)方法中可以依照所要執(zhí)行的處理來(lái)改變每個(gè)總線主裝置或組的優(yōu)先級(jí)。例如對(duì)于具有相同概率來(lái)使用總線的總線主裝置或組,但是一個(gè)總線主裝置或一個(gè)組需要被首先處理,那么它可以被指定為第一選擇。在這種情況下,用于表明仲裁算法是循環(huán)方法的信息和用于表明選擇每個(gè)總線主裝置或組的次序的信息被存儲(chǔ)到算法寄存器130。然后仲裁器120依照該選擇次序來(lái)仲裁總線。
盡管在以上例子中,循環(huán)方法和固定優(yōu)先級(jí)方法被切換作為仲裁算法,然而也可以切換到其它算法。例如切換到隨機(jī)選擇總線主裝置的方法,或切換到按產(chǎn)生總線使用請(qǐng)求的次序來(lái)選擇總線主裝置的方法。
此外,在以上例子中,使用CPU來(lái)判定所要執(zhí)行的處理模式以便切換仲裁算法。然而用于表明適于處理的仲裁算法的數(shù)據(jù)可以被存儲(chǔ)到存儲(chǔ)器4,以便當(dāng)開(kāi)始所述處理時(shí),CPU不需要判定所述處理而只是引用所存儲(chǔ)的數(shù)據(jù)以便把所述數(shù)據(jù)直接存儲(chǔ)到算法寄存器。例如如果用戶按下蜂窩式電話上的撥號(hào)按鈕,那么從存儲(chǔ)器中讀取支持撥號(hào)操作的仲裁算法以便指定所述仲裁算法。
很明顯,本發(fā)明不局限于以上實(shí)施例,并且在不脫離本發(fā)明的范圍和精神的情況下可以進(jìn)行修改和改變。
權(quán)利要求
1.一種總線控制系統(tǒng),其包括共同連接到總線的多個(gè)總線主裝置;總線仲裁器,用于依照多個(gè)預(yù)定仲裁算法中的任何一個(gè)來(lái)在所述多個(gè)總線主裝置之間仲裁使用所述總線;和仲裁算法控制單元,用于切換所述多個(gè)仲裁算法。
2.如權(quán)利要求1所述的總線控制系統(tǒng),其中所述仲裁算法控制單元依照要由所述多個(gè)總線主裝置所執(zhí)行的處理來(lái)切換所述多個(gè)仲裁算法。
3.如權(quán)利要求1所述的總線控制系統(tǒng),其中所述仲裁算法控制單元在執(zhí)行所述多個(gè)總線主裝置的處理之前切換所述多個(gè)仲裁算法。
4.如權(quán)利要求1所述的總線控制系統(tǒng),其中所述仲裁算法控制單元把所述多個(gè)仲裁算法切換為包括循環(huán)方法或固定優(yōu)先級(jí)方法的算法。
5.如權(quán)利要求4所述的總線控制系統(tǒng),其中,所述仲裁算法控制單元對(duì)于所述多個(gè)總線主裝置幾乎均等地使用所述總線的處理,把所述多個(gè)仲裁算法切換為循環(huán)方法;并且所述仲裁算法控制單元對(duì)于所述多個(gè)總線主裝置不均等地使用所述總線的處理,把所述多個(gè)仲裁算法切換為固定優(yōu)先級(jí)方法。
6.如權(quán)利要求4所述的總線控制系統(tǒng),其中,所述仲裁算法控制單元對(duì)于所述多個(gè)總線主裝置各自幾乎以相等概率使用所述總線的處理,把所述多個(gè)仲裁算法切換為循環(huán)方法;并且所述仲裁算法控制單元對(duì)于所述多個(gè)總線主裝置各自以不同概率使用所述總線的處理,把所述多個(gè)仲裁算法切換為固定優(yōu)先級(jí)方法。
7.如權(quán)利要求1所述的總線控制系統(tǒng),其中所述仲裁器把所述多個(gè)總線主裝置分組為多個(gè)組;所述仲裁器依照組內(nèi)仲裁算法,即用于在所述多個(gè)組內(nèi)的多個(gè)總線主裝置之間仲裁的仲裁算法,以及依照組間仲裁算法,即用于在所述多個(gè)組之間仲裁的仲裁算法,來(lái)仲裁所述總線;并且所述仲裁算法控制單元切換所述組內(nèi)仲裁算法和組間仲裁算法。
8.如權(quán)利要求7所述的總線控制系統(tǒng),其中所述仲裁算法控制單元把所述組內(nèi)仲裁算法和組間仲裁算法切換為包括循環(huán)方法或固定優(yōu)先級(jí)方法的算法。
9.如權(quán)利要求8所述的總線控制系統(tǒng),其中,所述仲裁算法控制單元對(duì)于要由在組中包括的多個(gè)總線主裝置所執(zhí)行的處理均等地使用所述總線的過(guò)程,把組內(nèi)仲裁算法切換為循環(huán)方法;所述仲裁算法控制單元對(duì)于要由在組中包括的多個(gè)總線主裝置所執(zhí)行的處理不均等地使用所述總線的過(guò)程,把組內(nèi)仲裁算法切換為固定優(yōu)先級(jí)方法;所述仲裁算法控制單元對(duì)于要由在所述多個(gè)組中包括的多個(gè)總線主裝置所執(zhí)行的處理均等地使用所述總線的過(guò)程,把組間仲裁算法切換為循環(huán)方法;并且所述仲裁算法控制單元對(duì)于要由在所述多個(gè)組中包括的多個(gè)總線主裝置所執(zhí)行的處理不均等地使用所述總線的過(guò)程,把組間仲裁算法切換為固定優(yōu)先級(jí)方法。
10.如權(quán)利要求8所述的總線控制系統(tǒng),其中,所述仲裁算法控制單元對(duì)于要由在組中包括的多個(gè)總線主裝置所執(zhí)行的處理各自以幾乎相等的概率來(lái)使用所述總線的過(guò)程,把組內(nèi)仲裁算法切換為循環(huán)方法;所述仲裁算法控制單元對(duì)于要由在組中包括的多個(gè)總線主裝置所執(zhí)行的處理各自以不同的概率來(lái)使用所述總線的過(guò)程,把組內(nèi)仲裁算法切換為固定優(yōu)先級(jí)方法;所述仲裁算法控制單元對(duì)于要由在所述多個(gè)組中包括的多個(gè)總線主裝置所執(zhí)行的處理各自以幾乎相等的概率來(lái)使用所述總線的過(guò)程,把組間仲裁算法切換為循環(huán)方法;并且所述仲裁算法控制單元對(duì)于要由在所述多個(gè)組中包括的多個(gè)總線主裝置所執(zhí)行的處理各自以不同的概率來(lái)使用所述總線的過(guò)程,把組間仲裁算法切換為固定優(yōu)先級(jí)方法。
11.如權(quán)利要求1所述的總線控制系統(tǒng),還包括用于設(shè)置所述仲裁算法的算法寄存器,其中,所述仲裁算法控制單元把切換的所述仲裁算法設(shè)置到所述算法寄存器;并且所述總線仲裁器依照設(shè)置到算法寄存器的仲裁算法來(lái)在多個(gè)總線主裝置之間進(jìn)行仲裁。
12.如權(quán)利要求1所述的總線控制系統(tǒng),其中所述仲裁算法控制單元是所述多個(gè)總線主裝置之一。
13.一種總線控制系統(tǒng),其包括共同連接到總線的多個(gè)總線主裝置;總線仲裁器,用于依照預(yù)定仲裁算法來(lái)在所述多個(gè)總線主裝置之間仲裁使用所述總線,和仲裁算法控制單元,用于依照要由所述多個(gè)總線主裝置所執(zhí)行的處理來(lái)在所述仲裁算法中切換所述多個(gè)總線主裝置的優(yōu)先級(jí)或仲裁次序。
14.如權(quán)利要求13所述的總線控制系統(tǒng),其中所述仲裁算法控制單元在執(zhí)行要由所述多個(gè)總線主裝置執(zhí)行的處理之前切換所述優(yōu)先級(jí)或仲裁次序。
15.一種總線控制方法,用于在多個(gè)總線主裝置之間仲裁使用總線,該方法包括依照多個(gè)預(yù)定仲裁算法中的任何一個(gè)來(lái)在所述多個(gè)總線主裝置之間仲裁使用所述總線;以及切換所述多個(gè)仲裁算法。
16.如權(quán)利要求15所述的總線控制方法,其中依照要由所述多個(gè)總線主裝置執(zhí)行的處理來(lái)執(zhí)行切換所述多個(gè)仲裁算法。
17.如權(quán)利要求15所述的總線控制方法,其中在執(zhí)行所述多個(gè)總線主裝置的處理之前執(zhí)行切換所述仲裁算法。
18.如權(quán)利要求15所述的總線控制系統(tǒng),其中仲裁算法的切換將把所述多個(gè)仲裁算法切換為包括循環(huán)方法或固定優(yōu)先級(jí)方法的算法。
全文摘要
一種總線控制系統(tǒng),其包括共同連接到總線的多個(gè)總線主裝置,用于依照多個(gè)預(yù)定仲裁算法中的任何一個(gè)來(lái)在所述多個(gè)總線主裝置之間仲裁使用總線的總線仲裁器,和用于切換所述多個(gè)仲裁算法的仲裁算法控制單元。
文檔編號(hào)G06F13/362GK1896981SQ20061010638
公開(kāi)日2007年1月17日 申請(qǐng)日期2006年7月14日 優(yōu)先權(quán)日2005年7月15日
發(fā)明者風(fēng)間敦 申請(qǐng)人:恩益禧電子股份有限公司