專利名稱:改進(jìn)虛擬存儲(chǔ)器系統(tǒng)存取性能的技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計(jì)算機(jī)系統(tǒng)。特別是,本發(fā)明涉及存儲(chǔ)器管理系統(tǒng),尤其是涉及一種減少處理器訪問存儲(chǔ)器頁面時(shí)所花費(fèi)等待時(shí)間的方法和設(shè)備,在使用虛擬存儲(chǔ)器尋址的計(jì)算機(jī)存儲(chǔ)系統(tǒng)中,該處理器使用一種翻譯旁視緩沖器(translation look aside buffer)。
背景技術(shù):
虛擬存儲(chǔ)器系統(tǒng)允許非常大的存儲(chǔ)器的尋址工作,即便是該系統(tǒng)的主存儲(chǔ)器擁有一個(gè)較小的地址空間也不妨事。虛擬存儲(chǔ)器系統(tǒng)提供這種能力是通過定義存儲(chǔ)管理部件,特別是,頁面或存儲(chǔ)段,具有虛擬存儲(chǔ)器地址和相應(yīng)的物理存儲(chǔ)器地址。一種特殊的虛擬存儲(chǔ)器地址可能在主存儲(chǔ)器或者在較慢的備用存儲(chǔ)器,如磁盤空間之中。如果虛擬存儲(chǔ)器地址映射數(shù)據(jù)的物理地址是在主存儲(chǔ)器之中的話,那么信息就容易訪問和使用。如果物理地址指出相應(yīng)于虛擬地址的頁面處于備用存儲(chǔ)器中,那么該頁面就傳輸或交換到數(shù)據(jù)可進(jìn)行存取操作的主存儲(chǔ)器中。傳輸操作通常需要使其它的信息從主存儲(chǔ)器交換出去而回到備用存儲(chǔ)器為新的信息騰出空間。這種傳輸通常是在作為硬件或軟件的存儲(chǔ)管理部件的控制下完成的。
為了提高虛擬存儲(chǔ)器訪問的速度,又包括了高速緩存,將最近用過的數(shù)據(jù)和指令保存起來。為得到所需的信息在訪問主存儲(chǔ)器之前,這些高速緩存首先接收訪問。這些高速緩存可能是虛擬編址或物理編址。但是依照物理地址訪問的高速緩存,在檢查高速緩存和主存儲(chǔ)器之前,必須要有一個(gè)虛擬訪問到物理訪問的翻譯過程。
分頁過程,亦即交換頁面的過程,依賴于由存儲(chǔ)器頁面索引的數(shù)據(jù)的結(jié)構(gòu)。這種數(shù)據(jù)結(jié)構(gòu)包括根據(jù)所提供的虛擬地址將要訪問的存儲(chǔ)器的物理地址。這種數(shù)據(jù)結(jié)構(gòu)包括通常采取由虛擬頁面編號(hào)、頁面表的大小、頁面數(shù)、以及虛擬存儲(chǔ)器空間所索引的頁面表的形式存在的物理頁面地址。頁面表一般如此之大一致它們是保存在主存儲(chǔ)器中,并且常常將它們自己再行分頁。這就是說每一次存儲(chǔ)器的訪問操作是要得到物理地址的存儲(chǔ)器訪問一倍或更多倍數(shù)的時(shí)間,還需要第二次訪問才得到數(shù)據(jù)。
用來使訪問時(shí)間花費(fèi)降低到最小的技術(shù)是如此保存最后一次所執(zhí)行的翻譯,如果當(dāng)前的地址是指與最后的翻譯相同的地址,那么就跳過分頁過程。另外為了進(jìn)一步節(jié)約時(shí)間,還可以利用高速緩存所使用的局部性原則。如果訪問具有局部性,那么為訪問而進(jìn)行的地址翻譯也必然具有局部性。將這些地址翻譯保存在一個(gè)特殊的高速緩存之中,存儲(chǔ)器訪問很少會(huì)要求第二次訪問再去翻譯地址。這種特殊的地址翻譯高速緩存稱之為翻譯旁視緩沖,或“TLB”。一個(gè)TLB條目如同一個(gè)高速緩存的條目,其中一個(gè)標(biāo)簽部分保留虛擬地址部分,而數(shù)據(jù)部分保留物理頁的幀面號(hào)、保護(hù)字段、使用位、以及一個(gè)修正了的或臟的比特位。一個(gè)典型的TLB數(shù)據(jù)結(jié)構(gòu)100的例子表示在
圖1之中。
許多不同的方法和技術(shù)可以用來提高訪問虛擬存儲(chǔ)器的速度。一種方法中,使用了較強(qiáng)的流水線存儲(chǔ)器訪問,而其中執(zhí)行TLB訪問比流水線提前一步。另一種途徑是直接比較虛擬地址。這樣的高速緩存稱之為虛擬高速緩存。如果是一個(gè)高速緩存命中的情況,這能夠消除TLB翻譯的時(shí)間。但遺憾的是,它的一個(gè)缺點(diǎn)是過程非常耗時(shí),不管地址的局部性質(zhì)如何對(duì)每一個(gè)虛擬地址都必須執(zhí)行操作。
應(yīng)該注意關(guān)于TLB的其它的討論,可以在David A. Patterson和John L.Hennessey合寫的“計(jì)算機(jī)分層結(jié)構(gòu)”一文中找到,此文見于A Qualitative Approach Second Edition,(Morgan KaufmannPublishing),Pages 439-457。
根據(jù)以上的觀點(diǎn),應(yīng)該說事情是很顯然的,在一個(gè)虛擬存儲(chǔ)器環(huán)境中需要有各種方法和設(shè)備減少存儲(chǔ)器訪問中的等待時(shí)間。
發(fā)明概述根據(jù)本發(fā)明描述了在基于虛擬存儲(chǔ)器的系統(tǒng)中一種減少存儲(chǔ)器訪問等待時(shí)間的方法。
根據(jù)發(fā)明的一個(gè)方面,公開了一種基于虛擬存儲(chǔ)器中具有一個(gè)主存儲(chǔ)器和一個(gè)高速緩沖存儲(chǔ)器的系統(tǒng)中減少存儲(chǔ)器訪問等待時(shí)間的方法。作為一種方法,帶有相關(guān)的虛擬地址的數(shù)據(jù)請(qǐng)求由處理器生成。緊接著,確定所請(qǐng)求的虛擬存儲(chǔ)器地址是否在一種TLB中有一個(gè)相關(guān)的TLB條目。該TLB條目指向包含在TLB頁面高速緩存中的一個(gè)TLB頁面。當(dāng)確定了所請(qǐng)求的虛擬存儲(chǔ)器地址在TLB中確有一個(gè)相關(guān)的TLB條目,那么所請(qǐng)求的數(shù)據(jù)便從TLB頁面高速緩存中取得,使得所取得的數(shù)據(jù)移動(dòng)到暫時(shí)接近處理器的位置。
在一種優(yōu)選實(shí)施方案中,TLB頁面包括所請(qǐng)求的數(shù)據(jù)。
發(fā)明的另一個(gè)方面,公開了一種基于虛擬存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)。該系統(tǒng)包括適當(dāng)安裝的完成可執(zhí)行指令的處理器,它與一個(gè)分層結(jié)構(gòu)系統(tǒng)存儲(chǔ)器相連接,以軟件的形式保存多個(gè)可執(zhí)行指令。系統(tǒng)存儲(chǔ)器被組織成最高級(jí)別的系統(tǒng)存儲(chǔ)部件比較低級(jí)別的系統(tǒng)存儲(chǔ)部件更為暫時(shí)接近處理器。系統(tǒng)存儲(chǔ)器包括用以保存多個(gè)可執(zhí)行指令的主要部分,與主存儲(chǔ)器連接的高速緩存用以保存一組最近使用過的可執(zhí)行指令,其中高速緩存比主存儲(chǔ)器來說暫時(shí)接近處理器,而一個(gè)TLB頁面高速緩存用來保存被一個(gè)TLB條目所指向的TLB頁面,而其中TLB頁面高速緩存暫時(shí)處于高速緩存和主存儲(chǔ)器之間。
附圖簡述本發(fā)明是通過例子來說明的而不是通過限制來說明的,在所附的插圖中,像參考數(shù)字是指相同的元素,其中圖1表示一種傳統(tǒng)排列的TLB數(shù)據(jù)結(jié)構(gòu)。
圖2表示一種基于虛擬存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)有一個(gè)與本發(fā)明一種實(shí)施方案相一致的分布式TLB寄存器。
圖3表示一種與本發(fā)明一種實(shí)施方案相一致的分層存儲(chǔ)器排列。
圖4表示一種計(jì)算機(jī)系統(tǒng),其中與本發(fā)明一種實(shí)施方案相一致,一種TLB頁面分布于DRAM存儲(chǔ)設(shè)備陣列之中。
圖5表示根據(jù)圖4所示計(jì)算機(jī)系統(tǒng)而構(gòu)成的一種舉例性的地址映象模式。
圖6表示一種計(jì)算機(jī)系統(tǒng)其中示于圖4的DRAM存儲(chǔ)設(shè)備陣列包括一種快速的靜態(tài)緩沖器。
圖7表示一種計(jì)算機(jī)系統(tǒng),與本發(fā)明一種實(shí)施方案相一致,在通過高速互連與存儲(chǔ)器陣列連接的存儲(chǔ)控制器中有一種TLB緩沖器。
圖8是一張流程圖詳細(xì)地說明在一種基于虛擬存儲(chǔ)器的系統(tǒng)中,減少存儲(chǔ)器訪問中等待時(shí)間的過程。
優(yōu)選實(shí)施方案詳述現(xiàn)在將詳細(xì)介紹本發(fā)明的優(yōu)選方案。附圖中用圖解法對(duì)優(yōu)選方案的一個(gè)例子進(jìn)行了說明。當(dāng)結(jié)合優(yōu)選方案敘述本發(fā)明時(shí),應(yīng)認(rèn)識(shí)到我們并非有意地將本發(fā)明局限于一種優(yōu)選方案。恰恰相反,我們?cè)噲D涵蓋可能包括本發(fā)明要旨和范圍的,正如所附權(quán)利要求中所確定的,各個(gè)備選方案、修正方案、和等價(jià)方案。
為了在一個(gè)使用虛擬存儲(chǔ)器尋址方案的計(jì)算系統(tǒng)中縮短存儲(chǔ)器等待時(shí)間,我們使用了一種翻譯旁視緩沖器,或稱之為TLB,以便識(shí)別最近一組虛擬存儲(chǔ)器到物理存儲(chǔ)器的轉(zhuǎn)換。在所述實(shí)施方案中,計(jì)算機(jī)系統(tǒng)包括一個(gè)與主存儲(chǔ)器和高速緩沖存儲(chǔ)器聯(lián)結(jié)的(有一個(gè)相聯(lián)結(jié)TLB的)處理器。典型的情況是,高速緩存用來存儲(chǔ)最近用過的存儲(chǔ)器地址和先前從主存儲(chǔ)器(例如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器,DRAM)取出的有關(guān)數(shù)據(jù)。通過把最近由虛擬存儲(chǔ)器到物理存儲(chǔ)器的翻譯保存在TLB(通常采取一種查閱表或LUT的形式),虛擬存儲(chǔ)器地址翻譯成物理存儲(chǔ)器地址所需要的時(shí)間,減少成簡單的查表操作所用的時(shí)間,因?yàn)檫@些翻譯已經(jīng)存儲(chǔ)在TLB之中了。
由于任一已知時(shí)刻處理器不能訪問多于相關(guān)的TLB所描述的物理存儲(chǔ)器,任何一個(gè)導(dǎo)致失敗(例如未發(fā)現(xiàn)包括在處理器的TLB)的存儲(chǔ)頁面便被移至?xí)簳r(shí)接近處理器與實(shí)際更新TLB并行的較快的存儲(chǔ)器(例如一個(gè)L1或L2高速緩存)之中。應(yīng)該注意,更新TLB的意思是指,由于TLB是頻繁使用頁面的一種高速緩存,已確定不被任何數(shù)目和任何類型算法(例如某種隨機(jī)算法)頻繁使用的任何頁面,便從TLB中被清除或清洗掉了,騰出位置來為那些確定出不存在于TLB中的虛擬存儲(chǔ)器翻譯成物理存儲(chǔ)器的存貯器頁面使用。
當(dāng)處理器的TLB受到追蹤時(shí),便做出一個(gè)復(fù)本并保存在有關(guān)的存儲(chǔ)控制器中。在一個(gè)特殊的TLB受到替換的情況下,存儲(chǔ)控制器初始化暫時(shí)接近處理器的根據(jù)新的TLB指向存儲(chǔ)器分級(jí)體系某存儲(chǔ)段的有關(guān)頁面(或其一部分)。在此臨時(shí)接近的意思,是指該特殊存儲(chǔ)器頁面或其一部分的存儲(chǔ)器讀寫等待時(shí)間得以縮短,改進(jìn)了整體存儲(chǔ)器訪問時(shí)間。在一些實(shí)施中,新的TLB所指向的整個(gè)存儲(chǔ)器頁面(或塊)移到臨時(shí)接近處理器的地方,而在另一些實(shí)施中,僅僅移動(dòng)對(duì)應(yīng)于引起TLB本身改變的一小部分地址的內(nèi)容。轉(zhuǎn)移到接近處理器的存儲(chǔ)器分級(jí)體系片斷的存儲(chǔ)器頁面的大小在很大程度上取決于各個(gè)分級(jí)的存儲(chǔ)段之間互連的帶寬。
廣義地講,如圖2所示,本發(fā)明可以用計(jì)算機(jī)系統(tǒng)100來描述,該計(jì)算機(jī)系統(tǒng)有一個(gè)通過系統(tǒng)總線106與存儲(chǔ)控制器104連接的處理器102,而系統(tǒng)總線106經(jīng)適當(dāng)?shù)门渲每稍L問分級(jí)組織系統(tǒng)存儲(chǔ)器108。在所述實(shí)施方案中,分級(jí)組織系統(tǒng)存儲(chǔ)器108的各個(gè)不同部分可取許多中形式,諸如一個(gè)DRAM、SDRAM、SLDRAM、EDO、FPM、RDRAM、等等。在所述實(shí)施方案中,系統(tǒng)總線106包括一種單向地址總線106-1,用以將處理器102所產(chǎn)生的存儲(chǔ)器地址請(qǐng)求傳遞給存儲(chǔ)控制器104。系統(tǒng)總線106還包括一種單向命令總線106-2,與地址總線106-1一起,傳送與存儲(chǔ)器地址有關(guān)的命令。例如,當(dāng)處理器102需要一條可執(zhí)行指令時(shí),處理器對(duì)命令總線106-2輸出一條讀請(qǐng)求(稱為一條系統(tǒng)命令),基本上同時(shí)對(duì)地址總線106-1輸出一條相應(yīng)的存儲(chǔ)器地址的請(qǐng)求(稱之為系統(tǒng)地址)。
在所述實(shí)施方案中,計(jì)算機(jī)系統(tǒng)100是一個(gè)基于虛擬存儲(chǔ)器的計(jì)算機(jī)系統(tǒng),如是存儲(chǔ)器地址請(qǐng)求實(shí)際上是必須翻譯成物理存儲(chǔ)器的虛擬存儲(chǔ)器地址請(qǐng)求。這樣,在相應(yīng)于系統(tǒng)存儲(chǔ)器108存儲(chǔ)器空間的適當(dāng)存儲(chǔ)器地址可以被訪問。在計(jì)算機(jī)系統(tǒng)100中,處理器102生成的虛擬地址由硬件和軟件結(jié)合將其翻譯成可訪問物理主存儲(chǔ)器的物理地址。一組虛擬地址可以動(dòng)態(tài)地分配給一種特殊的存儲(chǔ)頁面,以至虛擬存儲(chǔ)器需要一種有時(shí)稱之為頁面表的數(shù)據(jù)結(jié)構(gòu),它將虛擬地址翻譯成物理地址。為了減少地址翻譯時(shí)間,計(jì)算機(jī)系統(tǒng)100使用一種專用于地址翻譯的聯(lián)合高速緩存,前面敘述中稱之為翻譯旁視緩沖區(qū)(LTB)110。
但是應(yīng)該注意,TLB 110實(shí)際上可以設(shè)置在系統(tǒng)設(shè)計(jì)者所確定的對(duì)特殊計(jì)算機(jī)系統(tǒng)最為合適的任何地方。在所述實(shí)施方案中,TLB 110采取查閱表(LUT)的形式,用來識(shí)別最近的虛擬存儲(chǔ)器地址向物理存儲(chǔ)器地址的翻譯。通過將最近的虛擬存儲(chǔ)器向物理存儲(chǔ)器的翻譯存儲(chǔ)在TLB 110中,那么將虛擬存儲(chǔ)器地址翻譯成物理存儲(chǔ)器地址所需要的時(shí)間對(duì)于保存在TLB 110中的翻譯來說,減少成一種簡單的查表操作,比虛擬存儲(chǔ)器翻譯成物理存儲(chǔ)器的翻譯操作快得多。
在本發(fā)明的一種實(shí)施中,一種采取TLB寄存器110拷貝形式的控制器TLB 112包含在控制器104之中,用來指向相應(yīng)于TLB 110中一個(gè)新的條目的存儲(chǔ)頁面(通常位于級(jí)別較低的存儲(chǔ)器)。在某些實(shí)施中,新TLB的條目指向的整個(gè)存貯頁面(或塊)移動(dòng)到暫時(shí)接近處理器的一個(gè)TLB頁面高速緩存114,暫時(shí)處于接近處理器102的位置。應(yīng)該注意在另一些實(shí)施中,僅有相應(yīng)于引起TLB條目改變自己的一小部分地址被移動(dòng)了。轉(zhuǎn)移到接近處理器的存儲(chǔ)器分級(jí)體系片斷的存儲(chǔ)頁面大小很大程度取決于系統(tǒng)存儲(chǔ)器108不同分層結(jié)構(gòu)成分之間的互連帶寬。應(yīng)該注意在這種情況下,數(shù)據(jù)轉(zhuǎn)移的規(guī)模是由TLB頁高速緩存114和主存之間的互連帶寬確定的。在這些情況下,存儲(chǔ)器體系結(jié)構(gòu),例如RAMBUSTM和/或者SLDRAM(同步鏈接動(dòng)態(tài)RAM)比傳統(tǒng)高速頁面模式存儲(chǔ)器更加合適。
應(yīng)該注意,實(shí)際TLB追蹤機(jī)制可以采取執(zhí)行許多次的形式,當(dāng)然這要取決于TLB本身位處何方。在TLB位于處理器本身之中的情況,TLB是直接可訪問的,而處理器能夠?qū)Υ鎯?chǔ)器發(fā)出通知標(biāo)志,根據(jù)TLB失誤地址提取所需要的數(shù)據(jù)。一些案例中通知標(biāo)志可以由處理器上的專用控制插腳做出,而另一些案例中由處理器總線協(xié)議的某種變體完成。在一種實(shí)施方案中,這種標(biāo)志指出發(fā)生了一次TLB失誤,以及TLB的哪一部分已經(jīng)失效。這工作可以由專用的總線引線完成,因?yàn)楸热鏟entium IITM處理器只有6個(gè)索引插腳和一個(gè)控制插腳。在一些案例中,處理器可以對(duì)處理器總線發(fā)布一種特殊的信息周期。這種信息周期可以攜帶TLB條目索引以及新的物理地址,所以為了本項(xiàng)發(fā)明,控制器TLB 112對(duì)于處理器TLB 110而言將總是最新的。
對(duì)控制機(jī)制位于存儲(chǔ)控制器本身之內(nèi)的情況,存儲(chǔ)控制器必須通過觀察通往譬如二級(jí)高速緩存的信息,或一般處于主存儲(chǔ)器中的頁面表中的信息,來追蹤TLB的內(nèi)容。在二級(jí)高速緩存受到監(jiān)控的情況下,那么處理器必須允許訪問處于存儲(chǔ)控制器內(nèi)部的一種窺探線路。但是如果二級(jí)高速緩存不能夠窺探以及(或者)處理器不能指出一個(gè)TLB失誤的標(biāo)志,那么當(dāng)訪問失誤地址的物理地址發(fā)布后,存儲(chǔ)控制器TLB必須更新。
圖3表示系統(tǒng)存儲(chǔ)器108一種特殊的實(shí)施辦法,與本發(fā)明的一種實(shí)施方案一致。計(jì)算機(jī)結(jié)構(gòu)設(shè)計(jì)和編程領(lǐng)域的技術(shù)人員都很清楚,計(jì)算機(jī)系統(tǒng),如計(jì)算機(jī)系統(tǒng)100,一般都用多級(jí)層次結(jié)構(gòu)的存儲(chǔ)器系統(tǒng)。在這種分級(jí)法中,較快的、昂貴的、容量有限的存儲(chǔ)器(即寄存器202)處于分層結(jié)構(gòu)的最高級(jí),下來逐漸進(jìn)入較慢的、價(jià)格較低的、容量較大的處于分層結(jié)構(gòu)的最低級(jí)的存儲(chǔ)器。典型的存儲(chǔ)器分層結(jié)構(gòu)包括一個(gè)小而快的稱之為高速緩存204,它要么是物理上集成于處理器102之中(通常是一塊集成電路),要么是物理上安裝得靠近處理器102以便提高速度(也就是暫時(shí)接近),主要是由于減少了互連等待時(shí)間。應(yīng)該注意,可以有幾種不同級(jí)別的高速緩存,諸如L1、L2、等等,每一級(jí)別可以有不同大小的容量和訪問時(shí)間。具有代表性的高速緩存204能夠保存的量極為16-512千字節(jié)而訪問時(shí)間的量級(jí)是3-30微妙,能夠存儲(chǔ)處理器102最近使用過的數(shù)據(jù)組,而其它的地方稱之為工作數(shù)據(jù)組。
當(dāng)數(shù)據(jù)讀出或?qū)懭胫鞔鎯?chǔ)器206時(shí),一個(gè)拷貝也被保存在高速緩存204,并一起保存了相關(guān)的主存儲(chǔ)器的地址。高速緩存204監(jiān)視后來讀取數(shù)據(jù)的地址,以察看所要求的數(shù)據(jù)是否已在高速緩存之中了。如果是(高速緩存命中),那么立即返回并中止(或不開始)主存儲(chǔ)器讀取的操作。如果數(shù)據(jù)未被保存到高速緩存(高速緩存未中),那么從主存儲(chǔ)器取數(shù)并將其也保存到高速緩存中。
高速緩存204是使用比主存儲(chǔ)器206更快的存儲(chǔ)芯片做成的,所以高速緩存命中比正常的存儲(chǔ)器訪問所用的時(shí)間少得多。高速緩存可能與處理器處于同一集成線路以便進(jìn)一步減少訪問時(shí)間。這種情況下,這便是常常所說的一級(jí)高速緩存,可能在CPU芯片之外有一個(gè)較大的而較慢的二級(jí)高速緩存。
應(yīng)該注意高速緩存最重要的特征是它的命中率——命中次數(shù)在所有存儲(chǔ)器訪問次數(shù)中所占的分?jǐn)?shù),高速緩存性能好則命中率高。它又取決于高速緩存的設(shè)計(jì),但主要是相對(duì)主存儲(chǔ)器它的容量的大小。容量的大小受到高速存儲(chǔ)器芯片價(jià)格的限制,而且更重要的是受到實(shí)際尺寸的限制。
命中率還決定于運(yùn)行的特殊程序的訪問模式(正被讀寫的地址的順序)。高速緩存依賴于大多數(shù)程序訪問模式的兩種性質(zhì)時(shí)間局部性—如果某種內(nèi)容被訪問了一次,那么它可能很快再一次受到訪問;空間局部性—如果一個(gè)存儲(chǔ)單元受到訪問那么附近若干存儲(chǔ)單元也可能受到訪問。為了利用空間局部性,高速緩存常常是同時(shí)對(duì)幾個(gè)字進(jìn)行操作,稱之為一個(gè)“超高速緩沖存儲(chǔ)器線”或“超高速緩存塊”。主存儲(chǔ)器的讀和寫全是超高速緩沖存儲(chǔ)器線(僅對(duì)可以高速緩存的對(duì)象操作)。
當(dāng)處理器102要向主存儲(chǔ)器206寫入時(shí),數(shù)據(jù)首先寫到高速緩存204,假定處理器會(huì)很快又將其讀出。這里采用了各種不同的策略。在一種直寫高速緩存技術(shù)中,在數(shù)據(jù)高速緩存的同時(shí),也將其寫入主存儲(chǔ)器。在一種反寫高速緩存技術(shù)中,寫入緩沖器的數(shù)據(jù)僅當(dāng)其必須重寫時(shí)才復(fù)制到主存儲(chǔ)器內(nèi)。
如果所有的訪問都是些操作,那么使用直寫技術(shù)時(shí),每一個(gè)高速緩存寫都將需要一個(gè)主存儲(chǔ)器寫,這樣使得系統(tǒng)的速度下降到主存儲(chǔ)器的速度。但是統(tǒng)計(jì)上講,大多數(shù)訪問屬于讀出操作,而且它們大多數(shù)通過使用高速緩存都有滿意的結(jié)果。直寫技術(shù)比起反寫技術(shù)較為簡單,因?yàn)閷?duì)于前者一個(gè)要被替換的對(duì)象在高速緩存中僅需重寫,因?yàn)樗鼘⒃谥鞔鎯?chǔ)器中有所拷貝;而反寫要求高速緩存初始化主存儲(chǔ)器中對(duì)一個(gè)清洗對(duì)象的寫操作,隨后(對(duì)一個(gè)處理器讀)還有一個(gè)主存儲(chǔ)器讀。但是反寫更為有效,因?yàn)橐粋€(gè)對(duì)象可能在高速緩存中寫入多次而沒有主存儲(chǔ)器的訪問操作。當(dāng)高速緩存占滿了而又需要貯藏另一個(gè)數(shù)據(jù)線時(shí),則選出一個(gè)高速緩存對(duì)象寫回主存儲(chǔ)器或稱“被沖洗掉”了。然后新的數(shù)據(jù)線放入它的位置。哪一個(gè)對(duì)象被選中沖洗,由一個(gè)“置換算法”確定。
在一個(gè)特定的實(shí)施方案中,系統(tǒng)存儲(chǔ)器108包括TLB頁面高速緩存114,用來保存被指定是TLB 110或者TLB 112中一個(gè)新項(xiàng)目的存儲(chǔ)頁面。
在所描述的實(shí)施方案中,在一個(gè)最低的級(jí)別上,有一個(gè)大容量的外部存儲(chǔ)器裝置210,諸如一個(gè)磁帶驅(qū)動(dòng)器,具有相對(duì)無限的存儲(chǔ)量,而平均訪問時(shí)間(即等待時(shí)間)為數(shù)秒到數(shù)分不等。緊接最低的級(jí)別,是一個(gè)磁盤存儲(chǔ)器(或任意等價(jià)媒體)208,具代表性的可以存儲(chǔ)若干千兆數(shù)據(jù),而訪問時(shí)間的量級(jí)大約為10毫秒。而緊靠最高的級(jí)別是一個(gè)主存儲(chǔ)器206(典型的形式是一個(gè)DRAM類型的存儲(chǔ)設(shè)備),可以存儲(chǔ)量級(jí)為若干兆的數(shù)據(jù),代表性的訪問時(shí)間為大約50微秒到大約150微秒。在本發(fā)明的一種實(shí)施方案中,一種TLB頁面高速緩存114分層地處于主存儲(chǔ)器206和能減少主存儲(chǔ)器訪問次數(shù)的超高速緩存204之間。通過保存由翻譯旁視緩沖器110指定的存儲(chǔ)頁面,例如,(在這種情況下它位于處理器102之中),主存儲(chǔ)器訪問的次數(shù)相伴隨地減少了,因?yàn)槊看卧L問都有一個(gè)TLB“命中”(即,所需要的存儲(chǔ)頁面在TLB110中有一個(gè)有關(guān)的條目),所要求的存儲(chǔ)頁面只需要從TLB頁面高速緩存114而不是主存儲(chǔ)器206進(jìn)行檢索,從而相對(duì)于沒有TLB頁面高速緩存114時(shí)進(jìn)行檢索來說,減少了總的系統(tǒng)存儲(chǔ)訪問等待時(shí)間。應(yīng)該注意在下面的討論中,相應(yīng)于一個(gè)特定的TLB條目的存儲(chǔ)器頁面稱之為一個(gè)TLB頁面。
圖4說明一個(gè)計(jì)算機(jī)系統(tǒng)400,與本發(fā)明的一個(gè)實(shí)施方案一致它有一個(gè)駐留在芯片陣列中的TLB頁面。在所描述的實(shí)施方案中,系統(tǒng)存儲(chǔ)器108包括一個(gè)芯片陣列402,形成多數(shù)DRAM型存儲(chǔ)設(shè)備。
操作中,例如若要讀取一個(gè)特殊的存儲(chǔ)單元,處理器102產(chǎn)生一個(gè)地址請(qǐng)求,相應(yīng)于處在存儲(chǔ)陣列402中的該存儲(chǔ)單元。由于形成陣列402的DRAM 402-1到402-n中每一個(gè)都將它們的內(nèi)容保留在一個(gè)邏輯矩形存儲(chǔ)單元404之中,讀取譬如存儲(chǔ)在存儲(chǔ)單元404-1中的數(shù)據(jù)需要首先使用一個(gè)由存儲(chǔ)控制器104提供的稱之為“行地址選擇”(或“行地址選通”,“/RAS”)信號(hào)將行406激活。講明確點(diǎn)就是,RAS是送給一個(gè)DRAM的一種信號(hào),告訴它一個(gè)有關(guān)的地址是行地址。
典型的情況是,/RAS信號(hào)是以處理器102提供的地址請(qǐng)求中最重要的部分為根據(jù)的。當(dāng)/RAS信號(hào)收到并正確解碼,一段時(shí)間后406整行數(shù)據(jù)轉(zhuǎn)移到一個(gè)讀出放大器408,這段時(shí)間是所選行要達(dá)到平衡所要求的,或稱之為恢復(fù)時(shí)間。在大多數(shù)傳統(tǒng)的DRAM中,從RAS到讀出放大器的轉(zhuǎn)換一般需時(shí)是30微秒的量級(jí)。
一旦所選行已經(jīng)平衡了而所選行的數(shù)據(jù)被轉(zhuǎn)移的讀出放大器408了,存儲(chǔ)控制器104對(duì)地址請(qǐng)求進(jìn)一步解碼,形成稱之為“列地址選擇”(“/CAS”)信號(hào),當(dāng)傳送到DRAM時(shí),告知一個(gè)有關(guān)的地址是列地址。該/CAS信號(hào)導(dǎo)致列選擇電路(未表示出來)選擇存儲(chǔ)陣列中特殊的存儲(chǔ)單元(本例中404-1),現(xiàn)在處于包含所要求數(shù)據(jù)的讀出放大器中。然后單元404-1的內(nèi)容從讀出放大器408送出到數(shù)據(jù)總線108,那里處理器或別的要求該數(shù)據(jù)的設(shè)備便能讀取這些數(shù)據(jù)了。應(yīng)該注意,大多數(shù)DRAM中典型的CAS是30微秒的量級(jí)。
所以,將數(shù)據(jù)從存儲(chǔ)陣列404-1移動(dòng)到讀出放大器408,從而數(shù)據(jù)移動(dòng)得暫時(shí)接近處理器102。這是可以計(jì)量確定的,因?yàn)镃AS操作是將所需數(shù)據(jù)移動(dòng)到總線108,而一個(gè)RAS操作是CAS操作的邏輯和物理的前趨。
由于物理上駐留在存儲(chǔ)陣列402的TLB頁面的部分,對(duì)應(yīng)于在行訪問作用下可以帶進(jìn)讀出放大器408的一列,因此TLB頁面被移動(dòng)得暫時(shí)接近處理器102。所以從系統(tǒng)性能的觀點(diǎn)出發(fā)一個(gè)有利的做法是,物理上和/或邏輯上將幾個(gè)讀出放大器進(jìn)行并置,以便使得整個(gè)TLB頁面與常駐讀出放大器之中的一個(gè)TLB條目聯(lián)系起來。這樣一來,由于總的訪問時(shí)間短,所以對(duì)該TLB頁面的任何訪問都將從中受益。
一種這樣的安排示于圖5,對(duì)四個(gè)DRAM存儲(chǔ)芯片組成的陣列給出了一種地址映射模式,與本發(fā)明的一種實(shí)施方案相一致。
在另一種實(shí)施方案中,如圖6所示,組成存儲(chǔ)器陣列的存儲(chǔ)器芯片中除了傳統(tǒng)的DRAM存儲(chǔ)陣列之外,還包括一個(gè)快速靜態(tài)緩沖器602。這種存儲(chǔ)器芯片可通過日本NEC公司生產(chǎn)的DRAM“虛擬通道”系列舉例說明。這種新的體系結(jié)構(gòu),結(jié)合配置高速寄存器的通道緩沖器,可以實(shí)現(xiàn)變通的和高效的數(shù)據(jù)傳輸。虛擬通道存儲(chǔ)器用于大容量的DRAM,支持多媒體PC機(jī)、工作站、和互聯(lián)網(wǎng)服務(wù)器。這種新的存儲(chǔ)磁心技術(shù)的關(guān)鍵特征是在存儲(chǔ)器中加入了配置有高速寄存器的通道緩沖器。虛擬通道DRAM從存儲(chǔ)器前端處理以外對(duì)這些通道緩沖器執(zhí)行讀/寫操作。換句話說,諸如數(shù)據(jù)傳輸?shù)葍?nèi)部操作在存儲(chǔ)單元和通道緩沖器之間接替,而存儲(chǔ)單元的預(yù)先加載和刷新工作由這些前端處理分開執(zhí)行。結(jié)果,臺(tái)后處理可以和臺(tái)前處理并行。通過創(chuàng)建一個(gè)支持并行處理的結(jié)構(gòu)體系,虛擬通道DRAM能保持一個(gè)高的平均數(shù)據(jù)傳輸速度,并將固有的存儲(chǔ)器性能開拓到最高可能的程度,部分的原因是它能訪問一個(gè)獨(dú)立的通道并能以自身的資源訪問存儲(chǔ)器陣列。如果配置適當(dāng),諸如當(dāng)各種連接的虛擬通道進(jìn)行(物理的或者邏輯的)并置從而形成TLB大小的頁面,那么這就可以導(dǎo)致較低的系統(tǒng)開銷、較少的等待時(shí)間、高吞吐量、以及增強(qiáng)的總線效率。
圖7說明一個(gè)具有高速接口的系統(tǒng)700,適合于高速TLB頁面?zhèn)鬏?,與本發(fā)明的一個(gè)實(shí)施方案一致。系統(tǒng)700可以用于很寬的領(lǐng)域,諸如計(jì)算機(jī)聯(lián)網(wǎng)、數(shù)據(jù)聯(lián)網(wǎng)、測試裝備、視頻處理、數(shù)字處理、以及任何其它的需要體現(xiàn)使用高速存儲(chǔ)設(shè)備優(yōu)越性的應(yīng)用。存儲(chǔ)器系統(tǒng)RDRAM 702(RAMBUS DRAM)可以用來執(zhí)行許多不同的存儲(chǔ)功能,例如,可保存與處理器102聯(lián)合工作的可執(zhí)行指令。該RDRAM 702還可能用來保存處理器102在不同應(yīng)用中所使用的數(shù)據(jù),如數(shù)據(jù)處理、數(shù)字圖像處理程序、等等,這些地方極需快速地存取大量的數(shù)據(jù)。應(yīng)該注意,系統(tǒng)700僅是一個(gè)舉例,本發(fā)明的真正范圍和精神將在后面的權(quán)利要求中有所說明。
由于性能上的考慮,要求進(jìn)入TLB頁面高速緩存114的傳輸率盡可能得高。由于本技術(shù)領(lǐng)域眾所周知,DRAM 702-1直到702-4的固有并行性支持較高的傳輸率,因此DRAM 702-1直到702-4提供一個(gè)并置的TLB頁面到一個(gè)TLB頁面高速緩存703,排列成緩沖器704-1直到704-4。但是隨著諸如RAMBUS型通道等高速互連的出現(xiàn),TLB頁面高速緩存114的布局可以擴(kuò)充,以便包括能夠通過高速總線708與DRAM702連接的任何存儲(chǔ)單元。
圖8是一幅詳細(xì)介紹過程800的流程圖,依照本發(fā)明的一個(gè)實(shí)施方案它是將一個(gè)存儲(chǔ)頁面移動(dòng)得暫時(shí)接近處理器的過程。在802處,處理器產(chǎn)生一個(gè)數(shù)據(jù)請(qǐng)求,并帶有一個(gè)相關(guān)的虛擬存儲(chǔ)器地址。而804確定所請(qǐng)求的存儲(chǔ)頁面是否在TLB中有一個(gè)相關(guān)的TLB條目。如果確定所請(qǐng)求的存儲(chǔ)頁面沒有一個(gè)相關(guān)的TLB條目,那么通過使用806的頁面表,虛擬存儲(chǔ)器地址被翻譯成物理存儲(chǔ)器地址。同時(shí),在808處用相應(yīng)與虛擬存儲(chǔ)器到物理存儲(chǔ)器翻譯的新的TLB條目更新TLB的內(nèi)容。而810是將相應(yīng)與新的TLB條目的一個(gè)TLB頁面移動(dòng),使之暫時(shí)地接近處理器。在一種實(shí)施方案中,TLB頁面被移動(dòng)到一個(gè)局部的TLB頁面高速緩存處,分層體系上它是處于主存儲(chǔ)器和高速緩存之間。
回到804,如果確定所請(qǐng)求的存儲(chǔ)頁面在TLB中不存在相關(guān)的TLB條目,那么在812所請(qǐng)求的存儲(chǔ)頁面便從TLB頁面高速緩存重新取回。不論哪種情況,在檢索頁面上的所需要的數(shù)據(jù)元素都被移動(dòng)到處理器進(jìn)行處理。
雖然為了清晰地理解問題,上述發(fā)明已經(jīng)敘述得比較詳細(xì),但是在所附權(quán)利要求的范圍內(nèi)還要進(jìn)行某些改動(dòng)和改進(jìn)。
而且,需要指出本發(fā)明的過程和設(shè)備兩者都有可供選擇的實(shí)施辦法。因此現(xiàn)在這些實(shí)施方案認(rèn)為是舉例性的而不是限定性的,而本發(fā)明不限于這里所給出的詳細(xì)說明,而是可能會(huì)在所附權(quán)利要求的范圍和等價(jià)方案之內(nèi),進(jìn)行改進(jìn)的。
權(quán)利要求
1.在基于虛擬存儲(chǔ)器具有一個(gè)主存儲(chǔ)器和一個(gè)高速緩沖存儲(chǔ)器的系統(tǒng)中,一種減少存儲(chǔ)器訪問等待時(shí)間的方法,包括由處理器產(chǎn)生具有相關(guān)的虛擬存儲(chǔ)器地址的數(shù)據(jù)請(qǐng)求;確定所請(qǐng)求的虛擬存儲(chǔ)器地址是否在TLB中有一個(gè)相關(guān)的TLB條目,而TLB條目指向包含在TLB頁面高速緩存中的一個(gè)TLB頁面而且其中TLB頁面包括所請(qǐng)求的數(shù)據(jù);以及當(dāng)確定所請(qǐng)求的虛擬存儲(chǔ)器地址在TLB中確有一個(gè)相關(guān)的TLB條目,而所要檢索的數(shù)據(jù)被移動(dòng)到暫時(shí)接近處理器,那么從TLB頁面高速緩存中取回所要求的數(shù)據(jù)。
2.如權(quán)利要求1的方法,還包括如果確定所請(qǐng)求的存儲(chǔ)器頁面沒有相關(guān)的TLB條目,那么就將虛擬存儲(chǔ)器地址翻譯成物理存儲(chǔ)器地址;用相應(yīng)于虛擬存儲(chǔ)器到物理存儲(chǔ)器的翻譯的新的TLB條目更新TLB;以及更新的同時(shí)或盡可能快地,將相應(yīng)于暫時(shí)接近處理器新的TLB條目的TLB頁面移走。
3.如權(quán)利要求2的方法,其中的翻譯是使用一種頁面表進(jìn)行的。
4.如權(quán)利要求1的方法,其中TLB頁面高速緩存在分層體系上是處于主存儲(chǔ)器和高速緩存之間。
5.如權(quán)利要求4的方法,其中當(dāng)新的TLB頁面與一個(gè)TLB未中事件相關(guān)時(shí),該新的TLB頁面被移動(dòng)到TLB頁面高速緩存之中。
6.一種基于虛擬存儲(chǔ)器的計(jì)算機(jī)系統(tǒng),包括適合于執(zhí)行可執(zhí)行指令的處理器;連接處理器的分級(jí)的系統(tǒng)存儲(chǔ)器,用于保存軟件形式的多條可執(zhí)行指令,其中系統(tǒng)存儲(chǔ)器的安排是這樣的,一個(gè)較高層次的系統(tǒng)存儲(chǔ)器部件比一個(gè)較低層次的系統(tǒng)存儲(chǔ)器部件更暫時(shí)接近處理器,而其中系統(tǒng)存儲(chǔ)器包括,主存儲(chǔ)器,適合于保存多條可執(zhí)行指令的基本部分,連接主存儲(chǔ)器的高速緩存適合于保存一組最近用過的可執(zhí)行指令,其中高速緩存比主存儲(chǔ)器更加暫時(shí)接近處理器,TLB頁面高速緩存,保存指向一個(gè)TLB條目的TLB頁面,其中TLB頁面高速緩存暫時(shí)地位于高速緩存和主存儲(chǔ)器之間。
7.如權(quán)利要求6的系統(tǒng),還包括存儲(chǔ)控制器將處理器和系統(tǒng)存儲(chǔ)器連接起來,以便控制系統(tǒng)存儲(chǔ)器和處理器之間的通信量。
8.如權(quán)利要求7的系統(tǒng),其中包括位于處理器中的翻譯旁視緩沖器(TLB),用來保存一組最近將虛擬地址翻譯成物理地址的數(shù)據(jù),其中該特殊的虛擬地址翻譯成物理地址的數(shù)據(jù)取TLB條目的形式。
9.如權(quán)利要求7的系統(tǒng),其中包括位于存儲(chǔ)控制器中的翻譯旁視緩沖器(TLB),用來保存一組最近將虛擬地址翻譯成物理地址的數(shù)據(jù),其中該特殊的虛擬地址翻譯成物理地址的數(shù)據(jù)取TLB條目的形式。
10.如權(quán)利要求7的系統(tǒng),其中TLB頁面基本上與TLB頁面高速緩存的容量相同。
全文摘要
根據(jù)本項(xiàng)發(fā)明,公開了減少存儲(chǔ)器訪問等待時(shí)間的若干方法和設(shè)備。當(dāng)對(duì)翻譯旁視緩沖器(110)做出一個(gè)新的表項(xiàng)時(shí),新的TLB表項(xiàng)指向存儲(chǔ)器(108)的一個(gè)相應(yīng)的TLB頁面。更新TLB(110)的同時(shí),通過將TLB頁面保存到一種TLB頁面高速緩存(114),TLB頁面移動(dòng)到暫時(shí)接近處理器(102)。該TLB頁面高速緩存(114)比主存儲(chǔ)器(108)更加暫時(shí)接近主存儲(chǔ)器(108)。
文檔編號(hào)G06F12/10GK1352771SQ00805639
公開日2002年6月5日 申請(qǐng)日期2000年1月27日 優(yōu)先權(quán)日1999年1月28日
發(fā)明者H·斯特拉科夫斯基 申請(qǐng)人:因芬尼昂技術(shù)股份公司