CN104704478B - 输入/输出错误遏制事件后的恢复 - Google Patents

输入/输出错误遏制事件后的恢复 Download PDF

Info

Publication number
CN104704478B
CN104704478B CN201280073141.5A CN201280073141A CN104704478B CN 104704478 B CN104704478 B CN 104704478B CN 201280073141 A CN201280073141 A CN 201280073141A CN 104704478 B CN104704478 B CN 104704478B
Authority
CN
China
Prior art keywords
input
mistake
output
containment
event
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
Application number
CN201280073141.5A
Other languages
English (en)
Other versions
CN104704478A (zh
Inventor
S·贾亚库马尔
M·J·库马
J·A·瓦加斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN104704478A publication Critical patent/CN104704478A/zh
Application granted granted Critical
Publication of CN104704478B publication Critical patent/CN104704478B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1616Error detection by comparing the output signals of redundant hardware where the redundant component is an I/O device or an adapter therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0712Error 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 virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0745Error 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 an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Abstract

在此描述了用于具有平台实体例如中断处理器的计算设备的装置、计算机实现方法、系统、设备和计算机可读介质的实施例,所述中断处理器被配置为向在计算设备上执行的操作系统或虚拟机监视器通知输入/输出错误遏制事件。在各种实施例中,中断处理器可被配置为,响应于来自操作系统或虚拟机监视器的指示,促进通向导致了输入/输出错误遏制事件的输入/输出设备的链路的恢复。

Description

输入/输出错误遏制事件后的恢复
技术领域
本发明的实施例大体上涉及数据处理技术领域,并特别地涉及输入/输出错误遏制(error-containment)事件后的恢复。
背景技术
在此提供的背景说明是为了大概介绍本公开的背景。在本背景技术部分所描述的范围内,当前指定的发明人的工作,以及在提交文件时可能还不足以作为现有技术的说明书的各方面,未明显地或隐含地被认定为是相对于本公开的现有技术。除非在此表明,本部分所描述的方法并非本公开中权利要求的现有技术并且不因包括在该部分而被认定为现有技术。
错误遏制逻辑,例如配置有美国加州圣克拉拉的公司所开发的实时错误恢复(“LER”)技术的硬件或固件,可用于遏制发生在输入/输出(“I/O”)设备上的错误,所述输入/输出设备使用各种技术(例如快速外围组件互连(“PCIe”))可操作地被耦合。LER使I/O设备/端口在端口上的错误被遏制后能够恢复。然而,仍然存在系统故障,例如在操作系统(“OS”)或虚拟机监视器(“VMM”)层,因为错误遏制逻辑和OS/VMM之间协作不足或没有协作。
附图说明
通过以下详细说明并结合附图,实施例将容易理解。为了便于说明,相似的参考数字代表相似的结构元素。实施例在附图中的各图中通过示例方式而非限制的方式进行说明。
图1示意性地示出了根据各种实施例用本公开的教导的可适用部分配置的示例计算设备。
图2示意性地描述了根据各种实施例的各种组件之间的示例过程流。
图3示意性地描述了根据各种实施例可由平台实体例如中断处理器实现的示例方法。
图4示意性地描述了根据各种实施例可由操作系统或虚拟机监视器实现的示例方法。
图5示意性地描述了根据各种实施例的、所公开的方法和计算机可读介质可以在其上实现的示例计算设备。
具体实施方式
在下面的详细说明中,将参考附图,所述附图形成此文的一部分,其中相似的附图标记始终代表相似的部件,并且附图通过可能被实践的实施例的举例来呈现。应当理解,可以使用其他实施例并且可以进行结构或逻辑上的改变而不背离本公开的范围。因此,以下详细说明并非为了限制,并且实施例的范围由附加的权利要求和其等同者来定义。
各种操作可以以最有助于理解所主张的主题的方式被描述为多个依次分离的动作或操作。然而,描述的次序不应被解释为暗示这些操作必须在次序上相关。特别地,这些操作可以不按照所呈现的次序执行。所描述的操作可以按照不同于所描述的实施例的次序来执行。可以执行各种附加操作和/或所描述的操作在其他实施例中可以被省略。
为了本公开的目的,短语“A和/或B”意思是(A)、(B)或(A和B)。为了本公开的目的,短语“A,B,和/或C”意思是(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
说明书可使用短语“在一个实施例中”或“在实施例中”,均可指代相同或不同实施例中的一个或多个。并且,本公开实施例中所使用的术语“包含”“包括”“具有”和类似术语,其含义相同。
在此使用的术语“模块”可指代或包括专用集成电路(“ASIC”)、电子电路、执行一个或多个软件或固件程序的处理器(共享的、专用的或群组的)和/或存储器(共享的、专用的或群组的)、组合逻辑电路、和/或提供所述功能性的其他合适的组件,或者作为上述各组件的一部分。
图1示意性地描述了可在用本公开的教导的可适用部分配置的计算设备100上实现的各种组件。图1中标记为1-N的多个输入/输出(“I/O”)设备102,可连接至多个I/O端口103。多个I/O设备102可包括各种类型的I/O设备,包括但不限于键盘、鼠标、触摸感应屏、显示器、扬声器、打印机、传真、存储设备(例如,硬盘驱动器,固态驱动器)、扫描仪、有线和无线通信接口例如天线等。在各种实施例中,I/O端口103可以是各种类型的端口,例如快速外围组件互连(“PCIe”)根端口。
每个I/O端口103可包括错误遏制逻辑104(在图1中用“E-C LOGIC”表示)。错误遏制逻辑104可以是被配置为检测和遏制I/O端口103和/或I/O设备102上的错误以防止错误传播的硬件、软件(例如固件中的指令)、或二者的任意组合。在各种实施例中,错误遏制逻辑104可包括美国加州圣克拉拉的公司所开发的实时错误恢复(“LER”)技术。在各种实施例中,当检测到错误时,用于经历该错误的I/O端口103的错误遏制状态位(例如,LER事件状态位)可被设置以指示已经触发了错误遏制模式。在各种实施例中,在发生错误遏制事件时,I/O端口103可强制通向I/O设备102的链路为LinkDown状态,在该状态中输出请求可被中断。在各种实施例中,在LinkDown状态下可允许输入数据包正常耗尽。在各种实施例中,在清除错误遏制事件时,I/O端口103的错误遏制状态位可以被清除。可允许链路进入LinkUp状态,在该状态下允许事务正常传播。
计算设备100可包括控制各种低级功能的各种“平台实体”。平台实体可以用硬件、软件(例如微控制器固件)或二者的任意组合来实现。对于某些实施例,它们可包括但不限于基板管理控制器(“BMC”)106和/或中断处理器108。在各种实施例中,BMC 106或其等同者可以是使用传感器和其他类似技术来监视计算设备100的物理状态的专用服务处理器。
中断处理器108可被配置为响应于硬件和/或软件中断来执行。中断处理器108可取决于触发其执行的中断的特性执行各种例程。例如,如果用户(未示出)按压键盘(未示出)上的键或与触摸感应屏(未示出)交互,硬件中断可从相应的键盘或触摸感应屏控制器发送至中断处理器108,中断处理器108继而向一个或多个其他组件(例如,字处理应用)提供输入条目的指示。
计算设备100也可包括存储器110。存储器110可以是各种类型的存储器,例如动态随机存取存储器(“DRAM”)。在各种实施例中,存储器110可包括执行操作系统(“OS”)和/或虚拟机监视器(“VMM”)112的指令。存储器110可进一步包括用于执行在图1中标记为1-N、可向多个I/O设备102提供软件接口的多个驱动器114的指令。尽管图1中未示出,存储器110也可包括用于执行任何数目的其他计算机程序(例如,诸如字处理器、媒体播放器、web(网络)服务等应用)的指令。
如在背景技术中所述,当I/O错误导致错误遏制事件被错误遏制逻辑104发信号通知(signal)时,错误遏制逻辑104和计算设备100的较高层的组件(例如,OS/VMM 112)可能无法协作。这可导致计算机设备100故障,即使I/O错误已经被遏制。因此,可以实现在此描述的各种技术从而防止发生I/O错误遏制事件后计算设备100在OS/VMM层发生故障。这可以提高在任务关键环境下的可靠性、可用性和可服务性(“RAS”)。
在各种实施例中,错误遏制逻辑104可向平台实体例如中断处理器108通知I/O错误遏制事件。平台实体继而向OS/VMM 112通知I/O错误遏制事件。例如,在各种实施例中,中断处理器108可使用平台实体和OS/VMM 112之间的通信通道,例如平台通信通道(“PCC”)116,向OS/VMM 112通知I/O错误遏制事件。PCC 116可以是平台实体例如BMC 106、错误遏制逻辑104和/或中断处理器108可用来与计算设备100的更高层实体(例如OS/VMM 112)进行通信的机制。在各种实施例中,PCC 116可定义可实现为一个或多个独立通信通道的地址空间,或子空间。在各种实施例中,PCC 116可遵守2011年12月6日公布的高级配置和电源接口规范版本5.0(“ACPI规范”)。在各种实施例中,平台实体例如中断处理器108可直接向OS/VMM 112通知错误遏制事件,例如通过PCC 116,而不通过中断处理器108。
在各种实施例中,各种组件可促进通向导致了I/O错误遏制事件的I/O设备102的链路的恢复。例如,OS/VMM 112可清除与I/O端口103和/或I/O设备102相关联的软件堆栈并且向平台实体例如中断处理器108发送堆栈已经被清除的指示(例如使用PCC)。中断处理器108继而可改变各种硬件寄存器的内容以恢复链路。例如,中断处理器108可清除——或者使错误遏制逻辑104或与I/O端口103相关联的其他逻辑来清除——错误寄存器,并且清除响应于I/O错误遏制事件而设置的I/O端口103的错误遏制事件状态位。在各种实施例中,一旦这些寄存器被清除,I/O端口可使通向I/O设备102的链路改变为LinkUp状态。
图2示出了计算设备100的各种组件之间的示例过程流。左手边是PCIe根端口,它可对应于图1的错误遏制逻辑104和/或I/O端口103。中间是平台实体,在各种实施例中它可以是中断处理器108和/或BMC 106中的一个或多个。右手边是OS或VMM,例如图1的OS/VMM112。
在各种时间点,例如当计算设备100引导时,各种组件可执行初始化例程(用虚线示出)从而使计算设备100准备好恢复通向I/O设备102和/或I/O端口103的链路,同时避免OS/VMM层的故障。例如,在块202,与多个I/O端口103相关联的信息可由平台实体例如中断处理器108存储在OS/VMM 112可存取的存储器中。在一些实施例中,该信息可以与ACPI规范一致的格式存储。在各种实施例中,该信息可包括I/O端口信息(例如,所连接的设备的类型等)、可处理的错误类型等。在块204,该信息可由OS/VMM 112用来注册多个错误遏制事件处理器。在各种实施例中,该多个事件处理器可对应于多个I/O端口103。
在块206,在发生I/O错误时,该I/O错误可以例如被错误遏制逻辑104在特定I/O端口103处检测到。在块208,例如由错误遏制逻辑104确定被检测到的错误是否已经被遏制。例如,在各种实施例中,LER硬件/软件可发信号通知I/O错误已经被遏制。如果错误被遏制,错误遏制逻辑104可发信号通知I/O错误遏制事件,并且该过程可进行到块210。
在块210,平台实体例如中断处理器108可识别经历了I/O错误的I/O端口103。例如,错误遏制逻辑104可向中断处理器108通知错误遏制事件和该事件发生于的I/O端口103。在块212,例如可由平台实体例如中断处理器108产生错误遏制记录。错误遏制记录可包括各种信息,包括但不限于所识别的经历了该错误的I/O端口103、关于该错误的信息等。然后错误遏制记录被发送到OS/VMM 112。在各种实施例中,中断处理器108可利用PCC门铃协议,该协议可包括使用经由I/O或存储器映射的I/O可存取的硬件寄存器将错误遏制记录传送至OS/VMM 112。在块214,合适的错误遏制事件处理器(其可能已经在块204产生)可实现驱动层恢复。例如,错误遏制事件处理器可向驱动器114(对应于导致了该错误遏制事件的I/O端口103和/或设备102)通知错误遏制事件,从而驱动器114可指示它是否能够恢复经历了该错误的I/O设备102。
在块216,假设驱动器指示它将能够恢复I/O设备102,OS/VMM 112可以,例如通过PCC116向平台实体例如中断处理器108,传送就绪和/或指示以恢复通向导致了错误遏制事件的I/O设备102的链路。在各种实施例中,OS/VMM 112可利用PCC门铃协议将该就绪/指示传送至平台实体。在块218,可以例如由平台实体例如中断处理器108发布适当的命令(例如,清除(一个或多个)错误寄存器)以使得I/O端口103恢复链路。
图3示出了可以由平台实体例如中断处理器108实现的示例方法300。在块302,与多个I/O端口103和/或I/O设备102相关联的、可由OS/VMM 112用于注册与该多个I/O端口103对应的多个错误遏制事件处理器的信息可以例如由中断处理器108存储(或“公布”)在OS/VMM 112的可存取的存储器中。
在块304,在发生I/O错误时,具有发信号通知了对应I/O错误遏制事件的错误遏制逻辑104的I/O端口103可被识别,例如由平台实体例如中断处理器108识别。尽管图3中未示出,在各种实施例中,在进一步处理之前,平台实体可以等待直到经历该错误的I/O端口103上所有活动的(或“进行中的”)事务完成(或“耗尽”)。
在块306,在所有进行中的事务完成之后,平台实体例如中断处理器108可产生与该错误遏制事件相关联的错误遏制记录。在各种实施例中,错误遏制记录可包括各种信息,例如错误遏制事件针对其而触发的I/O端口103的标识。在块308,错误遏制记录可以,例如由平台实体例如中断处理器108,传送至OS/VMM 112。如上所述,该传送可通过PCC 116发生,例如使用PCC门铃协议。
在块310,平台实体例如中断处理器108可以例如通过PCC 116从OS/VMM112接收以下指示:OS/VMM 112准备好恢复通向发生故障的I/O设备102的链路。在各种实施例中,在块312,平台实体例如中断处理器108随后可以清除与经历了I/O错误遏制事件的I/O端口103相关联的错误日志。在各种实施例中,在块314,平台实体例如中断处理器108可促进经历了I/O错误遏制事件的I/O端口103的恢复。例如,中断处理器108可发布合适的命令使得I/O端口103恢复该链路。
图4描述了根据各种实施例可由各种组件例如OS/VMM 112实现的示例方法400。在块402,可以例如由OS/VMM 112基于在图3的302中由例如中断处理器108所存储的与多个I/O端口103相关联的信息来注册与多个I/O端口103相关联的多个错误遏制事件处理器。错误遏制事件处理器可在各种时间点产生,例如启动时。
在块404,可以例如由OS/VMM112从平台实体例如中断处理器108接收错误遏制事件的通知。在各种实施例中,该通知可通过PCC 116接收,例如使用PCC门铃协议。在块406,可以由例如OS/VMM 112识别与导致了错误遏制事件的I/O设备102相关联的驱动器114,并且向其通知该错误遏制事件。在块408,OS/VMM 112可以例如从与I/O设备102相关联的驱动器114接收以下通知:驱动器能够恢复I/O设备102。
在块410,一旦向OS/VMM 112通知了驱动器114将能够恢复I/O设备102,OS/VMM112可指示平台实体例如中断处理器108,例如通过PCC 116,以恢复通向经历了该错误的I/O设备102的链路。在块412,当通向经历了错误遏制事件的故障I/O设备102的链路被恢复时,OS/VMM 112可像错误发生前一样重配置和处理I/O设备102。
图5示出了根据各种实施例的示例计算设备500。计算设备500可包括多个组件、处理器504和至少一个通信芯片506。在各种实施例中,处理器504可以是处理器核。在各种实施例中,该至少一个通信芯片506也可以物理地和电学地耦合至处理器504。在进一步的实现中,通信芯片506可以是处理器504的一部分。在各种实施例中,计算设备500可包括印刷电路板(“PCB”)502。对于这些实施例,处理器504和通信芯片506可设置在其上。在可替换的实施例中,各种组件可以不采用PCB 502而被耦合。
取决于其应用,计算设备500可包括其他组件,例如可以包括在此讨论的一个或多个物理地和电学地耦合至或者未耦合至PCB 502的平台实体。这些其他组件包括,但不限于,BMC 507(用本公开的教导的可应用部分配置)、易失性存储器(例如动态随机存取存储器508,也称为“DRAM”)、非易失性存储器(例如只读存储器510,也称为“ROM”)、闪存512、一个或多个错误遏制逻辑513(用本公开的教导的可应用部分配置)、图形处理器514、中断处理器515(用本公开的教导的可应用部分配置)、数字信号处理器(未示出)、加密处理器(未示出)、输入/输出(“I/O”)控制器516、天线518、显示器(未示出)、触摸屏显示器520、触摸屏控制器522、电池524、音频编解码器(未示出)、视频编解码器(未示出)、全球定位系统(“GPS”)设备528、罗盘530、加速计(未示出)、陀螺仪(未示出)、扬声器532、照相机534,以及大容量存储设备(例如硬盘驱动器、固态驱动器、光盘(“CD”)、数字通用光盘(“DVD”))(未示出)等。在各种实施例中,处理器504可以和其他组件例如BMC 507和/或中断处理器515集成在同一晶片上从而形成片上系统(“SoC”)。
在各种实施例中,易失性存储器(例如DRAM 508)、非易失性存储器(例如ROM510)、闪存512和大容量存储设备可包括编程指令,所述编程指令被配置为响应于被处理器(一个或多个)504执行而使计算设备500能够实行方法300和/或400的全部或所选方面。例如,存储器组件诸如易失性存储器(例如DRAM 508)、非易失性存储器(例如ROM 510)、闪存512和大容量存储设备的一个或多个可包括指令的临时和/或永久拷贝,所述指令被配置为使计算设备500能够实行所公开的技术,例如方法300和/或400的全部或所选方面。
通信芯片506可使能用于向计算设备500和从计算设备500传输数据的有线和/或无线通信。术语“无线”和其派生词可用于描述可通过在非固态介质中使用调制的电磁辐射来传输数据的电路、设备、系统、方法、技术、通信通道等。该术语并不意味着相关联设备不包含任何连线,尽管在某些实施例中它们可能不包含。通信芯片506可实现多个无线标准或协议中的任何一个,包括但不限于Wi-Fi(IEEE 802.11家族)、WiMAX(IEEE 802.16家族)、IEEE 802.20、长期演进技术(“LTE”)、Ev-DO、HSPA+、HSDPA+、HSUPA+、EDGE、GSM、GPRS、CDMA、TDMA、DECT、蓝牙及其衍生,以及任何其他被称为3G、4G、5G和更高的无线协议。计算设备500可包括多个通信芯片506。例如,第一通信芯片506可专门用于较短范围的无线通信例如Wi-Fi和蓝牙,而第二通信芯片506可专门用于较长范围的无线通信例如GPS、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO和其他。
在各种实施例中,计算设备500可以是膝上电脑、上网本、笔记本、超级本、智能电话、计算平板电脑、个人数字助理(“PDA”)、超级移动PC、移动电话、台式电脑、服务器、打印机、扫描仪、监视器、机顶盒、娱乐控制单元(例如游戏控制台)、数字照相机、便携式音乐播放器或数字录像机。在进一步的实现中,计算设备500可以是处理数据的任何其他电子设备。
在各种实施例中,处理器504(或者其多个处理器核中的一个)可与一个或多个平台实体封装在一起。对于一个实施例,处理器504(或其多个处理器核中的一个)可与一个或多个平台实体封装在一起从而形成系统级封装(SiP)。对于一个实施例,处理器504(或者其多个处理器核中的一个)可与一个或多个平台实体封装在一起,并且集成在同一晶片上。对于一个实施例,处理器504(或者其多个处理器核中的一个)可与一个或多个平台实体封装在一起从而形成SoC。
在此描述了装置、计算机实现方法、系统、设备和计算机可读介质的实施例,它们用于使例如计算设备的平台实体例如中断处理器能够向在该计算设备上执行的操作系统或虚拟机监视器通知输入/输出错误遏制事件,并且响应于来自操作系统或虚拟机监视器的指示,促进通向导致了该输入/输出错误遏制事件的输入/输出设备的链路的恢复。在各种实施例中,中断处理器可进一步使用平台通信通道,例如使用门铃协议,向操作系统或虚拟机监视器通知输入/输出错误遏制事件。
在各种实施例中,中断处理器可识别与导致了输入/输出错误遏制事件的输入/输出设备相关联的端口,并且向操作系统或虚拟机监视器通知所识别的端口。在各种实施例中,中断处理器可产生与错误遏制事件相关联的错误遏制记录。在各种实施例中,中断处理器可清除与导致了输入/输出错误遏制事件的输入/输出设备相关联的错误日志。
在各种实施例中,中断处理器可将与多个输入/输出端口相关联的信息存储在操作系统或虚拟机监视器可存取的存储器中,该信息可由操作系统或虚拟机监视器用于注册对应于多个输入/输出端口的多个错误遏制事件处理器。
在此还描述了装置、计算机实现方法、系统、设备和计算机可读介质的实施例,它们用于使计算设备的操作系统或虚拟机监视器能够从计算设备的中断处理器接收错误遏制事件的通知,并且响应于通知,促进通向导致了该错误遏制事件的输入/输出设备的链路的恢复。在各种实施例中,操作系统或虚拟机监视器可向与导致了错误遏制事件的输入/输出设备相关联的驱动器通知该错误遏制事件。
在各种实施例中,操作系统或虚拟机监视器可从与输入/输出设备相关联的驱动器接收通知:该驱动器能够恢复该输入/输出设备。在各种实施例中,操作系统或虚拟机监视器可基于由中断处理器产生的与多个输入/输出端口相关联的信息,注册与多个输入/输出端口相关联的多个错误遏制事件处理器。在各种实施例中,操作系统或虚拟机监视器可通过平台通信通道,例如使用门铃协议,从中断处理器接收错误遏制事件的通知。在各种实施例中,操作系统或虚拟机监视器可通过例如该平台通信通道,向中断处理器传送用以恢复通向导致了输入/输出错误的输入/输出设备的链路的指示。
尽管出于说明的目的在此示出和描述了一些实施例,本申请意在包括在此讨论的实施例的任意修改或改变。因此,很明显在此描述的实施例仅由权利要求限定。
本公开中叙述“一个”或“第一”元素或其等同者的地方,这样的公开包括一个或多个这样的元素,既不要求也不排除两个或更多个这样的元素。此外,标识元素的顺序指示(例如第一、第二或第三)用于元素之间的区分,并且不表示或暗示所要求的或限定的这些元素的数量,并且除非另外特别声明它们也不表示这些元素的特定位置或次序。

Claims (19)

1.一种用于处理输入/输出错误遏制事件的计算机实现方法,包括:
由计算系统的中断处理器识别发信号通知了输入/输出错误遏制事件的输入/输出端口;
由中断处理器产生与所述输入/输出错误遏制事件相关联的错误遏制记录,该错误遏制记录包括输入/输出端口的标识;
由中断处理器向在计算设备上执行的操作系统或虚拟机监视器提供错误遏制记录,以及
由中断处理器从所述操作系统或虚拟机监视器接收指明所述输入/输出端口可从所述输入/输出错误遏制事件恢复的指示,所述指示基于由与所述输入/输出端口相关联的驱动器响应于由所述操作系统或虚拟机监视器注册的错误遏制事件处理器向所述驱动器通知所述输入/输出错误遏制事件而发出的确定。
2.如权利要求1所述的计算机实现方法,进一步包括,响应于来自操作系统或虚拟机监视器的指示,由中断处理器促进从所述输入/输出端口到导致了输入/输出错误遏制事件的输入/输出设备的链路的恢复。
3.如权利要求1所述的计算机实现方法,进一步包括,由中断处理器使用平台通信通道向操作系统或虚拟机监视器通知输入/输出错误遏制事件。
4.如权利要求1所述的计算机实现方法,进一步包括,由中断处理器清除与所述输入/输出端口相关联的错误日志。
5.如权利要求1所述的计算机实现方法,进一步包括,由中断处理器将与多个输入/输出端口相关联的信息存储在操作系统或虚拟机监视器可存取的存储器中,所述信息可由操作系统或虚拟机监视器用于注册对应于多个输入/输出端口的多个错误遏制事件处理器。
6.一种计算机实现方法,包括:
由计算设备上执行的操作系统或虚拟机监视器从所述计算设备的平台实体接收由输入/输出设备导致的错误遏制事件的通知,以及;
响应于接收到所述错误遏制事件的通知,由所述操作系统或虚拟机监视器清除与所述输入/输出设备相关联的软件堆栈;以及
响应于完成所述软件堆栈的清除,由所述操作系统或虚拟机监视器指示所述平台实体恢复通向输入/输出设备的链路。
7.如权利要求6所述的计算机实现方法,进一步包括,由操作系统或虚拟机监视器向与所述输入/输出设备相关联的驱动器通知错误遏制事件。
8.如权利要求6所述的计算机实现方法,进一步包括,由操作系统或虚拟机监视器基于由平台实体产生的与多个输入/输出端口相关联的信息,注册与多个输入/输出端口相关联的多个错误遏制事件处理器。
9.如权利要求6所述的计算机实现方法,进一步包括,由操作系统或虚拟机监视器通过平台通信通道从平台实体接收错误遏制事件的通知。
10.如权利要求6所述的计算机实现方法,进一步包括,由操作系统或虚拟机监视器向平台实体传送用以恢复通向所述输入/输出设备的链路的指示。
11.一种用于计算的系统,该计算包括对输入/输出错误遏制事件的处理,所述系统包括:
一个或多个处理器;
中断处理器;和
操作系统或虚拟机监视器;
其中中断处理器被配置为,响应于输入/输出错误遏制事件,识别发信号通知了输入/输出错误遏制事件的根端口,产生与所述输入/输出错误遏制事件相关联的错误遏制记录,该错误遏制记录包括根端口的标识,并且向操作系统或虚拟机监视器提供错误遏制记录;以及
其中操作系统或虚拟机监视器被配置为从中断处理器接收错误遏制记录,以清除与所述根端口相关联的软件堆栈,并且促进通向与所述错误遏制事件的根端口相关联的输入/输出设备的链路的恢复。
12.如权利要求11所述的系统,其中中断处理器进一步被配置为,将与多个输入/输出端口相关联的信息存储在操作系统或虚拟机监视器可存取的存储器中,所述信息可由操作系统或虚拟机监视器用于注册对应于多个输入/输出端口的多个错误遏制事件处理器。
13.如权利要求11所述的系统,进一步包括中断处理器和操作系统或虚拟机监视器进行通信所通过的平台通信通道。
14.如权利要求11所述的系统,进一步包括触发所述输入/输出错误遏制事件的实时错误恢复逻辑。
15.如权利要求11所述的系统,进一步包括触摸屏显示器。
16.一种用于计算的装置,该计算包括对输入/输出错误遏制事件的处理,所述装置包括:
用于识别发信号通知了输入/输出错误遏制事件的输入/输出端口的构件;
用于产生与错误遏制事件相关联的错误遏制记录的构件,该错误遏制记录包括输入/输出端口的标识;以及
用于向在计算设备上执行的操作系统或虚拟机监视器提供错误遏制记录的构件,
用于由中断处理器从所述操作系统或虚拟机监视器接收指明所述输入/输出端口可从所述输入/输出错误遏制事件恢复的指示的构件,所述指示基于由与所述输入/输出端口相关联的驱动器响应于由所述操作系统或虚拟机监视器注册的错误遏制事件处理器向所述驱动器通知所述输入/输出错误遏制事件而发出的确定。
17.如权利要求16所述的装置,进一步包括
用于响应于来自操作系统或虚拟机监视器的指示而促进从所述输入/输出端口到导致了输入/输出错误遏制事件的输入/输出设备的链路的恢复的构件;
用于使用平台通信通道向操作系统或虚拟机监视器通知输入/输出错误遏制事件的构件;以及/或者
用于清除与导致了输入/输出错误遏制事件的输入/输出设备相关联的错误日志的构件。
18.如权利要求17所述的装置,进一步包括用于将与多个输入/输出端口相关联的信息存储在操作系统或虚拟机监视器可存取的存储器中的构件,所述信息可由操作系统或虚拟机监视器用于注册对应于多个输入/输出端口的多个错误遏制事件处理器。
19.包括多个指令的至少一个机器可读介质,所述指令响应于在计算设备上被执行而使得计算设备执行根据权利要求1-5中任一项的用于处理输入/输出错误遏制事件的计算机实现方法。
CN201280073141.5A 2012-06-06 2012-06-06 输入/输出错误遏制事件后的恢复 Expired - Fee Related CN104704478B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/041160 WO2014209251A2 (en) 2012-06-06 2012-06-06 Recovery after input/ouput error-containment events

Publications (2)

Publication Number Publication Date
CN104704478A CN104704478A (zh) 2015-06-10
CN104704478B true CN104704478B (zh) 2018-10-19

Family

ID=49716277

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280073141.5A Expired - Fee Related CN104704478B (zh) 2012-06-06 2012-06-06 输入/输出错误遏制事件后的恢复

Country Status (9)

Country Link
US (1) US9411667B2 (zh)
EP (1) EP2859459B1 (zh)
JP (1) JP6032510B2 (zh)
KR (1) KR101679947B1 (zh)
CN (1) CN104704478B (zh)
AU (1) AU2012398458B2 (zh)
BR (1) BR112014027707A2 (zh)
TW (1) TWI526821B (zh)
WO (1) WO2014209251A2 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9519532B2 (en) * 2014-01-20 2016-12-13 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Handling system interrupts with long-running recovery actions
CN104077198B (zh) * 2014-06-19 2017-06-06 华为技术有限公司 门铃db恢复方法及装置、具有该装置的输入/输出i/o设备
AU2014399227B2 (en) * 2014-06-24 2017-07-27 Huawei Technologies Co., Ltd. Fault Processing Method, Related Apparatus and Computer
JP6341795B2 (ja) * 2014-08-05 2018-06-13 ルネサスエレクトロニクス株式会社 マイクロコンピュータ及びマイクロコンピュータシステム
US9916270B2 (en) * 2015-03-27 2018-03-13 Intel Corporation Virtual intelligent platform management interface (IPMI) satellite controller and method
JP2016197360A (ja) * 2015-04-06 2016-11-24 富士通株式会社 情報処理装置、情報処理装置の制御プログラム及び情報処理装置の制御方法
US20160371107A1 (en) * 2015-06-18 2016-12-22 Dell Products, Lp System and Method to Discover Virtual Machines from a Management Controller
EP3314515B1 (en) * 2016-01-25 2020-03-18 Hewlett-Packard Development Company, L.P. Notice of intrusion into firmware
JP2018055337A (ja) * 2016-09-28 2018-04-05 富士通株式会社 情報処理装置およびプログラム
CN111222832A (zh) * 2018-11-23 2020-06-02 株式会社理光 定制工作流的系统、方法,及可定制工作流的mfp
US11074095B2 (en) 2019-01-04 2021-07-27 International Business Machines Corporation Event-based virtual machine that hosts microservices for handling program faults
US11379295B1 (en) * 2019-05-15 2022-07-05 Amazon Technologies, Inc. Recovery protocols for system malfunctions in virtual computing environments
US11249872B1 (en) * 2020-06-26 2022-02-15 Xilinx, Inc. Governor circuit for system-on-chip

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193181A (en) 1990-10-05 1993-03-09 Bull Hn Information Systems Inc. Recovery method and apparatus for a pipelined processing unit of a multiprocessor system
US20020184576A1 (en) * 2001-03-29 2002-12-05 International Business Machines Corporation Method and apparatus for isolating failing hardware in a PCI recoverable error
US6851006B2 (en) * 2001-08-25 2005-02-01 International Business Machines Corporation Interruption handler-operating system dialog for operating system handling of hardware interruptions
US7117396B2 (en) * 2001-12-28 2006-10-03 Intel Corporation Scalable CPU error recorder
US7134052B2 (en) * 2003-05-15 2006-11-07 International Business Machines Corporation Autonomic recovery from hardware errors in an input/output fabric
US7287197B2 (en) 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7328376B2 (en) * 2003-10-31 2008-02-05 Sun Microsystems, Inc. Error reporting to diagnostic engines based on their diagnostic capabilities
JP4218538B2 (ja) * 2004-01-28 2009-02-04 日本電気株式会社 コンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法
US7478265B2 (en) * 2004-10-14 2009-01-13 Hewlett-Packard Development Company, L.P. Error recovery for input/output operations
US8028189B2 (en) * 2004-11-17 2011-09-27 International Business Machines Corporation Recoverable machine check handling
US7546487B2 (en) 2005-09-15 2009-06-09 Intel Corporation OS and firmware coordinated error handling using transparent firmware intercept and firmware services
US7594144B2 (en) * 2006-08-14 2009-09-22 International Business Machines Corporation Handling fatal computer hardware errors
US7620854B2 (en) 2007-01-30 2009-11-17 Hewlett-Packard Development Company, L.P. Method and system for handling input/output (I/O) errors
US7774638B1 (en) * 2007-09-27 2010-08-10 Unisys Corporation Uncorrectable data error containment systems and methods
US8510592B1 (en) * 2009-09-15 2013-08-13 Netapp, Inc. PCI error resilience
US8402189B2 (en) * 2010-05-13 2013-03-19 Hitachi, Ltd. Information processing apparatus and data transfer method
US8782461B2 (en) * 2010-09-24 2014-07-15 Intel Corporation Method and system of live error recovery
TW201216165A (en) 2010-10-13 2012-04-16 Inventec Corp System management interrup mechanism
US9086965B2 (en) * 2011-12-15 2015-07-21 International Business Machines Corporation PCI express error handling and recovery action controls

Also Published As

Publication number Publication date
US20130332781A1 (en) 2013-12-12
JP2015532738A (ja) 2015-11-12
KR20150029613A (ko) 2015-03-18
TWI526821B (zh) 2016-03-21
CN104704478A (zh) 2015-06-10
BR112014027707A2 (pt) 2017-06-27
US9411667B2 (en) 2016-08-09
EP2859459A2 (en) 2015-04-15
AU2012398458B2 (en) 2016-05-19
WO2014209251A3 (en) 2015-02-26
JP6032510B2 (ja) 2016-11-30
WO2014209251A2 (en) 2014-12-31
EP2859459A4 (en) 2016-03-16
AU2012398458A1 (en) 2015-03-05
KR101679947B1 (ko) 2016-12-06
TW201403307A (zh) 2014-01-16
EP2859459B1 (en) 2019-12-25

Similar Documents

Publication Publication Date Title
CN104704478B (zh) 输入/输出错误遏制事件后的恢复
US8966319B2 (en) Obtaining debug information from a flash memory device
US9495233B2 (en) Error framework for a microprocesor and system
US9806959B2 (en) Baseboard management controller (BMC) to host communication through device independent universal serial bus (USB) interface
US11163659B2 (en) Enhanced serial peripheral interface (eSPI) signaling for crash event notification
JP2014522052A (ja) ハードウェア故障の軽減
CN111052074A (zh) 具有自描述依从性信息的固件组件
US9811481B2 (en) Distributed intelligent platform management interface (D-IPMI) system and method thereof
US9995789B2 (en) Secure remote debugging of SoCs
TWI333144B (en) Device, system, method and computer-readable storage medium storing instructions for managing errors on a target storage device
CN104246693A (zh) 用于保护调用栈中的数据的信息处理装置和方法
US10437754B1 (en) Diagnostic fault management controller for distributed computing
US20180054362A1 (en) Dynamic cable-linkage management
US10684896B2 (en) Method for processing asynchronous event by checking device and checking device
US10289467B2 (en) Error coordination message for a blade device having a logical processor in another system firmware domain
US20140047226A1 (en) Managing hardware configuration of a computer node
US11403162B2 (en) System and method for transferring diagnostic data via a framebuffer
US8625123B2 (en) Image forming system, management apparatus, and non-transitory computer readable medium
WO2024051231A1 (zh) 一种处理器及检测处理器错误的方法
WO2024019475A1 (ko) 로봇 제어를 위한 데이터 처리 장치 및 방법
JP5467172B1 (ja) 情報処理システム、および情報処理方法
CN118689728A (zh) 事件上报方法、安全管理电路及管理系统
JP2015161995A (ja) 情報収集装置、情報収集方法、及び、情報収集プログラム
KR101064650B1 (ko) 리눅스 운영체제 기반의 시스템에서 usb 디바이스 드라이버의 커널 하드닝을 수행하는 방법 및 그 장치
JPS59117645A (ja) 計算機システムの試験方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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

Granted publication date: 20181019

Termination date: 20210606

CF01 Termination of patent right due to non-payment of annual fee