專利名稱:連接在共同數(shù)據(jù)總線的模塊之間的數(shù)據(jù)交換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到連接在共同數(shù)據(jù)總線的模塊之間的數(shù)據(jù)交換方法以及實施這種方法的裝置。
一般來說計算機包括了連接在共同數(shù)據(jù)總線,例如連接在ISA-數(shù)據(jù)總線或連接在PCI-數(shù)據(jù)總線的一系列硬件模塊。其中多個硬件模塊-一般來說被稱為主控數(shù)據(jù)總線-有權(quán)將信號輸送給數(shù)據(jù)總線導(dǎo)線,然后信號可以被其他的數(shù)據(jù)總線用戶,例如被被控數(shù)據(jù)總線接收。其中必須保證,兩個主控數(shù)據(jù)總線不會同時將信號輸送給數(shù)據(jù)總線導(dǎo)線。由于這個原因一般來說數(shù)據(jù)總線系統(tǒng)有一個集中的管理模塊(仲裁者),這個在一定的時間點將單個的主控數(shù)據(jù)總線分配給數(shù)據(jù)傳輸?shù)臄?shù)據(jù)總線。
如果主控數(shù)據(jù)總線對于一定的時間希望利用數(shù)據(jù)總線,它經(jīng)過請求導(dǎo)線或請求導(dǎo)線傳送給仲裁者一個相應(yīng)的數(shù)據(jù)總線請求信息,請求導(dǎo)線或請求導(dǎo)線將主控數(shù)據(jù)總線與集中的仲裁者連接在一起。其中在每個單個主控數(shù)據(jù)總線和仲裁者之間必須安排一個請求導(dǎo)線。仲裁者本身例如有一個存儲器,將從不同主控數(shù)據(jù)總線來到的數(shù)據(jù)總線請求存放在存儲器中,然后按照預(yù)先規(guī)定的決策樣板將一個或多個節(jié)拍的數(shù)據(jù)總線分配給主控數(shù)據(jù)總線。其中分配是經(jīng)過分配導(dǎo)線或主導(dǎo)線通過傳輸一個專門的主信號進(jìn)行的,此時在主控數(shù)據(jù)總線和仲裁者之間還必須存在這樣的主導(dǎo)線。
因為從單個的主控數(shù)據(jù)總線各自只將數(shù)據(jù)在數(shù)據(jù)總線上輸出,如果為此從集中的仲裁者允許它們時,保證了兩個主控數(shù)據(jù)總線不會同時運行數(shù)據(jù)總線,也就是說將一個信號交付給數(shù)據(jù)總線導(dǎo)線。
如果涉及到具有很多數(shù)據(jù)總線用戶的非常大和很多分支的數(shù)據(jù)總線系統(tǒng)時,則在上述解決方法中常常必須考慮請求信息和分配信息相對長的等待時間。然而這意味著,數(shù)據(jù)總線全部只可以用相對低的節(jié)拍率和因此只可以慢慢地工作。其他的問題還在于,固然主控數(shù)據(jù)總線可以在任何時間將其數(shù)據(jù)總線請求信息發(fā)送給仲裁者,然而然后必須長時間地等待直到真正允許它們利用數(shù)據(jù)總線。當(dāng)然因為它們本身不知道數(shù)據(jù)總線分配的準(zhǔn)確時間點,不能利用數(shù)據(jù)總線請求信息和分配信息接收之間的時間。其后果是單個的數(shù)據(jù)總線用戶不可以最佳地利用其計算功率。
因此本發(fā)明的任務(wù)是,規(guī)定了連接在一個共同數(shù)據(jù)總線的模塊之間的數(shù)據(jù)交換方法和系統(tǒng),在其中可以盡可能有效地利用數(shù)據(jù)總線導(dǎo)線以及單個模塊的計算功率。
此任務(wù)是通過具有權(quán)利請求1特征的方法,或者按照權(quán)利要求7的系統(tǒng)解決的?,F(xiàn)在按照本發(fā)明的數(shù)據(jù)總線系統(tǒng)的管理不再通過唯一的集中管理模塊,而是通過共同連接在系統(tǒng)中的所有模塊進(jìn)行的,其中每個模塊不依賴于另外的數(shù)據(jù)總線用戶進(jìn)行決策,是否在一定的數(shù)據(jù)總線節(jié)拍期間將數(shù)據(jù)交付或不交付給數(shù)據(jù)總線導(dǎo)線。因此每個模塊有其個人的仲裁者。為了在這種方法中也保證,在確定的節(jié)拍期間數(shù)據(jù)總線不會被兩個用戶同時運行,希望運行數(shù)據(jù)總線的那個模塊首先輸出一個數(shù)據(jù)總線請求信息,這個被所有另外的模塊接收。將請求的時間點-即節(jié)拍-以及數(shù)據(jù)總線請求信息的來歷-例如模塊的號碼或地址-存儲在存在于所有模塊中的請求存儲器中(也存儲在本身已經(jīng)輸出數(shù)據(jù)總線請求信息的那個模塊的請求存儲器中),這樣在所有的模塊中出現(xiàn)同樣的數(shù)據(jù)總線請求信息。在這個數(shù)據(jù)總線請求信息的基礎(chǔ)上于是各自單獨由模塊決策,是否它們用一定的節(jié)拍利用數(shù)據(jù)總線,其中決策是按照預(yù)先規(guī)定的和對于所有模塊同樣的決策樣板進(jìn)行的。
因為每個數(shù)據(jù)總線用戶自己直接決策是否它利用或不利用數(shù)據(jù)總線,在這種方法中省去了分配信號或者大信號的運行時間,因此數(shù)據(jù)總線全部可以比較快地工作,現(xiàn)在因為在所有數(shù)據(jù)總線用戶中出現(xiàn)同樣的數(shù)據(jù)總線仲裁者,也就是說仲裁者,這個用同樣的方法存儲數(shù)據(jù)總線請求信息和按照同樣的決策樣板決策關(guān)于數(shù)據(jù)總線占用,每個數(shù)據(jù)總線用戶知道數(shù)據(jù)總線的連續(xù)占用狀態(tài)以及順序占用狀態(tài)。例如單個的模塊知道,只有在幾個節(jié)拍之后才允許運行數(shù)據(jù)總線,可以將在這之間的時間充分利用于另外的任務(wù),這樣本發(fā)明的方法可以達(dá)到單個數(shù)據(jù)總線用戶有效的滿負(fù)荷。因此分布的仲裁者可以從同樣的基本狀態(tài)出發(fā)進(jìn)行工作,將它們一開始借助于同步的重置信號進(jìn)行同步化。
本發(fā)明的擴展結(jié)構(gòu)是從屬權(quán)利請求的對象。有益的是關(guān)于數(shù)據(jù)總線占用的決策是按照決策樣板這樣進(jìn)行的,將數(shù)據(jù)總線被模塊按照時間順序運行,在其中已經(jīng)輸出數(shù)據(jù)總線請求信息。其中將存在于所有數(shù)據(jù)總線用戶的請求存儲器構(gòu)成為FIF0(先進(jìn)先出)。然而一般來說數(shù)據(jù)總線系統(tǒng)還可以區(qū)分的最小時間單位是單個的節(jié)拍。因此不排除多個模塊同時用一個節(jié)拍輸出一個數(shù)據(jù)總線請求信息。然后可以安排,數(shù)據(jù)總線占用的順序是通過用唯一節(jié)拍輸出的多個數(shù)據(jù)總線請求信息按照一個專門的預(yù)先規(guī)定的順序進(jìn)行的。
在數(shù)據(jù)總線系統(tǒng)中還可以區(qū)分的最小時間單位如前所述是單個的節(jié)拍。因此可能出現(xiàn)這種情況,在一個節(jié)拍中多個模塊(在極端情況下所有的模塊)提出請求,其中當(dāng)然每個節(jié)拍各自只有一個模塊可以占用為了傳輸信號所使用的真正的數(shù)據(jù)總線導(dǎo)線。例如如果在一個系統(tǒng)中,在其中數(shù)據(jù)總線變換只占用一個節(jié)拍,所有n個數(shù)據(jù)總線用戶同時請求數(shù)據(jù)總線,在n個請求的基礎(chǔ)上數(shù)據(jù)總線的整個處理和占用持續(xù)n個節(jié)拍,而將請求本身只用唯一的節(jié)拍輸出。這又意味著在處理n個請求期間,由數(shù)據(jù)總線用戶繼續(xù)有可能提出新的請求,這樣隨著時間有可能完全占滿請求存儲器。為了避免不再提出請求,將這些不再可能存儲和因此不再可能處理,為此必須顧及到,每個模塊“知道”,如果存儲器資源對于新的請求已經(jīng)用盡。因為集中的仲裁者在每個模塊上是同樣構(gòu)成的和因此存儲器資源的滿負(fù)荷到處是一樣的,每個單個模塊可以從它的個人的仲裁者獲得或推導(dǎo)出,這樣就可以決定,模塊不再繼續(xù)將其他的請求交付給其請求導(dǎo)線,直到在自己的仲裁者中的存儲容量得到釋放。
此外可以想象,一些數(shù)據(jù)總線用戶要滿足整個系統(tǒng)比較重要的任務(wù),這樣就應(yīng)該優(yōu)先處理其數(shù)據(jù)總線請求。為了能夠同樣考慮這個可以安排,除了原來的請求存儲器之外每個數(shù)據(jù)總線用戶對于比較高優(yōu)先級的請求有其他的請求存儲器,在其中將這些數(shù)據(jù)總線用戶的專門的請求分開存放。然后按照決策樣板可以考慮將數(shù)據(jù)總線對應(yīng)于預(yù)先規(guī)定的請求序列使用在請求存儲器的正常請求或者比較高優(yōu)先級的請求中。填滿第二個請求存儲器以及數(shù)據(jù)總線占用的時間順序是通過優(yōu)先請求不依賴于被調(diào)節(jié)數(shù)據(jù)總線請求的處理進(jìn)行的。如果還應(yīng)該考慮其他不同的優(yōu)先級,則相應(yīng)地要求很多請求存儲器和仲裁算法,即按照順序?qū)?shù)據(jù)總線通過從不同存儲器中的請求占用,應(yīng)該相應(yīng)地進(jìn)行匹配。
按照本發(fā)明其他的觀點規(guī)定了用于在多個模塊之間信號交換的數(shù)據(jù)總線系統(tǒng),在其中從每個模塊分開一個請求導(dǎo)線,這個又分叉到所有另外的模塊,和其中每個模塊至少有一個請求存儲器,將數(shù)據(jù)總線請求的時間點和其來歷存儲在其中,以及數(shù)據(jù)總線占用電路,這個借助于被存儲的數(shù)據(jù)總線請求信息按照預(yù)先規(guī)定的和對于所有的模塊一樣的決策樣板使數(shù)據(jù)總線的占用通過模塊用一定的節(jié)拍成為可能或不成為可能。
關(guān)于概念此時將每個單個數(shù)據(jù)總線用戶稱為模塊,其中例如可以涉及到綜合的組件或還有單個的IC-芯片。
下面借助于附圖詳細(xì)敘述本發(fā)明。附圖表示附
圖1四個數(shù)據(jù)總線用戶按照本發(fā)明的聯(lián)接圖;和附圖2存儲器和數(shù)據(jù)總線請求信息的處理簡圖。
在附圖1上表示了按照本發(fā)明數(shù)據(jù)總線系統(tǒng)的四個模塊1-4的連接。在其中沒有表示對于真正的數(shù)據(jù)變換所使用的數(shù)據(jù)總線導(dǎo)線。從每個模塊1-4各自分出一個請求導(dǎo)線(請求導(dǎo)線)R1-R4,這個分叉到所有另外的模塊,這樣就可以將數(shù)據(jù)總線請求信息通知給所有模塊。為了使所有模塊1-4的時間同步性能成為可能,將這個通過共同的時間傳感器導(dǎo)線C1同步化。此外一開始可以經(jīng)過重置導(dǎo)線Re將復(fù)位信號傳送給模塊1-4,將所有數(shù)據(jù)總線用戶,準(zhǔn)確地說將各個仲裁者-即數(shù)據(jù)總線占用電路-和將請求存儲器的內(nèi)容設(shè)置在共同的初始狀態(tài)。按照本發(fā)明一個任意的模塊1-4提出在變換周期中占用數(shù)據(jù)總線的請求,如果其各個請求導(dǎo)線R1-R4對于一個節(jié)拍是有效的。如果模塊希望請求兩個變換的數(shù)據(jù)總線,則相應(yīng)的請求導(dǎo)線對于兩個節(jié)拍是有效的。
現(xiàn)在應(yīng)該借助于附圖2敘述填滿請求存儲器以及處理各種請求。在附圖2上放大表示了第一個模塊1?,F(xiàn)在將負(fù)責(zé)數(shù)據(jù)總線導(dǎo)線占用的仲裁者A1(數(shù)據(jù)總線占用電路)固定地集成在模塊1上。此外首先有益地將構(gòu)成為FIFO的第一個請求存儲器5從屬于這個仲裁者A1。
在這個例子中首先假設(shè),作為同等權(quán)利的數(shù)據(jù)總線用戶總共存在四個模塊。模塊1已經(jīng)提出數(shù)據(jù)總線占用請求,如果其內(nèi)部的請求導(dǎo)線7是有效的。將這個內(nèi)部請求導(dǎo)線7一方面直接引導(dǎo)到請求存儲器5和另外一方面引導(dǎo)到外部請求導(dǎo)線R1,這個又分叉到所有另外的模塊-如在這里表示的第二個模塊2。
因為數(shù)據(jù)總線請求信息的運行時間根據(jù)請求導(dǎo)線R1-R4的長度可以容易地改變,現(xiàn)在只將信息,用什麼節(jié)拍提出的請求,存儲在請求存儲器5中,但是不是準(zhǔn)確的時間點。在這個節(jié)拍內(nèi)由每個模塊1-4最多可以提出一個請求。這是這樣考慮的,將所有在一個節(jié)拍內(nèi)提出的請求存放在一個存儲塊中,這在請求存儲器5的圖中對應(yīng)于一行。因為在四個模塊中每個節(jié)拍最多可以提出四個請求,因此一個塊有四個單元。此外在這個例子中請求存儲器5有四個存儲深度。
對應(yīng)于附圖在時間點a(準(zhǔn)確地說在一個節(jié)拍a期間)所有的模塊1-4提出請求(1a,2a,3a,4a)將其全部存放在第一個存儲塊的四個單元中?,F(xiàn)在決定,將所有存放在一個共同的存儲塊內(nèi)的請求按照固定的順序進(jìn)行處理。例如將數(shù)據(jù)總線按照后面的四個節(jié)拍先后被模塊1,2,3和最后被4占用。
然而當(dāng)處理請求1a期間已經(jīng)由模塊3和4在后面的節(jié)拍b中提出了其他的數(shù)據(jù)總線占用請求(3b,4b),將其已經(jīng)存放在下一個存儲塊中。因為在這個節(jié)拍中兩個第一個模塊1和2沒有提出請求,第二個塊的相應(yīng)的單元保持空閑。
將請求2a進(jìn)行處理的后面節(jié)拍中,隨后模塊1至3提出了請求1c,2c和3c,和在后面的節(jié)拍中(處理請求3a時)模塊2至4提出了請求2d,3d和4d。因為請求存儲器5在圖中只有四個塊的存儲深度,現(xiàn)在每個存儲塊是通過至少一個還沒有被處理的請求占用,因為首先還必須處理請求4a,以便將第一個塊完全騰空。此時請求存儲器5的占用在四個模塊1至4的所有仲裁者中是一樣的。將這個占用狀態(tài)被其各自的仲裁者通知給模塊,則首先沒有提出其他的數(shù)據(jù)總線請求。只有當(dāng)也將請求4a處理之后,從而將最下面的存儲塊重新騰空才可以提出新的請求。因此導(dǎo)致了將所有請求用如同按照時間提出的同樣順序進(jìn)行數(shù)據(jù)總線占用。應(yīng)該提醒的是,時間點a,b,c和d沒有必要必須是先后跟隨的節(jié)拍,因為如果在一個節(jié)拍中至少已經(jīng)提出一個請求時,然后才將一個存儲塊填滿。
仲裁者A1決策,對應(yīng)于存儲在請求存儲器5中的請求模塊1可以占用數(shù)據(jù)總線,它將這個經(jīng)過內(nèi)部的主導(dǎo)線G1通知模塊1。
在綜合的數(shù)據(jù)總線系統(tǒng)中一般來說一些數(shù)據(jù)總線用戶比另外的應(yīng)該滿足更重要的任務(wù)。為了優(yōu)先考慮這個模塊的請求,此時例如有可能涉及到一個數(shù)據(jù)總線橋,將附圖2中表示的其他的請求存儲器6從屬于仲裁者,這個只存儲新附加進(jìn)來的優(yōu)先模塊10和11的優(yōu)先信息。這個附加的請求存儲器6按照如同上述原來的請求存儲器一樣的原理工作,也就是說存儲塊的填充是用傳統(tǒng)的請求存儲器5同樣的方法進(jìn)行的。當(dāng)然現(xiàn)在可以決定,處理存放在附加存儲器6中的請求是通過具有優(yōu)先權(quán)的仲裁者A1進(jìn)行的。例如在這種情況下可以實行一種仲裁算法,這種算法首先處理不優(yōu)先的模塊1至4的一個請求和隨后處理優(yōu)先模塊10和11的兩個請求。在附圖2中表示的兩個請求存儲器5和6的占用是為了保證請求按照以下順序進(jìn)行1a,10A,10B,2a,11B,10C,3a,10D,4a,3b,4b等。
優(yōu)先模塊10和11也允許提出請求,直到優(yōu)先請求的附加存儲器6占用滿了為止,不考慮原來的請求存儲器5的占用程度。其中用小寫字母和大寫字母的請求時間點相互是不相關(guān)的。
如果最后還應(yīng)該考慮數(shù)據(jù)總線提供的其他優(yōu)先級,則將很多請求存儲器相應(yīng)地從屬于仲裁者和應(yīng)該相應(yīng)的設(shè)計上面例子敘述的仲裁算法。
因為對應(yīng)于固定的預(yù)先規(guī)定的決策樣板對于每個模塊的數(shù)據(jù)總線導(dǎo)線占用自己知道,下一次什麼時候可以占用數(shù)據(jù)總線,可以準(zhǔn)備數(shù)據(jù)總線占用,也就是說有可能將在這之間的時間進(jìn)行其他的運算。此外每個模塊可以在適當(dāng)結(jié)構(gòu)時提出那么多的請求,使其數(shù)據(jù)總線占用最佳化。此外因為還省去在集中仲裁者中出現(xiàn)的大信號的長的運行時間,可以運行具有比較高節(jié)拍率的數(shù)據(jù)總線。因此按照本發(fā)明的方法提供了可能性,比到目前為止的情況顯著有效地充分利用系統(tǒng)的數(shù)據(jù)總線容量和計算容量。
權(quán)利要求
1.連接在共同數(shù)據(jù)總線的模塊(1-4)之間的數(shù)據(jù)交換方法,具有以下步驟將所有模塊(1-4)在時間上同步化;希望運行數(shù)據(jù)總線的模塊(1-4)輸出一個數(shù)據(jù)總線請求信息,這個被另外的模塊(1-4)接收;在所有的模塊(1-4)中將輸出的節(jié)拍以及數(shù)據(jù)總線請求信息的來歷存儲在請求存儲器(5)中;每個模塊(1-4)借助于被存儲的數(shù)據(jù)總線請求信息(1a,2a,10A,10B)不依賴于另外的模塊(1-4)進(jìn)行決策,是否用一定的節(jié)拍將一個信號輸出給數(shù)據(jù)總線,此時決策是按照預(yù)先規(guī)定的和對于所有模塊(1-4)同樣的決策樣板進(jìn)行的。
2.按照權(quán)利請求1的方法,其特征為,在方法的開始將所有請求存儲器(5)通過復(fù)位信號設(shè)置為同樣的初始狀態(tài)。
3.按照權(quán)利請求1或2的方法,其特征為,按照決策樣板將數(shù)據(jù)總線按照時間順序由模塊(1-4)進(jìn)行運行,在其中已經(jīng)輸出了相應(yīng)的數(shù)據(jù)總線請求信息。
4.按照權(quán)利請求3的方法,其特征為,對于以下情況,在一個節(jié)拍上由多個模塊(1-4)同時輸出數(shù)據(jù)總線請求信息時,將相應(yīng)的信息存儲在請求存儲器(5)的一個共同的存儲塊中,其中按照決策樣板在存儲于一個存儲塊的信息(1a,2a,3a,4a)的基礎(chǔ)上按照預(yù)先規(guī)定的順序進(jìn)行數(shù)據(jù)總線占用。
5.按照權(quán)利請求4的方法,其特征為,如果至少部分被占用的存儲塊的數(shù)目達(dá)到預(yù)先規(guī)定的臨界值時,從模塊(1-4)不再輸出其他的數(shù)據(jù)總線請求信息。
6.按照上述權(quán)利請求之一的方法,其特征為,由一些模塊(1-4)可以輸出比較高優(yōu)先級的數(shù)據(jù)總線請求信息,其中將相應(yīng)的信息(10A,10B)存儲在其他的存儲器(6)中,按照預(yù)先規(guī)定的數(shù)據(jù)總線請求信息的占用算法將數(shù)據(jù)總線使用在第一個占用存儲器(5)上或?qū)τ诒容^高優(yōu)先級的數(shù)據(jù)總線請求信息使用在其他的存儲器(6)上,和對應(yīng)于比較高優(yōu)先級的數(shù)據(jù)總線請求信息的數(shù)據(jù)總線占用是不依賴于對應(yīng)于正常的數(shù)據(jù)總線請求信息的數(shù)據(jù)總線占用進(jìn)行的。
7.連接在共同數(shù)據(jù)總線的模塊(1-4)之間的數(shù)據(jù)交換系統(tǒng),有請求導(dǎo)線(R1-R4),這些各自一個模塊(1-4)與另外的模塊(1-4)連接,用于傳送數(shù)據(jù)總線請求信息;在每個模塊(1-4)中有一個請求存儲器(5)用于存儲數(shù)據(jù)總線請求信息的輸出節(jié)拍以及數(shù)據(jù)總線請求信息的來歷;在每個模塊(1-4)中有一個數(shù)據(jù)總線占用電路(A1)用于控制數(shù)據(jù)總線占用通過相應(yīng)的模塊(1-4)借助于存儲在請求存儲器(5)中的數(shù)據(jù)總線請求信息(1a,2a,10A,10B)對應(yīng)于對于所有模塊(1-4)預(yù)先規(guī)定的和同樣的決策樣板;和與所有模塊(1-4)連接的時間傳感器導(dǎo)線(C1)用于模塊(1-4)的同步化。
8.按照權(quán)利請求7的系統(tǒng),其特征為,此外系統(tǒng)有一個導(dǎo)線(Re)用于傳送復(fù)位信號,通過復(fù)位信號將所有請求存儲器(5)設(shè)置為統(tǒng)一的初始狀態(tài)。
9.按照權(quán)利請求7或8的系統(tǒng),其特征為,每個模塊(1-4)有由單個模塊輸出的比較高優(yōu)先權(quán)的數(shù)據(jù)總線請求信息的其他的存儲器(6),其中數(shù)據(jù)總線占用電路(A1)按照預(yù)先規(guī)定的占用算法考慮了存儲在其他存儲器(6)中比較高優(yōu)先權(quán)的數(shù)據(jù)總線請求信息。
全文摘要
在連接在共同數(shù)據(jù)總線的模塊(1-4)之間的數(shù)據(jù)交換方法中將所有的模塊(1-4)同步化。希望運行數(shù)據(jù)總線的模塊(1-4)輸出一個數(shù)據(jù)總線請求信息,這個被模塊(1-4)接收和存儲。每個模塊(1-4)借助于被存儲的數(shù)據(jù)總線請求信息(1a,2a,10A,10B)不依賴于另外的進(jìn)行決策,是否它用一定的節(jié)拍將一個信號交付給數(shù)據(jù)總線,其中決策是按照預(yù)先規(guī)定的和對于所有模塊(1-4)同樣的決策樣板進(jìn)行的。
文檔編號G06F13/36GK1373873SQ00812577
公開日2002年10月9日 申請日期2000年9月6日 優(yōu)先權(quán)日1999年9月7日
發(fā)明者F·胡特納, P·佩勒斯卡 申請人:西門子公司