欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

包括不可糾正的錯誤的地址范圍的通知的制作方法

文檔序號:8367450閱讀:763來源:國知局
包括不可糾正的錯誤的地址范圍的通知的制作方法
【專利說明】
【背景技術(shù)】
[0001]機器校驗架構(gòu)是一種可以在現(xiàn)代計算系統(tǒng)中用于檢測故障(如內(nèi)存中的故障)的技術(shù)。在許多計算系統(tǒng)中,通過糾錯碼(ECC)保護內(nèi)存。通常使用的糾錯碼能夠檢測和糾正單比特錯誤。在多比特錯誤的情況下,ECC能夠檢測該錯誤,但不能糾正該錯誤。在使用機器校驗架構(gòu)的系統(tǒng)中,當(dāng)發(fā)現(xiàn)包括不可糾正的錯誤的內(nèi)存位置時,在該內(nèi)存位置中設(shè)置被稱為毒藥簽名(poison signature)或簡稱毒藥(poison)的特殊值。該毒藥簽名一般通過操縱ECC比特來產(chǎn)生。數(shù)據(jù)中不可糾正的錯誤可以由內(nèi)存控制器、CPU緩存、1設(shè)備或在任意多個其它元件中被識別,并且那些元件中的任意元件能夠在該數(shù)據(jù)中生成毒藥簽名。
[0002]系統(tǒng)能夠長期運行,即使存在毒藥。但是,當(dāng)中央處理單元(CPU)嘗試使用包括毒藥的內(nèi)存位置時,處理器可能產(chǎn)生機器校驗異常。該機器校驗異??梢杂捎嬎阍O(shè)備的固件或操作系統(tǒng)截獲。在一些情況下,不能夠采取糾正措施,并且整個系統(tǒng)可能崩潰。但是,在其它情況下,操作系統(tǒng)能夠采取恢復(fù)措施。例如,操作系統(tǒng)可以殺掉正在使用被確定包括毒藥的內(nèi)存位置的特定進程。
【附圖說明】
[0003]圖1是根據(jù)本文描述的技術(shù)的系統(tǒng)的示例。
[0004]圖2是用于處理不可糾正的內(nèi)存錯誤的概要流程圖的示例。
[0005]圖3是用于基于不可糾正的錯誤的檢測來初始化內(nèi)存的概要流程圖的示例。
[0006]圖4是操作系統(tǒng)清理內(nèi)存地址范圍的概要流程圖的示例。
[0007]圖5是用于處理由不可糾正的內(nèi)存錯誤導(dǎo)致的可恢復(fù)錯誤和不可恢復(fù)錯誤的概要流程圖的示例。
[0008]圖6是用于檢測毒藥消耗的概要流程圖的示例。
[0009]圖7是用于檢測毒藥和從該毒藥恢復(fù)的概要流程圖的示例。
【具體實施方式】
[0010]毒藥(poison)在機器校驗架構(gòu)系統(tǒng)中的使用對檢測包括不可糾正的錯誤的內(nèi)存及防止CPU使用包括錯誤的內(nèi)存是非常有用的。在一些情況下,內(nèi)存可以包括由軟件使用的數(shù)據(jù)值。損壞的數(shù)據(jù)值的使用可以導(dǎo)致獲得不正確的結(jié)果。在其它情況下,內(nèi)存位置可以包括待由CPU執(zhí)行的指令。在這種情況下,該內(nèi)存位置中包括的指令基本上是隨機指令,因為不能確定錯誤如何修改該指令。利用ECC,損壞的指令可以被識別出,但不一定被糾正。
[0011]如上面提到的,當(dāng)接收到機器校驗異常時,由操作系統(tǒng)采取的典型動作是清除正在使用受影響的內(nèi)存位置的進程。通常,清除該進程意味著停止該進程的操作并且釋放已分配給該進程的所有資源,如內(nèi)存。但是,當(dāng)僅清除進程時,由于毒藥的存在,產(chǎn)生數(shù)個問題。產(chǎn)生的一個問題是,一旦操作系統(tǒng)清除該進程,由該進程使用的內(nèi)存便處于未知狀態(tài)。內(nèi)存可能包括更多錯誤,在這種情況下,由不同進程嘗試使用該內(nèi)存會導(dǎo)致附加機器校驗異常。另一問題是由該進程使用的內(nèi)存可能具有毒藥并且如果OS將該內(nèi)存區(qū)域分配給另一進程,則該進程可能進入該有毒藥的內(nèi)存。當(dāng)前系統(tǒng)中的操作系統(tǒng)通常不充分了解內(nèi)存控制器清理被清除的進程的具有毒藥的內(nèi)存。
[0012]操作系統(tǒng)有兩個選擇。第一,可以聲明由被清除的進程使用的內(nèi)存不可用。在這種情況下,操作系統(tǒng)不再嘗試使用該內(nèi)存。在重啟之間長時間運行的系統(tǒng)中,隨著越來越多進程被清除以及它們的內(nèi)存資源被標(biāo)記為不可用,這可以導(dǎo)致在內(nèi)存映射中出現(xiàn)大量間斷。在第二選擇中,操作系統(tǒng)可以清除該進程,但是允許繼續(xù)使用該內(nèi)存,盡管最初可能存在與導(dǎo)致該毒藥的內(nèi)存硬件相關(guān)的實際問題。如果不采取措施來確保該內(nèi)存沒有毒藥以及沒有會導(dǎo)致未糾正錯誤的故障,則盲目地重新使用內(nèi)存可以導(dǎo)致產(chǎn)生附加機器校驗。
[0013]上面的討論假定最初可以清除正在使用包括錯誤的內(nèi)存的進程。如果在敏感進程(如操作系統(tǒng)內(nèi)核)中檢測到毒藥,則清除進程通常導(dǎo)致系統(tǒng)崩潰。在許多情況中,操作系統(tǒng)的設(shè)計者提供在清除關(guān)鍵進程(如內(nèi)核)時由該關(guān)鍵進程使用的內(nèi)存的內(nèi)存轉(zhuǎn)儲(dump) ο該轉(zhuǎn)儲允許專家分析在故障時該關(guān)鍵進程正在做什么以及更好地調(diào)試該故障。但是,如果由關(guān)鍵進程使用的內(nèi)存包括附加錯誤,則訪問該內(nèi)存以轉(zhuǎn)儲內(nèi)容的僅有動作可以導(dǎo)致附加的機器校驗異常。
[0014]進一步加重由毒藥導(dǎo)致的機器校驗異常的問題是純粹的毒藥產(chǎn)生不是清除進程的自身原因。例如,當(dāng)嘗試預(yù)獲取CPU緩存的緩存行時,內(nèi)存控制器可以檢測內(nèi)存中的錯誤。然后,內(nèi)存控制器可以用毒藥簽名替代包含該錯誤的內(nèi)存并加載帶有該毒藥簽名的緩存。此時,系統(tǒng)知道已經(jīng)產(chǎn)生毒藥,但是無法確定該毒藥是否以及何時將被消耗(consume)。例如,進程可以從不嘗試訪問所預(yù)獲取的緩存行,因此從不產(chǎn)生機器校驗異常。此外,系統(tǒng)沒有明確方法來確定通過清除消耗該毒藥的進程,操作系統(tǒng)是否能夠從該毒藥的消耗中恢復(fù)。
[0015]本文描述的技術(shù)克服上面提到的從由毒藥消耗導(dǎo)致的機器校驗異?;謴?fù)的問題。當(dāng)這種異常發(fā)生時,操作系統(tǒng)可以向充當(dāng)操作系統(tǒng)和硬件之間的抽象層的系統(tǒng)固件通知已接收到機器校驗異常。操作系統(tǒng)還可以向固件通知進程是否已被成功地清除或是否將發(fā)生其它恢復(fù)措施,如內(nèi)存轉(zhuǎn)儲。此外,操作系統(tǒng)可以向該固件通知由要被清除的進程使用的內(nèi)存地址的一個或多個范圍。
[0016]隨后,系統(tǒng)固件可以檢查由操作系統(tǒng)提供的內(nèi)存地址范圍。該固件可以確定內(nèi)存是否包括附加錯誤并且重新初始化該內(nèi)存范圍,清理針對之前的錯誤產(chǎn)生的毒藥的內(nèi)存范圍。系統(tǒng)固件還可以測試內(nèi)存以確定錯誤是否是由內(nèi)存中的實際缺陷導(dǎo)致的。該固件還可以清除可能包括被損壞的數(shù)據(jù)的所有其它位置,如緩存內(nèi)存。一旦內(nèi)存清理被執(zhí)行,該固件就可以將結(jié)果報告回操作系統(tǒng)。結(jié)果可以包括哪些內(nèi)存范圍被成功地清理以及哪些未被成功地清理。
[0017]隨后,操作系統(tǒng)可以使用由固件提供的信息,以將內(nèi)存返回至可使用的狀態(tài)或者將內(nèi)存標(biāo)記為不可使用。由固件指示為已成功測試的內(nèi)存能夠被返回給操作系統(tǒng),以被再用于不同的進程。
[0018]在一些情況下,不能清除使用包括錯誤的內(nèi)存的進程。例如,不能直接清除運行操作系統(tǒng)內(nèi)核的進程,因為這可能導(dǎo)致系統(tǒng)崩潰。在這種情況下,操作系統(tǒng)可以向固件通知要為以后的分析轉(zhuǎn)儲的內(nèi)存地址的范圍。在此情況下,固件可能不嘗試重新初始化內(nèi)存,而相反僅僅記錄包括毒藥簽名的內(nèi)存位置或者在操作系統(tǒng)訪問內(nèi)存位置時會導(dǎo)致附加未糾正錯誤的內(nèi)存位置??梢韵虿僮飨到y(tǒng)提供該信息,操作系統(tǒng)可以于是在轉(zhuǎn)儲內(nèi)存時避開包括毒藥或錯誤的內(nèi)存位置。
[0019]圖1是根據(jù)本文描述的技術(shù)的系統(tǒng)的示例。系統(tǒng)100可以是在服務(wù)器計算機或個人計算機中能發(fā)現(xiàn)的計算系統(tǒng)。系統(tǒng)100還可以是任何其它類型的計算設(shè)備,如智能電話、平板電腦、個人數(shù)字助理或任何其它這樣的設(shè)備。本文描述的技術(shù)不限于任何特定類型的設(shè)備,而適于包括下面描述的元件類型的任何種類的設(shè)備。
[0020]系統(tǒng)100可以包括處理器110、非瞬態(tài)處理器可讀介質(zhì)120和內(nèi)存130。處理器可以是能夠取得和執(zhí)行處理器可讀指令的任何類型的處理器。此外,處理器可以具有能夠檢測內(nèi)存錯誤并且向系統(tǒng)的其它組件通知那些錯誤的類型。例如,處理器可以遵循機器校驗構(gòu)架,其中包括不可糾正的錯誤的內(nèi)存被標(biāo)記有被稱為毒藥簽名的特殊簽名。毒藥簽名通常通過用能夠被識別為毒藥的樣式改變緩存行中包含內(nèi)存錯誤的ECC比特來創(chuàng)建。當(dāng)處理器消耗毒藥時,可以產(chǎn)生異常,如機器校驗異常。如下面將描述的,固件和操作系統(tǒng)可以接收該異常并采取糾正措施。處理器還可以包括緩存內(nèi)存115。緩存內(nèi)存可以是位于處理器內(nèi)核(die)自身上的內(nèi)存并且可以允許快速訪問數(shù)據(jù)。緩存內(nèi)存的使用在下面更詳細(xì)地描述。
[0021]該系統(tǒng)還可以包括非瞬態(tài)處理器可讀介質(zhì)120,非瞬態(tài)處理器可讀介質(zhì)120上包含一組指令。當(dāng)處理器執(zhí)行這些指令時,處理器可以實現(xiàn)本文描述的功能。該介質(zhì)可以包括應(yīng)用程序122、操作系統(tǒng)124和固件126。應(yīng)用程序可以提供系統(tǒng)100的功能。例如,在網(wǎng)頁托管服務(wù)器中,該應(yīng)用程序可以是網(wǎng)頁服務(wù)器。本文描述的技術(shù)不限于任何特定類型的應(yīng)用程序。應(yīng)當(dāng)理解
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
南召县| 抚顺市| 嵊泗县| 扎赉特旗| 石棉县| 大庆市| 城市| 米泉市| 江陵县| 灵寿县| 阳山县| 宾阳县| 高淳县| 新兴县| 海晏县| 东乌珠穆沁旗| 兰溪市| 手游| 义乌市| 大石桥市| 荥经县| 德庆县| 互助| 大洼县| 金沙县| 彭山县| 随州市| 静宁县| 九龙坡区| 西安市| 珲春市| 台东市| 文山县| 沛县| 襄城县| 崇礼县| 长治市| 新龙县| 金溪县| 尖扎县| 体育|