專利名稱:改良的高速緩存系統(tǒng)的制作方法
技術領域:
本發(fā)明總的來說涉及高速緩存設備,更具體地說,涉及具有最近最少使用(LRU)替換機制的高速緩存設備。本發(fā)明還涉及處理高速緩存系統(tǒng)中無效數(shù)據(jù)的方法。
個人計算機系統(tǒng)在本專業(yè)中是眾所周知的。一般來說個人計算機,尤其是IBM個人計算機已經(jīng)得到了廣泛的應用,為今天的現(xiàn)代社會的各個方面提供計算功能。個人計算機一般被定義為臺式的,落地式的,或便攜式微型計算機,它包括具有以下部件的系統(tǒng)單元中央處理單元(CPU),或處理器;以及相關的易失“或非”易失性存儲器,所述存儲器包括所有的隨機存儲器RAM和基本輸入輸出系統(tǒng)只讀存儲器BIOS ROM;系統(tǒng)監(jiān)視器;鍵盤;一個或多個軟磁盤驅(qū)動器;固定盤驅(qū)動器(也被稱為“硬盤”);被稱作“鼠標器”的指示器;和任選的打印機。這些系統(tǒng)顯著的特點之一是使用母板或系統(tǒng)板將這些部件在電氣上連接在一起。這些系統(tǒng)首先被設計用來給個人用戶以獨立的計算能力,并且其低廉的價格使得個人或小公司能夠買得起。這種個人計算機系統(tǒng)的例子如,IBM’s個人計算機AT(IBMPC/AT),IBM’s APTIVA,個人系統(tǒng)/1(IBM PS/1),以及個人系統(tǒng)/2(IBM PS/2)。
這種系統(tǒng)的心臟是微處理器或中央處理單元(CPU)(一般稱之為“處理器”)。所述處理器負責完成大多數(shù)的應用程序功能。系統(tǒng)執(zhí)行的能力與CPU的關系密切CPU執(zhí)行程序指令越快,整個系統(tǒng)運線的越快。
早期的處理器根據(jù)比較慢的系統(tǒng)存儲器來執(zhí)行指令,執(zhí)行一條單指令需要幾個時鐘周期。它們要從存儲器中讀取一條指令,對所述指令譯碼,完成所需的動作,并將結果回寫到存儲器中,所有這些需要花一個或多個時鐘周期的時間來完成。
由于實際應用要求處理器的能力更加強大,所以在處理器中增加了內(nèi)部和外部高速緩存。高速緩存(以下稱為高速緩存cache)是位于處理器內(nèi)部或外部,非??焖俚拇鎯ζ鞑糠郑⑴c處理器緊密連接。將指令或數(shù)據(jù)塊從相對較慢的系統(tǒng)存儲器(DRAM)中拷貝到快速的高速緩存中,這樣處理器能夠快速地存取這些指令和數(shù)據(jù)。
高速緩存通常被分為兩類直接映象高速緩存和關聯(lián)高速緩存。在直接映象高速緩存中,高速緩存包括直接與系統(tǒng)存儲器中數(shù)據(jù)地址單元相對應的數(shù)據(jù)。直接映象的缺點是對應于主存儲器的一塊或多塊高速緩存數(shù)據(jù)比系統(tǒng)存儲器要小,并且經(jīng)常被新的對應于主存儲器不同的塊的新數(shù)據(jù)所替換。因此,為了保持主存儲器的塊與關聯(lián)存儲器一樣的有效,直接映象高速緩存必須經(jīng)常地大于關聯(lián)高速緩存。但不幸的是,制作大的直接映象高速緩存的結果將導致高速緩存性能的降低。由于這種原因,所以經(jīng)常避免使用直接映象高速緩存。
關聯(lián)高速緩存與直接映象高速緩存不同,因為關聯(lián)高速緩存在它的寄存器中動態(tài)地分配數(shù)據(jù)。即,關聯(lián)高速緩存中的數(shù)據(jù)與在主存儲器中的數(shù)據(jù)具有不同的的物理地址。而關聯(lián)高速緩存一般給數(shù)據(jù)分配一個由存儲在高速緩存的數(shù)據(jù)單元所確定的高速緩存地址。由于高速緩存在報告所需信息不存在之前(即,被稱為“錯過”),需要進線高速緩存的查詢,所以關聯(lián)高速緩存一般比直接映象高速緩存慢。
然而,現(xiàn)在已經(jīng)開發(fā)出直接映象高速緩存和關聯(lián)高速緩存技術相結合的n路組關聯(lián)高速緩存。在n路組關聯(lián)高速緩存中,高速緩存被分成“n”塊,其中每一塊對應于系統(tǒng)存儲器中的絕對地址。在“n”塊的每一塊中,根據(jù)所述塊中存儲器的位置,數(shù)據(jù)可以被動態(tài)賦值。用這種方法,n路組關聯(lián)高速緩存表現(xiàn)出直接映象高速緩存的快速和關聯(lián)高速緩存動態(tài)地址賦值的靈活性。名詞術語“入口entry”與“路way”是同義詞下面將被互用。
另外一個影響高速緩存性能的重要特性是當為新數(shù)據(jù)留空間時數(shù)據(jù)被從高速緩存中替換或廢棄的方法??梢栽谙冗M先出(FIFO),最近最少使用(LRU),最少使用(LFU)等的基礎上選擇被替換的數(shù)據(jù)。雖然不存在單一最佳替換方案,但是研究表明,某種方案對于特定的一類問題是最佳的,而對于其它類問題則較差。結果,很多磁盤/主存儲器系統(tǒng)利用近似于真正的LRU方案的非最近使用方案。使用這種方案預期“命中”將更加有可能產(chǎn)生隨后的讀操作,因為最近已經(jīng)被訪問的數(shù)據(jù)保留在高速緩存中,而在多次高速緩存操作之后沒有被訪問的數(shù)據(jù)將不保留。對于更小的關聯(lián)度(2,4,或8路),非關聯(lián)功能能夠提供足夠的LRU替換。但是對于具有高關聯(lián)度(32路,64路,或更高)的高速緩存,這種方案需要大的邏輯扇入以及存儲大數(shù)量的位對(bit-pairs)。對于大關聯(lián)度來說,通過利用地址順序關聯(lián)可以實現(xiàn)真正的LRU替換。見Matick,Richard E.,計算機存儲系統(tǒng)和技術(John Wily & Sons 1977)第591-597頁。當使用多路高速緩存時,這種方案更快,更加有效。
在這種方案中,LRU替換機制將信息從上到下或從下到上存儲在寄存器棧中。頂部寄存器一般包含了最近經(jīng)常使用(以下稱為MRU)信息,而底部寄存器一般包含了LRU信息,或者相反。所述寄存器棧一般是下推或上推棧,根據(jù)高速緩存中有無“命中”,棧頂部或底部的信息將在寄存器中向上或向下移動?!懊衕it”表示所述高速緩存包含了所需信息。當一個“命中”發(fā)生在高速緩存中時,包含有所需信息的路或入口地址被放入MRU寄存器,而所有其它最近使用路或入口地址將被向下或向上朝棧的末端LRU推入。在這種方法中,路或入口地址被再次排序并在所述寄存器棧中的任何路地址單元表示它對于其它路或入口地址的相對最近程度。為進一步詳細地了解LRU替換的機制,請見Matick,Richard E.,計算機存儲系統(tǒng)和技術(John Wily & Sons 1977)第591-597頁。因此,當在高速緩存中替換數(shù)據(jù)時,通過保持路或入口使用信息,真正的最近最少使用地址將被選擇。
使用LRU和MRU關聯(lián)排序計算的高速緩存還必需能夠處理無效數(shù)據(jù)。高速緩存信息當它已經(jīng)在存儲器的某些區(qū)域,而不是在其它區(qū)域中被修改后,將變?yōu)闊o效,停滯或舊的數(shù)據(jù),例如,在多處理器系統(tǒng)中,最初被存儲在主存儲器中的信息可能被其它的存儲器修改,在這種情況下,被存儲在另外的高速緩存中的信息將不再是當前信息,因為它不再是當前信息,所以所述數(shù)據(jù)被稱為舊的,停滯的或無效的數(shù)據(jù)。為了檢測這種情況,許多存儲器系統(tǒng)啟動所謂窺探周期。窺探周期在系統(tǒng)存儲器,象高速緩存中查找非當前信息,并且告訴存儲設備這個信息不再是當前的并且不應該再被使用。然而,這將在高速緩存中產(chǎn)生一個無效的入口,因為所述入口對于處理器來說將是不可用的。因為這個信息對于處理來說不再可用,因此高速緩存將被剝奪一個可用的存儲單元,直到所述無效入口作為一個可替換的地址被移出LRU替換電路為止。這將需要幾個周期。另外,在高速緩存中無效入口數(shù)目越大,處理器中的高速緩存越少,因此產(chǎn)生“命中”的高速緩存更少。最終結果是,當無效的地址信息沒有盡可能快地轉(zhuǎn)換成為可替換的地址時,高速緩存是低效率的。因此,需要高速緩存能夠處理這種非當前的,停滯的或無效的數(shù)據(jù)。
根據(jù)本發(fā)明,為提高利用最近最少使用替換程序的多路高速緩存系統(tǒng)的性能和效率而提供一種方法和電路。本發(fā)明也提供一種在計算機系統(tǒng)中執(zhí)行最近最少使用替換機制的方法。計算機系統(tǒng)包括一個地址內(nèi)容可編址存儲器和一個寄存器棧,所述寄存器棧至少含有N個最近經(jīng)常使用入口存儲器;N+1個次最近經(jīng)常使用入口寄存器;和N+Z最近最少使用入口寄存器,其中N是任意一個等于或大于0的整數(shù),Z是任意一個等于或大于2的整數(shù)。每一個寄存器包括含有可以代表入口地址的二進制數(shù)的內(nèi)容。執(zhí)行最近最少使用替換機制的方法包括下面的步驟確定在地址內(nèi)容可編址存儲器中高速緩存的訪問是否被完成;如果比較操作指示在地址內(nèi)容可編址存儲器中的肯定匹配時,則產(chǎn)生新的入口地址;將新的入口地址傳送到寄存器棧的若干入口地址比較器中;將新的入口地址與被存儲在寄存器棧中、除了MRU或N寄存器的每一寄存器的入口地址相比較;識別出包含入口地址的寄存器棧中唯一的N+M寄存器,其中M的范圍是從1到Z,并且將寄存器N到N+M-1的內(nèi)容移到寄存器N+1至N+M中,而將新的入口地址移到N或MRU寄存器中。另外,所述方法規(guī)定確定地址內(nèi)容可編址存儲器中高速緩存的訪問操作是否被完成的的步驟還包括確定地址內(nèi)容可編址存儲器中比較操作或?qū)懙刂凡僮魇欠癖煌瓿傻牟襟E。
本發(fā)明同時提供一種方法,所述方法禁止多路高速緩存系統(tǒng)在窺探比較操作期間由窺探周期所引起的LRU寄存器棧更新。所述系統(tǒng)包括地址內(nèi)容可編址存儲器;動態(tài)入口地址總線;LRU寄存器棧和??刂七壿嫞⑶移渲械谝患拇嫫鳁V辽侔ㄓ脕泶鎯θ肟诘刂返腘和接著的N+1入口寄存器,其中N是等于或大于0的任意整數(shù),并且其中N和接著的N+1入口寄存器包含入口地址。禁止窺探操作期間由窺探周期所引起的LRU寄存器棧更新的方法包括下面的步驟檢測地址內(nèi)容可編址存儲器中高速緩存的訪問操作;檢測地址內(nèi)容可編址存儲器中的窺探周期;以及產(chǎn)生響應地址內(nèi)容可編址存儲器中高速緩存操作被執(zhí)行以及地址內(nèi)容可編址存儲器中窺探周期被執(zhí)行的禁止信號。另外,產(chǎn)生禁止信號的步驟包括檢測地址內(nèi)容可編址存儲器中地址比較操作或檢測地址內(nèi)容可編址存儲器中寫地址操作的步驟。
本發(fā)明同時提供在利用最近最少使用替換機制的高速緩存系統(tǒng)中處理無效數(shù)據(jù)的系統(tǒng)和方法。在多路高速緩存系統(tǒng)中實現(xiàn)所述方法,所述多路高速緩存系統(tǒng)包括地址可編址存儲器,動態(tài)入口地址總線,第一寄存器棧,第二寄存器棧,??刂七壿?,計數(shù)器,與第一寄存器棧和第二寄存器棧通信連接的多路轉(zhuǎn)換器,和LRU輸出。第一寄存器棧至少包括N和N+1入口寄存器,用來存儲入口地址,其中,N是等于或大于0的任意整數(shù),并且其中N和接著的N+1入口寄存器包含入口地址。第二寄存器棧至少包括M無效入口寄存器,用來存儲無效入口地址,其中M是等于或大于0的任意整數(shù),和M至1的輸入/輸出多路轉(zhuǎn)換器,所述轉(zhuǎn)換器將計數(shù)值譯碼并且將動態(tài)入口地址總線引入M寄存器的輸入端中的一個,并將M寄存器的輸出端中的一個引入所述棧輸出端。在多路高速緩存中執(zhí)行最近最少使用替換算法的寄存器棧,處理無效入口或路地址的方法包括下面的步驟在??刂七壿嬰娐分袡z測地址無效操作;輸出對應于動態(tài)真和輔助入口地址總線上的系統(tǒng)地址的入口地址;輸出從??刂七壿嬰娐穪淼臒o效入口地址信號;通過多路轉(zhuǎn)換器將入口地址放入M寄存器作為計數(shù)值函數(shù);識別第二寄存器棧包括至少一個入口地址;以及把計數(shù)器增量,以指示被存儲在第二寄存器棧的入口地址數(shù)量。另外所述方法還包括在第一寄存器棧中禁止更新操作的步驟,以及通過M至1多路轉(zhuǎn)換器將M寄存器的輸出作為計數(shù)值的函數(shù),并將這個入口地址作為LRU信息輸出。第二寄存器棧還包括至少一個M+1無效入口寄存器。每次來自第二寄存器的無效入口都被用來存儲新的數(shù)據(jù),所述計數(shù)器被減一,并且所述無效入口地址被從第二寄存器中刪除。而且,所述識別第二寄存器包括至少一個入口地址的步驟包括設定標志的步驟,以指示在第二寄存器棧中至少存在一個入口地址,或換句話說,包括檢查計數(shù)值的步驟,以確定它是否大于預定的值,例如零。
在??刂七壿嬰娐分袡z測地址無效操作的步驟包括下面的步驟檢測寫地址操作,檢測窺探周期。換句話說,在??刂七壿嬰娐分袡z測地址無效操作的步驟可以包括下面的步驟檢測寫地址操作和檢測有效位狀態(tài)信息。
另外,檢測窺探周期的步驟包括以下步驟檢測高速緩存數(shù)據(jù)輸出控制,以確定在地址內(nèi)容可編址存儲器中檢測比較操作時,高速緩存數(shù)據(jù)輸出是否被啟動。根據(jù)本發(fā)明,在高速緩存數(shù)據(jù)輸出被禁止的情況下的比較操作被認為是一種窺探操作。作為一種選擇,可以提供分離的窺探輸入以表示執(zhí)行窺探操作。
本發(fā)明還提供一種對于多路高速緩存系統(tǒng),利用最近最少使用替換機制的高速緩存系統(tǒng)中處理無效入口和路地址的方法。所述系統(tǒng)包括地址內(nèi)容可編址存儲器,動態(tài)入口地址總線,第一寄存器棧,第二寄存器棧,??刂七壿嬰娐?,計數(shù)器,與第一寄存器棧和第二寄存器棧通信連接的多路轉(zhuǎn)換器。第一寄存器棧至少包括N和接著的N+1入口寄存器,用來存儲入口地址,其中N是等于或大于0的任意整數(shù),其中N和接著的N+1入口寄存器包含有入口地址。第二寄存器棧包括至少一個M無效入口寄存器,用來存儲無效入口地址,其中M是等于或大于0的任意整數(shù)。在多路高速緩存中執(zhí)行最近最少使用替換算法的寄存器棧,處理無效入口或路地址的方法包括下面的步驟使被存儲在地址內(nèi)容可編址存儲器中的系統(tǒng)地址無效;將來自地址內(nèi)容可編址存儲器的無效入口地址輸出到動態(tài)入口地址總線;將來自動態(tài)入口地址總線的無效入口地址輸入到第二寄存器棧的M無效入口寄存器;設置一種標志,以指示第二寄存器棧包含至少一個入口地址;計數(shù)器加一,以指示被存儲在第二寄存器棧中的入口地址數(shù)目;將第一寄存器棧中的N入口寄存器中的地址信息移到接著的N+1入口寄存器中;當所述無效入口被用來存儲新的信息時,在第一寄存器棧的N入口寄存器中存儲后繼入口地址。
所述方法還包括下面的步驟輸出存儲在第二寄存器棧的入口地址信息;當所述無效入口被用來存儲新的信息時,將計數(shù)器減一,以指示保留在第二寄存器棧中的無效入口地址的數(shù)目。而且,使經(jīng)過窺探周期存儲在地址內(nèi)容可編址存儲器中的系統(tǒng)地址無效的步驟包括檢測寫地址操作和檢測無效位狀態(tài)信息的步驟。
按照上述方法,本發(fā)明還提供一種高速緩存的最近最少使用替換結構。所述結構包括N-路可編址存儲器,用來保持系統(tǒng)地址和路地址的一致;與N路地址內(nèi)容可編址存儲器通信連接的N路數(shù)據(jù)陣列,用來存儲數(shù)據(jù);和N入口寄存器棧,用來存儲入口地址,其中N路寄存器棧至少包括第一寄存器、中間寄存器和最后寄存器。每一寄存器包括若干位,其中若干位包含有與存儲在地址內(nèi)容可編址存儲器中的每一二進制入口地址相關的位數(shù)量。中間和最后寄存器還包括比較器,比較存儲在入口地址中的新的入口地址。第一寄存器還包括最近經(jīng)常使用入口的地址。中間寄存器還包含下一個最近經(jīng)常使用入口的地址,最后寄存器包含一個最近最少使用入口的地址。
所述結構還包含存儲最近經(jīng)常使用入口地址的第二寄存器,以及若干含有N個編碼器的入口地址編碼器。每一編碼器包括與ACAM通信的電路輸入端,用來接收來自ACAM的路選擇信號;和與入口地址總線通信的電路輸出端,用來輸出入口地址信息。所述結構還包括與地址內(nèi)容可編址存儲器通信連接的入口地址寫編碼器電路;以及包括若干位輸入電路,所述電路在寫操作期間,將被輸入的入口地址驅(qū)動到雙動態(tài)真和補入口地址總線上。
所述結構還包括寄存器??刂七壿嬰娐罚脕砜刂芅入口寄存器棧并且與N入口寄存器棧通信連接;以及預充電電路。字線““或非”NOR”電路也與ACAM通信連接,所述電路用來指示數(shù)據(jù)陣列是否包含給定的信息資料。字線“或非”電路包括與若干來自ACAM字線輸出端通信連接的若干字線輸入端。
寄存器棧反饋電路也被包含并與寄存器??刂七壿嬰娐泛蚇入口寄存器棧通信連接,所述電路是用來將在N入口寄存器棧中執(zhí)行的比較操作的進展反饋到寄存器??刂七壿嬰娐?。所述寄存器棧反饋電路包括真和補入口位輸入電路;棧反饋輸出電路和與棧反饋輸出電路通信連接的復位電路,所述棧反饋輸出電路包括若干個用來提供驅(qū)動和適當?shù)碾娐费舆t的反相門。
在所述結構中還包括若干自定時入口地址反相驅(qū)動器電路,所述電路與入口地址編碼器和N入口寄存器棧通信連接,所述電路用來產(chǎn)生自定時RTZ真并將補入口地址送上RTZ真入口地址總線;以及RTZ補入口地址總線。每一個自定時反相動態(tài)入口地址反相器電路包括用來輸入入口地址的RTZ入口地址位電路;用來輸出RTZ入口地址位的輸出端;以及自定時復位輸入端,用來隨著從RTZ真和補入口地址總線采樣的一對RTZ真/補地址位而將所述輸出端復位。
所述結構還包括入口地址總線,用來將回零入口地址傳輸?shù)絅入口寄存器棧,所述入口地址總線與入口地址驅(qū)動器以及N入口寄存器棧通信連接。
本發(fā)明還提供一種高速緩存設備,用來在最近最少使用的替換算法中處理無效的入口或路數(shù)據(jù)。高速緩存設備包括用來存儲地址信息的第一寄存器棧,后者至少含有N和接著的N+1寄存器,其中N是等于或大于0的任意整數(shù)。第一寄存器還包括位寄存器,它具有用來存儲真和補入口地址位的第一鎖存電路;以及與第一鎖存電路通信連接的第二鎖存電路,用來存儲真和補入口地址位,其中第二鎖存電路包括輸入端和輸出端;以及比較電路,用來把第二鎖存電路輸出和在RTZ(返回到零)真和補入口地址總線上的真和補入口地址位相比較。
所述高速緩存設備包括每路或入口的動態(tài)入口地址編碼器,用來對真和補入口地址總線上的選擇入口地址編碼。每一動態(tài)入口地址編碼器包括放電電路,用來將預充電的唯一地址總線線路組合放電,其中放電電路包括字線或路輸入端。字線或路輸入端用來接收字線或路選擇信號。一般來說,路選擇信號是任意字線信號或任意表示數(shù)據(jù)陣列中路或入口啟動的其它信號。另外,高速緩存設備還包括動態(tài)入口寫地址編碼器電路,所述電路包含若干個入口地址位輸入端,并且所述電路連接到地址內(nèi)容可編址存儲器和雙動態(tài)真和補入口地址總線。
所述高速緩存設備還包括若干自定時反相動態(tài)入口地址反相驅(qū)動器電路,所述電路用來在RTZ真入口地址總線上產(chǎn)生自定時RTZ真和補入口地址;以及RTZ補入口地址總線。由于某些電路可能使用補輸入和其它真輸入,所以,雙補信號(即,真和補)通過使輸入邏輯檢測反相來啟動反相地址驅(qū)動器以提供邏輯上正確的輸出。補輸入產(chǎn)生真輸出以及真輸入產(chǎn)生補輸出。自定時反相動態(tài)入口地址反相器電路包括輸入入口地址的入口地址位電路;輸出RTZ入口地址位的輸出端;和自定時復位輸入,用來隨著從RTZ真和補入口地址總線采樣的一對RTZ真/補地址位而使輸出端復位。所述高速緩存設備中還包括與動態(tài)入口地址編碼器通信連接的動態(tài)入口地址總線;預充電電路和自定時反相動態(tài)入口地址反相器電路、用來發(fā)送真和補入口地址。RTZ真/補入口地址總線將自定時反相動態(tài)入口地址反相器電路連接到LRU寄存器棧。
自定時第一寄存器棧反饋電路也包含在高速緩存系統(tǒng)和與RTZ真/補入口地址總線通信連接的電路中,并用來測量第一寄存器棧比較操作的進程。自定時第一寄存器棧反饋電路包括RTZ真和補入口位輸入電路;棧反饋輸出電路;以及與棧反饋輸出電路通信連接的復位電路,并且包含若干個提供驅(qū)動和適當電路延遲的反相器門。
高速緩存設備還包括與自定時寄存器棧反饋電路通信連接的棧控制邏輯;動態(tài)入口地址編碼器;第一寄存器棧和預充電電路,并且所述高速緩存設備還用來控制第一寄存器棧的輸入和輸出。??刂七壿嫲8码娐?,所述電路包括用來禁止第一寄存器棧更新操作的禁止更新邏輯;和產(chǎn)生無效入口地址狀態(tài)信號的無效入口地址狀態(tài)電路。所述棧更新電路包括比較入口地址操作輸入電路,用來檢測比較入口地址狀態(tài)信號的狀態(tài);窺探操作輸入電路,用來檢測窺探操作狀態(tài)信號的狀態(tài);寫地址操作輸入電路,用來檢測寫地址信號的狀態(tài);以及棧更新輸出端,用來產(chǎn)生棧更新輸出信號。在某種情況下不產(chǎn)生棧更新信號,以便禁止第一寄存器棧的更新。棧控制邏輯還包括無效入口地址狀態(tài)輸出端,用來產(chǎn)生無效入口地址狀態(tài)信號。所述無效入口地址狀態(tài)電路包括無效位狀態(tài)輸入電路,用來輸入入口地址無效狀態(tài)位的狀態(tài);和無效入口地址狀態(tài)輸出電路,用來產(chǎn)生無效地址狀態(tài)信號。另外,還可以直接提供一種窺探輸入電路,用來檢測地址內(nèi)容地址存儲器中存在窺探操作。
高速緩存設備還包括一個與棧控制邏輯電路和自定時反相動態(tài)入口地址反相器驅(qū)動器電路通信連接的MRU輸出寄存器,用來存儲最近經(jīng)常使用(MRU)的入口地址。MRU輸出寄存器包括真入口地址位輸入電路,用來接收真入口地址位;補入口地址位輸入電路,用來輸入補入口地址位;MRU入口位輸出,用來輸出MRU入口位;復位電路,用來將MRU入口位輸出端復位。在窺探SNOOP地址比較操作期間,MRU輸出寄存器還為高速控制邏輯提供入口地址信息。即使第一寄存器棧更新被禁止時也可得到所述信息,并且還為進線后續(xù)地址無效操作提供入口地址。所述復位電路包括復位低電路,用來將MRU入口位復位到邏輯低電位,以及復位高電路,用來將MRU入口位復位到邏輯高電位。
尤其重要的是,所述高速緩存設備還包含第二寄存器棧,用來存儲與反相動態(tài)入口地址反相驅(qū)動電路通信連接的地址信息。第二寄存器至少包括M寄存器,其中M是等于或大于0的整數(shù),而M寄存器包括位寄存器電路,用來存儲入口地址位。位寄存器電路包括輸入端和輸出端。
高速緩存設備還包括與??刂七壿嬐ㄐ胚B接的計數(shù)控制器電路;LRU輸出多路轉(zhuǎn)換器,用來控制LRU輸出;和計數(shù)器電路,用來對存儲在第二寄存器中的入口地址數(shù)目進線計數(shù)。
本發(fā)明的優(yōu)點在于提供了處理無效信息的方法,在最近最少使用替換機制中,通過提供第二寄存器棧無效信息將被替換,并移出高速緩存電路。
本發(fā)明的另外的優(yōu)點在于提供了處理處理無效信息的方法和結構,所述方法在最近最少使用替換機制中,不需要改變最近最少使用寄存器棧。
本發(fā)明另外的優(yōu)點在于提供了在多路高速緩存芯片中完成有效LRU替換機制的方法和結構。
因此,本發(fā)明的方法和裝置提供了一種方法和結構,在全關聯(lián)多路高速緩存中通過保留真LRU替換流程,以及通過減少和/或消除LRU寄存器棧中的無效信息,保持整個LRU棧的性能和功能,因此改進高速緩存的性能。
在引入的并構成本說明書的一部分的附圖中,舉例說明了本發(fā)明的實施例,這些附圖與上面給出的對本發(fā)明的一般描述以及下面將要給出對本發(fā)明詳細描述一起將用來舉例說明本發(fā)明的原理。
圖1是說明本發(fā)明的高速緩存系統(tǒng)的各個組成部分以及它們之間相互連接的方框圖。
圖2A是使用雙補地址總線結構的LRU替換機制的方框圖。
圖2B是使用第一和第二寄存器棧的LRU替換機制的第二實施例的方框圖。
圖3A是說明為產(chǎn)生雙動態(tài)真/補地址總線的入口地址編碼電路的電路圖。
圖4A和4B是返回到零真/補自定時反相電路的另一實施例的電路圖。
圖5是說明棧反饋電路的電路圖。
圖6是說明在第一寄存器棧中存儲入口地址信息位的存儲器電路的電路圖。
圖7是說明第一寄存器棧的某些組成部分的方框圖。
圖8A是說明第二時鐘產(chǎn)生電路的電路圖。
圖8B是說明具有窺探功能輸入的第二時鐘產(chǎn)生電路的電路圖。
圖9是顯示地址信號位的第二MRU寄存器電路的電路圖。
圖10A和10B是說明LRU棧更新電路的電路圖,所述電路含有在窺探周期期間,禁止LRU棧更新的邏輯。
圖10C是說明圖10A和圖10B所示電路的另一實施例的電路圖。
圖11A和11B是說明產(chǎn)生無效入口狀態(tài)或標志信號電路的電路圖。
圖11C是圖11A和11B所示產(chǎn)生無效入口狀態(tài)或標志信號電路的另一實施例。
圖12顯示本發(fā)明的遞增和遞減控制電路的電路圖。
本發(fā)明涉及含有32路的高速緩存。每一“路”被編碼成為32個入口地址(或路地址)中的一個。一般來說,入口地址被存儲在LRU棧中。當一個新的數(shù)據(jù)資料被放入高速緩存時,它被指定到一個入口(或路),LRU表示所述入口(或路)為最近最少使用入口或路(即,LRU棧的LRU輸出),蓋寫事先存儲在同一入口(或路)中的舊數(shù)據(jù)。
(存儲在高速緩存的數(shù)據(jù)部分中的)數(shù)據(jù)資料的系統(tǒng)地址被存儲在CAM(內(nèi)容可編址存儲器)地址中。地址CAM(ACAM)保留系統(tǒng)地址和入口地址之間對應關系。當數(shù)據(jù)被放入數(shù)據(jù)高速緩存入口中時,在ACAM中的對應的入口單元被系統(tǒng)地址更新,使得編址的入口與系統(tǒng)地址之間的關系被保留在ACAM中。
一般來說,被應用的數(shù)據(jù)資料的大小最多可以達到4倍的L1數(shù)據(jù)線(即,256字節(jié)),它等于總共32個入口(或路)的整個4KB數(shù)據(jù)存儲量。由于它被用作L1線緩沖區(qū),所以我們的高速緩存被作成大約為L1線的大小。
當高速緩存被查詢它是否保留有系統(tǒng)所需要的數(shù)據(jù)時,系統(tǒng)地址被提交給ACAM,并且傳播到所有32個被存儲的系統(tǒng)地址,用來進線比較操作。如果任何一個入口與被提交的系統(tǒng)地址相匹配,如果數(shù)據(jù)高速緩存的輸出被啟動,則在相應數(shù)據(jù)高速緩存入口中的數(shù)據(jù)將被交給系統(tǒng)。然而,利用執(zhí)行查詢,無需啟動數(shù)據(jù)高速緩存輸出,ACAM的查詢可以被執(zhí)行用來尋找出系統(tǒng)地址是否駐留在ACAM中的某處。這種操作被稱為窺探(SNOOP)。
另外,系統(tǒng)可以通知高速緩存,它正執(zhí)行將專用的窺探(SNOOP)輸入到高速緩存的窺探周期,而且,窺探操作也可以被執(zhí)行來查詢存儲器設備,以確定它們是否保留有無效數(shù)據(jù)。表1所說明的是各種輸入信號和它們的源,這些源將在下面對本發(fā)明的詳細描述中被提到?,F(xiàn)在將要被說明的是本發(fā)明結構的特點,以及在多路高速緩存中執(zhí)行真LRU替換算法的寄存器棧中處理無效入口或路地址的方法。
ACAM104起全關聯(lián)高速緩存標記(cache-tag)結構的作用,含有每個27位的32個標記(32tags)。在比較操作中,25位地址相應地與所有ACAM104入口和兩個狀態(tài)位進線比較,以檢查其有效性。ACAM104中的“命中”將啟動位于ACAM104中字線驅(qū)動器電路的時鐘。在“命中”期間,入口地址值通過動態(tài)入口地址編碼器102進線編碼。動態(tài)入口地址編碼器102將入口地址值(即,地址)經(jīng)過雙動態(tài)T/C入口地址總線116傳送到RTZ T/C入口反相驅(qū)動器電路112中。然而,在寫地址期間,ACAM104將所述地址經(jīng)過寫地址總線121傳送到入口地址編碼器123中,所述編碼器包括單地址位輸入并且由此在總線125上產(chǎn)生雙動態(tài)入口地址。
RTZ T/C入口反相驅(qū)動器112產(chǎn)生真和補入口地址,所述地址經(jīng)過RTZ T/C入口地址比較總線118被送到32位寄存器LRU棧110中。RTZ T/C入口地址比較總線118將被編碼的RTZ T/C入口地址經(jīng)RTZT/C入口地址驅(qū)動器112中含有的快速,自定時電路提供給LRU棧。已編碼的RTZ T/C入口地址被用來更新MRU寄存器并將入口新地址傳播給32位寄存器LRU棧110的所有寄存器棧比較器。所述寄存比較器確定先前駐留在32位寄存LRU棧中的當前命中入口位置,并產(chǎn)生移位脈沖將在棧中所有更加近期入口下移一個寄存器位置。字線NOR電路106確定給出的對ACAM104的訪問是“命中”還是在高速緩存輸出信號要命中之前“錯過”。“命中”或“錯過”都將經(jīng)過字線NOR輸出信號128報告給LRU棧控制邏輯114。
現(xiàn)在參考圖2A,圖中舉例說明用于改進棧操作的雙補地址總線結構的本發(fā)明的一個實施例。圖2A所示的實施例應用了整個圖1的系統(tǒng)結構,而圖2A集中說明所述實施例的特殊性。具體地說,所述結構包括??刂七壿?14,棧反饋電路202,寄存器LRU棧110,復位啟動電路203,RTZ反相/驅(qū)動電路112和112A,以及入口地址編碼器102和123。所述??刂七壿?14經(jīng)過控制總線115與寄存器棧212及復位驅(qū)動電路203通信連接,并負責控制棧操作,如裝載,移位和入口地址比較。??刂七壿?14還包括總線113真和補入口地址位時總線輸入,用來經(jīng)過時序總線119控制預充電電路117的時序。RTZ反相/驅(qū)動電路112和112A經(jīng)過RTZ真和補(T/C)入口地址總線220和218與寄存器棧212通信連接,并且它還經(jīng)過真和補入口地址總線205A和205B(在圖1中集中地顯示為總線116)與入口地址編碼器102通信連接。RTZ反相/驅(qū)動電路112和112A也與入口地址編碼器123通信連接,所述電路含有經(jīng)過總線201A和201B(在圖1中集中地顯示為總線125)的獨立的入口地址位輸入端。棧反饋電路與寄存器棧212、復位啟動電路203以及??刂七壿?14通信連接,并負責測量棧操作的進度。入口地址編碼器102和123還通過字線總線122(如圖2A中,被顯示為“WORDLINE
”)和T/C入口地址輸入端(如圖1中的總線121所示)與ACAM104通信連接(如圖1所示)。
寄存器棧212包括32個排列在棧結構中的寄存器,每一寄存器為5位寬。頂部寄存器,即REG.0,保持MRU入口。底部寄存器,即REG.31,保持LRU入口。第一寄存器棧212包括一種棧結構,所述棧結構支持在寄存器之間的移位操作。例如,REG.0的內(nèi)容可以被移位到REG.1中,并且REG.1的內(nèi)容可以被移位到REG.2中等等。
RTZ反相/驅(qū)動電路112和112A如圖4A和4B所示,并將在與所述圖相關的正文中進線討論。類似地,對于如圖3A所示的入口地址編碼器102中入口地址編碼器的詳細的討論,以及對于如圖3B所示的具有獨立輸入的入口地址編碼器123,如圖5所示的棧反饋電路202,如圖6和圖7所示的32個LRU寄存器棧110的討論也將在與這些附圖相關的正文中進線。雖然現(xiàn)在的討論不需要對上述電路進線討論,但是讀者可以隨意地參考適當?shù)膱D例和正文。因此,現(xiàn)在的討論將集中在對于目前實施例的操作上。
簡單地回顧一下,本發(fā)明的LRU替換機制將入口地址和入口地址所使用的信息從上到下或從下到上地存儲在寄存器棧中。一般地頂部寄存器含有MRU信息,底部寄存器含有LRU信息。一般地寄存器棧使用在寄存器棧頂部存儲MRU信息并最終將其下推到寄存器棧,或LRU寄存器的最底部的下推式結構。因此,通過保持MRU信息和移出LRU信息,在高速緩存中出現(xiàn)“命中”的可能性更大,因為在多次讀操作之后,并且已經(jīng)多次被訪問的信息(即,地址)趨于保持在高速緩存中的當前單元,被存儲在高速緩存中的新的信息將被置于沒有被請求的單元(即,入口)中。
現(xiàn)在參考圖1和圖2B,在ACAM102中,當進線“比較”操作或“寫地址”操作時,本實施例被觸發(fā)。如果“比較”操作導致ACAM102中的“命中”,則在入口地址編碼器102中的入口地址編碼器將產(chǎn)生被驅(qū)動到真/補入口地址總線205A和205B上的入口地址。所述入口地址是代表被激活的入口字線的地址的二進制數(shù)。新近產(chǎn)生的入口地址被傳送到RTZ反相/驅(qū)動電路112和112A,后者又將所述入口地址傳送到32個寄存器LRU棧110中。
然后所述入口地址被裝入最近經(jīng)常使用(MRU)寄存器(REG.0)中。寄存器棧212的其它每一個寄存器(REG.1到REG.31)包括比較電路(圖2A中沒有顯示),所述比較器將入口寄存器的內(nèi)容與RTZ入口地址總線218和220上出現(xiàn)的入口地址相比較。如果任何入口寄存器(REG.1到REG.0)所含有的入口地址與RTZ T/C入口地址總線220和218上的相同,即表示一個匹配條件,則寄存器單元被確認匹配信號所標識,以表明所述寄存器作為一個匹配入口寄存器。
一旦匹配入口寄存器被識別,更近入口寄存器的內(nèi)容將被向下移動到匹配寄存器中,最終用下一個最近經(jīng)常使用的入口寄存器內(nèi)容蓋寫匹配寄存器內(nèi)容。例如,如果REG.5被識別為匹配寄存器(即,含有的入口地址與RTZ入口地址總線218和220上所呈現(xiàn)的入口地址相同),與REG.5相匹配的入口地址被放入REG.0中,寄存器REG.1到REG.4的內(nèi)容將被移動,使得REG.0先前的內(nèi)容被存儲在REG.1中,REG.2的內(nèi)容被存儲在REG.3中,…等等,直到REG.4的內(nèi)容被存儲在匹配入口寄存器REG.5中,用這種方法,棧中所有寄存器的更新將在一個單一移位操作中完成,所述操作將同時在棧中的所有更近寄存器中進線。
因為新的LRU地址計算將通過入口地址比較操作產(chǎn)生,所述比較操作是在進行同時發(fā)生于所有更近棧寄存器中的移位操作之后同時在棧中所有比MRU寄存器次近的寄存器中進行的,所以,LRU地址計算時間不隨路數(shù)或入口數(shù)目的增加呈幾何式的增加,而使用非關聯(lián)方法經(jīng)驗電路計數(shù)和延遲將隨著高速緩存中的路數(shù)或入口數(shù)目的增加而呈現(xiàn)幾何式的增長。使用關聯(lián)序列的LRU地址計算為高速緩存和其它具有大量路數(shù)和入口的存儲系統(tǒng)提供一種更快更有效的計算方法。
無效數(shù)據(jù)處理LRU替代機制現(xiàn)在參考圖2B,該圖是使用如圖所示第一寄存器棧212和第二寄存器棧210的LRU替換機制的第二實施例的方框圖。第一寄存器棧包括32個安排在棧結構中的寄存器,每一寄存器5位寬。頂部寄存器REG.0是MRU入口。底部寄存器REG.31是LRU入口。第一寄存器棧212含有支持在寄存器間移位操作的棧結構。例如,REG.0的內(nèi)容可以被移動到REG.1中,并且REG.1的內(nèi)容可以被移動到REG.2中,等等。
第二寄存器棧210含有N個寄存器,這里N可以是任何從0到第一寄存器棧212的大小的整數(shù)。在被說明的實施例中,第一寄存器棧212包括32個寄存器。因此,第二寄存器210可以最多含有32個寄存器。然而,為了舉例的目的,現(xiàn)假設第二寄存器棧210含有4個寄存器(即,N=4)。第二寄存器棧210還包括寄存器I/O多路轉(zhuǎn)換器242,它的操作將在下面進一步詳細地描述。
仍然參考圖2B,LRU替換機制還使用LRU棧控制邏輯114,棧反饋電路202,計數(shù)控制器204,無效入口地址計數(shù)器206,編碼器208,第二MRU寄存器214和LRU輸出多路轉(zhuǎn)換器216。RTZ T/C入口驅(qū)動器112(如圖1所示)驅(qū)動RTZ真入口地址比較地址總線218和RTZ補入口地址比較總線220,以下集中稱為RTZ真和補入口地址總線218和220。RTZ入口地址總線218和220將真和補入口地址輸入到第一寄存器棧212的每一個寄存器、寄存器I/O多路轉(zhuǎn)換器242、第二MRU寄存器214,和棧反饋電路202中。
LRU??刂七壿?14將第一時鐘222和第二時鐘224提供到第一寄存器棧212中。LRU棧控制邏輯114也將MRU寄存器控制器226提供給第二MRU寄存器214。LRU棧控制邏輯114同時將無效入口地址狀態(tài)信號228提供給計數(shù)控制器204。
計數(shù)控制器204具有作為輸出信號的加一信號230和減一信號232,這兩個信號被饋入無效入口地址計數(shù)器206。計數(shù)控制器204還含有控制輸出信號234,它被饋入LRU輸出多路轉(zhuǎn)換器216。無效入口地址計數(shù)器206具有計數(shù)器輸出總線236,所述總線被饋入編碼器208,并被反饋到計數(shù)控制器204。編碼器208將由計數(shù)輸出總線236所提供的計數(shù)值編碼成為多路轉(zhuǎn)換器選擇信號,所述信號經(jīng)過譯碼器輸出總線240被饋入到寄存器I/O多路轉(zhuǎn)換器242中。
回顧一下,本發(fā)明的LRU替換機制將入口地址和入口地址使用信息從上到下,或從下到上存儲在寄存器棧中。頂部寄存器一般含有MRU信息,底部寄存器一般含有LRU信息。一般地寄存器棧使用在寄存器棧頂部存儲MRU信息并最終將其下推到寄存器棧,或LRU寄存器最底部的下推式結構。因此,通過保持MRU信息和移出LRU信息,在高速緩存中出現(xiàn)“命中”的可能性更大,因為在多次讀操作之后,并且已經(jīng)多次被訪問的信息(即,地址)趨于保持在高速緩存中的當前單元,被存儲在高速緩存中的新的信息將被置于沒有被請求的單元(即,入口)中。
然而,寄存器??梢院幸呀?jīng)無效的,不再表示“使用”信息的入口地址(即,無效信息)?;仡櫼幌拢斝畔⒁呀?jīng)在存儲器的某些區(qū)域上被更改而在另外的區(qū)域上沒有被更改時,高速緩存中的信息變成呆滯的,老的或無效的信息。因此,產(chǎn)生窺探操作使呆滯的,老的或無效的數(shù)據(jù)無效,這些數(shù)據(jù)可以駐留在其他系統(tǒng)存儲器中,如在高速緩存中。由于在高速緩存(和寄存器棧)中的信息現(xiàn)在已成為無效的數(shù)據(jù)并占據(jù)寄存器棧中的一個入口,所以現(xiàn)在寄存器棧包含大家所熟知的“氣泡bubble”。“氣泡bubble”是一種寄存器入口,所述入口由于含有無效信息所以對于高速緩存來說,它已不再可用了。因此,實際上,32個入口寄存器棧將成為31個寄存器棧,直到所述無效入口經(jīng)過LRU入口退出所述棧為止。
因此,由于寄存器中無效入口的數(shù)目越來越大,所以使得寄存器棧越來越小。
在系統(tǒng)通電并復位時,高速緩存以及LRU邏輯必須被初始化。LRU替換機制的第一寄存器棧212在系統(tǒng)通電時沒有用于訪問的先前的入口地址,所以在初始化期間,寄存器棧從最近到最遠的入口地址是任意排列的。這保證了在所述棧中的所有寄存器保持唯一的入口地址。
參考圖1,2A和圖2B,在初始化時,ACAM104沒有有效地址,并且所有有效狀態(tài)位被初始化為無效狀態(tài)。由于在ACAM104中沒有有效地址,所以在ACAM104中的地址比較操作將在高速緩存中產(chǎn)生“錯過miss”。作為所述差錯的結果,被要求的數(shù)據(jù)將被放在數(shù)據(jù)陣列中,并且相應的系統(tǒng)地址將被放在將一個或多個有效狀態(tài)位設置成為有效狀態(tài)的ACAM104中。當將這些新的系統(tǒng)地址裝入ACAM104中時,相應的ACAM104入口地址將被作為新的MRU入口地址放在第一寄存器棧212的頂部。在ACAM104中同樣產(chǎn)生“錯過”的下一地址比較操作將導致另外一個被放置在第一寄存器棧212的MRU入口中的入口地址。駐留在MRU入口寄存器(REG.0)的先前的信息將被下推到下一個入口寄存器,即,REG.1。
然而,經(jīng)過一段時間之后或所述高速緩存被填滿之后,ACAM104中的地址比較操作也將產(chǎn)生“命中”。在這種情況下,所述“命中”表示所述高速緩存含有與現(xiàn)有系統(tǒng)地址對應的數(shù)據(jù)。隨著同時被放置在MRU入口或REG.0中,在寄存器棧12中對應的入口地址將由次最近寄存器的內(nèi)容所替換。例如,如果在寄存器棧212中對應的入口地址位于REG.10中,則所有駐留在REG.10之前的寄存器中的入口信息(即,REG.0到REG.9)將被移到下面的寄存器中,即,REG.0中的入口信息現(xiàn)在位于REG.1中,依此類推,直到REG.9中的入口信息被移入REG.10為止。RTZ T/C入口總線218和220將入口信息傳送到第一寄存器棧212的MRU入口中,這樣REG.10中的入口信息將被移到REG.0的MRU入口中。
如果完成窺探/比較操作并產(chǎn)生“命中”,則跟著將進線地址無效操作。當?shù)刂窡o效操作使得ACAM104中的入口無效時,將設置無效入口標志來指示當前的入口地址是無效的。同時,LRU??刂七壿?14禁止無效入口信息放入第一棧寄存器212的MRU入口寄存器和第一寄存器棧212的棧移動。經(jīng)過RTZ T/C入口總線220和218,無效入口地址將被寫入寄存器I/O多路轉(zhuǎn)換器242,并且LRU輸出多路轉(zhuǎn)換器216將直接從第二寄存器棧210輸出到LRU入口的輸出端。隨后,當新的信息被寫入高速緩存時,LRU入口輸出信號將指示新的入口信息將被寫入由LRU入口輸出信號所指出的入口中。通過這種方法,被放入高速緩存中的新信息將被寫入在保持有無效數(shù)據(jù)的入口之前已經(jīng)被無效了的入口中。
當新信息被寫入高速緩存時,??刂七壿?14將寫地址操作理解為在ACAM104中的一次“命中”,并且由當前LRU入口輸出給出接受新信息的相應的入口地址。當新信息被寫入高速緩存時,通過高速緩存控制器它將被指向?qū)诋斍癓RU入口輸出的高速緩存的入口,而高速緩存響應關聯(lián)寫地址操作,其響應的方法類似于在寫地址操作期間的一次“命中”。結果,由地址寫操作所新產(chǎn)生的入口地址同時與當前LRU入口輸出相一致,并且通過雙動態(tài)T/C入口地址總線,所述地址被輸送到第一寄存器棧212。然后,所述??刂七壿?14在第一寄存器棧212中進線比較和移位。因此,當關聯(lián)寫地址操作發(fā)生時,如果LRU入口輸出從第二寄存器棧210輸出一個無效的地址,則新信息將被寫入無效地址,并且無效地址計數(shù)器206減一,而第一寄存器棧212中進線的移位操作將用來在第一寄存器棧212中消除無效的入口地址。如果無效地址計數(shù)器206減到它的初始狀態(tài),則計數(shù)控制器邏輯114將LRU輸出多路轉(zhuǎn)換器216切換到第一寄存器棧212的輸出。用這種方法,在保留有無效入口地址的入口之前,所述無效入口地址被用來存儲新信息。例如,如果第二寄存器棧210含有與第一寄存器棧212中REG.10的內(nèi)容相同的地址,則新的系統(tǒng)地址和關聯(lián)數(shù)據(jù)將被寫入與第二寄存器棧210和第一寄存器棧212的REG.10所含有的入口地址相同的入口中。當新的系統(tǒng)地址被寫入ACAM104時,所述入口地址將被送到第一寄存器棧212。所述入口地址將被寫入第二MRU寄存器214,并且同時第一寄存器棧212的REG.0將與REG.1至REG.31的內(nèi)容相比較。因為這個入口地址與REG.10的內(nèi)容相匹配,所以REG.0到REG.9的內(nèi)容將被移到REG.1到REG.10,從而消除第一寄存器棧212中的“氣泡”。同時,計數(shù)控制器邏輯204將無效入口地址計數(shù)器206減一。如果第二寄存器棧210只含有一個無效入口,則所述無效入口地址計數(shù)器206將返回到它的初始計數(shù)值,所述計數(shù)值可以由計數(shù)控制器邏輯204進線譯碼,從而將無效入口地址標志復位。在這種情況下,控制信號234,或標志將被復位,從而使得LRU輸出多路轉(zhuǎn)換器216指向來自第一寄存器棧212的LRU入口輸出。
同時,每當一個入口地址被無效時,LRU??刂七壿?14將產(chǎn)生無效入口地址狀態(tài)信號228,所述信號被饋送到計數(shù)控制器204中。計數(shù)控制器204在每次第一寄存器棧212無效時,將產(chǎn)生加一信號232。無效入口地址計數(shù)器206一般地被初始化為零值,并且通過計數(shù)控制器204對每次無效操作加一。當計數(shù)值大于0時,計數(shù)控制器204將產(chǎn)生控制信號234,所述控制信號控制LRU輸出多路轉(zhuǎn)換器216的輸出。每當計數(shù)值大于0時,表示第二寄存器棧210在其寄存器中含有無效入口信息,控制信號234被激活。當控制信號234激活時,LRU輸出多路轉(zhuǎn)換器216經(jīng)過寄存器I/O多路轉(zhuǎn)換器242輸出第二寄存器210中的無效入口地址信息。寄存器I/O多路轉(zhuǎn)換器242從第二寄存器棧210中N寄存器中之一選擇輸出,其輸出由譯碼器208和無效入口地址計數(shù)器206確定。每次新數(shù)據(jù)被存儲在當前無效的高速緩存入口時,計數(shù)控制器204將產(chǎn)生減一信號,所述信號將無效入口地址計數(shù)器206減一。用這種方法,無效入口地址計數(shù)器206根據(jù)無效入口地址信息的放置從零值加一,并根據(jù)寫到無效入口地址中的新的數(shù)據(jù)減一。
圖12所說明的是用于計數(shù)控制器電路204的加一控制電路1200和減一控制電路1230。加一控制電路1200包括反相門1202-1210,PFET器件1212-1216,NFET器件1218-1222,和“或非”門1224。加一控制電路1200還包括無效INVALID輸入端和INC輸出端。無效INVALID輸入信號的上升沿將在INC輸出端產(chǎn)生邏輯高HI脈沖。反相門1204-1210,PFET器件212-1216和NFET器件1218-1222用來加入電路延遲功能,從而確定脈沖輸出的寬度。減一控制電路1230包括與非門NAND1232和反相門1233。每一時鐘脈沖輸入端AWECLK啟動“與非”門1232,并且如果當“與非”門1232被啟動時,輸入端計數(shù)控制器COUNTER COUNTROL是高HI電位,只要AWECLK和COUNTER COUNTROL都是高HI電位,則輸出DEC將為高HI電位。
無效入口地址計數(shù)器206計數(shù)值經(jīng)過計數(shù)器輸出總線236被反饋到計數(shù)控制器204。只要無效入口地址計數(shù)器206計數(shù)值大于0,則計數(shù)控制器204將保持控制信號234有效,以便使得LRU輸出多路轉(zhuǎn)換器216作為LRU入口信息繼續(xù)從第二寄存器棧210輸出無效入口地址。當無效入口地址計數(shù)器206計數(shù)值等于0時,計數(shù)控制器204將使控制信號234無效,表示第二寄存器棧210不含有任何無效入口地址。LRU輸出多路轉(zhuǎn)換器216則將從第一寄存器棧212的LRU入口寄存器輸出入口信息。
現(xiàn)在參考圖3A,該圖是舉例說明用來使雙動態(tài)真/補(T/C)地址總線放電的入口地址編碼器電路300的電路圖。所述電路包括NFET下拉器件304-312,所述器件隨著選擇的字線和器件304-312的漏極連接線的硬件編程而將適當?shù)娜肟诳偩€線路放電。例如,電路300表示#3字線的編程編碼。NFET下拉期間304到308具有連接到#3字線輸入端302的柵極,并且它們的源極接地。另外,NFET下拉器件304到308具有連接到入口地址真總線EA4T,EA3T和EA2T的漏極。NFET下拉器件310和312也將它們的柵極連接到#3字線的輸入端302,并且它們的源極接地。然而,NFET下拉器件310和312的漏極分別接到入口地址補總線EA1C和EA0C。因此,當#3字線輸入端302有效時,NFET下拉器件304到308將把入口地址真總線EA4T,EA3T和EA2T放電,而NFET下拉器件310到312將把入口地址補總線EA1C和EA0C放電。32根字線總線的每一根字線將被輸入到唯一的雙動態(tài)T/C入口地址編碼器中,所述編碼器與類似于電路300的、為特定的被選字線編程的放電電路通信連接。例如,對于本專業(yè)的技術人員來說是顯而易見的,#1字線的放電電路NFET下拉器件304到310的漏極連接到入口地址真總線EA4T-EA1T。具體地說,NFET下拉器件310的漏極連接到入口地址總線EA1T,而NFET下拉器件304到308和312的連接如圖3所示。具有預充電補動態(tài)總線的電路300的主要優(yōu)點是它具有提供不包括額外的負載設備的、與入口編程無關的恒定字線負載的能力。
圖3B所示是具有各自的地址位輸入端的入口地址編碼器123的電路。入口地址編碼器123包括若干個NFET器件320-338。每一個NFET器件的柵極連接到總線IN4T-IN0C,所述總線含有在來自ACAM104的雙動態(tài)入口地址總線之中,并且將各個位輸入形成入口地址編碼器123。NFET器件320-338的漏極連接到雙動態(tài)補地址總線EA4C-EA0T(如圖中總線125所示)。在工作中,當在ACAM104中將寫地址初始化時,ACAM104將把5位真和補入口地址放在總線IN4T-IN0C上。然后入口地址編碼器123將通過NFET器件320-338中適當?shù)钠骷堰m當?shù)碾p動態(tài)補地址總線EA4C-EA0T放電。
現(xiàn)在參考圖4A和4B,如圖所示的是回零(RTZ)真/補(T/C)自定時反相電路400A和400B的另一實施例的電路圖?,F(xiàn)在特別參考圖4A,RTZ T/C入口地址線能夠隨著雙動態(tài)T/C入口地址總線218和220(如圖1所示)的預充電而自動地復位。電路400A如圖所示作為真或補單地址位的反相驅(qū)動電路。電路400A包括NFET器件404A和PFET器件402A。PFET器件402A的柵極連接到雙動態(tài)T/C入口總線116的總線線路ENTADTC上,而NFET器件404A的柵極連接到RESET線。預充電地址總線線路ENTADTC的放電在自定時轉(zhuǎn)換時經(jīng)過PFET器件402A在輸出端CMPAD被反相。當連接到NFET器件404A的柵極的RESET線為高電位時,輸出CMPAD被復位。如圖所示,RESET可以是經(jīng)過如所示的分路連接406A的預充電地址總線線路ENTADTC的功能。在這種情況下,輸出端CMPAD的復位將通過入口地址總線存儲的自定時的方法來完成。
現(xiàn)在參考圖4B所示自定時反相驅(qū)動電路的另外一個實施例。圖4B中的電路400B是帶有CMPADENN啟動輸入端,ENTADTC位輸入端以及CMPAD輸出端的高增益反饋寄存器。電路400B含有PFET器件402B,404B,406B和408B,以及含有NFET器件410B,412B,414B和416B。電路400B還含有反相器418B和420B。PFET器件402B和408B和NFET器件414B和412B的柵極被連接到啟動復位信號端CMPADENN。PFET器件404B和NFET器件410B的柵極被連接到雙動態(tài)T/C入口地址總線116的總線線路ENTADTC。反相器418B的輸入端連接到PFET器件404B和408B以及NFET器件414B,412B和410B的源極。反相器418B的輸出端被連接到反相器420B的輸入端以及PFET器件406B和NFET器件416B的柵極。反相器418B的輸入節(jié)點已被標記為A,反相器418B的輸出節(jié)點已被標記為B。反相器420B的輸出端是自定時反相驅(qū)動電路400B的輸出端CMPAD。
圖4B中的電路400B允許入口總線線路的放電自定時啟動關閉,但是也允許獨立于雙動態(tài)T/C入口地址總線116的CMPAD輸出端復位。所述電路還提供更高的驅(qū)動能力。通過使輸出端CMPAD在雙動態(tài)T/C入口地址總線116復位之前或期間,而不是之后復位,可以提供更快的周期時間??偩€線路ENTADTC一般是預充電線路,并且當輸入端CMPADENN為低電位時,電路400B被啟動。因此,當ENTADTC開始放電時,PFET器件404B將導通并將節(jié)點A上拉為邏輯高電位。隨著節(jié)點A電位的升高,反相器418B將節(jié)點B的輸出驅(qū)動為低電位。在節(jié)點B的低的輸入將使得反相器420B驅(qū)動CMPAD輸出端為邏輯高電位。然而,當CMPADENN被驅(qū)動到高電位時,NFET器件414B將驅(qū)動節(jié)點A到邏輯低電位,并且從而使得在反相器418B輸出端的節(jié)點B電位升高到邏輯高電位。因此,反相器輸出端CMPAD將被驅(qū)動到邏輯低電位。用這種方法,圖4B的電路400B被復位。
現(xiàn)在參考圖5,圖中所示為棧反饋電路524的電路圖。棧反饋電路524被用來作為在第一寄存器棧212(如圖2所示)進線的比較操作的反映。反饋電路524能夠用于啟動第一寄存器棧212中的移位操作,以及完成第一寄存器棧212中的比較操作后,圖4A和4B中自定時反相電路的復位。電路524包括若干個反相器門504-516,NFET器件518和520,PFET器件522和526,以及或“非”門502。棧反饋電路524具有作為輸入信號MATRES的真(T)和補(C)信號,以及輸出信號STKFB和LRUTCFB。棧反饋信號STKFB用來測算棧比較操作的進程并同時確定如何能夠迅速地將RTZ T/C入口地址總線220和218復位。棧反饋電路524輸入信號T和C可以是到達它們被驅(qū)動的第一寄存器棧212(如圖2所示)的反向端的真和補位地址總線線路。當MATRES被放電時,PFET器件526將被導通并使得節(jié)點A5的電壓升高。反相門510和512將使得輸出STKFB電位隨A5的升高而升高。STKFB被預充電為高HI之后,棧反饋電路524被啟動,并且升高的輸入端T或C將使得NFET器件520導通,節(jié)點A5將被下拉為低電位。當節(jié)點A5被下拉為低電位時,反相門510和512使得輸出STKFB也將被下拉到邏輯低電位。用這種方法,通過棧反饋電路524從它的T和C輸入到STKFB輸出所產(chǎn)生的電路延遲可以構成對在第一寄存器棧212(如圖2所示)的反向端產(chǎn)生的比較操作的反映,由此確定移位操作如何能夠快速地開始,以及RTZ T/C入口地址總線220和218可以被復位。LRUTCFB輸出信號提供第一寄存器棧212中真和補位入口狀態(tài)指示。
現(xiàn)在參考圖6和圖7,圖6所示為第一寄存器棧212中存儲入口地址信息位的存儲器電路的電路圖,圖7所示為第一存儲器棧212的全部棧結構的方框圖。現(xiàn)在特別地參考圖6,每一棧寄存器的每一位由主從配置形式的雙D型鎖存器和比較器所組成。第一鎖存器646包括NFET器件600-603,和反相門616-622。第一鎖存器646含有輸入IN1,IN1,和第一時鐘FIRST CLOCK,以及輸出OUT1,OUT1。第二鎖存器648具有NFET器件604-607,以及反相門624-640。第二鎖存器648具有輸入IN2,IN2,第二時鐘2ND CLOCK以及輸出OUT2,OUT2。第一鎖存器646的輸出OUT1,OUT1被連接到第二鎖存器648的輸入IN2和IN2。輸出端OUT2,OUT2與比較器644的輸入端連接。圖6電路中還包括NFET器件608和609。NFET器件608和609的柵極連接到RESET HIGH和RESET LOW信號端,并被用于在通電或沖洗(flush)操作之后將所有第二寄存器設定為編程狀態(tài)。
由于第一鎖存器646和第二鎖存器648是時鐘D-型鎖存器,所以當?shù)谝粫r鐘FIRST CLOCK和第二時鐘2ND CLOCK信號在每一寄存器上確立時,呈現(xiàn)在IN1,IN1和IN2,IN2的輸入信號將出現(xiàn)在輸出端OUT1,OUT1和輸出端OUT2,OUT2。比較器644將第二鎖存器648的輸出端OUT2,OUT2的狀態(tài)與RTZ T/C入口地址總線218和220上的指定位(如RTZ TRUE ENTRY BIT和RTZ COMP ENTRYBIT所示)進線比較。比較器644輸出端MATCH被預充電為高電位HI,并且當OUT2,OUT2與RTZ TRUE ENTRY BIT和RTZ COMPENTRY BIT不相等時,所述輸出端將變?yōu)檫壿嫷碗娢籐OW。MATCH RESTORE輸入信號將PFET器件614導通并將MATCH輸出端預充電為邏輯高電位HI,并可以共用與同一匹配線通信的通用比較器。
現(xiàn)在參考圖7,如圖所示為第一寄存器棧212結構中某些元件的方框圖。位寄存器700-710是圖6電路的方框圖。第一鎖存器輸入端IN1 T&C與棧中前面的寄存器的輸出端OUT2 T&C連接。例如,位寄存器702的IN1 T&C連接到位寄存器700的輸出端OUT2 T&C。每一位寄存器的MATCH端被連接到多輸入“或非”門(NOR)結構(所述結構選通第二時鐘),使得當任何位寄存器本身的MATCHLINE或任何次最近寄存器的MATCH LINE預示肯定的匹配條件時,通過第二時鐘更新每一位寄存器700,704,708和702,706和710的第二鎖存器。例如,每個位寄存器700,704和708的MATCH輸出端都與含有“或非”門NOR712和714的“或非”門電路和反相器716相連接。因此,當每個位寄存器700-708的MATCH輸出保持在高電位HI、表示匹配條件時,“或非”門712驅(qū)動它的輸出為低電位,并且啟動“或非”門714,當?shù)诙r鐘2ND CLOCK為高電位HI時,驅(qū)動它的輸出為高電位HI。當位寄存器700-708的輸出MATCH指示非MATCH條件,并且“或非”門712的所有其它輸入也指示非MATCH條件時,“或非”門NOR712的輸出將為高電位,因此禁止“或非”門714?!盎蚍恰遍T714的輸出將被驅(qū)動為低電位LOW。用這種方法,多輸入端“或非”門電路選通第二時鐘,使得當它本身的MATCHLINE或任何次最近5位寄存器的MATCH LINE出現(xiàn)肯定匹配條件時,通過第二時鐘更新位寄存器700-708的第二鎖存器。
圖8A說明的是第二時鐘產(chǎn)生電路800的電路圖。第二時鐘產(chǎn)生電路800使用圖5棧反饋電路中的棧反饋信號、多輸入端“或非”門電路,以便提供關于反饋信號的負載,所以反饋信使匹配寄存器負載與跟蹤信號延遲匹配,所述延遲用來反映寄存器比較操作的進程,將第二時鐘信號的產(chǎn)生延遲直到第一寄存器棧212中最壞情況多輸入端“或非”門已經(jīng)穩(wěn)定為止。第二時鐘產(chǎn)生電路800包括32個輸入端的“或非”門802和反相器門804和806。當?shù)谝患拇嫫鳁?12的棧反饋信號為低電位時,表示每一寄存已經(jīng)在RTZ T/C入口地址總線220和218(如圖2所示)上接收了入口地址?!盎蚍恰遍T(NOR)802將驅(qū)動它的輸出為高電位HI,使得反相門806將它的輸出驅(qū)動為高電位HI。因此,第二時鐘產(chǎn)生電路800的第二時鐘輸出2ND CLOCK在32個寄存器棧中每一寄存器(即,第一寄存器棧212)已經(jīng)接收到RTZ T/C入口地址總線220上的入口地址之后將被確立,并進線比較操作和完成最差情況寄存器的比較操作。反饋信號被指定來模擬第一寄存器棧中最慢MATCH LINE信號,來保證這種最壞情況方案也能滿意。最壞情況寄存器是棧中完成比較操作的最后的寄存器。圖8B中說明的電路除了在反相器808上增加了窺探輸入之外,與圖8A中電路基本上是相同的。在同一方法中所述電路也除了考慮窺探功能之外,與圖8A所示的電路功能相同,它可以作為圖8A電路的替換電路。
圖9中所示為5位寄存器入口地址的單獨一位的第二MRU寄存器214的電路圖。第二MRU寄存器214包括反相門902-914和PFET器件916和922,以及NFET器件918和920。第二MRU寄存器214組成單個復位置位(RS)觸發(fā)器。第二MRU寄存器214包括RTZ補地址位輸入(RTZ地址補),RTZ真地址位(RTZ地址真)和復位低,復位高輸入。復位低和復位高功能用來將第二MRU寄存器214的輸出MRU入口位復位成為邏輯低LOW或邏輯高HI電位。第二MRU寄存器214根據(jù)總線218和220(如圖2所示)上的RTZ T/C入口地址自動地更新,并提供比第一寄存器棧212(如圖2所示)MRU寄存器更快的MRU更新,因為它不用等到第二時鐘產(chǎn)生才進線更新。該第二MRU寄存器也將更新窺探比較操作。
現(xiàn)在參考圖10A和10B,所述圖說明LRU棧更新電路1000,所述電路含有在窺探周期期間禁止LRU棧更新的邏輯。作為通常操作的一部分,第一寄存器棧212將更新它的寄存器以進線比較和寫地址操作。而且,在窺探地址比較操作期間,高速緩存數(shù)據(jù)輸出被禁止。電路1000位于棧控制邏輯114之中,并且具有比較輸入端(CMPD),窺探狀態(tài)輸入端(SNOOPN),寫地址啟動輸入端(AWENB),復位輸入端(RESET)和時鐘輸入端(REGCLK2)。電路1000含有反相器門1002-1024和1028-1-32;PFET器件1034-1040,1043,1044,1050和1052;NFET器件1042,1046,1048,1054-1058;“與非”門NAND1024,1026,1060和1062;“或非”門NOR1064和1066。當在高速緩存中開始進線寫地址操作或當?shù)刂繁容^操作完成之后,電路1000將產(chǎn)生STKUPDATN輸出。然而,如果SNOOP輸入端指示這些操作是發(fā)生在窺探周期期間時,它將禁止輸出。
輸出信號STKUPDATN通過由輸入信號的轉(zhuǎn)變(在這種情況下是CMPD的上升沿)激勵的單觸發(fā)脈沖而被激活。當SNOOP為高電位HI時,所述輸入信號被向下通過兩條不同的支路傳送到“或非”門1064。具體地說,第一條支路包括與非門1062,第二條支路包括與非門1060和反相器1018-1022。在這兩條支路之間傳播時間的差確定了激勵STKUPDATN輸出的激勵脈沖的寬度。同樣地,SNOOPN為高HI時,AWENB上升沿將產(chǎn)生激勵脈沖激勵輸出STKUPDATN。PFET和NFET器件1043-1056的功能通過反相器1018-1022和1028-1032進一步地延緩電路延遲,并增加脈沖寬度。因此,當在AWENB或CMPD輸入端出現(xiàn)上升沿時,電路1000將通過將其驅(qū)動為低電位LOW來激勵輸出STKUPDATN,并因此指示控制棧控制邏輯114更新第一寄存器212。輸出端STKUPDATN由第二寄存器時鐘復位。
圖10C所說明的是圖10A和圖10B所示電路的另一實施例。具體地說,圖10C中所示電路1099包括根據(jù)比較操作的執(zhí)行和輸出啟動OE輸入的狀態(tài),以及寫地址操作的執(zhí)行和系統(tǒng)地址有效位的狀態(tài)禁止第一寄存器棧212(如圖2A和2B所示)更新的邏輯。電路1099包括反相器門1082-1098,“與非”門1079和1080,“或非”門1075-1078,NFET器件1071-1074和PFET器件1067-1070。電路1099還包括輸入復位錯過MISSRST,復位RESET,LRU真和補反饋LRUCFB,比較CMPD,輸出啟動OE,有效位狀態(tài)LBVALID0和LBVALID1,以及寫地址啟動時鐘AWECLK和輸出STKUPDATN。輸出STKUPDATN在MISSRST或RESET為高的任何時間,通過“或非”門1076和PFET器件1067,被復位成為邏輯高電位HI。輸出STKUPDATN也在輸入LRUTCFB為高電位HI的任意時間,通過反相器門1086和PFET器件1068被復位。
在電路1099的兩個方案下,輸出端STKUPDATN可以被置為低電位LOW。第一方案與圖10A和圖10B的電路操作相似,其中輸出端STKUPDATN通過由輸入信號的轉(zhuǎn)變啟動的單觸脈沖(在這種情況下為CMPD的上升沿)而被激勵,同時,所述輸出啟動OE輸入信號為高電位HI。輸出啟動OE信號由高速緩存控制器產(chǎn)生。當高速緩存中的窺探比較操作完成時,由于在窺探比較操作中沒有數(shù)據(jù)被查找,所以OE被用來禁止高速緩存數(shù)據(jù)輸出。激勵STKUPDATN信號也將由于產(chǎn)生脈沖而封鎖CMPD信號。所述輸入信號的轉(zhuǎn)變向下經(jīng)兩個不同支路傳輸?shù)健盎蚍恰遍TNOR1075。第一支路包括“與非”門NAND1079,第二支路包括“與非”門NAND1080;反相器門1088-1092;PFET器件1069和1070;以及NFET器件1072和1074?!盎蚍恰遍T1075的輸出端將單觸發(fā)脈沖輸入到NFET器件1072,所述器件將驅(qū)動輸出端STKUPDATN到低電位LOW狀態(tài)。在這兩個支路中傳播時間的差確定了激勵STKUPDATN的單觸發(fā)脈沖輸出信號的寬度。在第二個方案中,在有效位狀態(tài)輸入信號LBVALID0和LBVALID1中的任一個為高電位HI的同時,AWECLK輸入的上升沿將產(chǎn)生從“或非”門1077輸出的沖觸發(fā)脈沖到NFET器件1071。所述脈沖寬度由AWECLK信號的脈沖寬度來確定。因此,當在CMPD或AWECLK輸入端中任一個上檢測到上升沿時,電路1099將通過把輸出端STKUPDATN驅(qū)動為位低電位LOW來激勵輸出端STKUPDATN,從而命令棧控制邏輯114更新第一寄存器棧212。因此,當輸出啟動OE輸入信號為低電位LOW時,或者當有效位狀態(tài)輸入信號LBVALID0和LBVALID1為低電位LOW時,第一寄存器棧的更新將被禁止。
現(xiàn)在參考圖11A和11B,圖中說明產(chǎn)生所示有效入口狀態(tài)或標志信號的電路1000的電路圖。電路1000位于??刂七壿?14中,并包括雙啟動反相器電路1156-1162,“與非”門1150-1154和反相門1133。雙啟動反相器1156包括反相器門1179和1180,PFET器件1163和1164以及NFET器件1171和1172。雙啟動反相器電路1158-1162與雙啟動反相器電路1156的結構相同。雙啟動電路1156具有經(jīng)過反相器門1187和1188的LBVALID0和PHI2輸入端。
在操作中,寫地址周期期間,電路1100利用有效位信息識別地址無效操作和禁止第一寄存器棧212(如圖2所示)的更新。具體地說,當啟動信號PHI2和AWED確立時,把有效狀態(tài)位LBVALID0和LBVAUD1比較。在這種條件下,當LBVALID0和LBVALID1為邏輯高電位HI時,INVALNB將被驅(qū)動為低電位LOW。這將禁止第一寄存器棧212將有效入口輸入到MRU入口寄存器REG.0中。INVALNB輸出將輸入到圖2B中計數(shù)控制器電路204中并作為標志表示第二寄存器棧包括無效入口地址信息。INVALNB信號將指示寄存器I/O多路轉(zhuǎn)換器242從RTZ T/C入口地址總線220和218將入口地址信息輸入到第一寄存器棧210。
圖11C所示是圖11A和11B電路部分的另外一個實施例,所述電路根據(jù)寫地址(AWED)和有效位輸入信號(LBVALID0和LBVALID1)確定地址無效周期。圖11C中的電路1199根據(jù)寫地址啟動AWED輸入信號和窺探輸入信號SNOOPN確定地址無效周期是否正在被執(zhí)行。所述電路包括反相器門1160和與非門NAND1162。當AWED輸入信號為高電位HI并且SNOOPN輸入信號為低電位LOW時,輸出端INVALNB將被激勵為低電位LOW,用來指示在高速緩存中進線窺探操作的同時,高速緩存中寫地址操作也正在進線。
雖然,已經(jīng)通過對實施例的描述說明了本發(fā)明,并且對各實施例已經(jīng)進線了相當詳細的描述,但是,申請人的意圖不是以任何方式把后面所附權利要求書的范圍限制在這些細節(jié)。對于本專業(yè)的技術人員來說,本發(fā)明其它的優(yōu)點和對本發(fā)明進線的修改是顯而易見的。例如,第二寄存器棧可以含有任意數(shù)目的寄存器用來保存無效入口地址,或者第一寄存器??梢员?2個寄存器更大或更小。因此,對于本發(fā)明,就其范圍來說,是不受上面詳細描述,典型裝置,和所描述及其所示的舉例說明限制的。因此,可以在不背離本發(fā)明申請者總的概念精神或范圍的情況下利用所述細節(jié)來進行修改。
權利要求
1.一種在計算機中執(zhí)行最近最少使用替換機制的方法,所述計算機包括地址內(nèi)容可編址存儲器;至少含有N個最近經(jīng)常使用入口寄存器,N+1個次最近經(jīng)常使用入口寄存器,以及N+Z個最近最少使用入口寄存器的寄存器棧,其中N是等于或大于0的整數(shù),Z是等于或大于2的整數(shù),其中,每一個寄存器包括含有能夠代表入口地址的二進制數(shù)的內(nèi)容,其特征在于所述方法包括以下步驟(a)確定地址內(nèi)容可編址存儲器中是否正進行高速緩存訪問操作;(b)如果比較操作表示在地址內(nèi)容可編址存儲器中有肯定的匹配,則產(chǎn)生新的入口地址;(c)將新的入口地址發(fā)送到寄存器棧中的若干個入口地址比較器中;(d)將新的入口地址與存儲在寄存器棧中除了第N個寄存器外的寄存器中的入口地址相比較;(f)識別包括所述入口地址的寄存器棧中第N+M個寄存器,M的范圍是1到Z;(g)將寄存器N到N+M-1中的內(nèi)容移到寄存器N+1到N+M中,同時將新的入口地址移到第N個寄存器中。
2.根據(jù)權利要求1的方法,其特征在于確定地址內(nèi)容可編址存儲器中是否正進行高速緩存訪問操作的步驟包括確定在地址內(nèi)容可編址存儲器中是否正進行比較操作的步驟。
3.根據(jù)權利要求1的方法,其特征在于確定地址內(nèi)容可編址存儲器中是否正進行高速緩存訪問操作的步驟包括確定地址內(nèi)容可編址存儲器中是否正進行寫地址操作的步驟。
4.在含有地址內(nèi)容可編址存儲器、動態(tài)入口地址總線、LRU寄存器棧、以及??刂七壿嫷亩嗦犯咚倬彺嫦到y(tǒng)中,其中第一寄存器棧包括至少第N個和接著第N+1個入口寄存器,用來存儲入口地址,其中N是等于或大于0的任意整數(shù),并且第N個和第N+1個入口寄存器含有入口地址,在所述高速緩存系統(tǒng)中一種處理寄存器棧中無效入口或路地址的方法,用來進行多路高速緩存的最近最少使用替換算法,所述方法包括在由窺探周期所產(chǎn)生的窺探操作期間禁止更新LRU寄存器棧的步驟,其特征在于還包括下面的步驟(a)檢測地址內(nèi)容可編址存儲器中高速緩存訪問操作;(b)檢測地址內(nèi)容可編址存儲器中的窺探周期;(c)產(chǎn)生應答地址內(nèi)容可編址存儲器中正執(zhí)行高速緩存操作和在地址內(nèi)容可編址存儲器中正執(zhí)行窺探周期的禁止信號,所述步驟包括以下步驟(1)在地址內(nèi)容可編址存儲器中檢測地址比較操作;(2)在地址內(nèi)容可編址存儲器中檢測寫地址操作。
5.根據(jù)權利要求4的方法,其特征在于產(chǎn)生禁止信號的步驟還包括檢測寫地址啟動信號以確定入口地址無效操作是否被啟動的步驟。
6.在含有地址內(nèi)容可編址存儲器、動態(tài)入口地址總線、第一寄存器棧、第二寄存器棧、??刂七壿?、計數(shù)器、以及與第一寄存器棧和第二寄存器棧通信連接的多路轉(zhuǎn)換器的多路高速緩存系統(tǒng)中,其中第一寄存器棧中包括至少第N個和接著第N+1個入口寄存器,用來存儲入口地址,其中N是等于或大于0的任意整數(shù),并且第N個和接著第N+1個入口寄存器含有入口地址,其中第二寄存器棧包括至少M個無效入口寄存器用來存儲無效入口地址,其中M是任意等于0或大于0的整數(shù),在所述高速緩存系統(tǒng)中一種處理寄存器棧中無效入口或路地址的方法,用來進行多路高速緩存的最近最少使用替換算法,其特征在于所述方法包括下面的步驟(a)檢測??刂七壿嬛械刂窡o效操作,其中檢測棧控制邏輯中窺探周期的步驟包括以下步驟(1)檢測寫地址操作;(2)檢測窺探周期;(b)將對應于系統(tǒng)地址的入口地址在動態(tài)入口地址總線上輸出;(c)輸出來自??刂七壿嫷臒o效入口地址信號;(d)隨著所述計數(shù)器值、將入口地址經(jīng)多路轉(zhuǎn)換器送到M寄存器中;(e)識別含有至少一個入口地址的第二寄存器棧;(f)將計數(shù)器值加一,以表示存儲在第二寄存器棧中的入口地址數(shù)目。
7.根據(jù)權利要求6的方法,其特征在于第二寄存器棧還包括至少一個M+1無效入口寄存器,并且所述方法還含有如果第二寄存器棧含有至少一個入口地址,則將M無效入口寄存器的內(nèi)容移到第M+1無效入口寄存器中的步驟。
8.根據(jù)權利要求6的方法,其特征在于檢測地址無效操作還包括下面的步驟(a)檢測寫地址操作;(b)檢測有效位狀態(tài)信息。
9.根據(jù)權利要求6的方法,其特征在于還包括禁止第一寄存器棧更新操作的步驟。
10.根據(jù)權利要求6的方法,其特征在于還包括輸出來自第二寄存器棧的入口地址的步驟。
11.根據(jù)權利要求6的方法,其特征在于還包括一旦利用用來存儲新的入口地址信息的無效入口地址,就將計數(shù)器值減一的步驟。
12.在含有地址內(nèi)容可編址存儲器、動態(tài)入口地址總線、第一寄存器棧、第二寄存器棧、??刂七壿?、計數(shù)器、以及與第一寄存器棧和第二寄存器棧通信連接的多路轉(zhuǎn)換器的多路高速緩存系統(tǒng)中,其中第一寄存器棧中包括至少第N個和接著的第N+1個入口寄存器,用來存儲入口地址,其中N是等于或大于0的任意整數(shù),并且第N和接著的第第N+1個入口寄存器含有入口地址,其中第二寄存器棧包括至少M個無效入口寄存器用來存儲無效入口地址,其中M是等于0或大于0的任意整數(shù),在所述高速緩存系統(tǒng)中一種處理寄存器棧中無效入口或路地址的方法,用來進行多路高速緩存的最近最少使用替換算法,其特征在于所述方法包括下面的步驟(a)將存儲在地址內(nèi)容可編址存儲器中的系統(tǒng)地址無效;(b)將來自地址內(nèi)容可編址總線的無效入口地址輸出到動態(tài)入口地址總線上;(c)將來自動態(tài)入口地址總線的無效入口地址輸出到第二寄存器棧的M無效入口寄存器中;(d)設置指示第二寄存器棧至少包含一個入口地址的標記;(e)將計數(shù)器值加一以便指示存儲在第二寄存器棧內(nèi)的入口地址數(shù)目;(f)將第一寄存器棧中N入口寄存器的信息移位到N+1入口寄存器中;(g)將后續(xù)入口地址存儲在第一寄存器棧的第N個入口寄存器中。
13.根據(jù)權利要求12的方法,其特征在于還包括輸出存儲在第二寄存器棧中的入口地址信息的步驟。
14.根據(jù)權利要求13的方法,其特征在于還含有將計數(shù)器值減一,以表示存儲在第二寄存器棧中的入口地址數(shù)目的步驟。
15.根據(jù)權利要求12的方法,其特征在于通過窺探周期將由存儲在第一寄存器棧中接著的第N+1個入口寄存器中的入口地址所代表的系統(tǒng)地址無效的步驟包括以下步驟(a)檢測地址內(nèi)容可編址存儲器中寫地址操作;(b)檢測與系統(tǒng)地址有關的有效位狀態(tài)信息。
16.高速緩存中最近最少使用替換結構,其特征在于包括(a)N路地址內(nèi)容可編址存儲器,用來保持系統(tǒng)地址和路地址的一致性;(b)與N路地址內(nèi)容可編址存儲器通信連接的N路數(shù)據(jù)陣列,用來存儲數(shù)據(jù);(c)存儲入口地址的N-入口寄存器棧,其中N-入口寄存器棧至少包括第一寄存器,中間寄存器和最后寄存器,其中每一個寄存器包括若干位,其中若干位包括與每一個存儲在地址內(nèi)容可編址存儲器中的入口的二進制地址相關的很多位;其中在中間和最后寄存器中還含有用來比較新入口地址和被存儲的入口地址的比較器;其中第一寄存器還包含最近經(jīng)常使用入口地址;其中中間寄存器還包含最近次經(jīng)常使用入口地址;其中最后寄存器包含最近最少使用入口地址;(d)存儲最近經(jīng)常使用入口地址的第二寄存器;(e)由N個編碼器組成的若干入口地址編碼器,每一編碼器包括(1)與數(shù)據(jù)陣列連接的第一輸入端,用來接收來自數(shù)據(jù)陣列的路選擇信號;(2)與地址內(nèi)容可編址存儲器連接的第二輸入端,用來接收來自地址內(nèi)容可編址存儲器的寫路選擇信號;(3)與地址內(nèi)容可編址存儲器相連接的輸出端,用來輸出入口地址信息;(f)控制N-入口寄存器棧并與N-入口寄存器棧通信連接的寄存器棧控制邏輯;(g)與數(shù)據(jù)陣列相連接的字線“或非”門電路,用來指示數(shù)據(jù)陣列是否含有給定的信息資料,字線“或非”門NOR電路包括若干個與來自地址內(nèi)容可編址存儲器的若干個輸出端連接的字線輸入端;(h)與寄存器??刂七壿嫼蚇-入口寄存器棧通信連接的寄存器棧反饋電路,用來將N-入口寄存器棧中執(zhí)行的比較操作的進程反饋到寄存器??刂七壿嬰娐分?;(i)與入口地址編碼器和N-入口寄存器棧通信連接的入口地址啟動電路,用于入口地址編碼器與N-入口寄存器棧的通信;以及(j)與N-入口地址寄存器棧和入口地址驅(qū)動器通信連接的入口地址總線,用來將回零入口地址發(fā)送到N-入口寄存器棧。
17.根據(jù)權利要求16的結構,其特征在于每一個寄存器還包括位寄存器,后者具有(a)用來存儲真和補入口地址位的第一鎖存電路;(b)用來存儲真和補入口地址位、與第一鎖存器通信連接的第二鎖存電路,其中第二鎖存電路包括輸入端和輸出端;(c)用來將第二鎖存電路的輸出與入口地址總線上的真和補入口地址進行比較的比較電路。
18.根據(jù)權利要求16的結構,其特征在于入口地址驅(qū)動電路包括(a)輸入入口地址的入口地址位電路;(b)輸出入口地址位的輸出端;以及(c)自定時復位電路,它隨著所述入口地址位電路而將所述輸出端復位。
19.根據(jù)權利要求16的結構,其特征在于寄存器棧反饋電路包括(a)真和補入口位輸入電路;(b)棧反饋輸出電路;以及(c)與棧反饋輸出電路通信連接并且包括若干用來產(chǎn)生傳輸延遲的反相器門的復位電路。
20.以最近最少使用替換算法處理無效入口或路數(shù)據(jù)的高速緩存設備,其特征在于所述高速緩存設備包括(a)存儲地址信息的第一寄存器棧,所述第一寄存器棧至少包括N和接著的N+1寄存器,其中N是任意大于或等于0的整數(shù);(b)將入口地址編碼為真和補入口地址的動態(tài)入口地址編碼器;(c)產(chǎn)生自定時真入口地址總線和自定時補入口地址總線的自定時反向動態(tài)入口地址反相驅(qū)動電路;(d)與動態(tài)入口地址編碼器和自定時反相動態(tài)入口地址反相器電路通信連接的動態(tài)入口地址總線,用來傳輸真和補入口地址;(e)與自定時反相動態(tài)入口地址反相器驅(qū)動電路通信連接的自定時第一寄存器棧反饋電路,所述電路用來測量第一寄存器棧比較操作的進程;(f)與自定時第一寄存器棧反饋電路,動態(tài)入口地址編碼器和第一寄存器棧通信連接的??刂七壿嬰娐?,所述電路用來控制寄存器棧的輸入和輸出;(g)與??刂七壿嬰娐泛妥远〞r反相動態(tài)入口地址反相器電路通信連接的MRU寄存器,所述寄存器用來存儲最近經(jīng)常使用入口地址;(h)與自定時反相動態(tài)入口地址反相器電路通信連接,用來存儲地址信息的第二寄存器棧;以及(i)與??刂七壿嬰娐泛蚅RU多路轉(zhuǎn)換器通信連接,用來控制LRU多路轉(zhuǎn)換器的計數(shù)控制器電路。
21.根據(jù)權利要求20的高速緩存設備,其特征在于第一寄存器棧還包括位寄存器,后者具有(a)存儲真和補入口地址位的第一鎖存電路;(b)與第一鎖存電路通信連接,用來存儲真和補入口地址位的第二鎖存電路,其中第二鎖存電路包括輸入端和輸出端;(c)用來把第二鎖存電路與真和補入口地址位比較的比較電路;
22.根據(jù)權利要求20的高速緩存設備,其特征在于動態(tài)入口地址編碼器包括放電電路,用來使動態(tài)入口地址總線放電,其中放電電路包括字線輸入端。
23.根據(jù)權利要求20的高速緩存設備,其特征在于自定時反相動態(tài)入口地址反相器驅(qū)動電路包括(a)用來輸入入口地址的入口地址位電路;(b)用來輸出入口地址位的輸出端;(c)隨著棧反饋而將所述輸出端復位的自定時復位電路。
24.根據(jù)權利要求20的高速緩存設備,其特征在于自定時第一寄存器棧反饋電路包括(a)真和補入口位輸入電路;(b)棧反饋輸出電路;(c)與棧反饋輸出電路通信連接,包括若干個產(chǎn)生傳輸延遲的反相門的復位電路。
25.根據(jù)權利要求20的高速緩存設備,其特征在于所述??刂七壿嬰娐钒?a)用來禁止第一寄存器棧更新操作的棧更新電路,所述棧更新電路包括(1)用來檢測比較入口地址狀態(tài)信號的狀態(tài)的比較入口地址操作輸入電路;(2)用來檢測窺探操作狀態(tài)信號的狀態(tài)的窺探操作輸入電路;(3)用來檢測寫地址信號狀態(tài)的寫地址驅(qū)動輸入電路;(4)產(chǎn)生棧更新輸出信號的棧更新輸出端;(b)用來產(chǎn)生無效入口地址狀態(tài)信號的寫地址操作輸入電路,所述無效入口地址狀態(tài)電路包括(1)用來輸入入口地址有效狀態(tài)位的狀態(tài)的有效位狀態(tài)輸入電路;(2)產(chǎn)生無效入口地址狀態(tài)信號的無效入口地址狀態(tài)輸出電路。
26.根據(jù)權利要求20的高速緩存設備,其特征在于MRU寄存器包括(a)接收真入口地址位的真入口地址位輸入電路;(b)接收補入口地址位的補入口地址位輸入電路;(c)輸出MRU入口位的MRU入口位輸出端;(d)用來將MRU入口位輸出信號復位的復位電路,所述復位電路包括(1)將MRU入口位復位到低邏輯電位的低復位電路;(2)將MRU入口位復位到高邏輯電位的高復位電路。
27.根據(jù)權利要求20的高速緩存設備,其特征在于所述第二寄存器至少包括M寄存器,其中M是等于或大于0的任意整數(shù),所述M寄存器包括用來存儲入口地址位的位寄存器,所述位寄存器電路包括輸入端和輸出端。
28.根據(jù)權利要求20的高速緩存設備,其特點還在于還包括用來計算存儲在第二寄存器中的入口地址數(shù)量的計數(shù)電路。
29.根據(jù)權利要求20的高速緩存設備,其特征在于自定時反相動態(tài)入口地址反相器驅(qū)動電路包括(a)輸入入口地址的入口地址位電路;(b)輸出入口地址位的輸出端;(c)隨著所述入口地址位電路而將所述輸出端復位的復位電路。
全文摘要
在高速緩存系統(tǒng)中使用最近最少使用替換機制處理無效數(shù)據(jù)的方法和結構,它包括:第一寄存器棧,第二寄存器棧和??刂七壿?。第一寄存器棧含有保持入口地址信息的寄存器。??刂七壿嫼薪乖诘谝患拇嫫鳁5淖罱?jīng)常使用寄存器中進行無效入口地址替換。??刂七壿嬤€指令將任何新的入口地址放置在第一寄存器棧中已經(jīng)存有無效入口地址的單元中。無效入口地址通過第二寄存器棧從高速緩存中輸出,而有效最近最少使用入口地址則保留在第一寄存器棧中。
文檔編號G06F12/12GK1206150SQ9712304
公開日1999年1月27日 申請日期1997年11月24日 優(yōu)先權日1996年12月24日
發(fā)明者C·P·米勒, D·E·龐修斯 申請人:國際商業(yè)機器公司