專利名稱:改進(jìn)虛擬存儲(chǔ)器系統(tǒng)中存儲(chǔ)器訪問的技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計(jì)算系統(tǒng)。具體說,本發(fā)明涉及存儲(chǔ)器管理系統(tǒng),更特別說,涉及通過使用在使用虛擬存儲(chǔ)器尋址的計(jì)算機(jī)存儲(chǔ)器系統(tǒng)中的一個(gè)轉(zhuǎn)換查閱緩沖器以減少與由處理器訪問存儲(chǔ)器頁相關(guān)的等待時(shí)間的方法和裝置。
背景技術(shù):
虛擬存儲(chǔ)器系統(tǒng)是允許尋址非常大容量存儲(chǔ)器的系統(tǒng),即使系統(tǒng)的主存儲(chǔ)器包含較小的地址空間。虛擬存儲(chǔ)器系統(tǒng)通過定義存儲(chǔ)器管理單元來提供這一能力,尤其是,頁或段,有虛擬存儲(chǔ)器地址和相應(yīng)的物理存儲(chǔ)器地址。一個(gè)特別的虛擬存儲(chǔ)器地址可以在主存儲(chǔ)器內(nèi)或在較慢的替補(bǔ)存儲(chǔ)器內(nèi),例如磁盤空間。如果一個(gè)虛擬地址映射到的數(shù)據(jù)的物理地址是主存儲(chǔ)器,則信息很容易被訪問和利用。如果物理地址表明對(duì)應(yīng)虛擬地址的頁位于替補(bǔ)存儲(chǔ)器,則該頁被傳輸或交換到主存儲(chǔ)器里,在主存儲(chǔ)器中可以訪問數(shù)據(jù)。傳輸一般需要其它信息從主存儲(chǔ)器交換出去回到替補(bǔ)存儲(chǔ)器為新信息騰出空位。這一傳輸一般在作為硬件或軟件的存儲(chǔ)器管理單元的控制下執(zhí)行。
為了增加虛擬存儲(chǔ)器訪問的速度,也包含超高速緩沖存儲(chǔ)器以存儲(chǔ)最近使用的數(shù)據(jù)和指令。在為請(qǐng)求的信息訪問主存儲(chǔ)器之前首先訪問這些超高速緩沖存儲(chǔ)器。這些超高速緩沖存儲(chǔ)器可以虛擬尋址或者物理尋址。然而,根據(jù)物理地址訪問的超高速緩沖存儲(chǔ)器需要在檢查超高速緩沖存儲(chǔ)器和主存儲(chǔ)器之前進(jìn)行虛擬對(duì)物理訪問轉(zhuǎn)換的處理。
頁處理,亦即交換頁的處理,依賴由存儲(chǔ)器頁索引的數(shù)據(jù)結(jié)構(gòu)。這一數(shù)據(jù)結(jié)構(gòu)包含根據(jù)提供的虛擬地址要訪問的存儲(chǔ)器的物理地址。包含物理頁地址的這一數(shù)據(jù)結(jié)構(gòu)通常采取由虛擬頁號(hào)、表的大小、頁號(hào)和虛擬存儲(chǔ)器空間索引的頁表的形式。頁表通常這樣大,使得它們被存儲(chǔ)在主存儲(chǔ)器中并經(jīng)常將它們自己分頁。這意味著,只要是需要一次存儲(chǔ)器訪問來獲取物理地址和需要再一次訪問來獲取數(shù)據(jù)時(shí),則每一次存儲(chǔ)器訪問至少要一次或多次。
用于使訪問時(shí)間成本最小的一種技術(shù)是保存最后執(zhí)行的轉(zhuǎn)換,以便如果當(dāng)前地址與前一個(gè)地址指向同一頁時(shí)跳過映射處理。另外,為了節(jié)省附加的時(shí)間,利用為超高速緩沖存儲(chǔ)器使用的位置原理帶來的益處。如果該引用具有位置,則用于這些引用的地址轉(zhuǎn)換也必須有位置。通過把這些地址轉(zhuǎn)換保存在一個(gè)特殊的超高速緩沖存儲(chǔ)器中,存儲(chǔ)器訪問很少需要第二次訪問來轉(zhuǎn)換地址。這一特殊的地址轉(zhuǎn)換超高速緩沖存儲(chǔ)器稱為轉(zhuǎn)換查閱緩沖器或“TLB”(translation look asidebuffer)。一個(gè)TLB條目像超高速緩沖存儲(chǔ)器條目,其中標(biāo)簽部分保持虛擬地址部分,而數(shù)據(jù)部分保持物理頁幀號(hào)、保護(hù)字段、使用位和修改或臟位。
圖1表示一個(gè)典型的TLB數(shù)據(jù)結(jié)構(gòu)100的一個(gè)例子。
為增加訪問虛擬存儲(chǔ)器的速度可以使用一些不同的方法和技術(shù)。在一種方法中,使用較重的流水線存儲(chǔ)器訪問,其中在流水線的前面一個(gè)步驟執(zhí)行TLB訪問。另一個(gè)方法是直接匹配虛擬地址。這樣的超高速緩沖存儲(chǔ)器稱為虛擬超高速緩沖存儲(chǔ)器。這從超高速緩沖存儲(chǔ)器命中訪問的場(chǎng)合消除了TLB的轉(zhuǎn)換時(shí)間。然而,不幸的是,一個(gè)缺點(diǎn)是處理要耗費(fèi)很長的時(shí)間,并需要為每一個(gè)虛擬地址執(zhí)行而不管地址位置。
應(yīng)該注意,關(guān)于TLB的另外的討論可以在David A.Patterson和John L.Hennessey著Computer Architecture,A QualitativeApproach Second Edition,(Morgan Kaufmann出版社)中第439-第457頁找到。
考慮到前述內(nèi)容,顯然,希望有為在虛擬存儲(chǔ)器環(huán)境中減少存儲(chǔ)器訪問等待時(shí)間的方法和裝置。
發(fā)明概要根據(jù)本發(fā)明,公開了一種在基于虛擬存儲(chǔ)器的系統(tǒng)中減少存儲(chǔ)器訪問等待時(shí)間的方法。
根據(jù)本發(fā)明的一個(gè)方面,公開了一種在基于虛擬存儲(chǔ)器的系統(tǒng)中減少存儲(chǔ)器訪問等待時(shí)間的裝置。該裝置包括一個(gè)用于執(zhí)行可執(zhí)行指令的處理器,一個(gè)適當(dāng)連接到該處理器用于存儲(chǔ)由該處理器執(zhí)行的可執(zhí)行指令的主存儲(chǔ)器,一個(gè)連接到該處理器和該主存儲(chǔ)器用于存儲(chǔ)最近使用過的指令的一個(gè)子集的超高速緩沖存儲(chǔ)器,其中該超高速緩沖存儲(chǔ)器臨時(shí)比該主存儲(chǔ)器更接近該處理器。該裝置還包括適當(dāng)安排用以存儲(chǔ)一個(gè)TLB頁的TLB頁超高速緩沖存儲(chǔ)器,其中在該處理器的指導(dǎo)之下,通過將對(duì)應(yīng)于一個(gè)新TLB條目的一個(gè)新TLB頁從主存儲(chǔ)器移動(dòng)到該TLB頁超高速緩沖存儲(chǔ)器而使該新TLB頁臨時(shí)移動(dòng)到更接近該處理器,其中該TLB頁超高速緩沖存儲(chǔ)器比該主存儲(chǔ)器更接近該處理器,并且其中在該TLB頁超高速緩沖存儲(chǔ)器中的一個(gè)TLB頁超高速緩沖存儲(chǔ)器條目指向一個(gè)相關(guān)的TLB頁。
圖1表示常規(guī)安排的TLB數(shù)據(jù)結(jié)構(gòu)。
圖2表示一個(gè)根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于虛擬存儲(chǔ)器的計(jì)算機(jī)系統(tǒng),它具有一個(gè)分布式TLB寄存器。
圖3表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的層次式存儲(chǔ)器安排。
圖4表示一個(gè)根據(jù)本發(fā)明的一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng),其中,一個(gè)TLB頁被分布在一個(gè)DRAM存儲(chǔ)器設(shè)備的陣列中。
圖5表示基于圖4所示計(jì)算機(jī)系統(tǒng)的一個(gè)示例地址映射模式。
圖6表示一個(gè)計(jì)算機(jī)系統(tǒng),其中,圖4所示DRAM存儲(chǔ)器設(shè)備陣列包括快速靜態(tài)緩沖器。
圖7表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng),它具有在存儲(chǔ)器控制器中的一個(gè)TLB緩沖器,其通過高速數(shù)據(jù)互連連接到一個(gè)存儲(chǔ)器陣列。
圖8是一個(gè)流程圖,詳細(xì)說明根據(jù)本發(fā)明的一個(gè)實(shí)施例用于減少基于虛擬存儲(chǔ)器的系統(tǒng)的存儲(chǔ)器訪問等待時(shí)間的過程。
較佳實(shí)施例的詳細(xì)描述現(xiàn)在詳細(xì)參考本發(fā)明的一個(gè)優(yōu)選實(shí)施例。該優(yōu)選實(shí)施例的一個(gè)例子在附圖中表示。雖然本發(fā)明結(jié)合優(yōu)選實(shí)施例說明,但是應(yīng)該理解,但其并不意欲限制本發(fā)明到一個(gè)優(yōu)選實(shí)施例。相反,其目的是覆蓋可以包括在由所附權(quán)利要求限定的本發(fā)明的精神和范圍內(nèi)的替換、修改和等價(jià)物。
為了減少在使用虛擬存儲(chǔ)器尋址方案的計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)器等待時(shí)間,使用也稱為TLB的轉(zhuǎn)換查閱緩沖器來標(biāo)識(shí)最近一組虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的轉(zhuǎn)換。在所說明的實(shí)施例中,計(jì)算機(jī)系統(tǒng)包括一個(gè)連接到主存儲(chǔ)器和一個(gè)超高速緩沖存儲(chǔ)器的處理器(具有一個(gè)相關(guān)的TLB)。通常,使用超高速緩沖存儲(chǔ)器來存儲(chǔ)先前從主存儲(chǔ)器(諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器,DRAM)獲取的最近使用的存儲(chǔ)器地址和相關(guān)的數(shù)據(jù)。通過在TLB中存儲(chǔ)最近的虛擬存儲(chǔ)器到物理存儲(chǔ)器的轉(zhuǎn)換(一般采取查找表的形式或LUT),對(duì)于存儲(chǔ)在TLB中的這些轉(zhuǎn)換而轉(zhuǎn)換一個(gè)虛擬存儲(chǔ)器地址到一個(gè)物理存儲(chǔ)器地址所需要的時(shí)間減少為一次簡單的表查閱操作。
因?yàn)樵谌魏谓o定時(shí)刻處理器不能訪問比在它的相關(guān)的TLB中說明的更多的物理存儲(chǔ)器,因此,引起一次失中(亦即未發(fā)現(xiàn)被包含在該處理器的TLB中)的任何存儲(chǔ)器頁與實(shí)際更新TLB相并行地被移動(dòng)到臨時(shí)更接近處理器的更快的存儲(chǔ)器(諸如L1或L2超高速緩沖存儲(chǔ)器)。應(yīng)該注意,通過更新TLB,意味著,因?yàn)門LB是頻繁使用的頁的超高速緩沖存儲(chǔ)器,因此任何被決定為未由任一數(shù)目和類型的算法(例如一種隨機(jī)算法)頻繁使用的頁被從TLB中清除或清空,為其虛擬存儲(chǔ)器對(duì)物理存儲(chǔ)器轉(zhuǎn)換判定不在TLB中的存儲(chǔ)器頁騰出空間。
當(dāng)跟蹤處理器TLB時(shí),進(jìn)行一次備份復(fù)制,并保存在一個(gè)相關(guān)的存儲(chǔ)器控制器中。在更換一個(gè)特定的TLB條目的時(shí)候,存儲(chǔ)器控制器起動(dòng)一個(gè)由該新TLB條目指向的相關(guān)的頁(或其一部分)進(jìn)入臨時(shí)更接近處理器的存儲(chǔ)器層次的一段中。臨時(shí)更接近指的是為該特定存儲(chǔ)器頁或其一部分的存儲(chǔ)器訪問等待時(shí)間減少從而改善總的存儲(chǔ)器訪問時(shí)間。在一些實(shí)現(xiàn)中,由新TLB條目指向的整個(gè)存儲(chǔ)器頁(或塊)臨時(shí)移動(dòng)到更接近處理器,而在另一些實(shí)現(xiàn)中,只有相應(yīng)于引起TLB條目自身改變的地址的一小部分被移動(dòng)。傳輸?shù)礁咏幚砥鞯拇鎯?chǔ)器層次的段的存儲(chǔ)器頁的大小大部分取決于在各層次段之間的互連的帶寬。
概括地說,如圖2所示,本發(fā)明可以根據(jù)具有處理器102的計(jì)算機(jī)系統(tǒng)100說明,處理器102通過系統(tǒng)總線106連接到存儲(chǔ)器控制器104,而總線106適當(dāng)配置以提供對(duì)層次組織的系統(tǒng)存儲(chǔ)器108的訪問。在所述實(shí)施例中,層次組織的系統(tǒng)存儲(chǔ)器108的各部件可以采取多種形式,諸如DRAM、SDRAM、SLDRAM、EDO、FPM、RDRAM等。在所述實(shí)施例中,系統(tǒng)總線106包括一個(gè)單向地址總線106-1,其安排為將由處理器102產(chǎn)生的存儲(chǔ)器地址請(qǐng)求傳送到存儲(chǔ)器控制器104。系統(tǒng)總線106還包括一個(gè)單向的命令總線106-2,它結(jié)合地址總線106-1攜帶與存儲(chǔ)器地址關(guān)聯(lián)的命令。例如,當(dāng)處理器102請(qǐng)求一條可執(zhí)行指令時(shí),處理器給命令總線106-2輸出一個(gè)讀請(qǐng)求(稱為系統(tǒng)命令),其基本上與在地址總線106-1上的一個(gè)相應(yīng)的存儲(chǔ)器地址請(qǐng)求(稱為系統(tǒng)地址)同時(shí)。
在所述實(shí)施例中,計(jì)算機(jī)系統(tǒng)100是一個(gè)基于虛擬存儲(chǔ)器的計(jì)算機(jī)系統(tǒng),因此存儲(chǔ)器地址請(qǐng)求事實(shí)上是一個(gè)必須轉(zhuǎn)換為物理存儲(chǔ)器地址的虛擬存儲(chǔ)器地址請(qǐng)求。以這種方式,可以訪問在相應(yīng)于系統(tǒng)存儲(chǔ)器108的存儲(chǔ)器空間中的適當(dāng)?shù)拇鎯?chǔ)器地址。在計(jì)算機(jī)系統(tǒng)100中,處理器102產(chǎn)生虛擬地址,其由硬件和軟件的結(jié)合轉(zhuǎn)換為訪問物理主存儲(chǔ)器的物理地址??梢越o一個(gè)特定的存儲(chǔ)器頁動(dòng)態(tài)分配一組虛擬地址,使得虛擬存儲(chǔ)器需要一個(gè)有時(shí)稱為頁表的數(shù)據(jù)結(jié)構(gòu),它把虛擬地址轉(zhuǎn)換為物理地址。為減少地址轉(zhuǎn)換時(shí)間,計(jì)算機(jī)系統(tǒng)100使用一個(gè)專用于地址轉(zhuǎn)換的相關(guān)的超高速緩沖存儲(chǔ)器,其在上面作為轉(zhuǎn)換查閱緩沖器(TLB)110說明。
然而,應(yīng)該注意,TLB 110可以事實(shí)上位于系統(tǒng)設(shè)計(jì)者決定為對(duì)該特定計(jì)算機(jī)系統(tǒng)最合適的地方。在所述實(shí)施例中,TLB 110采取查閱表(LUT)的形式,其用于標(biāo)識(shí)最近的虛擬存儲(chǔ)器地址對(duì)物理存儲(chǔ)器地址的轉(zhuǎn)換。通過在TLB 110中存儲(chǔ)最近的虛擬存儲(chǔ)器對(duì)物理存儲(chǔ)器的轉(zhuǎn)換,對(duì)于存儲(chǔ)在TLB 110中的那些轉(zhuǎn)換而轉(zhuǎn)換一個(gè)虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址所需要的時(shí)間減少到一個(gè)簡單的表查閱操作的時(shí)間,它要比一次虛擬存儲(chǔ)器對(duì)物理存儲(chǔ)器轉(zhuǎn)換操作快很多。
在本發(fā)明的一個(gè)實(shí)施例中,每當(dāng)處理器102產(chǎn)生一個(gè)特定的虛擬存儲(chǔ)器請(qǐng)求時(shí),就詢問TLB 110決定所請(qǐng)求的存儲(chǔ)器頁是否與在TLB 110中的條目指向的一個(gè)存儲(chǔ)器頁關(guān)聯(lián)。如上所述,根據(jù)位置原理,由一個(gè)特定TLB條目指向的存儲(chǔ)器頁的大小越大,則TLB命中的可能性越大,也就是說所請(qǐng)求的虛擬存儲(chǔ)器頁具有一個(gè)相關(guān)的TLB條目,從而不需要轉(zhuǎn)換操作。然而,在所請(qǐng)求的存儲(chǔ)器頁不與一個(gè)TLB條目關(guān)聯(lián)的場(chǎng)合(亦即失中),則必須轉(zhuǎn)換所請(qǐng)求的虛擬存儲(chǔ)器頁地址并最終從系統(tǒng)存儲(chǔ)器中檢索。
在本發(fā)明的一個(gè)實(shí)施例中,采取TLB寄存器110的拷貝形式的控制器TLB 112包括在控制器104中,其用于指向一個(gè)相應(yīng)于TLB 110中的一個(gè)新條目的存儲(chǔ)器頁(通常位于較低一級(jí)存儲(chǔ)器中)。在一些實(shí)現(xiàn)中,由新TLB條目指向的整個(gè)存儲(chǔ)器頁(或塊)臨時(shí)移動(dòng)到更接近處理器的臨時(shí)位于更接近處理器102的一個(gè)TLB頁超高速緩沖存儲(chǔ)器114。應(yīng)該注意,在其它實(shí)現(xiàn)中,僅相應(yīng)于將引起TLB條目自身改變的地址的一小部分進(jìn)行移動(dòng)。傳輸?shù)礁咏幚砥鞯拇鎯?chǔ)器層次的段的存儲(chǔ)器頁的大小大部分取決于在系統(tǒng)存儲(chǔ)器108的各層次部件之間的互連的帶寬。應(yīng)該注意,在這一場(chǎng)合,數(shù)據(jù)傳輸?shù)拇笮∮稍赥LB頁超高速緩沖存儲(chǔ)器114和主存儲(chǔ)器之間的互連的帶寬決定。在這些場(chǎng)合,存儲(chǔ)器結(jié)構(gòu),諸如RAMBUSTM和/或SLDRAM(同步連接動(dòng)態(tài)RAM),比更常用的快速頁模式型存儲(chǔ)器更適合。
應(yīng)該注意,實(shí)際TLB跟蹤機(jī)構(gòu)可以采取任何數(shù)目實(shí)現(xiàn)的形式,當(dāng)然取決于TLB自身的位置。在TLB位于處理器自身之內(nèi)的情況下,TLB是可直接訪問的,處理器能夠給存儲(chǔ)器控制器發(fā)布一個(gè)通知標(biāo)志,基于TLB失中地址預(yù)取希望的數(shù)據(jù)。在一些情況下,該通知標(biāo)志可以由在處理器上的專用控制管腳產(chǎn)生,而在另外一些情況下,可以由在處理器總線協(xié)議內(nèi)的某些變化產(chǎn)生。在一個(gè)實(shí)施例中,該標(biāo)志指示發(fā)生過一次TLB失中,以及TLB的哪一部分被無效。這可以由專用管腳總線產(chǎn)生,因?yàn)槔缫粋€(gè)Pentium IITM處理器只有6個(gè)索引管腳和一個(gè)控制管腳。在一些場(chǎng)合,處理器可以在處理器總線上發(fā)布一個(gè)特殊的消息周期。該消息周期可以承載一個(gè)TLB條目索引以及新物理地址,以便為本發(fā)明的目的,控制器TLB 112將總是相對(duì)于處理器TLB 110最新。
在控制機(jī)構(gòu)位于存儲(chǔ)器控制器自身的場(chǎng)合,存儲(chǔ)器控制器必須通過觀察次級(jí)超高速緩沖存儲(chǔ)器的傳輸量例如或者通常位于主存儲(chǔ)器中的頁表來跟蹤TLB內(nèi)容。在監(jiān)視次級(jí)超高速緩沖存儲(chǔ)器的場(chǎng)合,處理器必須允許訪問在存儲(chǔ)器控制器內(nèi)的窺視電路。然而,如果次級(jí)超高速緩沖存儲(chǔ)器不能被窺視和/或處理器沒有指示TLB失中標(biāo)志的話,則當(dāng)對(duì)失中的地址發(fā)布物理地址訪問時(shí)必須更新存儲(chǔ)器控制器TLB。
圖3表示按照本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)存儲(chǔ)器108的一個(gè)特定的實(shí)現(xiàn)。如同對(duì)熟悉計(jì)算機(jī)結(jié)構(gòu)設(shè)計(jì)和編程技術(shù)的人所了解的,計(jì)算機(jī)系統(tǒng)諸如計(jì)算機(jī)系統(tǒng)100一般使用一個(gè)多級(jí)層次存儲(chǔ)器系統(tǒng)。在該層次方法中,較快的、貴的、有限容量的存儲(chǔ)器(亦即寄存器202)位于該層次的最高一級(jí)并繼續(xù)到該層次最低級(jí)的較慢的、較低費(fèi)用的、較高容量的存儲(chǔ)器。通常,存儲(chǔ)器層次包括一個(gè)稱為超高速緩沖存儲(chǔ)器204的小的快速存儲(chǔ)器,它要么物理集成到處理器102(它通常是一個(gè)集成電路)內(nèi)或安裝在物理上靠近處理器102的地方,以便主要由于互連等待時(shí)間的減少(亦即臨時(shí)靠近)增加速度。應(yīng)該注意,可以有幾個(gè)不同層次的超高速緩沖存儲(chǔ)器諸如L1、L2等,每一個(gè)可以具有不同的大小和訪問時(shí)間。通常,超高速緩沖存儲(chǔ)器204能夠存儲(chǔ)數(shù)量級(jí)為16-512千字節(jié)的存儲(chǔ)器,這些存儲(chǔ)器具有數(shù)量級(jí)為3-30ns的典型訪問時(shí)間,能夠存儲(chǔ)由處理器102最近使用的數(shù)據(jù)集,也稱為工作數(shù)據(jù)集。
當(dāng)從主存儲(chǔ)器206讀或?qū)χ畬憯?shù)據(jù)時(shí),在超高速緩沖存儲(chǔ)器204中也保存一份拷貝,連同關(guān)聯(lián)的主存儲(chǔ)器地址。超高速緩沖存儲(chǔ)器204監(jiān)視后繼的讀操作,看所需要的數(shù)據(jù)是否已經(jīng)在該超高速緩沖存儲(chǔ)器中。如果是(超高速緩沖存儲(chǔ)器命中),則它被立即返回,放棄對(duì)主存儲(chǔ)器的讀(或不開始)。如果數(shù)據(jù)未被超高速緩沖存儲(chǔ)(超高速緩沖存儲(chǔ)器失中),則從主存儲(chǔ)器中取數(shù)據(jù),并且也保存在超高速緩沖存儲(chǔ)器中。
超高速緩沖存儲(chǔ)器204用比主存儲(chǔ)器206更快的存儲(chǔ)器芯片構(gòu)成,所以一次超高速緩沖存儲(chǔ)器命中用的時(shí)間比完成一次正常的存儲(chǔ)器訪問所用的時(shí)間短很多。超高速緩沖存儲(chǔ)器可以位于和處理器同樣的集成電路上以便進(jìn)一步減少訪問時(shí)間。在這種場(chǎng)合,常常知道作為基本超高速緩沖存儲(chǔ)器,在CPU芯片外可以有一個(gè)較大的、較慢的次級(jí)超高速緩沖存儲(chǔ)器。
應(yīng)該注意,超高速緩沖存儲(chǔ)器的最重要的特征是它的命中率-所有存儲(chǔ)器訪問能從超高速緩沖存儲(chǔ)器204滿足的比例。這又依賴于超高速緩沖存儲(chǔ)器設(shè)計(jì),但是最依賴于它相對(duì)于主存儲(chǔ)器的大小。該大小由快速存儲(chǔ)器芯片的成本和更重要的是物理大小極限所限制。
命中率還取決于正在運(yùn)行的特定程序的訪問模式(被讀和寫的地址序列)。超高速緩沖存儲(chǔ)器依賴大多數(shù)程序的訪問模式的兩個(gè)特性臨時(shí)位置-如果曾經(jīng)訪問過某些內(nèi)容,它有可能很快被再次訪問,和空間位置-如果一個(gè)存儲(chǔ)器位置被訪問,則附近的存儲(chǔ)器位置也可能被訪問。為利用空間位置,超高速緩沖存儲(chǔ)器常常一時(shí)操作幾個(gè)字,“超高速緩沖存儲(chǔ)器行”或“超高速緩沖存儲(chǔ)器塊”。主存儲(chǔ)器讀和寫是整個(gè)超高速緩沖存儲(chǔ)器行(僅可以超高速緩沖存儲(chǔ)的事項(xiàng))。
當(dāng)處理器102希望寫主存儲(chǔ)器206時(shí),根據(jù)處理器可能很快再讀它的假設(shè),數(shù)據(jù)首先寫到超高速緩沖存儲(chǔ)器204。使用各種不同的策略。在直寫(write through)式超高速緩沖存儲(chǔ)器中,數(shù)據(jù)在它被超高速緩沖存儲(chǔ)的同時(shí)寫到主存儲(chǔ)器。在回寫式超高速緩沖存儲(chǔ)器中,當(dāng)它被強(qiáng)迫從超高速緩沖存儲(chǔ)器移出時(shí)它才寫到主存儲(chǔ)器。
如果所有的訪問都是寫,對(duì)于直寫式策略,每一次對(duì)超高速緩沖存儲(chǔ)器的寫將需要主存儲(chǔ)器寫,從而使系統(tǒng)降到主存儲(chǔ)器速度。然而,從統(tǒng)計(jì)上說,大多數(shù)訪問是讀,而大多數(shù)這些讀將從超高速緩沖存儲(chǔ)器中滿足。直寫比回寫簡單,因?yàn)橐粋€(gè)要被置換的條目可以只在超高速緩沖存儲(chǔ)器中被寫復(fù)蓋,因?yàn)樗呀?jīng)被復(fù)制到主存儲(chǔ)器中,而回寫需要超高速緩沖存儲(chǔ)器啟動(dòng)對(duì)后隨由主存儲(chǔ)器讀清空的條目的一次主存儲(chǔ)器寫(對(duì)一次處理器讀)。然而,回寫效率更高,因?yàn)橐粋€(gè)條目可以在超高速緩沖存儲(chǔ)器中寫多次而不需對(duì)主存儲(chǔ)器訪問。當(dāng)超高速緩沖存儲(chǔ)器滿了并希望超高速緩沖存儲(chǔ)另外一行數(shù)據(jù)時(shí),則選擇一個(gè)要被回寫到主存儲(chǔ)器或“被清空”的超高速緩沖存儲(chǔ)器條目。于是把該新行放在其位。選擇哪一個(gè)條目被清空由“置換算法”決定。
在一個(gè)特別的實(shí)現(xiàn)中,系統(tǒng)存儲(chǔ)器108包括TLB頁超高速緩沖存儲(chǔ)器114,用于存儲(chǔ)要由在TLB 110或者TLB 112任何一個(gè)中的一個(gè)新條目指向的存儲(chǔ)器頁(或其部分)。
在所說明的實(shí)施例中,在最低一級(jí),一個(gè)大容量外部存儲(chǔ)器存儲(chǔ)設(shè)備210,諸如磁帶驅(qū)動(dòng)器,具有相對(duì)無限制的存儲(chǔ)容量,但是對(duì)任何地方的平均訪問時(shí)間(亦即等待時(shí)間)從秒級(jí)到分級(jí)。在接下來的較低級(jí),磁盤存儲(chǔ)器(或任何等價(jià)的介質(zhì))208通??梢源鎯?chǔ)數(shù)千兆字節(jié)數(shù)據(jù),訪問時(shí)間的數(shù)量級(jí)大約為10ms,而在下一較高級(jí),主存儲(chǔ)器206(通常以DRAM類型存儲(chǔ)器設(shè)備的形式)通??梢源鎯?chǔ)數(shù)量級(jí)為兆字節(jié)的數(shù)據(jù),具有典型的訪問時(shí)間大約為50ns到大約150ns。在本發(fā)明的一個(gè)實(shí)施例中,一個(gè)TLB頁超高速緩沖存儲(chǔ)器114以層次方式放置在主存儲(chǔ)器206和提供減少主存儲(chǔ)器訪問次數(shù)的能力的超高速緩沖存儲(chǔ)器204之間。通過存儲(chǔ)由轉(zhuǎn)換查閱緩沖器110指向的存儲(chǔ)器頁,例如,(在這一場(chǎng)合位于處理器102之內(nèi)),主存儲(chǔ)器訪問的次數(shù)伴隨減少,因?yàn)槊看斡幸淮蜹LB命中(亦即請(qǐng)求的存儲(chǔ)器頁在TLB110中有相關(guān)的條目),被請(qǐng)求的存儲(chǔ)器頁只需要從TLB頁超高速緩沖存儲(chǔ)器114中檢索而不是從主存儲(chǔ)器206檢索,從而相對(duì)于沒有TLB頁超高速緩沖存儲(chǔ)器114減少了總的系統(tǒng)存儲(chǔ)器訪問等待時(shí)間。應(yīng)該注意,在下面的討論中,相應(yīng)于一個(gè)特定的TLB條目的存儲(chǔ)器頁稱為TLB頁。
圖4表示根據(jù)本發(fā)明的一個(gè)實(shí)施例的一個(gè)計(jì)算機(jī)系統(tǒng)400,它具有駐留在一個(gè)芯片陣列中的TLB頁。在所述實(shí)施例中,系統(tǒng)存儲(chǔ)器108包括由多個(gè)DPAM型存儲(chǔ)器設(shè)備形成的芯片陣列402。
當(dāng)在操作時(shí),如果例如要讀一個(gè)特定的存儲(chǔ)器單元,則處理器102產(chǎn)生一個(gè)相應(yīng)于在該存儲(chǔ)器陣列402中存儲(chǔ)器單元的地址請(qǐng)求。因?yàn)樾纬申嚵?02的DRAM 402-1到402-n的每一個(gè)在存儲(chǔ)單元404的邏輯“矩形”中保存它們的內(nèi)容,讀例如存儲(chǔ)在存儲(chǔ)單元404-1中的數(shù)據(jù)需要首先使用由存儲(chǔ)器控制器104提供的稱為“行地址選擇”(或“行地址選通”,“/PAS”)的信號(hào)激活行406。具體說,RAS是一個(gè)發(fā)送到DRAM的信號(hào),它告訴后者相關(guān)的地址是一個(gè)行地址。
通常,/PAS信號(hào)基于由處理器102提供的地址請(qǐng)求的最高有效部分。當(dāng)被接收到并被適當(dāng)解碼,/RAS信號(hào)引起在整個(gè)行406中的數(shù)據(jù)在一個(gè)稱為恢復(fù)時(shí)間的時(shí)間期間后被傳輸?shù)揭粋€(gè)讀出放大器408。所謂恢復(fù)時(shí)間是對(duì)于所選擇的行穩(wěn)定所需要的時(shí)間。在最一般的DRAM中,PAS到讀出放大器的傳輸通常在數(shù)量級(jí)30ns。
一旦所選擇的行穩(wěn)定和在選擇的行中的數(shù)據(jù)被傳輸?shù)阶x出放大器408,則存儲(chǔ)器控制器104進(jìn)一步解碼形成稱為“列地址選擇”(“/CAS”)信號(hào)的地址請(qǐng)求,該信號(hào)當(dāng)被發(fā)送到一個(gè)DRAM時(shí)告訴它一個(gè)相關(guān)的地址是一個(gè)列地址。/CAS信號(hào)引起列選擇電路(未示出)選擇在現(xiàn)在包括希望數(shù)據(jù)的讀出放大器中的存儲(chǔ)器陣列的特定的存儲(chǔ)單元(在該場(chǎng)合是404-1)。然后單元404-1的內(nèi)容從讀出放大器408被發(fā)送到數(shù)據(jù)總線108,在這里請(qǐng)求該數(shù)據(jù)的處理器102或其它設(shè)備可以讀它。應(yīng)該注意,在大多數(shù)DRAM中,CAS通常的數(shù)量級(jí)為30ns。
因此,通過從存儲(chǔ)器陣列404-1移動(dòng)數(shù)據(jù)到讀出放大器408,從而移動(dòng)數(shù)據(jù)臨時(shí)更接近處理器102。這一點(diǎn)可計(jì)量建立,因?yàn)橐淮蜶AS操作是移動(dòng)希望數(shù)據(jù)到總線108的CAS操作的邏輯和物理的先行。
因?yàn)門LB頁物理駐留在存儲(chǔ)器陣列402中的部分相應(yīng)于可以由一次行訪問動(dòng)作帶入到讀出放大器408的列,因此該TLB頁臨時(shí)移動(dòng)到更接近處理器102。因此,從物理和/或邏輯上鏈接幾個(gè)讀出放大器以便使與新TLB條目相關(guān)的整個(gè)TLB頁駐留在該讀出放大器中,從性能觀點(diǎn)來說是有利的。通過這樣做,對(duì)該特別的TLB頁的任何訪問將從一個(gè)總的更快的訪問時(shí)間中受益。
一種這樣的安排示于圖5,其表示根據(jù)本發(fā)明的一個(gè)實(shí)施例在一個(gè)四DRAM存儲(chǔ)器芯片的陣列之間的地址映射模式。
在圖6所示的另一個(gè)實(shí)施例中,形成存儲(chǔ)器陣列的存儲(chǔ)器芯片在常規(guī)DRAM存儲(chǔ)器陣列外包括一個(gè)快速靜態(tài)緩沖器602。這種存儲(chǔ)器芯片以由日本的NEC公司制造的DRAM“虛擬通道”系列作為例子。這一新的結(jié)構(gòu)通過結(jié)合由高速寄存器配置的通道緩沖器實(shí)現(xiàn)了靈活的和高效的數(shù)據(jù)傳輸。在支持多媒體PC、工作站和因特網(wǎng)服務(wù)器的大容量DRAM中使用虛擬通道存儲(chǔ)器。這一新存儲(chǔ)器內(nèi)核技術(shù)的關(guān)鍵特征是結(jié)合由在存儲(chǔ)器中的高速寄存器配置的通道緩沖器。一個(gè)虛擬通道DRAM執(zhí)行從存儲(chǔ)器的前端處理的外面向和從這些通道緩沖器的讀/寫操作?;蛘呤牵T如數(shù)據(jù)傳輸?shù)膬?nèi)部操作在存儲(chǔ)器單元和通道緩沖器之間傳輸,存儲(chǔ)器單元的預(yù)充電和刷新獨(dú)立于這些前端處理而執(zhí)行。其結(jié)果,可以與前后處理并行執(zhí)行后臺(tái)處理。通過為并行處理建立一個(gè)支持結(jié)構(gòu),一個(gè)虛擬通道DRAM維持一個(gè)高平均數(shù)據(jù)傳輸速度和利用固有的存儲(chǔ)器性能到最高可能的程度,部分由于以它自己訪問存儲(chǔ)器陣列的資源訪問一個(gè)獨(dú)立的通道的能力。這可以導(dǎo)致較低的總開銷,低等待時(shí)間,高的通量和增強(qiáng)的總線效率(如果適當(dāng)?shù)厥褂玫脑?,諸如當(dāng)連接的各個(gè)虛擬通道被鏈接(或者物理的或者邏輯的)以形成TLB大小頁的話。
圖7表示按照本發(fā)明的一個(gè)實(shí)施例的系統(tǒng)700,它具有一個(gè)適合于高速TLB頁傳輸?shù)母咚俳涌?。系統(tǒng)700可以用在廣闊的不同應(yīng)用中,諸如計(jì)算機(jī)連網(wǎng),數(shù)據(jù)連網(wǎng),設(shè)備,視頻處理,數(shù)字處理,或任何其它希望使用高速存儲(chǔ)器設(shè)備好處的應(yīng)用??梢允褂?RAMBUS DRAM)RDRAM702執(zhí)行各種不同的存儲(chǔ)器功能,諸如存儲(chǔ)與處理器102協(xié)作工作的可執(zhí)行指令。也可以在像數(shù)據(jù)處理、數(shù)字圖象操作程序等特別希望快速訪問大容量數(shù)據(jù)的應(yīng)用中使用RDRAM 702存儲(chǔ)由處理器102使用的數(shù)據(jù)。應(yīng)該注意,系統(tǒng)700僅僅是例子,本發(fā)明的真正的范圍和精神應(yīng)該由下面的權(quán)利要求指示。
由于性能的考慮,希望具有對(duì)TLB頁超高速緩沖存儲(chǔ)器114盡可能高的傳輸率。因?yàn)樵诩夹g(shù)中公知,DRAM 702-1到702-4固有的并行性支持高傳輸速率,于是DRAM 702-1到702-4提供一個(gè)鏈接的TLB頁到作為緩沖器704-1到704-4安排的一個(gè)TLB頁超高速緩沖存儲(chǔ)器703。然而,隨著諸如由RAMBUS類型通道代表的高速互連的到來,TLB頁超高速緩沖存儲(chǔ)器114的放置可以擴(kuò)展到包括能夠通過高速總線708連接到DRAM 702的任何位置。
圖8是一個(gè)流程圖,詳細(xì)說明按照本發(fā)明的一個(gè)實(shí)施例為移動(dòng)一個(gè)存儲(chǔ)器頁臨時(shí)更接近處理器的處理800。在802,處理器產(chǎn)生一個(gè)具有一個(gè)相關(guān)虛擬存儲(chǔ)器地址的數(shù)據(jù)請(qǐng)求。在804,判定所請(qǐng)求的虛擬存儲(chǔ)器頁在TLB中是否有一個(gè)相關(guān)的TLB條目。如果判定所請(qǐng)求的存儲(chǔ)器頁沒有相關(guān)的TLB條目,則在806使用頁表把該虛擬存儲(chǔ)器地址轉(zhuǎn)換為一個(gè)物理存儲(chǔ)器地址。同時(shí)在808,用相應(yīng)于虛擬存儲(chǔ)器向物理存儲(chǔ)器轉(zhuǎn)換的新TLB條目更新TLB。在810,相應(yīng)于該新TLB條目的TLB頁臨時(shí)移動(dòng)到更接近處理器。在一個(gè)實(shí)施例中,TLB頁被移動(dòng)到一個(gè)在主存儲(chǔ)器和超高速緩沖存儲(chǔ)器之間分層放置的本地TLB頁超高速緩沖存儲(chǔ)器。
返回到804,如果判定所請(qǐng)求的存儲(chǔ)器頁確實(shí)在TLB中有一個(gè)相關(guān)的TLB條目,則在812從TLB頁超高速緩沖存儲(chǔ)器中檢索所請(qǐng)求的存儲(chǔ)器頁。無論在哪種場(chǎng)合,然后把為所檢索的頁的希望的數(shù)據(jù)元素移動(dòng)到處理器以便處理。
雖然為清楚和理解的目的詳細(xì)說明上述發(fā)明,但是顯然,在所附權(quán)利要求的范圍內(nèi)可以實(shí)現(xiàn)一定的改變和修改。
此外,應(yīng)該注意,為實(shí)現(xiàn)本發(fā)明的處理和裝置有另外可選擇的方式。因此,本實(shí)施例考慮為說明性的,而非限制性的,并且本發(fā)明不限制在這里詳細(xì)給出的實(shí)施例,而可以在所附權(quán)利要求的范圍和等價(jià)物內(nèi)修改。
權(quán)利要求
1.一種在基于虛擬存儲(chǔ)器的系統(tǒng)中減少存儲(chǔ)器訪問等待時(shí)間的裝置,該裝置包括一個(gè)用于執(zhí)行可執(zhí)行指令的處理器;一個(gè)適當(dāng)連接到該處理器用于存儲(chǔ)由該處理器執(zhí)行的可執(zhí)行指令的主存儲(chǔ)器;一個(gè)連接到該處理器和該主存儲(chǔ)器用于存儲(chǔ)最近使用過的指令的一個(gè)子集的超高速緩沖存儲(chǔ)器,其中該超高速緩沖存儲(chǔ)器臨時(shí)比該主存儲(chǔ)器更接近該處理器;一個(gè)適當(dāng)安排用以存儲(chǔ)一個(gè)TLB頁的TLB頁超高速緩沖存儲(chǔ)器,其中在該處理器的指導(dǎo)之下,通過將對(duì)應(yīng)于一個(gè)新TLB條目的一個(gè)新TLB頁從主存儲(chǔ)器移動(dòng)到該TLB頁超高速緩沖存儲(chǔ)器而使該新TLB頁臨時(shí)移動(dòng)到更接近該處理器,其中該TLB頁超高速緩沖存儲(chǔ)器比該主存儲(chǔ)器更接近該處理器,并且其中在該TLB頁超高速緩沖存儲(chǔ)器中的一個(gè)TLB頁超高速緩沖存儲(chǔ)器條目指向一個(gè)相關(guān)的TLB頁。
2.如權(quán)利要求1所述系統(tǒng),其特征在于該主存儲(chǔ)器是一個(gè)存儲(chǔ)器陣列。
3.如權(quán)利要求2所述系統(tǒng),其特征在于該存儲(chǔ)器陣列由存儲(chǔ)器設(shè)備形成。
4.如權(quán)利要求3所述系統(tǒng),其特征在于該存儲(chǔ)器設(shè)備是DRAM設(shè)備。
5.如權(quán)利要求4所述系統(tǒng),其特征在于該DRAM設(shè)備包括一個(gè)連接到一個(gè)數(shù)據(jù)總線的讀出放大器。
6.如權(quán)利要求5所述系統(tǒng),其特征在于該TLB頁分布于與該存儲(chǔ)器陣列相關(guān)的讀出放大器。
7.如權(quán)利要求6所述系統(tǒng),其特征在于該DRAM是一個(gè)虛擬通道類型的DRAM,其中該讀出放大器是一個(gè)虛擬通道。
8.如權(quán)利要求1所述系統(tǒng),其特征在于該系統(tǒng)進(jìn)一步包括一個(gè)連接到該處理器和存儲(chǔ)器的一個(gè)存儲(chǔ)器控制器,其中該存儲(chǔ)器控制器還包括該TLB頁超高速緩沖存儲(chǔ)器。
9.如權(quán)利要求8所述系統(tǒng),其特征在于該存儲(chǔ)器設(shè)備包括多個(gè)超高速緩沖存儲(chǔ)器單元,其粒度在大小上與該TLB頁對(duì)應(yīng)。
全文摘要
根據(jù)本發(fā)明,公開了為減少存儲(chǔ)器訪問等待時(shí)間的方法和裝置。當(dāng)對(duì)轉(zhuǎn)換查閱表(110)產(chǎn)生一個(gè)新的條目時(shí),該新TLB條目指向存儲(chǔ)器(108)的一個(gè)相應(yīng)的TLB頁。與更新TLB并行,該TLB頁通過在TLB頁超高速緩沖存儲(chǔ)器(114)中存儲(chǔ)該TLB頁而臨時(shí)移動(dòng)到更接近處理器(102)。TLB頁超高速緩沖存儲(chǔ)器(114)比主存儲(chǔ)器(108)臨時(shí)更接近處理器。
文檔編號(hào)G06F12/10GK1352772SQ00805780
公開日2002年6月5日 申請(qǐng)日期2000年1月27日 優(yōu)先權(quán)日1999年1月28日
發(fā)明者H·斯特拉科夫斯基 申請(qǐng)人:因芬尼昂技術(shù)股份公司