安全的錯誤處理的制作方法
【專利摘要】一些實施例包括操作系統(tǒng)和平臺。平臺包括具有錯誤寄存器的處理器。操作系統(tǒng)僅能夠經(jīng)由所述平臺以安全的方式(例如,使用平臺固件)寫入到錯誤寄存器。對其他實施例也進(jìn)行描述并要求保護(hù)。
【專利說明】安全的錯誤處理
[0001] 相關(guān)申請
[0002] 本申請涉及2010年12月17日遞交的、名稱為"INJECTING ERROR AND/OR MIGRATING MEMORY IN A COMPUTING SYSTEM"的美國專利申請?zhí)枮?12/971,868 的申請。該 申請描述了用于真實錯誤注入的實現(xiàn)。
【技術(shù)領(lǐng)域】
[0003] 概括而言,本發(fā)明涉及安全的錯誤處理。
【背景技術(shù)】
[0004] 為了更好的可靠性、可用性和可服務(wù)性(RAS)體驗,采用錯誤檢測、錯誤修正、錯 誤恢復(fù)和錯誤記錄功能來構(gòu)建服務(wù)器系統(tǒng)(特別是可伸縮可擴(kuò)展和關(guān)鍵任務(wù)系統(tǒng))。
[0005] 機(jī)器檢查架構(gòu)(MCA)是英特爾至強(qiáng)⑧處理器中所使用的機(jī)制,用于將處理器相關(guān) 的錯誤報告至上層軟件。機(jī)器檢查架構(gòu)一般被限制為處理器部件相關(guān)的錯誤,例如,核心、 高速緩存等。然而,隨著將存儲器控制器、PCIe根復(fù)合體等集成到至強(qiáng)?處理器插槽中,機(jī) 器檢查架構(gòu)的范圍已經(jīng)被報告為包含來自所有這些部件的錯誤處理和RAS事件。機(jī)器檢查 架構(gòu)中的另一個提升是錯誤恢復(fù),其中從處理器/平臺的立場無法改正的錯誤被提供至操 作系統(tǒng)(0S)或虛擬機(jī)監(jiān)視器(VMM),以用于恢復(fù)。
[0006] 根據(jù)上面的創(chuàng)新,對于操作系統(tǒng)供應(yīng)商(0SV)和/或虛擬機(jī)供應(yīng)商(VMV)來說 非常重要的是,全面地驗證平臺上的錯誤處理、錯誤報告以及錯誤恢復(fù)是否是以操作系統(tǒng) (0S)和/或虛擬機(jī)監(jiān)視器(VMM)預(yù)期的方式工作。這被稱為RAS/錯誤處理代碼覆蓋。代 碼覆蓋允許0S和/或VMM確保錯誤處理、恢復(fù),以及RAS特征端到端地做真實的工作。這 涉及生成不同類型的錯誤,例如不同的處理器核心、處理器高速緩存、存儲器、輸入/輸出 設(shè)備、系統(tǒng)互連等上的錯誤。為了檢驗錯誤處理功能,錯誤注入功能需要對于在運行時產(chǎn)品 平臺上的0S和/或VMM是可用的。對于要在各種錯誤子系統(tǒng)上實現(xiàn)真實錯誤注入機(jī)制的 硬件以及所有錯誤情況而言,其是非常復(fù)雜并且昂貴的。此外,錯誤注入機(jī)制本身不應(yīng)當(dāng)對 系統(tǒng)的安全造成風(fēng)險。
[0007] 目前錯誤處理代碼利用真實錯誤注入的有限集合進(jìn)行驗證。這種真實錯誤注入機(jī) 制僅允許一次注入一個錯誤。因此,錯誤處理代碼僅得到有限的錯誤代碼執(zhí)行覆蓋。于是 有必要執(zhí)行多個手工代碼復(fù)查,以便確定附加的代碼覆蓋路徑。
[0008] -些先前的實現(xiàn)允許通過寫入至另一個環(huán)0代碼可訪問寄存器寫入來自環(huán)0代碼 的MCA庫。這是安全漏洞。由于MCA庫寫入啟用寄存器在環(huán)0域中,所以任何環(huán)0代碼能 夠進(jìn)入并且啟用MCA庫寫入功能,并且寫入到MCA庫,并引起不想要的錯誤情況。此外,先 前的實現(xiàn)都沒有提供對錯誤進(jìn)行信號發(fā)送,例如機(jī)器檢查架構(gòu)(MCA)和修正機(jī)器檢查錯誤 中斷(CMCI),限制了實現(xiàn)的特征有效性。
[0009] 本發(fā)明人另外發(fā)現(xiàn)當(dāng)前的解決方案沒有提供對MCA庫寫入啟動/禁用功能的保 護(hù),也沒有提供對錯誤信號發(fā)送(MCA/CMCI)生成啟用/禁用的保護(hù)。
【專利附圖】
【附圖說明】
[0010] 根據(jù)下文給出的本發(fā)明的一些實施例的【具體實施方式】以及附圖將更加全面地理 解本發(fā)明,然而,其不應(yīng)當(dāng)被理解為將本發(fā)明限制為所描述的特定的實施例,而僅是出于解 釋和理解的目的。
[0011] 圖1示出了根據(jù)本發(fā)明的一些實施例的系統(tǒng)。
[0012] 圖2示出了根據(jù)本發(fā)明的一些實施例的流程。
[0013] 圖3示出了根據(jù)本發(fā)明的一些實施例的流程。
[0014] 圖4示出了根據(jù)本發(fā)明的一些實施例的流程。
【具體實施方式】
[0015] 本發(fā)明的一些實施例涉及安全的錯誤處理。
[0016] 在一些實施例中,用于機(jī)器檢查錯誤代碼覆蓋的錯誤注入是安全并且高效地實現(xiàn) 的(例如,在用于英特爾服務(wù)器處理器和/或英特爾至強(qiáng)?處理器的一些實施例中)。
[0017] 一些實施例包括操作系統(tǒng)、包括系統(tǒng)管理模式(SMM)控制(和/或例如,SMM功能 和/或SMM固件)的基本輸入/輸出系統(tǒng),以及包括錯誤寄存器的處理器。操作系統(tǒng)僅能 夠經(jīng)由系統(tǒng)管理模式控制、功能、固件、等寫入到錯誤寄存器。
[0018] 一些實施例包括操作系統(tǒng)以及包括處理器的平臺。處理器包括錯誤寄存器。操作 系統(tǒng)僅能夠經(jīng)由平臺以安全的方式寫入到錯誤寄存器。在一些實施例中,操作系統(tǒng)僅能夠 經(jīng)由平臺固件以安全的方式寫入到錯誤寄存器。
[0019] 圖1示出了根據(jù)一些實施例的系統(tǒng)100。在一些實施例中,系統(tǒng)100包括平臺102、 操作系統(tǒng)/虛擬機(jī)監(jiān)視器(或環(huán)0代碼)104、錯誤處理器106、應(yīng)用/來賓操作系統(tǒng)108, 以及應(yīng)用/來賓操作系統(tǒng)110。在一些實施例中,平臺102包括處理器(和/或處理器硬 件)122、系統(tǒng)基本輸入輸出系統(tǒng)(BIOS) 124,以及錯誤注入軟件提取126。在一些實施例中, 系統(tǒng)BI0S124包括系統(tǒng)管理模式(SMM)代碼/數(shù)據(jù)128 (和/或SMM控制、SMM功能、SMM控 制器等)。在一些實施例中,SMM代碼/日期在固件中實現(xiàn)。在一些實施例中,處理器122 包括機(jī)器檢查架構(gòu)(MCA)庫寫功能啟用/禁用寄存器132和錯誤信號發(fā)送機(jī)器檢查架構(gòu) (MCA) /修正機(jī)器檢查錯誤中斷(CMCI)啟用/禁用寄存器134。
[0020] 在一些實施例中,處理器122能夠啟用或禁用向MCA存儲器庫的寫入。在一些實 施例中,處理器122能夠作為特定模式寄存器(MSR)或配置空間寄存器(CSR)來發(fā)送錯誤 信號。根據(jù)一些實施例,處理器122中的啟用/禁用寄存器132和134僅從系統(tǒng)管理模式 (SMM)是可訪問的。這確保了在不直接通過可信任的SMM代碼的情況下沒有操作系統(tǒng)(0S) 代碼能夠啟用該特征。
[0021] 在一些實施例中,寫入到MCA庫是從環(huán)0代碼104實現(xiàn)的。在一些實施例中,環(huán) 〇代碼104能夠發(fā)送MCA/CMCI信號。在一些實施例中,MCA庫寫入功能僅從系統(tǒng)管理模式 (SMM)啟用和/或禁用,為該特征的使用提供了安全性。在一些實施例中,錯誤信號發(fā)送 (MCA/CMCI)僅從SMM啟用和/或禁用,為該特征的使用提供了安全性。在一些實施例中,操 作系統(tǒng)(0S)檢測用于代碼覆蓋的安全的錯誤注入的可用性。在一些實施例中,向0S錯誤 注入功能的軟件提取被實現(xiàn)作為BI0S/0S接口。
[0022] 圖2示出了根據(jù)一些實施例的流程200。在一些實施例中,流程200示出了用于發(fā) 布BI0S/0S接口的BIOS流程。在一些實施例中,流程200示出了啟動期間的BIOS代碼流 程,其中對平臺和/或處理器中的特征可用性進(jìn)行識別,并且發(fā)布了 BI0S/0S接口(例如, ACPI表/方法或高級配置和功率接口表/方法)。在一些實施例中,流程開始于202,其中 確定針對錯誤注入BIOS設(shè)置選項是否啟用。如果在202確定不針對錯誤注入而啟用BIOS 設(shè)置選項,則在204不公布用于錯誤注入的BI0S/0S接口,并且流程進(jìn)入206以繼續(xù)0S啟動 過程。如果在202確定針對錯誤注入而啟用BIOS設(shè)置選項,則在208處確定處理器在208 處是否支持代碼覆蓋錯誤注入功能。如果在208處確定處理器不支持代碼覆蓋錯誤注入功 能,則流程進(jìn)入206以繼續(xù)0S啟動過程。如果在208處確定處理器確實支持代碼覆蓋錯誤 注入功能,則在210處創(chuàng)建SMM基礎(chǔ)結(jié)構(gòu),用來處理錯誤處理代碼覆蓋錯誤注入接口。然后 在212處發(fā)布用于錯誤注入的BI0S/0S接口,并且然后流程進(jìn)入206以繼續(xù)0S啟動過程。
[0023] 圖3示出了根據(jù)一些實施例的流程300。在一些實施例中,流程300示出了用于啟 用/禁用寫入錯誤日志/錯誤信號發(fā)送硬件的系統(tǒng)管理模式(SMM)代碼流程。在一些實施 例中,流程300示出了當(dāng)0S調(diào)用BI0S/0S接口以啟用/禁用MCA庫寫入功能和錯誤信號發(fā) 送功能時,SMM代碼所采取的動作。
[0024] 在一些實施例中,流程300開始于302處系統(tǒng)管理中斷(SMI)模塊。在304處,確 定所述SMI是否是錯誤處理代碼覆蓋產(chǎn)生的SMI。如果在304處,不是錯誤處理代碼覆蓋產(chǎn) 生的SMI,那么常規(guī)的SMI流程在306處繼續(xù)。如果在304處,是錯誤處理代碼覆蓋產(chǎn)生的 SMI,那么在308處確定關(guān)于錯誤日志硬件啟用和/或禁用是否是按照期望的。在308處, 如果錯誤日志硬件啟用和/或禁用是不按照期望的,那么流程進(jìn)入到310,在310處做出確 定錯誤信號發(fā)送啟用/禁用的決定。如果在308處錯誤日志硬件啟用和/或禁用是按照期 望的,則在312處執(zhí)行錯誤日志硬件(MCA庫)寫入功能的啟用/禁用,并且如果在流程進(jìn) 入310之前流程不能設(shè)置請求操作,則帶有錯誤來進(jìn)行響應(yīng)。如果在310處確定沒有錯誤信 號發(fā)送啟用/禁用,那么常規(guī)的SMI流程在306繼續(xù)。如果在310處確定錯誤信號發(fā)送啟 用/禁用,那么在314處執(zhí)行錯誤信號發(fā)送功能的啟用/禁用,并且常規(guī)的SMI流程在306 處繼續(xù)。
[0025] 圖4示出了根據(jù)一些實施例的流程400。在一些實施例中,流程400示出了用于注 入錯誤的0S流程。在一些實施例中,流程400示出了根據(jù)一些實施例0S如何使用BI0S/0S 接口并且將錯誤注入到系統(tǒng)。
[0026] 在402處,流程400開始,確定BI0S/0S接口對于錯誤處理代碼覆蓋錯誤注入是否 是可用的。在402處,如果BI0S/0S接口對于錯誤處理代碼覆蓋錯誤注入是不可用的,那么 在404處確定平臺不支持錯誤注入功能(例如,不支持MCA庫錯誤注入功能)。如果在402 處確定BI0S/0S接口對于錯誤處理代碼覆蓋錯誤注入是可用的,那么在406處確定要被注 入的錯誤(例如,通過構(gòu)建錯誤日志列表)。然后在408處可以通過調(diào)用BIOS接口(和/ 或ACPI接口)來啟用MCA庫寫功能。在410處確定MCA庫寫入功能是否成功。如果沒有, 在412處錯誤注入失敗。如果成功,在414處從列表中選擇錯誤。在416處,選擇用于設(shè)置 錯誤的線程,并且選擇用于設(shè)置錯誤的MCA庫。然后在418處寫入錯誤日志數(shù)據(jù)。在420 處,當(dāng)前的MCA庫被讀取,并且確定讀取與寫入的值是否匹配。如果不是,如果所有的庫都 被用盡,則存在錯誤,并且在流程返回418之前,在422處清除當(dāng)前的MCA庫,并且選擇不同 的MCA庫。如果在420處讀取與寫入的值匹配,則在424處確定所有錯誤是否都在錯誤列表 集合中。如果不是,流程返回414。如果是,則在426處,通過調(diào)用BIOS接口(和/或ACPI 接口)禁用MCA庫非零寫入功能。這指出錯誤注冊設(shè)置成功,并且在428處發(fā)送錯誤信號。 然后在430處,通過調(diào)用BIOS接口(和/或ACPI接口)來啟用MCA/CMCI信號發(fā)送功能。 然后在432處,如果要發(fā)送CMCI信號,則選擇所需要的線程。然后在434處,發(fā)送MCA或 CMCI信號(例如,通過調(diào)用BIOS接口動作序列)。然后在436處,MCA/CMCI信號發(fā)送功能 被禁用。
[0027] 基本輸入/輸出系統(tǒng)(BIOS)的運行時上下文是系統(tǒng)管理中斷(SMI),并且在該執(zhí) 行上下文中,BIOS不能發(fā)送MCA信號。該實現(xiàn)提供MCA庫寫入(錯誤寄存器寫入)的啟用, 并且使MCA/CMCI信號發(fā)送控制寄存器處于SMI控制之下。其還允許一旦MCA/CMCI信號發(fā) 送啟用,則0S/VMM寫入以觸發(fā)MCA或CMCI的信號寫入。通過BIOS接口來提取這些細(xì)節(jié), 使得0S/VMM不需要感知實現(xiàn)的細(xì)節(jié)。
[0028] 在一些實施例中,其中啟用了受信任的平臺執(zhí)行(TXT),用于寫入MC庫寄存器的 控制寄存器和用于啟用MCA/CMCI信號發(fā)送的控制寄存器被禁用直到SMI本身在受信任的 計算邊界(TCB)內(nèi)。這允許在這樣的受信任的環(huán)境中實現(xiàn)其他實施例。
[0029] 在一些實施例中,0S/驅(qū)動器確定已經(jīng)準(zhǔn)備好執(zhí)行用于代碼覆蓋的錯誤注入。0S/ 驅(qū)動器于是調(diào)用BIOS接口來啟用MCA庫寫入功能。在該點處,0S/驅(qū)動器(環(huán)0代碼)寫 入到MCA庫。錯誤處理代碼覆蓋驗證驅(qū)動器確定在驗證中感興趣的錯誤,并且針對各種不 同的MCA庫和線程構(gòu)建錯誤日志值。驗證驅(qū)動器將錯誤日志寫入到選出的MCA庫和線程。 然后,基于錯誤類型,驗證驅(qū)動器發(fā)送例如CMCI或MCA信號。一旦發(fā)送了錯誤信號,則中斷 致使錯誤處理器得以調(diào)用,并且錯誤處理器認(rèn)為其接收了真實的錯誤并且正常地處理該錯 誤。修改錯誤處理器代碼以便驗證錯誤處理代碼路徑是不必要的。根據(jù)一些實施例的錯誤 注入是以在發(fā)送錯誤信號之前在多個MCA庫和線程上創(chuàng)建錯誤的方式來實現(xiàn)的。以這種方 式,可以創(chuàng)建同時發(fā)生錯誤的場景。
[0030] 根據(jù)一些實施例,由于MCA庫啟用和/或禁用,以及錯誤信號控制在系統(tǒng)管理模式 (SMM)內(nèi)并且在錯誤注入期間沒有數(shù)據(jù)被暴露,因此不會暴露安全漏洞。
[0031] 在一些實施例中,在發(fā)送錯誤信號之前,不同類型的錯誤被設(shè)置在不同的MCA庫、 不同的中央處理單元(CPU)或處理器線程,和/或不同的CPU或處理器插槽上。這啟用不 同的錯誤處理器代碼流程的執(zhí)行,并且創(chuàng)建了之前不可能的不同的錯誤場景。這些類型的 場景的創(chuàng)建允許在錯誤處理流程中驗證各種極端情況。
[0032] 在一些實施例中,只允許來自系統(tǒng)管理模式(SMM)的MCA庫寫入和錯誤信號發(fā)送 特征。SMM架構(gòu)為平臺提供了安全性,因為SMM代碼或數(shù)據(jù)在SMM之外是不能被訪問的。這 就確保了沒有惡意軟件或不受信任的代碼能夠進(jìn)入到SMM中并且啟用這些特征。
[0033] 一些先前的實現(xiàn)允許通過寫入至另一個環(huán)0代碼可訪問的寄存器來從環(huán)0代碼寫 入MCA庫。這是安全漏洞。因為MCA庫寫入啟用寄存器在環(huán)0域中,任意環(huán)0代碼能夠進(jìn) 入并且啟用MCA庫寫入功能并且寫入到MCA庫,并且引起不想要的錯誤情況。此外,先前的 實現(xiàn)不能提供諸如MCA和CMCI之類的錯誤信號發(fā)送,限制了實現(xiàn)的特征有效性。
[0034] 當(dāng)前的解決方案沒有提供對MCA庫寫入啟用/禁用功能的保護(hù),或者對錯誤信號 發(fā)送(MCA/CMCI)生成的啟用/禁用的保護(hù)。根據(jù)一些實施例,針對啟用MCA庫寫入功能和 錯誤信號發(fā)送功能提供了保護(hù)。在一些實施例中,實現(xiàn)了 MCA庫寫入功能和錯誤信號發(fā)送 功能啟用/禁用的軟件提取。在一些實施例中,如果硬件改變了,而錯誤處理代碼覆蓋錯誤 注入并不需要改變。
[0035] 在一些實施例中,實現(xiàn)了 MCA庫寫入的啟用和/或及禁用(錯誤日志硬件寫入)。 在一些實施例中,錯誤信號發(fā)送硬件的使用得到了保護(hù)。在一些實施例中,實現(xiàn)了硬件實現(xiàn) 到軟件的提取,使得如果硬件實現(xiàn)寄存器或位置改變,也不需要對軟件做出改變。
[0036] 在一些實施例中,操作系統(tǒng)供應(yīng)商(0SV)能夠驗證錯誤處理流程,以及處理器(例 如,服務(wù)器處理器和/或英特爾至強(qiáng)?處理器)上RAS的0S實現(xiàn)將具有更好的質(zhì)量。這降 低了啟用RAS/錯誤處理的成本。根據(jù)一些實施例,任何錯誤組合都可以被填充于MCA庫中, 以允許0S驗證未來的特征錯誤處理甚至在硅是可用的之前,并且是以安全的方式。
[0037] 盡管本文描述的一些實施例是以特定的方式實現(xiàn)的,但是根據(jù)一些實施例,這些 具體的實施方式可以不是必須的。例如,本文中描述一些實施例包括系統(tǒng)管理模式(SMM) 代碼/數(shù)據(jù)、SMM功能、SMM控制,以及SMM控制器等。然而,其他實施例不需要實現(xiàn)SMM。此 夕卜,在一些實施例中,一些功能(例如SMM,BI0S等)可以實現(xiàn)于固件、軟件,和/或硬件中。 在一些實施例中,對啟用/禁用錯誤寄存器和/或錯誤的檢測、修正、恢復(fù)、記錄日志等進(jìn)行 的平臺控制以安全的方式來實現(xiàn),而非使用例如操作系統(tǒng)(0S)和/或虛擬機(jī)監(jiān)視器(VMM) 來控制這樣的功能。
[0038] 盡管參考了具體的實施方式來對一些實施例進(jìn)行了描述,但是根據(jù)一些實施例, 其他實施方式是可能的。此外,在附圖中示出的和/或本文描述的電路元件或其他特征的 布置和/或順序不必以示出和描述的特定方式進(jìn)行布置。根據(jù)一些實施例,許多其他布置 也是可能的。
[0039] 在附圖中示出的每一個系統(tǒng)中,在一些情況下元件均可以具有相同的附圖標(biāo)記或 不同的附圖標(biāo)記,用來表明所代表的元件可以是不同的和/或相似的。然而,元件可以是足 夠靈活的,以具有不同的實施方式,并且與本文所示出的或描述的系統(tǒng)中的一些或所有系 統(tǒng)共同工作。圖中示出的各種元件可以是相同的或不同的。哪一個元件被稱為第一元件和 哪一個元件被稱為第二元件是任意的。
[0040] 在說明書和權(quán)利要求中,可以使用術(shù)語"耦合"和"連接"以及它們的衍生詞。應(yīng) 當(dāng)理解的是,這些術(shù)語并非想要作為彼此的同義詞。而是,在具體實施例中,"連接"可以用 于指明兩個或更多的元件相互處于直接的物理或電氣接觸中。"耦合"可以表示兩個或更多 的元件處于直接的物理或電氣接觸中。然而,"耦合"的意思還可以表示兩個或更多的元件 相互并不直接接觸,但仍然共同操作或彼此互連。
[0041] 本文是一種算法,并且通常被認(rèn)為是產(chǎn)生期望的結(jié)果的動作或操作的自相一致的 序列。這些序列包括對物理量進(jìn)行的物理操作。通常,盡管不是必須的,這些量采取能夠被 存儲、傳輸、組合、比較、以及操控的電或磁信號的形式。已經(jīng)被多次證明很方便的是,主要 是出于通用性的原因,將這些信號指出為位、值、元件、符號、字符、項、數(shù)字等。然而,應(yīng)當(dāng)理 解的是,所有這些和相似的術(shù)語是與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián)的,并且僅僅是用于這些物理量 的便利的標(biāo)記。
[0042] 一些實施例可以在硬件、固件以及軟件中的一種或組合中實現(xiàn)。一些實施例還可 以被實現(xiàn)為存儲于機(jī)器可讀介質(zhì)上的指令,所述指令可以通過計算平臺進(jìn)行讀取和執(zhí)行以 完成文本描述的操作。機(jī)器可讀介質(zhì)可以包括以由機(jī)器(例如,計算機(jī))可讀的形式用于 存儲或傳輸信息的任何機(jī)制。例如,機(jī)器可讀介質(zhì)可以包括只讀存儲器(ROM);隨機(jī)存取存 儲器(RAM);磁盤存儲介質(zhì);光學(xué)存儲介質(zhì);閃存存儲器設(shè)備;電的、光的、聲的或其他形式 的傳播信號(例如,載波、紅外信號、數(shù)字信號、發(fā)送和/或接收信號的接口、等),以及其他。 [0043] 實施例是本發(fā)明的實施方式或示例。說明書中引用的"實施例"、"一個實施例"、 "一些實施例",或"其他實施例"表示連同實施例所描述的具體的特征、結(jié)構(gòu)、或特性包括在 至少一些實施例中,但是不一定包括在本發(fā)明的所有實施例中。"實施例"、"一個實施例"、 或"一些實施例"的各種出現(xiàn)不一定全部指代相同的實施例。
[0044] 并非本文描述和示出的所有部件、特征、結(jié)構(gòu)、特性等都需要包括在特定的實施例 或多個實施例中。如果說明書陳述:例如部件、特征、結(jié)構(gòu)或特性"可以"、"可能"、"能夠"或 "能"被包括在內(nèi),那么具體的部件、特征、結(jié)構(gòu)、或特性不是必須被包括在內(nèi)的。如果說明書 或權(quán)利要求書提及"一"或"一個"元件,其不表示僅元件中的一個。如果說明書或權(quán)利要 求書提及"附加的"元件,其并不排除存在多于一個的附加的元件。
[0045] 盡管本文使用了流程圖和/或狀態(tài)圖來描述實施例,但是本發(fā)明并不限于這些圖 或本文中相對應(yīng)的描述。例如,流程不需要通過每一個示出的方框或狀態(tài)或嚴(yán)格按照本文 所示出的或描述的相同的順序來移動。
[0046] 本發(fā)明并不受限于本文列出的具體細(xì)節(jié)。事實上,受益于本發(fā)明本領(lǐng)域的技術(shù)人 員將意識到,可以在本發(fā)明的范圍之內(nèi)做出來自先前的描述和附圖的多種其他變形。因此, 包括對其進(jìn)行任何修正的以下的權(quán)利要求限定了本發(fā)明的范圍。
【權(quán)利要求】
1. 一種裝置,包括: 操作系統(tǒng);以及 包括處理器的平臺,所述處理器包括錯誤寄存器; 其中,所述操作系統(tǒng)僅能夠經(jīng)由所述平臺以安全的方式寫入到所述錯誤寄存器。
2. 如權(quán)利要求1所述的裝置,所述平臺進(jìn)一步包括系統(tǒng)管理模式功能,其中,所述操作 系統(tǒng)僅能夠經(jīng)由所述系統(tǒng)管理模式功能以安全的方式寫入到所述錯誤寄存器。
3. 如權(quán)利要求2所述的裝置,其中,所述系統(tǒng)管理模式功能包括在基本輸入/輸出系統(tǒng) 內(nèi)。
4. 如權(quán)利要求1所述的裝置,其中,所述操作系統(tǒng)僅能夠經(jīng)由平臺固件以安全的方式 寫入到所述錯誤寄存器。
5. 如權(quán)利要求1所述的裝置,其中,所述錯誤寄存器包括機(jī)器檢查架構(gòu)寄存器和錯誤 信號發(fā)送寄存器中的至少一個。
6. 如權(quán)利要求1所述的裝置,其中,所述錯誤寄存器經(jīng)由所述平臺來進(jìn)行啟用和/或禁 用。
7. 如權(quán)利要求1所述的裝置,其中,所述錯誤寄存器是僅通過所述平臺來進(jìn)行啟用和/ 或禁用的機(jī)器檢查架構(gòu)寄存器。
8. 如權(quán)利要求1所述的裝置,其中,所述平臺是用于控制所述操作系統(tǒng)與所述處理器 之間的錯誤信號發(fā)送的。
9. 如權(quán)利要求1所述的裝置,其中,所述平臺是用于啟用和/或禁用所述操作系統(tǒng)與所 述處理器之間的錯誤信號發(fā)送的。
10. 如權(quán)利要求1所述的裝置,其中,所述錯誤寄存器是由所述平臺控制的機(jī)器檢查架 構(gòu)寄存器,并且所述處理器進(jìn)一步包括由所述平臺控制的錯誤信號發(fā)送寄存器。
11. 如權(quán)利要求1所述的裝置,其中,所述操作系統(tǒng)用于經(jīng)由所述平臺寫入到所述錯誤 寄存器。
12. 如權(quán)利要求1所述的裝置,其中,錯誤注入是經(jīng)由所述平臺來實現(xiàn)的。
13. -種方法,包括: 從操作系統(tǒng)經(jīng)由平臺以安全的方式寫入到包括在處理器中的錯誤寄存器。
14. 如權(quán)利要求13所述的方法,進(jìn)一步包括從所述操作系統(tǒng)經(jīng)由包括在所述平臺中的 系統(tǒng)管理模式功能以安全的方式寫入到包括在所述處理器中的所述錯誤寄存器。
15. 如權(quán)利要求14所述的方法,其中,所述系統(tǒng)管理模式功能包括在所述平臺的基本 輸入/輸出系統(tǒng)中。
16. 如權(quán)利要求13所述的方法,進(jìn)一步包括經(jīng)由平臺固件以安全的方式從所述操作系 統(tǒng)寫入到所述錯誤寄存器。
17. 如權(quán)利要求13所述的方法,其中,所述錯誤寄存器包括機(jī)器檢查架構(gòu)寄存器和錯 誤信號發(fā)送寄存器中的至少一個。
18. 如權(quán)利要求13所述的方法,進(jìn)一步包括經(jīng)由所述平臺啟用和/或禁用所述錯誤寄 存器。
19. 如權(quán)利要求13所述的方法,其中,所述錯誤寄存器是機(jī)器檢查架構(gòu)寄存器,所述方 法進(jìn)一步包括僅由所述平臺來啟用和/或禁用所述機(jī)器檢查架構(gòu)寄存器。
20. 如權(quán)利要求13所述的方法,進(jìn)一步包括經(jīng)由所述平臺來控制所述操作系統(tǒng)與所述 處理器之間的錯誤信號發(fā)送。
21. 如權(quán)利要求13所述的方法,進(jìn)一步包括經(jīng)由所述平臺啟用和/或禁用所述操作系 統(tǒng)與所述處理器之間的錯誤信號發(fā)送。
22. 如權(quán)利要求13所述的方法,其中,所述錯誤寄存器是機(jī)器檢查架構(gòu)寄存器,所述方 法進(jìn)一步包括,通過所述平臺來控制所述處理器中的所述機(jī)器檢查架構(gòu)寄存器和錯誤信號 發(fā)送寄存器。
23. 如權(quán)利要求13所述的方法,進(jìn)一步包括經(jīng)由所述平臺從所述操作系統(tǒng)寫入到所述 錯誤寄存器。
24. 如權(quán)利要求13所述的方法,進(jìn)一步包括經(jīng)由所述平臺注入一個或多個錯誤。
【文檔編號】G06F11/07GK104115125SQ201180075968
【公開日】2014年10月22日 申請日期:2011年12月29日 優(yōu)先權(quán)日:2011年12月29日
【發(fā)明者】M·K·納奇姆蘇, M·J·庫馬爾, T·伊格扎瓦, A·瓦爾加斯, R·庫拉姆科特 申請人:英特爾公司