TWI528172B - 機器檢查摘要暫存器 - Google Patents

機器檢查摘要暫存器 Download PDF

Info

Publication number
TWI528172B
TWI528172B TW101149296A TW101149296A TWI528172B TW I528172 B TWI528172 B TW I528172B TW 101149296 A TW101149296 A TW 101149296A TW 101149296 A TW101149296 A TW 101149296A TW I528172 B TWI528172 B TW I528172B
Authority
TW
Taiwan
Prior art keywords
register
processor
error
digest
registers
Prior art date
Application number
TW101149296A
Other languages
English (en)
Other versions
TW201346530A (zh
Inventor
荷西 瓦格斯
蒙漢 庫瑪
詹姆斯 克洛斯蘭
慕魯卡沙米 納奇慕
希爾卓斯 伊格佐
Original Assignee
英特爾股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to PCT/US2011/067935 priority Critical patent/WO2013101111A1/en
Application filed by 英特爾股份有限公司 filed Critical 英特爾股份有限公司
Publication of TW201346530A publication Critical patent/TW201346530A/zh
Application granted granted Critical
Publication of TWI528172B publication Critical patent/TWI528172B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Description

機器檢查摘要暫存器

本發明之揭示係有關微處理器之技術領域。

機器檢查架構提供了一種偵測及報告硬體(機器)錯誤之機制。該機器檢查架構可採用機器檢查記憶庫,該等機器檢查記憶庫包含用來接收與被偵測之機器檢查錯誤有關的資料之一或多個錯誤報告暫存器。一處理器可產生一機器檢查異常,而以號通知偵測到一未校正的機器檢查錯誤,該機器檢查異常可被報告給一作業系統、一虛擬機器管理器、或其他系統軟體。被報告為機器檢查異常的典型錯誤可包括:系統匯流排錯誤、錯誤校正碼(Error Correction Code;簡稱ECC)錯誤、同位檢查錯誤(parity error)、快取錯誤(cache error)、及轉換後備緩衝區(Translation Lookaside Buffer;簡稱TLB)錯誤。當一機器檢查異常被產生時,一機器檢查處置器可自該等機器檢查暫存器收集與機器檢查錯誤有關的資訊。然而,當一系統有大量的處理器、邏輯處理器、或類似的處理器,且每一處理器有供其檢視的一些錯誤報告暫存器時,每一處理器或邏輯處理器的機器檢查處置器為了找出一有效的錯誤,可能必須讀取極大量的機器檢查記憶庫。

在某些實施例中,一處理器可包含一機器檢查架構,該機器檢查架構具有能夠接收機器檢查錯誤的資料之複數個錯誤報告暫存器。一摘要暫存器可包含複數個可設定位置,每一可設定位置代表該等錯誤報告暫存器中之至少一錯誤報告暫存器。該摘要暫存器中之一或多個可設定位置可被設定成指示一或多個錯誤報告暫存器是否保持了機器檢查錯誤的資料。因此,當發生一機器檢查錯誤時,可存取該摘要暫存器,以便識別供一處理器檢視的任何錯誤報告暫存器是否包含有效的錯誤資料,而不需要讀取供該處理器檢視的每一錯誤報告暫存器。

減少MCA記憶庫存取

本發明之揭示包括用來減少或限制對機器檢查架構(Machine Check Architecture;簡稱MCA)記憶庫的一些存取之技術及配置。某些實施例可包含與一MCA記憶庫中之一或多組錯誤報告暫存器相關聯的一或多個摘要暫存器。舉例而言,該摘要暫存器可提供在一機器檢查異常(Machine Check Exception;簡稱MCE)的廣播之後根據單一讀取操作而識別具有一有效的錯誤的一或多個特定MCA記憶庫之能力。在某些例子中,可將個別的摘要暫存器提供給每一處理器、邏輯處理器、或類似的處理器。該摘要暫存器可以一種逐位元之方式代表供該處理器檢視的該等MCA記憶庫(亦即,對應於該特定處理器的該等 MCA記憶庫)是否存在一錯誤。

在某些實施例中,該摘要暫存器可以是一機型專用暫存器(Model Specific Register;簡稱MSR),該MSR具有一些儲存位置或可設定位元,每一儲存位置或可設定位元對應於供一特定處理器檢視的複數個MCA記憶庫中之一不同的MCA記憶庫。在本說明書的用法中,該處理器可以是一單一處理器、一多核心處理器的一或多個處理器核心、一或多個邏輯處理器、及/或一或多個虛擬處理器。在某些例子中,該摘要暫存器中之該等可設定位置能夠保持可設定位元,因而提供了一暫存器位元遮罩(bit mask)。該摘要暫存器中之每一可設定位元可代表對應於該特定處理器的該複數個MCA記憶庫中之一不同的MCA記憶庫。因此,當某一MCA記憶庫具有有效的錯誤資料時,在摘要暫存器中設定該MCA記憶庫之對應的位元。另一方面,針對供該處理器檢視的不包含有效的錯誤資料之所有其他MCA記憶庫,該摘要暫存器中之該等位元將被清除(亦即,不被設定)。

舉例而言,當發生一機器檢查錯誤時,可將一MCE傳送到一系統中之一或多個處理器。在某些實施例中,該MCE可被廣播到一系統中之所有處理器,或被廣播到一特定處理器上的所有處理器核心,以便暫停處理,因而防止錯誤之傳播或不正確的資料之傳遞等的狀況。對應於每一特定處理器且接收MCE的一以軟體實施之機器檢查(Machine Check;簡稱MC)處置器可讀取對應於該特定 處理器之摘要暫存器。該MC處置器可根據該摘要暫存器中之資訊而偵測供該特定處理器檢視的一MCA記憶庫是否有有效的錯誤資料。例如,如果供一第一邏輯處理器檢視的一特定MCA記憶庫中保持了該第一邏輯處理器中之一未校正的嚴重錯誤,則該摘要暫存器將只有對應於該特定MCA記憶庫的一特定位元被設定。因此,該MC處置器讀取該摘要暫存器,且注意到複數個可能的MCA記憶庫中只有該特定MCA記憶庫有一有效的錯誤。因此,該第一處理器之該MC處置器只讀取該摘要暫存器識別的該特定MCA記憶庫,而不讀取供該第一處理器檢視的所有MCA記憶庫(在某些實施例中有32個或更多的MCA記憶庫)。此外,對於該系統中沒有任何有效的錯誤之其他處理器(例如,接收到該廣播MCE但是並未經歷該錯誤的各處理器)而言,那些其他處理器之MC處置器將不在對應於那些處理器的該等摘要暫存器中尋找任何有效的錯誤。因此,該等其他處理器之該等MC處置器將無須讀取供其檢視的各別MCA記憶庫,因而可提供顯著的效能改善。例如,因為通常由一些MSR構成MCA記憶庫,所以對這些暫存器的讀取及寫入是較緩慢的,因而可能造成錯誤解決的延遲,尤其在考慮到現行的趨勢是朝向增加MCA記憶庫的數目時更是如此。

在某些例子中,該摘要暫存器可以是一個以上的暫存器,例如,一第一摘要暫存器可代表有效之未校正的嚴重錯誤,一第二摘要暫存器可代表有效之未校正的可恢復錯 誤,且一第三摘要暫存器可代表有效之校正的錯誤。在某些實施例中,一作業系統(Operating System;簡稱OS)可將MC處置器提供給每一處理器,且可進一步提供啟動自一錯誤恢復的功能。此外,在一化環境中,一虛擬機器監視器(Virtual Machine Monitor;簡稱VMM)可設陷捕集對該等MCA記憶庫的存取,以便決定該等存取是否被允許,該VMM可對嘗試該等存取的軟體執行讀取/寫入。因此,在利用一VMM之情形中,根據本發明的某些實施例之該摘要暫存器可顯著地減少MCA記憶庫讀取的次數。因此,本發明的摘要暫存器由於VMM軟體在對MCA記憶庫存取的期間執行之設限,而減少了對效能的影響。

在某些情況中,某些MCA特徵能夠自MCE恢復。因此,MCE可以信號通知預期系統軟體可處置錯誤事件且繼續運行該系統的非嚴重錯誤事件。在本發明的某些實施例中,錯誤處置的時效性是避免系統當機(system shutdown)的一因素。自軟體流程的觀點而論,特定處理器的MC處置器可回應一MCE,而先讀取對應的摘要暫存器,以便偵測摘要暫存器中之任何位元是否被設定。如果該摘要暫存器是被清除的(亦即,沒有任何位元被設定),則沒有與該特定處理器有關之有效的錯誤,且對應於該特定處理器的MCA記憶庫中並未保持任何有效的錯誤資料。另一方面,當該摘要暫存器中之一或多個位元被設定時,則在某些例子中,那些位元直接對應於有有效的 錯誤資料之MCA記憶庫。因此,MC處置器可自該摘要暫存器直接識別供一特定處理器檢視的哪一MCA記憶庫中包含有效的錯誤資訊。此種方式不需要只是為了要偵測是否存在有效的錯誤資訊而讀取供該處理器檢視的所有MCA記憶庫。

此外,在一虛擬化組態中,藉由讀取單一摘要暫存器而識別哪一MCA記憶庫有有效的錯誤資料,可顯著地減少MCA記憶庫存取的次數。舉一個具體的非限制性例子,在包括摘要暫存器的一虛擬化組態中,一有效的錯誤可能導致只有五次或更少次的暫存器存取,例如,對該摘要暫存器的存取、以及在一被識別的MCA記憶庫中之最多四個其他錯誤報告暫存器的存取。另一方面,在沒有該摘要暫存器的情形中,對於具有32個MCA記憶庫的一邏輯處理器而言,為了要識別該等MCA記憶庫中有有效的錯誤資料之一MCA記憶庫,可能要採用最少32次的暫存器存取。因此,當一單一有效的錯誤存在於具有32個MCA記憶庫的一處理器的該等MCA記憶庫中之一MCA記憶庫時,對MCA記憶庫存取的次數可能多達36次的暫存器存取。此外,當考慮到暫存器設陷時,該摘要暫存器的利用將顯著地減少系統軟體對某一錯誤採取行動所耗用的時間。此外,在某些實施例中,可預先在架構上界定該一或多個摘要暫存器,而使作業系統及/或虛擬機器監視軟體能夠利用該等摘要暫存器,且能夠完全實現所需MCA記憶庫存取次數的節省。

將在對應於一處理器中之一或多個核心的多個邏輯處理器之環境中說明某些實施例。然而,如熟悉此項技術者在參照本發明的揭示之後可易於了解的,本發明之實施例不限於所提供的特定例子,且可將本發明之實施例延伸到其他類型的處理器架構、多個處理器、多個核心、以及多處理器系統。

例示機器檢查架構

第1圖示出一例示機器檢查架構100,該機器檢查架構100具有至少一摘要暫存器102,該至少一摘要暫存器102被包含在根據某些實施例的複數個機器檢查架構(MCA)記憶庫104。在該所示例子中,提供了多個摘要暫存器102-1、...、102-N(其中N是大於或等於一之一正整數),每一摘要暫存器對應於一組錯誤報告暫存器106-1、...、106-N以及一處理器108-1、...、108-N。該等處理器108可以是實體處理器、邏輯處理器、及/或虛擬處理器,且可以是一較大處理器的一些處理器核心,可以是一些單核心處理器、或其他的變形。在某些實施例中,每一處理器108可具有對應於該特定處理器108的一組錯誤報告暫存器106,用以接收且保持在發生一錯誤時與該特定處理器108有關的機器檢查錯誤相關之有效的錯誤資料110。

每一處理器108-1、...、108-N可包含或可具有與其相關聯的一機器檢查(MC)處置器112-1、...、112-N, 用以處理機器檢查異常(MCE)、機器檢查中斷,且於可能時,使處理器108能夠自任何錯誤恢復。例如,MC處置器112可以是被包含在一作業系統(OS)、一虛擬機器監視器(VMM)、或其他系統軟體114之軟體、程式碼、可執行的指令、或類似的指令。在某些例子中,MC處置器112可能是特定類型或類別的處理器108專用的,用以解譯或回應為該處理器108產生的機器檢查編碼。此外,MC處置器112可處置不同類型的機器檢查錯誤,且在某些例子中,MC處置器112可包含數種不同類型的以軟體實施之處置器,用以回應不同類型的MC錯誤。例如,如前文所述,在某些實施例中,系統軟體114可提供用來自未校正的可恢復機器檢查錯誤之MC處置器112。此種方式可讓系統軟體114對某一類別之未校正的錯誤執行一恢復行動且繼續執行。因此,當軟體錯誤恢復支援可用於該等處理器108時,MC處置器112可啟動軟體錯誤恢復。另一方面,當沒有來自處理器108之對錯誤恢復的支援時,MC處置器112可將機器檢查有效的錯誤資料110記錄在一錯誤日誌116,且關閉該系統。

舉一非限制性例子,未校正的可恢復(Uncorrected Recoverable;簡稱UCR)錯誤是已被偵測到且以信號通知但是尚未使處理器情境產生訛誤之未校正的錯誤。對於某些UCR錯誤而言,此即意指:一旦系統軟體114執行了某一恢復行動之後,可能繼續在被該錯誤影響的處理器108上執行。機器檢查處置器112可將來自該等錯誤報告 暫存器106之有效的錯誤資料110用來分析UCR錯誤,且執行該等UCR錯誤之特定錯誤恢復行動。

在本發明的某些例子中,MC處置器112可對應於一機器檢查異常處置器及一被校正的機器檢查中斷處置器中之至少一者。為了回應一機器檢查異常,OS或諸如超管理器(hypervisor)或VMM等的其他系統軟體114可將MC處置器112提供給每一處理器108。MC處置器112可進一步包含將有效的錯誤資料110記錄在錯誤日誌116之能力。因此,在某些實施例中,可以數種不同的方式使用機器檢查架構100以及錯誤記錄,這些方式包括諸如:在正常指令執行期間根據機器檢查異常而偵測機器錯誤;檢查且記錄機器錯誤;檢查可恢復之UCR錯誤,以便決定軟體可恢復性(software recoverability);以及使用MC處置器112執行恢復行動。

每一處理器108-1、...、108-N亦可包含或可具有與其相關聯的邏輯118-1、...、118-N,用以管理該處理器108之各別的摘要暫存器102,例如,設定或清除摘要暫存器102中之位元位置。在某些例子中,邏輯118可包括用來執行摘要暫存器102中之位元位置的設定或清除的一或多個專用電路或邏輯單元。在其他實施例中,邏輯118可包括在一微控制單元或處理器108上執行的微碼,用以執行管理該一或多個摘要暫存器102之功能。因此,當有效的錯誤資料110被儲存到該等錯誤報告暫存器106中之一特定錯誤報告暫存器時,該錯誤報告暫存器106中之一 有效位元被設定,且摘要暫存器102中對應於該特定錯誤報告暫存器106之可設定位置可被設定成指示:該特定錯誤報告暫存器106含有有效的錯誤資料110。

在某些實施例中,該等處理器108可提供用於諸如檢查內部晶片硬體的操作及匯流排交易之內部及外部機器檢查機制。當偵測到一機器檢查錯誤時,一處理器可發出一MCE(例如,以一向量的形式),且送回一錯誤碼。因此,當發生一機器檢查錯誤時,將該錯誤之有效的錯誤資料110儲存到一特定錯誤報告暫存器106,且將對應於該錯誤之一MCE廣播到機器檢查架構100中之一或多個處理器108。例如,在某些實施例中,可將該MCE廣播到該系統中之所有的處理器108,作為一種錯誤遏制(error containment)機制,以便防止錯誤的傳播或訛誤資料的散播等的狀況。回應該MCE,可停止每一處理器108上的處理,且每一處理器108之MC處置器112可存取該特定處理器108之摘要暫存器102,以便決定該錯誤是否存在於該特定處理器108或與該特定處理器108有關。如果各別摘要暫存器102中之一或多個位元被設定,則MC處置器112可識別含有有效的錯誤資料110之一特定錯誤報告暫存器106或一特定記憶庫的錯誤報告暫存器106。另一方面,如果摘要暫存器102中沒有任何被設定的位元,則MC處置器112可決定該錯誤影響到一不同的處理器108,且可等候啟動自該錯誤恢復的行動。

因此,摘要暫存器102大幅減少了MC處置器112對 該等錯誤報告暫存器106之存取或讀取次數。例如,當一特定處理器108不是該錯誤的一來源或與該錯誤有關時,該處理器108之MC處置器112只有對該處理器108之各別摘要暫存器102執行一存取,而不是讀取對應於該特定處理器108的所有錯誤報告暫存器106。此外,縱然在一特定處理器108是該錯誤的來源時,暫存器讀取的次數也減少了,這是因為MC處置器112可讀取摘要暫存器102而決定該等錯誤報告暫存器106中之哪一錯誤報告暫存器含有有效的錯誤資料110。MC處置器112然後可只讀取被識別的一或多個錯誤報告暫存器106或暫存器庫(register bank),而不是讀取該處理器108之所有的錯誤報告暫存器106。此外,只有該特定處理器108之MC處置器112可將該錯誤記錄到錯誤日誌116,而不是使每一處理器108之每一MC處置器112記錄該錯誤。

例示摘要暫存器

第2圖示出根據本發明的某些實施例之一例示摘要暫存器102。摘要暫存器102包含複數個可設定位置或可設定位置202,該複數個可設定位置202被用來作為一或多個對應的錯誤報告暫存器106中之有效的錯誤資料110的存在之指示符。在某些例子中,摘要暫存器102可包含對應於摘要暫存器102代表的一些錯誤報告暫存器106之一些可設定位置202。在其他例子中,如將於下文中說明的,該等錯誤報告暫存器106可被分組成一些暫存器庫 (例如,MCA記憶庫),且每一可設定位置202可對應於一特定記憶庫的一或多個暫存器106。熟悉此項技術者在參閱本發明的揭示之後,也將可易於了解其他的變形。

在第2圖所示之例子中,摘要暫存器102包含64個可設定位置202,這64個可設定位置202可對應於被摘要暫存器102代表的64個錯誤報告暫存器106或64個錯誤報告暫存器庫。因此,在該例子中,摘要暫存器102的一可設定儲存位置3指示一對應的錯誤報告暫存器或暫存器庫"MC3"中包含有效的錯誤資料110。其餘的可設定位置0-2及4-63指示對應的錯誤報告暫存器或暫存器庫中不包含有效的錯誤資料。因此,MC處置器112可藉由讀取摘要暫存器102而迅速地識別包含有效的錯誤資料110之錯誤報告暫存器106或暫存器庫。

在某些實施例中,該複數個可設定位置202可以只須提供一位元遮罩204,其中每一可設定位置保持一可設定位元。例如,如果位元被清除了(亦即,為"0"),則對應的錯誤報告暫存器或暫存器庫中不保持有效的錯誤資料。另一方面,如果位元被設定為"1",則對應的錯誤報告暫存器106或暫存器庫可保持有效的錯誤資料110。當然,可使一或零位元的意義相反,或者可將其他的技術用來代表一錯誤報告暫存器106或暫存器庫中存在有效的錯誤資料,其中前文只是一個例子。

此外,在某些實施例中,一單一摘要暫存器102可代表多於一種的錯誤,或可代表多於一種類型的錯誤報告暫 存器。例如,一摘要暫存器102可具有128個可設定位置202,用以代表第一類型的64個錯誤報告暫存器或暫存器庫、以及第二類型的64個錯誤報告暫存器或暫存器庫。在替代實施例中,可為每一處理器或邏輯處理器提供多個摘要暫存器102,用以代表不同類型的錯誤報告暫存器或暫存器庫。例如,一第一摘要暫存器可代表用於嚴重錯誤及未校正的可恢復錯誤之錯誤報告暫存器,而一第二摘要暫存器可代表被校正的機器檢查中斷。因此,在某些實施例中,如將於下文中說明的,可提供一額外的摘要暫存器102,用以代表接收被校正的錯誤及資料中毒的錯誤之CMCI中斷之錯誤報告暫存器。在此種情形中,MC處置器112可包括用來管理多種類型的錯誤之能力。

例示處理器架構

第3圖示出根據本發明的某些實施例的一處理器300之一例示架構。在該例子中,處理器300包含複數個處理器核心302-1、...、302-N。將說明處理器核心302-1之細節。在某些例子中,每一其他處理器核心302可具有類似於處理器核心302-1的組態之組態。可使處理器核心302-1操作而提供諸如一第一邏輯處理器304-1及一第二邏輯處理器304-2等的兩個或更多個邏輯處理器。例如,可利用超執行緒(hyperthreading)或可將處理器核心302-1的利用率最大化之其他適當的技術而實施邏輯處理器304-1、304-2。此外,每一邏輯處理器304可具有與其相關聯 的一MC處置器306,而該MC處置器306可對應於前文所述之MC處置器112。例如,可由OS或其他系統軟體114(第3圖中未示出)為在處理器300上實施的每一邏輯處理器304提供MC處置器306。

如前文所述,處理器核心302-1可進一步包含邏輯118-1,用以管理與處理器核心302-1相關聯的一或多個摘要暫存器102。例如,可將一第一摘要暫存器102-1提供給第一邏輯處理器304-1,且可將一第二摘要暫存器102-2提供給第二邏輯處理器304-2。因此,每一邏輯處理器304-1、304-2可具有用來代表處理器核心302-1擁有的或對應於處理器核心302-1的錯誤報告暫存器中之至少某些錯誤報告暫存器之各別的摘要暫存器102-1、102-2。然而,在其他實施例中,也分享處理器核心302-1之邏輯處理器304-1、304-2可分享一單一摘要暫存器102。

在第3圖之所示例子中,處理器300包含MCA記憶庫308,該MCA記憶庫308包含摘要暫存器102-1、102-2、...、102-M以及錯誤報告暫存器集310-1、...、310-M(其中M是大於1的一正整數)。在某些例子中,摘要暫存器102及錯誤報告暫存器集310中之錯誤報告暫存器可以是機型專用暫存器(MSR)。例如,每一邏輯處理器304可具有供其檢視的一錯誤報告暫存器集310,亦即,可具有可接收及/或報告與邏輯處理器304及處理器核心302有關的錯誤資訊之一群或一組暫存器。錯誤報告暫存器集310可包含複數個暫存器庫312。例如,可以有對應 於每一邏輯處理器304的32個或更多的各別的錯誤報告暫存器庫312。

舉一非限制性例子,每一暫存器庫312可包含一控制暫存器(Ctl Reg)314、一位址暫存器(Addr Reg)316、一雜項暫存器(Misc Reg)318、一狀態暫存器(Status Reg)320、及一控制2暫存器(Ctl2 Reg)322中之一或多個暫存器。控制暫存器314可控制特定硬體單元或特定組的硬體單元產生的MC錯誤之錯誤報告。位址暫存器316可含有產生特定機器檢查錯誤的程式碼或資料記憶體位置之位址。雜項暫存器318可含有為了支援未校正的錯誤之支援軟體而描述機器檢查錯誤之額外的資訊。狀態暫存器320之有效(VAL)旗標被設定時,可含有與機器檢查錯誤有關的資訊。例如,狀態暫存器320可指示用來指定被偵測到的特定機器檢查錯誤狀況的一MCA界定的錯誤碼之一錯誤碼。

控制2暫存器322可提供能夠進行被校正的MC錯誤的通知之一程式介面或或其他資訊。例如,控制2暫存器322能夠產生一被校正的機器檢查錯誤中斷(Corrected Machine Check error Interrupt;簡稱CMCI)。在某些實施例中,分享一處理器核心302的兩個邏輯處理器304可分享控制2暫存器322。一個以上的邏輯處理器304可分享係為被校正的MC錯誤的來源之某些微架構子系統。因此,一個以上的邏輯處理器304可分享用來報告MC錯誤之設施及控制機制。例如,如前文所述,分享一處理器核 心302-1之邏輯處理器304-1及304-2可分享(或各處理器核心302可分享)某些控制2暫存器322或其他類型的錯誤報告暫存器。

MCA記憶庫308可進一步包含一或多個總體控制暫存器324,而在某些實施例中,該一或多個總體控制暫存器324也可以是MSR。總體控制暫存器324之非限制性例子包括一總體能力暫存器(GCap Reg)326、一總體控制暫存器(GCtrl Reg)328、及一總體狀態暫存器(GStatus Reg)330。例如,總體能力暫存器326可提供與處理器300的機器檢查架構有關之資訊。總體控制暫存器328可控制MCE的報告。總體狀態暫存器330可保持一再啟動指令指標有效旗標、一錯誤指令指標有效旗標、及一機器檢查進行中旗標。此外,請注意,第3圖之組態只是為了說明而提供的一非限制性例子,且熟悉此項技術者在參閱本發明的揭示之後將可易於了解:許多其他的組態、暫存器類型、及MCA記憶庫類型等的變形也是可能的。

在各MCE被廣播到單一插座上的所有處理器核心302之情形中,在沒有摘要暫存器102的優勢時,每一MC處置器306在傳統上可能要讀取供其檢視的所有暫存器庫312,以便識別哪一暫存器庫312(若有的話)有有效的錯誤資料。此種方法可能耗用大量的時間。因此,在本發明的某些實施例中,每一邏輯處理器304的MC處置器306可回應一MCE,而只須存取各別的摘要暫存器102,即可決定該錯誤是否與該特定邏輯處理器304有關。此外, MC處置器306可至少部分地由於諸如控制2暫存器322等的分享之錯誤報告暫存器,而連續存取該等MCA記憶庫308,以便恰當地處置錯誤(例如,可恢復的錯誤)。因此,具有大量的邏輯處理器304(每一邏輯處理器有大量的暫存器庫312)以及本發明的摘要暫存器102之一處理器300可顯著地減少因讀取每一暫存器庫312的錯誤報告暫存器而造成之延遲,這是因為MC處置器306將不讀取沒有有效的錯誤資料之暫存器庫312。因此,本發明之實施例提供了一種使OS、VMM、或其他系統軟體114可迅速且容易地識別哪些暫存器庫312有有效的錯誤資料且只讀取那些錯誤報告暫存器集310而不是讀取供該處理器檢視的所有暫存器庫312之機制。因此,本發明之實施例可藉由單一讀取對應的摘要暫存器,而提供供該邏輯處理器檢視的有效的錯誤之一摘要,而顯著減少處置機器檢查錯誤的時間,因而顯著減少MC處置器306之負擔。

第4圖示出根據本發明的某些實施例的一處理器400之一例示架構。處理器400可包含複數個處理器核心302-1、...、302-N以及MCA記憶庫308,而MCA記憶庫308包含前文中以與第3圖有關之方式說明之錯誤報告暫存器集310-1、310-2、...、310-M、暫存器庫312-1、...、312-M、以及總體控制暫存器324。在第4圖之例子中,處理器400可包含每一邏輯處理器304之多個摘要暫存器。因此,處理器400可包含對應於各別邏輯處理器304之機器檢查異常(MCE)摘要暫存器402-1、402-2、...、402- M,且可進一步包含對應於各別邏輯處理器304之被校正的機器檢查中斷(CMCI)摘要暫存器404-1、404-2、...、404-M。

系統軟體可針對CMCI傳送及使用而以一種一致的方式將被分享的暫存器程式化。例如,CMCI可提供超過基於臨界值的錯誤報告之那些能力之一些能力。在基於臨界值的錯誤報告之某些實施例中,軟體可能被限制在週期性地輪詢硬體被校正的MC錯誤之狀態。另一方面,CMCI可提供一種傳送基於軟體可使用前文所述之控制2暫存器322而程式化的臨界值之一局部中斷之信令機制。雖然可根據被校正的MC錯誤之本質而將一CMCI中斷傳送到一個以上的邏輯處理器304,但是只可執行一中斷服務常式的一實例,以便服務且查詢該等MCA記憶庫308。因此,在第4圖之例子中,可提供該等CMCI摘要暫存器404,用以指示與CMCI中斷有關的有效的錯誤資料之存在。

此外,該例子中之MC處置器306可包含一機器檢查異常(MCE)處置器406及一被校正的機器檢查中斷(CMCI)處置器408。如前文所述,系統軟體114可嘗試未校正的可恢復(UCR)錯誤之恢復。UCR錯誤是已被偵測到且以信號通知但是尚未使處理器情境產生訛誤之未校正的錯誤。對於某些UCR錯誤而言,在系統軟體114執行了一恢復行動之後,可能繼續在該處理器108上之執行。UCR錯誤報告可進一步提供一種防止資料中毒(data poisoning)之錯誤遏制機制。機器檢查處置器306可將自 該等錯誤報告暫存器取得之有效的錯誤資料用來分析UCR錯誤,且執行該等UCR錯誤之特定錯誤恢復行動。可根據UCR錯誤之類型,而經由被校正的機器檢查中斷(CMCI)或機器檢查異常(MCE)路徑通知UCR錯誤。

MCE處置器406可檢查各別的MCE摘要暫存器402而回應各MCE,以便決定有效的錯誤資料是否存在於與MCE處置器406相關聯的對應邏輯處理器304之範圍內。如果MCE摘要暫存器402指出有效的錯誤資料被保持在邏輯處理器304的一或多個各別的錯誤報告暫存器庫312,則MCE處置器406可存取該等被識別的錯誤報告暫存器,記錄錯誤,且/或嘗試自該錯誤恢復。此外,CMCI處置器408可檢查各別的CMCI摘要暫存器404而回應CMCI中斷,以便決定與一CMCI中斷有關的資料是否存在於與CMCI處置器408相關聯的對應邏輯處理器304之範圍內。如果各別的CMCI摘要暫存器404指出有效的中斷資料被保持在邏輯處理器304之一或多個各別的錯誤報告暫存器庫312,則CMCI處置器408可存取該等被識別的錯誤報告暫存器,記錄錯誤,且/或嘗試自該錯誤恢復。

此外,該相關聯的MC錯誤影響到多個邏輯處理器304,則一CMCI中斷可被傳送到一個以上的邏輯處理器304。例如,當被兩個邏輯處理器304分享的一快取記憶體中之一被校正的位元錯誤造成一CMCI中斷時,該中斷可被傳送到分享該微架構子系統之兩個邏輯處理器304。 同樣地,其他類型的錯誤可使一CMCI中斷被傳送到一特定群或組等的群體那之所有的邏輯處理器。然而,雖然一CMCI中斷根據被校正的MC錯誤的本質而可被傳送到一個以上的邏輯處理器304,但是只有一中斷服務常式中之一實例可執行必要的服務且查詢該等機器檢查記憶庫。例如,一特定CMCI處置器408之一服務常式可檢查CMCI摘要暫存器404,以便決定其有所有權的任何MCA記憶庫是否保持了有效的錯誤資料。CMCI處置器408可進一步記錄任何MC錯誤,且清除對應的錯誤報告暫存器。

本發明的摘要暫存器之許多其他變形也是可能的。例如,每一邏輯處理器304可具有三個相關聯的摘要暫存器,其中一第一摘要暫存器可代表接收有效之未校正的嚴重錯誤資料之記憶庫,一第二摘要暫存器可代表接收有效之未校正的可恢復錯誤資料之記憶庫,且一第三摘要暫存器可代表接收有效之校正的錯誤資料之記憶庫。

第5圖示出根據本發明的某些實施例的一處理器500之一例示架構。處理器500可包含複數個處理器核心302-1、...、302-N以及MCA記憶庫308,而MCA記憶庫308包含前文中以與第3圖有關之方式說明之錯誤報告暫存器集310-1、...、310-M、暫存器庫312-1、...、312-M、以及總體控制暫存器324。在第5圖之例子中,處理器500可包含每一邏輯處理器304之一階層配置的一些摘要暫存器。因此,每一邏輯處理器304-1、...、304-M包含供其檢視的一各別之堆疊頂摘要暫存器502-1、...、502-M。每 一堆疊頂摘要暫存器502可包含對應於其中包括暫存器庫312-1中之每一MCA記憶庫的一指示符的複數個第二階摘要暫存器504-1、504-2、...、504-K之複數個指示符。

舉例而言,假設:對應於第一邏輯處理器304-1之暫存器庫312-1包含256個MCA記憶庫,且每一第二階摘要暫存器504是一64位元暫存器。因此,可以有供第一邏輯處理器304-1檢視的四個第二階摘要暫存器504,且堆疊頂摘要暫存器502-1可包含對應於該等四個第二階摘要暫存器之四個指示符(位元)。因此,當發生一MC錯誤時,第一邏輯處理器304-1之MC處置器306-1可讀取該堆疊頂摘要暫存器,以便決定在供邏輯處理器304-1檢視的該等MCA記憶庫中是否有有效的錯誤資料。如果該等暫存器庫312-1中之一暫存器庫312-1有有效的錯誤資料,則堆疊頂摘要暫存器502-1將指示MC處置器306-1應讀取哪一第二階摘要暫存器504。因此,MC處置器306然後可讀取適當的第二階摘要暫存器504,而無須讀取其他的第二階摘要暫存器。因此,第5圖之該階層配置只利用三次暫存器讀取,而不是利用五次暫存器讀取。

可延伸摘要暫存器之階層配置。例如,在某些實施例中,可以有每一記憶體子系統之一摘要暫存器、每一I/O子系統之一摘要暫存器、以及該等子系統摘要暫存器之一總體摘要暫存器。此外,雖然本說明書中為了解說而示出了數個例子,但是可將許多其他的組態用來提供摘要暫存器,因而,本發明之實施例不限於該等圖式中示出之特定 組態或配置。

例示程序

第5及6圖示出用來實施前文所述的技術之一些例示程序。係將該等程序示出為邏輯流程圖中之一組方塊,該等方塊代表一序列的操作,且可以硬體、軟體、或以上各項的一組合實施該等操作中之某些或所有操作。在軟體之情境中,該等方塊可代表一或多個電腦可讀取的媒體中儲存之電腦可執行的指令,該等指令被一或多個處理器執行時,將執行所述之操作。一般而言,電腦可執行的指令包括用來執行特定功能或實施特定抽象資料類型(abstract data type)之常式、程式、物件、組件、及資料結構等的指令。說明該等操作之順序將不被詮釋為一種限制。可按照任何順序及/或以平行之方式合併任何數目的該等所述方塊,而執行該程序,且不需要執行所有的該等方塊。為了說明之目的,將參照本發明的例子中述及之架構、框架、及處理器而說明該等程序,但是可以多種其他的架構、框架、或處理器實施該等程序。

第6圖是採用根據某些實施例的一或多個摘要暫存器的一例示程序600之一流程圖。

在方塊602中,與至少一處理器相關聯的複數個錯誤報告暫存器中之至少一錯誤報告暫存器接收有效的錯誤資料。例如,可回應一機器檢查錯誤,而將有效的錯誤資料儲存在與一邏輯處理器、一處理器核心、或類似的處理器 相關聯的至少一錯誤報告暫存器。

在方塊604中,邏輯可設定一摘要暫存器中之一可設定位置,而指示至少一對應的錯誤報告暫存器存在有效的錯誤資料。例如,該摘要暫存器可具有對應於複數個錯誤報告暫存器或錯誤報告暫存器庫之複數個可設定位置。在某些實施例中,該複數個可設定位置可包含一位元遮罩,其中一位元可被設定成指示一對應的錯誤報告暫存器或暫存器庫是否保持有效的錯誤資料。

在方塊606中,回應來自該至少一錯誤報告暫存器之該有效的錯誤資料的清除,該邏輯可將該可設定位置重設成指示該錯誤資料不在該至少一錯誤報告暫存器。例如,該MC處置器可在將該有效的錯誤資料記錄在該錯誤日誌之後,清除該至少一錯誤報告暫存器。該邏輯於回應時,可清除該摘要暫存器中之對應的可設定位置,而不再指示有效的錯誤資料存在於該對應的一或多個錯誤報告暫存器。

第7圖是根據某些實施例而可由與一摘要暫存器有關的一MC處置器執行的一例示程序700之一流程圖。

在方塊702中,一處理器接收一機器檢查錯誤的通知。例如,當發生一機器檢查錯誤時,一特定插座或一整個系統中之每一處理器(例如,邏輯處理器、處理器核心、或類似的處理器)可接收用於錯誤遏制的一機器檢查異常。該處理器上的MC處置器可接收機器檢查錯誤之通知。

在方塊704中,該MC處置器存取一摘要暫存器,以便偵測對應於該處理器或該處理器擁有的至少一錯誤報告暫存器中是否保持了有效的錯誤資料。例如,該MC處置器可執行對各別摘要暫存器的一存取,以便決定對應於一特定邏輯處理器、處理器核心、或類似的處理器的一錯誤報告暫存器或暫存器庫中是否保持了有效的錯誤資料。此外,在某些例子中,如前文所述,該MC處置器可以是一MCE處置器及一CMCI處置器中之至少一者。

在方塊706中,當該摘要暫存器指出一或多個錯誤報告暫存器包含有效的錯誤資料時,該MC處置器可存取該等被識別的一或多個錯誤報告暫存器,以便取得該被識別的錯誤報告暫存器中保持的有效的錯誤資料。例如,當該摘要暫存器指示一特定記憶庫的錯誤報告暫存器中保持了該有效的錯誤資料時,該處置器可存取該特定記憶庫的暫存器,而取得該有效的錯誤資料,而無須讀取對應於該特定處理器之每一記憶庫的錯誤報告暫存器。

在方塊708中,該MC處置器可記錄該有效的錯誤資料,且/或自該機器檢查錯誤恢復。例如,在有一不可恢復的或嚴重的錯誤之情形中,該MC處置器可將該有效的錯誤資料記錄在一錯誤日誌,且繼續關閉該系統。或者,在有一可恢復的錯誤之情形中,該MC處置器可啟動自該機器檢查錯誤恢復。

本發明所述的該等例示程序只是為了說明而提供的例示程序。熟悉此項技術者在參閱本發明的揭示之後將可易 於了解許多其他的變形。此外,雖然本發明之揭示述及用來執行本發明的技術及程序的適當的框架、架構、及處理器之數個例子,但是本發明之實施例不限於所示及所述的該等特定例子。

例示系統架構

第8圖示出根據本發明的某些實施例而可採用一機器檢查架構中之摘要暫存器的一系統800之一些非限制性選擇之組件。系統800只是可諸如在前文所述之機器檢查架構100及/或處理器300或400中實施摘要暫存器的許多可能的系統及裝置之一例子。系統800包含複數個處理器802-1、802-2、...、802-J(其中J是大於或等於1之一正整數),每一處理器可包含一或多個處理器核心804-1、804-2、...、804-N。在某些實施例中,如前文所述,每一處理器核心804可提供複數個邏輯處理器806。

複數個MCA記憶庫808-1、808-2、...、808-J可被與每一各別的處理器802-1、802-2、...、802-J相關聯,且可包含一或多個摘要暫存器810及複數個錯誤報告暫存器812。如前文所述,在某些實施例中,可為每一邏輯處理器806提供一摘要暫存器810。此外,在其他實施例中,可為每一邏輯處理器806提供多個摘要暫存器810,而在另外的其他實施例中,各邏輯處理器806可分享一摘要暫存器810。熟悉此項技術者在參閱本發明的揭示之後將可易於了解許多其他的變形。

可以與該等處理器核心804及該等摘要暫存器810相關聯的方式提供此外,邏輯118-1、118-2、...、118-N,用以管理該等摘要暫存器810。例如,每一處理器核心804可包含邏輯118的一實例,用以在一或多個對應的錯誤報告暫存器812中接收到有效的錯誤資料時設定各別的摘要暫存器中之一或多個位元。如前文所述,邏輯118可包括一或多個專用電路、邏輯單元、或微碼等的邏輯。

可操作該等處理器802、處理器核心804、及/或邏輯處理器806,而提取且執行一記憶體814或其他電腦可讀取的媒體中儲存之電腦可讀取的指令。記憶體814可包括以用來儲存諸如電腦可讀取的指令、資料結構、程式模組、或其他資料等的資訊的任何類型的技術實施之揮發性及非揮發性記憶體及/或抽取式及非抽取式媒體。此類記憶體包括(但不限於)隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電氣可抹除可程式唯讀記憶體(EEPROM)、快閃記憶體、或其他記憶體技術。此外,可提供用來儲存資料、程式碼、程式、及記錄等的資訊之儲存器816。儲存器816可包括固態儲存器、磁碟儲存器、低成本磁碟機備用陣列(RAID)儲存系統、儲存陣列、以網路連接之儲存器、儲存區域網路、雲端儲存器、唯讀光碟(CD-ROM)、數位多功能光碟(Digital Versatile Disk;簡稱DVD)或其他光學儲存器、軟碟、磁帶、或可被用來儲存所需資訊且可被計算裝置存取的任何其他媒體。根據系統800之組態,記憶體814及/或儲 存器816可以是某一類型的電腦可讀取的儲存媒體,且可以是一非短暫性媒體。

記憶體814可儲存可被處理器802執行之功能組件。在某些實施例中,這些功能組件包含可由該等處理器802執行之指令或程式,且該等指令或程式被執行時,將實施操作邏輯,用以執行歸屬於前文所述的系統軟體之行動。第8圖所示的功能組件之例子包括一作業系統(OS)818及一虛擬機器監視器(VMM)820,但是亦可採用或替代地採用其他類型的系統軟體。OS 818及/或VMM 820可實施前文中參照第1-7圖所述之MC處置器。記憶體814可進一步保持一錯誤日誌822,用以接收與系統800中報告的機器檢查錯誤相關之有效的錯誤資料。

系統800可包含一或多個通訊裝置824,該一或多個通訊裝置824可包括能夠經由諸如一或多個網路826等的一通訊鏈路而與各種其他裝置通訊之一或多個介面及硬體組件。例如,通訊裝置824可經由網際網路、纜線網路、細胞式網路、無線網路(例如,Wi-Fi、細胞式)、及有線網路中之一或多個網路而促進通訊。被用於通訊之組件可至少部分地取決於被選擇的網路及/或環境之類型。經由此類網路而通訊之協定及組件是習知的,且本說明書中將不詳細地說明該等協定及組件。

系統800可進一步配備了各種輸入/輸出(Input/Output;簡稱I/O)裝置828。此類I/O裝置可包括顯示器、各種使用者介面控制(例如,按鈕、搖桿、鍵盤 、及觸控式螢幕等的使用者介面控制)、喇叭、及連接埠等的I/O裝置。可提供可包括系統匯流排、點對點介面、晶片組、或其他適當的連接及組件之一互連830,以便能夠進行處理器802、記憶體814、儲存器816、通訊裝置824、與I/O裝置828間之通訊。

此外,本發明之揭示提供了所述的及圖式中示出的各種實施例。然而,如熟悉此項技術者將可了解或已經了解的,本發明之揭示不限於本說明書所述及所示之實施例,而是可延伸到其他的實施例。本說明書中提及"一實施例"、"該實施例"、"這些實施例"、或"某些實施例"時,意指所述的一特定特徵、結構、或特性被包含在至少一實施例中,且在本說明書的各處出現這些詞語時,不必然都參照到相同的實施例。

結論

雖然以與結構特徵及/或方法行動有關之特定語文說明了標的物,但是我們應可了解:後附的申請專利範圍中界定之標的物不必然限於所述之特定特徵或行動。更確切地說,係以實施該等申請專利範圍之例示形式揭示該等特定特徵或行動。

100‧‧‧機器檢查架構

102,102-1-102-N,810‧‧‧摘要暫存器

104,308,808,808-1-808-J‧‧‧機器檢查架構記憶庫

106,106-1-106-N,812‧‧‧錯誤報告暫存器

108,108-1-108-N,300,400,500,802,802-1-802-J‧‧‧處理器

110‧‧‧有效的錯誤資料

112,112-1-112-N,306,306-1-306-M‧‧‧機器檢查處置器

114‧‧‧系統軟體

116,822‧‧‧錯誤日誌

118,118-1-118-N‧‧‧邏輯

202‧‧‧可設定位置

204‧‧‧位元遮罩

302,302-1-302-N,804,804-1-804-N‧‧‧處理器核心

304,304-1-304-M,806‧‧‧邏輯處理器

310,310-1-310-M‧‧‧錯誤報告暫存器集

312,312-1-312-M‧‧‧暫存器庫

314‧‧‧控制暫存器

316‧‧‧位址暫存器

318‧‧‧雜項暫存器

320‧‧‧狀態暫存器

322‧‧‧控制2暫存器

324,328‧‧‧總體控制暫存器

326‧‧‧總體能力暫存器

330‧‧‧總體狀態暫存器

402,402-1-402-M‧‧‧機器檢查異常摘要暫存器

404,404-1-404-M‧‧‧被校正的機器檢查中斷摘要暫存器

406‧‧‧機器檢查異常處置器

408‧‧‧被校正的機器檢查中斷處置器

502,502-1-502-M‧‧‧堆疊頂摘要暫存器

504,504-1-504-K‧‧‧第二階摘要暫存器

800‧‧‧系統

814‧‧‧記憶體

816‧‧‧儲存器

818‧‧‧作業系統

820‧‧‧虛擬機器監視器

824‧‧‧通訊裝置

826‧‧‧網路

828‧‧‧輸入/輸出裝置

830‧‧‧互連

已參照各附圖而說明了該實施方式。在該等圖式中,參考編號的最左位數識別了該參考編號初次出現的圖式。 在不同的圖式中使用相同的參考編號時,指示類似的或相同的項目或特徵。

第1圖示出根據某些實施例而具有被包含在複數個機器檢查架構記憶庫的至少一摘要暫存器之一例示機器檢查架構。

第2圖示出根據本發明的某些實施例之一例示摘要暫存器。

第3圖示出根據某些實施例而包含一或多個摘要暫存器之一例示處理器架構。

第4圖示出根據某些實施例而包含每一邏輯處理器的複數個摘要暫存器之一例示處理器架構。

第5圖示出根據某些實施例而包含一階層配置中之每一邏輯處理器的複數個摘要暫存器之一例示處理器架構。

第6圖是根據某些實施例而採用一摘要暫存器的一例示程序之一方塊圖。

第7圖是根據某些實施例而由一處置器執行的一例示程序之一方塊圖。

第8圖示出根據某些實施例而包含一些摘要暫存器的一系統之一例示架構。

100‧‧‧機器檢查架構

102-1,102-N‧‧‧摘要暫存器

104‧‧‧機器檢查架構記憶庫

106-1,106-N‧‧‧錯誤報告暫存器

108-1,108-N‧‧‧處理器

110‧‧‧有效的錯誤資料

112-1,112-N‧‧‧機器檢查處置器

114‧‧‧系統軟體

116‧‧‧錯誤日誌

118-1,118-N‧‧‧邏輯

Claims (18)

  1. 一種處理器,包含:複數個錯誤報告暫存器,用以各自接收機器檢查錯誤之錯誤資料;以及一摘要暫存器,該摘要暫存器具有代表該等錯誤報告暫存器之各者之一些可設定位置,該等可設定位置用以指示該等錯誤報告暫存器中之一或多個錯誤報告暫存器之何者用以保持該錯誤資料。
  2. 如申請專利範圍第1項之處理器,其中:該複數個錯誤報告暫存器被配置在多個記憶庫中,每一記憶庫包含該複數個錯誤報告暫存器中之至少一錯誤報告暫存器;以及該摘要暫存器中之每一可設定位置對應於該等多個記憶庫中之一記憶庫。
  3. 如申請專利範圍第1項之處理器,其中該摘要暫存器中之該等可設定位置包含一或多個可設定位元,用以指示該錯誤資料被保持在一或多個特定錯誤報告暫存器。
  4. 如申請專利範圍第1項之處理器,進一步包含用來回應在該摘要暫存器之一特定可設定位置代表的一或多個特定錯誤報告暫存器中接收到該錯誤資料而設定該特定位置之邏輯。
  5. 如申請專利範圍第1項之處理器,進一步包含多個處理器核心,其中該摘要暫存器係為一第一摘要暫存器,用以代表對應於該等多個處理器核心中之一第一處理器核 心之第一組錯誤報告暫存器。
  6. 如申請專利範圍第5項之處理器,進一步包含對應於該第一處理器核心之多個邏輯處理器,其中該第一摘要暫存器及該第一組錯誤報告暫存器對應於該等多個邏輯處理器中之一第一邏輯處理器。
  7. 如申請專利範圍第6項之處理器,進一步包含一第二摘要暫存器,用以代表對應於該等多個處理器核心中之該第一處理器核心的該等多個邏輯處理器的一第二邏輯處理器之第二組錯誤報告暫存器。
  8. 如申請專利範圍第1項之處理器,進一步包含被該處理器執行之一處置器,用以存取該摘要暫存器,以便偵測該等錯誤報告暫存器中之一或多個錯誤報告暫存器是否保持了該錯誤資料。
  9. 如申請專利範圍第1項之處理器,其中該摘要暫存器係用以代表第一類型的錯誤資料之一第一摘要暫存器,該處理器進一步包含用來代表第二類型的錯誤資料之一第二摘要暫存器。
  10. 一種方法,包含下列步驟:接收與至少一處理器相關聯的複數個暫存器的一暫存器中之錯誤資料;設定一摘要暫存器中之一位置,用以指示該暫存器中之該錯誤資料的存在,該摘要暫存器具有各自對應於該複數個暫存器的複數個可設定位置;回應一錯誤的通知,而存取該摘要暫存器,以便識別 該複數個暫存器中接收了該錯誤資料之該暫存器;以及至少部分地根據對該摘要暫存器之存取,而讀取接收了該錯誤資料之該至少一暫存器。
  11. 如申請專利範圍第10項之方法,進一步包含下列步驟:回應對來自該至少一暫存器的該錯誤資料之清除,而重設該摘要暫存器中之該可設定位置,以便指示該錯誤資料不存在於該暫存器。
  12. 如申請專利範圍第10項之方法,進一步包含下列兩步驟中之至少一步驟:將該錯誤資料儲存在一錯誤日誌;以及啟動自該錯誤恢復。
  13. 如申請專利範圍第10項之方法,其中設定該可設定位置之該步驟包含下列步驟:設定該可設定位置上的一位元,用以指示該至少一暫存器中之該錯誤資料的存在。
  14. 一種系統,包含:至少一處理器核心;與該至少一處理器核心相關聯的複數個暫存器庫,用以接收錯誤資料;具有對應於該複數個暫存器庫的複數個指示符之一摘要暫存器,該複數個指示符中之各別的指示符用以指示一對應的暫存器庫中之錯誤資料的存在;以及暫存器,用以提供與該至少一處理器核心之機器檢查架構有關之資訊。
  15. 如申請專利範圍第14項之系統,其中該摘要暫存 器是多個摘要暫存器中之一第一摘要暫存器,該第一摘要暫存器對應於該等多個處理器核心中之一第一處理器核心。
  16. 如申請專利範圍第15項之系統,進一步包含:多個邏輯處理器,其中至少包括使用該第一處理器核心提供的一第一邏輯處理器及一第二邏輯處理器,該第一摘要暫存器代表對應於該第一邏輯處理器之第一複數個暫存器庫;以及代表對應於該第二邏輯處理器之第二複數個暫存器庫的一第二摘要暫存器。
  17. 如申請專利範圍第16項之系統,其中有代表對應於該第一邏輯處理器之該第一複數個暫存器庫的多個第一摘要暫存器、以及代表至少該等多個第一摘要暫存器之另一摘要暫存器。
  18. 如申請專利範圍第14項之系統,進一步包含:每一處理器核心提供了複數個邏輯處理器;以及複數個該等摘要暫存器,對應於每一邏輯處理器之至少一摘要暫存器代表對應於每一邏輯處理器之各別的暫存器庫。
TW101149296A 2011-12-29 2012-12-22 機器檢查摘要暫存器 TWI528172B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2011/067935 WO2013101111A1 (en) 2011-12-29 2011-12-29 Machine check summary register

Publications (2)

Publication Number Publication Date
TW201346530A TW201346530A (zh) 2013-11-16
TWI528172B true TWI528172B (zh) 2016-04-01

Family

ID=48698345

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101149296A TWI528172B (zh) 2011-12-29 2012-12-22 機器檢查摘要暫存器

Country Status (3)

Country Link
US (1) US9317360B2 (zh)
TW (1) TWI528172B (zh)
WO (1) WO2013101111A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140188829A1 (en) * 2012-12-27 2014-07-03 Narayan Ranganathan Technologies for providing deferred error records to an error handler
US9842015B2 (en) 2013-09-27 2017-12-12 Intel Corporation Instruction and logic for machine checking communication
US9384076B2 (en) * 2013-12-27 2016-07-05 Intel Corporation Allocating machine check architecture banks
WO2016018383A1 (en) 2014-07-31 2016-02-04 Hewlett-Packard Development Company Live migration of data
US10540109B2 (en) 2014-09-02 2020-01-21 Hewlett Packard Enterprise Development Lp Serializing access to fault tolerant memory
CN105471824A (zh) * 2014-09-03 2016-04-06 阿里巴巴集团控股有限公司 实现浏览器调用本地业务组件的方法、装置及系统
US10594442B2 (en) 2014-10-24 2020-03-17 Hewlett Packard Enterprise Development Lp End-to-end negative acknowledgment
US10409681B2 (en) 2015-01-30 2019-09-10 Hewlett Packard Enterprise Development Lp Non-idempotent primitives in fault-tolerant memory
WO2016122610A1 (en) 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in a fault-tolerant memory
WO2016122642A1 (en) 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Determine failed components in fault-tolerant memory
WO2016159996A1 (en) 2015-03-31 2016-10-06 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in fault-tolerant memory fabrics
US10222989B1 (en) 2015-06-25 2019-03-05 Crossbar, Inc. Multiple-bank memory device with status feedback for subsets of memory banks
US10141034B1 (en) 2015-06-25 2018-11-27 Crossbar, Inc. Memory apparatus with non-volatile two-terminal memory and expanded, high-speed bus
US9921763B1 (en) * 2015-06-25 2018-03-20 Crossbar, Inc. Multi-bank non-volatile memory apparatus with high-speed bus
US9710041B2 (en) * 2015-07-29 2017-07-18 Intel Corporation Masking a power state of a core of a processor
US10318368B2 (en) * 2016-05-31 2019-06-11 Intel Corporation Enabling error status and reporting in a machine check architecture
US10671465B2 (en) * 2016-11-28 2020-06-02 Intel Corporation Serializing machine check exceptions for predictive failure analysis
US10389342B2 (en) 2017-06-28 2019-08-20 Hewlett Packard Enterprise Development Lp Comparator
US20190034252A1 (en) * 2017-07-28 2019-01-31 Hewlett Packard Enterprise Development Lp Processor error event handler
US10824496B2 (en) * 2017-12-28 2020-11-03 Intel Corporation Apparatus and method for vectored machine check bank reporting

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502208B1 (en) 1997-03-31 2002-12-31 International Business Machines Corporation Method and system for check stop error handling
US20020029358A1 (en) * 2000-05-31 2002-03-07 Pawlowski Chester W. Method and apparatus for delivering error interrupts to a processor of a modular, multiprocessor system
US20020184566A1 (en) * 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US20040078732A1 (en) * 2002-10-21 2004-04-22 International Business Machines Corporation SMP computer system having a distributed error reporting structure
US7322002B2 (en) * 2004-05-26 2008-01-22 Micron Technology, Inc. Erasure pointer error correction
US7308610B2 (en) * 2004-12-10 2007-12-11 Intel Corporation Method and apparatus for handling errors in a processing system
US7861106B2 (en) * 2005-08-19 2010-12-28 A. Avizienis And Associates, Inc. Hierarchical configurations in error-correcting computer systems
US8195986B2 (en) * 2008-02-25 2012-06-05 International Business Machines Corporation Method, system and computer program product for processing error information in a system
US20090327572A1 (en) * 2008-06-30 2009-12-31 In Sung Cho Exchanging information between components coupled with an a i2c bus via separate banks
US8671309B2 (en) * 2011-07-01 2014-03-11 Intel Corporation Mechanism for advanced server machine check recovery and associated system software enhancements
WO2013095543A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Apparatus and method for detecting and recovering from instruction fetch errors

Also Published As

Publication number Publication date
US9317360B2 (en) 2016-04-19
TW201346530A (zh) 2013-11-16
US20130339829A1 (en) 2013-12-19
WO2013101111A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
Gunawi et al. Why does the cloud stop computing? lessons from hundreds of service outages
US10671468B2 (en) Enhanced dump data collection from hardware fail modes
Hari et al. Sassifi: An architecture-level fault injection tool for gpu application resilience evaluation
Pessl et al. {DRAMA}: Exploiting {DRAM} addressing for cross-cpu attacks
US10180866B2 (en) Physical memory fault mitigation in a computing environment
US9141461B2 (en) Machine check architecture execution environment for non-microcoded processor
US8595564B2 (en) Artifact-based software failure detection
US8656228B2 (en) Memory error isolation and recovery in a multiprocessor computer system
US8700959B2 (en) Scalable I/O adapter function level error detection, isolation, and reporting
JP5851503B2 (ja) 高可用性仮想機械環境におけるアプリケーションの高可用性の提供
US9619311B2 (en) Error identification and handling in storage area networks
Bautista-Gomez et al. Unprotected computing: A large-scale study of dram raw error rate on a supercomputer
US8713350B2 (en) Handling errors in a data processing system
JP4882845B2 (ja) 仮想計算機システム
US8839032B2 (en) Managing errors in a data processing system
Cappello Fault tolerance in petascale/exascale systems: Current knowledge, challenges and research opportunities
US8732282B1 (en) Model framework to facilitate robust programming of distributed workflows
CN103154908B (zh) 用于事务存储器的最后分支记录的装置、方法和系统
US8949671B2 (en) Fault detection, diagnosis, and prevention for complex computing systems
TWI337707B (en) System and method for logging recoverable errors
Di Martino et al. Lessons learned from the analysis of system failures at petascale: The case of blue waters
Chan et al. HashKV: Enabling Efficient Updates in {KV} Storage via Hashing
US8381028B2 (en) Accelerating recovery in MPI environments
US6948094B2 (en) Method of correcting a machine check error
US7313717B2 (en) Error management

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees