CN104781790B - 用信号通知软件可恢复错误 - Google Patents
用信号通知软件可恢复错误 Download PDFInfo
- Publication number
- CN104781790B CN104781790B CN201380059009.3A CN201380059009A CN104781790B CN 104781790 B CN104781790 B CN 104781790B CN 201380059009 A CN201380059009 A CN 201380059009A CN 104781790 B CN104781790 B CN 104781790B
- Authority
- CN
- China
- Prior art keywords
- mistake
- harmful
- processor
- instruction
- failure
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
- 230000011664 signaling Effects 0.000 title claims abstract description 17
- 230000004044 response Effects 0.000 claims abstract 6
- 238000000034 method Methods 0.000 claims description 49
- 238000003860 storage Methods 0.000 claims description 27
- 238000001514 detection method Methods 0.000 claims description 5
- 239000011800 void material Substances 0.000 claims 1
- 230000010365 information processing Effects 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000000151 deposition Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/006—Identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0715—Error 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 in a system implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0793—Remedial or corrective actions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开了用于用信号通知软件可恢复错误的本发明的实施例。在一个实施例中,处理器包括第一单元、可编程指示器和第二单元。该第一单元用于检测有害错误。该可编程指示器用于指示该有害错误被作为机器检查错误还是故障和系统管理中断之一来用信号通知。该第二单元用于响应于该可编程指示器将该有害错误作为故障和系统管理错误之一来用信号通知。
Description
背景
1.领域
本公开涉及信息处理领域,并且更具体地涉及信息处理系统的可靠性领域。
2.相关技术描述
可靠性在某些信息处理系统中非常重要。因此,已经开发了各种技术来用信号通知信息处理系统内存在错误,一种这种技术是使用来自英特尔公司的各种处理器族内的机器检查异常(MCE)。
附图简要说明
通过举例而非限制在附图中示出本发明。
图1示出根据本发明的实施例的提供用信号通知软件可恢复错误的系统。
图2示出根据本发明的实施例的处理存储单元。
图3示出根据本发明的实施例的处理器控制单元。
图4、图5和图6示出根据本发明的实施例的用信号通知软件可恢复错误的方法。
详细描述
描述了用于用信号通知软件可恢复错误的本发明的实施例。在本描述中,可列出各种特定细节(诸如组件和系统配置),以便提供本发明的更透彻理解。然而,本领域普通技术人员将认识到可在没有这些特定细节的情况下实践本发明。此外,为了避免不必要地模糊本发明,尚未详细示出公知的结构、电路和其他特征。
在以下描述中,对“一个实施例”、“实施例”、“示例实施例”、“各实施例”等等的引用指示如此描述的本发明的实施例可包括具体特征、结构、或特性,但不是每个实施例都需要包括该具体特征、结构、或特性。进一步地,某些实施例可具有针对其他实施例所描述的特征中的某些、全部或没有。
如在权利要求书中所使用的,除非以其他方式指明,用于描述元件的顺序形容词“第一”、“第二”、“第三”等等的使用仅指示元件的具体实例或者相同元件的不同实例并且不旨在暗示这些如此描述的元件必须按特定顺序(或者按时间、按空间排序或者以任何其他方式)。
而且,术语“位”、“标志位”、“字段”、“条目”等等可用于描述寄存器、表格、数据库或其他数据结构中的任何类型的存储位置,不管是用硬件还是用软件实现,但并不旨在将本发明的实施例限制为任何特定存储位置中的任何特定类型的存储位置或任何数量的位或其他元素。术语“清零”可用于指示存储逻辑零值或者以其他方式致使将其存储在存储位置中,并且术语“置位”可用于指示存储逻辑1值或以其他方式致使将其存储在存储位置中;然而,这些术语不旨在将本发明的实施例限制为任何特定的逻辑惯例,因为可在本发明的实施例中使用任何逻辑惯例。
如在背景部分中所提到的,来自英特尔公司的各种处理器族提供用信号通知信息处理系统内存在错误的机器检查架构(MCA)方法。本发明的实施例可提供以可减少系统关机频率的方式用信号通知某些错误(包括但不限于能够被使用MCA方法用信号通知的错误),诸如软件可恢复错误。
图1示出系统100,即根据本发明的实施例的提供用信号通知软件可恢复错误的信息处理系统。系统100可表示任何类型的信息处理系统,诸如服务器、桌上计算机、便携式计算机、机顶盒、手持式设备、或嵌入式控制系统。系统100可包括处理器110和系统存储器120。体现本发明的系统可包括这些组件中的每一个组件的任何数量以及任何其他组件或其他元件,诸如信息存储设备、外围设备和输入/输出设备。本系统实施例或任何系统实施例中的任何或全部组件或其他元件可通过任何数量的总线、点到点、或其他有线或无线接口或连接而连接、耦合、或以其他方式与彼此通信。
处理器110可表示集成在单个衬底上或者封装在单个封装中的一个或多个处理器,每个处理器可包括呈任何组合的多个线程和/或多个执行核。被表示为处理器110的每个处理器可以是任何类型的处理器,包括通用微处理器,诸如英特尔酷睿处理器族、英特尔凌动处理器族中的处理器、或来自英特尔公司的其他处理器族或来自另一家公司的另一个处理器,或专用处理器或微控制器。处理器110可包括指令单元111、执行单元112、处理存储单元113、接口单元114、处理器控制单元115、以及高速缓存单元116。处理器110还可包括在图1中未示出的任何其他电路、结构、或逻辑,和/或在图1中的其他地方示出的任何电路、结构、或逻辑。
指令单元111可表示用于取出、接收、解码、和/或调度指令的任何电路、结构或其他硬件,诸如指令解码器。可在本发明的范围内使用任何指令格式;例如,指令可包括操作码和一个或多个操作数,其中,操作码可被解码为一个或多个微指令或微操作以便由执行单元112执行。
执行单元112可包括用于处理数据并执行指令、微指令、和/或微操作的任何电路、结构、或其他硬件,诸如算术单元、逻辑单元、浮点单元、移位器等等。
处理存储单元113可表示可用于处理器110内的任何目的的任何类型的存储器,例如,其可包括任何数量的数据寄存器、指令寄存器、状态寄存器、配置寄存器、控制寄存器、其他可编程或硬编码寄存器或寄存器组、或任何其他存储结构。
接口单元114可表示任何电路、结构、或其他硬件(诸如总线单元、消息传送单元、或任何其他单元、端口、或接口),以便允许处理器110通过任何类型的总线、点到点、或其他连接直接或通过任何其他组件(诸如存储器控制器或总线桥)与系统100内的其他组件通信。
处理器控制单元115可包括任何逻辑、微代码、电路、或其他硬件以便控制处理器110的单元和其他元件的操作以及数据在处理器110内、向内、向外的传送。处理器控制单元115可通过致使处理器110执行由指令单元111接收的指令和从由指令单元111接收的指令导出的微指令或微操作来致使处理器110执行或参与执行本发明的方法实施例,诸如以下描述的方法实施例。
高速缓存单元116可包括信息处理系统110的存储器层次内的用静态随机存取存储器或任何其他存储器技术实现的一个或多个高速缓存存储器级别。高速缓存单元116可包括根据用于信息处理系统内的高速缓存的任何已知的方法专用于处理器110内的任何一个或多个执行核或处理器或者在其间共享的高速缓存存储器的任何组合。
系统存储器120可以是动态随机存取存储器或处理器110可读的任何其他类型的介质,并且可用于存储系统控制软件122,诸如操作系统(OS)或虚拟机监视器(VMM),包括错误处理器124。系统存储器120还可用于存储数据结构(例如,中断描述符表或IDT 126)以便直接或间接为不同种类的错误、中断或异常提供处理器的位置。
图2示出处理存储单元200,其实施例可用作处理器110内的处理存储单元113。处理存储单元200包括多个模型特定寄存器(MSR),其可用于用信号通知错误,包括能力寄存器(CAP MSR 210)、状态寄存器(STATUS MSR 220)、控制寄存器(CTL MSR 230)、以及错误报告寄存器的一个或多个组(BANK MSR 240)。CAP MSR 210可用于提供有关处理器110的用信号通知错误能力(例如,根据MCA和/或其他方法)的信息。STAT MSR 220可用于在用信号通知错误时(例如,使用MCE和/或其他手段)描述处理器110的状态。CTL MSR 230可用于控制用信号通知错误。每组BANK MSR 240可用于控制用信号通知错误以及为处理器110内的特定硬件单元或一组单元报告错误信息。在BANK MSR 240内报告的信息可包括有关错误的严重性的信息(例如,该错误是经过校正的还是未经过校正的)、指向触发该错误的指令的指针、有关软件是否可用于从该错误恢复的指示、错误的位置(例如,物理存储器地址系统)、以及可用于标识观察到该错误的逻辑处理器的信息。例如,每组BANK MSR 240可包括ADDRMSR 242和MISC MSR 244,其中,ADDR MSR 242可用于存储地址并且MISC MSR 244可用于存储(例如,在位[8:6])寻址模式,其可在如下描述的本发明的实施例中使用。处理存储单元200还可包括可在本发明的实施例中使用的其他存储位置或控制或其他寄存器(例如,CR2252和CR4 254)。
图3示出处理器控制单元300,其实施例可用作处理器110内的处理器控制单元15。处理器控制单元300包括MCA单元310和用信号通知软件可恢复(SR)错误单元320。MCA单元310可包括微代码、逻辑、电路、和/或其他硬件以便根据方法(例如,MCA)控制并实现用信号通知错误,该方法包括如下方法:其中针对某些错误,向多处理器系统内的所有处理器发送广播类型的信号。用信号通知SR错误单元320可包括微代码、逻辑、电路、和/或其他硬件以便根据方法控制并实现用信号通知错误,在该方法中,可通过允许软件(例如,OS或VMM)从错误恢复的方式执行用信号通知错误而不是发送广播类型的信号或者在其之前。例如,本发明的实施例可提供将信号作为故障而不是异常来用信号通知。用信号通知SR错误单元320内的某些或全部微代码、逻辑、电路、和/或其他硬件可与MCA单元310内的微代码、逻辑、电路、和/或其他硬件一起共享或实现,并且用信号通知SR错误单元320可表示对MCA单元310的特定修改和/或添加而不是完全分开的控制单元。
系统100内的错误可涉及检测系统存储器120内的位置或系统100内的其他位置的内容内的错误。在这种情况下,可由硬件、固件、或软件通过校正该错误或通过将位置或包括该位置的更大区域标记为“有害”来处理该错误。然后,访问该位置的后续尝试(不管是作为指令取出还是数据读或写的一部分)可导致“有害”错误以便防止系统使用错误的指令或数据。用于用信号通知错误的某些方法可在同时存在两个系统错误信号(例如,MCE)的情况下导致系统关机。然而,可同时存在来自单个错误源(例如,来自由第一处理器封装内的存储器控制器所执行的存储器的周期性清洗(例如,巡检清洗错误)对有害位置内错误的检测(或再检测)以及来自第二处理器封装内的末级高速缓存的写入同一有害位置的尝试(例如,显式写回错误))的两个系统错误信号。因此,本发明的实施例可提供在没有系统关机的情况下从多个有害或其他错误的恢复。
处理器110的支持本发明的一个或多个实施例的一个或多个特征的能力可由处理存储单元200内的或者处理器110内的其他位置处的一个或多个指示器指示。例如,CAP MSR210内的位212可用于指示本发明的实施例的具体特征由处理器110支持。同样,可在处理存储单元200内或者在处理器110内的其他位置处提供一个或多个可编程指示器以便由软件用于启用一个或多个这种特征。例如,CR4 254内的位255可用于启用本发明的实施例的具体特征。
图4、图5和图6示出根据本发明的实施例的用信号通知软件可恢复错误的方法400、500和600。尽管本发明的实施例在此方面不受限制,可参考图1、图2和图3的元素以便帮助描述图4、图5和图6的方法实施例。
图4的方法400表示根据本发明的实施例的用信号通知软件可恢复错误的方法。在框410中,根据实施例为有待作为故障用信号通知的各种错误指派标识号(例如,向量20)。在框412中,用于处理该各种错误的错误处理器(例如,错误处理器124)被指派到系统100的存储器空间内的具体存储器位置。在框414中,数据结构(例如,IDT 126)被编程有找到错误处理器所需的标识号和信息。
在框420中,在处理器110执行指令线程的过程中检测到已经被指派向量20的错误。该错误可由处理器110内的任何单元检测到,例如,当该错误尝试从有害位置取出指令时该错误可由指令单元111检测到,或者当该错误尝试从有害位置读取或者写入有害位置时由执行单元112和高速缓存单元116检测到。在框422中,处理器100(例如,处理器控制单元115)合成信息(如下所描述的)以便用信号通知该错误的检测。
在框430中,处理器110将执行线程有关的信息保存到错误处理器可访问的数据结构。例如,处理器110可将该信息推送到错误处理器的堆栈上。因此,将信息保存到数据结构可被称为将该信息推送到堆栈上;然而,本发明的实施例不限于将堆栈用作错误处理器可访问的数据结构。在框430中保存的信息可包括有待由错误处理器用于重启故障指令处的线程的信息,如指向线程的堆栈的分段选择器和指针(例如,SS和RSP的内容)、线程的状态(例如,RFLAGS的内容)以及指向指令的分段选择器和指针(例如,CS和RIP的内容)。
在框432中,处理器110将错误代码推送到错误处理器的堆栈上。错误代码可包括用于指示导致故障的访问是读还是写的位(例如,位0)、用于指示导致故障的访问是在处理器以用户模式或管理员模式执行时发起的位(例如,位1)、用于指示是在指令取出还是在数据访问期间经历故障的位(例如,位2)、以及用于指示经历故障的线程的上下文是否已损坏并且因此是不可继续的位(例如,位3)。不可继续的线程的示例可以是其中已经形成不可追溯的数据存储的线程。
在框434中,处理器110存储被访问而导致故障的地址。处理器110可将该地址存储在错误处理器可访问的任何存储位置中,例如,存储在ADDR MSR 242中以便该单元检测到故障。在框436中,处理器110存储存储在框434中的地址是物理地址还是虚拟地址的指示。处理器110可将该指示器存储在错误处理器可访问的任何存储位置中,例如,存储在MISCMSR 244中以便该单元检测到故障。
在框440中,处理器110根据用于用信号通知异常的任何已知方法用信号通知与向量20相对应的故障。在框442中,错误处理器124开始处理故障。在框444中,错误处理器124确定(例如,从错误代码的位3)线程在故障被处理后是否是可继续的。如果是可继续的,方法400在框450中继续。如果不是可继续的,方法400在框460中继续。
在框450中,错误处理器124完成处理故障。在框452中,错误处理器124重启尝试执行故障指令的线程。
在框460中,错误处理器124完成处理故障。在框462中,错误处理器124终止尝试执行故障指令的线程并且调度不同的线程以便在处理器110上执行。
图5的方法500表示根据本发明的实施例的将软件可恢复错误作为页故障用信号通知的方法。在框512中,用于处理该各种错误以及页故障的错误处理器(例如,错误处理器124)被指派到系统100的存储器空间内的具体存储器位置。在框514中,数据结构(例如,IDT126)被编程有找到错误处理器所需的标识号和信息。
在框520中,在处理器110执行指令线程的过程中检测到该各种错误。该错误可由处理器110内的任何单元检测到。例如,当该错误尝试从有害位置取出指令时该错误可由指令单元111检测到,或者当该错误尝试从有害位置读取或者写入有害位置时由执行单元112或高速缓存单元116检测到。在框522中,处理器100(例如,处理器控制单元115)合成信息(如下所描述的)以便用信号通知该错误的检测。
在框530中,处理器110将与执行线程有关的信息保存到错误处理器可访问的数据结构。例如,处理器110可将该信息推送到错误处理器的堆栈上。因此,将信息保存到数据结构可被称为将该信息推送到堆栈上;然而,本发明的实施例不限于将堆栈用作错误处理器可访问的数据结构。在框530中保存的信息可包括有待由错误处理器用于重启故障指令处的线程的信息,如指向线程的堆栈的分段选择器和指针(例如,SS和RSP的内容)、线程的状态(例如,RFLAGS的内容)以及指向指令的分段选择器和指针(例如,CS和RIP的内容)。
在框532中,处理器10将错误代码推送到错误处理器的堆栈上。错误代码可包括用于指示导致故障的访问是读还是写的位(例如,位1)、用于指示导致故障的访问是在处理器以用户模式还是管理员模式执行时发起的位(例如,位2)、用于指示是在指令取出还是在数据访问期间经历故障的位(例如,位4)、用于指示故障是由访问有害位置还是页故障的尝试导致的位(例如,位5)、以及用于指示经历故障的线程的上下文是否已损坏并且因此是不可继续的位(例如,位6)。不可继续的线程的示例可以是其中已经形成不可追溯的数据存储的线程。
在框534中,处理器110存储被访问而导致故障的地址。处理器110可将该地址存储在错误处理器可访问的任何存储位置中,例如,存储在CR2中。在框536中,处理器110存储存储在框434中的地址是物理地址还是虚拟地址的指示。处理器110可将该指示器存储在错误处理器可访问的任何存储位置中或者可将其包括在(在框532中)推送到堆栈的错误代码中。
在框540中,处理器110根据用于用信号通知异常的任何已知方法用信号通知页故障(例如,与向量14相对应的异常)。在框542中,错误处理器124开始处理故障。在框544中,错误处理器124确定(例如,从错误代码的位6)线程在故障被处理后是否是可继续的,并且如果是可继续的,则方法500在框550中继续。如果不是可继续的,方法500在框560中继续。
在框550中,错误处理器124完成处理故障。在框552中,错误处理器124重启尝试执行故障指令的线程。
在框560中,错误处理器124完成处理故障。在框562中,错误处理器124终止尝试执行故障指令的线程并且调度不同的线程以便在处理器110上执行。
图6的方法600表示根据本发明的实施例的将软件可恢复错误作为系统管理中断(SMI)用信号通知的方法。
在框620中,在处理器110执行指令线程的过程中检测到有待根据本发明的实施例处理的错误。该错误可由处理器110内的任何单元检测到。例如,当该错误尝试从有害位置取出指令时该错误可由指令单元111检测到,或者当该错误尝试从有害位置读取或者写入有害位置时由执行单元112或高速缓存单元116检测到。在框622中,处理器100(例如,处理器控制单元115)合成信息(如下所描述的)以便用信号通知该错误的检测。
在框630中,处理器110将与执行线程有关的信息保存到错误处理器可访问的数据结构。例如,处理器110可将该信息推送到错误处理器的堆栈上。因此,将信息保存到数据结构可被称为将该信息推送到堆栈上;然而,本发明的实施例不限于将堆栈用作错误处理器可访问的数据结构。
在框630中保存的信息可包括有待由错误处理器用于重启故障指令处的线程的信息,如指向线程的堆栈的分段选择器和指针(例如,SS和RSP的内容)、线程的状态(例如,RFLAGS的内容)以及指向指令的分段选择器和指针(例如,CS和RIP的内容)。
在框632中,处理器110在SMI处理器和错误处理器124可访问的寄存器中设置标志以便指示错误的状态。例如,处理器110可在STATUS MSR220中设置这些标志。这些标志可包括用于指示线程在推送到堆栈上的指令指针所指向的指令下是否是可靠地可继续的标志(例如,位0或RIPV)、用于指示推送到堆栈上的指令指针所指向的指令是否直接与错误相关联的标志(例如,位1或EIPV)、以及用于指示MCE已被生成的标志(例如,位2或MCIP)。
在框640中,处理器110用信号通知SMI。在框642中,SMI处理器开始处理故障。在框644中,SMI处理器在处理器110中设置用于指示错误信号是本地的而不是全局的标志,例如,STATUS MSR 220的位3(LMCE222)。在框646中,SMI处理器将处理器110的控制转移到错误处理器124。
在框650中,如果全局MCE发生,则在框680中,LMCE 222被清零以便指示全局MCE的传送,并且方法600在框682中继续,如果未发生,则方法600在框652中继续。
在框652中,错误处理器124确定(例如,从RIPV)线程在故障被处理后是否是可继续的。如果是可继续的,方法600在框660中继续。如果不是可继续的,方法600在框670中继续。
在框660中,错误处理器124完成处理故障。在框662中,错误处理器124重启尝试执行故障指令的线程。
在框670中,错误处理器124完成处理故障。在框672中,错误处理器124终止尝试执行故障指令的线程并且调度不同的线程以便在处理器110上执行。
在框682中,根据任何已知的方法处理全局MCE。
在本发明的各实施例中,可用不同的顺序执行在图4、图5和图6中示出的方法,组合或省略所展示的框、添加附加的框、或者重新排序、组合、省略、或者附加框的组合。此外,许多其他方法实施例在本发明的范围内是可能的。
如以上所描述的,本发明的实施例的各实施例或各部分可存储在任何形式的机器可读介质上。例如,方法400、500和600中的全部或部分可体现在存储在处理器110可读的介质上的软件或固件指令中,当由处理器110执行时,这些指令导致处理器110执行本发明的实施例。同样,本发明的各方面可体现在存储在机器可读介质上的数据中,其中,该数据表示可用于促成处理器110的全部或部分的设计或其他信息。
因此,已经描述了用于用信号通知软件可恢复错误的本发明的实施例。尽管已经描述了并且在附图中示出了特定实施例,将理解的是这种实施例仅仅是说明性的并且不限制广泛的发明,并且本发明不限于所示出和描述的特定构造和安排,因为本领域普通技术人员在学习本公开时可在诸如在此的技术领域内想到各种其他修改,其中,增长是快速的并且不容易预见进一步的改进,可如通过允许技术改进来所促成的那样容易的修改本公开的实施例而不背离本公开的原理或所附权利要求书的范围。
Claims (30)
1.一种处理器,包括:
第一单元,用于检测有害错误;
可编程指示器,用于确定所述有害错误被作为机器检查错误还是故障和系统管理中断之一来用信号通知;以及
第二单元,用于:响应于所述可编程指示器将所述有害错误作为故障和系统管理错误之一来用信号通知;以及存储可继续性指示器,所述可继续性指示器用于指示包括导致所述有害错误的指令的指令线程是否是可继续的。
2.如权利要求1所述的处理器,其中,所述第一单元是指令单元并且所述有害错误是由指令取出导致的。
3.如权利要求1所述的处理器,其中,所述第一单元是执行单元和高速缓存单元之一并且所述有害错误是由数据访问导致的。
4.如权利要求1所述的处理器,其中,所述有害错误被作为故障来用信号通知。
5.如权利要求1所述的处理器,其中,所述有害错误被作为页故障来用信号通知。
6.如权利要求1所述的处理器,其中,所述有害错误被作为系统管理中断来用信号通知。
7.一种方法,包括:
检测有害错误;
响应于可编程指示器确定将所述有害错误作为机器检查错误还是故障和系统管理错误之一来用信号通知;
将所述有害错误作为故障和系统管理错误之一来用信号通知;以及
存储指示器,所述指示器用于指示包括导致所述有害错误的指令的指令线程是否是可继续的。
8.如权利要求7所述的方法,进一步包括将所述有害错误作为故障来用信号通知。
9.如权利要求7所述的方法,进一步包括将所述有害错误作为页故障来用信号通知。
10.如权利要求7所述的方法,进一步包括将所述有害错误作为系统管理中断来用信号通知。
11.如权利要求7所述的方法,进一步包括将错误代码保存到错误处理器可访问的数据结构。
12.如权利要求11所述的方法,其中,所述错误代码包括用于指示所述有害错误是由指令取出还是由数据存取导致的指示器。
13.如权利要求11所述的方法,进一步包括存储导致所述有害错误的正在访问的位置的地址。
14.如权利要求13所述的方法,进一步包括存储用于指示所述地址是物理地址还是虚拟地址的指示器。
15.如权利要求11所述的方法,其中,所述错误代码包括用于指示所述故障是有害错误而不是页故障的指示器。
16.如权利要求7所述的方法,进一步包括设置用于指示所述用信号通知是本地的而不是全局的标志。
17.一种系统,包括:
存储器,所述存储器中存储用于处理有害错误的处理程序;以及
处理器,包括:
第一单元,用于检测所述有害错误,
可编程指示器,用于确定所述有害错误被作为机器检查错误还是故障和系统管理中断之一来用信号通知,以及
第二单元,用于:响应于所述可编程指示器将所述有害错误作为故障和系统管理错误之一来用信号通知;以及将可继续性指示器存储在所述存储器中,所述可继续性指示器用于指示包括导致所述有害错误的指令的指令线程是否是可继续的。
18.如权利要求17所述的系统,其中,所述处理程序用于重启所述指令线程。
19.如权利要求17所述的系统,其中所述处理程序用于响应于所述可继续性指示器重启所述指令线程。
20.一种机器可读介质,包括存储在所述机器可读介质上的多条指令,所述多条指令当被执行时使计算设备执行如权利要求7-16中任一项所述的方法。
21.一种设备,包括:
用于检测有害错误的装置;
用于响应于可编程指示器确定将所述有害错误作为机器检查错误还是故障和系统管理错误之一来用信号通知的装置;
用于将所述有害错误作为故障和系统管理错误之一来用信号通知的装置;以及
用于存储指示器的装置,所述指示器用于指示包括导致所述有害错误的指令的指令线程是否是可继续的。
22.如权利要求21所述的设备,进一步包括:用于将所述有害错误作为故障来用信号通知的装置。
23.如权利要求21所述的设备,进一步包括:用于将所述有害错误作为页故障来用信号通知的装置。
24.如权利要求21所述的设备,进一步包括:用于将所述有害错误作为系统管理中断来用信号通知的装置。
25.如权利要求21所述的设备,进一步包括:用于将错误代码保存到错误处理器可访问的数据结构的装置。
26.如权利要求25所述的设备,其中,所述错误代码包括用于指示所述有害错误是由指令取出还是由数据存取导致的指示器。
27.如权利要求25所述的设备,进一步包括:用于存储导致所述有害错误的正在访问的位置的地址的装置。
28.如权利要求27所述的设备,进一步包括:用于存储用于指示所述地址是物理地址还是虚拟地址的指示器的装置。
29.如权利要求25所述的设备,其中,所述错误代码包括用于指示所述故障是有害错误而不是页故障的指示器。
30.如权利要求21所述的设备,进一步包括:用于设置用于指示所述用信号通知是本地的而不是全局的标志的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/728,217 US9141454B2 (en) | 2012-12-27 | 2012-12-27 | Signaling software recoverable errors |
US13/728,217 | 2012-12-27 | ||
PCT/US2013/047311 WO2014105158A1 (en) | 2012-12-27 | 2013-06-24 | Signaling software recoverable errors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104781790A CN104781790A (zh) | 2015-07-15 |
CN104781790B true CN104781790B (zh) | 2017-12-29 |
Family
ID=51018773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380059009.3A Expired - Fee Related CN104781790B (zh) | 2012-12-27 | 2013-06-24 | 用信号通知软件可恢复错误 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9141454B2 (zh) |
CN (1) | CN104781790B (zh) |
WO (1) | WO2014105158A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9448879B2 (en) * | 2011-12-22 | 2016-09-20 | Intel Corporation | Apparatus and method for implement a multi-level memory hierarchy |
US9141454B2 (en) | 2012-12-27 | 2015-09-22 | Intel Corporation | Signaling software recoverable errors |
CN105872774A (zh) * | 2016-06-16 | 2016-08-17 | 青岛海信电器股份有限公司 | 智能电视错误码显示方法和智能电视 |
US11132314B2 (en) * | 2020-02-24 | 2021-09-28 | Dell Products L.P. | System and method to reduce host interrupts for non-critical errors |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1758215A (zh) * | 2005-01-26 | 2006-04-12 | 威盛电子股份有限公司 | 更新指令错误状态暂存器 |
CN1776630A (zh) * | 2004-11-17 | 2006-05-24 | 国际商业机器公司 | 用于部署计算基础设施的方法和数据存储设备 |
CN101326494A (zh) * | 2005-12-15 | 2008-12-17 | 英特尔公司 | 协调硬件事务存储器事务和软件事务存储器事务对存储单元的访问 |
CN102486746A (zh) * | 2010-12-03 | 2012-06-06 | 鸿富锦精密工业(深圳)有限公司 | 服务器及其检测pci系统错误的方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742840A (en) * | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
US6948094B2 (en) * | 2001-09-28 | 2005-09-20 | Intel Corporation | Method of correcting a machine check error |
US7363474B2 (en) * | 2001-12-31 | 2008-04-22 | Intel Corporation | Method and apparatus for suspending execution of a thread until a specified memory access occurs |
US7213093B2 (en) * | 2003-06-27 | 2007-05-01 | Intel Corporation | Queued locks using monitor-memory wait |
WO2006134691A1 (ja) * | 2005-06-17 | 2006-12-21 | Nec Corporation | 情報処理装置、復旧装置、プログラム及び復旧方法 |
US7721034B2 (en) | 2006-09-29 | 2010-05-18 | Dell Products L.P. | System and method for managing system management interrupts in a multiprocessor computer system |
US7734982B2 (en) | 2006-11-30 | 2010-06-08 | Motorola, Inc. | Method and apparatus for indicating uncorrectable errors to a target |
US9141454B2 (en) | 2012-12-27 | 2015-09-22 | Intel Corporation | Signaling software recoverable errors |
US9311138B2 (en) * | 2013-03-13 | 2016-04-12 | Intel Corporation | System management interrupt handling for multi-core processors |
-
2012
- 2012-12-27 US US13/728,217 patent/US9141454B2/en not_active Expired - Fee Related
-
2013
- 2013-06-24 WO PCT/US2013/047311 patent/WO2014105158A1/en active Application Filing
- 2013-06-24 CN CN201380059009.3A patent/CN104781790B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1776630A (zh) * | 2004-11-17 | 2006-05-24 | 国际商业机器公司 | 用于部署计算基础设施的方法和数据存储设备 |
CN1758215A (zh) * | 2005-01-26 | 2006-04-12 | 威盛电子股份有限公司 | 更新指令错误状态暂存器 |
CN101326494A (zh) * | 2005-12-15 | 2008-12-17 | 英特尔公司 | 协调硬件事务存储器事务和软件事务存储器事务对存储单元的访问 |
CN102486746A (zh) * | 2010-12-03 | 2012-06-06 | 鸿富锦精密工业(深圳)有限公司 | 服务器及其检测pci系统错误的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2014105158A1 (en) | 2014-07-03 |
CN104781790A (zh) | 2015-07-15 |
US20140189445A1 (en) | 2014-07-03 |
US9141454B2 (en) | 2015-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9317360B2 (en) | Machine check summary register | |
US8671309B2 (en) | Mechanism for advanced server machine check recovery and associated system software enhancements | |
US10713128B2 (en) | Error recovery in volatile memory regions | |
US8245195B2 (en) | System and method for debugging a computer program | |
US20110320892A1 (en) | Memory error isolation and recovery in a multiprocessor computer system | |
CN104781790B (zh) | 用信号通知软件可恢复错误 | |
JPS6229827B2 (zh) | ||
CN103140841A (zh) | 保护存储器的部分的方法和装置 | |
JPH0548502B2 (zh) | ||
US11782753B2 (en) | Node-local-unscheduler for scheduling remediation | |
CN102959526A (zh) | 地址变换检查装置、中央处理运算装置及地址变换检查方法 | |
CN1329839C (zh) | 一种计算机cpu抗干扰的设计方法 | |
JP2008084080A (ja) | 障害情報格納システム、サービスプロセッサ、障害情報格納方法、及びプログラム | |
US10846162B2 (en) | Secure forking of error telemetry data to independent processing units | |
JP2005234744A (ja) | マルチプロセッサシステム及び障害処理方法 | |
JP2004252525A (ja) | エミュレータおよびプログラム | |
US20070179635A1 (en) | Method and article of manufacure to persistently deconfigure connected elements | |
JP5832408B2 (ja) | 仮想計算機システム及びその制御方法 | |
JP3025504B2 (ja) | 情報処理装置 | |
JP2009070212A (ja) | マルチプロセッサシステム | |
JP5227653B2 (ja) | 多重化計算機システム、及びその処理方法 | |
JP2806799B2 (ja) | 情報処理システム | |
CN117687833A (zh) | 测试数据安全的方法、装置及存储介质 | |
JPH0581059A (ja) | マルチプロセツサシステム | |
JPS5899841A (ja) | 部分実装された制御メモリのアドレス制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171229 Termination date: 20210624 |