亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

微處理器以及在微處理器中存儲數(shù)據(jù)的方法

文檔序號:6461992閱讀:396來源:國知局
專利名稱:微處理器以及在微處理器中存儲數(shù)據(jù)的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種具有^:代碼的^L處理器,更具體地涉及一種微代碼的暫 時變動存儲。
背景技術(shù)
微處理器包括指令集,該指令集是為該微處理器的指令集架構(gòu) (Instruction Set Architecture,以下簡稱為ISA)的一部分,在本文可 稱為微處理器的宏架構(gòu)(Macroarchitecture)。該指令集定義了微處理器 可執(zhí)行的合法指令集。程序設(shè)計師(在本文中可稱為用戶)利用該指令集中 的指令寫入程序,以被該微處理器執(zhí)行。該程序設(shè)計師可為撰寫應(yīng)用程序的 應(yīng)用程序設(shè)計師,或者為撰寫操作系統(tǒng)或可執(zhí)行軟件的系統(tǒng)程序設(shè)計師。ISA 亦包括寄存器等資源,其可被該指令集中的指令存取。常用的ISA為Intel IA-32與IA-64 ISA,可參照x86架構(gòu),其包括指令集與具有一般功用寄存 器的用戶可存取寄存器、數(shù)據(jù)段寄存器(Segment Registers)、堆棧與基 底指針寄存器…等習(xí)知的寄存器。許多新型的微處理器包括微架構(gòu)(Microarchitecture),其無法直接 以寫入程序直接存取至微處理器ISA中。該微架構(gòu)包括其本身支持微指令的 微指令集,其與上述ISA的用戶可存取指令集不同。該ISA指令集的用戶可 存取指令有時可參照宏架構(gòu),以分辨其與微指令集的微指令的不同。微指令 較宏指令來的簡單,且可較直接地控制微處理器的硬件。微處理器設(shè)計者寫 入微代碼,其包括微架構(gòu)微指令集的微指令,且在微處理器的微架構(gòu)內(nèi)執(zhí)行。 典型上,微處理器包括指令轉(zhuǎn)譯器,其用以轉(zhuǎn)譯用戶程序宏指令為微指令集 的一個或多個微指令,然后分派給微處理器的執(zhí)行單元以執(zhí)行指令。若宏指 令特別復(fù)雜,則該指令轉(zhuǎn)譯器可呼叫由多個微指令組成的微代碼中的例行程 序以執(zhí)行該ISA指令。當(dāng)代x86架構(gòu)ISA微處理器是利用精簡指令集(Reduced Instruction Set Computer,簡稱為RISC )孩£架構(gòu),其包括比IA-32宏架構(gòu) 集明顯簡單的RISC型態(tài)指令集。因此,微架構(gòu)典型上包括除了用戶可存取ISA資源以外的其它資源,例 如,微代碼專用的額外寄存器,其是為非用戶可存取寄存器。舉例來說,與許多RISC架構(gòu)微處理器相比,IA-32 ISA的用戶可存取寄存器的數(shù)目相對來 說是較少的,舉例來說像是RISC型態(tài)微指令使用的非用戶可存取寄存器。近來在微處理器的革新,ISA增加了在微架構(gòu)所需的額外寄存器總量的 需求,以發(fā)展新的特色。然而,很不幸地,使用在大量額外寄存器上的實際 芯片量可能會被限制。此外,微代碼不應(yīng)使用系統(tǒng)存儲器以作為額外存儲空 間,因為通常是由操作系統(tǒng)來配置與管理系統(tǒng)存儲器的。因此,所需的應(yīng)是 提供微代碼使用的額外存儲空間,其與寄存器相比相對來說速度較快且僅需 要較少的芯片區(qū)。發(fā)明內(nèi)容本發(fā)明實施例公開了一種微處理器,包括用戶可存取寄存器組、隨機存 取存儲器與微代碼。該隨機存取存儲器位于該微處理器的非用戶可存取地址 空間內(nèi),其中該隨機存取存儲器比該用戶可存取寄存器組密集(dense),且存取速度你該用戶可存取寄存器組慢。該微代碼包括多個該微處理器的微 指令集的多個微指令。該微指令集包括第一微指令與第二微指令。該第一微微指令用以將該隨機存取存儲器的數(shù)據(jù)加載至該用戶可存取寄存器組。本發(fā)明實施例還公開了 一種在微處理器中存儲數(shù)據(jù)的方法。執(zhí)行第 一微 指令,用以將該微處理器的用戶可存取寄存器組的數(shù)據(jù)存儲至該微處理器的 隨機存取存儲器,其中該隨機存取存儲器位于該微處理器的非用戶可存取地 址空間內(nèi),其中該隨機存取存儲器較比用戶可存取寄存器組密集,且存取速 度比該用戶可存取寄存器組慢。執(zhí)行第二微指令,用以將該隨機存取存儲器 的數(shù)據(jù)加載至該用戶可存取寄存器組,其中該第 一與第二微指令是為該微處 理器的微指令集的多個微指令中的兩個微指令。


圖1是顯示本發(fā)明實施例的管線式微處理器的架構(gòu)示意圖,其包括私有 隨機存取存儲器。圖2是顯示本發(fā)明實施例的不同系統(tǒng)存儲器與私有隨機存取存儲器地址空間的示意圖。圖3是顯示本發(fā)明實施例的執(zhí)行私有隨機存取存儲器的loadPRAM微指 令的步驟流程圖。圖4是顯示本發(fā)明實施例的執(zhí)行私有隨機存取存儲器storePRAM微指令 的步驟流程圖。圖5是顯示本發(fā)明實施例的圖1的微處理器執(zhí)行VMREAD宏指令的步驟 流程圖。圖6是顯示本發(fā)明實施例的圖1的微處理器執(zhí)行V麗RITE宏指令的步驟 流程圖。圖7是顯示本發(fā)明實施例的圖1的微處理器執(zhí)行x86架構(gòu)的WRMSR宏指 令的步驟流程圖。圖8是顯示本發(fā)明實施例的圖1的微處理器執(zhí)行x86架構(gòu)的RDMSR宏指 令的步驟流程圖。圖9是顯示本發(fā)明實施例的圖1的微處理器執(zhí)行x86架構(gòu)的RSM宏指令 的步驟流程圖。圖10是顯示本發(fā)明實施例的圖1的微處理器響應(yīng)接收x86架構(gòu)的SMI 宏指令的操作的步驟流程圖。主要組件符號說明 100~微處理器 102-指令緩沖區(qū) 104-指令收件器 106~指令轉(zhuǎn)譯器 108-指令分派器 112-用戶可存取寄存器組 114-數(shù)據(jù)緩沖區(qū) 122~加載/存儲單元 124 執(zhí)行單元 126 ~私有隨機存取存儲器 128 ~微代碼 132-總線接口單元134-非用戶可存取寄存器組136-處理器總線302、 304、 402、 404、 502、 504、 602、 604、 702、 704、 802、 804、 902、 904、 1002、 1004 -流程步驟具體實施方式
為了讓本發(fā)明的目的、特征、及優(yōu)點能更明顯易懂,下文特舉較佳實施 例,并配合所附圖式圖l至圖10,做詳細(xì)的說明。本發(fā)明說明書提供不同的 實施例來說明本發(fā)明不同實施方式的技術(shù)特征。其中,實施例中的各組件的 配置是為說明所用,并非用以限制本發(fā)明。且實施例中圖式標(biāo)號的部分重復(fù), 是為了簡化說明,并非意指不同實施例的間的關(guān)聯(lián)性。圖1是顯示本發(fā)明實施例的管線式微處理器100的架構(gòu)示意圖,其包括 私有隨機存取存儲器(Private Random Access Memory, PRAM) 126。在實 施例中,圖1的微處理器100的組件(包括私有隨機存取存儲器126 )是整 合在單一半導(dǎo)體基板上。由于私有隨機存取存儲器126不可被用戶代碼宏指 令存取,故其是為私有隨才幾存取存儲器,但其可被」徵處理器100經(jīng)由其微代 碼128來存取。此外,微處理器100包括在其微指令集中的不同微指令,用 以存取私有隨機存取存儲器126,如上所述。微處理器100包括指令緩沖區(qū)102,其用以緩沖來自耦接于微處理器100 的系統(tǒng)存儲器的用戶程序宏指令。微處理器100亦包括指令收件器(Fetcher ) 104,其耦接于指令緩沖區(qū)102,用以自指令緩沖區(qū)102與系統(tǒng)存儲器取得宏 指令。微處理器100亦包括指令轉(zhuǎn)"^器106,其耦接于指令收件器104,用 以解碼取得的微處理器100的宏指令集的宏指令,并且轉(zhuǎn)譯該取得的宏指令 為微處理器100的宏指令集的微指令。微處理器100亦包括loadPRAM與 storePRAM微指令,而微指令亦包括一般存儲器加載/存儲微指令。微處理器100亦包括微代碼128。微代碼128包括該微處理器的微指令 集的多個微指令。部分的微代碼128包括微指令的例行程序(或序列),以 執(zhí)行宏指令或處理異常的情況。特別的是,當(dāng)指令轉(zhuǎn)譯器106解碼某些宏指 令(例如,相對復(fù)雜的宏指令),其轉(zhuǎn)換控制給微代碼128中的適當(dāng)?shù)睦?程序,而非直接產(chǎn)生轉(zhuǎn)譯所得的微指令。特別的是,微指令集包括loadPRAM微指令與storePRAM微指令,其格式如圖1所示。loadPRAM PRAM—address, register; storePRAM register, PRAM_address。loadPRAM微指令的PRAM—address操作數(shù)指定私有隨機存取存儲器126 中的來源位置,該來源位置中的數(shù)據(jù)是加載至loadPRAM微指令的寄存器操 作數(shù)指定的目的寄存器。storePRAM微指令的PRAM—address搡作數(shù)指定私有 隨機存取存儲器126中的目的位置,該目的位置中的數(shù)據(jù)是來自storePRAM 微指令的寄存器操作數(shù)指定的來源寄存器。指定的寄存器可為用戶可存取寄 存器組112中寄存器中的一個寄存器,或者為非用戶可為存取寄存器組134 中寄存器中的一個寄存器,其說明如下。指令分派器108 (其耦接于指令轉(zhuǎn)譯器106)分派指令轉(zhuǎn)譯器106或微 代碼128的微指令給與指令分派器108相耦接的多個功能單元的其中之一。 功能單元包括加載/存儲單元122,以及一個或多個執(zhí)行單元124,例如,整 合單元、浮點單元以及單指令多數(shù)據(jù)(Single InstructionMultiple Data, SIMD)單元。特別的是,指令分派器108分派loadPRAM與storePRAM微指 令給加載/存儲單元122。微處理器100亦包括該宏架構(gòu)的用戶可存取寄存器組112,其提供指令 操作數(shù)給上述功能單元,并且自上述功能單元接收指令運算后的結(jié)果。微處 理器100亦包括該宏架構(gòu)一非用戶可存取寄存器組134,其提供指令操作數(shù) 給上述功能單元,并且自上述功能單元接收指令運算后的結(jié)果。非用戶可存 取寄存器組134僅可利用微指令來存取,且不可利用用戶宏指令存取。非用 戶可存取寄存器組134被微代碼128使用以作為暫時存儲之用,并用以執(zhí)行 運算。非用戶可存取寄存器組134可被微代碼128而非私有隨機存取存儲器 126使用在某些特定目的,其較私有隨機存取存儲器126需要較短的潛伏期 (access latency)以滿足較小的存儲需求。微處理器100亦包括數(shù)據(jù)緩沖區(qū)114,其耦接于加載/存儲單元122,用 以緩沖來自系統(tǒng)存儲器的數(shù)據(jù)。數(shù)據(jù)緩沖區(qū)114是為用戶可存取的,也就是 說,數(shù)據(jù)緩沖區(qū)114是設(shè)置于微處理器100的系統(tǒng)存儲器地址空間內(nèi),其可 被用戶宏指令所存取??偩€接口單元132耦接于數(shù)據(jù)緩沖區(qū)114??偩€接口單元132耦接于處理器總線136以存取系統(tǒng)存儲器??偩€接口單元132在處 理器總線136產(chǎn)生交易以在微處理器100與系統(tǒng)存儲器的間傳送數(shù)據(jù),例如, 當(dāng)加載或存儲微指令(即, 一般存儲器加載或存儲微指令,相對于loadPRAM 或storePRAM微指令)的存儲器地址在數(shù)據(jù)緩沖區(qū)114中遺失時,其需要自 系統(tǒng)存儲器提取至數(shù)據(jù)緩沖區(qū)114的遺失緩沖線,或者當(dāng)緩沖線自數(shù)據(jù)緩沖 區(qū)114寫回至系統(tǒng)存儲器或清除掉。圖2是顯示本發(fā)明實施例的不同系統(tǒng)存儲器與私有隨機存取存儲器地址 空間的示意圖。私有隨機存取存儲器126耦接于加載/存儲單元122。私有隨 機存取存儲器126設(shè)置于微處理器100的非用戶可存取私有隨機存取存儲器 地址空間中,其與微處理器100的存儲器地址空間是各自獨立,如圖2所示。 也就是說,私有隨機存取存儲器126無法被用戶代碼宏指令存取,而僅可被 微處理器100本身存取,例如經(jīng)由微代碼128或其它內(nèi)建硬件來存取。相對 的,數(shù)據(jù)緩沖區(qū)114與系統(tǒng)存儲器設(shè)置于微處理器100的存儲器地址空間, 其可被用戶宏指令與微代碼128存取,如圖2所示。加載/存儲單元122根 據(jù)指令分派器108的loadPRAM與storePRAM微指令,分別自私有隨機存取 存儲器126讀取且寫入至私有隨機存取存儲器126。在一個實施例中,私有隨機存取存儲器126包括4KB的存儲空間。然而, 在其它實施例中,私有隨機存取存儲器126是大于或小于4KB的存儲空間。 有利的是,私有隨機存取存儲器126比用戶可存取寄存器組ll2與非用戶可 存取寄存器組134來的密集。也就是說,存儲在私有隨機存取存儲器126中 的每單位面積的數(shù)據(jù)量大于存儲在用戶可存取寄存器組112與非用戶可存取 寄存器組134中的每單位面積的數(shù)據(jù)量。因此,私有隨機存取存儲器1"可 包括相對于用戶可存取寄存器組112與非用戶可存取寄存器組134而言較大 的存儲空間。在一個實施例中,私有隨機存取存儲器126至少兩倍密集于用 戶可存取寄存器組112與非用戶可存取寄存器組134。在一個實施例中,由 于私有隨機存取存儲器126包括不符合使用于制造微處理器100整合電路的特定制造技術(shù)的設(shè)計規(guī)則的客制靜態(tài)隨機存取存儲器位細(xì)胞,但用戶可存取 寄存器組112與非用戶可存取寄存器組134包括符合該制造技術(shù)的設(shè)計規(guī)則的位細(xì)胞,故私有隨機存取存儲器126比用戶可存取寄存器組112與非用戶 可存取寄存器組134來的密集。在一個實施例中,私有隨機存取存儲器126 由可作為數(shù)據(jù)緩沖區(qū)114的靜態(tài)隨機存取存儲器(Static Random AccessMemory, SRAM)構(gòu)成。與前述相比,私有隨機存取存儲器126的存取速度比 用戶可存取寄存器組112與非用戶可存取寄存器組134來的慢。私有隨機存 取存儲器126的存取速度可能因為以下原因而比用戶可存取寄存器組112與 非用戶可存取寄存器組134來的慢。(l)在私有隨機存取存儲器126比在用 戶可存取寄存器組112與非用戶可存取寄存器組134中有較多的可尋址位 置,因此私有隨機存取存儲器126的地址解碼電路比用戶可存取寄存器組 112與非用戶可存取寄存器組134具有較長的延遲。(2)私有隨機存取存儲器 126位的細(xì)胞線驅(qū)動電路比用戶可存取寄存器組112與非用戶可存取寄存器 組134的線驅(qū)動電路弱。(3)因為私有隨機存取存儲器126位細(xì)胞的數(shù)目較 多,故私有隨機存取存儲器126的細(xì)胞線的加載較用戶可存取寄存器組112 與非用戶可存取寄存器組134的細(xì)胞線的載入大。在一實施例中,私有隨機 存取存儲器126需要四個頻率周期來進(jìn)行存取,但用戶可存取寄存器組112 與非用戶可存取寄存器組134僅需要一個頻率周期來進(jìn)行存取。微處理器100亦包括用于偵測系統(tǒng)存儲器加載/存儲碰撞的邏輯。該邏 輯轉(zhuǎn)送碰撞加載/存儲數(shù)據(jù)至微處理器100的適當(dāng)階段,以促進(jìn)每秒速率所 增加的指令。在一實施例中,微處理器100是為非依序執(zhí)行的微處理器。上 述邏輯亦可以適當(dāng)?shù)捻樞騺韴?zhí)行碰撞加載/存儲。有利的是,該邏輯亦可用 來偵測私有隨機存取存儲器126的加載/存儲碰撞,以轉(zhuǎn)送私有隨機存取存 儲器126的碰撞數(shù)據(jù),并且以適當(dāng)?shù)捻樞騺韴?zhí)行私有隨機存取存儲器1"的 碰撞加載/存儲。然而,由于私有隨機存取存儲器占用與系統(tǒng)存儲器不 同的地址空間,該邏輯并不會偵測系統(tǒng)存儲器的加載/存儲與私有隨機存取 存儲器126的加載/存儲間的碰撞。因此,有利的是,用于執(zhí)行存儲器加載/ 存儲指令的微處理器100中相當(dāng)顯著數(shù)量的邏輯與數(shù)據(jù)路徑可被微處理器 100重復(fù)使用,以執(zhí)行l(wèi)oadPRAM與storePRAM微指令。在一實施例中,加載/存儲單元122并不會轉(zhuǎn)譯loadPRAM與storePRAM 微指令指定的地址。也就是說,不像一般加載與存儲指令,其指定可經(jīng)由微 處理器100 (例如,存儲器分頁單元)的地址轉(zhuǎn)譯機制而轉(zhuǎn)譯為實際地址的 虛擬地址,loadPRAM與storePRAM孩i指令指定的地址是為用于存取私有隨機 存取存儲器126的實際地址。在一實施例中,PRAM—address操作數(shù)在 loadPRAM與storePRAM微指令中被指定為常數(shù)。在另一實施例中,程序設(shè)計 師可利用尋址模式來指定loadPRAM與storePRAM孩i指令的PRAM—address操作數(shù),其中l(wèi)oadPRAM與storePRAM微指令類似于加載/存儲存儲器微指令。 也就是說,微處理器100中用來產(chǎn)生一般加載/存儲微指令存儲器地址的地 址產(chǎn)生邏輯亦可用來產(chǎn)生私有隨機存取存儲器126的地址。在一實施例中, loadPRAM與storePRAM微指令可指定最多三個不同的操作數(shù)以產(chǎn)生 PRAM—address,亦即指定用以存儲操作數(shù)與固定位移字段的二個各別寄存 器。舉例來說,程序設(shè)計師可利用寄存器中的基地址與增加寄存器中的地址 偏移值,以利用loadPRAM與storePRAM微指令依序存取私有隨機存取存儲 器126。加載/存儲單元122辨識出loadPRAM與storePRAM微指令的地址操作數(shù) 指定位置僅存在于私有隨才幾存取存儲器126中,而非存儲器空間中的地址。 因此,加載/存儲單元122根據(jù)私有隨機存取存儲器126的存取,故并未要 求總線接口單元132產(chǎn)生處理器總線136上的交易loadPRAM與storePRAM 微指令。因此,私有隨機存取存儲器126的地址空間是不用緩沖的。圖3是顯示本發(fā)明實施例的加載私有隨機存取存儲器的loadPRAM微指 令的步驟流程圖,該流程由步驟302開始。在步驟302中,加載/存儲單元122接收loadPRAM微指令,并且自私有 隨機存取存儲器126中由PRAM—address操作數(shù)指定的位置讀取數(shù)據(jù)。如上 文所述,私有隨才幾存取存儲器126中的該位置的地址,可根據(jù)loadPRAM微 指令指定的尋址模式并藉由地址產(chǎn)生邏輯來產(chǎn)生。接著執(zhí)行步驟3(M。在步驟304中,加載/存儲單元122寫入在步驟302中讀取的數(shù)據(jù)至 loadPR雄微指令寄存器操作數(shù)指定的寄存器。如上所述,該寄存器為用戶可 存取寄存器組112或非用戶可存取寄存器組134的寄存器。圖4是顯示本發(fā)明實施例的存儲私有隨機存取存儲器的storePRAM微指 令的步驟流程圖,該流程由步驟402開始。在步驟402中,加載/存儲單元122接收storePRAM微指令,并且自 storePRAM微指令寄存器操作數(shù)指定的寄存器讀取數(shù)據(jù)。接著執(zhí)行步驟4(M。在步驟404中,加載/存儲單元122寫入在步驟402中讀取的數(shù)據(jù)至私 有隨機存取存儲器126中由PRAM—address操作數(shù)指定的該位置。在一實施例中,樣i處理器100的ISA會確認(rèn)為IA-32或IA-64 ISA。特 別的是,用戶可存取寄存器組112會確認(rèn)為IA-32或IA-64 ISA的用戶可存 取寄存器組,并且微處理器100的宏指令組會確認(rèn)為IA-32/64宏指令組。在上述實施例中,私有隨機存取存儲器126可用來存儲一個或多個虛擬機器 延伸(Virtual-Machine Extensions,簡稱為VMX )虛擬控制架構(gòu)(Virtual Machine Control Structure,簡稱為VMCS),其將在下文中的圖5、 6中描 述。在一實施例中,微處理器IOO存儲私有隨機存取存儲器126中部分或所 有最近使用的虛擬控制架構(gòu)。此外,私有隨機存取存儲器126的位置可用來 說明部分IA-32/64特別模塊寄存器(Model Specific Register,簡稱為 MSR)。舉例來說,IA32 —SYSENTER-CS特別模塊寄存器可以私有隨機存取存 儲器126來說明,其將在下文中的圖7、 8中描述。此外,私有隨機存取存 儲器126可用來存儲系統(tǒng)管理中斷(System Management Interrupt,簡稱 為SMI)相關(guān)值。舉例來說,系統(tǒng)管理中斷基地址(System Management Interrupt Base Address,簡稱為SMBASE )值可存儲在私有隨機存取存儲器 126中,其將在下文中的圖9、 IO中描述。圖5是顯示本發(fā)明實施例的圖1的微處理器IOO執(zhí)行一 VMREAD宏指令 的步驟流程圖,該流程由步驟502開始。在步驟502中,指令轉(zhuǎn)譯器106解碼VMX. VMREAD宏指令,并且將控制 權(quán)傳送給與VMREAD宏指令相關(guān)的微代碼128的例行程序。接著執(zhí)行步驟5(M。在步驟504中,VMREAD微代碼128的例行程序為先執(zhí)行l(wèi)oad sys_mem-address, temp—reg微指令,接著執(zhí)行 storePRAM temp一reg, PRAM—address微指令。該load sys-menuaddress, temp一reg微指令自系統(tǒng) 存儲器地址讀取數(shù)據(jù),其中該系統(tǒng)存儲器地址包括VMREAD宏指令指定的 VMCS字段,并且將數(shù)據(jù)寫入至非用戶可存取寄存器組134的暫時寄存器中。 該storePRAM temp—reg, PRAM_address微指令自該暫時寄存器讀取數(shù)據(jù), 并且將該數(shù)據(jù)寫入至私有隨機存取存儲器126的位置中,其中該位置是用以 存儲VMREAD宏指令指定的VMCS字段。在一實施例中,微處理器IOO根據(jù)VMX VMPTRLD宏指令分配私有隨機存取存儲器126的一些存儲位置給VMCS。圖6是顯示本發(fā)明實施例的圖1的微處理器IOO執(zhí)行VMWRITE宏指令的 步驟流程圖,該流程由步驟602開始。在步驟602中,指令轉(zhuǎn)譯器106解碼VMX VMWRITE宏指令,并且將控制 權(quán)傳送給與V匿RITE宏指令相關(guān)的微代碼128的例行程序。接著執(zhí)行步驟 604。在步驟604中,V匿RITE微代碼128的例行程序為先執(zhí)行l(wèi)oadPRAMPRAM-address, temp—reg微指令,再執(zhí)行store temp'—reg, sys—mem一address 《鼓指令。該loadPRAM PRAM_address, temp_reg孩£指令自私有隨才幾存取存儲 器126的位置讀取數(shù)據(jù),其中該私有隨機存取存儲器126的位置包括非用戶 可存取寄存器組134的暫時寄存器。該store temp—reg, sys—mem_address 微指令自該暫時寄存器讀取數(shù)據(jù),并且將該數(shù)據(jù)寫入至VMWRITE宏指令指定 的系統(tǒng)存儲器的位置中。圖5、 6分別描述與存儲私有隨機存取存儲器126的VMCS相關(guān)的VMREAD 與V匿RITE宏指令的操作,其中配置了系統(tǒng)存儲器存儲空間,且宏架構(gòu)并未 托管微處理器100內(nèi)的存儲空間,使得自私有隨機存取存儲器126存取VMCS 的速度較自系統(tǒng)存儲器讀取的VMCS速度還快。然而,本發(fā)明實施例并非用 以限制在將VMCS存儲在私有隨機存取存儲器126中。更確切的說,私有隨 機存取存儲器126可用來存儲其它數(shù)據(jù)結(jié)構(gòu),以得到較系統(tǒng)存儲器更快的存 取速度,但宏架構(gòu)并不需指定微處理器100內(nèi)的存儲空間。圖7是顯示本發(fā)明實施例的圖1的微處理器100執(zhí)行一x86架構(gòu)的WRMSR 宏指令的步驟流程圖,該流程由步驟702開始。在步驟702中,指令轉(zhuǎn)譯器106解碼指定IA32_SYSENTER_CS MSR的WRMSR 宏指令,并且將控制權(quán)傳送給與WRMSR宏指令相關(guān)的微代碼128的例行程序。 在WRMSR宏指令之前,用戶程序包括一個或多個指令,該指令是用以加載具 有指定IA32_SYSENTER_CS MSR值的ECX寄存器以及用以加載具有用以寫入 到MSR值的EDX: EAX寄存器。接著執(zhí)行步驟7(H。在步驟704中,WRMSR微代碼128的例行程序為執(zhí)行storePRAM EDX: EAX, PRAM—address樣t指令。該storePRAM EDX: EAX, PRAM—address《鼓指令 自連鎖的EDX: EAX寄存器讀取數(shù)據(jù),并且將數(shù)據(jù)寫入至私有隨機存取存儲 器126中的位置,其中該位置是用以說明IA32_SYSENTER_CSMSR。在一實施 例中,WRMSR微代碼128的例行程序加載具有指定私有隨機存取存儲器 中的全球基地址(global base address)的值的基底寄存器,其中該全球基 地址是用以存儲MSR值,且該ECX值是做為該基地址的偏移量以形成私有隨 機存取存儲器126的實際地址。圖8是顯示本發(fā)明實施例的圖1的微處理器100執(zhí)行x86架構(gòu)的RDMSR 宏指令的步驟流程圖,該流程由步驟802開始。在步驟802中,指令轉(zhuǎn)譯器106解碼指定IA32—SYSENTER_CS MSR的RDMSR宏指令,并且將控制權(quán)傳送給與RDMSR宏指令相關(guān)的微代碼128的例行程序。 在RDMSR宏指令之前,用戶程序包括一個或多個指令,該指令是用以加載具 有指定IA32—SYSENTER-CS MSR值的該ECX寄存器。接著執(zhí)行步驟804。在步驟804中,RDMSR微代碼128的例行程序為執(zhí)行l(wèi)oadPRAM PRAM—address, EDX: EAX樣i指令。該loadPRAM PRAM—address, EDX: EAX 微指令自私有隨機存取存儲器126中的位置讀取數(shù)據(jù),其中該位置是用以說 明IA32—SYSENTER—CS MSR,并且將數(shù)據(jù)寫入至連鎖的EDX: EAX寄存器中。 在一實施例中,RDMSR微代碼128的例行程序加載具有指定私有隨才幾存取存 儲器126中的全球基地址的值的基底寄存器,其中該全球基地址是用以存儲 MSR值,且該ECX值是做為該基地址的偏移量以形成私有隨機存取存儲器126 的實際地址。圖7、 8分別描述指定特定MSR (即IA32—SYSENTER—CS MSR)的WRMSR 與RDMSR宏指令的操作,從而減少MSR存儲空間使用的芯片區(qū)的存儲量。然 而,本發(fā)明并非用以限定說明私有隨機存取存儲器126中的 IA32_SYSENTER_CS MSR。更確切的說,私有隨機存取存儲器126可用來說明 其它MSR,而不需立即被微處理器100的硬件存取,但可容許與存取私有隨 機存取存儲器126相關(guān)的潛伏期(latency)。在說明圖9、 IO之前,先簡單說明x86架構(gòu)的系統(tǒng)管理模式的操作。x86 宏架構(gòu)分配一部分的系統(tǒng)存儲器以用于系統(tǒng)管理中斷(System Management Interrupt,簡稱為SMI),該分配的系統(tǒng)存儲器可稱為系統(tǒng)管理隨機存取存 儲器(System Management RAM,以下簡稱為SMRAM)。根據(jù)系統(tǒng)管理中斷, 一部分的SMRAM (可稱為狀態(tài)存儲區(qū)(State Save Area))可被微處理器 100用來存儲其狀態(tài)。SMRAM的基地址是由系統(tǒng)管理中斷基地址值來指定。 該狀態(tài)存儲區(qū)是設(shè)置在系統(tǒng)管理中斷基地址的預(yù)設(shè)偏移量中。該系統(tǒng)管理中 斷基地址值是存儲在兩個地方,即在微處理器100內(nèi)與SMRAM的狀態(tài)存儲區(qū) 的預(yù)設(shè)偏移量(可稱為系統(tǒng)管理中斷基地址字段)內(nèi)。當(dāng)重置微處理器IOO 時,微處理器100內(nèi)的系統(tǒng)管理中斷基底值初始為宏架構(gòu)定義的默認(rèn)值。當(dāng) 微處理器IOO接收系統(tǒng)管理中斷,微處理器IOO存儲目前微處理器100的狀 態(tài)至SMRAM,其中該SMRAM的基底是為微處理器100內(nèi)的系統(tǒng)管理中斷基地 址值所定義。當(dāng)用戶程序執(zhí)行x86可移動存儲體管理程序(Removable Storage Manager,簡稱為RSM)宏指令,微處理器100回存SMRAM的狀態(tài)存儲區(qū)的處理器狀態(tài)。回存SMRAM的狀態(tài)存儲區(qū)的處理器狀態(tài)包括以系統(tǒng)存儲 器中的狀態(tài)存儲區(qū)中的系統(tǒng)管理模式基地址字段值回存(并且更新)內(nèi)部存 儲的系統(tǒng)管理模式基地址值。該特色有助于多處理系統(tǒng)中的多處理器操作, 其中主要處理器重自該初始位置配置SMRAM的位置給其它處理器。圖9是顯示本發(fā)明實施例的圖1的微處理器100執(zhí)行x86架構(gòu)的RSM宏 指令的步驟流程圖,該流程由步驟902開始。在步驟902中,指令轉(zhuǎn)譯器106解碼RSM宏指令,并且將控制權(quán)傳送給 與RSM宏指令相關(guān)的微代碼128的例行程序。接著執(zhí)行步驟904。在步驟904中,RSM微代碼128的例行程序為執(zhí)行l(wèi)oadPRAM PRAM—address, temp—regl 微指令,接著執(zhí)行 load sys—mem—address, temp—reg2孩£指令,最后4丸4亍storePRAM temp一reg2, PRAM—address孩吏指令。 該loadPRAM PRAM_address, temp—regl微指令讀取存儲在私有隨機存取存 儲器126的位置中的存儲器SMBASE值(該位置是用以存儲該存儲器SMBASE 值),并且將該存儲器SMBASE值寫入至非用戶可存取寄存器組134的第一 暫時寄存器。該load sys-mem-address, temp_reg2微指令自系統(tǒng)存儲器讀 取該SMBASE字段值,并且將其寫入至非用戶可存取寄存器組134的第二暫 時寄存器。由于第一暫時寄存器目前持有(藉由loadPRAM PRAM—address, temp—regl樣史指令的優(yōu)點)SMRAM的該基底系統(tǒng)存儲器地址,而該load sys_mem_address, temp-reg2微指令指定系統(tǒng)存儲器中的該SMRAM狀態(tài)存儲 區(qū)的SMBASE字段為該第一暫時寄存器中的該基底存儲器地址的預(yù)設(shè)偏移量。 該storePRAM temp_reg2, PRAM_address微指令自該第二暫時寄存器讀取數(shù) 據(jù),并且將該數(shù)據(jù)寫入至私有隨機存取存儲器126的位置中,其中該位置是 用以存儲器該SMBASE值。需注意到,除了回存(與更新)該SMBASE值的內(nèi) 在形式(Internal Representation) , RSM微代碼128的例行程序可利用該 第一暫時寄存器中的該SMBASE地址,并且經(jīng)由一串系統(tǒng)存儲器加載微指令 自該SMRAM狀態(tài)存儲區(qū)讀取微處理器100的剩余狀態(tài),以回存微處理器100 的狀態(tài)。微處理器100的狀態(tài)回存操作亦包括回存額外的storePRAM微指令 至私有隨機存取存儲器126的用以存儲于其中的其它狀態(tài)。圖10是顯示本發(fā)明實施例的圖1的微處理器響應(yīng)接收x86架構(gòu)的SMI 宏指令的操作的步驟流程圖,該流程由步驟1002開始。在步驟1002中,微處理器100接收系統(tǒng)管理中斷,并且將控制權(quán)傳送給與SMI異常指令相關(guān)的微代碼128的例行程序。接著執(zhí)行步驟1004。在步驟1004中,該SMI異常指令操作器的微代碼128的例行程序為 執(zhí)一 loadPRAM PRAM—address, temp—reg微指令,再執(zhí)行store temp—reg, sys一mem—address《鼓指令。i亥loadPRAM PRAM—address, temp_reg《鼓指令讀 取私有隨機存取存儲器126的位置中的存儲器SMBASE值,其中該位置是用 以存儲該存儲器SMBASE值,并且將該存儲器SMBASE值寫入至非用戶可存取 寄存器組134的暫時寄存器。該store temp_reg, sys—mem—address微指令 自該暫時寄存器讀取該SMBASE值,并且將其寫入至系統(tǒng)存儲器的該SMRAM 狀態(tài)存儲區(qū)中的該SMBASE字段。寫入該SMBASE字段值的該系統(tǒng)存儲器是被 指定至該store temp —reg, sys一mem一address《殷指令而為該基底存卡者器i也址 的預(yù)設(shè)偏移量,其中該基底存儲器地址是指定給該暫時寄存器。需注意到, 除了存儲該SMBASE值的該內(nèi)在形式至該SMRAM狀態(tài)存儲區(qū)的該SMBASE字段, SMI微代碼128的例行程序亦可利用該暫時寄存器中該SMBASE地址,并經(jīng)由 一串系統(tǒng)存儲器存儲微指令將微處理器100的剩余狀態(tài)寫入該SMRAM狀態(tài)存 儲區(qū),以存儲微處理器100的狀態(tài)。微處理器100的存儲狀態(tài)操作亦包括存 儲額外的loadPRAM微指令,以自私有隨才幾存取存儲器126加載用以存儲的 其它狀態(tài)。雖然本發(fā)明實施例、標(biāo)的、特色與優(yōu)點已詳細(xì)公開于上文中,但亦可含 其它實施例。舉例來說,雖然已公開私有隨機存取存儲器126存儲VMX VMCS, 在其它實施例中私有隨機存取存儲器126可用來存儲系統(tǒng)虛擬機器控制器 (Hypervisor)使用的其它虛擬機器架構(gòu)的數(shù)據(jù)結(jié)構(gòu),且并非用以限制VMX 虛擬化典范(Visualization Paradigm)。此外,雖然本發(fā)明實施例已公 開x86宏架構(gòu),其并非用以限制本發(fā)明,但亦可利用其它的宏架構(gòu)來實施本 發(fā)明。雖然本發(fā)明已以較佳實施例公開如上,然其并非用以限定本發(fā)明,任何 熟習(xí)此技術(shù)者,在不脫離本發(fā)明的精神和范圍內(nèi),可作各種更動與潤飾,因 此本發(fā)明的保護(hù)范圍當(dāng)以所附的權(quán)利要求書所界定的為準(zhǔn)。
權(quán)利要求
1. 一種具有微代碼的微處理器,包括用戶可存取寄存器組;隨機存取存儲器,其位于該微處理器的非用戶可存取地址空間內(nèi),其中該隨機存取存儲器比該用戶可存取寄存器組密集,且存取速度比該用戶可存取寄存器組慢;以及其中該微代碼包括該微處理器的微指令集的多個微指令,該微指令集包括第一微指令,其用以將該用戶可存取寄存器組的數(shù)據(jù)存儲至該隨機存取存儲器;以及第二微指令,其用以將該隨機存取存儲器的數(shù)據(jù)加載至該用戶可存取寄存器組。
2. 如權(quán)利要求1所述的微處理器,其還包括非用戶可存取寄存器組,其中該非用戶可存取寄存器組不如該隨機存取 存儲器密集,且存取速度比該隨機存取存儲器快;其中該第一微指令更用以將該非用戶可存取寄存器組的數(shù)據(jù)存儲至該 隨機存取存儲器,且該第二微指令用以將該隨機存取存儲器的數(shù)據(jù)加載至該非用戶可存取寄存器組。
3. 如權(quán)利要求2所述的微處理器,其中,該微代碼根據(jù)VMX V,RITE指令執(zhí)行一個或多個該第一微指令,以存儲一部分的x86架構(gòu)的虛擬機器延伸 虛擬控制架構(gòu)至該隨機存取存儲器。
4. 如權(quán)利要求2所述的微處理器,其中,該微代碼根據(jù)VMX VMREAD指 令執(zhí)行一個或多個該第二微指令,以從該隨機存取存儲器加載一部分的x86 架構(gòu)的虛擬機器延伸虛擬控制架構(gòu)。
5. 如權(quán)利要求2所述的微處理器,其中,該微代碼根據(jù)x86架構(gòu)的RSM 指令執(zhí)行一個或多個該第一微指令,以存儲系統(tǒng)管理模式基地址至該隨機存 取存儲器。
6. 如權(quán)利要求2所述的微處理器,其中,該微代碼根據(jù)x86架構(gòu)的系統(tǒng) 管理中斷指令執(zhí)行一個或多個該第二微指令,以從該隨機存取存儲器加載系 統(tǒng)管理模式基地址。
7. 如權(quán)利要求1所述的微處理器,其中,該微代碼根據(jù)指定x86架構(gòu)的 IA32 —SYSENTER—CS特別模塊寄存器為目的特別模塊寄存器的x86架構(gòu)的 WRMSR指令執(zhí)行一個或多個該第一微指令,以存儲特權(quán)階級0碼數(shù)據(jù)段值的 數(shù)據(jù)段選擇器至該隨機存取存儲器。
8. 如權(quán)利要求1所述的微處理器,其中,該微代碼根據(jù)指定x86架構(gòu)的 IA32-SYSENTER-CS特別模塊寄存器為來源特別模塊寄存器的x86架構(gòu)的 RDMSR指令執(zhí)行一個或多個該第二微指令,以從該隨機存取存儲器加載特權(quán) 階級G碼數(shù)據(jù)段值的數(shù)據(jù)段選擇器。
9. 如權(quán)利要求1所述的微處理器,其中,該微代碼執(zhí)行該第一或第二微 指令以將該隨機存取存儲器作為暫時存儲區(qū),以存儲該微代碼的計算結(jié)果。
10. 如權(quán)利要求1所述的微處理器,其中,該微處理器根據(jù)該微代碼指 令存取的該非用戶可存取地址空間而不對外部總線存取。
11. 一種在微處理器中存儲數(shù)據(jù)的方法,包括下列步驟 執(zhí)行第一微指令,用以將該微處理器的用戶可存取寄存器組的數(shù)據(jù)存儲至該微處理器的隨機存取存儲器,其中該隨機存取存儲器位于該微處理器的 非用戶可存取地址空間內(nèi),其中該隨機存取存儲器比該用戶可存取寄存器組 密集,且存取速度比該用戶可存取寄存器組慢;以及執(zhí)行第二微指令,用以將該隨機存取存儲器的數(shù)據(jù)加載至該用戶可存取 寄存器組,其中該第 一與第二微指令為該微處理器的微指令集的多個微指令 中的兩個^L指令。
12. 如權(quán)利要求11所述的在微處理器中存儲數(shù)據(jù)的方法,其還包括下列 步驟執(zhí)行該第 一微指令,用以將非用戶可存取寄存器組的數(shù)據(jù)存儲至該隨機 存取存儲器,其中該非用戶可存取寄存器組不如該隨機存取存儲器密集,且 存取速度比該隨機存取存儲器快;以及執(zhí)行該第二微指令,用以將該隨機存取存儲器的數(shù)據(jù)加載至該非用戶可 存取寄存器組。
13. 如權(quán)利要求11所述的在微處理器中存儲數(shù)據(jù)的方法,其還包括下列 步驟解碼x86架構(gòu)的VMX V匿RITE指令;以及執(zhí)行一個或多個該第一微指令,以存儲一部分的虛擬機器延伸虛擬控制架構(gòu)至該隨機存取存儲器。
14. 如權(quán)利要求11所述的在微處理器中存儲數(shù)據(jù)的方法,其還包括下列步驟解碼x86架構(gòu)的VMX VMREAD指令;以及執(zhí)行一個或多個該第二微指令,以從該隨機存取存儲器加載一部分的虛 擬機器延伸虛擬控制架構(gòu)。
15. 如權(quán)利要求11所述的在微處理器中存儲數(shù)據(jù)的方法,其還包括下列 步驟解碼x86架構(gòu)的RSM指令;以及執(zhí)行一個或多個該第一微指令,以存儲系統(tǒng)管理模式基地址至該隨機存 取存儲器。
16. 如權(quán)利要求11所述的在微處理器中存儲數(shù)據(jù)的方法,其還包括下列 步驟接收x86架構(gòu)的系統(tǒng)管理中斷指令;以及執(zhí)行一個或多個該第二微指令,以從該隨機存取存儲器加載系統(tǒng)管理模 式基地址。
17. 如權(quán)利要求11所述的在微處理器中存儲數(shù)據(jù)的方法,其還包括下列 步驟解碼指定x86架構(gòu)的IA32 —SYSENTER-CS特別模塊寄存器為目的特別模 塊寄存器的x86架構(gòu)的TOMSR指令;以及執(zhí)行一個或多個該第一微指令,以存儲特權(quán)階級G碼數(shù)據(jù)段值的數(shù)據(jù)段 選擇器至該隨機存取存儲器。
18. 如權(quán)利要求11所述的在微處理器中存儲數(shù)據(jù)的方法,其還包括下列 步驟解碼指定x86架構(gòu)的IA32_SYSENTER_CS特別模塊寄存器為來源特別模 塊寄存器的x86架構(gòu)的R畫SR指令;以及執(zhí)行一個或多個該第二微指令,以從該隨機存取存儲器加載特權(quán)階級0 碼數(shù)據(jù)段值的數(shù)據(jù)段選擇器。
19. 如權(quán)利要求11所述的在微處理器中存儲數(shù)據(jù)的方法,其還包括下列 步驟執(zhí)行該第一或第二微指令以將該隨機存取存儲器作為暫時存儲區(qū),以存 儲微代碼的計算結(jié)果。
全文摘要
一種微處理器,包括用戶可存取寄存器組、隨機存取存儲器與微代碼。該隨機存取存儲器位于該微處理器的非用戶可存取地址空間內(nèi),其中該隨機存取存儲器比該用戶可存取寄存器組密集,且存取速度比該用戶可存取寄存器組慢。該微代碼包括多個該微處理器的微指令集的多個微指令。該微指令集包括第一微指令與第二微指令。該第一微指令用以將該用戶可存取寄存器組的數(shù)據(jù)存儲至該隨機存取存儲器。該第二微指令用以將該隨機存取存儲器的數(shù)據(jù)加載至該用戶可存取寄存器組。
文檔編號G06F9/24GK101261577SQ200810088649
公開日2008年9月10日 申請日期2008年4月10日 優(yōu)先權(quán)日2007年4月10日
發(fā)明者G·葛蘭·亨利, 柯林·艾迪, 泰瑞·派克斯, 羅德尼·E·虎克 申請人:威盛電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1