專利名稱:在多個(gè)請(qǐng)求信號(hào)之間進(jìn)行公平仲裁的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算和組網(wǎng)領(lǐng)域,并尤其涉及用來從多個(gè)請(qǐng)求信號(hào)中進(jìn)行選擇的仲裁方案。
背景技術(shù):
在電子、計(jì)算和組網(wǎng)技術(shù)中普遍存在從多個(gè)請(qǐng)求信號(hào)之中進(jìn)行選擇的問題,并且現(xiàn)有技術(shù)中有很多用來在這些信號(hào)之中進(jìn)行選擇的技術(shù)。使用仲裁器可以分配總線資源,訪問共享存儲(chǔ)器,組網(wǎng)連接,數(shù)據(jù)庫處理;這種仲裁器可以作為硬件電路、可編程邏輯器件、或運(yùn)行在通用CPU上的軟件來實(shí)現(xiàn)。
有許多方案被配置來在信號(hào)或資源之中進(jìn)行仲裁。在這些多種方案中,各種連接到所述仲裁器的請(qǐng)求具有定制的等級(jí),以便在請(qǐng)求之間產(chǎn)生沖突的情況下,具有最高優(yōu)先級(jí)的請(qǐng)求器能夠從所述仲裁器中得到優(yōu)選選擇。在一些方案中,所述請(qǐng)求器具有固定的、靜態(tài)的等級(jí)。在其他的方案中,等級(jí)隊(duì)列是可以動(dòng)態(tài)修改的;一些這種方案在每次請(qǐng)求之后都修改所述等級(jí)隊(duì)列。
動(dòng)態(tài)排隊(duì)方案實(shí)現(xiàn)起來常常是很麻煩的。例如,考慮由一組if-then-else語句控制一組請(qǐng)求器的優(yōu)先級(jí)的方案。例如,假設(shè)仲裁器是由下面用偽代碼表示的下述方案來定義的。
If Requester 0 then grant(Requester 0)Else if Requester 1 then grant(Requester 1)Else if Requester 2 then grant(Requester 2)Else if Requester 3 then grant(Requester 3)現(xiàn)在假設(shè)所述仲裁器是動(dòng)態(tài)的,即,請(qǐng)求器的優(yōu)選級(jí)是動(dòng)態(tài)改變的。上述的代碼不得不改變次序來適應(yīng)新的優(yōu)先級(jí)。如果所述仲裁器是由諸如FPGA的可編程硬件實(shí)現(xiàn)的,那么這將尤其會(huì)產(chǎn)生問題,即導(dǎo)致仲裁器實(shí)現(xiàn)起來既復(fù)雜又慢。
發(fā)明內(nèi)容
這里描述了一種仲裁器的可再編程體系結(jié)構(gòu)。所述仲裁器被設(shè)計(jì)來公平、快速、和簡(jiǎn)單地用電路來實(shí)現(xiàn),尤其是用可編程邏輯器件來實(shí)現(xiàn)。在本發(fā)明的一些實(shí)施例中,所述仲裁器可以用來在多個(gè)總線信號(hào)之間進(jìn)行仲裁,通過一個(gè)公平的方案來分配優(yōu)先級(jí)給各種總線信號(hào)。在此所描述的至少一些和其他的目的將通過本發(fā)明的實(shí)施例來實(shí)現(xiàn)。
在本發(fā)明的一些實(shí)施例中,所述仲裁器在許多請(qǐng)求器之中進(jìn)行仲裁,為了示范性的目的,所述請(qǐng)求器被標(biāo)注為Requester0,Requester1,…,Requestern-1。在一些這樣的實(shí)施例中,所述仲裁器可以通過復(fù)用n個(gè)連接器來實(shí)現(xiàn),所述連接器能夠動(dòng)態(tài)重新劃分所述請(qǐng)求的優(yōu)先級(jí)。這樣,標(biāo)記為Connector0到Connectorn-1的n個(gè)連接器被雙射映射地復(fù)用到n個(gè)請(qǐng)求器。然后,來自所述連接器的請(qǐng)求可以通過改變從所述連接器到所述請(qǐng)求器的雙射映射來重新劃分優(yōu)先級(jí)。
在一些這樣的實(shí)施例中,從連接器到請(qǐng)求器之間的映射可以被改變,以便所述請(qǐng)求器的優(yōu)先級(jí)在其被仲裁器控制授權(quán)之后將處于最低級(jí)別。在所述授權(quán)喪失之后,修改所述雙射映射,以便Connectory將映射到Requestern-1,并且為了保持它們相互之間優(yōu)先級(jí)的相對(duì)順序,剩余的連接器將被映射到Requester0-Requestern-2。
在非限定性的實(shí)施例中,所述仲裁器可以用來控制訪問聯(lián)網(wǎng)設(shè)備中的高速總線。例如,所述仲裁器可以通過POS線和DMA控制器來控制訪問高速總線。在一些這樣的實(shí)施例中,所述的高速總線可以采用低壓差分信號(hào)總線的形式,并以大約10Gbps,或更高速率的全雙工方式來工作。在此將進(jìn)一步具體描述這些和其他實(shí)施例。
圖1示出了依據(jù)本發(fā)明實(shí)施例的仲裁器的體系結(jié)構(gòu)。
圖2示出了依據(jù)本發(fā)明實(shí)施例的仲裁器的內(nèi)部操作。
圖3示出了依據(jù)本發(fā)明實(shí)施例的用來控制訪問高速總線的仲裁器的例子。
具體實(shí)施例方式
在此所描述的本發(fā)明的實(shí)施例僅僅作為例子的目的給出,并不是對(duì)本發(fā)明范圍的任何方式的限制。許多可選的和等同的實(shí)施例對(duì)于本領(lǐng)域熟練技術(shù)人員來說是顯而易見的。
仲裁器的描述如圖1所示,本發(fā)明的一些實(shí)施例包括一個(gè)具有公平加權(quán)(itr tat)方案的仲裁器。在一些實(shí)施例中,所述仲裁器100可以位于交換機(jī)108中,所述交換機(jī)連接多個(gè)連接器106到系統(tǒng)資源。作為說明,所述n個(gè)連接器可以被標(biāo)注為Connector0到Connectorn-1。作為非限制性的例子,所述交換機(jī)108可以被用來仲裁訪問在所述連接器106之間的系統(tǒng)總線。其它由所述交換機(jī)108和/或仲裁器100控制訪問的資源對(duì)本領(lǐng)域熟練的技術(shù)人員來說是顯而易見的。
圖2示出了仲裁器100的內(nèi)部操作-所述仲裁器100處理n個(gè)標(biāo)注為Requester0,Requester1,…,Requestern-1的請(qǐng)求器200,并分配優(yōu)先級(jí)到由連接器106使用仲裁器100和交換機(jī)108所訪問的資源。在一些實(shí)施例中,這些請(qǐng)求器200具有一個(gè)固定的優(yōu)先級(jí)。作為非限制性的例子,該固定優(yōu)先級(jí)可以是遞減的優(yōu)先級(jí)順序;這可以用如下的偽代碼來表示If Requester0then Grant(Requester0)Else if Requester1then Grant(Requester1)Else if Requestern-1then Grant(Requestern-1)Table 1在一些實(shí)施例中,所述仲裁器還包括一個(gè)復(fù)用器、或mux202,所述復(fù)用器能夠動(dòng)態(tài)重新劃分來自于所述連接器106請(qǐng)求的優(yōu)先級(jí)。在操作期間,mux202將標(biāo)注為Connector0到Connectorn-1的n個(gè)連接器106雙射映射到所述n個(gè)請(qǐng)求器200。這樣,來自于連接器106的請(qǐng)求被通過使用mux204來重新進(jìn)行優(yōu)先級(jí)的劃分,所述mux204重新映射在連接器106和請(qǐng)求器200之間的復(fù)用連接。
公平加權(quán)仲裁器的操作仲裁器100的操作作為例子來被示出。假設(shè)請(qǐng)求器200的相對(duì)優(yōu)先級(jí)被動(dòng)態(tài)地修改。作為非限制性的例子,假設(shè)優(yōu)先級(jí)在每次授權(quán)之后進(jìn)行修改,并且請(qǐng)求器的優(yōu)先級(jí)在其已經(jīng)被仲裁器100控制授權(quán)之后下降到最低級(jí)別。例如,假定Requesterx{(x#n),并且,不失一般性,x<>(n-1)}在當(dāng)前對(duì)接周期中獲得授權(quán),那么Requesterx被連接到Connectory。在所述授權(quán)喪失之后,在mux202中的雙射映射應(yīng)該被修改,以便Connectory能夠映射到Requestern-1,并且剩余的連接器106將被映射到Requester0-Requestern-2,以便保持它們相互之間的相對(duì)優(yōu)先級(jí)順序。通過使用在此所描述的仲裁器,可以實(shí)現(xiàn)連接器106的所有n!個(gè)可能優(yōu)先級(jí)。
在可編程硬件中公平加權(quán)仲裁器的使用圖3示出了在此所描述的仲裁器100的實(shí)例的例子。該圖包括交換機(jī)300;作為一個(gè)非限制性的例子,所述交換機(jī)可以被用在聯(lián)網(wǎng)設(shè)備中的高速底板中,正如在2000年10月3日申請(qǐng)的、發(fā)明人JunaidIslam,Homayoun Valizadeh,和Jeffery S.Payne的美國專利申請(qǐng)09/678,321和2001年7月30日申請(qǐng)的、發(fā)明人Junaid Islam,HomayounValizadeh,和Jeffery S.Payne的US09/918,363中所描述那樣,并因此而整體引用它們作為參考。在一些這樣的例子中,所述交換機(jī)300可以在現(xiàn)場(chǎng)可編程門陣列(FPGA)、其他可編程硬件、或ASIC上實(shí)現(xiàn)(在FPGA的例子中,所述交換機(jī)可以作為高級(jí)設(shè)計(jì)語言來實(shí)現(xiàn),例如,作為非限制性例子,Verilog或VHDL)。其他的例子對(duì)于本領(lǐng)域的熟練技術(shù)人員是顯而易見的。
在圖3所示出的例子中,所述交換機(jī)300控制訪問高速??偩€302。在本發(fā)明的實(shí)施例中,所述高速總線302包括兩個(gè)低壓差分信號(hào)(LVDS)總線304 306。在所示出的例子中,每個(gè)LVDS線304 306都有16個(gè)針,所述每個(gè)針都運(yùn)行在622MHz的速率上,從而對(duì)于每條線304 306來說,產(chǎn)生總帶寬為622MHz*(1bit,full-duplex/pin)*16pins=9.952Gbps,全雙工圖3也示出了四個(gè)附加的連接器線,包括連接交換機(jī)300到CPU控制器的CPU線308。作為非限制性的例子,所述控制器可以是32位的DMA控制器,例如由GallileoTMInc所生產(chǎn)的。在這樣一個(gè)例子中,每個(gè)針都可以運(yùn)行在133MHz的對(duì)接速率上。這樣所述CPU線308就具有帶寬133MHz*(1bit,full-duplex/pin)*32pins=4.256Gbps,全雙工連接到加法器300的附加連接器是一個(gè)反饋線310和兩個(gè)POS接口312 314。所述的四個(gè)請(qǐng)求器,即CPU線308、反饋線310、和兩個(gè)POS連接312 314,都通過交換機(jī)300訪問所述LVDS??偩€302。通過在交換機(jī)300中引入仲裁器316,從而實(shí)現(xiàn)了一個(gè)公平加權(quán)仲裁的方案。從內(nèi)部來講,仲裁器316包括四個(gè)請(qǐng)求器,Requester0,Requester1,Requester2,Requester3,其準(zhǔn)許訪問所述??偩€302。所述請(qǐng)求器被劃分優(yōu)先級(jí);作為非限定性的例子,它們可以被以遞減的順序來劃分優(yōu)先級(jí),可以用下面的偽代碼來表示If Requester1then Grant(Requester0)Else if Requester1then Grant(Requester1)Else if Requester2then Grant(Requester2)Else if Requester3then Grant(Requester3)Table 2交換機(jī)300包括一個(gè)內(nèi)部復(fù)用器,其在每次授權(quán)之后,重新映射所述四個(gè)連接器,即CPU控制器、POS接口和反饋線,到所述請(qǐng)求器,以便接收到授權(quán)的最后連接器被映射到Requester3,并且剩余的連接器被重新映射到Requester0,Requester1,和Requester2來保持它們之間相對(duì)優(yōu)先級(jí)的順序。
進(jìn)一步的可選特征可以包括在本發(fā)明中。根據(jù)本發(fā)明的目的和實(shí)踐可以預(yù)料到所期望的在結(jié)果上的變化或不同。因此,目的在于通過下面的權(quán)利要求書的范圍來限定本發(fā)明,并且這些權(quán)利要求應(yīng)該被以盡可能寬的合理范圍來解釋。
權(quán)利要求
1.一種用于在連接到其上的多個(gè)信號(hào)之間進(jìn)行仲裁并使用計(jì)算資源的交換機(jī),所述交換機(jī)包括至少一個(gè)控制訪問所述計(jì)算資源的請(qǐng)求線;連接所述至少一個(gè)請(qǐng)求線到所述多個(gè)信號(hào)中至少一個(gè)的復(fù)用器,以使所述復(fù)用器周期性地重新映射所述多個(gè)信號(hào)中的至少一個(gè)到有關(guān)訪問所述計(jì)算資源的所述至少一個(gè)請(qǐng)求線。
2.一種用于在連接到其上的多個(gè)信號(hào)之間進(jìn)行仲裁的交換機(jī),所述交換機(jī)包括連接到所述交換機(jī)的計(jì)算資源,以使所述交換機(jī)連接所述多個(gè)信號(hào);多個(gè)請(qǐng)求線,其中所述多個(gè)請(qǐng)求線控制訪問所述計(jì)算資源,以使所述多個(gè)請(qǐng)求線處于固定的優(yōu)先級(jí)順序;連接所述多個(gè)請(qǐng)求線到所述多個(gè)信號(hào)的復(fù)用器,以便所述復(fù)用器周期性地重新映射所述多個(gè)信號(hào)到所述多個(gè)請(qǐng)求線以重新劃分有關(guān)訪問所述計(jì)算資源的多個(gè)信號(hào)的優(yōu)先級(jí)。
3.如權(quán)利要求1所述的交換機(jī),其中信號(hào)的數(shù)量等于請(qǐng)求線的數(shù)量。
4.如權(quán)利要求1所述的交換機(jī),其中計(jì)算資源是硬件資源。
5.如權(quán)利要求1所述的交換機(jī),其中硬件資源是總線。
6.如權(quán)利要求1所述的交換機(jī),其中硬件資源是存儲(chǔ)器控制器。
7.如權(quán)利要求1所述的交換機(jī),其中所述交換機(jī)駐留在可編程硬件上。
8.如權(quán)利要求6所述的交換機(jī),其中所述的可編程硬件包括一個(gè)或多個(gè)FPGA。
9.如權(quán)利要求7所述的交換機(jī),其中所述交換機(jī)以VHDL在所述FPGA中編碼。
10.如權(quán)利要求7所述的交換機(jī),其中所述交換機(jī)以Verilog在所述FPGA中編碼。
11.如權(quán)利要求1所述的交換機(jī),其中所述交換機(jī)駐留在單片ASIC上。
12.如權(quán)利要求1所述的交換機(jī),其中所述復(fù)用器重新映射所述多個(gè)信號(hào)到所述的多個(gè)請(qǐng)求線來保證所述多個(gè)信號(hào)公平加權(quán)訪問所述計(jì)算資源。
13.如權(quán)利要求1所述的交換機(jī),其中所述計(jì)算資源是低壓差分信號(hào)總線。
14.如權(quán)利要求12所述的交換機(jī),其中所述多個(gè)信號(hào)包括一個(gè)或多個(gè)POS接口。
15.如權(quán)利要求13所述的交換機(jī),其中所述多個(gè)信號(hào)包括CPU控制器。
16.如權(quán)利要求14所述的交換機(jī),其中所述多個(gè)信號(hào)包括反饋信號(hào)。
17.一種在用于訪問計(jì)算資源的多個(gè)信號(hào)之間仲裁請(qǐng)求的方法,其中所述計(jì)算資源被連接到多個(gè)請(qǐng)求線上,以便所述多個(gè)請(qǐng)求線能夠以遞減的優(yōu)先級(jí)順序來訪問所述計(jì)算資源,所述方法包括映射所述多個(gè)信號(hào)到所述多個(gè)請(qǐng)求線;在映射所述多個(gè)信號(hào)之后,授權(quán)在所述多個(gè)信號(hào)中的第一信號(hào)訪問所述計(jì)算資源,以便所述第一信號(hào)被連接到在所述多個(gè)請(qǐng)求線中的第一請(qǐng)求線;響應(yīng)于授權(quán)訪問,重新映射所述多個(gè)信號(hào)到所述多個(gè)請(qǐng)求線,以便所述第一信號(hào)被映射到在所述多個(gè)請(qǐng)求線中的最低優(yōu)先級(jí)請(qǐng)求線上。
18.如權(quán)利要求16所述的方法,其中所述第一請(qǐng)求線不同于所述最低優(yōu)先級(jí)的請(qǐng)求線。
19.如權(quán)利要求16所述的方法,其中所述計(jì)算資源是高速總線。
20.如權(quán)利要求16所述的方法,其中信號(hào)的數(shù)量等于請(qǐng)求線的數(shù)量。
21.如權(quán)利要求19所述的方法,其中所述信號(hào)的數(shù)量等于四個(gè)信號(hào)。
22.如權(quán)利要求20所述的方法,其中所述四個(gè)信號(hào)包括CPU訪問線。
23.如權(quán)利要求21所述的方法,其中所述四個(gè)信號(hào)線包括兩個(gè)POS線。
24.如權(quán)利要求22所述的方法,其中所述四個(gè)信號(hào)線包括反饋線。
25.如權(quán)利要求23所述的方法,其中所述的計(jì)算資源是低壓差分信號(hào)總線。
26.如權(quán)利要求24所述的方法,其中所述的重新映射步驟是在復(fù)用器中執(zhí)行的。
全文摘要
本發(fā)明涉及一種仲裁器(100)的可重新編程的體系結(jié)構(gòu)。所述仲裁器(100)被設(shè)計(jì)成能夠公平、快速和簡(jiǎn)單地在電路中實(shí)現(xiàn),尤其是用可編程邏輯器件來實(shí)現(xiàn)。在實(shí)施例中,所述仲裁器(100)在標(biāo)注為Requester
文檔編號(hào)G06F3/00GK1643482SQ03806047
公開日2005年7月20日 申請(qǐng)日期2003年2月13日 優(yōu)先權(quán)日2002年2月15日
發(fā)明者愛德華·弗萊德 申請(qǐng)人:比維奧網(wǎng)絡(luò)公司