專利名稱:分布式仲裁器的制作方法
技術領域:
本發明涉及一種在公用資源與多個處理機之間進行仲裁的方法和設備,并更具體地涉及一種采用分布式仲裁型的總線仲裁方法和一種應用該方法的設備。
在多處理系統中,利用兩種通用方法中的一種與公共資源相連的多個處理機同時執行多個操作,這兩種通用方法即使用公共總線或通信鏈路。這樣,當兩個或更多的處理機同時需要使用公共資源時,需要有一種仲裁方法來分配使用資源的權利。仲裁方法可分為集中式仲裁和分布式仲裁。集中式仲裁方法利用單個仲裁器批處理資源以分配多個處理機的請求。另一方面,在分布式仲裁方法中,各處理機各具有一個指定的仲裁器。
在分布式仲裁中,某一給定的請求資源分配的處理機首先檢驗資源使用的當前狀態。然后,根據預定的算法進行資源使用仲裁。分配公用資源的權利是由仲裁中所使用的算法決定的。分配公用資源的權利劃分成“公平”和“優先”兩種分配方法。公平是向所有的處理機平等地提供使用公用資源的權利,即一種循環技術,而優先是根據各處理機的優先級向處理機提供使用公用資源的權利。
參照
圖1,下面將描述采用集中式仲裁法的常規仲裁器。
圖1是一個方塊圖,說明提供公平(仲裁)的常規仲裁器(見美國專利5,280,591號)。
提供公平的常規仲裁器由第一仲裁器10和第二仲裁器20構成。這里,第一仲裁器10包括多個仲裁器,例如,利用循環調度法通過接收來自各處理機的處理機請求信號仲裁總線的仲裁器10A,以及利用循環調度法通過接收來自各存儲器的存儲器請求信號仲裁總線的仲裁器10B。第二仲裁器20選擇多個利用循環調度法的第一仲裁器10中的一個。
至于該仲裁器的運行,第一仲裁器10和第二仲裁器20根據循環調度保證公平對待各處理機。循環調度平等地向所有的處理機分配使用公用資源的權利并且輪流對所有的處理機授權使用總線。但是,因為總線是根據集中式仲裁法由一個仲裁器仲裁的,總線請求信號傳輸、請求信號識別、仲裁、授權信號傳輸、授權信號接收、請求信號斷開、總線驅動器延遲時間等等類似的事情造成速度的降低。而且,如果仲裁器發生故障,整個系統停止。在根據循環調度提供公平的情況下,因為一個已經使用總線的處理機要在其它處理機使用公用資源之后才能具有使用公用資源的權利,增大等待時間。此外,如果為了解決上述問題,在檢驗當前處理機的請求信號的地方增加優先法或其它處理方法和類似的方法,則將會增加硬件的復雜性和降低處理速度。
接著,參照圖2描述采用分布式仲裁法的常規仲裁器。
圖2是一個方塊圖,說明保證優先(仲裁)的常規技術(見美國專利5,307,466號)。
保證優先的常規仲裁器采用分布式仲裁方法,通過比較由總線請求信號提供的總線請求處理機的優先級,各仲裁器40A、40B和40C確定優先級,而且優先級可根據程序改變。仲裁器40A、40B和40C對經總線50輸入的總線請求信號和處理機60A、60B和60C的優先號進行“異”操作,從而確定總線使用優先級并且生成一個指示總線使用的信號(忙信號),通過該信號具有使用總線優先級的相應處理機可以使用總線。由于在進行這種“異”操作時使用一個系統總線時鐘,系統速度因仲裁而降低。而且,由于不保證公平,當同時產生多個總線請求信號時,低優先級的處理機總是要等待機會。此外,需要編制優先級的資源及需要進行編制優先級的工作。
本發明的一個目的是提供一種總線仲裁方法,在這種總線仲裁方法里在保證優先級之前提供一種公平,從而減少較低優先級處理機的總線使用等待并改進仲裁速度。
本發明的另一個目的是提供一種總線仲裁器,在這種總線仲裁器里在保證優先級之前提供一種公平,從而減少較低優先級處理機的總線使用等待并改進仲裁速度。
為了達到本發明的第一個目的,提供了一種包含下述步驟的總線仲裁方法(a)檢測一個總線請求處理機所生成的系統總線請求信號;(b)檢驗別的請求系統總線的處理機的號;(c)當步驟(b)中請求系統總線的處理機的號低于一預定號時,比較該總線請求處理機和別的總線請求處理機之間的優先級;以及(d)允許在步驟(c)的優先級比較中獲勝的該總線請求處理機使用系統總線。
此外,提供了另一種包含下述步驟的總線仲裁方法(a)檢測一個總線請求處理機所生成的系統總線請求信號;(b)檢驗別的請求系統總線的處理機的號;(c)當步驟(b)中請求系統總線的處理機的號低于一預定號時,確定是否產生一個等待信號;(d)當不產生等待信號時比較該總線請求處理機和別的總線請求處理機之間的優先級;以及(e)允許在步驟(d)的優先級比較中獲勝的總線請求處理機使用系統總線。
為了達到本發明的第二個目的,提供一種總線仲裁器,其包括請求信號處理裝置和優先級比較裝置,請求信號處理裝置用于響應總線請求處理機生成的系統總線請求信號從檢驗系統總線狀態信號并且用于當請求系統總線的處理機的號低于預定號時輸出一個控制信號;優先級比較裝置用于響應控制信號來檢驗請求成為系統總線的首位處理機的別的總線請求處理機是否產生一個等待信號,用于當未產生等待信號時將對應于總線請求處理機的用于確定優先級的信號和系統總線狀態信號加以比較,以及用于當總線請求處理機在優先級比較中獲勝時輸出系統總線使用信號。
通過參照附圖詳細描述最佳實施方案將會更清楚本發明的上述目的和優點。附圖是圖1是一個方塊圖,說明提供公平的常規仲裁器;圖2是一個方塊圖,說明保證優選的常規仲裁器;圖3是一個流程圖,說明根據本發明的總線仲裁法;圖4是一個示意圖,說明根據本發明的總線仲裁器的配置,該仲裁器采用圖3中的總線仲裁法;圖5是一個方塊圖,說明根據本發明的總線仲裁器的結構;圖6是一個流程圖,詳細說明根據本發明的圖5總線仲裁器的操作;圖7A-7J為操作波形,說明根據本發明圖5總線仲裁器的操作;
圖8A-8H為操作波形,說明檢驗系統總線狀態的操作,該操作由圖5中的請求信號發生器124執行;以及圖9A-9K為操作波形,說明比較優先級的操作,該操作由圖5中的優先級比較器130執行。
根據本發明的一種總線仲裁法利用在公用資源和多個處理機之間進行仲裁的分布式仲裁法,該總線仲裁法為在多個處理機的各內部總線和系統總線之間進行仲裁而使用與公用資源相連的系統總線,該方法保證同時公平地及優先地使用系統總線。
根據本發明的總線仲裁法將參照圖3詳細地說明。
首先,當請求系統總線的總線請求處理機輸出一個系統總線請求信號時,該系統總線請求信號被檢測(步驟100)。當檢測出系統總線請求信號時,檢驗系統總線狀態以確定別的請求當前系統總線的處理機的號是否為一個預定號(N)(步驟200)。當在步驟200別的請求當前系統總線的處理機的號為一預定號時(特別當其它請求當前系統總線的處理機號為零或1時),比較該總線請求處理機和其它請求系統總線處理機之間的優先級以確定該總線請求處理機的優先級是否為最高(步驟300)。當在步驟300中該總線請求處理機的優先級為最高時,提供使用總線的權利(步驟400)。這樣,當許多處理機請求當前系統總線時,即使一個處理機具有較高的優先級,這個處理機也不能參與優先級比較步驟。也就是說,首先對所有的處理機保證了公平,同時其次,在優先級比較步驟中比較各處理機之間的優先級從而把使用總線的權利提供給參加優先級比較的處理機中的首位處理機。這樣,根據本發明的總線仲裁法同時保證總線使用的公平和優先。
圖4是一個示意圖,說明根據本發明的總線仲裁器的配置。在多個處理機70的內部總線和系統總線90之間分別配置總線仲裁器80。
圖5是圖4中一個仲裁器80的方塊圖。根據本發明的總線仲裁器包括和圖4多個處理機70中的一個處理機的一條內部總線相連的內部總線接口部分110,請求信號處理部分120,優先級比較部分130和信號發送部分140。這里,請求信號處理部分120由請求信號檢測器122,請求信號發生器124和請求信號生成控制器126組成。
內部總線接口部分110同步于對應的內部時鐘信號(LCLK)接收來自內部總線95的NRQ、BRQ、RD和WR信號及來自系統總線的SLOT#信號,把所接收的信號轉換成請求處理機號信號(PROC#)、系統地址信號(ADR#)、系統傳輸類型信號(TYPE#)和數據量信號(DSIZE#),并且把轉換后的信號分別輸出到對應的部件上。這里,NRQ為基本單元數據傳輸請求信號,BRQ為是數據基本單元的整數倍的數據傳輸請求信號,RD為一個總線請求處理機的讀信號以從系統存儲器上讀數據,WR是一個總線請求處理機的寫信號以對系統存儲器寫數據,及SLOT#是優先級確定信號,它是從系統總線上輸入的并根據處理機的安裝位置所決定。這樣,優先級可以根據改變處理機的安裝位置來改變。當從內部總線接口部分檢測出NRQ和BRQ信號時,和對應處理機的內部時鐘信號(LCLK)同步,請求信號檢測器122產生req信號并把req信號輸出到請求信號生成控制器126和請求信號發生器124。當生成req信號時請求信號生成控制器126生成JOBSTA RT信號以通知請求信號的生成,當處理機的請求被完成從而NRQ和BRQ信號斷開時請求信號生成控制器126生成JOBEND信號以準備后面的操作。當生成req信號和JOBSTART信號時,請求信號發生器124生成它自己的系統響應信號(SYSREQ#)并從系統總線150上接收系統響應信號(SYSREQ#)以檢驗系統總線150的狀態。這樣,當請求當前系統總線150的處理機的號是1或更小時,請求信號發生器124和系統總線仲裁同步信號(ARBCLK)同步,產生一個REQ信號,并把REQ信號和系統響應信號(SYSREQ#)一起輸出到優先級比較部分130,而當從優先級比較部分130輸入一個WIN信號時斷開它自己的SYSREQ#信號。這里,系統響應信號(SYSREQ#)代表各對應處理機的系統總線的狀態,因此各處理機該信號的值是不同的。接著,當輸入REQ信號時優先級比較部分130檢驗從請求信號發生器124輸入的系統響應信號(SYSREQ#),以檢驗是否生成等待信號。如果一個具有首先要傳輸的數據的處理機登記在等待信號生成寄存器里,以作為使用系統總線150的首位處理機時,則在系統總線150里生成等待信號,而除首位處理機之外的其它處理機即使優先級高也不能使用系統總線150。這時,在優先級比較期間產生等待信號的處理機把首位處理機位存儲到它自己的寄存器里并使用系統總線150。當不產生等待信號時,和系統總線仲裁同步信號(ARB-CLK)同步,優先級比較部分130比較系統總線150上的SLOT#信號和其它處理機的系統響應信號(SYSREQ#),并且當對應的處理機在優先級比較中獲勝時生成WIN信號。這時,因為WIN為使用系統總線的信號,當產生WIN信號時該對應的請求使用系統總線的處理機可以使用系統總線150。當獲得使用系統總線150權利的處理機發送數據時,該數據可能和獲得使用系統總線150權利的前一個處理機所發送的數據相重疊(沖突)。為了防止這種沖突,獲得使用系統總線150權利的前一個處理機利用幾個系統總線仲裁時鐘信號(ARBCLK)的時鐘脈沖暫時停止后面的總線仲裁,從而正常地發送它的數據。信號發送部分140由請求處理機號發送器142、系統地址發送器144、系統數據傳輸類型發送器和數據量發送器147組成。信號發送部分140與內部總線同步信號(LCLK)同步從內部總線接口部分110接收使用系統總線150的信號PROC#、ADR#、TYRE#和DSIZE#,并且同步于系統總線仲裁時鐘信號(ARB-CLK)信號把所接收的這些信號輸出到系統總線以使對應的總線請求處理機能夠使用系統總線150。這里,對應的請求處理機號信號(PROC#)在內部總線接口部分110里通過接收SLOT#信號加以確定,而ADR#是存儲器地址信號,獲得系統總線的對應處理機按這個存儲器地址讀或寫數據。數據傳輸類型信號(TYPE#)確定經系統總線150發送的數據的傳輸類型,而數據量信號(DSIZE#)確定發送到系統總線150上的數據的長度(位數)。這里,在信號發送部分140里,通過增加或改變一個組合電路或者一個時序電路,可以在接收經內部總線95從對應的處理機輸入的NRQ、BRQ、RD和WR信號和接收從系統總線150輸入的SLOT#信號之后直接生成信號PROC#、ADR#、TYPE#和DSIZE#。
圖6是一個流程圖,其詳細說明根據本發明的圖5總線仲裁器的操作。
當內部總線接口電路110接收NRQ信號或BRQ信號時(步驟710),請求信號檢測器112生成req信號(步驟715)。然后,請求信號生成控制器126響應req信號生成JOBSTART信號并且當req信號斷開時生成JOBEND信號(步驟720)。順序地,請求信號發生器125檢驗是否產生JOBSTART信號或JOBEND信號(步驟725)并且當產生JOBSTART信號時生成REQ信號(步驟730)。請求信號生成器125本身還在系統總線上生成對應處理機的系統響應信號(SYSREQ#)。接著,優先級比較部分130通過從系統總線150上接收其它處理機的系統響應信號(SYSREQ#)檢驗總線的狀態(步驟740)。當請求當前系統總線150的處理機的號為1或更小時,優先級比較部分130確定是否產生等待信號(步驟740a)。這里,等待信號是從請求系統總線150的首位處理機中生成的。這樣,當在系統總線150上產生等待信號時,操作步驟從步驟740開始迭代。這里,當相應的處理機為首位處理機時,不是確定是否產生等待信號而是生成等待信號。接著,優先級比較部分130通過把其它處理機的系統響應信號(SYSREQ#)和SLOT#信號相比較確定相應的處理機是否是首位處理機(步驟745)。當該相應的處理機是首位機時,優先級比較部分130生成WIN信號(步驟750)。接著,請求信號發生器126斷開步驟735里生成的系統響應信號(SYSREQ#),并且信號發送部分140為使用系統總線150把信號PROC#、ADR#、TYPE#和DSIZE#輸出到系統總線150(步驟755)。然后,對應的處理機斷開信號PROC#、ADR#、TYPE#和DSIZE#,以在使用系統總線150之后再使用系統總線150(步驟760)。接著,請求信號生成控制器126生成JOBEND信號(步驟765)。
圖7A-7J是根據本發明的圖5總線仲裁器各方塊的操作波形圖。這里,圖7A表示系統總線仲裁時鐘信號(ARBCLK),圖7B表示內部總線時鐘信號(LCLK),圖7C表示數據傳輸請求信號(NRQ或BRQ),圖7D表示req信號,圖7F表示JOBSTART信號,圖7F表示JOBEND信號,圖7G表示REQ信號,圖7H表示WIN信號,圖7I表示SYSREQ#信號以及圖7J表示使用系統總線150的信號PROC#、ADR#、TYPE#和DSIZE#。
圖8A-8H是操作波形,說明由圖5中請求信號發生器124所進行的檢驗系統總線的狀態的操作。假定對應處理機的系統總線響應信號是SYSREQ2。圖8A表示代表系統總線仲裁時鐘信號(ARB-CLK)的波形,圖8B至圖8F表示代表其它處理機構的系統總線響應信號SYSREQ0、SYSREQ1、SYSREQ2、…、SYSREQN的波形,以及圖8G和8H表示代表req信號和WIN信號的波形。當輸入req信號和JOBSTART信號時,通過在圖8A系統總線仲裁時鐘信號的第一下降邊81時刻接收其它的系統總線響應信號SYSREQ0、SYS-REQ1、SYSREQ2、…、SYSREQN,請求信號發生器124檢驗當前系統總線狀態。因為在系統總線仲裁時鐘信號(ARBCLK)的第一下降邊81時刻在系統總線上存在系統響應信號SYSREQ0和SYSRE-Q1,即兩個處理機請求當前系統總線,所以請求信號發生器124不能生成REQ信號。這里,因為在系統總線仲裁時鐘信號(ARBCLK)的第二下降邊82時刻在系統總線150上只存在一個系統總線響應信號SYSREQ1,優先級比較部分130生成WIN信號并且在系統總線仲裁時鐘信號(ARBCLK)的下一個上升邊83時刻請求信號發生器124向系統總線150輸出它的原始的系統總線響應信號SYSRE-Q2。
圖9A-9K是操作波形圖,用于說明比較優先級的操作,該操作是由優先級比較器130在請求信號發生器124產生REQ信號后進行的。認為相應處理機的系統總線響應信號為SYSREQ2。圖9A是代表系統總線仲裁時鐘信號(ARBCLK)的波形,圖9B-9G是代表系統總線150上系統總線響應信號SYSREQ0、SYSREQ1、SYS-REQ2、…、SYSREQN的波形。圖9H和9I分別代表REQ信號和WIN信號的波形。圖9J是代表使用系統總線150的信號PROC#、ADR#、TYPE#和DSIZE#的波形,而圖9K是代表等待信號的波形。取優先級的次序為SYSREQN、…、SYSREQ2、SYSREQ1、SYSREQ0。在系統總線仲裁時鐘的第一下降邊91期間,優先級比較部分130比較優先級。這時,首先檢驗等待信號,然后當另一處理機不請求為首位處理機時比較優先級。如果一個處理機通過生成等待信號請求為首位,則對應的處理機放棄使用總線。這樣,產生等待信號的處理機把該位存儲到該首位處理機里,使得比較優先級時該處理機作為首位機能無條件地使用總線。此外,產生等待信號的處理機具有一種不同于首位請求功能的功能,當該處理機具有使用總線以經總線發送數據的權利時這種功能用來推遲對另一處理機的仲裁以保持正常的規約。這里,因為在系統總線150上存在著系統總線響應信號SYSREQ1、SYSREQ2和SYSREQ3,該相應的處理機不能使用系統總線150。也就是說,對應于首位SYSREQ3的處理機得到使用系統總線150的權利并使用系統總線150。順序地,因為SYSREQ3在第二下降邊92時刻斷開,具有優先權的下一個處理機能得到使用系統總線150的權利。這樣,優先級比較部分130生成WIN信號。接著,信號發送部分140把使用系統總線150的信號PROC#、ADR#、TYPE#和DSIZE#輸出到系統總線150上使得對應的處理機能使用系統總線150。
如上面所述,根據本發明首先檢驗使用系統總線的處理機的號,而當上述處理機被檢驗的號低于一預定號時對應的處理機參與優先級比較,并且根據優先級提供使用系統總線的權利。即,對所有的處理機提供公平權利,并且當滿足一個預定的條件時根據各處理機的優先級提供使用系統總線的優先級。從而解決了僅提供優先或公平的仲裁方法中的缺點,即某些處理機使用系統總線的等待時間非常長。
權利要求
1.一種總線仲裁方法,包括下述步驟(a)檢測一個總線請求處理機生成的系統總線請求信號;(b)檢驗別的請求系統總線的處理機的號;(c)當在所述步驟(b)中請求系統總線的其它處理機的號低于預定號時比較所述總線請求處理機和所述別的處理機之間的優先級;以及(d)允許在所述步驟(c)優先級比較中獲勝的所述總線請求處理機使用所述系統總線。
2.一種總線仲裁方法,包括下述步驟(a)檢測一個總線請求處理機生成的系統總線請求信號;(b)檢驗別的請求系統總線的處理機的號;(c)當在所述步驟(b)中請求系統總線的其它處理機的號低于預定號時確定是否產生一個等待信號;(d)當未產生所述等待信號時比較所述總線請求處理機和所述別的總線請求處理機之間的優先級;以及(e)允許在所述步驟(d)優先級比較中獲勝的所述總線請求處理機使用所述系統總線。
3.如權利要求1中所述的總線仲裁方法,其特征在于進而包括生成一個等待信號的步驟,等待信號用于為具有使用總線權利的所述處理機推遲對別的處理機的仲裁以保持數據傳輸的正常規約。
4.一種總線仲裁器,包括請求信號處理裝置,用于響應總線請求處理機產生的系統總線請求信號以檢驗系統總線狀態信號并且當請求所述系統總線的處理機的號低于預定號時用于輸出一個控制信號;以及優先級比較裝置,用于響應所述控制信號以檢驗請求成為所述系統總線的首位處理機的別的總線請求處理機是否生成一個等待信號;用于當不產生所述等待信號時將對應于所述總線請求處理機的用于確定優先級的信號和所述系統總線狀態信號加以比較;以及當所述總線請求處理機在優先級比較中獲勝時用于輸出系統總線使用信號。
5.如權利要求4所述的總線仲裁器,其特征在于所述請求信號處理裝置包括請求信號檢測器,用于檢測系統總線請求信號;以及請求信號發生器,用于響應所述檢測信號來檢驗系統總線狀態信號;和用于當系統總線請求處理機的號低于預定號時輸出控制信號。
6.如權利要求5的總線仲裁器,其特征在于所述請求信號處理裝置進而包括請求信號生成控制器,用于響應所述檢測信號控制所述請求信號發生器的操作。
7.如權利要求5所述的總線仲裁器,其特征在于所述請求信號發生器響應所述檢測信號檢驗系統總線狀態信號;當系統總線請求處理機的號低于預定號時輸出控制信號,以及生成等待信號以便當所述總線請求處理機使用所述系統總線時推遲對別的總線請求處理機的總線仲裁以保持發送數據的正常規約。
8.如權利要求4所述的總線仲裁器,其特征在于進而包括信號發送裝置,用于響應所述系統總線使用信號向所述系統總線輸出從所述總線請求處理機發送的信號。
9.如權利要求8所述的總線仲裁器,其特征在于所述信號發送裝置包括發送請求處理機號信號的請求處理機號發送器;發送系統地址的系統地址發送器;發送系統數據傳輸類型信號的系統數據傳輸類型發送器;以及發送被發送數據的長度信號的數據量發送器。
全文摘要
提供多處理系統中公用資源和多個處理機之間的一種仲裁方法和設備,更具體地提供一種采用分布式仲裁法的總線仲裁方法和設備。該總線仲裁方法包括下述步驟檢測總線請求處理機所生成的系統總線請求信號,檢驗別的請求系統總線的處理機的號,當請求系統總線的處理機的號都低于預定號時比較該總線請求處理機和別的總線請求處理機之間的優先級,以及允許在優先級比較中獲勝的該總線請求處理機使用系統總線大大減少等待時間。
文檔編號G06F15/177GK1139241SQ9511535
公開日1997年1月1日 申請日期1995年8月14日 優先權日1995年1月16日
發明者白升坤 申請人:三星電子株式會社