用于多核處理器的系統(tǒng)管理中斷處理的制作方法
【專利說明】
【背景技術(shù)】
[0001]計(jì)算機(jī)處理器通常提供了幾種操作模式。用于普通代碼(諸如操作系統(tǒng)、用戶應(yīng)用等)的操作模式通常包含實(shí)時(shí)模式(其中處理器使用物理存儲(chǔ)器地址)和保護(hù)模式(其中處理器使用虛擬化存儲(chǔ)器地址)。處理器可提供附加模式,諸如用于尋址大地址空間的長模式。
[0002]某些處理器提供了用于處理由計(jì)算平臺(tái)的硬件組件生成的某些中斷(稱為系統(tǒng)管理中斷(SMI))的特殊操作模式(稱為系統(tǒng)管理模式(SMM))。在檢測(cè)到SMI時(shí),此類處理器通過保存其當(dāng)前狀態(tài)并然后進(jìn)入SMM來暫停執(zhí)行。在SMM內(nèi)部,處理器執(zhí)行SMI處理機(jī)代碼。此類SMI處理機(jī)代碼可執(zhí)行諸如錯(cuò)誤處理、功率管理、平臺(tái)閃存更新、系統(tǒng)管理任務(wù)等的任務(wù)。在完成后,SMI處理機(jī)代碼執(zhí)行重新開始指令(RSM),使處理器重新加載其保存的狀態(tài),并重新開始執(zhí)行先前的操作模式。接收SM1、進(jìn)入SMM和SMI處理機(jī)的操作從而對(duì)在處理器上執(zhí)行的其它代碼(包含操作系統(tǒng)代碼)是透明的。
[0003]某些多核處理器可通過向所有處理器核廣播SMI來處理SMI。在接收到SMI并進(jìn)入SMM后,每個(gè)處理器核可競(jìng)爭以變成負(fù)責(zé)處理SMI的主核。此類主核經(jīng)常稱為“君主(monarch) ”或“自舉(boot strap)處理器”。主核在處理SMI之前等待另一附屬核(有時(shí)稱為“應(yīng)用處理器”)進(jìn)入SMM。當(dāng)主核處理SMI時(shí),附屬核在等待循環(huán)中空閑。從而,SMI處理機(jī)代碼可以是單線程的,甚至當(dāng)在多核處理器上執(zhí)行時(shí)。
[0004]典型處理器還包含機(jī)器檢查架構(gòu)。此類機(jī)器檢查架構(gòu)是檢測(cè)處理器或計(jì)算機(jī)平臺(tái)中硬件錯(cuò)誤(機(jī)器檢查異常)并警告操作系統(tǒng)的低級(jí)機(jī)制。一些機(jī)器檢查異常可在硬件中糾正或由操作系統(tǒng)糾正;未糾正的機(jī)器檢查異常一般是致命錯(cuò)誤,并且可導(dǎo)致操作系統(tǒng)崩潰(例如“停止錯(cuò)誤”、“內(nèi)核恐慌”、“藍(lán)屏”等)。
【附圖說明】
[0005]本文描述的概念在附圖中作為示例而非作為限制圖示。為了圖示的簡潔和清晰起見,在附圖中圖示的元件不一定按比例繪制。在視為合適的地方,附圖標(biāo)記在各圖之間已經(jīng)被重復(fù)以指示對(duì)應(yīng)或類似元件。
[0006]圖1是用于處理系統(tǒng)管理中斷的計(jì)算裝置的至少一個(gè)實(shí)施例的簡化框圖;
圖2是圖1的計(jì)算裝置的環(huán)境的至少一個(gè)實(shí)施例的簡化框圖;
圖3是可由圖1和圖2的計(jì)算裝置執(zhí)行的用于處理系統(tǒng)管理中斷的方法的至少一個(gè)實(shí)施例的簡化流程圖;
圖4是可由圖1和圖2的計(jì)算裝置執(zhí)行的用于主SMI處理機(jī)的方法的至少一個(gè)實(shí)施例的簡化流程圖;
圖5是可由圖1和圖2的計(jì)算裝置執(zhí)行的用于附屬SMI處理機(jī)的方法的至少一個(gè)實(shí)施例的簡化流程圖;以及圖6是可在典型處理器中發(fā)生的掛起條件的示意時(shí)間線圖。
【具體實(shí)施方式】
[0007]雖然本公開的概念易受到各種修改和備選形式,但其特定實(shí)施例已經(jīng)在附圖中作為示例示出,并且將在本文中詳細(xì)描述。然而,應(yīng)該理解,沒有意圖將本公開的概念局限于所公開的具體形式,而是相反,本發(fā)明將覆蓋與本公開和所附權(quán)利要求書一致的所有修改、等同物和備選。
[0008]在說明書中提到“一個(gè)實(shí)施例”、“實(shí)施例”、“說明性實(shí)施例”等指示所描述的實(shí)施例可包含具體特征、結(jié)構(gòu)或特性,但每一個(gè)實(shí)施例可以或者可以不必然包含該具體特征、結(jié)構(gòu)或特性。而且,此類短語不一定是指同一實(shí)施例。進(jìn)一步說,當(dāng)結(jié)合實(shí)施例描述具體特征、結(jié)構(gòu)或特性,認(rèn)為結(jié)合不管是否明確描述的其它實(shí)施例實(shí)現(xiàn)此類特征、結(jié)構(gòu)或特性在本領(lǐng)域技術(shù)人員的知識(shí)內(nèi)。
[0009]所公開的實(shí)施例在一些情況下可用硬件、固件、軟件或它們的任何組合來實(shí)現(xiàn)。所公開的實(shí)施例也可實(shí)現(xiàn)為由易失性或非易失性機(jī)器可讀(例如計(jì)算機(jī)可讀)介質(zhì)攜帶或存儲(chǔ)在其上的指令,所述指令可由一個(gè)或多個(gè)處理器讀取和執(zhí)行。機(jī)器可讀存儲(chǔ)介質(zhì)可實(shí)施為用于存儲(chǔ)或傳送由機(jī)器(例如易失性或非易失性存儲(chǔ)器、媒體盤或其它媒體裝置)可讀形式的信息的任何存儲(chǔ)裝置、機(jī)制或其它物理結(jié)構(gòu)。
[0010]在附圖中,一些結(jié)構(gòu)或方法特征可按特定布置和/或排序示出。然而,應(yīng)該認(rèn)識(shí)至IJ,可能不需要此類特定布置和/或排序。而是,在一些實(shí)施例中,此類特征可按與在說明性附圖中示出的不同的方式和/或次序布置。此外,在具體附圖中包含結(jié)構(gòu)或方法特征不打算暗示此類特征在所有實(shí)施例中都需要,并且在一些實(shí)施例中,可能不包含或者可與其它特征組合。
[0011]現(xiàn)在參考圖6,當(dāng)由于稱為“SMI合并”的現(xiàn)象而接連生成多個(gè)SMI時(shí),典型的多核處理器可停止執(zhí)行或“掛起”。示意圖600圖示了 SMI合并問題。區(qū)域602和604圖示了處理器操作模式。具體地說,區(qū)域602圖示了保護(hù)模式,并且區(qū)域604圖示了 SMM。當(dāng)然,可使用長模式、真實(shí)模式或另一普通操作模式代替保護(hù)模式。線程606和608被圖示為初始執(zhí)行在保護(hù)模式602中。在時(shí)間段610期間,SMI源生成SMI 612,其被廣播給兩個(gè)線程606、608。對(duì)于每個(gè)線程設(shè)置SMI未決標(biāo)記。在時(shí)間段610與614之間的邊界,線程608進(jìn)入SMM604。當(dāng)線程608進(jìn)入SMM時(shí),自動(dòng)清除線程608的SMI未決標(biāo)記。在此時(shí),線程606正在執(zhí)行較長指令,并且保持在保護(hù)模式602中。在時(shí)間段614期間,SMI源生成SMI 616,其被廣播給兩個(gè)線程606和608。對(duì)于每個(gè)線程606、608再次設(shè)置SMI未決標(biāo)記。因?yàn)閷?duì)于線程606已經(jīng)設(shè)置SMI未決標(biāo)記,所以對(duì)于線程606,SMI 612和SMI 616已經(jīng)有效地合并在一起。在時(shí)間段614與618之間的邊界,線程606進(jìn)入SMM 604,自動(dòng)清除用于線程606的SMI未決標(biāo)記。因?yàn)榫€程608已經(jīng)在SMM中,所以線程608的SMI未決位保持設(shè)置。在時(shí)間段618期間,線程608執(zhí)行SMI處理機(jī),其處理所有未決SMI,包含SMI 612和SMI 616。在時(shí)間段618與620之間的邊界,線程606、608執(zhí)行RSM指令622,并且返回到保護(hù)模式602。在時(shí)間段620期間,線程608立即返回到SMM 604,因?yàn)榫€程608的SMI未決位仍被設(shè)置。然而,線程606保持在保護(hù)模式602中,因?yàn)槲磳?duì)于線程606設(shè)置SMI未決位。從而,線程608基于寄生SMI進(jìn)入SMM 604。在時(shí)間段624期間,線程608閑置地等待線程606進(jìn)入SMM 604,其將不發(fā)生而沒有超時(shí)、處理器間中斷等。從而,由于SMI合并,線程606、608不同步并且執(zhí)行可停止。
[0012]現(xiàn)在參考圖1,用于處理SMI的說明性計(jì)算裝置100包含多核處理器102和I/O子系統(tǒng)104,它們都可生成SMI。在接收到SMI時(shí),處理器102指定主處理器核,其開始處理SMI而不等待其它處理器核進(jìn)入SMM。主處理器核可引導(dǎo)每一個(gè)其它處理器核處理從其它處理器核始發(fā)的那些SMI。處理器102可通過檢測(cè)寄生SMI并快速重新開始執(zhí)行來避免SMI合并問題,如下面詳細(xì)討論的。
[0013]通過發(fā)起SMI的處理而不等待其它處理器核進(jìn)入SMM,處理器102減少了處理SMI的等待時(shí)間,并隨著核的計(jì)數(shù)的增大而增大SMI處理的可縮放性。引導(dǎo)其它處理器核處理SMI允許處理從具體處理器核始發(fā)的SMI,因?yàn)榕c此類SMI相關(guān)的信息僅在始發(fā)SMI的處理器核中可用。檢測(cè)寄生SMI進(jìn)一步減少了等待時(shí)間,并改進(jìn)了 SMI處理的可縮放性。此類改進(jìn)的等待時(shí)間和可縮放性可允許機(jī)器檢查異常的基于SMI的處理。
[0014]計(jì)算裝置100可被實(shí)施為能夠執(zhí)行本文描述的功能的任何類型裝置。例如,計(jì)算裝置100可實(shí)施為但不限于計(jì)算機(jī)、智能電話、平板計(jì)算機(jī)、膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、工作站、移動(dòng)計(jì)算裝置、蜂窩電話、手機(jī)、消息傳遞裝置、車載信息處理裝置、網(wǎng)絡(luò)器具、web器具、分布式計(jì)算系統(tǒng)、多處理器系統(tǒng)、基于處理器的系統(tǒng)、消費(fèi)電子裝置、數(shù)字電視裝置和/或配置成處理系統(tǒng)管理中斷的任何其它計(jì)算裝置。如圖1中所示,說明性計(jì)算裝置100包含處理器102、I/O子系統(tǒng)104、存儲(chǔ)器106和數(shù)據(jù)存儲(chǔ)裝置110。當(dāng)然,在其它實(shí)施例中,計(jì)算裝置100可包含其它或附加組件,諸如在臺(tái)式計(jì)算機(jī)中發(fā)現(xiàn)的組件(例如各種輸入/輸出裝置)。此外,在一些實(shí)施例中,說明性組件中的一個(gè)或多個(gè)可結(jié)合在另一組件中,或另外來自另一組件的一部分。例如,在一些實(shí)施例中,存儲(chǔ)器106或其部分可結(jié)合在處理器102中。
[0015]處理器102可實(shí)施為能夠執(zhí)行本文描述的功能的任何類型的多核處理器。例如,處理器102可實(shí)施為微處理器、數(shù)字信號(hào)處理器、微控制器或其它處理器或處理/控制電路。處理器102包含處理器核120和非核140。每一個(gè)處理器核120是能夠執(zhí)行編程指令的獨(dú)立處理單元。說明性處理器102包含四個(gè)處理器核120a至120d ;然而,可包含任何數(shù)量的處理器核120。
[0016]非核140包含未包含在處理器核120中的處理器102的任何部分,諸如例如存儲(chǔ)器控制器。說明性處理器102的非核140包含SMI狀態(tài)寄存器142。SMI狀態(tài)寄存器142是由每一個(gè)處理器核120可尋址的存儲(chǔ)器位置。SMI狀態(tài)寄存器142包含SMI服務(wù)未決標(biāo)記144。當(dāng)檢測(cè)到SMI時(shí),SMI服務(wù)未決標(biāo)記144由處理器102的硬件設(shè)置。SMI服務(wù)未決標(biāo)記144也可由在處理器核120上執(zhí)行的軟件清除。當(dāng)設(shè)置時(shí),SMI服務(wù)未決標(biāo)記144可含有任何邏輯值;例如,當(dāng)設(shè)置時(shí),SMI服務(wù)未決標(biāo)記144可含有邏輯高值、邏輯低值、零值或非零值。在一些實(shí)施例中,SMI服務(wù)未決標(biāo)記144可實(shí)現(xiàn)為SMI狀態(tài)寄存器142的一個(gè)位。備選地,SMI服務(wù)未決標(biāo)記144可以是獨(dú)立寄存器。非核140進(jìn)一步包含高速緩沖存儲(chǔ)器146,并且非核140的一些實(shí)施例可包含存儲(chǔ)器控制器148。高速緩沖存儲(chǔ)器146可以是由處理器核120共享的最后一級(jí)高速緩存。在操作期間,高速緩沖存儲(chǔ)器146和存儲(chǔ)器控制器148可生成要由處理器102處理的SMI。盡管未圖示,但非核140此外可包含處理器或片上系統(tǒng)的典型組件,諸如圖形處理器、輸入/輸出控制器或功率管理電路。
[0017]處理器102以通信方式耦合到I/O子系統(tǒng)104,I/O子系統(tǒng)104可實(shí)施為電路和/或組件以便于與計(jì)算裝置100的處理器102、存儲(chǔ)器106和/或其它組件的輸入/輸出操作。例如,I/o子系統(tǒng)104可實(shí)施為或以其他方式包含存儲(chǔ)器控制器集線器、平臺(tái)控制器集線器、輸入/輸出控制集線器、固件裝置、通信鏈路(即,點(diǎn)對(duì)點(diǎn)鏈路、總線鏈路、導(dǎo)線、電纜、光導(dǎo)、印刷電路板跡線等)和/或其它組件和子系統(tǒng)以便于輸入/輸出操作。I/O子系統(tǒng)104可生成SMI,或轉(zhuǎn)發(fā)從計(jì)算裝置100的其它組件接收的SMI。I/O子系統(tǒng)104可通過斷言處理器102的物理輸入管腳上的電信號(hào)將SMI傳遞