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

體系結(jié)構(gòu)事件期間維持處理器資源的制作方法

文檔序號:6656554閱讀:204來源:國知局
專利名稱:體系結(jié)構(gòu)事件期間維持處理器資源的制作方法
背景本發(fā)明一般涉及數(shù)據(jù)處理系統(tǒng),尤其涉及使用處理器在不同上下文中進行處理。
許多現(xiàn)有的計算機系統(tǒng)使用虛擬存儲器系統(tǒng)來管理存儲器,并將其分配給在系統(tǒng)中運行的多個進程,這就允許在該系統(tǒng)上運行的每個進程像它能控制由該系統(tǒng)提供的全部范圍的地址那樣來工作。操作系統(tǒng)(OS)將用于每個進程的虛擬地址空間映射至用于該系統(tǒng)的實際物理地址空間。通常使用頁面表來維持從物理地址到虛擬地址的映射。
處理器性能可經(jīng)由多級流水線體系結(jié)構(gòu)改進,在該多級流水線體系結(jié)構(gòu)中諸如高速緩存、緩沖器、陣列等的各種流水線資源可更為有效地用于執(zhí)行指令。改進虛擬存儲器系統(tǒng)的使用的一種流水線資源是翻譯后備緩沖器(TLB)。TLB是處理器流水線內(nèi)存儲器的相對較小部分,用于高速緩存部分系統(tǒng)虛擬地址至物理地址的翻譯。具體地,翻譯集的少量元素被存儲在處理器能極快訪問的TLB中。系統(tǒng)中可存在各種TLB。例如,存在用于指令和數(shù)據(jù)的單獨TLB(分別為指令TLB(iTLB)和數(shù)據(jù)TLB(dTLB)。此外,在某些系統(tǒng)中可存在二級dTLB(STLB)。
如果在TLB中不存在對特定虛擬地址的翻譯,則會出現(xiàn)“翻譯遺漏”并且使用更一般機制來解決地址翻譯。處理以此方式繼續(xù)直到出現(xiàn)上下文切換。上下文切換會在多任務(wù)OS停止時運行一個進程(例如,應(yīng)用軟件)并開始運行另一個進程時發(fā)生。當發(fā)生上下文切換時,包括頁面目錄的頁面表和用于新進程的頁面表被載入,并且該TLB和其他流水線資源必須被清除。清除意味著資源內(nèi)容被清空。
某些系統(tǒng)可實現(xiàn)其中虛擬機監(jiān)視器(VMM)可向其他軟件呈現(xiàn)一個或多個虛擬機的抽象的虛擬機(VM)環(huán)境。每個VM都可用作自主式平臺,從而運行它自己的“客戶操作系統(tǒng)”(即,由VMM提供的OS)以及被統(tǒng)稱為客戶軟件(或簡稱為“客戶”)的其他軟件??蛻糗浖谕裨趯S糜嬎銠C而非虛擬機上運行那樣來工作。因此,客戶軟件期望控制各種事件并能夠訪問諸如駐留處理器資源、駐留于存儲器內(nèi)的資源和駐留于基礎(chǔ)硬件平臺的資源的硬件資源。
在虛擬機環(huán)境中,VMM通常對這些事件和硬件資源有著最終控制權(quán),以提供客戶軟件的合適操作,并且為在不同虛擬機上運行的客戶軟件或在這些軟件之間提供保護。為了實現(xiàn)這一目標,VMM通常在客戶軟件訪問受保護資源時或在出現(xiàn)其他事件(諸如中斷或異常)時接收控制(即,影響環(huán)境切換)。
在VM或其他環(huán)境中的上下文切換會引起現(xiàn)代微處理器中相當大的額外開銷。該額外開銷會因為在每次上下文切換時必須清除并重新加載的巨大二級TLB而加劇。這樣該額外開銷就會對性能,特別是帶有多個活動上下文的系統(tǒng)中的性能產(chǎn)生不利影響。于是就需要在上下文切換時能更有效地維持流水線資源。
附圖簡述

圖1是根據(jù)本發(fā)明一實施例的線性地址翻譯。
圖2是根據(jù)本發(fā)明一實施例的系統(tǒng)的一部分的框圖。
圖3是根據(jù)本發(fā)明一實施例的方法的流程圖。
圖4是根據(jù)本發(fā)明另一實施例的方法的流程圖。
圖5是根據(jù)本發(fā)明又一實施例的方法的流程圖。
圖6是本發(fā)明一實施例的代表性計算機系統(tǒng)的框圖。
詳細描述在本發(fā)明的各個實施例中,諸如TLB、跟蹤緩存(TC)、分支預(yù)測單元(BPU)陣列、小型標志等的流水線資源或結(jié)構(gòu)可支持多地址空間。在此使用的術(shù)語“地址空間”指的是存儲器內(nèi)對應(yīng)于給定應(yīng)用程序(例如上下文)的一組地址。
在各個實施例中,地址空間可受到確定或影響物理翻譯線性的體系結(jié)構(gòu)控制寄存器的組合(例如,包括頁面目錄基址寄存器(CR3.PDBR)、頁面級高速緩存禁用位(PCD)、頁面級直寫位(PWT)的控制寄存器3;包括分頁位(CR0.PG)、保護啟用位(CR0.PE)的控制寄存器0;包括頁面大小擴展位(CR4.PSE)以及頁面全局啟用位和物理地址擴展位(CR4.PGE和PAE)、經(jīng)擴展的功能啟用長寄存器模式尋址(EFER.LMA)和非執(zhí)行位(EFER.NXE)的控制寄存器4)的控制。
在各個實施例中,地址空間標識符(ASID)可用于以指向與各個流水線資源中的線性地址相關(guān)聯(lián)的上下文的指針來增加這些地址。在這里使用的“地址空間標識符”可以是標識與其相關(guān)聯(lián)的一個或多個地址空間的任何數(shù)字、代碼或其他符號。在一個實施例中,ASID可使用每個線程兩位ASID(即,四個地址空間上下文)來實現(xiàn),盡管本發(fā)明的范圍并非如此有限。這就允許多個應(yīng)用程序上下文共享流水線結(jié)構(gòu),從而降低了上下文切換的額外開銷。例如,當上下文切換出現(xiàn)時,可改變當前的ASID值,而不是清除流水線結(jié)構(gòu)。類似地,在某些實施例中,可提供線程標識符(線程ID)以標識用于對應(yīng)地址空間的給定處理器線程。
根據(jù)本發(fā)明的各個實施例,各種體系結(jié)構(gòu)事件都可能會引起TLB的選擇性清除。這些事件例如可包括移至CR3(MOV to CR3)指令;改變CR0頁面模式位CRO.PE和CR0.PG以及EFER.LMA;改變CR4頁面模式位;VM進入(Entry)/退出(Exit);以及32位上下文切換(如果改變了CR0或CR4中的分頁模式位)。在某些實施例中,這些事件中僅有MOV to CR3操作或VMEntry/VMExit事件可改變/遞增ASID。
許多流水線結(jié)構(gòu)被線性標志或索引。在某些實施例中,ASID可用指向?qū)?yīng)地址空間的指針來增加這些流水線資源內(nèi)的線性地址。在這些實施例中,微處理器可以維持在創(chuàng)建新的地址空間時或改變至不同的先前已見的地址空間時更新的全局當前ASID寄存器。可用當前ASID值擴展TLB插入,并且只有當ASID標志與當前ASID值匹配時TLB查找才匹配。當上下文切換(例如,MOV to CR3或者VM entry/exit)觸發(fā)了地址空間改變時,微處理器可切換至表示此新地址空間的不同ASID值,而不清除TLB或其他流水線結(jié)構(gòu)。在某些實施例中,不清除任何條目或者選擇性地清除對應(yīng)于特定地址空間的部分或所有條目可為帶有多個上下文的環(huán)境提供實質(zhì)上的性能增益。
現(xiàn)參看圖1,示出了根據(jù)本發(fā)明一實施例的適于64位地址翻譯的線性地址翻譯。如圖1所示,可使用線性地址300來尋址存儲器240內(nèi)的頁面。如圖1所示,線性地址300包括索引四級分頁結(jié)構(gòu)以訪問存儲器240內(nèi)物理地址的多個字段。偏移字段(位0至11)用于尋址存儲器240的一個頁面內(nèi)的物理地址。頁面表條目(位12至20)尋址頁面表(PT)310內(nèi)的頁面表條目。頁面目錄條目(位21至29)尋址頁面目錄(PD)320內(nèi)的頁面目錄條目。頁面目錄指針(位30至38)尋址頁面目錄指針表(PDPT)330內(nèi)的頁面目錄指針條目。最后,頁面映射級四(PML4)指針(位39至47)尋址PML4 340內(nèi)的PML4條目。使用CR3內(nèi)的指針就可訪問PML4 340的基址。以此方式,可使用64位線性地址實現(xiàn)四級分頁結(jié)構(gòu)以訪問物理地址。
在各個實施例中,根據(jù)一實施例的TLB可包括物理地址(標志地址)和相關(guān)聯(lián)的有效線程ID以及ASID位,連同相對應(yīng)的線性和物理地址。TLB條目包括在其標志內(nèi)指示它們所對應(yīng)地址空間的ASID字段。該ASID字段包括在載入TLB條目時的當前ASID值。因為ASID字段在TLB條目的標志內(nèi),所以TLB條目只有在當前ASID值與該TLB條目內(nèi)的ASID字段相匹配時才能被命中。
當一地址空間改變(例如,上下文切換)時,微代碼會將關(guān)于當前地址空間/ASID(CR3、CR0和CR4分頁位、LMA)的信息保存到便箋式存儲器,并且可將新地址空間與每個ASID的已存儲地址空間信息相比較。如果沒有已存儲地址空間/ASID與新地址空間相匹配,則在之前未看到過該地址空間。因而微代碼可為該地址空間分配新ASID,或選擇一現(xiàn)有ASID來代替例如最近最少使用(LRU)策略。在后一種情況下,微代碼可清除用于該LRU ASID的TLB條目。
現(xiàn)參看圖2,示出了根據(jù)本發(fā)明一實施例的系統(tǒng)的一部分的框圖。如圖2所示,系統(tǒng)10包括系統(tǒng)存儲器20和多個軟件實體,包括第一客戶軟件(即,第一客戶)30、第二客戶軟件(即,第二客戶)40和虛擬機擴展(VMX)監(jiān)視器50。在一個實施例中,系統(tǒng)存儲器20可包括代碼和數(shù)據(jù)兩者,并且可由例如動態(tài)隨機存取存儲器(DRAM)形成。
在圖2的實施例中,VMX監(jiān)視器50可向其他軟件(例如,客戶軟件)呈現(xiàn)一個或多個虛擬機的抽象。VMX監(jiān)視器50可向各種客戶機提供相同或不同的抽象。在各VM上運行的客戶軟件可包括客戶OS和各種客戶軟件應(yīng)用程序。這些客戶OS和軟件應(yīng)用程序在此被統(tǒng)稱為客戶軟件??蛻糗浖谕L問該客戶軟件在其上運行的VM內(nèi)的物理資源(例如,處理器寄存器、存儲器和輸入/輸出(I/O)設(shè)備)。VMX監(jiān)視器50可有助于訪問客戶軟件所期望的資源,同時還保持對平臺硬件內(nèi)資源的最終控制。
在一個實施例中,可使用存儲在虛擬機控制結(jié)構(gòu)(VMCS)(未在圖2中具體示出)內(nèi)一個或多個指定字段中的數(shù)據(jù)來定義標準(控制傳送標準和/或故障標準)。例如,VMCS可存儲客戶軟件的狀態(tài)和信息以控制其操作。VMCS可駐留于存儲器20中并且可由處理器維持。應(yīng)該理解,可使用任何其他的數(shù)據(jù)結(jié)構(gòu)(例如,芯片內(nèi)高速緩存、文件、查找表等)存儲已存儲在VMCS內(nèi)的信息。
在一個實施例中,如果傳送標準確定當前事件必須由VMX監(jiān)視器50處理,則控制就被傳送至VMX監(jiān)視器50。VMX監(jiān)視器50然后可處理該事件并將控制傳送回客戶軟件。從VMM或VMX監(jiān)視器到客戶軟件的控制傳送在這里可被稱為VM進入,而從客戶軟件到VMM或VMX監(jiān)視器的控制傳送在此可被稱為VM退出。
如圖2所示,存儲器20可包括可使用關(guān)于第一客戶軟件30的頁面表條目(PTE)訪問的第一頁面35,以及可使用關(guān)于第二客戶軟件40的PTE訪問的第二頁面45。也就是說,第一頁面35和第二頁面45可包括分別對應(yīng)于第一客戶30和第二客戶40的代碼和/或數(shù)據(jù)。在圖2的實施例中,存儲器20可以對應(yīng)于包括代碼和數(shù)據(jù)兩者的物理地址,并且對應(yīng)于客戶軟件30和客戶軟件40的ASID的地址可對應(yīng)于用來指向物理地址空間的線性地址(或其一部分)。
仍參看圖2,第一客戶30具有第一ASID值(即,ASID=1),并且還包括對應(yīng)于第一地址空間的CR3值。同樣地,第二客戶40具有第二ASID值(即,ASID=2)并且還具有與其相關(guān)聯(lián)的CR3值。
控制第一客戶軟件30和第二客戶軟件40的執(zhí)行的VMX監(jiān)視器還具有與其相關(guān)聯(lián)的ASID值。例如,如圖2的實施例中所示,VMX監(jiān)視器50可具有三個與其相關(guān)聯(lián)的ASID值。
如圖2所示,可執(zhí)行MOV to CR3指令以產(chǎn)生如箭頭55所示的上下文切換。此外,VMX監(jiān)視器50通過產(chǎn)生由標號60表示的VM退出來控制客戶軟件的操作,該VM退出引起從當前執(zhí)行客戶中退出以強制控制返回VMX監(jiān)視器50。類似地,VMX監(jiān)視器50可通過執(zhí)行VM進入(由圖2中的標號70表示)就可引起客戶的起動或恢復(fù)。
在各個實施例中,VMX體系結(jié)構(gòu)增強能允許VMX監(jiān)視器在上下文切換和使用ASID的VMX轉(zhuǎn)換時避免清除TLB或其他類似的處理器資源。在各個實施例中,既不需要軟件也不需要硬件中的顯式ASID管理來檢測交叉地址空間污染。
在各個實施例中,基于諸如圖2所示的事件,包括使用MOV to CR3指令執(zhí)行的上下文切換、VM退出或VM進入,可避免對TLB或其他處理器資源的清除,從而在該上下文切換以及其他體系結(jié)構(gòu)事件時改進性能并降低額外開銷。
在某些實施例中,系統(tǒng)存儲器20內(nèi)的頁面以及其他被高速緩存的頁面于是就可由跨所有地址空間的VMX監(jiān)視器50來保護,從而對這些頁面的任何嘗試存儲都可引起從起動這一存儲的客戶軟件的VMX退出。對于這一事件,VMX監(jiān)視器50可使得對應(yīng)于這些存儲的地址在所有TLB和其他處理器資源內(nèi)無效。
在各個實施例中,處理器可不同地處理某些事件、指令和VMX轉(zhuǎn)換。不同指令和事件的這些不同實現(xiàn)可在處理器微代碼中實現(xiàn)。例如,對于客戶軟件內(nèi)的MOVto CR3指令、VM退出或VM進入,處理器可尋找與新地址空間匹配的現(xiàn)有ASID。這一確定可通過比較新地址的ASID與處理器維持的ASID列表來作出。如果匹配存在,則處理器使該ASID成為當前ASID而無需清除任何TLB條目。否則,在一個實施例中對應(yīng)于LRU ASID的所有TLB條目就被清除,并且最近最少使用ASID的ASID值就作為當前ASID。如果該ASID未被清除,則可維持來自在前地址空間的TLB條目。
與之相反,可不同地處理使用于特定頁面的TLB條目無效的指令(例如,INVLPG指令)。例如,在一個實施例中,可基于這一指令使所有TLB內(nèi)的線性地址空間無效。不同的操作仍可對其他指令出現(xiàn)。例如,在一個實施例中,檢測到CR4值內(nèi)無改變的MOV to CR4指令可使每一ASID內(nèi)的所有TLB條目無效。
現(xiàn)在參看圖3,示出了根據(jù)本發(fā)明一實施例的方法的流程圖。方法100可用于在處理器內(nèi)的不同上下文之間切換。如圖3所示,可進行第一和第二地址空間之間的切換(框110)。雖然未在圖3中示出,但是在這一切換之前,第一地址空間可被保存到對應(yīng)于當前地址空間標識符的控制寄存器(或其他存儲器)中。在其它實施例中,這一保存可在其他時刻進行。
地址空間切換可對應(yīng)于VM退出或VM進入,或者可由MOV to CR3指令或其他類似事件所引起。接著,可確定ASID列表中是否存在第二地址空間(菱形框120)。這一列表可由處理器維持以標識不同的活動地址空間、與其相對應(yīng)的線性地址空間內(nèi)的位置、以及其他任選信息。例如,ASID列表可以是處理器中的便箋式存儲器。
如果ASID列表內(nèi)存在第二地址空間,則控制就可傳至框130,其中可維持包括了對應(yīng)于第一地址空間的TLB內(nèi)任何條目的第一地址空間。此外,第二ASID可被存儲在處理器的控制寄存器(例如,當前ASID寄存器)(或其他存儲器位置)內(nèi)以指示該第二地址空間(即,在菱形框120中找到的地址空間)是處理器內(nèi)當前執(zhí)行的地址空間(框135)。
如果相反在菱形框120處確定ASID列表內(nèi)不存在第二地址空間,則接著就確定ASID列表是否已滿(菱形框140)。如果該列表未滿,則控制可傳至框145,其中可維持包括了對應(yīng)于第一地址空間的TLB內(nèi)任何條目的第一地址空間。此外,第二ASID可被存儲在處理器的控制寄存器(例如,當前ASID寄存器或其他存儲器位置)內(nèi)以指示該第二地址空間(即,來自以下討論的框160的空地址空間或自由地址空間)是處理器內(nèi)的當前執(zhí)行地址空間(框150)。
如果相反在菱形框140處確定ASID列表已滿,則在ASID列表內(nèi)對應(yīng)于LRU條目的TLB內(nèi)的條目就被清除(菱形框160)。隨后控制可傳至方框145以便于進一步的處理,其中如上所述在該框145處第二ASID可被存儲在LRU條目內(nèi)。因此,就能啟用TLB條目以及與第二ASID相關(guān)聯(lián)的其他資源。
雖然在圖3實施例中示為使用LRU策略來清除TLB條目,但是應(yīng)該理解,在其它實施例中也可使用其他策略或機制來確定在ASID列表全滿時清除的合適地址空間。
在某些實施例中,取決于地址空間切換的原因,可使用軟件清除TLB內(nèi)的特定條目或其他處理器資源。例如,如上所述,如果對受保護頁面的存儲嘗試引起VM退出,則清除對應(yīng)于該受保護空間的TLB內(nèi)的地址。也就是說,在VMX體系結(jié)構(gòu)的各種實現(xiàn)中,VMX監(jiān)視器保護每個分頁的分層結(jié)構(gòu)。在虛擬化的環(huán)境中,軟件可用于清除TLB或由客戶支配的其他資源。隨后,因為虛擬化軟件處理本文中所述的清除活動,所以由客戶承擔的某些事件(例如,MOVto CR3指令)將不會清除資源。于是在客戶中,如果任何存儲指令修改了由CR3在CR3目標值中使用的TLB條目,則會產(chǎn)生VM退出。
使用根據(jù)本發(fā)明一實施例的半透明ASID,軟件在這一VM退出之后可清除對應(yīng)于引起該VM退出的存儲指令的所有TLB條目,即使客戶在VM退出時刻并沒有使用該TLB條目。在這一實施例中,如果軟件期望清除單個條目,則軟件可用合適地址空間內(nèi)對應(yīng)于TLB條目的線性地址來執(zhí)行INVLPG指令。對于這一軟件調(diào)用INVLPG,處理器可清除對應(yīng)于該線性地址的任何TLB條目,而無需考慮它們的ASID。雖然描述了使用INVLPG指令來實現(xiàn),但是在其它實施例中其他指令或操作也可清除這些條目。
現(xiàn)在參看圖4,示出了根據(jù)本發(fā)明一實施例的方法的流程圖。更具體地,圖4示出了用于清除TLB內(nèi)某些條目的方法200。這一方法可在VM環(huán)境內(nèi)執(zhí)行,并且可基于VM退出起動。如圖4所示,方法200可通過確定VM退出的原因(框210)開始。例如,在一個實施例中,可分析在VM退出之前的最后一個操作以確定是否對受保護存儲器空間執(zhí)行存儲或其他存儲器操作引起了該VM退出。當然也存在使VM退出發(fā)生的許多其他原因。
然后,在菱形框220處可確定存儲操作是否嘗試修改受保護的條目,諸如受保護的TLB條目(例如,對應(yīng)于不同地址空間)。如果不是,在可繼續(xù)VMX監(jiān)視器的正常執(zhí)行(框230)。這一執(zhí)行可取決于程序指令采取許多形式。在這一執(zhí)行之后,控制可在需要時返回給客戶。
如果相反確定存儲嘗試修改受保護的條目,則因為該VMX監(jiān)視器能訪問該客戶不能訪問的受保護位置,所以該VMX監(jiān)視器可執(zhí)行該存儲操作(框235)。然后,對應(yīng)于該存儲地址的所有TLB條目可從所有TLB和其他存儲器資源中清除(框240)。VM進入然后將控制返回給客戶以便繼續(xù)執(zhí)行(框245)。這一執(zhí)行例如可在下一個客戶指令處繼續(xù)。
在其它實施例中,可期望清除所有TLB內(nèi)的所有條目。例如,如果已經(jīng)修改了更高級的分頁機制,則可期望該清除能清空TLB或在VMX監(jiān)視器不再保護地址空間時從TLB中移除該地址空間。在一實施例中,如果軟件期望清除用于一地址空間的整個TLB,則軟件可用已經(jīng)存儲在那里的完全相同值執(zhí)行MOVto CR3指令。因為該軟件不指定哪個ASID需要被清除,所以當處理器看見這一CR4寫入時,該處理器就清除用于所有ASID的所有TLB。在各個實施例中,如果PDE(或更高)條目被改變或者如果CR3從CR3目標值中移除并且監(jiān)視器不再保護它,則軟件就可清除用于一地址空間的整個TLB。
現(xiàn)參看圖5,示出了根據(jù)本發(fā)明一實施例的另一種方法的流程圖。具體地,方法250用于清除所有ASID的所有TLB。如圖5所示,這一方法通過接收MOV to CR3指令(橢圓框255)開始。處理器基于該指令的接收確定新CR4值是否與其前一值相同(菱形框260)。如果該新地址值不同,則執(zhí)行正常的CR4操作(框270)。這些操作可基于CR4內(nèi)不同位的狀態(tài)而變化。例如,基于位狀態(tài)可清除諸如TLB的處理器資源,并且可進行其他處理。例如,改變數(shù)據(jù)的CR4轉(zhuǎn)換可引起對清除至少當前TLB內(nèi)條目的需要。此外,這一CR4轉(zhuǎn)換可要求地址空間的改變??捎门c參看圖3所述的相類似的方式來執(zhí)行這一地址空間改變。
如果相反確定新值與前一值相同,則這可以是指示VMX監(jiān)視器或其他實體期望清除所有TLB的標志。如上所述,存在清除所有TLB的各種原因。因此,在框280處,可對所有ASID清除所有TLB。最后,執(zhí)行可在相同(即,初始)地址空間內(nèi)繼續(xù)(框290)(例如,在下一個指令處)。
雖然在圖5的實施例中描述為基于MOV to CR3指令實現(xiàn),但是應(yīng)該理解,在其它實施例中也可使用其他指令或操作來作為指示VMX監(jiān)視器或其他條目期望清除所有TLB的標志。此外,雖然參看圖5的具體實現(xiàn)做出了描述,但是在其它實施例中也可分析因預(yù)定指令產(chǎn)生的任何選定值以確定是否有值改變。如果沒有,就可對一個或多個處理器資源執(zhí)行期望動作。
現(xiàn)在參看圖6,示出了根據(jù)本發(fā)明一實施例的代表性計算機系統(tǒng)400的框圖。如圖6所示,計算機系統(tǒng)400包括處理器401。在一個實施例中,處理器401可經(jīng)由前側(cè)總線420耦合至存儲器集線器430,而該存儲器集線器430可經(jīng)由存儲器總線耦合至共享主存儲器440。如圖6所示,處理器401根據(jù)本發(fā)明一實施例可包括TLB 403和ASID列表405。此外,2級(L2)高速緩存407可耦合至處理器401。
存儲器集線器430還可(經(jīng)由集線器鏈路)耦合至I/O集線器435,而該I/O集線器435則耦合至I/O擴展總線455和外圍總線450。在各實施例中,I/O擴展總線455可耦合至諸如鍵盤和鼠標的各種I/O設(shè)備。外圍總線450可耦合至諸如可以是諸如閃存、插入卡之類存儲器設(shè)備的外圍設(shè)備470的各種組件。雖然本說明書提到了系統(tǒng)400的具體部件,但是對所示實施例的各種修改也是可能的。
各實施例可用存儲在存儲介質(zhì)上的計算機程序?qū)崿F(xiàn),其中這些程序具有編程計算機系統(tǒng)來執(zhí)行這些實施例的指令。存儲介質(zhì)可包括但不限于包括軟盤、光盤、光盤只讀存儲器(CD-ROM)、可重寫光盤(CD-RW)和磁光盤的任何類型的盤;諸如只讀存儲器(ROM)、例如動態(tài)或靜態(tài)隨機存取存儲器(RAM)的RAM、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)、閃存、磁性卡或光學卡的半導(dǎo)體器件;或者用于存儲電子指令的任何類型的介質(zhì)。其他實施例可被實現(xiàn)為由可編程控制設(shè)備執(zhí)行的軟件模塊。
因為軟件有助于處理器保護和無效TLB條目,所以在各實施例中可以在上下文切換(例如,MOV to CR3、VM退出和VM進入)時維持TLB條目。于是在各實施例中無需窺探TLB硬件,從而避免了窺探TLB容量或其他限制。
在其它實施例中,半透明ASID可用于含有不將ID顯式地分配給不同的地址空間、但要求處理器即使在TLB條目未被當前地址空間使用的情況下也在修改頁面表之后采取具體動作清除TLB條目的頁面表的任何體系結(jié)構(gòu)中。
因此,在各實施例中,處理器可支持ASID并避免TLB清除(例如,在上下文切換時),而無需專門的硬件檢測交叉地址空間污染、也無需顯式的軟件控制和ASID分配。
雖然已對有限數(shù)目的實施例描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員應(yīng)該認識到可從中做出許多修改和變化。所附權(quán)利要求旨在覆蓋落入本發(fā)明真實精神和范圍內(nèi)的所有這些修改和變化。
權(quán)利要求
1.一種方法,包括在第一地址空間和第二地址空間之間切換;確定在地址空間列表內(nèi)是否存在所述第二地址空間;并且在所述切換之后維持翻譯緩沖器內(nèi)所述第一地址空間的條目。
2.如權(quán)利要求1所述的方法,其特征在于,還包括從所述列表中獲取對應(yīng)于所述第二地址空間的地址空間標識符,并且將所述地址空間標識符存儲在控制寄存器內(nèi)。
3.如權(quán)利要求1所述的方法,其特征在于,還包括如果在所述地址空間列表內(nèi)不存在所述第二地址空間,則清除所述翻譯緩沖器內(nèi)選定地址空間的條目。
4.如權(quán)利要求1所述的方法,其特征在于,還包括確定對受保護位置的存儲是否引起了所述切換。
5.如權(quán)利要求4所述的方法,其特征在于,還包括如果所述存儲引起了所述切換,則從所述翻譯緩沖器清除對應(yīng)于所述受保護位置的條目。
6.如權(quán)利要求5所述的方法,其特征在于,清除對應(yīng)于所述受保護位置的所述條目包括使用無效條目指令使所述翻譯緩沖器內(nèi)的線性地址無效。
7.如權(quán)利要求1所述的方法,其特征在于,所述第一地址空間包括客戶軟件,而所述第二地址空間包括虛擬機監(jiān)視器。
8.如權(quán)利要求7所述的方法,其特征在于,還包括在虛擬機退出操作時維持所述條目。
9.如權(quán)利要求1所述的方法,其特征在于,所述第一地址空間包括虛擬機監(jiān)視器,而所述第二地址空間包括客戶軟件。
10.如權(quán)利要求9所述的方法,其特征在于,還包括在虛擬機進入操作時維持所述條目。
11.一種方法,包括在客戶軟件和虛擬機監(jiān)視器之間切換;確定對受保護位置的存儲是否引起了所述切換;以及選擇性地清除對應(yīng)于所述受保護位置的處理器資源的至少一個條目,同時維持對應(yīng)于所述客戶軟件的所述處理器資源的其他條目。
12.如權(quán)利要求11所述的方法,其特征在于,還包括如果在地址空間列表中不存在對應(yīng)于所述虛擬機監(jiān)視器的地址空間標識符,則清除所述處理器資源內(nèi)選定地址空間的頁面條目。
13.如權(quán)利要求11所述的方法,其特征在于,還包括使用無效條目指令選擇性地清除所述至少一個條目。
14.如權(quán)利要求11所述的方法,其特征在于,所述切換是由控制寄存器移動指令引起的。
15.如權(quán)利要求11所述的方法,其特征在于,選擇性地清除所述至少一個條目包括清除未由當前地址空間使用的至少一個條目。
16.如權(quán)利要求11所述的方法,其特征在于,還包括使用微代碼啟用對其他條目的維持。
17.一種方法,包括確定預(yù)定指令是否未修改選定值;以及如果未修改所述選定值則對處理器資源采取動作。
18.如權(quán)利要求17所述的方法,其特征在于,還包括清除所述處理器資源的所有地址空間內(nèi)的所有條目。
19.如權(quán)利要求17所述的方法,其特征在于,所述預(yù)定指令包括移動至控制寄存器指令。
20.如權(quán)利要求17所述的方法,其特征在于,所述選定值包括控制寄存器值。
21.如權(quán)利要求17所述的方法,其特征在于,采取動作包括清除至少一個翻譯后備緩沖器。
22.一種裝置,包括具有第一和第二地址空間的條目的處理器資源,所述第一和第二地址空間對應(yīng)于相應(yīng)的第一和第二地址空間標識符;以及耦合至所述處理器資源的執(zhí)行引擎,以在上下文切換至所述第二地址空間時維持所述第一地址空間的至少一部分條目。
23.如權(quán)利要求22所述的裝置,其特征在于,還包括耦合至所述處理器資源以向所述條目提供所述第一和第二地址空間標識符的地址空間緩沖器。
24.如權(quán)利要求22所述的裝置,其特征在于,如果對受保護位置的存儲引起所述上下文切換,則所述執(zhí)行引擎適于執(zhí)行微代碼以選擇性地清除所述第一地址空間的條目。
25.如權(quán)利要求22所述的裝置,其特征在于,所述處理器資源包括翻譯后備緩沖器。
26.一種系統(tǒng),包括處理器,包括具有第一和第二地址空間的條目的處理器資源,所述第一和第二地址空間分別對應(yīng)于第一和第二地址空間標識符,以及耦合至所述處理器資源的執(zhí)行引擎,所述執(zhí)行引擎在上下文切換至所述第二地址空間時維持所述第一地址空間的至少一部分條目;以及耦合于所述處理器的動態(tài)隨機存取存儲器。
27.如權(quán)利要求26所述的系統(tǒng),其特征在于,還包括耦合至所述處理器資源的地址空間緩沖器,以向所述處理器資源提供所述第一和第二地址空間標識符。
28.如權(quán)利要求26所述的系統(tǒng),其特征在于,還包括地址空間標識符列表,以將具有條目的地址空間標識符存儲在所述處理器資源內(nèi)。
29.如權(quán)利要求26所述的系統(tǒng),其特征在于,所述處理器資源包括翻譯后備緩沖器。
30.一種包括含有指令的機器可訪問存儲介質(zhì)的物品,如果執(zhí)行所述指令會使得系統(tǒng)確定預(yù)定指令是否未修改選定值;以及如果所述選定值未被修改則對處理器資源執(zhí)行一動作。
31.如權(quán)利要求30所述的物品,其特征在于,還包括如果被執(zhí)行就能使所述系統(tǒng)清除所述處理器資源的所有地址空間內(nèi)所有條目的指令。
32.如權(quán)利要求30所述的物品,其特征在于,還包括如果被執(zhí)行就能使所述系統(tǒng)清除至少一個翻譯后備緩沖器的指令。
全文摘要
在本發(fā)明一實施例中,一種方法包括在第一地址空間和第二地址空間之間切換,確定在地址空間列表內(nèi)是否存在該第二地址空間;并且在切換之后維持翻譯緩沖器內(nèi)第一地址空間的條目。這樣,可降低與上下文切換相關(guān)聯(lián)的額外開銷。
文檔編號G06F9/455GK1993683SQ200580025726
公開日2007年7月4日 申請日期2005年7月14日 優(yōu)先權(quán)日2004年7月30日
發(fā)明者J·布蘭特, S·K·蒙達爾, R·烏利希, G·尼格, R·喬治 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
瓮安县| 长岛县| 勐海县| 博客| 师宗县| 湖南省| 鄢陵县| 东城区| 新乡市| 江陵县| 赣州市| 高青县| 临夏县| 西宁市| 桑日县| 静安区| 安龙县| 大洼县| 钦州市| 皮山县| 渭源县| 河曲县| 宿松县| 垫江县| 宣汉县| 新泰市| 邛崃市| 海林市| 新巴尔虎右旗| 阳春市| 伊川县| 河间市| 松桃| 嘉祥县| 舒兰市| 综艺| 兴业县| 普定县| 青海省| 蓬莱市| 黄平县|