欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

具有凍結(jié)功能的高速緩存器的制作方法

文檔序號:6417141閱讀:354來源:國知局
專利名稱:具有凍結(jié)功能的高速緩存器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種具有凍結(jié)功能的高速緩存器,特別涉及采用由凍結(jié)功能修改的最近最少使用原理(LRU)技術(shù)的高速緩存器。
一般來說,在計算機系統(tǒng)中使用的主存儲設(shè)備與中央處理單元(CPU)的操作速度相比具有較低的操作速度。這樣一種主存儲器一般帶有一個高速緩存器,該高速緩存器由具有較高操作速度和較小容量的SRAM實現(xiàn),并置于CPU的內(nèi)部或附近。通過在高速緩存器中存儲一些數(shù)據(jù)或程序(此后在大多數(shù)情況下簡稱為數(shù)據(jù))并從其讀取,CPU可以以一較高操作速度進行操作。
在具有高速緩存器的計算機系統(tǒng)中,當(dāng)在高速緩存器中未找到(或未命中)由CPU訪問的數(shù)據(jù)時,將由CPU從主存儲器讀取的一些數(shù)據(jù)作為新記錄數(shù)據(jù)存儲在高速緩存器的空塊中。如果在高速緩存器中沒有可供新記錄數(shù)據(jù)使用的空塊,則選擇高速緩存器中最近最少使用的、其中存儲有記錄數(shù)據(jù)的一塊作為對空塊的替代。于是,可以將新記錄數(shù)據(jù)存儲在選擇的一塊中。這個過程一般被稱為LRU技術(shù)或LRU算法,其中,在所有分路中選擇存儲最近最少使用分路(數(shù)據(jù))的塊,用于以新記錄數(shù)據(jù)替換最近最少使用的數(shù)據(jù)。LRU算法提高了高速緩存器的效率。
然而,在微處理器運行的所有程序中,存在一個不太經(jīng)常被訪問但一旦被啟動就被要求以較高操作速度操作的特定程序??刂破嚨奈⑻幚砥骶褪瞧渲械囊粋€例子,這里將就控制顯示屏和剎車系統(tǒng)進行討論。
由于在駕駛操作期間汽車的速度和哩數(shù)的當(dāng)前指示在顯示面板上隨時改變,所以微處理器在任何時候都在運行面板控制程序。另一方面,控制在緊急剎車操作時防止輪胎擺動的程序不象顯示面板程序那樣經(jīng)常使用。于是,在常規(guī)的高速緩存器中,面板控制程序被經(jīng)常訪問并存儲在高速緩存器中,而剎車控制程序不太經(jīng)常在高速緩存器中訪問,并且中斷控制程序存儲在高速緩存器中的概率較低。也就是說,不要求運行得非??斓娘@示哩數(shù)等的程序占據(jù)了高速緩存器,導(dǎo)致微處理器要花較長時間來啟動運行剎車控制程序,從而降低高速緩存器的整體效率或微處理器的操作速度。
為了解決上述問題,公知的是在高速緩存器內(nèi)提供一個凍結(jié)功能和一個清除功能。凍結(jié)功能是使得一個指定程序被存儲并凍結(jié)在高速緩存器中而不進行替換,其中該指定程序一旦被啟動操作,微處理器必須在該指定程序上以高速運行,而不管其訪問頻率如何。該凍結(jié)功能使微處理器能在任何時間讀取并運行在存儲在高速緩存器中的指定程序上,以減少處理時間。
清除功能是通過將程序從高速緩存器中釋放而在其中產(chǎn)生一個空間,使得一個被更頻繁地訪問但不要求以較高速度操作微處理器的程序不在高速緩存器中存儲較長時間。清除功能可以提高高速緩存器的使用效率,并減少微處理器的整體處理時間。
專利公開JP-A-6-110787描述了成組相聯(lián)高速緩沖器中的一個凍結(jié)功能,其中,每組高速緩存器中的多個分路中的單個分路可以受到凍結(jié)。

圖1顯示了成組相聯(lián)高速緩沖器中的凍結(jié)控制方框。
凍結(jié)控制方框包括標(biāo)記信息存貯器(標(biāo)記存儲器)51、數(shù)據(jù)存貯器(數(shù)據(jù)存儲器)52、清除/凍結(jié)寄存器43、LRU清除/凍結(jié)控制器42、優(yōu)先權(quán)數(shù)據(jù)更新單元44、LRU信息存貯器40、地址比較器57、控制部分58、以及選擇器59。
標(biāo)記存儲器51包括分路-A(51A)至分路-D(51D),并在其中存儲高速緩存器中的高速緩存數(shù)據(jù)的地址。標(biāo)記存儲器51除了標(biāo)記數(shù)據(jù)之外還存儲有效位。數(shù)據(jù)存儲器52包括分路-A(52A)至分路-D(52D),并在其中存儲高速緩存數(shù)據(jù)。數(shù)據(jù)存儲器52用具有較高訪問速度的半導(dǎo)體存儲器、例如SRAM實現(xiàn)。
清除/凍結(jié)寄存器43根據(jù)來自CPU的指令確定數(shù)據(jù)存儲器52中存儲的高速緩存數(shù)據(jù)是否從其中清除或在其中被凍結(jié),并根據(jù)從CPU提供的數(shù)據(jù)確定優(yōu)先權(quán)等級。LRU清除/凍結(jié)控制器42根據(jù)LRU算法使用清除/凍結(jié)寄存器43中存儲的數(shù)據(jù)重寫標(biāo)記存儲器51中的有效位。
優(yōu)先權(quán)數(shù)據(jù)更新單元44根據(jù)LRU清除/凍結(jié)控制器42的控制重寫存儲在LRU信息存貯器40中的高速緩存數(shù)據(jù)的優(yōu)先權(quán)級別。地址比較器57將從CPU或DMA(直接存儲器尋址)控制器提供的訪問地址與根據(jù)訪問地址從標(biāo)記存儲器51讀取的高速緩存地址進行比較,從而判斷高速緩存器是否命中。
控制部分58響應(yīng)地址比較器57的比較結(jié)果、從LRU信息存貯器40提供的優(yōu)先權(quán)數(shù)據(jù)和從外部提供的用于定時控制的讀使能信號,從而控制高速緩存器52的輸入/輸出和選擇器59。選擇器59選擇高速緩存器的一個分路,用于存儲從外部提供的數(shù)據(jù),選擇高速緩存器的另一個分路用于從其中讀數(shù)據(jù)。
在操作中,當(dāng)從CPU或DMA控制器提供一個訪問地址時,將訪問地址提供給標(biāo)記存儲器51,其中,將訪問地址變換成在數(shù)據(jù)存儲器52中使用的地址,并提供給地址比較器57。
將每個高速緩存數(shù)據(jù)的優(yōu)先權(quán)級別存儲在LRU信息存貯器40中。地址比較器57將讀操作的訪問地址與存儲在標(biāo)記存儲器51中的地址進行比較,以判斷高速緩存數(shù)據(jù)被命中還是未命中。如果高速緩存數(shù)據(jù)被命中,則將存儲在數(shù)據(jù)存儲器52中的數(shù)據(jù)輸出到CPU,而如果高速緩存數(shù)據(jù)未被命中,則從主存儲設(shè)備讀取存儲在其中的數(shù)據(jù),并存儲在數(shù)據(jù)存儲器52中。
將由清除/凍結(jié)指令或來自CPU的指令指定的每個高速緩存數(shù)據(jù)的優(yōu)先權(quán)級別存儲在清除/凍結(jié)寄存器43中。LRU清除/凍結(jié)控制器42根據(jù)優(yōu)先權(quán)級別數(shù)據(jù)控制優(yōu)先權(quán)數(shù)據(jù)更新單元44,以處理存儲在LRU信息存貯器40中的優(yōu)先權(quán)級別數(shù)據(jù),從而指定一個最優(yōu)清除/凍結(jié)操作。在清除的情況下,LRU清除/凍結(jié)控制器42還處理存儲在標(biāo)記存儲器51中的有效位,并使對應(yīng)于標(biāo)記地址的數(shù)據(jù)無效。
圖2顯示了LRU清除/凍結(jié)控制器42進行的凍結(jié)操作的流程圖。首先從清除/凍結(jié)寄存器43讀出高速緩存數(shù)據(jù)的凍結(jié)優(yōu)先權(quán)數(shù)據(jù)(步驟S1)。然后,從LRU信息存貯器40讀出所有記錄的最近最少使用的數(shù)據(jù)(步驟S2),然后對其進行修改,使得具有較高凍結(jié)優(yōu)先權(quán)級別的分路具有LRU優(yōu)先權(quán)級別中的較高優(yōu)先權(quán)(步驟S3和S4)。在步驟S3和S4中,每次在該組中的一個分路被訪問時進行修改。例如,如果分路-A具有凍結(jié)優(yōu)先權(quán),當(dāng)分路-D被訪問時分路-A經(jīng)受一次偽訪問操作,從而使分路-A具有較高的LRU優(yōu)先權(quán)用于保護。這補償了硬件限制,其中,在系統(tǒng)中未使用的高速緩存數(shù)據(jù)的優(yōu)先權(quán)級別自動下降。
關(guān)于LRU清除/凍結(jié)控制器42的清除操作,從清除/凍結(jié)寄存器43讀出在清除方面的優(yōu)先權(quán)級別。接著,從LRU信息存貯器40的所有記錄繼續(xù)讀出LRU優(yōu)先權(quán)級別信息,并進行更新,以使得相應(yīng)優(yōu)先權(quán)級別的分路變成最低等級的優(yōu)先權(quán)級別。另外,使標(biāo)記存儲器51中的有效位變?yōu)闊o效,以舍棄數(shù)據(jù)。
通過采用上述處理,以圖3中的影線標(biāo)記的、被更頻繁地訪問的記錄、即記錄52Bb,52Bc,52Ca,…經(jīng)受清除/凍結(jié)處理。
如上所述,高速緩存器采用以凍結(jié)指令修改的LRU技術(shù)。這是根據(jù)存儲在清除/凍結(jié)寄存器中的數(shù)據(jù)進行的,該數(shù)據(jù)包括清除/凍結(jié)指令和指定的優(yōu)先權(quán)順序。
在該公開文本所描述的半導(dǎo)體存儲器件中,進行修改處理,其中,當(dāng)讀出優(yōu)先權(quán)級別信息時,修改所有記錄的優(yōu)先權(quán)級別信息。另外,如果高速緩存器未命中,則高速緩存器接收新的訪問數(shù)據(jù),以新的訪問數(shù)據(jù)替換最近最少使用的分路,并重寫存儲在LRU信息存貯器40中的數(shù)據(jù)。
LRU信息存貯器40具有記錄41a、40b和40c,如圖3所示,用于存儲替換信息,而數(shù)據(jù)存儲器具有包括記錄52Aa、52Ab和52Ac的分路-A(52A)、包括記錄52Ba、52Bb和52Bc的分路-B(52B)和包括記錄52Ca、52Cb和52Cc的分路-C(52C)以及包括類似記錄的分路-D(未顯示)。例如,如果對于記錄40b選擇分路-B(52B)用于凍結(jié),記錄40b可能包括數(shù)據(jù)C>A>B,其中,如圖所示,分路-C最近最多使用,分路-B最近最少使用,而不管命中還是未命中分路-C。在這種情況下,如果高速緩存數(shù)據(jù)在以后未被命中,則由一新數(shù)據(jù)替換分路-B,重寫LRU信息存貯器,使得B>C>A。這應(yīng)該由LRU信息存貯器本身中的用于凍結(jié)分路-C的C>B>A進行替換。也就是說,在出現(xiàn)高速緩存數(shù)據(jù)的未命中之后,LRU信息存貯器必須被替換,這就產(chǎn)生一個問題,即修改替換需要處理時間,降低了高速緩存器的效率。
為了克服上述問題,在該公開文本所描述的高速緩存器中,將進行LRU算法的分路的數(shù)目限制為每組中的分路總數(shù)減1。在上述例子中,分路總數(shù)是4,而要進行LRU算法的分路數(shù)目是3。這提供了一種配置,其中,要經(jīng)受凍結(jié)的三個分路中的每一個都不作為最近最少使用的分路對待,因為要經(jīng)受凍結(jié)的分路的訪問歷史沒有表明這些分路中的每一個是處于LRU算法的順序中的第四個等級。于是,這三個分路中的每一個都不由新數(shù)據(jù)替換。
然而,這意味著不經(jīng)受凍結(jié)的剩下那個分路在每次高速緩存數(shù)據(jù)未被命中時都被替換,從而不能達到提供多個分路用于有效替換的最初目的。
例如,如圖3所示,分路-A、分路-B和分路-C的訪問歷史存儲在LRU信息存貯器40中,并且不考慮分路-D的訪問歷史。這意味著存儲在LRU信息存貯器中的數(shù)據(jù)在命中分路-A、分路-B和分路-C中的任何一個的情況下被更新,而存儲在LRU信息存貯器中的數(shù)據(jù)在命中分路-D的情況下不更新。于是,在圖5中,考慮在未命中的情況下將新數(shù)據(jù)存儲在分路-D中,這意味著高速緩存器用作為一個1-分路-成組相聯(lián)高速緩存器,并減小了命中的概率,降低了CPU的處理通過量。
另外,由于如上所述的高速緩存器可以只對多個分路中的一單個分路進行凍結(jié),當(dāng)一個程序具有對應(yīng)于高速緩存器中的兩個或多個分路的中等長度時,只有程序的一部分能進行凍結(jié),從而程序的剩余部分被從高速緩存器中舍棄,在每次程序被訪問時重復(fù)進行。這意味著在高速緩存器中未獲得足夠的凍結(jié)功能。
因此,本發(fā)明的一個目的是提供一種高速緩存器,具有凍結(jié)功能和較高通過量而不降低高速緩存器的通過量。
本發(fā)明的另一個目的是提供一種用于控制具有凍結(jié)功能和較高通過量的高速緩存器的方法。
本發(fā)明提供了一種高速緩存器裝置,包括具有多個分路的數(shù)據(jù)存貯部分,每個分路用于存儲所需數(shù)據(jù);LRU信息存貯部分,用于存儲多個分路的訪問信息;凍結(jié)信息存貯部分,用于存儲至少一個分路的凍結(jié)信息;替換控制器,用于根據(jù)訪問歷史和凍結(jié)信息產(chǎn)生替換信息,而不修改存儲在所述LRU信息存貯部分中的所述訪問歷史。
依據(jù)本發(fā)明的高速緩存器,由于與LRU信息存貯器分開提供了一個替換控制器,所以通過在每次高速緩存數(shù)據(jù)被替換時采用凍結(jié)信息,不修改原始訪問歷史,從而高速緩存器可以以更高操作速度進行操作。
本發(fā)明還提供了一種用于控制高速緩存器的方法,該高速緩存器具有多個用于儲存所需數(shù)據(jù)的分路。所述方法包括下列步驟存儲分路的訪問信息,存儲至少一個分路的凍結(jié)信息,以及根據(jù)所述訪問歷史和所述凍結(jié)信息產(chǎn)生一個替換信息,而不修改訪問歷史本身。
通過下面參考附圖的說明,本發(fā)明的上述和其他目的、特征和優(yōu)點將變得更加明顯。
圖1是常規(guī)高速緩存器的方框圖。
圖2是由圖1的高速緩存器中的常規(guī)LRU清除/凍結(jié)控制器進行的凍結(jié)處理的流程圖。
圖3是用于顯示清除/凍結(jié)控制的圖1的LRU信息存貯器和數(shù)據(jù)存儲器的構(gòu)造的示意圖。
圖4是依據(jù)本發(fā)明的一個實施例的高速緩存器的方框圖。
圖5A至5D是分別用于顯示在n-分路-成組相聯(lián)高速緩存器中的訪問歷史的示意圖,其中n=2,3,4和5。
圖6是顯示在圖4的高速緩存器中的訪問歷史的列表。
圖7是顯示在圖4的高速緩存器中的訪問歷史的另一個列表。
圖8是圖4的高速緩存器中的標(biāo)記存儲器和相關(guān)部分的方框圖。
圖9是圖4的高速緩存器中的數(shù)據(jù)存儲器和相關(guān)部分的方框圖。
圖10是圖4的高速緩存器中的LRU信息存貯器和相關(guān)部分的方框圖。
圖11是圖4的高速緩存器中的凍結(jié)存儲器和相關(guān)部分的方框圖。
圖12是根據(jù)凍結(jié)I/O指令的凍結(jié)組(set)處理的流程圖。
圖13是顯示在主存儲器中的地址空間安排的示意圖。
圖14是根據(jù)凍結(jié)組指令的凍結(jié)組處理的流程圖。
圖15是在圖4的高速緩存器中的替換部分和相關(guān)部分的方框圖。
現(xiàn)在參考附圖更加具體地說明本發(fā)明。
參考圖4,具有依據(jù)本發(fā)明的一個實施例的高速緩存器的計算機系統(tǒng)包括CPU 10、高速緩存器11、總線控制單元(BCU)12、系統(tǒng)總線13和主存貯設(shè)備14。將該實施例中的高速緩存器11實施為一個4-分路-成組相聯(lián)高速緩存器,在具有多組的高速緩存器的每組中包括四個分路。高速緩存器11采用LRU算法,將一些分路進行凍結(jié)。
CPU 10進行數(shù)據(jù)處理,同時控制計算機系統(tǒng)中的每個裝置。特別地,CPU 10向高速緩存器11提供一個地址信號“AD”,以發(fā)送/接收專門的指令或數(shù)據(jù)。
一旦“數(shù)據(jù)命中”、即對應(yīng)于從CPU 11提供的地址AD的數(shù)據(jù)被存儲在高速緩存器11中,則高速緩存器11提供存儲在其中的數(shù)據(jù)DT[]([]在這里一般用于將分路的序號夾在其間,有時可以省略)。
另一方面,一旦“未命中”、即對應(yīng)于從CPU 10提供的地址AD的數(shù)據(jù)DTM[]未存儲在高速緩存器11中,則高速緩存器向BCU 12提供一個地址信號BAD,從而請求BCU 12實現(xiàn)一個存儲器讀周期。
BCU 12通過系統(tǒng)總線13向主存貯設(shè)備14發(fā)送一個地址信號BAD,從而從主存貯設(shè)備14接收數(shù)據(jù)BDT。BCU 12然后向高速緩存器11提供數(shù)據(jù)BDT,高速緩存器11將數(shù)據(jù)BDT存儲在高速緩存器11的一特定地址,并將數(shù)據(jù)BDT發(fā)送給CPU 10。如果在高速緩存器11中沒有存儲新數(shù)據(jù)BDT的空間,則高速緩存器11將存儲在高速緩存器中的最近最少使用的數(shù)據(jù)寫回(通過復(fù)制)到主存貯設(shè)備14,并以新數(shù)據(jù)BDT替換最近最少使用的數(shù)據(jù)。
因此,CPU 10可以在其和高速緩存器11之間傳輸所需數(shù)據(jù)。
在圖4中,高速緩存器11包括標(biāo)記存儲器31、比較器模塊32、數(shù)據(jù)存儲器33、選擇器34、LRU信息存貯器(LRU存儲器)35、凍結(jié)信息存貯器(凍結(jié)存儲器)36、替換控制器37以及控制單元38。在圖4的例示性配置中,主存貯設(shè)備14具有1兆字節(jié)(MB)的存儲容量,而高速緩存器11的數(shù)據(jù)存儲器33具有1kB的存儲容量。數(shù)據(jù)存儲器33中包括四個分路,每個分路具有64個單獨的記錄,每個記錄中存儲四字節(jié)或32位的數(shù)據(jù)DTM。也就是說,每個分路具有256字節(jié)(64×4字節(jié))的存儲容量,四個分路存儲1kB數(shù)據(jù)。主存貯設(shè)備14具有4,096個單獨塊,每塊具有256字節(jié)的存儲容量。
從CPU 10提供的用于存取數(shù)據(jù)DTM[]的地址信號AD的位長度是20,其兩個最低有效位用作從數(shù)據(jù)的四個字節(jié)選擇出一個字節(jié)的字節(jié)地址。地址信號AD的中間六位用作選擇每個分路中的64個記錄之一的索引地址IAD。地址信號AD的最高有效12位用作選擇主存貯設(shè)備14的4,096塊之一的標(biāo)記地址。
標(biāo)記存儲器31存儲一個對應(yīng)于每個分路的每個記錄的標(biāo)記地址TAD以及表明存儲在主存貯設(shè)備14中的數(shù)據(jù)是否與存儲在數(shù)據(jù)存儲器33中的數(shù)據(jù)相符合的頁面重寫標(biāo)志位DRT。標(biāo)記存儲器31根據(jù)索引地址IAD訪問一個標(biāo)記地址TAD,其中索引地址IAD構(gòu)成從控制單元38提供的地址信號ADT的中間六位,并將存儲在其中的標(biāo)記地址TAD傳送給比較器模塊32。如果由于未命中將新數(shù)據(jù)DTM[]傳送給數(shù)據(jù)存儲器33,則標(biāo)記存儲器31存儲與指定分路的指定記錄相應(yīng)的地址中新數(shù)據(jù)的標(biāo)記地址TAD。
控制單元38在更新數(shù)據(jù)存儲器33的內(nèi)容之前從標(biāo)記存儲器31讀取一個頁面重寫標(biāo)志位DRTO[]。如果頁面重寫標(biāo)志位DRTO[]為“1”,在將數(shù)據(jù)存儲器33中的數(shù)據(jù)DTM[]復(fù)制回主存貯設(shè)備14之后,舍棄高速緩存器11中的數(shù)據(jù)。另一方面,如果頁面重寫標(biāo)志位DRTO[]為“0”,則控制單元38以新數(shù)據(jù)重寫數(shù)據(jù)存儲器33。
比較器模塊32包括在個數(shù)上對應(yīng)于每組中的分路個數(shù)的比較器。每個比較器將從控制單元38提供的標(biāo)記地址TAD[]與從標(biāo)記存儲器31提供的標(biāo)記地址TAM[]進行比較,其中標(biāo)記地址TAD[]是地址信號AD的最高有效12位,在比較結(jié)果為一致時發(fā)送一個輸出“1”作為命中信號,在未匹配時發(fā)送一個輸出“0”作為未命中信號。在這里將分路-0至分路-3的命中信號分別表示為HIT
至HIT[3]。
數(shù)據(jù)存儲器33具有一個對應(yīng)于四個分路的64個記錄的存儲器,用于存儲數(shù)據(jù)DTM。當(dāng)向其提供一個索引地址IADD時,將對應(yīng)于由索引地址IADD指定的四個分路中的記錄的數(shù)據(jù)從數(shù)據(jù)存儲器33取出或提供到數(shù)據(jù)存儲器33。
選擇器34根據(jù)對應(yīng)于命中信號HIT[]的選擇信號DSL[]選擇在從數(shù)據(jù)存儲器33讀出的數(shù)據(jù)中被命中的分路中的數(shù)據(jù)DTM[],并將選擇出的數(shù)據(jù)作為數(shù)據(jù)DTD[]發(fā)送給控制單元38。選擇器34還根據(jù)對應(yīng)于替換信號OUT[]的選擇信號DSL[]選擇分路之一,用于替換其中的數(shù)據(jù),并將選定分路中的數(shù)據(jù)發(fā)送給數(shù)據(jù)存儲器33。
LRU信息存貯器35為每個記錄存儲訪問歷史,該訪問歷史指示數(shù)據(jù)存儲器33中的分路的訪問順序。當(dāng)從控制單元38提供一個索引地址IADL時,LRU信息存貯器35傳送對應(yīng)于輸入索引地址的6-位訪問歷史。如果高速緩存器被命中,每次在命中信號HIT[]從比較器模塊32發(fā)送出時,控制單元38發(fā)送對應(yīng)于命中信號HIT[]的新訪問分路信號NAW[]。根據(jù)新訪問分路信號NAW[],LRU信息存貯器35更新其內(nèi)容作為訪問歷史。在這種情況下,NAW[n]=HIT[n],其中n=0到3。
另一方面,當(dāng)高速緩存器未被命中時,控制單元38向LRU信息存貯器35發(fā)送一個對應(yīng)于替換信號OUT[]的新訪問分路信號NAW[]。LRU信息存貯器35根據(jù)新訪問分路信號從LRU信息存貯器35的存儲器陣列檢索出一個對應(yīng)于索引地址IADT的訪問歷史,將最近最少使用的分路的信息DSL傳送給選擇器34,并將新訪問數(shù)據(jù)DTM[]字儲在數(shù)據(jù)存儲器33中。在這種情況下,NAW[n]=HIT[n],其中n=0到3。
凍結(jié)存儲器36根據(jù)CPU 10的指令為其中的每個記錄存儲用于凍結(jié)分路的凍結(jié)信息。當(dāng)從控制單元38提供出索引地址IADL時,凍結(jié)信息存貯器36傳送一個對應(yīng)于索引地址的3-位凍結(jié)信息FRZ[]。當(dāng)凍結(jié)寫數(shù)據(jù)FW[]和凍結(jié)寫使能信號FE[]從控制單元38提供到凍結(jié)存儲器36時,凍結(jié)存儲器36還在對應(yīng)于索引地址的地址寫一個凍結(jié)信息FRZ[]。3-位凍結(jié)信息FRZ[]可用于指定凍結(jié)四個分路中的三個。在下面的說明中,假設(shè)指定分路-0至分路-2用于凍結(jié),并且其凍結(jié)信息由FRZ
至FRZ[2]表示。
替換控制器37根據(jù)從LRU信息存貯器35提供的訪問歷史(或LRU信息)W[A,B]和從凍結(jié)信息存貯器36提供的凍結(jié)信息FRZ[],傳送表示哪一分路將由新數(shù)據(jù)替換的替換信號。替換信號包括對應(yīng)于分路-0至分路-3的四位OUT
至OUT[3]。
在“命中”操作中,將地址信號AD從CPU 10提供給控制單元38,并臨時存儲在其中。將在地址信號AD中作為中間六位的索引地址IADD和IADT提供給數(shù)據(jù)存儲器33和標(biāo)記存儲器31。在這種情況下,索引地址IADD和IADT都是相同的。從四個分路分路-0至分路-3中的每一個讀出對應(yīng)于索引地址IDAT的標(biāo)記存儲器31的內(nèi)容,并輸入到比較模塊32中的四個比較器中的每一個。同時,將對應(yīng)于索引地址IADD的四個分路的數(shù)據(jù)DTM[]讀出到選擇器34。
另一方面,將從控制單元38傳送出的地址AD中的標(biāo)記地址TAD提供給比較器32的另一個輸入,并在比較器32中與從標(biāo)記存儲器31提供的標(biāo)記地址TAM進行比較。比較器32然后發(fā)送一個命中信號HIT[L]=1,表示命中四個分路中的一個(L),并將剩余分路的命中信號HIT[N]設(shè)置為“0”,其中0≤N≤3并且N≠L。
控制單元38根據(jù)命中信號HIT[]產(chǎn)生一個選擇信號DSL和一個新訪問分路信號NAW[],并將選擇信號DSL[]傳送給選擇器34,將新訪問分路信號NAW[]傳送給LRU信息存貯器35。選擇器34選擇存儲在對應(yīng)于選擇信號DSL的分路中的數(shù)據(jù)DTM,傳送給CPU 10。
此后,LRU信息存貯器35根據(jù)對應(yīng)于命中信號HIT[]的新訪問分路信號NAW[]重寫訪問歷史,以指明新命中分路是最近最多使用的分路。
在高速緩存器“未命中”的情況下,直至比較器模塊32的比較的操作與上述的“命中”情況相同。如果比較器模塊32傳送HIT[n]=“0”,其中n=0至3,表明新訪問數(shù)據(jù)未命中高速緩存器中的四個分路中的任何一個,則控制單元38向BCU 12傳送存儲在其中的地址信號BAD,BCU 12根據(jù)地址BAD從主存貯設(shè)備14讀取數(shù)據(jù)BDT。
控制單元38將對應(yīng)于地址信號BAD的索引地址IADL傳送給LRU信息存貯器35和凍結(jié)信息存貯器36,并讀出主存貯設(shè)備14中存儲的數(shù)據(jù)。響應(yīng)于此,LRU信息存貯器35和凍結(jié)信息存貯器36分別向替換控制器37傳送訪問歷史W[]和凍結(jié)信息FRZ[]。替換控制器37根據(jù)所接收的信號產(chǎn)生一個替換信號OUT[],并將其傳送給控制單元38,控制單元38隨即發(fā)送與替換信號OUT[]相對應(yīng)的選擇信號DSL[]。
將通過BCU 12讀出的數(shù)據(jù)BDT輸入到控制單元38,然后傳送給CPU 10。控制單元38將對應(yīng)于地址信號BAD的索引地址IADD提供給數(shù)據(jù)存儲器33,并將數(shù)據(jù)BDT作為數(shù)據(jù)DTD通過選擇器34??刂茊卧?8檢查存儲在標(biāo)記存儲器31中的頁面重寫標(biāo)志位DRTO[],如果數(shù)據(jù)存儲器33的內(nèi)容不同于主存貯設(shè)備14的內(nèi)容,將數(shù)據(jù)存儲器33的內(nèi)容寫回主存貯設(shè)備14。此后,選擇器34將數(shù)據(jù)DTM[]=DTD傳送給數(shù)據(jù)存儲器33中的由選擇信號DSL指定的分路。數(shù)據(jù)存儲器33將數(shù)據(jù)DTM[]存儲在由索引地址IADD指定的存儲單元。
接著,控制單元38向LRU信息存貯器35輸出表示替換分路的信息的新訪問分路信號NAW[],LRU信息存貯器35根據(jù)新訪問分路信號重寫訪問歷史。在這種情況下,NAW[n]=OUT[n],其中n=0到3。
基本上,數(shù)據(jù)到高速緩存器11的存儲與上述的數(shù)據(jù)從高速緩存器11的讀出相類似地進行。
下面將說明LRU信息存貯器35的控制。圖5A到5D顯示了n-分路-成組相聯(lián)高速緩存器的要存儲在LRU信息存貯器35中的訪問歷史的位W[A,B],其中n分別等于2到5。在圖5A到5D的每一個中,如果在箭頭尖部顯示的分路-A最近較多被訪問,則假設(shè)分路-A和分路-B的位W[A,B]為“1”,如果在箭頭起點顯示的分路-B最近較多被訪問,則假設(shè)位W[A,B]為“0”。
對于圖5A到5D所示的例子,LRU信息存貯器35包括多個存儲單元,對應(yīng)于用于指定在這些附圖中顯示的所有分路中的訪問歷史的位的個數(shù)與在每個分路中提供的記錄的個數(shù)的乘積。
在圖5A到5D所示的例子中,用于定義訪問歷史的位的個數(shù)(Q)由下式表示Q=Σi=2n(i-1)=n(n-1)/2]]>于是,在圖5A到5D中用于指定訪問歷史的位的個數(shù)分別是1、3、6和10,對應(yīng)于n=2到5。
例如,如果在圖5A到5D中W
是“0”,則表示分路-1比分路-0最近更多地被訪問。在這種情況下,如果分路-0后來被命中,W
假設(shè)為“1”,而如果分路-1后來被命中,W
保持為“0”。
圖6顯示了對應(yīng)于圖5C所示的4-分路-成組相聯(lián)的表,其中,為分路-0到分路-3中的訪問歷史的每種情況顯示了在每兩個分路(分路-A和分路-B)之間的訪問歷史的位W[A,B]。左列(t4←t3←t2←t1)顯示了基于最近最多訪問的分路在每個方框中分類的諸分路的訪問歷史,而右邊六列表示訪問歷史的各個位W[A,B]。例如,如果以分路-2←分路-1←分路-3←分路-0這個順序命中分路,其中分路-2是最近最多訪問的分路,分路-0是最近最少使用的分路,則從W
到W[2,3]的訪問歷史的六位為“000011”。另外,如果在訪問歷史“000011”之后命中分路-1,則訪問歷史的順序變?yōu)榉致?1←分路-2←分路-3←分路-0,W
到W[2,3]的訪問歷史的六位為“000111”。
參考圖8,顯示了標(biāo)記信息存貯器(標(biāo)記存儲器)31和比較模塊32,標(biāo)記存儲器31包括標(biāo)記地址譯碼器61、標(biāo)記數(shù)據(jù)寫電路62、以及包括四個存儲塊31a至31d的存儲單元陣列,比較器模塊32包括四個比較器32a至32d。
每個存儲塊31a至31d對于數(shù)據(jù)存儲器33中的一個相應(yīng)分路而配置,以存儲分路中每個記錄的標(biāo)記地址TAD和一個表示主存貯設(shè)備14的內(nèi)容是否與數(shù)據(jù)存儲器33中的內(nèi)容一致的頁面重寫標(biāo)志位(dirty bit)DRT。每個存儲塊31a至31d由具有對應(yīng)于分路個數(shù)(4)與記錄個數(shù)(64)與地址線的個數(shù)(14位)加1的和的乘積的容量的SRAM實現(xiàn),即3840位的SRAM。
標(biāo)記地址譯碼器61從控制單元38接收索引地址IADT的中間六位,對該中間六位進行譯碼,以啟動存儲塊31a至31d的一個字線,從而選擇分路中的一個記錄。存儲塊31a至31d將選定記錄的標(biāo)記信息TAM
至TAM[3]傳送給比較器模塊32,將頁面重寫標(biāo)志位DRTO[]傳送給控制單元38。
標(biāo)記寫電路62從控制單元38接收索引地址IADT、選擇信號DSL[]和頁面重寫標(biāo)志位寫信息DRTI[]。如果被訪問數(shù)據(jù)未被命中,則標(biāo)記寫電路62在由選擇信號DSL[]指定的分路中配置的索引地址ADT指定的記錄中寫入新標(biāo)記地址TAD,并將“0”存儲在頁面重寫標(biāo)志位DRT中。如果訪問數(shù)據(jù)被命中,則標(biāo)記寫電路62將“1”寫在頁面重寫標(biāo)志位DRT中,同時保持標(biāo)記地址TAD不變。
存儲塊31a至31d分別向比較器32a至32d輸出由地址信號ADT的中間六位的索引地址IADT指定的標(biāo)記地址TAM
至TAM[3],并存儲從標(biāo)記寫電路62提供的標(biāo)記地址TAD。存儲塊31a至31d同樣存儲并讀頁面重寫標(biāo)志位DRT。將從存儲塊31a至31d讀出的頁面重寫標(biāo)志位DRT作為頁面重寫標(biāo)志位讀信息DRTO[]傳送到控制單元38。
控制單元38檢查頁面重寫標(biāo)志位讀信息DRTO[],如果頁面重寫標(biāo)志位讀信息DRTO[]為“1”,在更新數(shù)據(jù)存儲器33的內(nèi)容之前將數(shù)據(jù)DTD寫回主存貯設(shè)備14。另一方面,如果頁面重寫標(biāo)志位讀信息DRTO[]為“0”,控制單元38以新數(shù)據(jù)DTD重寫數(shù)據(jù)存儲器33。除了上述功能之外,控制單元38還具有保持從CPU 10提供的地址信號ADT的功能,以便輸出作為地址信號的最高有效位的標(biāo)記地址TAD、作為地址信號的中間位的索引地址IAD、以及作為地址信號的最低有效位的字節(jié)地址(字地址)。
參考圖9,數(shù)據(jù)存儲器33包括數(shù)據(jù)存儲器地址譯碼器(DM地址譯碼器)64和存儲單元陣列,存儲單元陣列包括對應(yīng)于四個分路的四個存儲塊33a至33d。數(shù)據(jù)存儲器33在對應(yīng)于索引地址IADD的地址存儲存儲在標(biāo)記存儲器31中的標(biāo)記地址TAD和存儲在主存貯設(shè)備14中的數(shù)據(jù)DT。
存儲塊33a至33d在由索引地址IADD指定的地址存儲在標(biāo)記存儲器31的各個塊31a至31d中存儲的標(biāo)記地址,以及在主存貯設(shè)備14中存儲的數(shù)據(jù)。索引地址IADD不同于訪問時的索引地址IADL。數(shù)據(jù)存儲器33由具有等于高速緩存器11中的分路個數(shù)與每個分路中的記錄個數(shù)與每個分路的每個記錄的字節(jié)個數(shù)的乘積的存儲容量的SRAM實現(xiàn),在這個例子中即為4×64×4≈1k字節(jié)。
DM地址譯碼器64接收索引地址IADD、即從控制單元38提供的地址信號的中間六位,并對其進行譯碼,用于激活數(shù)據(jù)存儲器33的對應(yīng)于一個記錄的一個字線。存儲塊33a至33d向選擇器34輸出選定記錄的數(shù)據(jù)DTM
至DTM[3]。
選擇器34根據(jù)比較器模塊32檢測到一致的分路,選擇從由索引地址指定的存儲單元讀出的四個數(shù)據(jù)DTM
至DTM[3]中的一個,然后將所選擇的數(shù)據(jù)作為數(shù)據(jù)DTD傳送給控制單元38。一旦未命中高速緩存器數(shù)據(jù),其中數(shù)據(jù)存儲器33將被新訪問數(shù)據(jù)重寫,則數(shù)據(jù)存儲器33通過與讀出數(shù)據(jù)DTM[]類似地選擇記錄而存儲從主存貯設(shè)備14讀出的數(shù)據(jù)DTD。
更具體地說,選擇器34從數(shù)據(jù)存儲器33的存儲塊33a至33d接收數(shù)據(jù)DTM
至DTM[3],并根據(jù)在命中高速緩存器之后從控制單元38提供的選擇信號DSL[]選擇數(shù)據(jù)DTD中的一個,然后將選擇的數(shù)據(jù)DTD傳送給控制單元38,選擇信號DSL[]指定數(shù)據(jù)存儲器33中的一個分路。一旦未命中,選擇器34向由選擇信號DSL指定的一個分路傳送從主存貯設(shè)備14讀出的數(shù)據(jù)BAD。將數(shù)據(jù)作為新數(shù)據(jù)DTM[]存儲在由索引地址IADD指定的記錄中。
控制單元38中包括內(nèi)部選擇器65,內(nèi)部選擇器65選擇命中信號HIT[]和替換信號OUT[]中的一個,并將選擇的信號作為選擇信號DSL傳送給選擇器34。也就是說,一旦命中高速緩存器,則DSL[n]=HIT[n],而一旦未命中,則DSL[n]=OUT[n],其中n=0至3。
參考圖10,LRU信息存貯器35包括用于譯碼索引地址IADL的LRU地址譯碼器、具有六個用于存儲每個記錄的一訪問歷史位的存儲塊的存儲單元陣列15、用于產(chǎn)生LRU信息數(shù)據(jù)的數(shù)據(jù)發(fā)生器16、以及用于將LRU信息寫到存儲塊15的寫電路67。
存儲塊15以6位信息存儲每個記錄的訪問歷史。每個存儲塊15存儲一個相應(yīng)位W[A,B],如圖6和圖7所示。圖7顯示了訪問歷史位,最近最少訪問的分路在一個方框中。例如,第一個方框顯示了分路-0是最近最少使用的分路的情況,并定義一位的替換信號OUT

LRU信息存貯器35的存儲塊15由具有對應(yīng)于每個分路中的記錄個數(shù)與分路的存儲歷史的位的個數(shù)的乘積的存儲容量、即64×6=384位的SRAM實現(xiàn)。
LRU地址譯碼器66接收從控制單元38提供的索引地址IADL,對其進行譯碼,以便激活一個字線。存儲塊15將一個選定記錄的訪問歷史位傳送給替換控制器37。
在控制單元38中提供的另一個內(nèi)部選擇器68選擇命中信號HIT[]和替換信號OUT[]中的一個,并將選定的信號作為新訪問分路信號NAW[]傳送給LRU數(shù)據(jù)發(fā)生器16。一旦命中,NAW[n]=HIT[n],其中n=0至3,而一旦未命中,NAW[n]=OUT[n]。
LRU數(shù)據(jù)發(fā)生器16根據(jù)NAW[]產(chǎn)生一個6位LRU寫數(shù)據(jù)LW[]和一個6位LRU寫使能信號LE[],并傳送給存儲塊15,用于更新其內(nèi)容。
在這里,對于分路-A和分路-B,6位LRU寫使能信號中的一位和6位LRU寫數(shù)據(jù)中的一位分別由LE[A,B]和LW[A,B]表示。在分路-L被命中之后,寫數(shù)據(jù)LW[A,B]為LW[A,L]=0以及LW[L,B]=1,其中A<L<B。在這種情況下,寫使能信號可以由LE[A,L]=LE[L,B]=1表示。
在LRU算法中,訪問歷史被對于分路的每個組合在每兩個分路之間哪個分路最近最多被訪問這個事實所限定。于是,用N(N-1)/2位表示N分路的訪問歷史。將包括多個位W[A,B]的訪問歷史存儲在LRU信息存貯器35的存儲塊15中。
訪問歷史W[]在每次高速緩存器11被命中并被訪問以存儲最近的數(shù)據(jù)時被更新,其中命中數(shù)據(jù)被變?yōu)樽罱疃嘣L問的數(shù)據(jù)。如果高速緩存器未被命中,更新訪問歷史,以便將替換最近最少使用的數(shù)據(jù)的新數(shù)據(jù)定義為最近最多使用的數(shù)據(jù)。然而,在這種情況下,如果最近最多使用的數(shù)據(jù)再次被命中,則數(shù)據(jù)不被替換。
一旦更新了訪問歷史,LRU數(shù)據(jù)發(fā)生器16根據(jù)分路命中或替換信息產(chǎn)生如表-1所示的訪問歷史。

LRU數(shù)據(jù)寫電路16重寫由LRU寫使能信號LE[A,B]指定的6-位訪問歷史的三位。表2顯示了每種命中情況下的LRU寫使能信號。
表2
LRU數(shù)據(jù)發(fā)生器16在命中分路-L之后根據(jù)表1和表2產(chǎn)生新訪問歷史,并將新訪問歷史寫到指定位上。例如,如果分路=1被命中,LRU數(shù)據(jù)寫電路67以新數(shù)據(jù)“011”重寫訪問歷史的位W
、W[1,2]和W[1,3],從而獲得一個新訪問歷史如“0dd11d”,其中“d”保持訪問歷史的先前位。
參考圖11,凍結(jié)信息存貯器36包括存儲單元陣列20、凍結(jié)訪問譯碼器69和凍結(jié)數(shù)據(jù)寫電路70。
存儲單元陣列(凍結(jié)存儲陣列)20為其中的每個記錄存儲分路的凍結(jié)信息FRZ[]。分路-0至分路-2的凍結(jié)數(shù)據(jù)分別對應(yīng)于FRZ
至FRZ[2]。如果存儲的凍結(jié)信息FRZ[]假設(shè)為“1”,則使相應(yīng)數(shù)據(jù)被凍結(jié),不由新訪問數(shù)據(jù)替換,而如果存儲的凍結(jié)信息假設(shè)為“0”,則可以用新訪問數(shù)據(jù)替換相應(yīng)數(shù)據(jù)。
凍結(jié)存儲陣列20由具有對應(yīng)于分路個數(shù)減1與每個分路中的記錄個數(shù)的乘積的存儲容量、即3×64=192位的SRAM實現(xiàn)。存儲容量可以根據(jù)要進行凍結(jié)的面積而改變。例如,對于凍結(jié)四個分路的情況,存儲容量可以具有4×64位,對于凍結(jié)單個分路的情況,存儲容量可以具有1×64位。
凍結(jié)地址譯碼器69接收索引地址IADL,其中索引地址IADL是從控制單元38提供的地址信號的中間六位,然后對其進行譯碼,以激活凍結(jié)存儲陣列20的一個字線用于訪問。凍結(jié)存儲陣列20將選定記錄的凍結(jié)信息FRZ
至FRZ[2]傳送給替換控制器37。在本實施例的一種修改方案中,通過使用LRU地址譯碼器66來訪問凍結(jié)存儲陣列20,可以省略凍結(jié)地址譯碼器69。另外,例如LRU信息存貯器35的存儲陣列15和凍結(jié)存儲陣列20例如可以用具有公共字線的單個SRAM來實現(xiàn)。
凍結(jié)數(shù)據(jù)寫電路70根據(jù)從控制單元38提供的凍結(jié)寫數(shù)據(jù)FW[]和凍結(jié)寫使能信號FE[]將凍結(jié)信息寫在凍結(jié)存儲陣列20中由索引地址IADL指定的存儲單元。例如,如果分路-K(0≤K≤2)將要進行凍結(jié),將凍結(jié)寫數(shù)據(jù)FW[K]=1和凍結(jié)寫使能信號FE[K]=1和FE[A]=0(A≠K)提供給凍結(jié)數(shù)據(jù)寫電路70,凍結(jié)數(shù)據(jù)寫電路70將所需數(shù)據(jù)寫入凍結(jié)存儲陣列20。
分路-K從凍結(jié)狀態(tài)的釋放可以通過在控制單元38中將凍結(jié)寫數(shù)據(jù)FW[K]設(shè)置在“0”以及將凍結(jié)寫使能信號FE[K]設(shè)置在“1”并將凍結(jié)寫數(shù)據(jù)FW[K]和凍結(jié)寫使能信號FE[K]傳送給凍結(jié)數(shù)據(jù)寫電路70來實現(xiàn),其中凍結(jié)數(shù)據(jù)寫電路70將凍結(jié)寫數(shù)據(jù)寫到凍結(jié)存儲陣列20。
參考圖12,顯示了在計算機系統(tǒng)啟動之后將凍結(jié)信息寫到凍結(jié)存儲陣列20的過程的流程圖。在該過程中,通過應(yīng)用凍結(jié)I/O指令,復(fù)制存儲在主存貯設(shè)備14的指定單元中的數(shù)據(jù),用于將數(shù)據(jù)存儲在高速緩存器11中的指定位置。主存貯設(shè)備14具有一個存儲器空間,如圖13所示,包括在地址ADR0和ADR4-1之間的程序區(qū)域,以及在地址ADR4以上的數(shù)據(jù)區(qū)域。在這個例子中,將要經(jīng)受凍結(jié)的程序存儲在主存貯設(shè)備14的地址ADR2和地址ADR3-1之間。
數(shù)據(jù)區(qū)域包括在地址ADR5和ADR6-1之間的數(shù)據(jù)區(qū)域內(nèi)的工作區(qū)域,用于在將程序傳輸?shù)礁咚倬彺嫫?1的分路-0以進行凍結(jié)之前臨時存儲程序。類似地,在地址ADR6和地址ADR7-1之間以及在地址ADR7和地址ADR8-1之間的工作區(qū)域是為分路-1和分路-2配置的。在這個例子中,將存儲在地址ADR2和地址ADR3-1之間的并要被凍結(jié)的程序傳輸給分路-1。
在圖12的步驟S11,通過塊復(fù)制把要凍結(jié)的程序復(fù)制到為分路-1配置的在地址ADR6和地址ADR7-1之間的工作區(qū)域,以便為使用預(yù)先建立好的標(biāo)準(zhǔn)凍結(jié)I/O指令將工作區(qū)域中的數(shù)據(jù)復(fù)制到分路-1作準(zhǔn)備。
在步驟S12,CPU 10執(zhí)行凍結(jié)I/O指令,以設(shè)置主存貯設(shè)備在ADR2/ADR3-1的起始/結(jié)束地址以及在分路-1的程序的目的單元。在另一個例子中,CPU 10可以與分路信息分開傳送主存貯設(shè)備中的程序的地址信息,或者可以根據(jù)分路信息產(chǎn)生地址信息。
在步驟S13,控制單元38向總線控制單元(BCU)12輸出一個地址信號BAD,并從主存貯設(shè)備14讀出程序的數(shù)據(jù)BDT。在這種情況下,將讀地址從地址ADR6增至ADR7-1。
在步驟S14,控制單元38將對應(yīng)于在步驟S13提供的讀地址BAD的索引地址IADD傳送給數(shù)據(jù)存儲器33,將數(shù)據(jù)BDT和選擇信號DSL傳送給選擇器34,從而將數(shù)據(jù)DAT存儲在數(shù)據(jù)存儲器33的分路-1中。
在步驟S15,控制單元38將對應(yīng)于讀地址BAD的索引地址IADL傳送給LRU信息存貯器35和凍結(jié)信息存貯器36,并將新訪問分路信息、即NAW[1]=1傳送給LRU信息存貯器35??刂茊卧?8然后將凍結(jié)寫數(shù)據(jù)FW[1]=1和凍結(jié)寫使能信號FE[1]=1傳送給凍結(jié)信息存貯器36,從而將凍結(jié)數(shù)據(jù)FRZ[1]=1寫到凍結(jié)存儲陣列20的地址IADL,并將分路-1的相應(yīng)地址設(shè)置為凍結(jié)。
在步驟S16,控制單元38遞增地址DR。在步驟S17,控制單元檢查地址ADR是否到達結(jié)束地址ADR7。如果地址低于結(jié)束地址,則步驟返回步驟S13,重復(fù)上述過程,如果地址達到結(jié)束地址,則結(jié)束凍結(jié)傳輸過程。
參考圖14,顯示了將凍結(jié)信息存儲到凍結(jié)存儲陣列20的另一個過程的流程圖。
在這個例子中,把要被凍結(jié)并存儲在主存貯設(shè)備的地址ADR1(圖13)的程序傳輸?shù)礁咚倬彺嫫鞯姆致?2,并應(yīng)用凍結(jié)指令進行凍結(jié)。
在步驟S21,從CPU提供一個加載指令,用于讀取主存貯設(shè)備14的地址ADR1中存儲的一單行程序,同時將地址ADR1提供給控制單元38。
在步驟S22,控制單元38將對應(yīng)于地址ADR5的索引地址IADT傳送給標(biāo)記信息存貯器31,并將一個標(biāo)記地址TAD傳送給比較器模塊32。
在步驟S23,檢查比較器模塊32是否傳送一命中信號HIT[]。如果比較器模塊32傳送一命中信號,則步驟進行到步驟S35,如果否,則進行到步驟S24。
在步驟S24,控制單元38將地址信號BAD=ADR1傳送給BCU12,并從主存貯設(shè)備14讀出要凍結(jié)的數(shù)據(jù)BDT。
在步驟S25,控制單元38將對應(yīng)于地址ADR1的索引地址IADL傳送給凍結(jié)信息存貯器36,并接收凍結(jié)信息FRZ
-FRZ[2]。
在步驟S26,控制單元38判斷凍結(jié)是否有可能進行。如果凍結(jié)信息FRZ
-FRZ[2]中的一位為“0”,則控制單元38判斷為凍結(jié)有可能進行,進行到步驟S27。另一方面,如果凍結(jié)信息FRZ
-FRZ[2]中的每個位都為“1”,則控制單元判斷為凍結(jié)不可能進行,結(jié)束該過程。
在步驟S27,控制單元38將對應(yīng)于地址ADR1的索引地址IADL傳送給LRU信息存貯器35,并接收替換信號OUT
至OUT[3]。
在步驟S28,控制單元38檢查替換信號OUT
至OUT[2]。如果OUT
至OUT[2]中的一個為“1”,則控制單元38進行到步驟S30,而如果OUT[3]為“1”,則進行到步驟S29。
在步驟S29,控制單元38按照FRZ[2]、FRZ[1]和FRZ
的順序檢查凍結(jié)信息,從而檢測不被凍結(jié)的分路,即具有凍結(jié)信息FRZ[F]=0的分路(分路-F)。將首先檢測到的分路F確定為要被替換的主題(subject)分路,過程進行到步驟S31。
在步驟S30,將具有OUT[F]=1的分路(分路-F)確定為要被替換的主題分路。
在步驟S31,控制單元38將對應(yīng)于地址ADR1的索引地址IADT傳送給標(biāo)記存儲器31,從而接收一個頁面重寫標(biāo)志位讀信息DRTO[F]。
在步驟S32,控制單元38檢查頁面重寫標(biāo)志位讀信息DRTO[F],如果DRTO[F]為“1”,則進行到步驟S33,而如果DRTO[F]為“0”,則進行到步驟S34。
在步驟S33,控制單元38將對應(yīng)于地址ADR1的索引地址IADD傳送給數(shù)據(jù)存儲器33,接收要被替換的主題數(shù)據(jù)DTM[F],并將其傳送給BCU 12,將對應(yīng)于地址ADR1的索引地址IADT傳送給標(biāo)記存儲器33。控制單元38接收要被替換的主題分路的地址TAM[F],將地址信號BAD傳送給BCU 12,并將數(shù)據(jù)存儲器33的內(nèi)容復(fù)制回主存貯設(shè)備14。接著,控制單元38將對應(yīng)于標(biāo)記地址TAD的頁面重寫標(biāo)志位重寫為“0”。
在步驟S34,控制單元38將受凍結(jié)的數(shù)據(jù)BDT寫到要被替換的數(shù)據(jù)存儲器33的分路-F中。
在步驟S35,CPU 10執(zhí)行凍結(jié)設(shè)置指令,從而允許控制單元38將對應(yīng)于地址ADR1的索引地址傳送到LRU信息存貯器35和凍結(jié)信息存貯器36,并將新訪問分路信息NAW[F]=1傳送給LRU信息存貯器35??刂茊卧?8將凍結(jié)寫數(shù)據(jù)FW[F]=1和凍結(jié)寫使能信號FE[F]=1傳送給凍結(jié)存儲器36,從而將FRZ[F]=1存儲在凍結(jié)存儲陣列20的地址IADL中,并將分路-F的對應(yīng)地址設(shè)置為凍結(jié)狀態(tài)。
還有兩種技術(shù)用于將凍結(jié)信息寫到凍結(jié)存儲陣列20,包括“預(yù)置技術(shù)”和“請求式技術(shù)”。預(yù)置技術(shù)是這樣一種技術(shù),即在開始或執(zhí)行程序之前存儲高速處理所需的程序或數(shù)字?jǐn)?shù)據(jù),用于高速緩存器的凍結(jié)。更具體地,預(yù)置操作由CPU實現(xiàn),CPU從主存貯設(shè)備的指定地址讀取數(shù)據(jù),并根據(jù)I/O指令將數(shù)據(jù)直接寫到數(shù)據(jù)存儲器、標(biāo)記存儲器和凍結(jié)存儲器。
請求式技術(shù)是這樣一種技術(shù),即首先將高速處理所需的專門程序或數(shù)字?jǐn)?shù)據(jù)無凍結(jié)地存儲在高速緩存器中。在執(zhí)行程序期間,將程序或數(shù)據(jù)進行凍結(jié)或從凍結(jié)狀態(tài)釋放。更具體地,CPU從主存貯設(shè)備讀取程序或數(shù)字?jǐn)?shù)據(jù),并將其傳送給高速緩存器。CPU為存儲了程序的分路讀取信息,然后直接存儲用于凍結(jié)或從凍結(jié)狀態(tài)釋放在高速緩存數(shù)據(jù)的記錄地址中的程序的指令數(shù)據(jù),以及對應(yīng)于該分路的凍結(jié)存儲器的位。
參考圖15,替換控制器37由有線邏輯電路實現(xiàn),包括凍結(jié)控制器21和LRU譯碼器22。凍結(jié)控制器由多個邏輯元件實現(xiàn),接收6位訪問信息W
至W[2,3]和3位凍結(jié)信息FRZ
至FRZ[2],以傳送6位中間信息M
至M[2,3]。
LRU譯碼器22也由邏輯元件實現(xiàn),根據(jù)6位中間信息M
至M[2,3]傳送一個包括三位OUT
至OUT[3]的替換信號。
現(xiàn)在將說明第一種情況下的替換控制器37的操作,其中,凍結(jié)信息的所有位FRZ
至FRZ[2]為“0”,因此不執(zhí)行凍結(jié)處理。在這種情況下,M[A,B]=W[A,B]。
LRU譯碼器22根據(jù)從LRU信息存貯器35讀出的6位訪問歷史W
至W[2,3]檢測四個分路中的最近最少使用的分路,從而輸出一個替換信號OUT
至OUT[3]。在任何情況下,替換信號OUT
至OUT[3]中的一位假設(shè)為“1”,剩下的假設(shè)為“0”,其中對應(yīng)于假設(shè)為“1”的位的分路將被替換。
如同從圖7可理解的,例如,如果分路-0是最近最少使用的分路,則訪問歷史為使得W
、W
和W
取“0”。根據(jù)圖7,替換信號的位OUT
至OUT[3]按照訪問歷史可以由下式表示OUT
=(!W
)×(!W
)×(!W
)(1)OUT[1]=(W
)×(!W[1,2])×(!W[1,3]) (2)OUT[2]=(W
)×(W[1,2])×(!W[2,3])(3)OUT[3]=(W
)×(W[1,3])×(W[2,3]) (4)其中,在一特定信號之前放置的“!”表示帶有的“!”信號是指定信號的反轉(zhuǎn)。
在更一般性的表達中,在N-分路-成組相聯(lián)高速緩存器中,中間信息M[A,B]包括(N(N-1)/2)個位,每位定義在每兩個分路、即分路-A和分路-B之間。按照訪問歷史WA,B]和凍結(jié)信息FRZ[A]和FRZ[B]將中間信息的每位M[A,B]定義如下M[A,B]=W[A,B]+FRZ[A]其中0≤A<B=N-1(5)M[A,B]=(W[A,B]+FRZ[A])×!FRZ[B]其中0≤A<B<N-1(6)在凍結(jié)控制器21中計算中間信息。
中間信息用于在LRU譯碼器22中產(chǎn)生一個替換信息。替換信息由中間信息定義如下OUT
=Πj=1N-1!M
]]>
其中0<X<N-1OUT[N]=Πj=0N-2M[j,N-1]]]>一般地,∏函數(shù)定義如下Πi=0nf(i)=f(0)×f(1)×…×f(n)]]>替換信息可以以更具體的形式表示如下OUT
=!M
×!M
×…×!M
OUT[1]=M
×!M[1,2]×…×!M[1,N-1]OUT[2]=M
×M[1,2]×…×!M
……OUT[N-1]=M
×M[1,N-1]×…×M[N-2,N-1]一般地,4-分路-成組相聯(lián)高速緩存器具有關(guān)于三個分路、即FRZ
、FRZ[1]和FRZ[2]的凍結(jié)信息,剩下一個分路(分路-4)是要被替換的分路。在4-分路-成組相聯(lián)高速緩存器中,中間信息由下式表不M
=(W
+FRZ
)×!FRZ[1]M
=(W
+FRZ
)×!FRZ[2]M
=(W
+FRZ
)M[1,2]=(W[1,2]+FRZ[1])×!FRZ[2]M[1,3]=(W
+FRZ[1])M[2,3]=(W[2,3]+FRZ[2])在這種情況下,替換信息由下式表示OUT
=!M
×!M
×!M
OUT[1]=M
×!M[1,2]×!M[1,3]OUT[2]=M
×M[1,2]×!M[2,3]OUT[3]=M
×M[1,3]×M[2,3]
接著,將給出4-分路-成組相聯(lián)高速緩存器的中間信息和替換信息的具體例子。
首先,考慮一種情況,在高速緩存器中不考慮凍結(jié)信息,并且訪問歷史表明在最近最多使用基礎(chǔ)上的分路-0、分路-1、分路-2和分路-3的訪問順序,即如圖7的頂行所示的分路-0←分路-1←分路-2←分路-3。在這種情況下,替換信息如下OUT
=!1×!0×!1=0OUT[1]=1×!0×!1=0OUT[2]=0×0×!1=0以及OUT3=1×1×1=1于是,分路-3是最近最少使用的分路,是接著要替換的主題分路。
然而,在本發(fā)明中,因為LRU算法由凍結(jié)信息修改了,所以情況是不同的。假設(shè)訪問歷史表明在最近最多使用基礎(chǔ)上的分路-3、分路-1、分路-2和分路-0的訪問順序,如圖6的命中分路-3的第四個數(shù)據(jù)方框中的第四行所示(從下面數(shù)第三行),并且分路-0先被凍結(jié)。在這種情況下,如圖6所示,訪問歷史表明W
、W
、W
、W[1,2]、W[1,3]和W[2,3]=“000100”,而凍結(jié)信息表明FRZ
=1、FRZ[1]=1以及FRZ[2]=1。
中間信息的計算如下M
=(W
+FRZ
)×!FRZ[1]=1M
=(W
+FRZ
)×!FRZ[2]=1M
=(W
+FRZ
)=1M[1,2]=(W[1,2]+FRZ[1])×!FRZ[2]=1M[1,3]=(W
+FRZ[1])=0M[2,3]=(W[2,3]+FRZ[2])=0
由上式獲得的結(jié)果顯示出,用中間信息表示的訪問歷史對應(yīng)于分路-0、分路-3、分路-1和分路-2的訪問順序,如圖6的第五行所示。也就是說,可以表達為,雖然LRU信息存貯器中存儲的訪問歷史本身未改變,但從凍結(jié)控制器提供的用中間信息表示的訪問歷史由訪問順序分路-0、分路-3、分路-1和分路-2重寫,其中分路-0是最近最多使用的分路。
LRU譯碼器22傳送如下的替換信息OUT
=!M
×!M
×!M
=0OUT[1]=M
×!M[1,2]×!M[1,3]=0OUT[2]=M
×M[1,2]×!M[2,3]=1OUT[3]=M
×M[1,3]×M[2,3]=0因此,分路-2根據(jù)替換信息被替換,而分路-0根據(jù)凍結(jié)信息不被替換。
在另一個例子中,在訪問順序為分路-3、分路-1、分路-2和分路-0的情況下,假設(shè)分路-0和分路-1要被凍結(jié)。在這種情況下,凍結(jié)信息表明FRZ
=1、FRZ[1]=1以及FRZ[2]=0,而訪問歷史表明W
、W
、W
、W[1,2]、W[1,3]和W[2,3]=“000100”。
中間信息的計算如下M
=(W
+FRZ
)×!FRZ[1]=0M
=(W
+FRZ
)×!FRZ[2]=1M
=(W
+FRZ
)=1M[1,2]=(W[1,2]+FRZ[1])×!FRZ[2]=1M[1,3]=(W
+FRZ[1])=1
M[2,3]=(W[2,3]+FRZ[2])=0由上式獲得的結(jié)果“011110”顯示出,用中間信息表示的訪問歷史對應(yīng)于分路-1、分路-0、分路-3和分路-2的訪問順序。也就是說,可以表達為,雖然LRU信息存貯器中存儲的訪問歷史本身未改變,但從凍結(jié)控制器21提供的用中間信息表示的訪問歷史由訪問順序分路-1、分路-0、分路-3和分路-2重寫,其中分路-0和分路-1是最近最多使用的兩個分路。
LRU譯碼器22傳送如下的替換信息OUT
=!M
×!M
×!M
=0OUT[1]=M
×!M[1,2]×!M[1,3]=0OUT[2]=M
×M[1,2]×!M[2,3]=1OUT[3]=M
×M[1,3]×M[2,3]=0因此,分路-2根據(jù)替換信息被替換,而分路-0和分路-1根據(jù)凍結(jié)信息不被替換。
在上述實施例中,用中間信息表示的有效訪問歷史由凍結(jié)信息修改,而在每兩個分路之間表示的訪問歷史本身不改變。這提供了具有凍結(jié)功能的高速緩存器的簡單結(jié)構(gòu)。
在上述例子中,訪問歷史、中間信息(修改的訪問歷史)和替換信息都用正邏輯表達。然而,也可以采用負(fù)邏輯來代替。另外,替換控制器37的凍結(jié)控制器21和LRU譯碼器22中的每個都可以用軟件程序?qū)崿F(xiàn)。在這種情況下,可以將初始訪問歷史存儲在LRU信息存貯器中,用于產(chǎn)生中間信息。只要LRU信息可以根據(jù)存儲的訪問信息獲得,就不需要LRU信息存貯器存儲LRU本身的訪問信息。
在本實施例中,由于除了最后一個分路以外的任何個數(shù)的分路都可以進行凍結(jié),所以可以進行凍結(jié)的設(shè)計選擇。
此外,在高速緩存器在凍結(jié)基礎(chǔ)上的一些操作之后,如果將凍結(jié)存儲器復(fù)位以存儲零凍結(jié),由于LRU信息存貯器存儲最近的訪問歷史而沒有修改,所以高速緩存器可以只在LRU的基礎(chǔ)上操作,而不在凍結(jié)基礎(chǔ)上修改。
凍結(jié)信息存貯器為每個記錄存儲具有N-1位的凍結(jié)信息,這只需要中等個數(shù)的位用于此目的。例如,在具有64個記錄的4-分路-成組相聯(lián)高速緩存器的情況下,只需要192=3×64位就足夠用于存儲凍結(jié)信息。這提供了更簡單結(jié)構(gòu)的高速緩存器。另外,在未命中之后,LRU信息存貯器本身不被重寫,可以提高高速緩存器的通過量。
在本發(fā)明的實施例中,由于多個分路可以進行凍結(jié),所以可以將具有大量數(shù)據(jù)的程序存儲在高速緩存器中用于凍結(jié)。在常規(guī)的高速緩存器中,由于只有單個分路可以被凍結(jié),所以具有超過單個分路容量的大的程序不能進行凍結(jié)。
一般地,要求能夠根據(jù)小數(shù)目的設(shè)計通過采用程序稍微修改設(shè)計以適應(yīng)專門需求來制造半導(dǎo)體器件。依據(jù)本發(fā)明的高速緩存器可以被應(yīng)用到以LRU技術(shù)操作的沒有凍結(jié)功能的任何一個高速緩存器、以LRU技術(shù)操作的由凍結(jié)功能修改的高速緩存器以及采用具有由高速ROM或RAM實現(xiàn)的部分的高速緩存器的計算機系統(tǒng)上。于是,該高速緩存器的單個設(shè)計可用于許多種高速緩存器。
特別地,將LRU信息變換成中間信息的凍結(jié)控制器的構(gòu)造使得通過在高速緩存器中增加一個簡單的元件,就可以修改以LRU技術(shù)操作的高速緩存器的現(xiàn)有設(shè)計,以獲得具有凍結(jié)功能的高速緩存器。
由于僅以例示方式描述了上述實施例,本發(fā)明并不限于上述實施例和各種修改或改變。
權(quán)利要求
1.一種高速緩存裝置,包括具有多個分路的數(shù)據(jù)存貯部分,每個分路用于存儲所需數(shù)據(jù);LRU信息存貯部分,用于存儲記錄所述多個分路的訪問順序的訪問信息;凍結(jié)信息存貯部分,用于存儲至少一個所述分路的凍結(jié)信息;替換控制器,用于根據(jù)通過使用所述凍結(jié)信息從所述訪問信息修改的修改訪問信息產(chǎn)生替換信息,而不用所述修改的訪問信息替換存儲在所述LRU信息存貯部分中的所述訪問信息,所述替換信息防止在至少一個所述分路中的數(shù)據(jù)被新數(shù)據(jù)替換。
2.如權(quán)利要求1所述的高速緩存裝置,其中,所述訪問信息包括多個位,每個位對應(yīng)于兩個所述分路的組合,所述替換信息包括個數(shù)等于所述分路的個數(shù)的多個位。
3.如權(quán)利要求2所述的高速緩存裝置,其中,所述替換控制器包括一個用于產(chǎn)生所述修改的訪問信息的凍結(jié)控制器,以及一個用于譯碼所述修改的訪問信息以產(chǎn)生所述替換信息的譯碼器。
4.如權(quán)利要求3所述的高速緩存裝置,其中,所述修改的訪問信息的每位M[A,B]由下式表示M[A,B]=W[A,B]+FRZ[A]對于0≤A<B=N-1;以及M[A,B]=(W[A,B]+FRZ[A])×!FRZ[B] 對于0≤A<B<N-1其中,W[A,B]、FRZ[A]、FRZ[B]、!FRZ[B]是在分路-A和分路-B之間的所述訪問歷史位、分路-A的所述凍結(jié)信息位、分路-B的所述凍結(jié)信息位、以及分路-B的凍結(jié)信息反轉(zhuǎn)位。
5.如權(quán)利要求4所述的高速緩存裝置,其中,所述替換信息的每位OUT[X]由下式表示,其中0≤X≤N-1OUT
=Πj=1N-1!M
]]>
其中0<X<N-1OUT[N]=Πj=0N-2M[j,N-1]]]>
6.如權(quán)利要求1所述的高速緩存裝置,其中,所述凍結(jié)信息包括個數(shù)等于所述分路個數(shù)減1的多個位。
7.如權(quán)利要求6所述的高速緩存裝置,其中,所述修改的訪問信息為使得被凍結(jié)的任何一個所述分路具有用N個所述分路中的LRU表示的在第一和第(N-1)之間的順序。
8.如權(quán)利要求1所述的高速緩存裝置,其中,所述替換控制器由一個有線邏輯電路實現(xiàn)。
9.一種用于控制高速緩存器的方法,該高速緩存器具有多個用于存儲所需數(shù)據(jù)的分路,所述方法包括下列反復(fù)的步驟存儲記錄分路的訪問歷史的訪問信息,存儲至少一個分路的凍結(jié)信息,以及根據(jù)通過使用所述凍結(jié)信息從所述訪問信息修改的修改訪問信息產(chǎn)生替換信息,而不用所述修改的訪問信息替換所述存儲的訪問信息。
10.如權(quán)利要求9所述的方法,其中,所述訪問信息包括多個位,每個位對應(yīng)于兩個所述分路的組合,所述替換信息包括個數(shù)等于所述分路的個數(shù)的多個位。
11.如權(quán)利要求10所述的方法,其中,所述修改的訪問信息的每個位M[A,B]由下式表示M[A,B]=W[A,B]+FRZ[A]對于0≤A<B=N-1;以及M[A,B]=(W[A,B]+FRZ[A])×!FRZ[B] 對于0≤A<B<N-1其中,W[A,B]、FRZ[A]、FRZ[B]、!FRZ[B]分別是在分路-A和分路-B之間的所述訪問歷史位、分路-A的所述凍結(jié)信息位、分路-B的所述凍結(jié)信息位、以及分路-B的凍結(jié)信息反轉(zhuǎn)位。
12.如權(quán)利要求11所述的方法,其中,所述替換信息的每位OUT[X]由下式表示,其中0≤X≤N-1OUT
=Πj=1N-1!M
]]>
其中0<X<N-1OUT[N]=Πj=0N-2M[j,N-1]]]>
13.如權(quán)利要求9所述的方法,其中,所述凍結(jié)信息包括個數(shù)等于所述分路個數(shù)減1的多個位。
全文摘要
一種N-分路-成組相聯(lián)高速緩存器,用由凍結(jié)功能修改的LRU技術(shù)操作。高速緩存器具有一個替換控制器,通過使用凍結(jié)信息修改從LRU信息存貯器提供的訪問歷史。替換控制器由有線邏輯電路實現(xiàn),簡化了修改算法,并可高速操作。
文檔編號G06F12/12GK1255675SQ9912231
公開日2000年6月7日 申請日期1999年10月29日 優(yōu)先權(quán)日1998年10月30日
發(fā)明者齋藤靖彥 申請人:日本電氣株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
平塘县| 凤翔县| 赤水市| 巩留县| 沅江市| 济宁市| 海原县| 囊谦县| 临夏市| 斗六市| 云浮市| 谢通门县| 昂仁县| 吉首市| 磐石市| 邮箱| 武鸣县| 洛扎县| 无锡市| 庄河市| 丘北县| 上饶市| 筠连县| 隆昌县| 昂仁县| 安溪县| 奉贤区| 台南市| 武定县| 大渡口区| 武威市| 镇原县| 全南县| 龙胜| 清徐县| 济阳县| 比如县| 堆龙德庆县| 吕梁市| 山阴县| 景东|