首页> 中国专利> 输入/输出错误遏制事件后的恢复

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

摘要

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

著录项

  • 公开/公告号CN104704478A

    专利类型发明专利

  • 公开/公告日2015-06-10

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201280073141.5

  • 申请日2012-06-06

  • 分类号

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人谢攀

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 09:28:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-05-17

    未缴年费专利权终止 IPC(主分类):G06F13/24 专利号:ZL2012800731415 申请日:20120606 授权公告日:20181019

    专利权的终止

  • 2018-10-19

    授权

    授权

  • 2015-07-08

    实质审查的生效 IPC(主分类):G06F13/24 申请日:20120606

    实质审查的生效

  • 2015-06-10

    公开

    公开

说明书

技术领域

本发明的实施例大体上涉及数据处理技术领域,并特别地涉及输入/输出错 误遏制(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/VMM 112。

在各种时间点,例如当计算设备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/VMM 112接收以下指示: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/VMM 112可指示平台实体例如中断处理器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)、非易失性存储器(例 如ROM 510)、闪存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。

在此描述了装置、计算机实现方法、系统、设备和计算机可读介质的实施例, 它们用于使例如计算设备的平台实体例如中断处理器能够向在该计算设备上执 行的操作系统或虚拟机监视器通知输入/输出错误遏制事件,并且响应于来自操 作系统或虚拟机监视器的指示,促进通向导致了该输入/输出错误遏制事件的输 入/输出设备的链路的恢复。在各种实施例中,中断处理器可进一步使用平台通 信通道,例如使用门铃协议,向操作系统或虚拟机监视器通知输入/输出错误遏 制事件。

在各种实施例中,中断处理器可识别与导致了输入/输出错误遏制事件的输 入/输出设备相关联的端口,并且向操作系统或虚拟机监视器通知所识别的端口。 在各种实施例中,中断处理器可产生与错误遏制事件相关联的错误遏制记录。 在各种实施例中,中断处理器可清除与导致了输入/输出错误遏制事件的输入/ 输出设备相关联的错误日志。

在各种实施例中,中断处理器可将与多个输入/输出端口相关联的信息存储 在操作系统或虚拟机监视器可存取的存储器中,该信息可由操作系统或虚拟机 监视器用于注册对应于多个输入/输出端口的多个错误遏制事件处理器。

在此还描述了装置、计算机实现方法、系统、设备和计算机可读介质的实施 例,它们用于使计算设备的操作系统或虚拟机监视器能够从计算设备的中断处 理器接收错误遏制事件的通知,并且响应于通知,促进通向导致了该错误遏制 事件的输入/输出设备的链路的恢复。在各种实施例中,操作系统或虚拟机监视 器可向与导致了错误遏制事件的输入/输出设备相关联的驱动器通知该错误遏制 事件。

在各种实施例中,操作系统或虚拟机监视器可从与输入/输出设备相关联的 驱动器接收通知:该驱动器能够恢复该输入/输出设备。在各种实施例中,操作 系统或虚拟机监视器可基于由中断处理器产生的与多个输入/输出端口相关联的 信息,注册与多个输入/输出端口相关联的多个错误遏制事件处理器。在各种实 施例中,操作系统或虚拟机监视器可通过平台通信通道,例如使用门铃协议, 从中断处理器接收错误遏制事件的通知。在各种实施例中,操作系统或虚拟机 监视器可通过例如该平台通信通道,向中断处理器传送用以恢复通向导致了输 入/输出错误的输入/输出设备的链路的指示。

尽管出于说明的目的在此示出和描述了一些实施例,本申请意在包括在此讨 论的实施例的任意修改或改变。因此,很明显在此描述的实施例仅由权利要求 限定。

本公开中叙述“一个”或“第一”元素或其等同者的地方,这样的公开包括 一个或多个这样的元素,既不要求也不排除两个或更多个这样的元素。此外, 标识元素的顺序指示(例如第一、第二或第三)用于元素之间的区分,并且不 表示或暗示所要求的或限定的这些元素的数量,并且除非另外特别声明它们也 不表示这些元素的特定位置或次序。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号