專利名稱:高效的系統(tǒng)管理同步和存儲器分配的制作方法
領(lǐng)域本發(fā)明涉及計算機(jī)系統(tǒng)領(lǐng)域,并且更具體地說,涉及系統(tǒng)管理模式優(yōu)化。
背景計算機(jī)系統(tǒng)在我們的社會中正變得越來越普遍,所述計算機(jī)系統(tǒng)包括從諸如例如個人數(shù)字?jǐn)?shù)據(jù)助理和蜂窩電話的小型手持電子設(shè)備到諸如機(jī)頂盒和其他消費(fèi)類電子的專用電子組件,再到完全可移動設(shè)備、桌面和服務(wù)器系統(tǒng)的一切事物。但是,系統(tǒng)變的越小和越便宜,高效的存儲器分配和系統(tǒng)管理的需求就變得越重要。
一直以來,服務(wù)器系統(tǒng)的傳統(tǒng)特征在于同一系統(tǒng)中(多處理器系統(tǒng))的大量的常規(guī)存儲器和多個物理處理器,其中物理處理器是指單個處理器管芯(die)或單個封裝(package)。服務(wù)器系統(tǒng)可用的大量資源已經(jīng)導(dǎo)致效率極其低下的存儲器空間分配和嚴(yán)重浪費(fèi)的執(zhí)行時間。
典型地,系統(tǒng)中可以產(chǎn)生兩種類型的系統(tǒng)管理中斷(SMI),所述系統(tǒng)管理中斷包括例如電池電量低的硬件(異步)SMI,或例如操作系統(tǒng)(OS)請求處理器改變頻率或功率水平的軟件(同步)SMI。通常硬件SMI可以由任何一個處理器來處理而無需知道其他處理器的狀態(tài)保存區(qū)的信息。
但是,在處理SMI請求之前,軟件產(chǎn)生的SMI可能要求多處理器系統(tǒng)中所有的處理器進(jìn)入SMI,因?yàn)樘幚碥浖MI的操作可能需要訪問每個處理器的狀態(tài)保存區(qū)的能力。在處理SMI之前使得多個處理器進(jìn)入系統(tǒng)管理模式的過程常被稱為同步。
當(dāng)前的多處理器系統(tǒng)通常利用效率低下的超時方法來同步處理器。例如,如果接收到SMI,每個處理器在處理該SMI之前可以等待一個指定的時間量以確保每個處理器都已經(jīng)進(jìn)入系統(tǒng)管理模式(SMM)。作為一個示例說明性的實(shí)施例,多處理器系統(tǒng)中的處理器在處理SMI之前可以等待它執(zhí)行最長指令要花費(fèi)的時間量,以確保其他處理器已經(jīng)進(jìn)入SMM。因此,每個處理器可能已經(jīng)進(jìn)入了SMI,但是系統(tǒng)處于空閑,等待超時周期(period)耗盡而浪費(fèi)了執(zhí)行時間。
此外,目前的多處理系統(tǒng)分配系統(tǒng)管理存儲器空間的效率低下。由于當(dāng)前尋址限制,典型的SMM區(qū)域可能至少需要64kB。但是,并不是該存儲器空間的所有都被SMM代碼和/或數(shù)據(jù)填滿。此外,通常給每個處理器指派分開的且是不同的64kB SMM空間。因此,每個64kB SMM空間具有不被用到但是對單個處理器是專用的存儲器空間。
然而,這些效率低下的同步和系統(tǒng)管理存儲器分配方法不限于多處理器服務(wù)器系統(tǒng)。實(shí)際上,這些低效率也可以存在于其他系統(tǒng)中,例如移動多處理器系統(tǒng)。超線程技術(shù)(HT)是一項(xiàng)來自加利福尼亞州圣塔克萊拉市的Intel公司的技術(shù),所述技術(shù)使得能夠使用信號物理處理器并行地執(zhí)行線程。HT在一個物理處理器(同一管芯)上包括兩個邏輯處理器。邏輯處理器是操作系統(tǒng)(OS)可見的獨(dú)立處理器,能夠執(zhí)行代碼并且維持相對于系統(tǒng)中其他處理器來說獨(dú)特的體系結(jié)構(gòu)狀態(tài)。HT是通過包括多個體系結(jié)構(gòu)狀態(tài)來實(shí)現(xiàn)的,所述多個體系結(jié)構(gòu)狀態(tài)共享一套執(zhí)行資源。
因此,HT使得人們能夠在移動平臺中實(shí)現(xiàn)多(邏輯)處理器系統(tǒng)。如上所示,效率低下的存儲器分配和處理器同步存在于傳統(tǒng)的多處理器系統(tǒng)(例如服務(wù)器系統(tǒng))中。因此,隨著多處理器系統(tǒng)開始滲入資源(例如存儲器)受限的移動領(lǐng)域,對于上述的低效率的優(yōu)化的需求就變得愈發(fā)重要。
附圖簡要說明本發(fā)明是以示例性的方式描述的,并且不應(yīng)認(rèn)為本發(fā)明受附圖限制。
圖1示出具有多處理器的設(shè)備的方框圖,所述多個處理器共享執(zhí)行資源、緩存和儲存裝置(storage)。
圖2a示出具有耦合到儲存介質(zhì)的多個處理器的系統(tǒng)的方框圖。
圖2b示出具有耦合到控制器中心(hub)的多個處理器的系統(tǒng)的方框圖,所述控制器中心耦合到存儲器。
圖3示出具有包括多個邏輯處理器的物理處理器的系統(tǒng)的方框圖。
圖4示出具有重疊的系統(tǒng)管理存儲器空間的圖3的儲存介質(zhì)。
圖5示出圖4的存儲器空間的一部分,所述存儲器空間可以存儲多個處理器的系統(tǒng)管理狀態(tài)的表示。
圖6示出在處理系統(tǒng)管理中斷之前同步第一和第二處理器的流程圖。
圖7示出用于在處理SMI之前同步第一和第二處理器以及用于更新儲存介質(zhì)以反映新系統(tǒng)管理狀態(tài)的例證性實(shí)施方案的流程圖。
圖8示出了在處理SMI之前用到的同步字節(jié)(synchronization byte)的例證性的實(shí)施例,所述同步字節(jié)在引導(dǎo)(boot)過程中被用于同步第一和第二處理器。
圖9示出了用于給第一和第二處理器有效地指派系統(tǒng)管理存儲器空間的流程圖。
詳細(xì)描述在以下描述中闡述了大量具體的細(xì)節(jié),例如具體的存儲器地址、存儲器大小和組件配置的實(shí)施例,以提供對發(fā)明的完整理解。然而,本領(lǐng)域技術(shù)人員將會清楚,無需使用這些具體的細(xì)節(jié)可以實(shí)現(xiàn)本發(fā)明。此外,沒有詳細(xì)描述公知的組件和方法,例如例程引導(dǎo)(routine boot-up)步驟(例如上電自檢(POST))、具體的系統(tǒng)管理模式(SMM)實(shí)現(xiàn)以及具體的系統(tǒng)管理中斷處理程序代碼,以免不必要地模糊本發(fā)明。
在此描述的方法和裝置用于對多處理器同步和系統(tǒng)管理存儲器空間分配進(jìn)行優(yōu)化。處理器的同步可以發(fā)生在進(jìn)入不同處理器模式之前的任何時候。例如,當(dāng)多處理系統(tǒng)中的多個處理器接收到SMI時,它們可以在處理SMI之前同步。
本領(lǐng)域技術(shù)人員將會很容易理解,所公開的在多個處理器之間同步多個處理器和有效分配系統(tǒng)管理空間的方法可以適用于任何級別的計算機(jī)系統(tǒng)(個人數(shù)字助理、移動平臺、桌面平臺和服務(wù)器平臺)以及任何數(shù)量的處理器。例如,具有四個或更多個處理器的多處理器系統(tǒng)在進(jìn)入系統(tǒng)管理模式(SMM)之前可以使用該方法來同步所有的四個處理器。因?yàn)槿魏蔚亩鄠€處理器必將包括兩個處理器,所以在此只討論兩個處理器的同步,以免被更復(fù)雜的系統(tǒng)模糊本發(fā)明。
圖1-3示出了可以具體實(shí)施在此描述的方法的一些硬件的例證性的實(shí)施例。如上所述,在此描述的方法可以用于任何多處理器系統(tǒng);因此所述方法只在參考圖3時詳細(xì)描述,以免因?yàn)橹貜?fù)模糊本發(fā)明。
圖1描述了具有多個邏輯處理器的設(shè)備105的方框圖。物理處理器是指物理處理器管芯或單個的封裝。邏輯處理器是操作系統(tǒng)(OS)可見的獨(dú)立處理器,能夠執(zhí)行代碼并保存相對于系統(tǒng)中其他處理器來說獨(dú)特的體系結(jié)構(gòu)狀態(tài)。超線程技術(shù)(HT)是一項(xiàng)來自加利福尼亞州圣塔克萊拉市的Intel公司的技術(shù),所述技術(shù)使得能夠使用信號物理處理器并行地執(zhí)行線程。HT在一個物理處理器上包括兩個邏輯處理器,并且通過復(fù)制體系結(jié)構(gòu)狀態(tài)來實(shí)現(xiàn),其中每個體系結(jié)構(gòu)狀態(tài)共享一套處理器執(zhí)行資源。
設(shè)備105可以包括第一處理器110和第二處理器115。設(shè)備105可以是物理處理器。設(shè)備105也可以是嵌入式系統(tǒng)、單個物理處理器或具有至少兩個處理器的任何其他設(shè)備。處理器110和115可以是邏輯處理器。例如,設(shè)備105可以包括體系結(jié)構(gòu)狀態(tài)寄存器120和125,所述體系結(jié)構(gòu)狀態(tài)寄存器120和125各自保存獨(dú)特的體系結(jié)構(gòu)狀態(tài)。很容易理解,設(shè)備105可以包括多于兩個的邏輯處理器,所述邏輯處理器各自具有與其相關(guān)聯(lián)的體系結(jié)構(gòu)狀態(tài)寄存器以保存各自的體系結(jié)構(gòu)狀態(tài)。處理器110和115共享相同的執(zhí)行資源130、緩存135和儲存介質(zhì)140。
儲存介質(zhì)140可以是任何類型的可以存儲數(shù)據(jù)的儲存裝置。例如,儲存介質(zhì)140可以是用于存儲信息的寄存器。儲存介質(zhì)140還可以是緩存135的另一層次。儲存介質(zhì)140還可以是一種形式的置于設(shè)備105上的系統(tǒng)存儲器。
參照圖2a,示出了具有多個處理器的系統(tǒng)的例證性的實(shí)施例。系統(tǒng)可以包括第一處理器205和第二處理器210。處理器205和210可以是物理處理器,其中每個處理器位于分開的管芯或分開的封裝上。系統(tǒng)還可以包括將處理器205和210耦合到圖2a中的儲存介質(zhì)220或圖2b中的控制器中心230的互聯(lián)215。如圖2b所示,控制器中心230也可以通過第二互聯(lián)235耦合到儲存介質(zhì)220。
圖3示出了具有多個處理器的系統(tǒng)的實(shí)施例。處理器305可以包括共享執(zhí)行資源330、緩存335和系統(tǒng)總線340的第一處理器310和第二處理器315。體系結(jié)構(gòu)狀態(tài)寄存器320和325可以分別保存處理器320和325的獨(dú)特的體系結(jié)構(gòu)狀態(tài)。系統(tǒng)總線340將處理器305耦合到控制中心345??刂浦行?45可以通過第二總線350被耦合到儲存介質(zhì)355。儲存介質(zhì)355可以是任何存儲數(shù)據(jù)的設(shè)備。例如,儲存介質(zhì)可以是系統(tǒng)存儲器。系統(tǒng)存儲器可以包括同步隨機(jī)訪問存儲器(SRAM)、動態(tài)隨機(jī)訪問存儲器(DRAM)、同步動態(tài)隨機(jī)訪問存儲器(SDRAM)、雙倍數(shù)據(jù)速率RAM(DDR)、Rambus(R)或任何其他類型的系統(tǒng)存儲器。儲存介質(zhì)355也可以是寄存器、閃存存儲器或緩存355的另一層次。
參見圖4和圖5,示出了在儲存介質(zhì)355中為第一和第二處理器分配系統(tǒng)管理模式(SMM)存儲器空間的例證性的實(shí)施例。圖4描述了可以被指派給第一處理器的第一SMM存儲器空間405和可以被指派給第二處理器的第二SMM存儲器空間410。第一SMM空間405和第二SMM空間410重疊以產(chǎn)生重疊區(qū)域415。
第一非重疊區(qū)域420、第二非重疊區(qū)域425和/或第三重疊區(qū)域435可以用于為每個處理器保留分開的存儲器空間。例如,分開的存儲器空間420和425可以用于存儲第一和第二處理器的保存狀態(tài)區(qū)域。作為另一個實(shí)施例,非重疊區(qū)域420可以是第一和第二處理器的基地址(SMBase)間的偏移,而435和425被用于存儲第一和第二處理器的狀態(tài)保存區(qū)。圖4還示出了重疊區(qū)域415中的同步區(qū)430,所述同步區(qū)430可用于存儲用于第一處理器和/或第二處理器的同步信息。
參照圖5,示出了同步區(qū)430的例證性的實(shí)施例。同步區(qū)430可以是表示第一處理器和/或第二處理器的狀態(tài)的同步字節(jié)(synchbyte)。正如稍后參考圖6-10描述的,同步區(qū)430可以被存儲在圖3所示儲存介質(zhì)355內(nèi)的任何位置。單元505、510和515示出了同步字節(jié)可能包含的值的實(shí)施例,所述值分別表示單元520、525和530中描述的狀態(tài)。處理器狀態(tài)以及圖4和圖5將參照圖6-10描述的方法更加詳細(xì)地討論。
參見圖6,以高層次的流程圖示出了用于在處理SMI之前同步第一和第二處理器的方法。在方框605中接收到SMI。通常產(chǎn)生SMI來請求處理器的服務(wù)。SMI可以由異步(硬件)或同步(軟件)事件產(chǎn)生。當(dāng)在系統(tǒng)中產(chǎn)生SMI時,系統(tǒng)中的每個處理器會接收/鎖存該SMI。
作為例證性的實(shí)施例,方框605中的第一SMI可以由如圖3所示的控制器中心345產(chǎn)生。作為另一個實(shí)施例,方框605中的所述第一SMI可以由位于第一處理器、第二處理器或分離地(separately)位于系統(tǒng)中的控制器(未示出)產(chǎn)生。作為再一個實(shí)施例,方框605中的所述第一SMI可以通過改變物理處理器(例如圖3中所描繪的處理器305)或控制器中心(例如圖3所述控制器中心345)上的管腳的邏輯電平來產(chǎn)生。
在方框610中,第一處理器核查第二處理器的狀態(tài)??梢酝ㄟ^處理器之間的通信來實(shí)現(xiàn)對第二處理器的狀態(tài)的檢查。作為例證性的實(shí)施例,圖7在方框705中示出了通過檢查儲存介質(zhì),例如圖3和圖4中的儲存介質(zhì)355,第一處理器可以如何檢查第二處理器的狀態(tài)。
儲存介質(zhì)355可以是任何存儲信息的介質(zhì)。作為實(shí)施例,儲存介質(zhì)355可以是位于第一處理器、第二處理器或多處理器系統(tǒng)(未示出)中的至少一個寄存器。作為另一個實(shí)施例,儲存介質(zhì)355可以是緩存335或不在處理器305之上的任何其他緩存的一部分。作為再一個實(shí)施例,儲存介質(zhì)355可以是系統(tǒng)存儲器。
儲存介質(zhì)355可以保存第一處理器和/或第二處理器的直接狀態(tài)信息。此外,儲存介質(zhì)可以保存表示第一處理器和/或第二處理器狀態(tài)的信息。例如,儲存介質(zhì)355可以在例如圖4和圖5中所描繪的同步區(qū)430的同步區(qū)中存儲狀態(tài)信息。同步區(qū)430可以存儲表示不同處理器狀態(tài)的不同值。
作為指導(dǎo)性(instructive)的實(shí)施例,存儲在同步區(qū)430中的第一值可以表示第二處理器處于非活動(inactive)狀態(tài)。非活動狀態(tài)可以是任何低功率狀態(tài),例如睡眠、待機(jī)、掛起、休眠、等待SIPI、睡眠、深度睡眠、重啟或任何第二處理器不響應(yīng)中斷的其他模式。此外,存儲在同步區(qū)430中的第二值可以表示第二處理器處于活動(active)狀態(tài)但未處于SMI模式,所述SMI模式也常被稱為系統(tǒng)管理模式(SMM)?;顒拥刺幱赟MI模式的狀態(tài)可以是第二處理器正在響應(yīng)中斷和/或執(zhí)行代碼但未處于SMM的任何狀態(tài)。此外,存儲在同步區(qū)430中的第三值可以表示第二處理器處于活動狀態(tài)并且處于SMI模式?;顒硬⑶姨幱赟MI模式的狀態(tài)可以是第二處理器是活動的并且還處于SMM的任何狀態(tài)。
回頭參照圖5,示出了可以作為同步字節(jié)被存入同步區(qū)430中的表示值的例證性的實(shí)施例。當(dāng)同步區(qū)430將第一值01b存入單元510時,所述第一值表示第二處理器是非活動的/正在睡眠,如單元520所述。但是,當(dāng)同步區(qū)430存儲如單元505中所示的第二值00b時,所述第二值表示第二處理器是活動的但未處于SMI模式,所以第一處理器可以等待第二處理器,如單元520所述。類似地,當(dāng)同步區(qū)430存儲如單元515中所示的第三值10b時,所述第三值表示第二處理器是活動的并且處于SMI模式。因此,第一處理器可以在第一和第二處理器兩者上處理SMI,如單元530所述。
再參照圖6,來自方框605的SMI在方框615中被處理。通常,處理SMI的操作需要(entail)為硬件和軟件提出的請求提供服務(wù)。處理SMI可以包括為所產(chǎn)生的SMI請求提供服務(wù)的任何操作。例如,處理SMI可以包括執(zhí)行SMI處理程序代碼來為SMI提供服務(wù)。
如方框620所示,如果同步區(qū)430存儲了表示第二處理器處于非活動狀態(tài)的值,第一處理器可以處理方框605中產(chǎn)生的SMI,而不需等待第二處理器進(jìn)入SMI模式。一旦第二處理器開始醒來(進(jìn)入了它響應(yīng)中斷的狀態(tài)),第二處理器可以更新儲存介質(zhì)來反映它當(dāng)前的狀態(tài),如圖7的方框710所示。
當(dāng)進(jìn)入第二處理器響應(yīng)中斷且未處于SMI模式的狀態(tài)時,第二處理器可以更新同步區(qū)430中的值來反映活動但未處于SMI模式的狀態(tài)。當(dāng)同步區(qū)430表示的是活動且未處于SMI的狀態(tài)時,第一處理器在處理來自方框605的SMI之前應(yīng)該等待第二處理器進(jìn)入SMI模式,如方框625所示。同樣地,當(dāng)?shù)诙幚砥鬟M(jìn)入SMI模式時,它應(yīng)該將同步區(qū)更新為圖5的10b值,所述10b值表示第二處理器現(xiàn)在處于SMI模式。如果第二處理器的狀態(tài)是活動的且處于SMI模式,那么所述SMI可以被第一處理器或第二處理器在第一和第二處理器兩者上處理。
參看圖8,以高層次流程圖的格式示出了在兩個處理器的引導(dǎo)序列(boot sequence)期間優(yōu)化的同步的例證性的實(shí)施例。同步值805被示為連續(xù)地通過流程圖的過程,以描述圖4和圖5中所示的同步區(qū)430可能保存的值。同步值805可以被存儲在儲存介質(zhì)355中的任何位置。對于本實(shí)施例來說,同步值805應(yīng)該與圖5的值表一致,以使描述更加簡單。因此,一旦方框810中開始初始化/重啟,同步值805可以被置為01b來表示第二處理器是非活動的。與此同時,如果產(chǎn)生了任何SMI,第二處理器鎖存/接收SMI但不處理它們。
然而,在接收到SMI后,第一處理器可以通過檢查同步區(qū)430以讀取同步值805來核查核查第二處理器的狀態(tài)。如果同步值805是01b,代表第二處理器是非活動的,則第一處理器可以隨后處理SMI而不用等待第二處理器。第一處理器也可以完成其他的例程引導(dǎo)步驟,例如在方框815中初始化SMI、在方框820中完成上電自檢(POST)、在方框825中喚醒第二處理器。
當(dāng)?shù)诙幚砥髟诜娇?30中醒來時,它應(yīng)該將同步值805置為00b來表示它是活動的但未處于SMI模式。第一處理器可以在方框835中進(jìn)入SMI并且通過檢查同步值805來核查查第二處理器的狀態(tài)。因?yàn)橥街?05現(xiàn)在應(yīng)該被置為00b,第一處理器可以等待/循環(huán)直到第二處理器進(jìn)入SMI并且將同步值805置為10b。
隨后,在方框840中,第二處理器可以進(jìn)入SMI模式,并且將同步值805置為10b來表示它是活動的并且處于SMI模式。此時,第二處理器可以在SMI模式中等待/循環(huán)直到第一處理器已將同步值805置為00b來表示它是活動的但未處于SMI模式。在第二處理器等待期間,第一處理器可以前進(jìn)到方框845中,在第一和第二處理器兩者上處理SMI。一旦第一處理器已經(jīng)在第一和第二處理器兩者上處理了SMI,它可以退出SMI模式,并且在方框850中將同步值805置為00b。第二處理器可以隨后在方框855中退出SMI模式。
參照圖9,示出了有效分配系統(tǒng)管理存儲器空間的方法。在方框905中,第一系統(tǒng)管理存儲器空間/區(qū)間(range),例如圖4中的第一存儲器空間/區(qū)間405被指派給第一處理器。在方框910中,第二系統(tǒng)管理存儲器空間/區(qū)間,例如第二存儲器空間/區(qū)間405被指派給第二處理器,從而第一存儲器空間405和第二存儲器空間410相互重疊,產(chǎn)生重疊區(qū)域/區(qū)間415。第一存儲器空間405和第二存儲器空間410的重疊可以分別留下第一和第二非重疊區(qū)域/區(qū)間,例如非重疊區(qū)域/區(qū)間420和425,如圖4所示。
重疊區(qū)域415可以被用于存儲系統(tǒng)管理數(shù)據(jù),例如SMI處理程序代碼。重疊區(qū)域415還可以被用于存儲第一和第二處理器中的一個或兩個的狀態(tài)保存區(qū)。很容易理解,第一和第二非重疊區(qū)域420和425可以被置于與圖4中所描繪的相對于重疊區(qū)域415的方位不同的方位。
非重疊區(qū)域420和425還可以用于存儲任何種類的數(shù)據(jù)。例如第一非重疊區(qū)域420可以存儲第一處理器的狀態(tài)保存區(qū),而第二非重疊區(qū)域425可以存儲第二處理器的狀態(tài)保存區(qū)。作為另一個實(shí)施例,第一非重疊區(qū)域420可以是第一和第二處理器的SMM空間之間的偏移,而在重疊區(qū)域415中的狀態(tài)保存區(qū)435和非重疊區(qū)域425可以分別被用于存儲第一和第二處理器的狀態(tài)保存區(qū)。此外,非重疊區(qū)域420和425在存儲器中可以是任意大小。作為例證性的實(shí)施例,第一和第二非重疊區(qū)域420和425可以是每個處理器狀態(tài)保存區(qū)的大小。典型的狀態(tài)保存區(qū)可以是2KB,但也可以大小不同。第一存儲器空間405和第二存儲器空間410之間的偏移,如非重疊區(qū)域420所示,也可以大小不同。例如偏移可以是狀態(tài)保存區(qū)的大小,或者它可以是存儲在任一個存儲器空間中的最大的SMI處理程序代碼的大小。
重疊區(qū)域415的一部分也可以將兩個處理器的系統(tǒng)管理狀態(tài)存入同步區(qū)430中,如圖4所示;雖然這樣,同步區(qū)430可以被置于儲存介質(zhì)355的任何位置。但是,將同步區(qū)430存儲在重疊區(qū)域是有利的,這樣的話兩個處理器可以很容易的從同步區(qū)430中讀取信息和修改同步區(qū)430。
如上所述,多處理器系統(tǒng)可用的資源越少,在系統(tǒng)管理中的高效的同步和存儲器分配的需求變得越大。允許處理器直接地或通過儲存介質(zhì)傳送彼此的狀態(tài)的操作,允許多處理器系統(tǒng)進(jìn)行有效同步而不浪費(fèi)任何執(zhí)行時間或資源。此外,重疊每個處理器的系統(tǒng)管理存儲器空間/區(qū)間節(jié)省了寶貴的存儲器空間,也允許同步信息能夠很容易地被任何處理器存儲和修改。
在前面的詳細(xì)說明中,參考本發(fā)明的具體示例性的實(shí)施方案描述了本發(fā)明。但是,很明顯地,正如所附權(quán)利要求書所闡述的,可以對本發(fā)明做出各種修改和變化,而不背離本發(fā)明的較寬的精神和范圍。因此,本說明書和附圖可以被視為描述性的而非限制性的。
權(quán)利要求
1.一種方法,包括接收系統(tǒng)管理中斷(SMI);使用第一處理器來核查第二處理器的狀態(tài);以及(a)如果所述第二處理器的所述狀態(tài)是非活動的,使用所述第一處理器處理所述SMI;(b)如果所述第二處理器的所述狀態(tài)是活動的且未處于SMI模式,等待所述第二處理器進(jìn)入SMI模式;(c)如果所述第二處理器的所述狀態(tài)是活動的且處于SMI模式,在所述第一和所述第二處理器兩者上處理所述SMI。
2.如權(quán)利要求1所述方法,其中使用第一處理器核查第二處理器的所述狀態(tài)的操作包括使用所述第一處理器檢查儲存介質(zhì),其中所述儲存介質(zhì)存儲表示所述第二處理器的狀態(tài)的值。
3.如權(quán)利要求2所述方法,其中所述儲存介質(zhì)是系統(tǒng)存儲器。
4.如權(quán)利要求3所述方法,其中所述系統(tǒng)存儲器將表示所述第二處理器的狀態(tài)的值存入同步字節(jié)。
5.如權(quán)利要求4所述方法,其中所述同步字節(jié)在包括第一值時表示所述第二處理器處于非活動狀態(tài)。
6.如權(quán)利要求4所述方法,其中所述同步字節(jié)在包括第二值時表示所述第二處理器是活動的但未處于SMI模式。
7.如權(quán)利要求4所述方法,其中所述同步字節(jié)在包括第三值時表示所述第二處理器處于活動狀態(tài)且處于SMI模式。
8.如權(quán)利要求2所述方法,其中所述儲存介質(zhì)是寄存器。
9.如權(quán)利要求2所述方法,其中所述寄存器位于所述第二處理器中。
10.如權(quán)利要求2所述方法,其中所述儲存介質(zhì)的默認(rèn)值表示所述第二處理器的非活動狀態(tài)。
11.如權(quán)利要求2所述方法,還包括使用所述第二處理器更新所述儲存介質(zhì),以反映所述第二處理器的當(dāng)前狀態(tài)。
12.如權(quán)利要求11所述方法,其中更新所述儲存介質(zhì)的操作包括如果所述第二處理器將要進(jìn)入低功率狀態(tài),則將值寫入所述儲存介質(zhì)中來表示非活動狀態(tài)。
13.如權(quán)利要求11所述方法,其中更新所述儲存介質(zhì)的操作包括如果所述第二處理器正在醒來并且未處于SMI模式,則將值寫入所述儲存介質(zhì)中來表示活動且未處于SMI模式的狀態(tài)。
14.如權(quán)利要求11所述方法,其中更新所述儲存介質(zhì)的操作包括如果所述第二處理器正在進(jìn)入SMI模式,則將值寫入所述儲存介質(zhì)中來表示活動且處于SMI模式的狀態(tài)。
15.如權(quán)利要求1所述方法,還包括在接收所述SMI之前產(chǎn)生所述SMI。
16.如權(quán)利要求15所述方法,其中產(chǎn)生所述SMI的操作通過軟件來實(shí)現(xiàn)。
17.如權(quán)利要求15所述方法,其中產(chǎn)生所述SMI的操作通過硬件來實(shí)現(xiàn)。
18.如權(quán)利要求1所述方法,其中所述第一和第二處理器是邏輯處理器。
19.如權(quán)利要求1所述方法,其中所述第一和第二處理器是物理處理器。
20.一種方法,包括指派用于系統(tǒng)管理的第一存儲器空間給第一處理器;以及指派用于系統(tǒng)管理的第二存儲器空間給第二處理器,其中所述第二存儲器空間與所述第一存儲器空間部分重疊,留下至少第一非重疊區(qū)域。
21.如權(quán)利要求20所述方法,其中所述第一和第二存儲器空間的所述重疊還留下第二非重疊區(qū)域。
22.如權(quán)利要求20所述方法,其中所述第一非重疊區(qū)域的大小至少是所述第一處理器的狀態(tài)保存區(qū)的大小。
23.如權(quán)利要求21所述方法,其中所述第二非重疊區(qū)域的大小至少是所述第二處理器的狀態(tài)保存區(qū)的大小。
24.如權(quán)利要求23所述方法,其中第一和第二非重疊區(qū)域的大小至少是所述第二處理器的系統(tǒng)管理中斷(SMI)處理程序代碼的大小。
25.如權(quán)利要求20所述方法,其中所述重疊區(qū)域包括用于存儲至少是所述第二處理器的所述系統(tǒng)管理狀態(tài)的同步區(qū)。
26.如權(quán)利要求20所述方法,其中所述重疊區(qū)域包括所述第一處理器的所述狀態(tài)保存區(qū)。
27.如權(quán)利要求26所述方法,其中所述第一非重疊區(qū)域包括所述第二處理器的所述狀態(tài)保存區(qū)。
28.如權(quán)利要求20所述方法,其中所述第一和第二存儲器空間位于系統(tǒng)存儲器中。
29.如權(quán)利要求20所述方法,其中所述第一和第二處理器是邏輯處理器。
30.如權(quán)利要求20所述方法,其中所述第一和第二處理器是物理處理器。
31.一種微處理器,包括耦合到儲存介質(zhì)的第一邏輯處理器和第二邏輯處理器,其中所述儲存介質(zhì)存儲所述第二邏輯處理器的所述系統(tǒng)管理狀態(tài)。
32.如權(quán)利要求31所述微處理器,其中所述儲存介質(zhì)是位于所述處理器中的一個中的寄存器。
33.如權(quán)利要求31所述微處理器,其中所述儲存介質(zhì)表示所述第二處理器處于非活動狀態(tài)。
34.如權(quán)利要求31所述微處理器,其中所述儲存介質(zhì)表示所述第二處理器處于活動且未處于SMI的狀態(tài)。
35.如權(quán)利要求31所述微處理器,其中所述儲存介質(zhì)表示所述第二處理器處于SMI模式。
36.一種裝置,包括耦合到第一和第二邏輯處理器的儲存介質(zhì),所述儲存介質(zhì)包括被指派給所述第一處理器用于系統(tǒng)管理的第一存儲器區(qū)間和被指派給所述第二處理器用于系統(tǒng)管理的第二存儲器區(qū)間,其中所述第一和第二存儲器區(qū)間部分重疊,留下第一和第二非重疊區(qū)間。
37.如權(quán)利要求36所述裝置,其中所述第一和第二非重疊區(qū)間的大小至少分別是所述第一和第二處理器的狀態(tài)保存區(qū)的大小。
38.如權(quán)利要求36所述裝置,其中所述第一和第二處理器是邏輯處理器。
39.如權(quán)利要求36所述裝置,其中所述第一和第二處理器是物理處理器。
40.如權(quán)利要求36所述裝置,其中所述重疊區(qū)域包括同步區(qū),所述同步區(qū)可以被所述第一和第二處理器兩者修改。
41.如權(quán)利要求40所述裝置,其中所述同步區(qū)包括同步字節(jié),所述同步字節(jié)表示至少一個處理器的所述系統(tǒng)管理狀態(tài)。
42.如權(quán)利要求41所述裝置,其中所述同步字節(jié)被用于在處理系統(tǒng)管理中斷之前同步所述第一和第二處理器。
43.一種系統(tǒng),包括耦合到第一和第二處理器的控制器中心;耦合到所述第一和第二處理器的儲存介質(zhì),所述儲存介質(zhì)存儲至少所述第二處理器的所述系統(tǒng)管理狀態(tài),其中所述第一處理器在接收到第一系統(tǒng)管理中斷(SMI)后核查所述第二處理器的所述系統(tǒng)管理狀態(tài)。
44.如權(quán)利要求43所述系統(tǒng),其中,如果所述第二處理器的所述系統(tǒng)管理狀態(tài)是非活動的,則所述第一處理器處理所述SMI而不等待所述第二處理器。
45.如權(quán)利要求43所述系統(tǒng),其中,如果所述第二處理器的所述系統(tǒng)管理狀態(tài)是活動的且未處于SMI模式,則所述第一處理器等待所述第二處理器進(jìn)入SMI模式并且更新所述儲存設(shè)備。
46.如權(quán)利要求43所述系統(tǒng),其中,如果所述第二處理器的所述系統(tǒng)管理狀態(tài)是活動的且處于SMI模式,則在所述第一和第二處理器兩者上處理所述SMI。
47.如權(quán)利要求43所述系統(tǒng),其中所述儲存介質(zhì)是系統(tǒng)存儲器。
48.如權(quán)利要求47所述系統(tǒng),其中系統(tǒng)存儲器包括同步字節(jié),所述同步字節(jié)存儲至少表示所述第二處理器系統(tǒng)管理狀態(tài)的值。
49.如權(quán)利要求43所述系統(tǒng),其中所述儲存設(shè)備是寄存器。
50.如權(quán)利要求43所述系統(tǒng),其中所述儲存設(shè)備是閃存存儲器。
51.如權(quán)利要求43所述系統(tǒng),其中所述第一和第二處理器是邏輯處理器。
52.如權(quán)利要求43所述系統(tǒng),其中所述第一和第二處理器是物理處理器。
53.一種系統(tǒng),包括耦合到存儲器的第一處理器,所述第一處理器包括在所述存儲器中被指派用于系統(tǒng)管理的第一地址區(qū)間;以及耦合到所述存儲器的第二處理器,所述第二處理器包括在所述存儲器中被指派用于系統(tǒng)管理的第二地址區(qū)間,其中所述第一和第二地址區(qū)間部分地重疊,留下第一非重疊區(qū)間和第二非重疊區(qū)間。
54.如權(quán)利要求53所述系統(tǒng),其中所述第一和第二非重疊區(qū)間至少是每個處理器的保存狀態(tài)區(qū)間的大小。
55.如權(quán)利要求53所述系統(tǒng),其中所述第一和第二非重疊區(qū)間至少是所述第二處理器的所述系統(tǒng)管理中斷(SMI)處理程序代碼的大小。
56.如權(quán)利要求53所述系統(tǒng),其中所述存儲器是系統(tǒng)存儲器。
57.如權(quán)利要求53所述系統(tǒng),其中所述第一和第二處理器是邏輯處理器。
58.如權(quán)利要求53所述系統(tǒng),其中所述第一和第二處理器是物理處理器。
全文摘要
在本文中描述了用于優(yōu)化多處理器同步和系統(tǒng)管理存儲器空間分配的方法和裝置。當(dāng)接收到系統(tǒng)管理中斷時,第一處理器核查第二處理器的狀態(tài),所述核查操作可以通過核查存有表示第二存儲器的狀態(tài)值的儲存介質(zhì)來實(shí)現(xiàn)。第一處理器根據(jù)第二處理器的狀態(tài)處理SMI或者等待第二處理器。此外,系統(tǒng)管理存儲器被分配,其中指派給第一處理器的第一系統(tǒng)管理存儲器空間與指派給第二處理器的第二系統(tǒng)管理存儲器空間重疊,留下第一和第二非重疊區(qū)域。
文檔編號G06F12/02GK1890640SQ200480036294
公開日2007年1月3日 申請日期2004年10月6日 優(yōu)先權(quán)日2003年10月6日
發(fā)明者巴恩斯·庫珀, 格蘭特·小林 申請人:英特爾公司