亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

上下文狀態(tài)管理技術(shù)的制作方法

文檔序號(hào):6562281閱讀:139來(lái)源:國(guó)知局
專利名稱:上下文狀態(tài)管理技術(shù)的制作方法
技術(shù)領(lǐng)域
本發(fā)明的實(shí)施例涉及微處理器架構(gòu),尤其涉及在微處理器內(nèi)管理上下文狀態(tài)信息。
背景技術(shù)
現(xiàn)代微處理器可執(zhí)行要求改變上下文狀態(tài)的許多功能。例如,微處理器可當(dāng)在諸如軟件“線程”的指令組之間進(jìn)行切換時(shí)改變上下文狀態(tài)信息。例如,在軟件線程之間改變時(shí),一組指令的上下文狀態(tài)可保持于一存儲(chǔ)器位置且另一組指令的上下文狀態(tài)可從存儲(chǔ)器恢復(fù)并載入微處理器。
參考軟件線程,“上下文狀態(tài)”可表示處理器內(nèi)上下文切換之間要保持的每個(gè)軟件線程的狀態(tài)的一部分。上下文狀態(tài)可存入處理器架構(gòu)寄存器、控制寄存器或諸如存儲(chǔ)器的其它存儲(chǔ)區(qū)。上下文狀態(tài)通常由大量比特表示,這些比特的值定義了特殊的上下文狀態(tài)。
術(shù)語(yǔ)“上下文切換”通常表示從一個(gè)處理器執(zhí)行狀態(tài)變到另一個(gè),諸如軟件線程切換。上下文切換通常由操作系統(tǒng)或由用戶的程序來(lái)執(zhí)行。例如,上下文切換可因調(diào)用用戶程序內(nèi)的子例程而發(fā)生,其中當(dāng)發(fā)生對(duì)子例程的調(diào)用時(shí)調(diào)用程序的上下文被保存于諸如“堆棧”的存儲(chǔ)區(qū)中,且當(dāng)從所調(diào)用的子例程返回時(shí)從該存儲(chǔ)區(qū)恢復(fù)。
通常,由于存儲(chǔ)器中上下文狀態(tài)保存區(qū)域的組織結(jié)構(gòu)以及與這些保存區(qū)域被尋址的粒度大小,以可包括在給定時(shí)間上所需的更多上下文狀態(tài)信息的組將上下文狀態(tài)保存在存儲(chǔ)器中或恢復(fù)到處理器寄存器。結(jié)果,每次從存儲(chǔ)器恢復(fù)上下文狀態(tài)時(shí),會(huì)替換大量不必要的處理器狀態(tài)信息。例如,操作系統(tǒng)或用戶程序可僅請(qǐng)求屬于處理器內(nèi)執(zhí)行的特殊軟件線程或其它進(jìn)程的上下文狀態(tài)信息的子集。然而,現(xiàn)有技術(shù)的上下文狀態(tài)保存和恢復(fù)機(jī)制會(huì)要求屬于一線程或其它進(jìn)程的所有上下文狀態(tài)被恢復(fù)和/或保存,以檢索屬于所關(guān)心的線程或進(jìn)程的任何上下文狀態(tài)信息。
因此,現(xiàn)有技術(shù)的上下文狀態(tài)管理技術(shù)導(dǎo)致性能和資源的低效率。


附圖中,作為示例而非限制來(lái)說(shuō)明本發(fā)明的實(shí)施例,圖中相同的標(biāo)號(hào)表示相似的元件,其中圖1是示出根據(jù)本發(fā)明一個(gè)實(shí)施例的具有保存區(qū)域片段的保存區(qū)域的示圖。
圖2是示出根據(jù)本發(fā)明一個(gè)實(shí)施例的使用保存狀態(tài)片段的操作的示圖。
圖3示出了其中使用中的比特矢量被用于緩和空恢復(fù)和空保存操作的至少一個(gè)實(shí)施例的操作。
圖4是示出根據(jù)本發(fā)明一個(gè)實(shí)施例的指示和檢測(cè)保存區(qū)片段內(nèi)的錯(cuò)誤的技術(shù)的流程圖。
圖5是其中可使用本發(fā)明的至少一個(gè)實(shí)施例的共享總線計(jì)算機(jī)系統(tǒng)。
圖6是其中可使用本發(fā)明的至少一個(gè)實(shí)施例的點(diǎn)對(duì)點(diǎn)計(jì)算機(jī)系統(tǒng)。
具體實(shí)施例方式
本發(fā)明的實(shí)施例涉及微處理器架構(gòu)。更具體地,本發(fā)明的實(shí)施例涉及管理處理器上下文狀態(tài)。本發(fā)明的至少一個(gè)實(shí)施例將擴(kuò)展功能引入某些現(xiàn)有技術(shù)的上下文狀態(tài)管理技術(shù),以便在讀取和更新微處理器內(nèi)的上下文狀態(tài)信息時(shí)提升資源和性能效率。
操作系統(tǒng)和/或用戶程序通常使用諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)的存儲(chǔ)器結(jié)構(gòu)中的區(qū)域(“保存區(qū)”),用于在上下文切換時(shí)存儲(chǔ)上下文狀態(tài)。在其它現(xiàn)有技術(shù)的系統(tǒng)中,諸如異常處理機(jī)的一些軟件例程可按需要(動(dòng)態(tài)地)在諸如堆棧的存儲(chǔ)器存儲(chǔ)區(qū)內(nèi)分配該保存區(qū)。指令集架構(gòu)通常定義一個(gè)獲得多個(gè)指令來(lái)處理存儲(chǔ)器中上下文狀態(tài)的存儲(chǔ)或者從存儲(chǔ)器的上下文狀態(tài)的恢復(fù)。例如,在一個(gè)指令集架構(gòu)中,兩個(gè)指令(例如,“FXSAVE”和“FXRSTOR”)可用于分別地將上下文狀態(tài)存入存儲(chǔ)器并從存儲(chǔ)器向處理器的寄存器恢復(fù)上下文狀態(tài)。在其它指令集架構(gòu)中,可使用兩個(gè)以上或以下的指令來(lái)管理上下文狀態(tài)信息。
在本發(fā)明部分的至少一個(gè)實(shí)施例中,定義保存區(qū)的“片段”或“分段”,它們可被初始化并被用于在不初始化、保存或恢復(fù)整個(gè)保存區(qū)的情況下存儲(chǔ)和訪問(wèn)上下文狀態(tài)信息。在本發(fā)明的一個(gè)實(shí)施例中,允許訪問(wèn)上下文狀態(tài)保存區(qū)的片段節(jié)省了用于更新、初始化或讀取上下文狀態(tài)信息所必需的時(shí)間量和存儲(chǔ)區(qū)。
此外,在本發(fā)明的至少一個(gè)實(shí)施例中,提供保存區(qū)內(nèi)的“使用中”比特或使用中比特組(“比特矢量”),以指示特定的保存區(qū)片段或保存區(qū)片段組是否包含有效信息。使用中的比特或比特矢量可通過(guò)消除在從存儲(chǔ)器向處理器寄存器恢復(fù)上下文狀態(tài)后進(jìn)行有效性檢查的需要而進(jìn)一步提升上下文狀態(tài)管理效率。相反,使用中的比特或比特矢量可簡(jiǎn)單地被讀取,確定相應(yīng)的片段是否包含有效信息。
本發(fā)明的實(shí)施例還可包括一種機(jī)制,用于在片段內(nèi)保存包含的用于確定該片段是否已被初始化的上下文狀態(tài)信息之前確定保存區(qū)片段是否已被初始化。在一個(gè)實(shí)施例中,可通過(guò)讀取與該片段相關(guān)聯(lián)的初始化比特來(lái)檢查保存區(qū)片段以確定它是否已被初始化。更具體地,在本發(fā)明的一個(gè)實(shí)施例中,使用中比特或比特矢量可用于確定特殊片段是否已被初始化。在一個(gè)實(shí)施例中,上下文狀態(tài)由將一個(gè)或多個(gè)片段寫(xiě)為初始值的軟件例程(例如“微碼”)初始化,而在其它實(shí)施例中,處理器可包括用于初始化上下文狀態(tài)的邏輯。
這里將描述各種實(shí)施例的其它特點(diǎn),其中包括用于清除上下文狀態(tài)信息的保存區(qū)片段的機(jī)制、用于檢測(cè)和處理上下文狀態(tài)保存區(qū)片段內(nèi)的錯(cuò)誤的機(jī)制、以及用于啟用和管理其狀態(tài)在一個(gè)或多個(gè)上下文狀態(tài)保存區(qū)片段中反映的附加架構(gòu)特征的機(jī)制。具體地,將描述關(guān)于監(jiān)視處理器的各種性能方面的至少一個(gè)架構(gòu)特征,它們可使用這里所述的各種上下文狀態(tài)管理特征和技術(shù)。
此外,本發(fā)明的至少一個(gè)實(shí)施例可包括模塊架構(gòu),用以允許實(shí)現(xiàn)擴(kuò)展數(shù)量的上下文狀態(tài)保存區(qū)片段以存儲(chǔ)與處理器的其它特征相關(guān)的上下文信息。此外,在一個(gè)實(shí)施例中,擴(kuò)展數(shù)量的上下文狀態(tài)保存區(qū)片段和相應(yīng)的上下文狀態(tài)信息可按對(duì)處理器正執(zhí)行的操作系統(tǒng)透明的方式被包括。換言之,至少一個(gè)實(shí)施例包括上下文狀態(tài)管理技術(shù),該技術(shù)不必涉及在使用本發(fā)明實(shí)施例的處理器上對(duì)正在執(zhí)行的操作系統(tǒng)的修改或?qū)υ摬僮飨到y(tǒng)的通知。
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的包括保存區(qū)片段的保存區(qū)。特別是,保存區(qū)100是被分成“n”個(gè)片段的512字節(jié)的緩沖器。在圖1所示的實(shí)施例中,每個(gè)片段是512/n個(gè)字節(jié),但在其它實(shí)施例中根據(jù)存儲(chǔ)區(qū)的大小以及片段數(shù)量,每個(gè)片段可以更大或更小。圖1所示的每個(gè)片段可存儲(chǔ)不同類型的上下文狀態(tài)信息,其示例將在以下進(jìn)一步描述。在一個(gè)實(shí)施例中,保存區(qū)100包括首部區(qū)105,它包含使用中比特矢量來(lái)指示每個(gè)片段的狀態(tài)信息。
在一個(gè)實(shí)施例中,保存區(qū)片段表示其中可保存、初始化和恢復(fù)上下文狀態(tài)信息的保存區(qū)中存儲(chǔ)的最小粒度尺寸。在至少一個(gè)實(shí)施例中,可相互獨(dú)立地初始化、使用和管理保存區(qū)片段。此外,當(dāng)需要附加上下文狀態(tài)的新架構(gòu)特征被添加到圖1的保存區(qū)相對(duì)應(yīng)的處理器時(shí),可相應(yīng)地添加新的保存區(qū)片段。然而,在一些實(shí)施例中,單個(gè)保存區(qū)片段可包括與一個(gè)或多個(gè)特征(包括添加的特征)相關(guān)聯(lián)的上下文狀態(tài)信息。
保存區(qū)片段還可被復(fù)位到初始狀態(tài)而不影響其它片段的狀態(tài),諸如在恢復(fù)操作、錯(cuò)誤恢復(fù)操作期間。例如,在一個(gè)實(shí)施例中,如果執(zhí)行恢復(fù)操作,未由恢復(fù)操作更新的所有處理器上下文狀態(tài)都被設(shè)定為初始化狀態(tài)。該初始化的處理器上下文狀態(tài)隨后可存儲(chǔ)回它們相應(yīng)的保存區(qū)片段。
根據(jù)所使用的計(jì)算機(jī)系統(tǒng)的需要,可以實(shí)現(xiàn)用于圖1所示的保存區(qū)片段的許多示例。在本發(fā)明的一個(gè)實(shí)施例中,可以分別避免將狀態(tài)上下文保存到保存區(qū)片段及從保存區(qū)片段恢復(fù)狀態(tài)上下文,即通過(guò)確保上下文狀態(tài)在上下文保存操作和上下文恢復(fù)操作之間或當(dāng)處理器被復(fù)位時(shí)被置于初始化狀態(tài)而處于初始化狀態(tài)中。
例如,圖2示出了使用至少一個(gè)保存區(qū)片段存儲(chǔ)信息以指示相應(yīng)的上下文狀態(tài)信息(“狀態(tài)元素”)何時(shí)在使用中或另外有效的操作。特別地,圖2示出了保存區(qū)200中存儲(chǔ)的三個(gè)上下文狀態(tài)區(qū)片段201、203、205內(nèi)的三個(gè)不同的上下文狀態(tài),以及根據(jù)時(shí)間將它們恢復(fù)入機(jī)器狀態(tài)210。參考圖2,在圖2所示的機(jī)器上下文狀態(tài)210的實(shí)例中初始化的上下文狀態(tài)由“I”表示,而在使用中的上下文狀態(tài)實(shí)例由“U”表示。
在時(shí)間實(shí)例“1”處,機(jī)器上下文狀態(tài)處于由“I”表示的初始化狀態(tài),而在時(shí)間實(shí)例“2”,機(jī)器上下文經(jīng)由處理器中執(zhí)行的指令被更改為由“U”表示的第一上下文狀態(tài)。在時(shí)間實(shí)例“3”處,第一上下文狀態(tài)被存儲(chǔ)到上下文狀態(tài)區(qū)片段201,且在時(shí)間實(shí)例“4”處相應(yīng)的機(jī)器上下文狀態(tài)被再次初始化或“清零”,由“I”表示。在時(shí)間實(shí)例“5”,將第二上下文狀態(tài)從保存區(qū)片段203恢復(fù)到機(jī)器狀態(tài)且機(jī)器狀態(tài)再次在使用中,由“U”指示。在時(shí)間實(shí)例“6”,機(jī)器狀態(tài)再次經(jīng)由處理器中執(zhí)行的指令被更改,且在時(shí)間實(shí)例“7”,將機(jī)器狀態(tài)存儲(chǔ)到上下文保存區(qū)片段203。在時(shí)間實(shí)例“8”,機(jī)器上下文狀態(tài)再次被初始化到初始狀態(tài)值,且機(jī)器上下文狀態(tài)在時(shí)間實(shí)例“8”被標(biāo)記為不使用。類似地,在時(shí)間實(shí)例“9”,執(zhí)行保存區(qū)片段205中存儲(chǔ)的上下文狀態(tài)的空恢復(fù),該操作不用新?tīng)顟B(tài)信息更新機(jī)器上下文狀態(tài)。在時(shí)間實(shí)例“10”,處理器不用任何新信息更新機(jī)器上下文狀態(tài),因而在時(shí)間實(shí)例“11”,執(zhí)行空存儲(chǔ)以將機(jī)器上下文狀態(tài)(是初始化狀態(tài))存回保存區(qū)片段205。
在本發(fā)明的一個(gè)實(shí)施例中,可通過(guò)檢測(cè)與被保存或恢復(fù)的上下文狀態(tài)相對(duì)應(yīng)的“使用中”比特的狀態(tài)來(lái)替換空保存操作(即,將不使用的、初始化的或另外無(wú)效的機(jī)器上下文保存到保存區(qū)片段的那些操作)和/或空恢復(fù)操作(即,從保存區(qū)片段將不使用的、初始化的或另外無(wú)效的上下文狀態(tài)恢復(fù)到機(jī)器狀態(tài)的那些操作)。例如,在一個(gè)實(shí)施例中,使用中比特矢量在保存區(qū)內(nèi)維持,以指示一個(gè)或多個(gè)保存區(qū)片段內(nèi)的上下文狀態(tài)信息是否包含不使用或另外無(wú)效的信息用于在上下文狀態(tài)不使用或另外無(wú)效的情況下使上下文狀態(tài)不必從保存區(qū)片段讀出到機(jī)器狀態(tài)。
同樣,使用中比特矢量可協(xié)同處理器內(nèi)的機(jī)器狀態(tài)加以維護(hù)以指示機(jī)器狀態(tài)內(nèi)的上下文狀態(tài)信息是否是不使用的或另外無(wú)效的,以使在上下文狀態(tài)不使用或另外無(wú)效的情況下該上下文狀態(tài)不必從機(jī)器狀態(tài)存入保存區(qū)片段。在一些實(shí)施例中,可為保存區(qū)片段和機(jī)器狀態(tài)兩者維持一使用中的比特矢量,而在其它實(shí)施例中,可為保存區(qū)片段和機(jī)器狀態(tài)中的任一個(gè)或兩者維持一個(gè)使用中比特矢量。
在一個(gè)實(shí)施例中,一個(gè)或多個(gè)指令可用于更新使用中的比特矢量,以指示與特殊保存區(qū)片段相對(duì)應(yīng)的上下文狀態(tài)信息是否在使用中。例如,在一個(gè)實(shí)施例中,一個(gè)指令(例如,一個(gè)指令集架構(gòu)中的“STMXCSR”)可由處理器執(zhí)行,以設(shè)定該使用中比特矢量來(lái)指示與一個(gè)或多個(gè)保存區(qū)片段相對(duì)應(yīng)的狀態(tài)信息當(dāng)前在使用中或者指示該保存區(qū)片段另外包含有效數(shù)據(jù)。
圖3示出了一個(gè)實(shí)施例的操作,其中為保存區(qū)片段和機(jī)器狀態(tài)維持使用中的比特矢量。圖3類似于圖2,區(qū)別在于保存區(qū)包含條目數(shù)等于保存區(qū)片段數(shù)的使用中比特矢量320。在一個(gè)實(shí)施例中,每個(gè)使用中矢量320條目包含一個(gè)比特用于指示例如當(dāng)初始化片段時(shí)相應(yīng)的保存區(qū)片段是否包含有效信息或者它是否包含無(wú)效信息。類似地,為機(jī)器狀態(tài)維持一使用中比特矢量325,以指示例如當(dāng)將機(jī)器狀態(tài)置入初始狀態(tài)時(shí)與特殊保存區(qū)片段相對(duì)應(yīng)的機(jī)器狀態(tài)是否包含有效信息或者與特殊保存區(qū)片段相對(duì)應(yīng)的機(jī)器狀態(tài)是否是無(wú)效的。
在圖3所示的實(shí)施例中,空保存和空恢復(fù)操作是不必要的,因?yàn)樵趫?zhí)行空保存或空恢復(fù)操作之前程序或邏輯可首先檢測(cè)狀態(tài)信息是有效的還是無(wú)效的。在一個(gè)實(shí)施例中,如果空保存或空恢復(fù)操作對(duì)應(yīng)于無(wú)效的狀態(tài)信息,則不需要執(zhí)行任何空保存或空恢復(fù)操作,節(jié)省了操作周期。
在本發(fā)明的一個(gè)實(shí)施例中,當(dāng)監(jiān)視微處理器內(nèi)的各種事件或“情況”時(shí),分別地將上下文狀態(tài)信息存儲(chǔ)到存儲(chǔ)區(qū)片段或從存儲(chǔ)區(qū)片段恢復(fù)上下文狀態(tài)信息。例如,在一個(gè)實(shí)施例中,在情況專用組或“信道”中維持機(jī)器狀態(tài)。信道可保存配置信息,包括處理器內(nèi)要監(jiān)視的條件(“觸發(fā)”條件),以及應(yīng)響應(yīng)于其采取的動(dòng)作,諸如異步地將控制轉(zhuǎn)移到軟件線程內(nèi)的某一指令地址。此外,在一個(gè)實(shí)施例中,信道可以是有效或無(wú)效的,且如果信道不是有效的,則該信道可以被保存或恢復(fù)或者不可以被保存或恢復(fù)。
在一個(gè)實(shí)施例中,通過(guò)執(zhí)行一指令來(lái)編程信道信息,該指令可使用諸如32或64位寄存器的寄存器中存儲(chǔ)的輸入。除了信道信息之外,上下文狀態(tài)信息還可包括可應(yīng)用于一個(gè)或多個(gè)信道的首部信息。根據(jù)一個(gè)實(shí)施例,以下示出了用于兩個(gè)信道的上下文狀態(tài)信息和相應(yīng)的首部信息,它們可存儲(chǔ)在存儲(chǔ)區(qū)片段中或可恢復(fù)到處理器上下文狀態(tài)

上表中示出的88個(gè)字節(jié)的上下文狀態(tài)信息包括與其上下文狀態(tài)信息分別包含在比特32-63和64-95中的兩個(gè)信道有關(guān)的0-7比特的首部信息。在一個(gè)實(shí)施例中,除其它信息之外,首部信息可包括每個(gè)信道的使用中比特。此外,以上上下文狀態(tài)信息包括8-15比特中的指令指針和比特16-31中的保留字段。
在一些實(shí)施例中,每個(gè)保存區(qū)片段可具有相應(yīng)的有效性指示符,用于指示錯(cuò)誤數(shù)據(jù)是否被存入相應(yīng)的保存區(qū)片段,從而允許響應(yīng)于此采取各種動(dòng)作。例如,在一個(gè)實(shí)施例中,響應(yīng)于在保存區(qū)片段內(nèi)檢測(cè)到錯(cuò)誤,軟件、硬件邏輯或其某一組合可實(shí)現(xiàn)一算法來(lái)執(zhí)行各種操作,包括以下的一個(gè)或多個(gè)1)初始化包含錯(cuò)誤的保存區(qū)片段,2)初始化與一些或全部保存區(qū)片段相對(duì)應(yīng)的處理器狀態(tài)信息。此外,在一個(gè)實(shí)施例中,可響應(yīng)于檢測(cè)到上下文狀態(tài)首部字段或除保存區(qū)片段外的其它字段內(nèi)的一區(qū)域來(lái)初始化處理器狀態(tài)。
在一個(gè)實(shí)施例中,當(dāng)保存區(qū)片段被恢復(fù)到處理器狀態(tài)時(shí),可能檢測(cè)到錯(cuò)誤。響應(yīng)于檢測(cè)到錯(cuò)誤的情況,使用中比特可指示該片段無(wú)效,且因此使用中比特隨后在該片段被存儲(chǔ)到存儲(chǔ)器時(shí)被清零。因此,在一個(gè)實(shí)施例中,從使用中比特的觀察者的角度或許不能區(qū)別片段是否由于錯(cuò)誤或由于缺少初始化而被指示為是無(wú)效的。
在一個(gè)實(shí)施例中,使用中比特矢量被用于反映每個(gè)保存區(qū)片段中存儲(chǔ)的狀態(tài)信息的有效性。例如,在每個(gè)保存區(qū)片段對(duì)應(yīng)于特別事件監(jiān)視信道的情況中,如以上討論的表中所示的,首部信息可包含使用中比特矢量,其比特各自指示保存區(qū)片段中保存的相應(yīng)一組信道信息的有效性。指示保存區(qū)片段是否包含錯(cuò)誤可幫助軟件或處理器硬件確定是否恢復(fù)和后續(xù)使用包含在其中的上下文狀態(tài)信息。
圖4是示出根據(jù)本發(fā)明一個(gè)實(shí)施例的當(dāng)在保存區(qū)片段內(nèi)指示和檢測(cè)到錯(cuò)誤時(shí)可執(zhí)行的各種操作的流程圖。在操作401,保存區(qū)片段內(nèi)出現(xiàn)的錯(cuò)誤由使用中比特矢量中的相應(yīng)比特反映。在一個(gè)實(shí)施例中,使用中比特矢量可在與一定數(shù)目的事件監(jiān)視信道相對(duì)應(yīng)的保存區(qū)的首部字段內(nèi)。在其它實(shí)施例中,使用中比特矢量可與同各種軟件線程相對(duì)應(yīng)的保存區(qū)片段一起被存儲(chǔ)。
在操作405,在從保存區(qū)片段向機(jī)器狀態(tài)恢復(fù)上下文狀態(tài)信息之前檢測(cè)使用中比特。如果在410處在保存區(qū)片段中檢測(cè)到錯(cuò)誤,則在操作415,包含錯(cuò)誤的保存區(qū)片段內(nèi)存儲(chǔ)的上下文狀態(tài)信息不被恢復(fù)到機(jī)器狀態(tài)。另外地,在操作420,將檢測(cè)使用中比特的保存區(qū)片段內(nèi)存儲(chǔ)的上下文狀態(tài)信息恢復(fù)到機(jī)器狀態(tài)。在一個(gè)實(shí)施例中,可將使用中比特與掩碼字段進(jìn)行比較,以檢測(cè)相應(yīng)保存區(qū)片段內(nèi)的錯(cuò)誤,而在其它實(shí)施例中可使用其它檢測(cè)方法。
在一些實(shí)施例中,保存、恢復(fù)和/或初始化操作(例如指令)可使用掩碼字段來(lái)更改或讀取保存區(qū)片段的內(nèi)容。例如,在一個(gè)實(shí)施例中,其條目對(duì)應(yīng)于使用中比特矢量條目的掩碼字段可以是布爾邏輯操作(例如,XOR、AND、OR)的操作數(shù),其結(jié)果可確定使用中比特矢量的狀態(tài)并由此確定各種片段的有效性。
圖5示出了可使用本發(fā)明的一個(gè)實(shí)施例的前端總線(FSB)計(jì)算機(jī)系統(tǒng)。處理器505從一級(jí)(L1)高速緩沖存儲(chǔ)器510和主存儲(chǔ)器515訪問(wèn)數(shù)據(jù)。在本發(fā)明的其它實(shí)施例中,高速緩沖存儲(chǔ)器可以是二級(jí)(L2)高速緩存或計(jì)算機(jī)系統(tǒng)存儲(chǔ)器分層結(jié)構(gòu)中的其它存儲(chǔ)器。此外,在一些實(shí)施例中,圖5的計(jì)算機(jī)系統(tǒng)可同時(shí)包含L1高速緩存和L2高速緩存。
圖5的處理器內(nèi)示出的是機(jī)器狀態(tài)的存儲(chǔ)區(qū)域506。在一個(gè)實(shí)施例中,存儲(chǔ)區(qū)域可以是一組寄存器,而在其它實(shí)施例中,該存儲(chǔ)區(qū)域可以是其它存儲(chǔ)器結(jié)構(gòu)。此外,根據(jù)一個(gè)實(shí)施例,圖5中示出了保存區(qū)片段的存儲(chǔ)區(qū)域507。在其它實(shí)施例中,保存區(qū)片段可以在其它裝置或存儲(chǔ)器結(jié)構(gòu)中。處理器可具有任意數(shù)量的處理核心。然而,本發(fā)明的其它實(shí)施例可在系統(tǒng)內(nèi)的其它裝置內(nèi)實(shí)現(xiàn),諸如分開(kāi)的總線代理;或者以硬件、軟件或其組合分布在整個(gè)系統(tǒng)中。
主存儲(chǔ)器可以在各種存儲(chǔ)器源中實(shí)現(xiàn),諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、硬盤(pán)驅(qū)動(dòng)器(HDD)520或包含各種存儲(chǔ)裝置和技術(shù)的經(jīng)由網(wǎng)絡(luò)接口530而遠(yuǎn)離計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器源。高速緩沖存儲(chǔ)器可位于處理器內(nèi)或靠近處理器,諸如在處理器的本地總線507上。
此外,高速緩沖存儲(chǔ)器可包含相對(duì)較快的存儲(chǔ)器單元,諸如六個(gè)晶體管(6T)單元或者近似相等或更快訪問(wèn)速度的其它存儲(chǔ)器單元。圖5的計(jì)算機(jī)系統(tǒng)可以是總線代理的點(diǎn)對(duì)點(diǎn)(PtP)網(wǎng)絡(luò),諸如微處理器,它們經(jīng)由專屬于PtP網(wǎng)絡(luò)上的每個(gè)代理的總線信號(hào)進(jìn)行通信。圖6示出了在點(diǎn)對(duì)點(diǎn)(PtP)配置中安排的計(jì)算機(jī)系統(tǒng)。特別地,圖6示出了一種系統(tǒng),其中處理器、存儲(chǔ)器和輸入/輸出設(shè)備通過(guò)一些點(diǎn)對(duì)點(diǎn)接口互連。
圖6的系統(tǒng)還可以包括若干處理器,為清楚起見(jiàn)僅示出其中的兩個(gè)處理器670和680。處理器670和680可各自包括本地存儲(chǔ)器控制器集線器(MCH)672、682,以與存儲(chǔ)器22、24相連。處理器670、680可經(jīng)由點(diǎn)對(duì)點(diǎn)(PtP)接口650使用PtP接口電路678和688交換數(shù)據(jù)。處理器670、680可各自經(jīng)由單獨(dú)的PtP接口652、653使用點(diǎn)對(duì)點(diǎn)接口電路676、694、686、698與芯片組690交換數(shù)據(jù)。芯片級(jí)690還可經(jīng)由高性能圖形接口639與高性能圖形電路638交換數(shù)據(jù)。本發(fā)明的實(shí)施例可位于具有任意數(shù)量處理核心的任一處理器內(nèi)或者在圖6的每個(gè)PtP總線代理內(nèi)。
然而,本發(fā)明的其它實(shí)施例可存在于其它電路、邏輯單元或圖6系統(tǒng)內(nèi)的設(shè)備中。此外,在本發(fā)明的其它實(shí)施例中,可以被分布在遍及圖6所示的若干電路、邏輯單元或設(shè)備中。
本發(fā)明實(shí)施例的各個(gè)方面可使用互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)電路或邏輯裝置(硬件)來(lái)實(shí)現(xiàn),同時(shí)其它方面可使用機(jī)器可讀介質(zhì)上存儲(chǔ)的指令(軟件)來(lái)實(shí)現(xiàn),這些指令在由處理器執(zhí)行時(shí)將使得處理器執(zhí)行一方法以實(shí)施本發(fā)明的實(shí)施例。此外,本發(fā)明的一些實(shí)施例可單獨(dú)用硬件實(shí)行,而其它實(shí)施例可單獨(dú)用軟件實(shí)行。
雖然已參考說(shuō)明性實(shí)施例描述了本發(fā)明,但該描述并非旨在是限制性的。本領(lǐng)域熟練技術(shù)人員顯而易見(jiàn)的說(shuō)明書(shū)實(shí)施例和其它實(shí)施例的各種修改都被認(rèn)為在本發(fā)明的精神和范圍內(nèi)。
權(quán)利要求
1.一種裝置,包括包括多個(gè)片段用于存儲(chǔ)多個(gè)處理器上下文狀態(tài)信息的保存區(qū),其中所述多個(gè)片段的每一個(gè)中存儲(chǔ)的上下文狀態(tài)信息可獨(dú)立于所述多個(gè)片段中的其它片段中存儲(chǔ)的其它上下文狀態(tài)信息被恢復(fù)到處理器上下文狀態(tài)。
2.如權(quán)利要求1所述的裝置,其特征在于,所述保存區(qū)還包括使用中比特矢量。
3.如權(quán)利要求2所述的裝置,其特征在于,所述使用中比特矢量的每個(gè)條目指示相應(yīng)片段內(nèi)存儲(chǔ)的信息是否要被用作處理器上下文狀態(tài)。
4.如權(quán)利要求2所述的裝置,其特征在于,所述使用中比特矢量的每個(gè)條目是要指示相應(yīng)片段內(nèi)存儲(chǔ)的信息是否是有效信息。
5.如權(quán)利要求2所述的裝置,其特征在于,所述使用中比特矢量的每個(gè)條目是要指示相應(yīng)片段內(nèi)存儲(chǔ)的信息是否在使用中。
6.如權(quán)利要求1所述的裝置,其特征在于,所述多個(gè)片段的每一個(gè)中存儲(chǔ)的上下文狀態(tài)信息可獨(dú)立于在所述多個(gè)片段的其它片段中存儲(chǔ)其它上下文狀態(tài)信息而被保存到一片段。
7.如權(quán)利要求5所述的裝置,其特征在于,如果所述使用中比特矢量條目中的任一個(gè)指示一錯(cuò)誤,則與錯(cuò)誤相對(duì)應(yīng)的片段內(nèi)存儲(chǔ)的上下文狀態(tài)信息將不被恢復(fù)到處理器的機(jī)器上下文狀態(tài)。
8.如權(quán)利要求2所述的裝置,其特征在于,在將所述多個(gè)片段內(nèi)的上下文狀態(tài)信息恢復(fù)到所述處理器的機(jī)器上下文狀態(tài)之前,要檢查所述使用中比特矢量條目的狀態(tài)。
9.一種方法,包括檢查包括與多個(gè)保存區(qū)片段相對(duì)應(yīng)的多個(gè)條目的使用中比特矢量;確定所述使用中比特矢量?jī)?nèi)的條目處于第一狀態(tài)還是第二狀態(tài);僅當(dāng)所述條目處于所述第一狀態(tài)時(shí),將與所述條目相對(duì)應(yīng)的所述多個(gè)片段之一內(nèi)的上下文狀態(tài)信息恢復(fù)到處理器的機(jī)器上下文狀態(tài);如果所述條目處于所述第二狀態(tài),則忽略與所述條目相對(duì)應(yīng)的所述多個(gè)片段之一內(nèi)的上下文狀態(tài)信息。
10.如權(quán)利要求9所述的方法,其特征在于,所述條目指示所述多個(gè)片段之一內(nèi)的所述相應(yīng)上下文狀態(tài)信息是否有效。
11.如權(quán)利要求9所述的方法,其特征在于,還包括確定所述多個(gè)片段之一內(nèi)的相應(yīng)上下文狀態(tài)信息是否錯(cuò)誤,且如果是這樣,則執(zhí)行由以下操作構(gòu)成的操作組中的任一個(gè)或全部初始化包含錯(cuò)誤的所述多個(gè)片段中的一個(gè),初始化與包含錯(cuò)誤的所述多個(gè)片段中的一些或全部相對(duì)應(yīng)的處理器狀態(tài)信息,初始化與包含錯(cuò)誤的所述多個(gè)片段中的一個(gè)或多個(gè)相對(duì)應(yīng)的首部信息。
12.如權(quán)利要求9所述的方法,其特征在于,還包括如果所述條目處于所述第二狀態(tài),則將與所述條目相對(duì)應(yīng)的所述多個(gè)片段之一內(nèi)的上下文狀態(tài)信息置入初始化狀態(tài)。
13.如權(quán)利要求9所述的方法,其特征在于,在將所述多個(gè)片段內(nèi)的任意上下文狀態(tài)信息恢復(fù)到所述處理器的機(jī)器狀態(tài)之前,檢查所述使用中比特矢量。
14.如權(quán)利要求9所述的方法,其特征在于,通過(guò)將其中的所述條目與比特掩碼字段進(jìn)行比較來(lái)檢查所述使用中比特矢量。
15.如權(quán)利要求9所述的方法,其特征在于,還包括在將所述處理器的機(jī)器狀態(tài)保存到所述多個(gè)片段之一前,檢查第二使用中比特矢量。
16.如權(quán)利要求15所述的方法,其特征在于,僅當(dāng)所述第二使用中比特矢量的條目指示機(jī)器狀態(tài)有效時(shí),將所述處理器的機(jī)器狀態(tài)保存到所述多個(gè)片段之一。
17.如權(quán)利要求15所述的方法,其特征在于,僅當(dāng)所述第二使用中比特矢量的條目指示機(jī)器狀態(tài)無(wú)效時(shí),將所述處理器的機(jī)器狀態(tài)保存到所述多個(gè)片段之一。
18.一種系統(tǒng),包括處理器,用于存儲(chǔ)多個(gè)機(jī)器狀態(tài)信息和其條目各自對(duì)應(yīng)于所述多個(gè)機(jī)器狀態(tài)信息之一的第一使用中比特矢量;存儲(chǔ)器,用于存儲(chǔ)包含多個(gè)片段的保存區(qū),用于存儲(chǔ)多個(gè)處理器機(jī)器狀態(tài)信息及其條目各自對(duì)應(yīng)于所述多個(gè)片段之一的第二使用中比特矢量。
19.如權(quán)利要求18所述的系統(tǒng),其特征在于,機(jī)器狀態(tài)信息對(duì)應(yīng)于信道狀態(tài)信息,該信息包括用于指示其中將監(jiān)視所述處理器操作的各個(gè)方面的條件的觸發(fā)信息。
20.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述第二使用中比特矢量的每個(gè)條目都指示相應(yīng)片段內(nèi)存儲(chǔ)的信息是否要被用作所述處理器的機(jī)器上下文狀態(tài)。
21.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述第二使用中比特矢量的每個(gè)條目是要指示相應(yīng)片段內(nèi)存儲(chǔ)的信息是否是有效信息。
22.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述第二使用中比特矢量的每個(gè)條目是要指示相應(yīng)片段內(nèi)存儲(chǔ)的信息是否包含錯(cuò)誤。
23.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述多個(gè)片段的每一個(gè)中存儲(chǔ)的機(jī)器狀態(tài)信息可獨(dú)立于將其它機(jī)器狀態(tài)信息存儲(chǔ)入所述多個(gè)片段中的其它片段中而保存到一片段。
24.如權(quán)利要求22所述的系統(tǒng),其特征在于,如果所述第二使用中比特矢量條目的任一個(gè)指示一錯(cuò)誤,則與所述錯(cuò)誤相對(duì)應(yīng)的片段內(nèi)存儲(chǔ)的機(jī)器狀態(tài)信息不被恢復(fù)到所述處理器的機(jī)器上下文狀態(tài)。
25.如權(quán)利要求18所述的系統(tǒng),其特征在于,分別在將所述多個(gè)片段內(nèi)的機(jī)器狀態(tài)信息保存到所述處理器的機(jī)器上下文狀態(tài)或從所述處理器的機(jī)器上下文狀態(tài)恢復(fù)所述機(jī)器狀態(tài)信息之前,要檢查所述第一或第二使用中比特矢量條目的狀態(tài)。
26.一種處理器,包括包括觸發(fā)條件的多個(gè)信道信息,其中監(jiān)視所述處理器操作的一方面,且其中所述信道信息包括用于存儲(chǔ)與所述多個(gè)信道信息相對(duì)應(yīng)的多個(gè)使用中比特的首部字段,其中所述使用中比特指示所述多個(gè)信道信息是否要被保存到多個(gè)保存區(qū)片段。
27.如權(quán)利要求26所述的處理器,其特征在于,僅當(dāng)與所述多個(gè)信道信息之一相對(duì)應(yīng)的所述使用中比特指示所述多個(gè)信道信息中的所述一個(gè)有效時(shí),所述多個(gè)信道信息之一將被保存到所述多個(gè)保存區(qū)片段之一。
28.如權(quán)利要求26所述的處理器,其特征在于,僅當(dāng)與所述多個(gè)信道信息之一相對(duì)應(yīng)的所述使用中比特指示所述多個(gè)信道信息中的所述一個(gè)不包含錯(cuò)誤時(shí),所述多個(gè)信道信息之一將被保存到所述多個(gè)保存區(qū)片段之一。
29.如權(quán)利要求27所述的處理器,其特征在于,如果所述多個(gè)信道中的所述一個(gè)無(wú)效時(shí),它將被置入初始化狀態(tài)。
30.如權(quán)利要求28所述的處理器,其特征在于,如果所述多個(gè)信道中的所述一個(gè)包含錯(cuò)誤時(shí),它將被置入初始化狀態(tài)。
全文摘要
一種用于管理上下文狀態(tài)信息的技術(shù)。至少一個(gè)實(shí)施例包括用于存儲(chǔ)多個(gè)機(jī)器上下文狀態(tài)信息的多個(gè)保存區(qū)片段。一個(gè)實(shí)施例包括至少一個(gè)使用中比特矢量,以指示所述多個(gè)機(jī)器上下文信息的狀態(tài)。
文檔編號(hào)G06F9/46GK1936847SQ20061013990
公開(kāi)日2007年3月28日 申請(qǐng)日期2006年9月18日 優(yōu)先權(quán)日2005年9月19日
發(fā)明者C·紐波恩, D·羅杰斯, B·比格比, S·考申克, G·欽亞, 鄒翔, 王宏 申請(qǐng)人:英特爾公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1