專利名稱:仲裁方法和仲裁器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及仲裁方法和仲裁器。
背景技術(shù):
交叉連接矩陣(crossbar)是一種將輸入端口和輸出端口互聯(lián)的交換結(jié)構(gòu), 仲裁是將盡量多的輸入端口和輸出端口匹配,分為集中式仲裁和分布式仲裁 集中式仲裁有一個中央仲裁器,受理所有輸入端口向輸出端口的請求,按優(yōu) 先或公平原則發(fā)出授權(quán)信號。分布式仲裁不需要中央仲裁器,每個輸入端口 都有自己的仲裁號和仲裁器,通過分配優(yōu)先級仲裁號,獲得輸出端口的響應(yīng)。
波陣(Wave Front)仲裁器是一種集中式仲裁器,可以在一個時鐘周期內(nèi) 仲裁多個請求,獲得多個輸入端口向輸出端口請求間的最大匹配。在申請?zhí)?為200510034923.X的中國發(fā)明專利申請中可以找到有關(guān)波陣仲裁器的信息。
圖l是一個七個輸入端口和七個輸出端口構(gòu)成7x7波陣仲裁器的仲裁單元 陣列的結(jié)構(gòu)原理圖,圖中的仲裁單元陣列為格柵式和冗余式排列, 一個方框 表示一個仲裁單元,每個方框用(x, y)標識,稱之為仲裁單元(x, y), 其中,x表示輸入端口, y表示輸出端口,仲裁單元(x, y)對輸入端口x能否 向輸出端口y發(fā)送消息進行仲裁,例如,仲裁單元(6, 1)表示對輸入端口6 向輸出端口l發(fā)送消息的請求進行仲裁的仲裁單元。另外,為了便于說明,下 面都以請求(x, y)表示輸入端口x向輸出端口y發(fā)送消息的端口請求。
圖l中,虛線上的仲裁單元具有相同的優(yōu)先級,稱之為優(yōu)先級組,在任何 一個優(yōu)先級組上的仲裁單元的輸入端口和輸出端口都互不相同,可以同時被 選中而不會出現(xiàn)沖突。優(yōu)先級指針所指向的優(yōu)先級組為仲裁的最高優(yōu)先級組, 例如,圖l中的優(yōu)先級指針為PriorPtl,其指向的優(yōu)先級組wl具有最高的優(yōu)先級,當開始仲裁時,首先仲裁最高優(yōu)先級組wl,然后仲裁次一級優(yōu)先級組w2,以此類推,像波紋(wave) —樣向下一級優(yōu)先級組傳遞。為了達到公平性的要求,最高優(yōu)先級組也不是固定的,也要向波紋一樣傳遞,圖l中的優(yōu)先級指針為PriorPtl、最高優(yōu)先級組是wl,那么下次仲裁時,優(yōu)先級指針加l變?yōu)?br>
PriorPt2、最高優(yōu)先級組就變?yōu)閣2,......,當優(yōu)先級指針為PriorPt6、最高優(yōu)先
級組是w6時,下次仲裁的優(yōu)先級指針變?yōu)镻riorPtO、最高優(yōu)先級組就回到w0。這種將優(yōu)先級指針輪流指向優(yōu)先級組的方式通常稱為"順序輪轉(zhuǎn)方式"。
波陣仲裁的基本規(guī)則是在每一行、每一列有且僅有一個仲裁單元被選中,舉例來說,圖l中,如果仲裁單元(l, O)被選中,那么與仲裁單元(l, 0)同一行、同一列的其他仲裁單元(1, y)和仲裁單元(x, 0)都不能被選中;當波紋移動到優(yōu)先級組w2時,如果仲裁單元(l, O)和仲裁單元(O, l)都沒有被選中,那么仲裁單元(l, l)才可能被選中。 一個仲裁單元被選中還需要兩個條件, 一個是這個仲裁單元對應(yīng)的輸入端口有發(fā)消息的請求,另一個是這個仲裁單元對應(yīng)的輸出端口處于空閑狀態(tài)。當一個仲裁單元(x, y)被選中,仲裁器發(fā)出仲裁響應(yīng)給輸入端口x,輸入端口x在獲得仲裁響應(yīng)后向輸出端口y發(fā)送消息。
波陣仲裁器是根據(jù)相鄰單元之間的信息傳播來仲裁,這種結(jié)構(gòu)特性決定了只有當每個端口都被充分利用時,各個端口的公平性才能得以保證,公平性是指在一段足夠長的時間內(nèi),多個輸入端口能夠向同 一個輸出端口發(fā)送消息的次數(shù)幾乎相等,或者一個輸入端口能夠向多個輸出端口發(fā)送消息的次數(shù)幾乎相等。
然而,在端口沒有全部被配置的情況下,不公平性的問題就會變得明顯,舉例來說,參考圖l,在每個仲裁器的工作時鐘周期內(nèi),仲裁器對輸入端口的請求進行一次仲裁
(1)第一次仲裁,優(yōu)先級指針為PriorPtl,有請求(1,0)、請求(2, 0)、請求(3, 5)和請求(4, 2),仲裁后,請求(1, 0)、請求(3, 5)、請求(4、 2)獲得仲裁響應(yīng),輸入端口1向輸出端口0發(fā)送消息,輸入端口3向輸出端口5發(fā)送消息,輸入端口4向輸出端口2發(fā)送消息;請求(2, O)因請求(l,0)獲得仲裁響應(yīng)而不能獲得仲裁響應(yīng)。
(2) 第二次仲裁,優(yōu)先級指針變?yōu)镻riorPt2,有請求(2, 0)、請求(0,3)和請求(5, 0),仲裁后,請求(0, 3)獲得仲裁響應(yīng),輸入端口0向輸出端口 3發(fā)送消息;由于輸入端口 1向輸出端口 0發(fā)送消息的時間會比仲裁的工作時鐘周期長,請求(2, 0)、請求(5, 0)因輸出端口0處于忙狀態(tài)(接收輸入端口l發(fā)送的消息)而不能獲得仲裁響應(yīng)。
(3) 第三次仲裁,優(yōu)先級指針變?yōu)镻riorPt3,請求(2, 0)、請求(5, 0)仍因輸出端口 0處于忙狀態(tài)而不能獲得仲裁響應(yīng)。
(4) 第四次仲裁,優(yōu)先級指針變?yōu)镻riorPt4,輸入端口 l向輸出端口 0發(fā)送消息完成,仲裁后,請求(5, O)獲得仲裁響應(yīng),輸入端口5向輸出端口0發(fā)送消息;請求(2, 0)因請求(5, 0)獲得仲裁響應(yīng)而不能獲得仲裁響應(yīng)。
(5)當優(yōu)先級指針回到PriorPtl,輸入端口 5向輸出端口 0發(fā)送消息完成,又有請求(1, 0),仲裁后,請求(1, 0)獲得仲裁響應(yīng),請求(2, 0)仍然無法獲得仲裁響應(yīng)。
最嚴重的情況是,在很長的一段時間內(nèi),某些輸入端口的請求始終不能獲得仲裁響應(yīng),無法將消息發(fā)送到輸出端口,也就是通常所說的"饑餓"現(xiàn)象。例如上述實例中(1)至(5)的情況重復發(fā)生,輸入端口l、輸入端口5的請求會交替獲得輸出端口 0的響應(yīng),輸入端口 2向輸出端口 0的請求始終無法獲得仲裁響應(yīng),并且其他輸入端口向輸出端口 O的請求也無法獲得仲裁響應(yīng)。
發(fā)明內(nèi)容
9本發(fā)明提供一種仲裁方法和仲裁器,以解決波陣仲裁中存在的"饑餓" 問題,改善仲裁性能。
為解決上述問題,本發(fā)明提供一種仲裁方法,包括下述步驟根據(jù)年齡 超時的端口請求設(shè)置有效的端口請求;根據(jù)端口請求的年齡設(shè)置優(yōu)先級指針; 根據(jù)所述優(yōu)先級指針對有效的端口請求進行仲裁,所述端口請求的年齡是端 口請求等待仲裁響應(yīng)的時間,所述年齡超時是端口請求的年齡超過年齡閾值。
可選的,所述根據(jù)年齡超時的端口請求設(shè)置有效的端口請求包括下述步 驟對于有年齡超時的端口請求的輸入端口,僅將所述輸入端口的年齡超時 的端口請求設(shè)置為有效的端口請求;對于沒有年齡超時的端口請求的輸入端 口 ,將所述輸入端口的所有端口請求設(shè)置為有效的端口請求。
可選的,所述根據(jù)端口請求的年齡設(shè)置優(yōu)先級指針包括下述步驟將優(yōu) 先級指針指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組。
可選的,所述根據(jù)端口請求的年齡設(shè)置優(yōu)先級指針包括下述步驟 若最大年齡方式?jīng)]有超時,采用最大年齡方式,所述最大年齡方式是將優(yōu)先 級指針指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組;若最大 年齡方式超時,采用順序輪轉(zhuǎn)方式,所述順序輪轉(zhuǎn)方式是將優(yōu)先級指針輪流 指向各優(yōu)先級組,所述最大年齡方式超時是指釆用最大年齡方式的時間超過 了最大年齡方式閾值。
可選的,所述根據(jù)端口請求的年齡設(shè)置優(yōu)先級指針包括下述步驟若最 大年齡方式?jīng)]有超時或者順序輪轉(zhuǎn)方式超時,采用最大年齡方式,所述最大 年齡方式是將優(yōu)先級指針指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的 優(yōu)先級組;若最大年齡方式超時并且順序輪轉(zhuǎn)方式?jīng)]有超時,采用順序輪轉(zhuǎn) 方式設(shè)置仲裁的優(yōu)先級指針,所述順序輪轉(zhuǎn)方式是將優(yōu)先級指針輪流指向各 優(yōu)先級組,所述最大年齡方式超時是指采用最大年齡方式的時間超過了最大 年齡方式閾值,所述順序輪轉(zhuǎn)方式超時是指釆用順序輪轉(zhuǎn)方式的時間超過了
10順序輪轉(zhuǎn)方式閾值。
可選的,所述根據(jù)端口請求的年齡設(shè)置所述仲裁的優(yōu)先級指針包括下述
步驟根據(jù)預先設(shè)定的指針設(shè)置模式,設(shè)置仲裁的優(yōu)先級指針,所述指針設(shè) 置模式包括年齡設(shè)置模式、年齡輪轉(zhuǎn)設(shè)置模式和交替設(shè)置模式或者其中的兩 兩結(jié)合,其中,
所述年齡設(shè)置模式的設(shè)置優(yōu)先級指針包括將優(yōu)先級指針指向與年齡最 大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組;
所述年齡輪轉(zhuǎn)設(shè)置模式的設(shè)置優(yōu)先級指針包括若最大年齡方式?jīng)]有超 時,釆用最大年齡方式,若最大年齡方式超時,采用順序輪轉(zhuǎn)方式;
所述交替設(shè)置模式的設(shè)置優(yōu)先級指針包括若最大年齡方式?jīng)]有超時或 者順序輪轉(zhuǎn)方式超時,采用最大年齡方式,若最大年齡方式超時并且順序輪 轉(zhuǎn)方式?jīng)]有超時,采用順序輪轉(zhuǎn)方式。
可選的,所述端口請求的年齡從請求到達仲裁器的時間開始計算,或者 從請求提出的時間開始計算。
可選的,所述年齡最大的端口請求是按端口請求的年齡對有效的端口請 求進行排序而獲得。
對應(yīng)地,本發(fā)明還提供一種仲裁器,包括根據(jù)年齡超時的端口請求設(shè) 置有效的端口請求和根據(jù)端口請求的年齡設(shè)置優(yōu)先級指針的設(shè)置單元,所述 端口請求的年齡是端口請求等待仲裁響應(yīng)的時間,所述年齡超時是端口請求 的年齡超過年齡閾值;根據(jù)所述設(shè)置單元設(shè)置的優(yōu)先級指針對有效的端口請 求進行仲裁的仲裁單元陣列。
與現(xiàn)有技術(shù)相比,上述技術(shù)方案以年齡最大的端口請求設(shè)置仲裁的優(yōu)先 級指針,并且在端口有年齡超時的端口請求時,該端口中僅年齡超時的端口 請求可以參加仲裁,因此,可以增加等待仲裁響應(yīng)時間長的端口請求獲得仲 裁響應(yīng)的機會,提高仲裁的公平性。采用最大年齡方式設(shè)置優(yōu)先級指針,如果年齡最大的端口請求長時間未 獲得仲裁響應(yīng),而可能使其它端口請求不能獲得仲裁響應(yīng)的情況下,釆用順 序輪轉(zhuǎn)方式可以增加其它等待仲裁響應(yīng)時間較短但有迅速傳送條件的端口請 求獲得仲裁響應(yīng)的機會,這樣就提高了仲裁的公平性,改善了仲裁性能。
設(shè)置優(yōu)先級指針的方式交替采用最大年齡方式和順序輪轉(zhuǎn)方式,可以進 一步減少了 "饑餓,,現(xiàn)象出現(xiàn)的可能性,提高了仲裁的公平性,改善了仲裁 性能。
以設(shè)定指針設(shè)置模式的方式來選擇優(yōu)先級指針的設(shè)置方式,因此可以通 過靈活地應(yīng)用不同的優(yōu)先級指針的設(shè)置方式,有效地解決了波陣仲裁中存在 的"饑餓"問題,提高了仲裁的公平性,使仲裁性能達到最優(yōu)化。
圖1是一種波陣仲裁器的仲裁單元陣列的結(jié)構(gòu)原理圖; 圖2是本發(fā)明第一實施方式的仲裁方法的具體流程圖; 圖3是本發(fā)明第一實施方式的仲裁方法的實例示意圖; 圖4是本發(fā)明第一實施方式的仲裁器的結(jié)構(gòu)示意圖; 圖5是本發(fā)明第二實施方式的仲裁方法的具體流程圖; 圖6是本發(fā)明第二實施方式的仲裁方法的實例示意圖; 圖7是本發(fā)明第二實施方式的仲裁器的結(jié)構(gòu)示意圖; 圖8是本發(fā)明第三實施方式的仲裁方法的具體流程圖; 圖9是本發(fā)明第三實施方式的仲裁器的結(jié)構(gòu)示意圖; 圖IO是本發(fā)明第四實施方式的仲裁器的結(jié)構(gòu)示意圖。
具體實施例方式
本發(fā)明實施方式是以等待仲裁響應(yīng)時間最長(即年齡最大)的端口請求 設(shè)置仲裁的優(yōu)先級指針,并且端口中僅等待仲裁響應(yīng)時間長(即年齡超時)的端口請求可以參加仲裁,增加了等待仲裁響應(yīng)時間長的端口請求獲得仲裁 響應(yīng)的機會,以此解決波陣仲裁中存在的"饑餓"問題。
本發(fā)明實施方式的仲裁方法包括下述步驟根據(jù)年齡超時的端口請求設(shè) 置有效的端口請求;根據(jù)端口請求的年齡設(shè)置優(yōu)先級指針;根據(jù)所述設(shè)置的 優(yōu)先級指針對所述有效的端口請求進行仲裁。
本發(fā)明實施方式的仲裁器包括根據(jù)年齡超時的端口請求設(shè)置有效的端 口請求和根據(jù)端口請求的年齡設(shè)置優(yōu)先級指針的設(shè)置單元;根據(jù)所述設(shè)置單 元設(shè)置的優(yōu)先級指針對有效的端口請求進行仲裁的仲裁單元陣列。
所述端口請求的年齡是端口請求等待仲裁響應(yīng)的時間,所述年齡超時是 端口請求的年齡超過年齡閾值。
下面即結(jié)合附圖和實施例對本發(fā)明的實施方式做詳細的說明。 第一實施方式
本實施方式的仲裁方法包括根據(jù)年齡超時的端口請求設(shè)置有效的端口 請求;將優(yōu)先級指針指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先 級組;根據(jù)所述優(yōu)先級指針對有效的端口請求進行仲裁。
端口請求的年齡可以從請求到達仲裁器的時間開始計算,對應(yīng)地,年齡 最大的端口請求是最早到達仲裁器并且還未獲得仲裁響應(yīng)的端口請求。
端口請求的年齡也可以從請求提出的時間開始計算,輸入端口提出請求 時,在端口發(fā)送的消息中會包含請求發(fā)送消息的時間(即請求提出的時間), 對應(yīng)地,年齡最大的端口請求是最先提出請求并且還未獲得仲裁響應(yīng)的端口 請求。
所述年齡超時是指端口請求的年齡超過預設(shè)的年齡閾值。以端口請求的 年齡從請求到達仲裁器的時間開始計算為例,本實施方式中,在一個端口請 求到達仲裁器時,即開始對該端口請求進行計時,可以用一個年齡計數(shù)器對 仲裁器的工作時鐘進行計數(shù),當年齡計數(shù)器的計數(shù)值超過預設(shè)的年齡計數(shù)值
13(預設(shè)的年齡計數(shù)值等于預設(shè)的年齡閾值與仲裁器的工作時鐘周期的比值),
即為端口請求的年齡超時;當年齡計數(shù)器的計數(shù)值達到最大值時計數(shù)值保持 不變,直至對應(yīng)的端口請求獲得仲裁響應(yīng);當端口請求獲得仲裁響應(yīng)后,對 應(yīng)的年齡計數(shù)器清零??梢愿鶕?jù)實際需要改變年齡闊值,從而計算出預設(shè)的 年齡計數(shù)值,以確定有哪些端口請求是年齡超時的。
如果一個輸入端口向一個輸出端口的請求未獲得仲裁響應(yīng),該端口請求 繼續(xù)等待仲裁響應(yīng),而該輸入端口又可以繼續(xù)向另 一個輸出端口發(fā)出請求, 因此在仲裁時,每個輸入端口可能會對應(yīng)的有多個端口請求參加仲裁。例如, 請求(1, 0)為輸入端口 1向輸出端口 0發(fā)出的請求,若請求(1, 0)未獲 得仲裁響應(yīng),其繼續(xù)等待仲裁響應(yīng),輸入端口 l又向輸出端口 1發(fā)出請求, 則請求(1, 0)、請求(1, 1)都可能會參加仲裁。本實施方式所述的根據(jù)年 齡超時的端口請求設(shè)置有效的端口請求是根據(jù)是否有年齡超時的端口請求來 設(shè)置可以參加仲裁的端口請求如果一個輸入端口的多個端口請求中沒有年 齡超時的端口請求,那么該輸入端口的所有端口請求都為有效的端口請求, 可以參加仲裁;如果一個輸入端口的多個端口請求中有年齡超時的端口請求, 那么該輸入端口僅有年齡超時的端口請求為有效的端口請求,可以參加仲裁, 該輸入端口的其他端口請求(年齡沒有超時的端口請求)為無效的端口請求, 不可以參加仲裁。
本實施方式的仲裁方法的一個具體流程如圖2所示
步驟Sll,在每次仲裁開始前,判斷是否有年齡超時的端口請求若有年 齡超時的端口請求,則執(zhí)行步驟S12;若沒有年齡超時的端口請求,則執(zhí)行步 驟S13。本實施方式中是根據(jù)各端口請求對應(yīng)的年齡計數(shù)器的計數(shù)值是否超過 了預設(shè)的年齡計數(shù)值來判斷是否有年齡超時的端口請求,并確定有哪個或哪 些年齡超時的端口請求。
步驟S12,對于有年齡超時的端口請求的輸入端口,將該輸入端口的年齡超時的端口請求設(shè)置為有效的端口請求,將該輸入端口的年齡沒有超時的端
口請求設(shè)置為無效的端口請求;對于沒有年齡超時的端口請求的輸入端口 , 將該輸入端口的所有端口請求設(shè)置為有效的端口請求,接著執(zhí)行步驟S14。 步驟S13,將各端口的所有端口請求設(shè)置為有效的端口請求。 步驟S14,獲取年齡最大的端口請求??梢园炊丝谡埱蟮哪挲g對有效的端 口請求進行排序(從大到小或者從小到大),也可以按端口請求的年齡對所有 的端口請求進行排序,獲取的年齡最大的端口請求應(yīng)該是一樣的。
步驟S15,將優(yōu)先級指針指向與年齡最大的端口請求對應(yīng)的仲裁單元所在 的優(yōu)先級組。
步驟S16,從優(yōu)先級指針指向的優(yōu)先級組開始對有效的端口請求進行仲 裁。接著返回至步驟Sll。
上述流程也可以先執(zhí)行設(shè)置優(yōu)先級指針的步驟S14至S15,再l丸行設(shè)置有 效的端口請求的步驟Sll至S13。
另外,對于年齡一樣大的多個端口請求,可以按輸入端口的端口號,以 升序或降序?qū)Χ丝谡埱筮M行排序,例如,請求(1, 0)、請求(2, 0)的年齡 一樣大,請求(1, 0)的提出請求的端口為輸入端口 1,請求(2, 0)的提出 請求的端口為輸入端口2,如果按端口號升序進行排序,請求(l, O)排在請 求(2, 0)之前,即將請求(1, 0)的年齡視為比請求(2, 0)的年齡大。
下面結(jié)合圖l和圖3,以一個實例對本實施方式的仲裁方法進行說明。設(shè) 開始仲裁時,有請求(1, 0)、請求(2, 0)、請求(3, 5)、請求(4、 2), 下面的實例中 一個步驟表示一次仲裁。
(1-1)按請求到達仲裁器的時間,設(shè)對上述端口請求進行年齡排序(從 大到小)的結(jié)果為請求(l, 0)、請求(2, 0)、請求(3, 5)、請求(4, 2)。 請求(1, 0)的年齡最大,將優(yōu)先級指針指向?qū)?yīng)于請求(1, 0)的仲裁單 元(1, 0)所在的優(yōu)先級組wl,即優(yōu)先級指針設(shè)置為PriorPtl。對所有請求, 0)、請求(3, 5)、請求(4, 2)獲得仲裁響應(yīng),輸 入端口 1向輸出端口 O發(fā)送消息,輸入端口 3向輸出端口 5發(fā)送消息,輸入 端口 4向輸出端口 2發(fā)送消息。請求(2, 0)未獲得仲裁響應(yīng)。
(1-2)又有請求(0, 3)和請求(5, 0),設(shè)對端口請求進行年齡排序的 結(jié)果為請求(2, 0)、請求(5, 0)、請求(0, 3)。請求(2, 0)的年齡最 大,將優(yōu)先級指針指向?qū)?yīng)于請求(2, 0)的仲裁單元(2, 0)所在的優(yōu)先 級組w2,即優(yōu)先級指針設(shè)置為PriorPt2。對所有請求進行仲裁后,請求(O, 3)獲得仲裁響應(yīng),輸入端口 0向輸出端口 3發(fā)送消息。請求(2, 0)、請求 (5, 0)因輸出端口 O處于忙狀態(tài)而未獲得仲裁響應(yīng)。
(1-3 )又有請求(2,3),設(shè)對端口請求進行年齡排序的結(jié)果為請求(2,
0) 、請求(5, 0)、請求(2, 3)。請求(2, 0)的年齡最大,優(yōu)先級指針仍 為PriorPt2。對所有請求進行仲裁后,請求(2, 0)、請求(5, 0)仍因輸出 端口 0處于忙狀態(tài)而未獲得仲裁響應(yīng),請求(2, 3)因輸出端口 3處于忙狀 態(tài)而未獲得仲裁響應(yīng)。
(1-4)設(shè)又有請求(5, 1),并且此時請求(2, 0)的年齡超時,輸入端 口 1向輸出端口 0發(fā)送消息完成。輸入端口 2有年齡超時的端口請求,即請 求(2, 0),因此,請求(2, 3)為無效的端口請求,不能參加仲裁,對有效 的端口請求進行年齡排序的結(jié)果為請求(2, 0)、請求(5, 0)、請求(5,
1) ,優(yōu)先級指針仍為PriorPt2。對輸入端口 2的請求(2, 0)、輸入端口 5的 請求(5, 0)、請求(5, 1)進行仲裁后,請求(2, 0)、請求(5, 1)獲得 仲裁響應(yīng),請求(5, 0)因請求(2, 0)獲得仲裁響應(yīng)而未獲得仲裁響應(yīng)。
對應(yīng)地,本實施方式的仲裁器的基本結(jié)構(gòu)如圖4所示,包括設(shè)置單元10、 仲裁單元陣列l(wèi)l。所述設(shè)置單元10包括端口設(shè)置單元12、獲取單元13、指針 設(shè)置單元14。
16端口設(shè)置單元12,根據(jù)年齡超時的端口請求設(shè)置有效的端口請求。端口
設(shè)置單元12包括與各個端口請求對應(yīng)的年齡計數(shù)器,根據(jù)年齡計數(shù)器的計數(shù) 值判斷是否有年齡超時的端口請求若有年齡超時的端口請求,對于有年齡 超時的端口請求的輸入端口 ,將該輸入端口的年齡超時的端口請求設(shè)置為有 效的端口請求,將該輸入端口的年齡沒有超時的端口請求設(shè)置為無效的端口 請求;對于沒有年齡超時的端口請求的輸入端口,將該輸入端口的所有端口 請求設(shè)置為有效的端口請求;若沒有年齡超時的端口請求,則將各端口的所 有端口請求設(shè)置為有效的端口請求。
獲取單元13,獲取年齡最大的端口請求。可以按端口請求的年齡對端口 設(shè)置單元12設(shè)置的有效的端口請求進行排序,也可以按端口請求的年齡對所 有的端口請求進行排序,以獲取年齡最大的端口請求。
指針設(shè)置單元14,根據(jù)獲取單元13所獲取的年齡最大的端口請求,將優(yōu) 先級指針設(shè)置為指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級 組。
仲裁單元陣列l(wèi)l,根據(jù)指針設(shè)置單元14設(shè)置的優(yōu)先級指針對端口設(shè)置單 元12設(shè)置的有效的端口請求進行仲裁。仲裁后,仲裁單元陣列l(wèi)l向選中的仲 裁單元對應(yīng)的提出請求的端口發(fā)送仲裁響應(yīng)。本實施方式的仲裁單元陣列l(wèi)l 為如圖l所示的波陣仲裁單元陣列。
以年齡最大的端口請求設(shè)置仲裁的優(yōu)先級指針,并且在端口有年齡超時 的端口請求時,該端口僅有年齡超時的端口請求可以參加仲裁,可以增加等 待仲裁響應(yīng)時間長的端口請求獲得仲裁響應(yīng)的機會,減少"饑餓"現(xiàn)象出現(xiàn) 的可能性,提高仲裁的公平性。 第二實施方式
本實施方式的仲裁方法包括下述步驟
根據(jù)年齡超時的端口請求設(shè)置有效的端口請求;若最大年齡方式?jīng)]有超時,釆用最大年齡方式,所述最大年齡方式是將
優(yōu)先級指針指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組; 若最大年齡方式超時,采用順序輪轉(zhuǎn)方式,所述順序輪轉(zhuǎn)方式是將優(yōu)先
級指針輪流指向各優(yōu)先級組;
才艮據(jù)所述優(yōu)先級指針對有效的端口請求進行仲裁。
所述最大年齡方式超時是指采用最大年齡方式的時間超過了最大年齡方
式閾值。
所述根據(jù)年齡超時的端口請求設(shè)置有效的端口請求如第一實施方式所述。
所述端口請求的年齡從請求到達仲裁器的時間開始計算,或者從請求提 出的時間開始計算。所述年齡超時是指端口請求的年齡超過預設(shè)的年齡閾值。 本實施方式中可以使用與第一實施方式相同的年齡計數(shù)器來確定年齡超時的 端口i青求。
根據(jù)年齡最大的端口請求設(shè)置仲裁的優(yōu)先級指針(即將優(yōu)先級指針指向 與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組),如果年齡最大的端 口請求沒有獲得仲裁響應(yīng),優(yōu)先級指針會一直指向同一個優(yōu)先級組,這樣, 位于優(yōu)先級指針下方的輸入請求獲得仲裁響應(yīng)的機會就會明顯減少,因此, 相比于第一實施方式,本實施方式還設(shè)置了最大年齡方式閾值,在采用最大 年齡方式的時間超過了預設(shè)的最大年齡方式閾值后,采用順序輪轉(zhuǎn)方式,既 不再將優(yōu)先級指針一直指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu) 先級組,而是輪流指向各個優(yōu)先級組,即每次仲裁時先將優(yōu)先級指針指向下 一個優(yōu)先級組。例如,優(yōu)先級指針從優(yōu)先級組w0開始順序循環(huán),輪流指向
w0、 wl、 ....... w5、 w6、 wl、......;或者也可以不乂人優(yōu)先級組w0開始,而
是^Mv開始釆用順序輪轉(zhuǎn)方式時優(yōu)先級指針指向的優(yōu)先級組開始順序循環(huán)。
本實施方式的仲裁方法的一個具體流程如圖5所示
18步驟S21,在每次仲裁開始前,判斷是否有年齡超時的端口請求若有年 齡超時的端口請求,則執(zhí)行步驟S22;若沒有年齡超時的端口請求,則執(zhí)行步 驟S23。
步驟S22,對于有年齡超時的端口請求的輸入端口,將該輸入端口的年齡 超時的端口請求設(shè)置為有效的端口請求,將該輸入端口的年齡沒有超時的端 口請求設(shè)置為無效的端口請求;對于沒有年齡超時的端口請求的輸入端口, 將該輸入端口的所有端口請求設(shè)置為有效的端口請求,接著執(zhí)行步驟S24。 步驟S23,將各端口的所有端口請求設(shè)置為有效的端口請求。 步驟S24,按端口請求的年齡對有效的端口請求進行排序,以獲取年齡最 大的端口請求。
步驟S25,判斷最大年齡方式是否超時若最大年齡方式超時,則執(zhí)行步 驟S26;若最大年齡方式?jīng)]有超時,則執(zhí)行步驟S27。本實施方式中,當開始 采用最大年齡方式時,即開始對采用最大年齡方式的時間進行計時,可以用 一個最大年齡方式計數(shù)器對仲裁器的工作時鐘進行計數(shù),若最大年齡方式計 數(shù)器的計數(shù)值超過預設(shè)的最大年齡方式計數(shù)值(預設(shè)的最大年齡方式計數(shù)值 等于最大年齡方式閾值與仲裁器的工作時鐘周期的比值),即為最大年齡方式 超時,最大年齡方式計數(shù)器的計數(shù)值保持不變。
步驟S26,將優(yōu)先級指針指向下一個優(yōu)先級組,例如,當前的優(yōu)先級指針 指向優(yōu)先級組wl,則將優(yōu)先級指針指向優(yōu)先級組w2。接著執(zhí)行步驟S28。在 最大年齡方式超時后,將始終采用順序輪轉(zhuǎn)方式。
步驟S27,將優(yōu)先級指針指向與年齡最大的端口請求對應(yīng)的仲裁單元所在 的優(yōu)先級組。
步驟S28,從優(yōu)先級指針指向的優(yōu)先級組開始對有效的端口請求進行仲 裁。接著返回至步驟S21。
上述流程也可以先執(zhí)行設(shè)置優(yōu)先級指針的步驟S24至S27,再執(zhí)行設(shè)置有效的端口請求的步驟S21至S23。
下面結(jié)合圖1和圖6,以一個實例對本實施方式的仲裁方法的輪轉(zhuǎn)設(shè)置優(yōu) 先級指針進行說明,下面的實例中一個步驟表示一次仲裁。
(2-1)設(shè)有請求(1, 0)、請求(2, 0)和請求(3, 5),沒有年齡超時 的端口請求,所有的端口請求都為有效的端口請求,對所有的端口請求進行 年齡排序后為請求(1, 0)、請求(2, 0)、請求(3, 5)。此時最大年齡方 式?jīng)]有超時,釆用最大年齡方式,將優(yōu)先級指針設(shè)置為對應(yīng)年齡最大的請求
(1, 0)的PriorPtl,并且對所有請求進行仲裁。
(2-2 )設(shè)有請求(1, 0 )、請求(2, 0 )、請求(3, 5 )、請求(1, 3 )和 請求(2、 4),請求(1, 0)的年齡超時,因此輸入端口l的請求(1, 0)為 有效的請求、請求(1, 3)為無效的端口請求,輸入端口2的請求(2, 0)、 請求(2、 4)和輸入端口3的請求(3, 5)都為有效的請求,對有效的端口請 求包括進行年齡排序后為請求(1, 0)、請求(2, 0)、請求(3, 5)、請求
(2、 4)。此時最大年齡方式?jīng)]有超時,優(yōu)先級指針設(shè)置為對應(yīng)請求(1, 0) 的PriorPtl。對請求(1, 0)、請求(2, 0)、請求(3, 5)、請求(2、 4)進行 仲裁,請求(1, 3)因請求(1, 0)的年齡超時而不能參加仲裁。
(2-3)設(shè)請求(2, 0)的年齡超時,有請求(2, 0)、請求(3, 5)、請 求(1, 3)、請求(2、 4)和請求(3、 6)。請求(2、 4)為無效的端口請求, 其他請求都為有效的端口請求,對有效的端口請求進行年齡排序后為請求
(2, 0)、請求(3, 5)、請求(1, 3)、請求(3、 6)。此時最大年齡方式超 時,采用順序輪轉(zhuǎn)方式,優(yōu)先級指針設(shè)置為PriorPtO (或者也可以設(shè)置為 PriorPt2)。對請求(2, 0)、請求(3, 5)、請求(1, 3)、請求(3、 6)進行 仲裁,請求(2、 4)因請求(2, 0)的年齡超時而不能參加仲裁。
(2-4)(接(2-3))有請求(3, 5)、請求(l, 3)、請求(2、 4)、請求
(3、 6),沒有年齡超時的請求,進行年齡排序后的端口請求包括請求(3,
205)、請求(1, 3)、請求(2、 4)、請求(3、 6),最大年齡方式超時,采用順 序輪轉(zhuǎn)方式,優(yōu)先級指針設(shè)置為PriorPtl (如果(2-3)中的優(yōu)先級指針設(shè)置為 PriorPt2,則這里設(shè)置為PriorPt3 )。對所有請求進行仲裁。
對應(yīng)地,本實施方式的仲裁器的基本結(jié)構(gòu)如圖7所示,包括設(shè)置單元20、 仲裁單元陣列21。所述設(shè)置單元20包括端口設(shè)置單元22、獲取單元23、第一 指針設(shè)置單元24、第二指針設(shè)置單元25、選擇單元26。
端口設(shè)置單元22,根據(jù)年齡超時的端口請求設(shè)置有效的端口請求。與第 一實施方式的端口設(shè)置單元12相同。
獲取單元23,獲取年齡最大的端口請求。與第一實施方式的獲取單元13 相同。
第一指針設(shè)置單元24,根據(jù)獲取單元23獲取的年齡最大的端口請求,將 優(yōu)先級指針設(shè)置為指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級 組。
第二指針設(shè)置單元25,將優(yōu)先級指針設(shè)置為輪流指向各優(yōu)先級組。在每 次仲裁時,將優(yōu)先級指針指向下一個優(yōu)先級組。
選擇單元26,判斷最大年齡方式是否超時若最大年齡方式?jīng)]有超時, 選擇第一指針設(shè)置單元24設(shè)置的優(yōu)先級指針傳送給仲裁單元陣列21;若最大 年齡方式超時,選擇第二指針設(shè)置單元25設(shè)置的優(yōu)先級指針傳送給仲裁單元 陣列21。選擇單元26包括最大年齡方式計數(shù)器,根據(jù)最大年齡方式計數(shù)器的 計數(shù)值是否超過預設(shè)的最大年齡方式計數(shù)值來判斷最大年齡方式是否超時。
仲裁單元陣列21,根據(jù)選擇單元26選擇的優(yōu)先級指針對端口設(shè)置單元22 設(shè)置的有效的端口請求進行仲裁。
采用最大年齡方式,如果年齡最大的端口請求長時間未獲得仲裁響應(yīng), 而可能使其它端口請求不能獲得仲裁響應(yīng)的情況下,采用順序輪轉(zhuǎn)方式可以增加其它等待仲裁響應(yīng)時間較短但有迅速傳送條件的端口請求獲得仲裁響應(yīng)
的機會,這樣就提高了仲裁的公平性,改善了仲裁性能;并且在端口有年齡 超時的端口請求時,該端口僅有年齡超時的端口請求可以參加仲裁,這樣可 以增加該端口等待仲裁響應(yīng)時間較長的端口請求獲得仲裁響應(yīng)的機會,進一 步減少了 "幾餓"現(xiàn)象出現(xiàn)的可能性。 第三實施方式
本實施方式的仲裁方法包括下述步驟
根據(jù)年齡超時的端口請求設(shè)置有效的端口請求;
若最大年齡方式?jīng)]有超時或者順序輪轉(zhuǎn)方式超時,采用最大年齡方式, 所述最大年齡方式是將優(yōu)先級指針指向與年齡最大的端口請求對應(yīng)的仲裁單 元所在的優(yōu)先級組;
若最大年齡方式超時并且順序輪轉(zhuǎn)方式?jīng)]有超時,采用順序輪轉(zhuǎn)方式, 所述順序輪轉(zhuǎn)方式是將優(yōu)先級指針輪流指向各優(yōu)先級組;
根據(jù)所述優(yōu)先級指針對有效的端口請求進行仲裁。
所述最大年齡方式超時是指采用最大年齡方式的時間超過了最大年齡方 式閾值。
所述順序輪轉(zhuǎn)方式超時是指采用順序輪轉(zhuǎn)方式設(shè)置優(yōu)先級指針的時間超 過了順序輪轉(zhuǎn)方式閾值。
所述根據(jù)年齡超時的端口請求設(shè)置有效的端口請求如第一實施方式所述。
所述端口請求的年齡從請求到達仲裁器的時間開始計算,或者從請求提 出的時間開始計算。所述年齡超時是指端口請求的年齡超過預設(shè)的年齡閾值。 本實施方式中可以使用與第一實施方式相同的年齡計數(shù)器來確定年齡超時的 端口請求。
相比于第二實施方式,本實施方式除了設(shè)置最大年齡方式闊值,還設(shè)置
22了順序輪轉(zhuǎn)方式閾值。仲裁開始時,先釆用最大年齡方式,并開始計算采用
最大年齡方式的時間;在釆用最大年齡方式的時間超過了最大年齡方式閾值 后,則采用順序輪轉(zhuǎn)方式,并開始計算采用順序輪轉(zhuǎn)方式的時間;在采用順 序輪轉(zhuǎn)方式的時間超過了順序輪轉(zhuǎn)方式閾值后,再采用最大年齡方式,并重 新開始計算采用最大年齡方式的時間,......,如此循環(huán),即交替采用最大年
齡方式和順序輪轉(zhuǎn)方式。
本實施方式的仲裁方法的一個具體流程如圖8所示
步驟S31,在每次仲裁開始前,判斷是否有年齡超時的端口請求若有年 齡超時的端口請求,則執(zhí)行步驟S32;若沒有年齡超時的端口請求,則執(zhí)行步 驟S33。
步驟S32,對于有年齡超時的端口請求的輸入端口,將該輸入端口的年齡 超時的端口請求設(shè)置為有效的端口請求,將該輸入端口的年齡沒有超時的端 口請求設(shè)置為無效的端口請求;對于沒有年齡超時的端口請求的輸入端口 , 將該輸入端口的所有端口請求設(shè)置為有效的端口請求,接著執(zhí)行步驟S34。 步驟S33,將各端口的所有端口請求設(shè)置為有效的端口請求。 步驟S34,按端口請求的年齡對有效的端口請求進行排序,以獲取年齡最 大的端口請求。
步驟S35,判斷最大年齡方式是否超時若最大年齡方式超時,則執(zhí)行步 驟S36;若最大年齡方式?jīng)]有超時,則執(zhí)行步驟S38。本實施方式中,當開始 釆用最大年齡方式時,即開始對采用最大年齡方式的時間進行計時,可以用 一個最大年齡方式計數(shù)器對仲裁器的工作時鐘進行計數(shù),若最大年齡方式計 數(shù)器的計數(shù)值超過預設(shè)的最大年齡方式計數(shù)值(預設(shè)的最大年齡方式計數(shù)值 等于最大年齡方式閾值與仲裁器的工作時鐘周期的比值),即為最大年齡方式 超時。
步驟S36,判斷順序輪轉(zhuǎn)方式是否超時若順序輪轉(zhuǎn)方式超時,則執(zhí)行步驟S38;若順序輪轉(zhuǎn)方式?jīng)]有超時,則執(zhí)行步驟S37。本實施方式中,當開始采用順序輪轉(zhuǎn)方式時,即開始對釆用順序輪轉(zhuǎn)方式的時間進行計時,可以用一個順序輪轉(zhuǎn)方式計數(shù)器對仲裁器的工作時鐘進行計數(shù),若順序輪轉(zhuǎn)方式計數(shù)器的計數(shù)值超過預設(shè)的順序輪轉(zhuǎn)方式計數(shù)值(預設(shè)的順序輪轉(zhuǎn)方式計數(shù)值等于順序輪轉(zhuǎn)方式閾值與仲裁器的工作時鐘周期的比值),即為順序輪轉(zhuǎn)方式超時。
最大年齡方式計數(shù)器的計數(shù)值在采用順序輪轉(zhuǎn)方式時保持不變,在從順序輪轉(zhuǎn)方式轉(zhuǎn)為最大年齡方式時清零,以重新計算采用最大年齡方式的時間。順序輪轉(zhuǎn)方式計數(shù)器的計數(shù)值在采用最大年齡方式時保持不變,在從最大年齡方式轉(zhuǎn)為順序輪轉(zhuǎn)方式時清零,以重新計算采用順序輪轉(zhuǎn)方式的時間。步驟S37,將優(yōu)先級指針指向下一個優(yōu)先級組。接著執(zhí)行步驟S39。步驟S38,將優(yōu)先級指針指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組。
步驟S39,從優(yōu)先級指針指向的優(yōu)先級組開始對有效的端口請求進行仲裁。接著返回至步驟S31。
上述流程也可以先執(zhí)行設(shè)置優(yōu)先級指針的步驟S34至S38,再執(zhí)行設(shè)置有效的端口請求的步驟S31至S33。
對應(yīng)地,本實施方式的仲裁器的基本結(jié)構(gòu)如圖9所示,包括設(shè)置單元30、仲裁單元陣列31。所述設(shè)置單元30包括端口設(shè)置單元32、獲取單元33、第一指針設(shè)置單元34、第二指針設(shè)置單元35、選擇單元36。
端口設(shè)置單元32,根據(jù)年齡超時的端口請求設(shè)置有效的端口請求。與第一實施方式的端口設(shè)置單元12、第二實施方式的端口設(shè)置單元22相同。
獲取單元33,獲取年齡最大的端口請求。與第一實施方式的獲取單元13、第二實施方式的獲取單元23相同。
第一指針設(shè)置單元34,將優(yōu)先級指針設(shè)置為指向與年齡最大的端口請求
24對應(yīng)的仲裁單元所在的優(yōu)先級組。與第二實施方式的第一指針設(shè)置單元24相同。
第二指針設(shè)置單元35,將優(yōu)先級指針設(shè)置為輪流指向各優(yōu)先級組。與第二實施方式的第而指針設(shè)置單元25相同。
選擇單元36,判斷最大年齡方式是否超時若最大年齡方式?jīng)]有超時,選擇第 一指針設(shè)置單元34設(shè)置的優(yōu)先級指針傳送給仲裁單元陣列31;若最大年齡方式超時,則判斷順序輪轉(zhuǎn)方式是否超時,若順序輪轉(zhuǎn)方式?jīng)]有超時,則選擇第二指針設(shè)置單元35設(shè)置的優(yōu)先級指針傳送給仲裁單元陣列31,若順序輪轉(zhuǎn)方式超時,則選擇第一指針設(shè)置單元35設(shè)置的優(yōu)先級指針傳送給仲裁單元陣列31。
選擇單元36包括最大年齡方式計數(shù)器和順序輪轉(zhuǎn)方式計數(shù)器,根據(jù)最大年齡方式計數(shù)器的計數(shù)值是否超過預設(shè)的最大年齡方式計數(shù)值來判斷最大年齡方式是否超時,根據(jù)順序輪轉(zhuǎn)方式計數(shù)器的計數(shù)值是否超過預設(shè)的順序輪轉(zhuǎn)方式計數(shù)值來判斷順序輪轉(zhuǎn)方式是否超時。
仲裁單元陣列31,根據(jù)選擇單元36選擇的優(yōu)先級指針對端口設(shè)置單元32設(shè)置的有效的端口請求進行仲裁。
本實施方式設(shè)置優(yōu)先級指針的方式是交替采用最大年齡方式和順序輪轉(zhuǎn)方式,可以進一步減少了 "饑餓"現(xiàn)象出現(xiàn)的可能性,提高了仲裁的公平性,改善了仲裁性能。第四實施方式
本實施方式的仲裁方法包括下述步驟
根據(jù)年齡超時的端口請求設(shè)置有效的端口請求;
根據(jù)預先設(shè)定的指針設(shè)置模式,設(shè)置優(yōu)先級指針;才艮據(jù)設(shè)置的優(yōu)先級指針對有效的端口請求進行仲裁。所述指針設(shè)置模式包括最大年齡設(shè)置模式、年齡輪轉(zhuǎn)設(shè)置模式和交替
25設(shè)置模式。
所述最大年齡設(shè)置模式的設(shè)置優(yōu)先級指針包括將優(yōu)先級指針指向與年
齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組,請參考第一實施方式中
^j"應(yīng)的詳細"i兌明。
所述年齡輪轉(zhuǎn)設(shè)置模式的設(shè)置優(yōu)先級指針包括若最大年齡方式?jīng)]有超時,采用最大年齡方式;若最大年齡方式超時,采用順序輪轉(zhuǎn)方式,請參考第二實施方式中對應(yīng)的詳細說明。
所述交替設(shè)置模式的設(shè)置優(yōu)先級指針包括若最大年齡方式?jīng)]有超時或者順序輪轉(zhuǎn)方式超時,采用最大年齡方式;若最大年齡方式超時并且順序輪轉(zhuǎn)方式?jīng)]有超時,采用順序輪轉(zhuǎn)方式,請參考第三實施方式中對應(yīng)的詳細說明。
所述根據(jù)年齡超時的端口請求設(shè)置有效的端口請求如第一實施方式所述。
對應(yīng)地,本實施方式的仲裁器的一種基本結(jié)構(gòu)如圖10所示,包括模式寄存器47、設(shè)置單元40、仲裁單元陣列41。所述設(shè)置單元40包括端口設(shè)置單元42、獲取單元43、第一指針設(shè)置單元44、第二指針設(shè)置單元45、選擇單元46。
模式寄存器47,儲存預先設(shè)定的指針設(shè)置模式。所述指針設(shè)置模式包括'.最大年齡設(shè)置模式、年齡輪轉(zhuǎn)設(shè)置模式和交替設(shè)置模式。
端口設(shè)置單元42,根據(jù)年齡超時的端口請求設(shè)置有效的端口請求。與第一實施方式的端口設(shè)置單元12、第二實施方式的端口設(shè)置單元22、第三實施方式的端口設(shè)置單元32相同。
獲取單元43,獲取年齡最大的端口請求。與第一實施方式的獲取單元13、第二實施方式的獲取單元23、第三實施方式的獲取單元33相同。
第 一指針設(shè)置單元44,將優(yōu)先級指針設(shè)置為指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組。與第二實施方式的第一指針設(shè)置單元24、第三實施方式的第一指針設(shè)置單元34相同。
第二指針設(shè)置單元45,將優(yōu)先級指針設(shè)置為輪流指向各優(yōu)先級組。與第二實施方式的第二指針設(shè)置單元25、第三實施方式的第二指針設(shè)置單元35相同。
選擇單元46,根據(jù)模式寄存器47儲存的指針設(shè)置模式選擇第一指針設(shè)置單元44或第二指針設(shè)置單元45設(shè)置的優(yōu)先級指針傳送給仲裁單元陣列41:
在模式寄存器47儲存的指針設(shè)置模式為最大年齡設(shè)置模式時,選擇單元46選擇第一指針設(shè)置單元44設(shè)置的優(yōu)先級指針傳送給仲裁單元陣列41;
在模式寄存器47儲存的指針設(shè)置模式為年齡輪轉(zhuǎn)設(shè)置模式時,選擇單元46對應(yīng)地與第二實施方式的選擇單元26相同;
在模式寄存器47儲存的指針設(shè)置模式為交替設(shè)置模式時,選擇單元46對應(yīng)地與第三實施方式的選擇單元36相同。
仲裁單元陣列41,根據(jù)選擇單元46選擇的優(yōu)先級指針對端口設(shè)置單元42設(shè)置的有效的端口請求進行仲裁。
本實施方式是上述三種實施方式的結(jié)合,在其他實施方式中,也可以是上述三種實施方式的兩兩結(jié)合。以設(shè)定指針設(shè)置模式的方式來選擇仲裁的優(yōu)先級指針的設(shè)置方式,因此可以通過靈活地應(yīng)用不同的優(yōu)先級指針的設(shè)置方式,有效地解決了波陣仲裁中存在的"饑餓"問題,提高了仲裁的公平性,使仲裁性能達到最優(yōu)化。
本發(fā)明雖然以較佳實施例公開如上,但其并不是用來限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以做出可能的變動和修改,因此本發(fā)明的保護范圍應(yīng)當以本發(fā)明權(quán)利要求所界定的范圍為準。
權(quán)利要求
1. 一種仲裁方法,其特征在于,包括下述步驟根據(jù)年齡超時的端口請求設(shè)置有效的端口請求;根據(jù)端口請求的年齡設(shè)置優(yōu)先級指針;根據(jù)所述優(yōu)先級指針對有效的端口請求進行仲裁,所述端口請求的年齡是端口請求等待仲裁響應(yīng)的時間,所述年齡超時是端口請求的年齡超過年齡閾值。
2. 根據(jù)權(quán)利要求1所述的仲裁方法,其特征在于,所述根據(jù)年齡超時的端 口請求設(shè)置有效的端口請求包括下述步驟對于有年齡超時的端口請求的輸 入端口 ,僅將所述輸入端口的年齡超時的端口請求設(shè)置為有效的端口請求; 對于沒有年齡超時的端口請求的輸入端口 ,將所述輸入端口的所有端口請求 設(shè)置為有效的端口請求。
3. 根據(jù)權(quán)利要求1所述的仲裁方法,其特征在于,所述根據(jù)端口請求的年 齡設(shè)置優(yōu)先級指針包括下述步驟將優(yōu)先級指針指向與年齡最大的端口請求 對應(yīng)的仲裁單元所在的優(yōu)先級組。
4. 根據(jù)權(quán)利要求1所述的仲裁方法,其特征在于,所述根據(jù)端口請求的年 齡設(shè)置優(yōu)先級指針包括下述步驟若最大年齡方式?jīng)]有超時,采用最大年齡方式,所述最大年齡方式是將 優(yōu)先級指針指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組;若最大年齡方式超時,采用順序輪轉(zhuǎn)方式,所述順序輪轉(zhuǎn)方式是將優(yōu)先 級指針輪流指向各優(yōu)先級組,所述最大年齡方式超時是指采用最大年齡方式的時間超過了最大年齡方 式閾值。
5. 根據(jù)權(quán)利要求1所述的仲裁方法,其特征在于,所述根據(jù)端口請求的年 齡設(shè)置優(yōu)先級指針包括下述步驟若最大年齡方式?jīng)]有超時或者順序輪轉(zhuǎn)方式超時,釆用最大年齡方式,所述最大年齡方式是將優(yōu)先級指針指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組;若最大年齡方式超時并且順序輪轉(zhuǎn)方式?jīng)]有超時,采用順序輪轉(zhuǎn)方式, 所述順序輪轉(zhuǎn)方式是將優(yōu)先級指針輪流指向各優(yōu)先級組,所述最大年齡方式超時是指采用最大年齡方式的時間超過了最大年齡方 式閾值,所述順序輪轉(zhuǎn)方式超時是指采用順序輪轉(zhuǎn)方式的時間超過了順序輪轉(zhuǎn)方 式閾值。
6. 根據(jù)權(quán)利要求1所述的仲裁方法,其特征在于,所述根據(jù)端口請求的年 齡設(shè)置優(yōu)先級指針包括下述步驟根據(jù)指針設(shè)置模式設(shè)置優(yōu)先級指針,所述 指針設(shè)置模式包括年齡設(shè)置模式、年齡輪轉(zhuǎn)設(shè)置模式和交替設(shè)置模式或者其 中的兩兩結(jié)合,其中,所述年齡設(shè)置模式的設(shè)置優(yōu)先級指針包括將優(yōu)先級指針指向與年齡最 大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組;所述年齡輪轉(zhuǎn)設(shè)置模式的設(shè)置優(yōu)先級指針包括若最大年齡方式?jīng)]有超 時,采用最大年齡方式,若最大年齡方式超時,采用順序輪轉(zhuǎn)方式;所述交替設(shè)置模式的設(shè)置優(yōu)先級指針包括若最大年齡方式?jīng)]有超時或 者順序輪轉(zhuǎn)方式超時,采用最大年齡方式,若最大年齡方式超時并且順序輪 轉(zhuǎn)方式?jīng)]有超時,采用順序輪轉(zhuǎn)方式,其中,所述最大年齡方式是將優(yōu)先級指針指向與年齡最大的端口請求對 應(yīng)的仲裁單元所在的優(yōu)先級組,所述順序輪轉(zhuǎn)方式是將優(yōu)先級指針輪流指向 各優(yōu)先級組,所述最大年齡方式超時是指采用最大年齡方式的時間超過了最 大年齡方式閾值,所述順序輪轉(zhuǎn)方式超時是指采用順序輪轉(zhuǎn)方式的時間超過 了順序輪轉(zhuǎn)方式閾值。
7. 根據(jù)權(quán)利要求1至6中任意一項所述的仲裁方法,其特征在于,所述端口請求的年齡從請求到達仲裁器的時間開始計算,或者從請求提出的時間開 始計算。
8. 根據(jù)權(quán)利要求3至6中任意一項所述的仲裁方法,其特征在于,所述年 齡最大的端口請求是按端口請求的年齡對有效的端口請求進行排序而獲得。
9. 一種仲裁器,其特征在于,包括根據(jù)年齡超時的端口請求設(shè)置有效的端口請求和根據(jù)端口請求的年齡設(shè) 置優(yōu)先級指針的設(shè)置單元,所述端口請求的年齡是端口請求等待仲裁響應(yīng)的 時間,所述年齡超時是端口請求的年齡超過年齡閾值;根據(jù)所述設(shè)置單元設(shè)置的優(yōu)先級指針對有效的端口請求進行仲裁的仲裁 單元陣列。
10. 根據(jù)權(quán)利要求9所述的仲裁器,其特征在于,所述設(shè)置單元包括 端口設(shè)置單元,根據(jù)年齡超時的端口請求設(shè)置有效的端口請求; 獲取單元,獲取年齡最大的端口請求;指針設(shè)置單元,根據(jù)獲取單元獲取的年齡最大的端口請求,將優(yōu)先級指 針設(shè)置為指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組。
11. 根據(jù)權(quán)利要求9所述的仲裁器,其特征在于,所述設(shè)置單元包括 端口設(shè)置單元,根據(jù)年齡超時的端口請求設(shè)置有效的端口請求; 獲取單元,獲取年齡最大的端口請求;第一指針設(shè)置單元,根據(jù)所述獲取單元獲取的年齡最大的端口請求,將 優(yōu)先級指針設(shè)置為指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級 組;第二指針設(shè)置單元,將優(yōu)先級指針設(shè)置為輪流指向各優(yōu)先級組; 選擇單元,選擇第一指針設(shè)置單元或第二指針設(shè)置單元設(shè)置的優(yōu)先級指 針傳送給仲裁單元陣列。
12. 根據(jù)權(quán)利要求10或11所述的仲裁器,其特征在于,所述端口設(shè)置單元的根據(jù)年齡超時的端口請求設(shè)置有效的端口請求包括對于有年齡超時的端 口請求的輸入端口 ,僅將所述輸入端口的年齡超時的端口請求設(shè)置為有效的 端口請求;對于沒有年齡超時的端口請求的輸入端口,將所述輸入端口的所有端口請求_沒置為有效的端口請求。
13. 根據(jù)權(quán)利要求10或11所述的仲裁器,其特征在于,所述獲取單元獲取 的年齡最大的端口請求是按端口請求的年齡對有效的端口請求進行排序而獲 得的。
14. 根據(jù)權(quán)利要求11所述的仲裁器,其特征在于,所述選擇單元判斷最大年 齡方式是否超時若否則選擇所述第一指針設(shè)置單元設(shè)置的優(yōu)先級指針傳送 給所述仲裁單元陣列;若是則選擇所述第二指針設(shè)置單元設(shè)置的優(yōu)先級指針 傳送給所述仲裁單元陣列,所述最大年齡方式超時是指采用最大年齡方式的時間超過了最大年齡方 式閾值,所述最大年齡方式是將優(yōu)先級指針設(shè)置為指向與年齡最大的端口請 求對應(yīng)的仲裁單元所在的優(yōu)先級組。
15. 根據(jù)權(quán)利要求11所述的仲裁器,其特征在于,所述選擇單元判斷最大年 齡方式是否超時若否則選擇所述第一指針設(shè)置單元設(shè)置的優(yōu)先級指針傳送 給所述仲裁單元陣列;若是則判斷順序輪轉(zhuǎn)方式是否超時,若否則選擇所述 第二指針設(shè)置單元設(shè)置的優(yōu)先級指針傳送給所述仲裁單元陣列,若是則選擇所述第一指針設(shè)置單元設(shè)置的優(yōu)先級指針傳送給所述仲裁單元陣列,所述最大年齡方式超時是指釆用最大年齡方式設(shè)置的時間超過了最大年齡方式閾值,,所述最大年齡方式是將優(yōu)先級指針設(shè)置為指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組,所述順序輪轉(zhuǎn)方式超時是指采用順序輪轉(zhuǎn)方式設(shè)置優(yōu)先級指針的時間超過了順序輪轉(zhuǎn)方式閾值,所述順序輪轉(zhuǎn)方式是將優(yōu)先級指針設(shè)置為輪流指向各優(yōu)先級組。
16. 根據(jù)權(quán)利要求11所述的仲裁器,其特征在于,還包括用于儲存預先設(shè)定 的指針設(shè)置模式的模式寄存器,所述指針設(shè)置模式包括年齡設(shè)置模式、年齡 輪轉(zhuǎn)設(shè)置模式和交替設(shè)置模式或者其中的兩兩結(jié)合,其中,在所述模式寄存器儲存的指針設(shè)置模式為年齡設(shè)置模式時,所述選擇單 元選擇所述第 一指針設(shè)置單元設(shè)置的優(yōu)先級指針傳送給所述仲裁單元陣列;在所述模式寄存器儲存的指針設(shè)置模式為年齡輪轉(zhuǎn)設(shè)置模式時,所述選 擇單元判斷最大年齡方式是否超時若否選擇所述第一指針設(shè)置單元設(shè)置的 優(yōu)先級指針傳送給所述仲裁單元陣列;若是則選擇所述第二指針設(shè)置單元設(shè) 置的優(yōu)先級指針傳送給所述仲裁單元陣列;在所述模式寄存器儲存的指針設(shè)置模式為交替設(shè)置模式時,所述選擇單 元判斷最大年齡方式是否超時若否則選擇所述第一指針設(shè)置單元設(shè)置的優(yōu) 先級指針傳送給所述仲裁單元陣列;若是則判斷順序輪轉(zhuǎn)方式是否超時,若 否則選擇所述第二指針設(shè)置單元設(shè)置的優(yōu)先級指針傳送給所述仲裁單元陣 列,若是則選擇所述第一指針設(shè)置單元設(shè)置的優(yōu)先級指針傳送給所述仲裁單 元陣列,所述最大年齡方式超時是指采用最大年齡方式的時間超過了最大年齡方 式閾值,所述最大年齡方式是將優(yōu)先級指針設(shè)置為指向與年齡最大的端口請 求對應(yīng)的仲裁單元所在的優(yōu)先級組,所述順序輪轉(zhuǎn)方式超時是指采用順序輪轉(zhuǎn)方式的時間超過了順序輪轉(zhuǎn)方 式閾值,所述順序輪轉(zhuǎn)方式是將優(yōu)先級指針設(shè)置為輪流指向各優(yōu)先級組。
17. 根據(jù)權(quán)利要求9至16中任意一項所述的仲裁器,其特征在于,所述端口 請求的年齡從請求到達仲裁器的時間開始計算,或者從請求提出的時間開始 計算。
全文摘要
一種仲裁方法和仲裁器。所述仲裁方法包括對于有年齡超時的端口請求的輸入端口,僅將所述輸入端口的年齡超時的端口請求設(shè)置為有效的端口請求;對于沒有年齡超時的端口請求的輸入端口,將所述輸入端口的所有端口請求設(shè)置為有效的端口請求;若最大年齡方式?jīng)]有超時或者順序輪轉(zhuǎn)方式超時,將優(yōu)先級指針指向與年齡最大的端口請求對應(yīng)的仲裁單元所在的優(yōu)先級組;若最大年齡方式超時并且順序輪轉(zhuǎn)方式?jīng)]有超時,將優(yōu)先級指針輪流指向各優(yōu)先級組;根據(jù)所述優(yōu)先級指針對有效的端口請求進行仲裁。所述仲裁方法和仲裁器可以解決波陣仲裁中存在的“饑餓”問題,改善仲裁性能。
文檔編號H04L12/56GK101471856SQ20071016066
公開日2009年7月1日 申請日期2007年12月26日 優(yōu)先權(quán)日2007年12月26日
發(fā)明者姚玉良, 宋新亮, 張清波, 瑛 李, 牟華先, 韓文燕, 黃國華 申請人:無錫江南計算技術(shù)研究所