專利名稱:數字數據處理系統高速緩沖存儲器內容的失效標記的制作方法
技術領域:
本發明一般地涉及到數字數據處理系統的范疇,并特別地涉及到當在處理器中的高速緩沖存儲器電路所存內容失效(Stale)時,用來作為標記的系統,該電路包含著數據,對于這些數據而言,存儲在主存儲器中的同樣這些數據已被系統中其他部件所改寫。
典型的數據處理系統包括三個基本部分,叫做處理器,存儲器和輸入/輸出部分。存儲器在可訪問的存儲單元中存了信息。這些信息包括數據和用來處理數據的指令。處理器包括一個或多個數字數據處理部件,或“處理器”,每個處理器導致信息傳送或從存儲器中提取出來信息,解釋取來的信息為指令或是數據,并依照指令處理數據,然后將其結果存入所訪問的存儲單元中。
輸入輸出部分還和存儲器進行通訊,目的是向系統傳送信息或從系統得到處理后的數據。組成輸入/輸出部分的部件通常根據由處理器提供的控制信號進行操作。控制信號決定輸入/輸出裝置要執行的操作。由輸入/輸出裝置所執行的至少有一種操作是在輸入/輸出部件和存儲器之間傳送用戶信息、即用戶程序所使用的信息。由輸入/輸出元素組成的典型部件包括,例如,打印機,電傳打字機,視頻顯示終端,并也可包括輔助信息存儲裝置例如磁盤或磁帶。
除了作為輸入/輸出設備外,磁盤存儲器,在某些情況下還有磁帶存儲器,也可以部分地起到存儲器的作用。特別地,存儲器部分典型地包括了主存儲器,其內容是處理器容易較高速地進行訪問的,但通常存儲成本較高。現代的主存儲器典型地采用MOS(金屬氧化物半導體)和雙極型半導體技術來實現,并可提供大約從幾分之一兆字節到幾十兆字節的存儲容量。
另一方面,訪問存放在磁盤存儲器的信息所需要的時間大大超過了訪問主存儲器的時間,但是磁盤存儲器能提供很大的存儲容量,大約為數百兆字節或更多,且成本較低。此外,與主存儲器不同的是,磁盤存儲器的信息不易丟失,也就是說如果斷電,存儲的信息不會失去。因此,磁盤裝置常用來為主存儲器提供后備存儲。也就是說,為尚不宜于進入主存儲器的信息提供存儲直到程序需要把它們調入主存儲器為止。當程序需要存儲在磁盤上的信息而不是在主存中的信息時,那些信息要被傳送到主存儲器中去。如果需要,在主存儲器中那些將被自磁盤傳送來的信息寫入的存儲單元的內容,可以在被來自磁盤的數據所重寫之前,傳送到磁盤去以便存儲在里面。
在許多數字數據處理系統中,處理器(假設為一個處理器),大容量存儲器和其他輸入/輸出設備均與單一的主存儲器或幾個主存儲器模塊進行通訊,這就可能產生對于主存儲器的爭用,它能夠影響處理器從主存儲器快速獲得信息的能力。這樣,也降低了處理器執行程序的能力。如果所有的部件均連接在單一的輸入/輸出總線上,當所有的被傳送的信息都通過單一的總線來傳送時,這種總線爭用的問題將變得更加尖銳。
因此,在許多現代的計算機系統中,處理器含有高速緩沖存儲器(Cache memory),它是一個小的專用的存儲器,僅可供處理器訪問,存儲了來自主存儲器中最最近被請求的那些存儲單元和其鄰近的一些單元的信息。在典型的數據處理系統中,當處理器從主存儲器中的一個存儲單元請求一個信息項時,它將經常在此后不久需要其鄰近的存儲單元的內容。因此,當處理器能從主存儲器請求信息時,它請求的信息多于那個時刻它所需要的信息,有可能此后不久這些剩余信息中至少有某些或許是它所需要的。當處理器得到了它所需要的該項信息時,它能立即開始使用它,并且如果發現處理器能夠利用它已經接收到的其他信息,它將利用存儲在高速緩沖存儲器中的該信息而不必等待到從主存儲器去得到該信息。
例如,美國專利U.S.4,439,829號中公開了一種具有高速緩沖存儲器的數據處理機,在其上的操作操作可分為兩個子周期,在第一個周期內從中央處理器接收讀請求,在第二個周期內從外設中接收讀請求或向該高速緩沖存儲器寫入。這樣,中央處理器能夠在第一周期內繼續讀高速緩沖存儲器,不管第二周期是在讀出還是寫入高速緩沖器。
典型地,高速緩沖存儲器被安排在塊內,每塊能存儲預定的信息量。當信息從主存儲器中提取出來并裝入高速緩沖存儲器塊時,該塊被賦值一個地址,叫做“標識符”(tag),標識符相應于主存儲器中提取出來信息的相應存儲單元的地址;因此高速緩沖存儲器塊是由主存儲器中的存儲單元來確認的。當處理器需要信息時,在高速緩沖存儲器中的標識符要受到檢驗,以確定是否有一塊含有所需要的信息。如果有一塊含有所需要的信息,則處理器從該塊高速緩沖存儲器獲得信息;否則,處理器從主存儲器獲得信息。
正如上面已經提到,當磁盤裝置向主存儲器傳送信息時,它可以改寫以前在主存儲器中的信息。但是,當發生這種情況時,如果來自主存儲器中這些存儲單元的信息已經存儲在高速緩沖存儲器中的一塊或幾塊中,則在這些塊中的信息是失效的,也就是說,該塊不含有在存儲器中的信息的拷貝(Copy)。
本發明提供了一種新的、改進了的機制用于標志在高速緩沖存儲器中失效記錄塊,以便指出自從信息被存入高速緩沖存儲器,與這些塊有關的主存儲器的內容已經發生了變化。
簡單地概括起來講,數字數據處理系統包括一個處理器,它含有一個受總線接口電路控制的高速緩沖存儲器。處理器通過公共總線與主存儲器和一個或多個輔助的信息存儲裝置進行通訊。總線包括用來傳送地址和信息的線(當要傳送地址時,由一個地址選通脈沖信號來標識),和一條用來傳送高速緩沖存儲器控制信號的線。如果高速緩沖存儲器的控制信號優先于通過地址線的地址傳送及地址選通脈沖信號的建立而直接地建立起來,則總線控制電路把該地址和那些與高速緩沖存儲器的內容有關的地址進行比較。如果高速緩沖存儲器中的塊與所傳送的地址有關,則總線控制電路就標志該高速緩沖存儲器的內容失效。與剛才標志為失效的塊相鄰近的主存儲器存儲單元有關的第二塊,也可以標志為失效的塊,只要高速緩沖存儲器控制信號第二次建立,而地址選通脈沖信號業已建立起來。
本
發明內容
已詳細地指出在以下敘述中。上面提到的、和將進一步提到的本發明的優點,可以通過參考下面的敘述和連帶的附圖來更好地理解,其中
圖1是根據本發明的數字數據處理系統結構的方塊圖;
圖2是描述總線的各種線的圖,該總線在圖1描述的系統中連接各種部件。
由圖3A和圖3B組成的圖3包括時序圖,在理解圖1所述系統的操作時該圖是有益的。
參看圖1,包括本發明在內的數據處理系統包括(作為最基本的部分)處理器10,存儲器11以及一個或多個輸入/輸出部件12。總線13并行地連接處理器10、存儲器11和輸入/輸出裝置12。處理器10執行指令,這些指令存在存儲部件11中的可訪問的存儲單元內。指令確認對操作數所要進行的操作,這些操作數也是存儲在存儲器的可以訪問的存儲單元中。指令和操作數都是由處理器10在需要它們時取來的,并且處理后的數據被返存在存儲器11中。處理器10還發送控制信息到輸入/輸出部件12,使它們去執行選定的操作,例如向存儲器11傳送數據、或者從存儲器11取回數據。這些數據可以是指令或者自存儲器11傳送的操作數,或者是從存儲器11取回來的處理過的數據以用于存儲或顯示。
操作控制臺14用作操作員的接口,它允許操作員測試和存儲數據,停止處理器10的操作或者讓處理器10單步操作,逐次通過指令,以及據此而確定處理器10的響應。它也使操作員能夠通過自引導程序(boot strap procedure)去初始化系統,并能在整個數據處理系統上完成各種診斷測試。
存儲器11包括存儲控制器15,它直接地連接到總線13和一組陣列17上。陣列17包含存儲了信息的一組可訪問的存儲單元。通過總線13,存儲控制器15接收來自處理器10或輸入/輸出部件12的傳送請求。通過總線13,存儲控制器15可接收幾種傳送請求,這些請分為兩類,一類請求是把信息寫入或者存儲進存儲單元中,另一類請求是從存儲單元中取回信息或者讀出信息。
數據處理系統可以包括若干種輸入/輸出部件12;包括磁盤和磁帶外存儲裝置,電傳打字機,視頻顯示終端,行式打印機,電話和計算機網絡以及類似的輸入/輸出部件。所有這些裝置都通過設備總線經一個或多個總線適配器與總線13通訊。如圖1所示,磁盤驅動器20經設備總線22被連接到外存總線適配器21上。外存總線適配器又連接到總線13上。其他的輸入/輸出裝置12通過設備總線24連接到輸入/輸出總線適配器25上。
由處理器10通過總線13的傳送受總線接口電路30的控制。該總線接口電路30發送和接收信號,正如下面與圖2有關描述所說,應處理器處理電路(圖中未畫出)的要求,這些信號通過總線13完成處理器和與總線相連的各設備之間的信息傳送。總線接口電路30也控制高速緩沖存儲器31,通過總線13從存儲裝置11中接收到的信息就存儲于此。此外,如果處理電路已經請求了存儲在高速緩沖存儲器31中的信息,則總線接口電路30取回信息并把它傳送到處理電路去。
高速緩沖存儲器31是在處理器10中的通用信息存儲電路。K。王(K.Hwang)和F。伯利格(F.Briggs)在“計算機結構和并行處理”(Computer Architecture And parallel proces-sing),Mc Graw-Hill,1984,一書第2.4節第98頁及其后,和V.哈馬洽(V.Hamacher)在“計算機構造”(Computer Organization),Mc Graw-Hill,1984,一書8.6節第306頁及其后均已描述了高速緩沖存儲器。高速緩沖存儲器31包括一組安排在塊中的存儲單元,每一塊含有兩個存儲單元。每一個存儲器單元存放一個信息字,即,可以通過總線13一次傳送的信息總量。在一特定的實施例中,一個信息字相當于4個字節,即,32位二進制數位。因此,一塊包含用于8個信息字節的存儲單元。如本技術領域技術人員所能理解,在高速緩沖存儲器31的塊中存儲的信息,當它是接收自存儲器11時,該信息是存儲在存儲器11中的信息拷貝。高速緩沖存儲器31中的每一塊具有一個相關連的標識符32,該標識符的內容是由總線接口電路30所確定從而用來識別在存儲器11中復制了信息的存儲單元。此外,每一塊含有失效標記(Stale flag)33,該失效標記由總線接口電路去復位或清除,以便指示出該塊的內容實際上是否是被標識符所確認的存儲單元的拷貝。即是說塊的內容是否失效。
塊的內容可以標志成失效的條件已得知。當連接于總線13的其他裝置向存儲器11傳送信息以便存儲在一個存儲單元中,該存儲單元的內容已預先復制到高速緩沖存儲器31中的塊中,至少這是一種可以標志塊的內容失效的一種情況。如發生這種情況,高速緩沖存儲器31中的塊的內容是“失效”了,也就是說它們不再對應于在存儲器11中的存儲單元的內容了,因而處理器10不能利用高速緩沖存儲器11中該塊內的信息。在上述的實施例中,一個高速緩沖存儲器塊有兩個存儲單元,如果任一存儲單元的內容不對應于在存儲器中相應存儲單元的內容、該塊被標志為失效。
總線13包含一組線用來對連接于此的不同部件傳送信號。將證實,為了部分或全部的接收和利用或者發送各種信號,每個部件都具有一些電路(未畫出)。圖2給出了組成總線13的實施例的許多條線。
參照圖2,總線13包括一組數據/地址線(“DNA”)35,命令裝置通過它發送表示信息和傳送命令/地址已被傳送的信號。在總線13中、傳送命令的信號(即確認響應于該命令而被傳送的字的數目的信號)與地址一同被傳送。即使在傳送多于一個信息字的情況下也只傳送一個地址;如果響應于命令傳送多于一個字的信息,則第一個信息字與由地址確認的單元有關,其余的字從被接連的地址所確認的單元中取出。
命令裝置在將地址信號安排于數據/地址線35上、并允許它們調整和抗扭斜(to Settle and deskew)之后,通過線36發送已建立起來的地址選通信號AS。其他部件可利用已建立起的地址選通信號AS去選通和使用地址信號,如果發送地址的部件也通過線37發送一個WR寫信號以便能進行寫操作,則信息傳送到由剛才發送的地址所確認的存儲單元中。在建立AS地址選通信號之后的預定時間,命令裝置從數據/地址線35消除命令和地址信號并置信息信號于其上。經過一個選定的時間,信息信號已被調整和抗扭斜之后,命令部件通過線40發送已建立的數據選通信號DS,使包含被訪問的存儲單元的該部件(即,響應的部件)接收數據和存儲信息到被訪問的單元中去。然后該響應裝置通過線41傳送已建立的由發送裝置接收的準備好的信號RDY。然后DS數據選通信號和AS地址選通信號被取消。然后響應部件的準備好的信號RDY也被取消。
另一方面,如果命令部件(也就是在數據/地址線上發送地址信號的部件),沒有建立起寫信號WR,那么,一個讀操作能夠被產生,響應的部件通過數據/地址線35發送存放在存儲單元中的信息。特別是,在地址選通脈沖信號AS建立之后的某一個時間,命令部件消除掉地址信號,并建立數據選通信號DS。于是,響應的部件把來自于由地址信號確認的存儲單元的信息信號置于數據/地址線35上,并建立準備好的信號RDY。在響應時,命令部件選通在數據/地址線35上的信號,取消數據選通信號DS和地址選通信號AS并且相應的裝置取消準備好的信號RDY。
正如上所述,響應于一個信號地址可以傳送多字信息。這就由保持了已建立的地址選通信號的命令部件來進行調節,并針對將要傳送的每一個字建立起數據選通信號DS。如果是寫操作,針對每個已建立的數據選通信號DS,命令部件發送一個新的信息字,并且接收部件響應于此而起立準備好的信號RDY。在接收部件取消了準備好的信號RDY之后,命令部件可以發送一個新的信息字并建立數據選通信號DS。
如果是讀操作,命令部件發送了數據選通信號DS之后,接收部件把新的信息字置于數據/地址線35上,并建立RDY信號。在接收部件取消了RDY信號之后,命令部件可再次建立數據選通信號DS。
命令部件可以是任何一個部件,該部件啟動向存儲器信息的傳送、或從存儲器取出信息的傳送。在圖1所示的數字數據處理系統中,處理器10和外存儲器總線適配器21啟動與存儲器11信息的傳送。此外,在某些情況下,輸入/輸出總線適配器25也可以啟動與存儲器11的信息傳送。因此,適配器21和25直接訪問存儲器11,也就是說,它們參與“直接存儲器訪問”,即“DMA”傳送。如果適配器21或25中的任何一個希望與存儲器進行DMA傳送,則他們要參與判優操作,在此操作中,由處理器10確定是否將發生DMA傳送。希望進行DMA傳送的裝置通過線42,發送已建立的直接存儲器(傳送)請求信號DMR;在響應時,處理器10通過線43建立直接存儲器傳送許可信號DMG。于是,接收到直接存儲器傳送許可信號DMG的部件可變成在總線13上的命令部件。
除上述信號外,總線13還包括許多條線44用來運送信號,根據這些信號,系統中的其它部件可以請求中斷服務或發出發生非正常事件的信號,還包括另外的線45用來運送各種各樣的控制信號和時序信號。
此外,依照本發明,總線13包括用來運送高速緩沖存儲器控制信號CCTL的線46,該控制信號可在DMA傳送期間由命令部件建立起來,例如,該部件即是通過總線13直接地向存儲器11傳送信息信號的適配器21或25這樣的部件。命令部件利用高速緩沖存儲器控制信號CCTL連同通過總線13的另外的線發送的信號,從而使得總線接口電路30(a)通過把地址信號與標識符32的內容相比較,確定由通過數據/地址線35的地址信號所確認的被訪問的存儲器單元的內容是否已經復制到了高速緩沖存儲器31的塊中,(b)當地址信號和高速緩沖存儲器標識符32如果一致,即如果它們已經被復制到塊中,則設置該塊的失效標記33從而指出在存儲器11中的相應存儲單元已經被重寫。在總線接口電路30執行這些操作的情況下,命令部件和被訪問的部件可利用數據/地址線35和上述數據選通信號DS通過總線13繼續信號傳送。因此如果傳送的信息是通常已裝入到高速緩沖存儲器的信息,則通過建立高速緩沖存儲器控制信號CCTL,連同總線13上的其他信號,命令部件能夠通過總線13開始信息傳送,同時也能使總線接口電路30完成上述操作。
圖3A和圖3B描述了對各種信號,包括在線46上的高速緩沖存儲器控制信號CCTL(圖2)的時序,圖3A描述了涉及一種傳送的時序,在該傳送中高速緩沖存儲器的一塊可能是被標志為失效的,而圖3B描述了涉及一種傳送的時序,在該傳送中,高速緩沖存儲器的多個塊可能是被標志為失效的,正如上所述,命令部件采用保持已建立的地址選通信號AS的方法,完成響應于單一地址的多個存儲單元的信息傳送。如果這種情況發生,則總線控制電路30大有可能標志高速緩沖存儲器31(圖1)中的多個塊為失效的。
參看圖3A可知,命令裝置在將地址信號置于數據/地址上之前和建立地址選通信號AS之前即已建立起高速緩沖存儲器控制信號CCTL了。這就決定總線接口電路要求得到一個地址,而總線接口電路應對該地址和緩沖寄存器標識符32的內容作比較。然后,命令部件(圖1中適配器21或25中的任何一個)置該地址信號于數據/地址線35上,并建立地址選通信號AS。大約在命令部件建立地址選通信號AS之時,它可能取消高速緩沖存儲器控制信號CCTL。
當地址選通信號AS建立時,響應高速緩沖存儲器控制信號CCTL的建立,處理器10,尤其是總線接口電路30,被用來從數據/地址線35選通地址信號。選通地址信號之后,總線接口電路30把地址信號與標識符32內容進行比較,如果他們是一致的,則置位與其一致的塊相關的失效標記33,以標記該塊失效。
如圖3B所述,當地址選通信號建立時,如果高速緩沖存儲器控制信號CCTL被第二次建立,則總線接口電路30將確定高速緩沖存儲器31中的塊與通過數據/地址線35開始發送的地址信號有關的第二次地址之間是否存在著一致性。特別是,在一個塊中包含著的存儲單元是針對著存儲器11的兩個存儲單元的實施例中,第二個地址被提取出來作為存儲器中相鄰塊的地址。當高速緩沖存儲器控制信號CCTL被第二次建立時,總線接口電路35確定在標識符32和通過數據/地址線35所接收到的地址被加2所組成的地址之間,是否存在一致性。
上文所述限于本發明的特殊的實施例,但是很明顯,帶有本發明的某些或全部優點的各種變形和修改可以作出來。因此,本發明申請的權利要求的目的是包括全部的這些變形和修改,因為它們都是在本發明的精神和范圍內。
本發明所提出的權利要求,是希望在美國專利證書得到確立的那些權利要求。
權利要求
1.一數字數據處理系統,該系統包括一部件和至少另外一個與總線互相連接的設備,本發明其特征在于該部件包括高速緩沖存貯器裝置,該高速存儲緩沖器包括有多個項目,每個項目包括一個塊,該塊包括有一標識符存儲器和一失效指示器,該失效指示器含有有效狀態和失效狀態,該部件進一步包括總線接口電路裝置,用于連接到總線,以便接受在總線的相應線上的地址信號,地址控制信號和高速緩沖器控制信號,上述總線接口電路進一步連接到高速緩沖存儲器,并包括A.地址接收電路,連接至上述總線,響應上述地址控制信號來接收上述地址信號;B.標識符比較器,連接至上述地址接收電路和全部標識符存儲器,響應于一第一個高速緩沖存儲器控制信號,以確定上述地址信號和上述標識符存儲器的內容是否一致;以及響應于第二個高速緩沖存儲器控制信號,以確定遞增的地址信號和上述標識符存儲器的內容是否一致;C.失效指示器控制電路,連接到上述標識符比較器和總線,響應于上述高速緩器控制信號和一個完全的符合一致,以控制具有與失效狀態一致的項目的失效指示器。
2.根據權利要求1的系統,所述比較器包括一地址遞增器,用于根據接到第二個高速緩沖存儲器控制信號來產生一增量地址值,所述標識符比較器確定上述遞增地值和所述標識符存儲器的內容是否一致,和所述標志控制電路對上述比較是一致的情況作出響應,以將具有上述一致的項目的失效指示器調節到失效狀態。
全文摘要
一種機制,用來當高速緩沖存貯器里塊的內容已被變更時,確定通過處理器外部的DMA(存貯直接存取)操作造成的失效以及用來標志該塊失效以響應于一個可靠的決定。在DMA傳送中,命令部件在發送地址之前建立了高速緩沖存貯器控制信號,該信號控制處理器去接收地址并確定是否與高速緩沖存貯器的內容相符合一致,如果是這樣,則處理器要標志高速緩沖存貯器單元的內容失效。
文檔編號G06F12/08GK1048459SQ9010709
公開日1991年1月9日 申請日期1987年9月17日 優先權日1986年9月18日
發明者保羅·魯賓菲爾德 申請人:數字設備公司