專利名稱:使用基于區(qū)域的頁(yè)表的虛擬存儲(chǔ)映射的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微處理器。本發(fā)明特別涉及虛擬存儲(chǔ)。
背景技術(shù):
存儲(chǔ)器管理子系統(tǒng)是操作系統(tǒng)(OS)的最重要的部分之一。虛擬存儲(chǔ)是存儲(chǔ)器管理子系統(tǒng)內(nèi)的一種技術(shù),能讓處理器訪問(wèn)比該處理器系統(tǒng)中實(shí)際存在的物理存儲(chǔ)器更大的存儲(chǔ)空間。為此,存儲(chǔ)器管理子系統(tǒng)必須提供翻譯或地址映射機(jī)制,以便將虛擬地址空間映射成物理地址空間。
典型的操作系統(tǒng)并發(fā)地管理和控制一系列的進(jìn)程。每個(gè)進(jìn)程有其自己的虛擬地址空間。這些虛擬地址空間一般是互相分開(kāi)的,以防止程序或數(shù)據(jù)的重疊。該OS必須保存一個(gè)頁(yè)表來(lái)為每個(gè)進(jìn)程存儲(chǔ)映射信息。當(dāng)系統(tǒng)中的進(jìn)程數(shù)量變大時(shí),或者地址映射數(shù)量高時(shí),管理虛擬地址映射的開(kāi)銷在大型計(jì)算機(jī)系統(tǒng)中可能變成嚴(yán)重的性能制約因素,尤其在管理稀疏64位(bit)或更大的地址空間時(shí)。
存在許多用于虛擬映射的現(xiàn)有技術(shù)。一個(gè)技術(shù)采用在存儲(chǔ)器中相鄰地展開(kāi)的線性或散列頁(yè)表。這個(gè)技術(shù)需要大的物理存儲(chǔ)空間。另一個(gè)技術(shù)提供用于一個(gè)翻譯的集合的頁(yè)表的全局共享(全局位)。盡管這個(gè)技術(shù)讓OS能有效地映射全局共享的對(duì)象,它不提供用于映射稀疏64位或更大的用戶地址空間的機(jī)制。
因此在技術(shù)上需要提供一種簡(jiǎn)單而有效的進(jìn)行虛擬地址映射的方法。
發(fā)明綜述本發(fā)明涉及一種映射虛擬存儲(chǔ)空間的方法和裝置。簡(jiǎn)言之,一個(gè)該裝置的實(shí)施例包含一個(gè)區(qū)域寄存器文件和一個(gè)虛擬頁(yè)表查找電路。該區(qū)域寄存器文件為虛擬存儲(chǔ)空間中的虛擬地址提供區(qū)域標(biāo)識(shí)符。該虛擬地址包括一個(gè)虛擬區(qū)域號(hào)碼和一個(gè)虛擬頁(yè)號(hào)碼。該虛擬頁(yè)表查找電路與該區(qū)域寄存器文件相連,以便根據(jù)各虛擬地址參數(shù)生成一個(gè)頁(yè)表表目(PTE)虛擬地址。這些虛擬地址參數(shù)包括該虛擬地址。
從以下對(duì)發(fā)明的詳細(xì)說(shuō)明本發(fā)明的特征和優(yōu)點(diǎn)將變得顯而易見(jiàn),在附圖中圖1是表示能在其中實(shí)踐本發(fā)明一個(gè)實(shí)施例的系統(tǒng)的示意圖;圖2是表示按照本發(fā)明一個(gè)實(shí)施例的基于區(qū)域的虛擬映射器(mapper)的示意圖;圖3是表示按照本發(fā)明一個(gè)實(shí)施例的基于區(qū)域的頁(yè)表布局的示意圖;圖4是表示按照本發(fā)明一個(gè)實(shí)施例進(jìn)行基于區(qū)域的虛擬存儲(chǔ)映射的過(guò)程的流程圖;圖5表示按照本發(fā)明一個(gè)實(shí)施例進(jìn)行交叉地址空間拷貝的過(guò)程的流程圖。
詳細(xì)說(shuō)明本發(fā)明是用于將虛擬存儲(chǔ)空間映射到頁(yè)表表目地址的方法和裝置。該技術(shù)提供一個(gè)虛擬區(qū)域號(hào)碼(VRN)域來(lái)查找區(qū)域標(biāo)識(shí)符(ID)。將區(qū)域ID與虛擬頁(yè)號(hào)碼(VPN)組合起來(lái)標(biāo)引(index)一個(gè)翻譯后備緩沖器(TLB)。當(dāng)有TBL不命中(miss)時(shí),就用基于區(qū)域的虛擬參數(shù)生成一個(gè)頁(yè)表表目(PTE)虛擬地址,虛擬參數(shù)包括VRN、區(qū)域頁(yè)大小、頁(yè)表地址偏址(offset)寄存器、VPN和PTE大小。該技術(shù)比傳統(tǒng)技術(shù)和OS的簡(jiǎn)單存儲(chǔ)管理有更少的TLB不命中。
在以下的說(shuō)明中,為了解釋的需要,陳述了許多細(xì)節(jié),以便于透徹地理解本發(fā)明。然而,對(duì)本領(lǐng)域的熟練人員來(lái)說(shuō),這些特定細(xì)節(jié)顯然不是實(shí)踐本發(fā)明所必需的。在其它實(shí)例中,為了突出對(duì)本發(fā)明的說(shuō)明,以框圖的形式表示著名的電結(jié)構(gòu)和電路。
圖1是能在其中實(shí)踐本發(fā)明的一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)100的示意圖。計(jì)算機(jī)系統(tǒng)100包括處理器105、主總線120、系統(tǒng)存儲(chǔ)器130、PCI總線155、K個(gè)PCI設(shè)備1601至160K、和海量存儲(chǔ)設(shè)備172。
處理器105代表任何類型的體系結(jié)構(gòu)的中央處理單元,體系結(jié)構(gòu)的類型諸如是復(fù)雜指令集計(jì)算機(jī)(CISC),精簡(jiǎn)指令集計(jì)算機(jī)(RISC),甚長(zhǎng)指令字(VLIW)顯式并行指令集計(jì)算(EPIC),或者混合體系結(jié)構(gòu)。本發(fā)明可以在多處理器或單處理器計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn)。
主橋芯片集120包括一系列接口電路,讓處理器105能訪問(wèn)系統(tǒng)存儲(chǔ)器130和PCI總線155。系統(tǒng)存儲(chǔ)器130代表一個(gè)或多個(gè)用于存儲(chǔ)信息的機(jī)制。例如,系統(tǒng)存儲(chǔ)器130可包括非易失性存儲(chǔ)器或易失性存儲(chǔ)器。這些存儲(chǔ)器的例子包括閃存、只讀存儲(chǔ)器(ROM)或隨機(jī)存取存儲(chǔ)器(RAM)。系統(tǒng)存儲(chǔ)器130可以裝載有操作系統(tǒng)(OS)131、基于區(qū)域的虛擬映射器支持135和其它程序和數(shù)據(jù)138。當(dāng)然,系統(tǒng)存儲(chǔ)器130最好含有另外的軟件(未予示出),這對(duì)理解本發(fā)明并非必要。虛擬映射器支持135包括支持基于區(qū)域的虛擬映射器107的操作的要素,諸如程序、代碼、數(shù)據(jù)或查找表。
PCI插槽1601至160K提供對(duì)PCI設(shè)備的接口。PCI設(shè)備的例子包括網(wǎng)絡(luò)接口和媒體接口。網(wǎng)絡(luò)接口連接到諸如因特網(wǎng)的通信通道。因特網(wǎng)提供對(duì)在線服務(wù)供應(yīng)商、web瀏覽器和其它網(wǎng)絡(luò)通道的訪問(wèn)。媒體接口提供對(duì)音頻和視頻設(shè)備的訪問(wèn)。海量存儲(chǔ)設(shè)備172包括CD、ROM、軟盤和硬驅(qū)。
這里敘述的本發(fā)明讓操作系統(tǒng)能比傳統(tǒng)虛擬存儲(chǔ)映射機(jī)制更有效地管理虛擬地址空間。特別地,本發(fā)明使處理器硬件能在各地址空間之間-即在兩個(gè)用戶級(jí)進(jìn)程之間或者在操作系統(tǒng)同用戶級(jí)進(jìn)程之間-拷貝數(shù)據(jù)時(shí),顯著地降低開(kāi)銷。這種性能優(yōu)化是非常有意義的,因?yàn)樗鼈兡茱@著地減少發(fā)送或接收來(lái)自用戶進(jìn)程的網(wǎng)絡(luò)數(shù)據(jù)所需的時(shí)間量。此外,操作系統(tǒng)中的文件系統(tǒng)緩沖器高速緩存操作能在增加的性能水平上得到支持。這些性能優(yōu)化一般有利于應(yīng)用軟件,然而,大型數(shù)據(jù)庫(kù)或因特網(wǎng)或因特網(wǎng)web服務(wù)器將受到最大的性能好處。
當(dāng)以軟件實(shí)現(xiàn)時(shí),本發(fā)明的各要素實(shí)質(zhì)上是執(zhí)行必要任務(wù)的代碼段。程序或代碼段可以存儲(chǔ)在處理器可讀介質(zhì)中,或者以體現(xiàn)為載波的計(jì)算機(jī)數(shù)據(jù)信號(hào)或由通信公司調(diào)制的信號(hào)的形式,在傳輸介質(zhì)上傳輸。
“處理器可讀介質(zhì)”可以包括任何能存儲(chǔ)或傳輸信息的介質(zhì)。處理器可讀介質(zhì)的例子包括電子電路、半導(dǎo)體存儲(chǔ)設(shè)備、ROM、閃存、可擦式ROM(EROM)、軟盤、緊致盤CD-ROM、光盤、硬盤、光纖介質(zhì)、無(wú)線電頻率(RF)連接,等等。計(jì)算機(jī)數(shù)據(jù)信號(hào)可以包括任何能在諸如電子網(wǎng)絡(luò)通道、光纖、空氣(air)、電磁、RF連接等傳輸介質(zhì)上傳播的信號(hào)。代碼段可以通過(guò)諸如因特網(wǎng)、內(nèi)部網(wǎng)等計(jì)算機(jī)網(wǎng)絡(luò)下載。
圖2是表示按照本發(fā)明的一個(gè)實(shí)施例的基于區(qū)域的虛擬映射器107的示意圖。基于區(qū)域的虛擬映射器107包括區(qū)域寄存器文件220、翻譯后備緩沖器240、虛擬頁(yè)表查找電路250和頁(yè)表地址(PTA)寄存器260。
基于區(qū)域的虛擬映射器107將虛擬地址210映射到一個(gè)頁(yè)表表目(PTE),該頁(yè)表表目對(duì)應(yīng)于一個(gè)由圖1中的處理器105可訪問(wèn)的物理存儲(chǔ)空間中的物理地址。虛擬地址210包括兩個(gè)域一個(gè)含有具有N位的VRN的虛擬區(qū)域號(hào)碼(VRN)域212,一個(gè)含有具有M位的VPN的虛擬頁(yè)號(hào)碼(VRN)域214。VRN被用來(lái)查找區(qū)域寄存器文件220。
區(qū)域寄存器文件(RRF)220存儲(chǔ)2N個(gè)表目。每個(gè)表目對(duì)應(yīng)于一個(gè)VRN值。每個(gè)表目有一個(gè)含有具有P位的區(qū)域ID的區(qū)域標(biāo)識(shí)符(ID)域222和一個(gè)含有區(qū)域PS的區(qū)域頁(yè)大小(PS)域224。將區(qū)域ID與VPN鏈接起來(lái)構(gòu)成全局地址230。全局地址230包括區(qū)域分別含有區(qū)域ID和VPN的ID域232和VPN域234。全局地址被用來(lái)查找TLB240中的PTE,并被虛擬頁(yè)表查找電路用來(lái)生成PTE虛擬地址。
TLB240高速緩存最近使用的全局到物理地址翻譯的頁(yè)表表目。當(dāng)全局地址查找在TLB中命中時(shí),該TLB直接生成物理地址和被引用到的頁(yè)的每頁(yè)存儲(chǔ)器屬性(per-page memory attribute)。當(dāng)全局地址查找在TLB中不命中時(shí),則該虛擬頁(yè)表查找電路250(硬件頁(yè)表查尋器(walker))生成PTE虛擬地址。
為了將PTE虛擬地址翻譯成物理地址,硬件頁(yè)步行器循環(huán)地使用相同的地址翻譯機(jī)制(例如將PTE虛擬地址像任何其它虛擬地址一樣地對(duì)待)。為了避免無(wú)限循環(huán),如果PTE引用(reference)結(jié)果在TLB中不命中,就調(diào)用一個(gè)軟件TLB不命中處理程序。
虛擬頁(yè)表查找電路250接收一系列虛擬地址參數(shù),以生成PTE虛擬地址。虛擬地址參數(shù)包括全局地址230、區(qū)域頁(yè)大小、VRN212、VPN214、根據(jù)PTA寄存器260的PTA偏址(PTA基址),和PTA大小。在一個(gè)實(shí)施例中,PTE虛擬地址以下列方式生成Index=VPN{M-10}>>RRF{VRN}.ps(1a)(VRN{N-10}<<M)OR((PTA.base{M-10})OR(Index<<PTE size))(1b)其中RRF{VRN}.ps是對(duì)應(yīng)于隱含VRN的RRF220中的區(qū)域頁(yè)大小。操作符>>和<<分別表示右移和左移。
當(dāng)以硬件實(shí)現(xiàn)時(shí),虛擬頁(yè)表查找電路包括執(zhí)行上述操作(1a)和(1b)的電路組件(elements)。虛擬頁(yè)表查找電路包括一個(gè)變址生成器、第一和第二左位移器、一個(gè)邏輯電路。變址生成器通過(guò)將虛擬頁(yè)號(hào)碼右移而生成變址,右移的位數(shù)對(duì)應(yīng)于區(qū)域頁(yè)大小。第一左位移器與變址生成器連接,以將變址左移,左移的位數(shù)對(duì)應(yīng)于PTE大小。第二左位移器左移虛擬區(qū)域號(hào)碼,左移的位數(shù)對(duì)應(yīng)于虛擬頁(yè)號(hào)碼的字大小或虛擬頁(yè)號(hào)碼中的位數(shù)。邏輯電路與左、右位移器連接,對(duì)左移的變址、頁(yè)表偏址和左移的虛擬區(qū)域號(hào)碼進(jìn)行0R操作,以提供PTE虛擬地址。
可以作出以下結(jié)論1)如果將VRN排除在方程(1a)中的變址(Index)計(jì)算之外,并且如果(VRN{N-10}<<M且((PTA.base(M-10})OR(Index<<PTE size)不重疊,就能從一個(gè)區(qū)域到另一個(gè)區(qū)域重新映射(re-map)線性頁(yè)表映象(image),而不需要對(duì)頁(yè)表存儲(chǔ)器映象作任何修改。
2) 如果將區(qū)域標(biāo)識(shí)符排除在PTA虛擬地址計(jì)算之外,就能獨(dú)立于區(qū)域ID而管理頁(yè)表表目。
基于區(qū)域的線性頁(yè)表不必在整個(gè)區(qū)域中都是虛擬鄰接的,而只是在每個(gè)區(qū)域內(nèi)是虛擬鄰接的。這就允許每個(gè)區(qū)域的頁(yè)表能被獨(dú)立地管理。此外,基于區(qū)域的線性頁(yè)表是虛擬地映射的,即它們不必在每個(gè)區(qū)域內(nèi)都是物理地鄰接的。換言之,各頁(yè)表本身就能被分頁(yè)(paged)。在具有更大虛擬尋址能力的處理器中,例如在64位處理器中,這顯著地減少了頁(yè)表所需要的物理存儲(chǔ)器的量。
此外,通過(guò)在帶區(qū)域標(biāo)識(shí)符(RID)的TLB中的標(biāo)記翻譯(taggingtranslation)也提高了性能,由此消除了刷新(flush)過(guò)程上下文開(kāi)關(guān)(process context switches)上TLB的需要?;趨^(qū)域的線性頁(yè)表更易于由軟件使用,因?yàn)椴恍枰陧?yè)表中存儲(chǔ)或編碼RID。
因?yàn)樵陧?yè)表中不含RID,所以能將地址空間臨時(shí)地重新映射到其它區(qū)域,而不必刷新各TLB。這就允許更快的交叉地址空間拷貝,因?yàn)楝F(xiàn)有的TLB表目能被再使用,并且操作系統(tǒng)軟件不需要額外的頁(yè)表操作來(lái)建立臨時(shí)的映射。
圖3是表示按照本發(fā)明一個(gè)實(shí)施例的基于區(qū)域的頁(yè)表布局300的示意圖。頁(yè)表布局300由4個(gè)區(qū)域區(qū)域0 310、區(qū)域1 320、區(qū)域2 330、區(qū)域3 340。使用4個(gè)區(qū)域只是示例性的。可以使用任何數(shù)量的區(qū)域。
由于基于區(qū)域的線性頁(yè)表是虛擬地映射的,它也是自映射的。偏址312、322、332和342有相同的大小,并且都是由PTA寄存器(PTA.base)定義的。有相同偏址的一個(gè)好處是只要將區(qū)域標(biāo)識(shí)符傳送到另一個(gè)區(qū)域寄存器,就能將整個(gè)區(qū)域-包括其自映射部分,重新映射到另一個(gè)區(qū)域。
圖4是表示按照本發(fā)明的一個(gè)實(shí)施例進(jìn)行基于區(qū)域的虛擬存儲(chǔ)映射的過(guò)程400的流程圖。
開(kāi)始時(shí),過(guò)程400接收由處理發(fā)布的虛擬地址,將該虛擬地址劃分成虛擬區(qū)域號(hào)碼(VRN)和虛擬頁(yè)號(hào)碼(VPN)(方框410)。VRN被用來(lái)查找區(qū)域寄存器文件(RRF),以檢索區(qū)域標(biāo)識(shí)符(RID)(方框420)。對(duì)應(yīng)于RID的區(qū)域頁(yè)大小也被檢索。
過(guò)程400然后將RID同VPN鏈接,以形成一個(gè)全局地址(方框430)。全局地址被用來(lái)在翻譯后備緩沖器(TLB)查找頁(yè)表表目(PTE)(方框440)。過(guò)程400確定是否有TLB不命中(方框450)。如果沒(méi)有TLB不命中,過(guò)程400終止。如果有TLB不命中,如方框460所示,過(guò)程400用方程(1a)和(1b),用VRN、PTA寄存器、區(qū)域頁(yè)大小、PTA寄存器中的頁(yè)表地址(PTA)偏址、VPN和PTE大小,生成PTE虛擬地址。然后,過(guò)程400終止。
基于區(qū)域的虛擬映射也能對(duì)交叉地址空間拷貝提供性能改善。只是由于下列原因第一,與傳統(tǒng)的交叉地址空間拷貝技術(shù)不同,采用基于區(qū)域的虛擬存儲(chǔ)映射的OS不需要改變?nèi)魏雾?yè)表表目。OS也不需要為臨時(shí)地址映射創(chuàng)建臨時(shí)頁(yè)表表目。OS臨時(shí)第分配預(yù)先存在的源或目的地RID給RRF中的兩個(gè)不同的區(qū)域寄存器。方程(1a)和(1b)中所示的PTE虛擬地址的定義,保證無(wú)論要映射到哪個(gè)區(qū)域,頁(yè)表內(nèi)容都保持有效。在TLB不含有完成拷貝操作所需的所有映射的情況中,這一點(diǎn)是重要的。在這種情況下,由圖2中所示的虛擬線性頁(yè)表查找電路250實(shí)現(xiàn)的硬件頁(yè)步行器將能找到所需的PTE。
第二,TLB查找是根據(jù)由RID和VPN構(gòu)成的唯一全局地址匹配的,該全局地址不包括VRN位。因此,TLB查找與某地址空間要映射到哪個(gè)區(qū)域無(wú)關(guān)。各TLB表目標(biāo)記有RID,只要某地址空間的RID不被回收,這些TLB表目就保持有效。由于較低的OS開(kāi)銷(即不需要?jiǎng)?chuàng)建臨時(shí)頁(yè)表和映射),并且作RID標(biāo)記的TLB表目導(dǎo)致更少的TLB不命中,所以能以比用傳統(tǒng)的TLB和OS方法的更短的時(shí)間實(shí)現(xiàn)交叉地址空間拷貝。
圖5是表示按照本發(fā)明的一個(gè)實(shí)施例進(jìn)行交叉地址空間拷貝的過(guò)程500的流程圖。
開(kāi)始時(shí),過(guò)程500建立基于區(qū)域的線性頁(yè)表(方框510)。換言之,將存儲(chǔ)管理單元設(shè)置得或編程得在基于區(qū)域的線性頁(yè)表中運(yùn)行。然后,過(guò)程500通過(guò)把一個(gè)區(qū)域標(biāo)識(shí)符(例如RID1)分配到區(qū)域寄存器文件(RRF)中的一個(gè)區(qū)域寄存器而在區(qū)域0中建立地址目的地空間(方框520)。過(guò)程500通過(guò)把另一個(gè)區(qū)域標(biāo)識(shí)符(例如RID2)分配到區(qū)域寄存器文件(RRF)中的另一個(gè)區(qū)域寄存器而在區(qū)域0中建立地址源空間(方框530)。
然后,過(guò)程500初始化源地址和目的地地址(方框540)。這些源地址和目的地地址是源存儲(chǔ)塊的虛擬起始地址和目的地存儲(chǔ)塊的虛擬起始地址。然后,該過(guò)程將位于源地址的存儲(chǔ)器內(nèi)容拷貝到位于目的地地址的存儲(chǔ)器(方框550)。過(guò)程500然后確定是否所有地址都已經(jīng)被拷貝(方框560)。如果不是,過(guò)程500就更新源地址和目的地地址(方框570),然后返回到方框50。如果所有地址都已經(jīng)被拷貝,過(guò)程500就終止。
所以,本發(fā)明是映射虛擬存儲(chǔ)器的技術(shù)。該技術(shù)使用由區(qū)域寄存器文件和虛擬線性頁(yè)表查找電路實(shí)現(xiàn)的基于區(qū)域的頁(yè)表。該技術(shù)提供存儲(chǔ)管理的更大靈活性和更高效的操作,對(duì)交叉地址空間拷貝尤其如此。
盡管本發(fā)明是結(jié)合示例性實(shí)施例作說(shuō)明的,不應(yīng)限制性地解釋該說(shuō)明。這些示例性實(shí)施例的各種修改,以及對(duì)熟悉本技術(shù)領(lǐng)域的人員來(lái)說(shuō)顯而易見(jiàn)的本發(fā)明的其它實(shí)施例,都應(yīng)視為在本發(fā)明的精神和范圍內(nèi)。
權(quán)利要求
1.一種映射虛擬存儲(chǔ)空間的方法,該方法包含為虛擬存儲(chǔ)空間中的虛擬地址提供區(qū)域標(biāo)識(shí)符,該虛擬地址包括一個(gè)虛擬區(qū)域號(hào)碼和一個(gè)虛擬頁(yè)號(hào)碼;和根據(jù)各虛擬地址參數(shù)生成一個(gè)頁(yè)表表目(PTE)虛擬地址,這些虛擬地址參數(shù)包括該虛擬地址。
2.如權(quán)利要求1的方法,其中將該P(yáng)TE虛擬地址進(jìn)行虛擬映射。
3.如權(quán)利要求2的方法,其中該P(yáng)TE虛擬地址包括虛擬區(qū)域號(hào)碼。
4.如權(quán)利要求3的方法,其中該P(yáng)TE虛擬地址是與該區(qū)域標(biāo)識(shí)符(RID)無(wú)關(guān)的。
5.如權(quán)利要求4的方法,其中這些虛擬地址參數(shù)還包括由頁(yè)表地址寄存器提供的頁(yè)表偏址、區(qū)域頁(yè)大小和PTE大小。
6.如權(quán)利要求5的方法,其中生成PTE虛擬地址的步驟包括通過(guò)將虛擬頁(yè)號(hào)碼右移對(duì)應(yīng)于區(qū)域頁(yè)大小的位數(shù)而生成變址;將該變址左移對(duì)應(yīng)于PTE大小的位數(shù);將該虛擬區(qū)域號(hào)碼左移對(duì)應(yīng)于該虛擬頁(yè)號(hào)碼中位數(shù)量的位數(shù);對(duì)左移后的變址、頁(yè)表偏址和左移后的的虛擬區(qū)域號(hào)碼進(jìn)行OR運(yùn)算,以提供PTE虛擬地址。
7.如權(quán)利要求1的方法,還包含用由區(qū)域標(biāo)識(shí)符和虛擬頁(yè)號(hào)碼構(gòu)成的全局地址從翻澤后備緩沖區(qū)(TLB)中生成PTE。
8.如權(quán)利要求7的方法,其中當(dāng)有TLB不命中時(shí)生成PTE虛擬地址。
9.如權(quán)利要求7的方法,還包含循環(huán)地生成PTE虛擬地址;執(zhí)行訪問(wèn)存儲(chǔ)器中PTE的引用;和將所引用的TLB插入TLB。
10.如權(quán)利要求9的方法,其中如果因PTE虛擬地址的映射而導(dǎo)致TLB不命中,則將控制轉(zhuǎn)移給軟件。
11.一種映射虛擬存儲(chǔ)空間的裝置,該裝置包含區(qū)域寄存器文件,用于為虛擬存儲(chǔ)空間中的虛擬地址提供區(qū)域標(biāo)識(shí)符,該虛擬地址包括一個(gè)虛擬區(qū)域號(hào)碼和一個(gè)虛擬頁(yè)號(hào)碼;和與區(qū)域寄存器文件相連的虛擬頁(yè)表查找電路,用于根據(jù)各虛擬地址參數(shù)生成一個(gè)頁(yè)表表目(PTE)虛擬地址,這些虛擬地址參數(shù)包括該虛擬地址。
12.如權(quán)利要求11的裝置,其中將該P(yáng)TE虛擬地址進(jìn)行虛擬地映射。
13.如權(quán)利要求12的裝置,其中該P(yáng)TE虛擬地址包括虛擬區(qū)域號(hào)碼。
14.如權(quán)利要求13的裝置,其中該P(yáng)TE虛擬地址是與區(qū)域標(biāo)識(shí)符(RID)無(wú)關(guān)的。
15.如權(quán)利要求14的裝置,其中這些虛擬地址參數(shù)還包括由頁(yè)表地址寄存器提供的頁(yè)表偏址、區(qū)域頁(yè)大小和PTE大小。
16.如權(quán)利要求15的裝置,其中該虛擬頁(yè)表查找電路包含變址生成器,用于通過(guò)將虛擬頁(yè)號(hào)碼右移對(duì)應(yīng)于區(qū)域頁(yè)大小的位數(shù)而生成變址;與變址生成器相連的第一位移器,用于將該變址左移對(duì)應(yīng)于PTE大小的位數(shù);第二位移器,用于將該虛擬區(qū)域號(hào)碼左移對(duì)應(yīng)于虛擬頁(yè)號(hào)碼中位數(shù)量的位數(shù);與第一和第二位移器相連的邏輯電路,用于對(duì)左移后的變址、頁(yè)表偏址和左移后的虛擬區(qū)域號(hào)碼進(jìn)行OR運(yùn)算,以提供PTE虛擬地址。
17.如權(quán)利要求11的裝置,還包括與區(qū)域寄存器文件相連的翻譯后備緩沖區(qū)(TLB),利用由區(qū)域標(biāo)識(shí)符和虛擬頁(yè)號(hào)碼構(gòu)成的全局地址生成PTE。
18.如權(quán)利要求17的裝置,其中當(dāng)有TLB不命中時(shí)生成PTE虛擬地址。
19.一種系統(tǒng),包含一個(gè)能訪問(wèn)一個(gè)物理存儲(chǔ)空間的處理器;一個(gè)與處理器相連的虛擬地址映射器,將虛擬存儲(chǔ)空間映射到物理存儲(chǔ)空間中,該虛擬地址映射器包含區(qū)域寄存器文件,用于為虛擬存儲(chǔ)空間中的虛擬地址提供區(qū)域標(biāo)識(shí)符,該虛擬地址包括一個(gè)虛擬區(qū)域號(hào)碼和一個(gè)虛擬頁(yè)號(hào)碼;和與該區(qū)域寄存器文件相連的虛擬頁(yè)表查找電路,用于根據(jù)各虛擬地址參數(shù)生成一個(gè)頁(yè)表表目(PTE)虛擬地址,這些虛擬地址參數(shù)包括該虛擬地址。
20.一種計(jì)算機(jī)程序產(chǎn)品,包括帶有在其中包含計(jì)算機(jī)程序代碼的計(jì)算機(jī)可用介質(zhì),該計(jì)算機(jī)程序產(chǎn)品具有計(jì)算機(jī)可讀程序代碼,用于為虛擬存儲(chǔ)空間中的虛擬地址提供區(qū)域標(biāo)識(shí)符,該虛擬地址包括一個(gè)虛擬區(qū)域號(hào)碼和一個(gè)虛擬頁(yè)號(hào)碼;和計(jì)算機(jī)可讀程序代碼,用于根據(jù)各虛擬地址參數(shù)生成一個(gè)頁(yè)表表目(PTE)虛擬地址,這些虛擬地址參數(shù)包括該虛擬地址。
全文摘要
本發(fā)明是一種用來(lái)映射虛擬存儲(chǔ)空間的方法和裝置。區(qū)域寄存器文件為虛擬存儲(chǔ)空間中的虛擬地址提供區(qū)域標(biāo)識(shí)符。該虛擬地址包括一個(gè)虛擬區(qū)域號(hào)碼和一個(gè)虛擬頁(yè)號(hào)碼。與區(qū)域寄存器文件相連的虛擬頁(yè)表查找電路,根據(jù)各虛擬地址參數(shù)生成一個(gè)頁(yè)表表目(PTE)虛擬地址。這些虛擬地址參數(shù)包括該虛擬地址。
文檔編號(hào)G06F12/10GK1359496SQ00809790
公開(kāi)日2002年7月17日 申請(qǐng)日期2000年5月26日 優(yōu)先權(quán)日1999年6月30日
發(fā)明者A·R·扎希爾, G·N·哈蒙德, J·H·克勞福德 申請(qǐng)人:英特爾公司