CN101390058A - 利用用户上下文信息检测故障状况并随后恢复的方法和设备 - Google Patents

利用用户上下文信息检测故障状况并随后恢复的方法和设备 Download PDF

Info

Publication number
CN101390058A
CN101390058A CNA2006800534002A CN200680053400A CN101390058A CN 101390058 A CN101390058 A CN 101390058A CN A2006800534002 A CNA2006800534002 A CN A2006800534002A CN 200680053400 A CN200680053400 A CN 200680053400A CN 101390058 A CN101390058 A CN 101390058A
Authority
CN
China
Prior art keywords
processing unit
fault
information
memory location
user context
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.)
Pending
Application number
CNA2006800534002A
Other languages
English (en)
Inventor
A·S·德阿尔梅达
M·艾哈迈迪
I·W·Y·扬
H·严
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.)
Qualcomm Inc
Original Assignee
ATI Technologies ULC
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 ATI Technologies ULC filed Critical ATI Technologies ULC
Priority to CN201310741223.9A priority Critical patent/CN103761160B/zh
Publication of CN101390058A publication Critical patent/CN101390058A/zh
Pending legal-status Critical Current

Links

Images

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering

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)
  • Retry When Errors Occur (AREA)

Abstract

一种系统的协处理单元检测与协处理单元相关联的故障状况,并在检测到时利用所存储的用户上下文信息恢复处理单元。在正常工作期间,由协处理单元在存储器中存储用于执行操作命令的用户上下文信息并在故障检测之后进行维护。当由于放电静电事件导致处理单元的至少一部分无法工作时检测为故障状况。可以通过由协处理单元接收到表示故障状况的信息,或通过检查与处理单元相关联的至少一个存储器位置来确定其中存储的信息是否表示故障状况来检测故障状况。协处理单元利用所存储的用户上下文信息将故障前检测状态信息恢复到与处理单元相关联的存储位置,使处理单元返回到已知的可工作状态。

Description

利用用户上下文信息检测故障状况并随后恢复的方法和设备
技术领域
本发明总体上涉及检测故障状况,更具体而言涉及利用协处理单元检测处理单元中的故障状况,以及响应于其进一步利用该协处理单元使用存储的故障前用户上下文信息来恢复处理单元。
背景技术
计算系统通常由集成电路(IC)和各种其他电子组件等构成,所述电子组件例如是但不限于状态机、专用集成电路(ASIC)、逻辑门和离散逻辑器件。像大部分电子器件那样,这些组件对静电放电以及其他由于静电和/或电磁事件而传导电荷(即放电)的事件(统称为放电事件)很敏感。如果足够强烈,这种放电事件会使组件进入不正确、不良或错误状态,由此使元件至少暂时无法工作。换言之发生了故障。尽管一些系统设计师已经提供了针对放电事件保护或隔离系统组件的器件,厂家不使用充分的屏蔽或采用低效的保护机制来确保防范这种事件也并非少见。在一些情况下,制造设计决策可能由装置的功能、装置的尺寸或物理特性或简单的经济情况来支配。在任何情况下,计算系统会受到且将继续受到各种放电事件的影响,这种放电事件将导致故障(即无法工作的状况)。
移动装置对放电事件尤其敏感,并且由于它们的使用性质,可能会发生故障。例如,移动装置根据定义是小巧且便携的。用户能够手持装置移动很大距离且跨越各种环境。因此,用户的移动可能会对用户身体或衣服上的电荷产生加强作用。在接触或接近移动装置时,用户可能会充当导线,将电荷转移到移动装置并可以使其无法工作。然而还发现,非移动计算机系统,例如台式计算机、机顶盒或其他计算系统也可能对放电事件敏感,且在类似的操作者将电荷传导到这种系统的情况下可能会发生故障。
如本领域的普通技术人员所公知的,诸如移动电话或其他手持装置的计算系统可以包括两个处理单元,中央处理单元(CPU)和图形处理单元(GPU)。CPU经由北桥、南桥、任何适当的一根或多根总线或任何其组合耦合到GPU,以传递绘图命令和其他操作命令或指令,随后加以执行。GPU可以与多个寄存器、帧缓冲器和图形处理器相关联。类似地,CPU可以与多个个体组件相关联,且耦合到用于存储可执行指令和工作数据等的系统存储器。在一个实施例中,可以在系统存储器中存储各种驱动程序和其他软件模块以在CPU中执行。
大部分移动装置的CPU通常是被屏蔽的以防其及其相关电子组件受到放电事件影响。然而,由于和制造和设计相关的设计决策多种多样,移动装置的GPU得不到充分保护是常见情况。因此,已经发现在发生放电事件时,GPU及其相关电子组件中的至少一个或多个处于不良或不工作状态。例如,发现GPU寄存器尤其易发生故障,且需要重启来继续工作。
尽管现有技术中有解决方案来检测与GPU相关的故障状况(即指示发生故障的任何状况)并将GPU恢复到可工作状态,但没有使处理单元恢复到已知的无缝或接近无缝操作的可工作状态的已知方案。例如,已知利用CPU执行的驱动程序监测GPU的某些寄存器来检测放电事件和随后的故障状况。已知的现有技术通常通过重新启动故障影响的GPU和GPU驱动程序来工作。然而,重新启动GPU会丢失在GPU驱动程序正常工作期间获得的用户上下文信息。于是,CPU的操作系统以及发出由CPU和GPU之一执行的命令的其他客户端/应用需要在执行之前产生新的用户上下文信息。通常,这需要用户启动此前在检测到故障状况之前运行的软件模块/驱动程序的另一实例。本领域的普通技术人员和计算装置的一般用户都理解这会导致数据丢失,且用户对它们的计算装置不满意。
因此,需要一种在计算系统中使用的故障检测和恢复方法和设备,其中,协处理单元上运行的驱动程序、客户端和其他应用不受与处理单元相关的故障状况影响。另一种需求是恢复计算系统,使其受影响部分返回到已知的可用状态。因此,操作系统或使用该处理单元的客户端/应用都不会受到放电事件的影响。相反,它们仍然继续工作,只给用户对计算系统的体验带来最小的影响。如上所述,这种方法和设备在检测出故障状况之后提供了一种接近无缝的恢复方法。
发明内容
根据本发明的第一方面,提供了一种方法,包括:
在检测到与处理单元相关联的故障状况时,利用所存储的用户上下文信息恢复所述处理单元。
根据本发明的第二方面,提供了一种包括通过至少一个如下操作检测与处理单元相关联的故障状况的方法:
由协处理单元检测与所述协处理单元相关联的输入已接收到标识故障状况的信息;
由所述协处理单元基于监测与正常运行中的处理单元相关联的至少一个存储器位置(memory location)来检测初始故障状况,并由所述协处理单元基于确定与所述处理单元相关联的至少另一个存储器位置包含指示故障状况的信息来验证所述初始故障状况为故障状况;
由所述协处理单元确定与所述处理单元相关联的至少一个处理单元标识存储器位置包含不正确的处理单元标识信息;以及
由所述协处理单元确定与所述处理单元相关联的至少一个像素时钟存储器位置包含不正确的像素时钟信息;以及
在检测到故障状况之后,至少通过利用初始化例程将处理单元的至少一个存储器位置重新初始化到工作状态来利用所存储的用户上下文信息恢复所述处理单元。
根据本发明的第三方面,提供了一种设备,包括:
用于在检测到与所述处理单元相关联的故障状况时利用所存储的用户上下文信息恢复所述处理单元的逻辑。
根据本发明的第四方面,提供了一种设备,包括:
处理单元;以及
可运行地耦合到所述处理单元和包含所存储的指令的存储器的协处理单元,使得当所述协处理单元执行所述指令时,使所述协处理单元:
在检测到与处理单元相关联的故障状况时,利用所存储的用户上下文信息恢复所述处理单元。
根据本发明的第五方面,提供了一种包括所存储的指令的存储器,在执行所述指令时使协处理单元:
在检测到与处理单元相关联的故障状况时,利用所存储的用户上下文信息恢复所述处理单元。
附图说明
在结合附图考虑以下描述时,本发明将更容易得到理解,在附图中,类似的附图标记表示类似元件:
图1为方框图,示出了根据本公开的一个实施例的检测与处理单元相关联的故障状况并恢复处理单元的系统的一个范例;
图2为流程图,示出了根据本公开一个实施例的用于检测故障状况和恢复处理单元的方法的一个范例;
图3为流程图,示出了根据图2的方法检测与处理单元相关的故障状况的一个范例;
图4为流程图的第一部分,示出了在图2的方法中使用的检测与处理单元相关的故障状况的方法的另一个范例;
图5为图4的方法的后部分;
图6为流程图,示出了根据图2的方法的利用所存储的用户上下文信息恢复处理单元的一个范例;以及
图7为方框图,示出了根据本公开的第二实施例的检测与处理单元相关联的故障状况并随后恢复处理单元的系统的第二范例。
具体实施方式
总地讲来,本公开提供了一种包括处于计算环境中处理单元和协处理单元的系统,其中处理单元用于检测与协处理单元相关联的故障状况,且在检测之后利用所存储的用户上下文信息恢复处理单元。在正常工作期间,由协处理单元存储用户上下文信息,其中用户上下文信息例如包括关于处理单元及其相关组件和器件是处于“开启”或“关断”状况的状态信息,用于支持处理单元及其相关组件和器件的使用率和功能性的其他配置信息。此外,用户上下文信息可以包括表示在执行特定操作命令时要使用的资源的信息、资源的位置信息、以及与处理单元存储器位置相关的其他信息。当处理单元的至少一部分由于诸如静电放电的放电事件而变得不工作时,检测到与处理单元相关的故障状况。协处理单元可以通过在检查与处理单元相关联的至少一个存储器位置之后识别出表示故障状况的信息来检测故障状况。
在检测时,协处理单元利用所存储的用户上下文信息恢复处理单元,由此使协处理单元及其相关组件返回到已知的可工作状态而无需重启与处理单元相关联的任何相关驱动程序,或无需重启运行于处理单元上且与协处理单元交互的任何其他客户端。可以用用户上下文信息来将处理单元、与处理单元相关联的显示器以及与处理单元相关联的一个或多个电路之一的当前(即故障后检测的)状态信息与同一装置或电路在故障前检测状态信息进行匹配。将故障后的状态信息与故障前的状态信息进行匹配可以包括在发出要使用至少一个存储器位置的操作命令时向至少一个存储器位置或寄存器写入所存储用户上下文信息的必要部分。
在一个实施例中,协处理单元包括用于实施当前披露的方法的驱动逻辑等。在另一个实施例中,该协处理单元能够执行驻留在存储器中的软件模块,其中该模块含有被存储的指令,该指令在被执行时实施等价的方法。
在各种优点之中,本公开提供了一种用于检测与处理单元相关联的故障状况并利用用户上下文信息恢复处理单元的方法和设备。通过存储用户上下文信息,与处理单元相关联的或与处理单元交互的驱动程序以及其他客户端和应用无需被重启或重新初始化。因此,该恢复方法与已知的现有技术方案相比,在其效率、速度和功能性方面提供了一种接近无缝的过程。
图1为方框图,示出了根据本公开一个实施例的系统100的一个范例,其至少包括处理单元102、协处理单元104和存储器106。发明人构思的是,系统100可以与一个或多个大型计算机系统(未示出)相关联。系统100还可以包括至少一个直接或间接耦合到处理单元的显示装置108,使得显示装置108能够从处理单元102接收控制信息和显示信息以随后进行显示。系统100还可以包括至少一个视频输入装置110,例如摄像机或其他视频信息源。该视频输入装置110利用任何适当的装置直接或间接耦合到处理单元102和协处理单元104,由此可以在处理单元102和协处理单元104之间传输控制和其他视频信息。利用北桥、南桥、至少一个总线或任何适当组合将处理单元102直接或间接地耦合到协处理单元104,以实现其间的充分通信。类似地,通过至少一个总线或任何其他适当的数据传输结构将协处理单元104直接或间接地耦合到存储器106,以实现充分通信。
在一个实施例中,处理单元102可以是系统100的图形处理单元(GPU)或任何其他适当的处理单元,其中利用一个或多个集成电路(IC)、离散逻辑器件、状态机、专用集成电路(ASIC)或任何其他适当结构来制造或构成处理单元102。发明人进一步构思,可以在系统100中使用的一个或多个物理卡上设置包括处理单元102的组件。处理单元102包括耦合到帧缓冲器114的处理器112以及也耦合到该处理器112的至少一个处理单元存储器位置116。发明人构思,处理器112可以包括至少一个处理装置,例如但不限于在图形处理单元或任何其他处理单元中常见的任何适当的分布式或非分布式处理或微处理装置。在一个实施例中,处理器112为能够执行在显示装置108上进行显示的绘图命令的图形处理器或渲染引擎。本发明还类似地构思,帧缓冲器114以及与处理单元116相关联的至少一个存储器位置可以是任何适当的存储器件,例如但不限于易失性和非易失性存储器、随机存取存储器(例如包括RAM、DRAM、SRAM)、基于ROM的存储器(例如包括ROM、PROM、EPROM、EEPROM)和闪速存储器。在一个实施例中,与处理单元116相关联的至少一个存储器位置包括多个用于处理器112的专用通用寄存器。
协处理单元104可以是系统100的中央处理单元(CPU)或任何其他适当的处理单元。协处理单元104至少包括操作系统(OS)逻辑118和驱动程序逻辑120,其中驱动程序逻辑120对应于与处理单元102相关联的装置驱动程序。例如,驱动程序逻辑120可以对应于GPU驱动程序。协处理单元104的个体组件,例如OS逻辑118和驱动程序逻辑120可以包括用于向外传播与驱动程序对应的操作系统和装置/处理单元(例如处理单元102)相关的各种逻辑功能的任何适当结构。例如,可以利用例如一个或多个集成电路(IC)、离散逻辑器件、状态机、专用集成电路(ASIC)或任何其他适当的装置来实现OS逻辑118和驱动程序逻辑120。发明人构思,可以在系统100中使用的一个或多个物理卡上设置包括协处理单元104的组件。
在一个实施例中,驱动程序逻辑120可以包括能够存储与处理单元102相关联的用户上下文信息的处理单元用户上下文信息存储逻辑122、能够检测与处理单元102相关联的故障状况的处理单元和故障检测逻辑124,以及能够利用所存储的用户上下文信息恢复处理单元102的利用用户上下文信息恢复处理单元的逻辑126。OS逻辑118和驱动程序逻辑120彼此耦合,而通过任何适当装置将个体逻辑组件122-126类似地彼此耦合,以提供其间的通信以及上述系统组件102、104、106、108、110之间的通信。为了进行例示,将逻辑组件122-126描述成驱动程序逻辑126之内的三个适当彼此耦合的独立逻辑组件,以实现必要的数据和信息流动。然而,发明人构思,可以组合逻辑组件122-126以形成单个逻辑组件或任何数量的逻辑组件而不脱离本公开的精神或范围。
存储器106可以是分布式或非分布式存储器或任何其他适当形式的存储器,包括但不限于易失性和非易失性存储器、随机存取存储器(例如包括RAM、DRAM、SRAM)、基于ROM的存储器(例如包括ROM、PROM、EPROM、EEPROM)和闪速存储器。发明人还进一步构思,存储器106可以对应于任何能够至少与协处理单元104交互的适当外部存储器装置。存储器106能够存储如用户上下文信息存储器128所示的用户上下文信息,以及实现系统100的功能所需的其他类型的信息。在一个实施例中,存储器106对应于系统存储器。
如本领域的普通技术人员所知,协处理单元104用于向处理单元102发送绘图命令和其他操作命令等。各种操作命令可以源自诸如协处理单元104的操作系统或协处理单元104上运行的任何数量的客户端或应用的源。操作命令可以包括处理单元102用于执行命令中所请求的操作的用户上下文信息等信息。用于每个操作命令的用户上下文信息通常是至少由驱动程序逻辑126创建的且可以包含(例如)表示在执行操作命令时要使用的资源(例如存储器中存储的纹理)的信息、该资源位于何处(例如地址或指向该地址的指针)和其他与处理单元存储器位置116相关的信息(例如在执行特定操作命令时使用的存储器位置数据)。如通常所理解的,用户上下文信息可以对应于与协处理单元104上运行的特定客户端或应用相关联的特定用户上下文。通常,在正常运行期间由驱动程序逻辑126恢复用户上下文信息并保持在存储器106中,以在稍后的与操作命令的同一来源相关联的操作命令中使用。在一个实施例中,除了与存储器106中用户上下文信息的存储、维护和检索相关的其他功能之外,处理单元用户上下文信息存储逻辑122执行该功能。
如上所述,诸如系统100之类的许多系统包括针对放电事件的对于协处理单元104的充分屏蔽和保护,而对处理单元102则忽略或提供低级别的保护。因此,在放电事件中,系统100的至少一部分(例如协处理单元104)安全地吸收该冲击并继续无误差的工作。然而,在很多放电事件中,处理单元102和一个或多个处理单元存储器位置116进入不正确、不良或错误状态,使得处理单元102的至少一部分无法工作。
图2为流程图,示出了用于检测故障并随后恢复处理单元的方法的一个范例。该方法开始于方框206,其中,在检测到故障状况时,利用所存储用户上下文信息恢复处理单元。在一个范例中,这可以对应于利用图1的使用用户上下文信息的恢复处理单元的逻辑126来将处理单元102恢复到已知的可工作状态。本质上,方框206的方法包含如虚线方框202和204所示的两个其他方法。在方框202中,在处理单元正常运行期间存储用户上下文信息。在一个范例中,可以利用与图1所示的协处理单元104的驱动程序逻辑120相关的处理单元用户上下文信息存储逻辑122实现方框202中枚举的方法的特定部分。在处理单元102正常运行期间,处理单元用户上下文信息存储逻辑122存储用于由处理单元102执行命令操作的用户上下文信息。返回到图2的方法,在方框204中,检测出与处理单元相关联的故障状况。出于示例的目的,可以由图1的处理单元故障检测逻辑124执行故障状况检测。最后,如方框208中所示,图2的方法可以包括在检测到故障状况时经由初始化序列对显示器进行重新初始化。根据图1的系统100,在一个范例中,可以通过从处理单元102向显示装置108发送适当的用于重新初始化的适当的控制信息来实现这点。在完成时,该方法结束。
图3为流程图,示出了如图2的方框204所示检测与处理单元相关联的故障状况的一个范例。如图所示,该方法可以包括如方法方框302-308所示的至少四个不同例程中的一个或多个。在一种情况下,如方框302所示,通过利用协处理单元检测与协处理单元相关联的输入已接收到标识故障状况的信息来检测故障状况。在一个范例中,这可以对应于利用图1的协处理单元104,更具体而言利用与协处理单元的处理器(未示出)相关联的通用输入/输出(GPIO)管脚或端口来检测标识故障状况的信息。在一个实施例中,GPIO管脚可以耦合到诸如图1的显示装置108的显示器,从而被设计成尤其容易受放电事件影响且随后出现故障。例如,在发生放电事件时,图1所示的系统100可能会从用户或任何其他物体接收到转移的电荷,由此经由显示装置108在GPIO管脚处接收到转移的带电粒子。在一个实施例中,GPIO管脚可以看到切换的状态,或者表示故障状况的任何其他信号或信息。
图3的方法还可以包括由协处理单元基于监测与正常运行的处理单元相关联的至少一个存储器位置来检测初始故障状况,并基于确定与处理单元相关联的另一个存储器位置包含指示故障状况的信息来验证该初始故障状况为故障状况,如方框304所示。出于示例的目的,该可选项可以对应于利用协处理单元104,更具体而言利用处理单元故障检测逻辑124来监测与处理单元116相关联的至少一个存储器位置的至少一个特定的操作命令存储器位置。在一个范例中,这可以对应于监测与处理单元102相关联的已知寄存器。在处理单元102执行操作命令时,与处理单元116相关联的至少一个存储器位置的至少一个特定的操作命令存储器位置通常会接收和存储反映操作完成的新信息等。在正确的存储器位置未接收到指示完成的信息、未保存在其中或写入其中时,处理单元故障检测逻辑124检测初始故障状况。此时,处理单元故障检测逻辑124将通过检查与处理单元116相关联的至少另一个存储器位置(例如,已知尤其易受放电事件影响且发生故障的至少一个预定存储器位置)来验证该初始故障状况为故障状况。这可能对应于检查与“不成功”操作命令不相关的一个或多个存储器位置(即不用于执行操作命令的存储器位置)。如果处理单元故障检测逻辑126检查的与处理单元116相关联的至少另一个存储器位置中所含的信息不正确或不可读、或者无效,处理单元故障检测逻辑124断定该初始故障状况为故障状况。
或者,方框204的方法可以包括由协处理单元判断与处理单元相关联的至少一个处理单元标识存储器位置包含不正确的处理单元标识信息,如方框306所示。在一个范例中,这可以包括利用处理单元故障检测逻辑124来检查被标识为处理单元标识存储器位置的至少一个处理单元存储器位置116,其中所保持的处理单元标识信息用于和协处理单元104等通信。在至少一个处理单元标识存储器位置中所含的信息不正确、不可读或无效的情况下,检测出故障状况。最后,图3的方法可以包括由协处理单元确定与处理单元相关联的至少一个像素时钟存储器位置包含不正确的像素时钟信息,如方框308所示。类似于方框306的方法(其中该方法包括由协处理单元确定至少一个处理单元标识存储器位置116包含不正确的信息),处理单元故障检测逻辑124可以类似地标识和检查与图1的处理单元存储器位置116相关联的至少一个像素时钟存储器位置,以确定其中存储的像素时钟信息是否正确。如果该信息不正确,则检测出故障状况。
图4为流程图,示出了根据图2的方法检测与处理单元相关联的故障状况的另一个范例。通常,图4的方法类似于图3的方法。然而,图4所示的方法示出了根据图2的方框204检测故障状况的更为动态的方法。例如,图4的方法可以被实现为一个或多个例程,其中将上述逻辑组件用于实现该一个或多个例程。该方法开始于判断方框402,其中,由协处理单元判断与协处理单元相关联的输入是否已收到标识故障状况的信息。如果已经收到这种信息,该方法前进到根据图2的方框206,在此利用所存储用户上下文信息恢复处理单元。在一个实施例中,方框402可以由处理单元故障检测逻辑124加以实施并可以对应于特定的超时期间。例如,处理单元故障检测逻辑124可以在任何适当的超时期间(例如800ms)中“探听”与协处理单元相关联的处理器(未示出)的GPIO管脚上的状态改变或其他所接收的信息,其中状态改变或其他所接收的信息指示故障状况。如果协处理单元已经收到了故障标识信息,则验证有故障状况。
或者,如果未接收到这种信息,该方法在判定方框404中继续进行,在此由协处理单元基于监测与正常运行的处理单元相关联的至少一个存储器位置来确定是否检测出初始故障状况。判断方框404类似于方法方框304的第一部分,且可以如上所述利用处理单元故障检测逻辑124来执行。在一个实施例中,处理单元故障检测逻辑124使用类似的超时期间(例如800ms),使得如果在该超时期间之内操作命令未使与处理单元116相关联的至少一个存储器位置(例如寄存器)存储表示完成操作命令的信息(例如位),就可以确定存在初始故障状况。然而,如果存储了表示完成了操作命令的信息,则可以确定不存在初始故障状况。该确定的依据是导致“未完成”操作命令的一个原因可能是放电事件。该确定是“初始的”,仅仅因为做出该确定本身并不表示上面定义的故障状况。
如果未检测出初始故障状况,根据引用的首字母A,该方法前进到图5的判断方框502。然而,如果判定检测到初始故障状况,那么该方法在判断方框406中继续进行,在此通过涉及到协处理单元的验证过程来确定该初始故障状况是否是故障状况。判断方框406基本类似于图3的方法方框304的第二部分,且类似地,基本由处理单元故障检测逻辑124来执行。如果证实该初始故障状况为故障状况,该方法继续到图2的方框206,以恢复处理单元。或者,如果初始故障状况不是故障状况,根据首字母A,该方法前进到图5的判断方框502。
在一个实施例中,可以在独立于图4和5的方框的剩余部分的连续运行的例程中实现方框404和406,该处理单元检测逻辑124可以设置失败标记,以指示该初始故障状况为故障状况。例如,该失败标记可以对应于存储器106中的变量或任何其他适当存储器位置(未示出)中的至少一位。于是,方框404和406可以包括检查适当的存储器位置,看是否存在失败标记。
如上所述,图5为图4方法的第二部分并开始于判断方框502,在此协处理单元判断与处理单元相关联的至少一个像素时钟是否含有不正确的像素时钟信息。如果该至少一个像素时钟寄存器包含不正确的像素时钟信息,该方法前进到图2的方框206。或者,该方法返回到判断方框402,以重新初始化与图2的方框204相关的例程。可以按照上文针对方法方框306和308所述的方式实现判断方框502和504。通过这种方式,本领域的普通技术人员将认识到,图1的处理单元故障检测逻辑124可以利用协处理单元104上连续执行的一个或多个例程来确定是否检测到与处理单元104相关联的故障状况。
发明人构思,可以使用任何适当的机制来触发方框206的恢复方法。例如,如果图4和5中的任何判断方框检测到或确定有故障状况,可以由处理单元故障检测逻辑124在存储器106的适当位置设置类似于失败标记的故障标记,由此向利用用户上下文信息恢复处理单元的逻辑126指示必须要进行恢复。或者,故障标记可以是任何其他适当的存储器位置(未示出)中的至少一个位,以表示相同内容。
图6为流程图,示出了根据图2在检测出故障状况时恢复处理单元102的方法的一个范例。该方法开始于方框602,在此在检测出故障状况时,禁止向处理单元发出至少一个操作命令。出于说明的目的,这可以对应于利用图1所示的利用用户上下文信息恢复处理单元的逻辑126来防止由任何客户端、应用或其他装置向处理单元102发出至少一个命令。在将驱动程序逻辑120用于执行存储器中存储的指令的情况下(参见图7,其中驱动程序为软件模块),可以通过获得所有相互排除的对象(互斥体)来实施该方法,互斥体允许客户端、应用和其他装置访问、读取或写入处理单元102。本领域的普通技术人员将理解,操作系统可以使用一个或多个互斥对象来提供对共享资源的访问权限。例如,如果为一个过程、线程或应用分配了互斥对象来访问与处理单元102相关联的共享资源,则其他过程、线程或应用不能访问该特定的共享资源。
该方法在方框604中继续,在此根据初始化例程将与处理单元相关联的至少一个存储器位置重新初始化到工作状态。在一个实施例中,方框604所示的重新初始化方法可以包括向与处理单元相关联的至少一个存储器位置写入故障信息,然后向处理单元的至少一个存储器位置写入初始化信息。出于例示的目的,这可以对应于使用利用用户上下文信息恢复处理单元的逻辑来切换与处理器112的已知复位管脚或端口相关联的状态,并使用现有技术中公知的任意数量的初始化例程来向与处理单元116相关联的至少一个存储器位置写入缺省值,由此复位处理单元102的处理器112。在这一点上,本领域的普通技术人员可以发现该至少一个存储器位置尚未处于可工作状态。于是,可以使用利用用户上下文信息恢复处理单元的逻辑126来根据初始化例程向与处理单元116相关联的至少一个存储器位置填充或写入初始化信息,由此使与处理单元116相关联的至少一个存储器位置进入可工作状态。可以发现,方法方框604的实施可以对应于在系统100启动期间使用的已建立的例程。
该方法在方框606继续,在此,使用所存储用户上下文信息来确定与至少一个处理单元相关联的故障前检测状态信息、与处理单元相关联的一个或多个显示装置、以及与处理单元相关联的一个或多个电路。应该理解,可以利用任何形式的技术来构造电路,因此,电路例如可以包括IC、ASIC、状态机、离散逻辑组件或任何其他电子组件。本领域的普通技术人员将理解,状态信息可以包括处理单元、一个或多个显示装置、或一个或多个电路是处于“开启”还是“关断”状况,以及用于支持处理单元、一个或多个显示装置或一个或多个电路的使用和功能性的任何其他配置信息。例如,与处理单元102相关联的一个或多个电路可以包括任何数字信号处理器(DSP),例如但不限于视频编码器/解码器和音频编码器/解码器。然而,发明人构思,可以根据图6的方框606和608配置与处理单元102相关联的任何其他电路。
在一个实施例中,可以使用利用用户上下文信息恢复处理单元的逻辑126和存储器106执行方框606中描述的方法。更具体而言,可以使用利用用户上下文信息恢复处理单元的逻辑126通过图1的用户上下文信息存储器128中的(即存储在存储器106中)所存储的用户上下文信息来循环,以确定至少一个处理单元102、与处理单元108相关联的一个或多个显示装置、以及与处理单元102相关联的一个或多个电路的故障前检测状态信息。例如,在确定一个或多个与处理单元102相关联的显示装置是否处于“开启”状况时,利用用户上下文信息恢复处理单元的逻辑126可以检查存储器128中所存储的用户上下文信息,以判断是否有任何应用或客户端产生的表示一个或多个显示装置应当处于“开启”状况的用户上下文信息(故障探测之前)。
在确定故障前检测状态信息时,该方法在方框608中结束,在此,改变处理单元、一个或多个显示器、和一个或多个电路中的至少一个的故障后检测状态信息以基于所存储的用户上下文信息匹配所确定的故障前检测状态信息。在一个实施例中,改变故障后检测状态信息,以通过向与负责支持处理单元、一个或多个显示器、和一个或多个电路中的至少一个的功能性的处理单元相关联的至少一个存储器位置写入状态信息来匹配所确定的故障前检测状态信息。在该范例中,利用用户上下文信息恢复处理单元的逻辑126可以用于向与处理单元116相关联的至少一个对应存储器位置写入状态信息。在另一个实施例中,利用用户上下文信息恢复处理单元的逻辑126可以仅在发出需要使用至少一个存储器位置的操作命令时向对应的存储器位置写入状态信息。换言之,在该范例中,直到处理单元102上执行的应用或客户端产生需要与至少一个存储器位置相关联的功能性的命令操作之前,不改变故障后检测状态信息。
图7为用于检测与处理器相关联的故障状况并在检测出故障状况时对其进行恢复的系统700的可选范例。像系统100那样,系统700包括处理器102,且可以包括上面与图1所述相同方式耦合在其间的显示装置108和视频输入装置110。类似地,系统700包括耦合到存储器(例如系统存储器)704和处理器102的协处理单元702,相对于协处理单元104和存储器106处于图1所示方式的显示装置108和视频输入装置110。存储器704包括OS模块706、驱动模块708和用户上下文信息存储器128等。此外,驱动程序模块708包括处理单元用户上下文信息模块710、处理单元故障检测模块712和利用用户上下文信息恢复处理单元的模块714。总地来说,上面列出的模块706-714包括所存储的指令,从而在协处理单元702执行指令时,使协处理单元702执行与如上所述的图1的对应逻辑组件118-126相同的功能和操作。因此构思可以将用于检测处理单元中故障并利用所存储的用户上下文信息对其修复的系统实现为硬件和软件电子组件的任意组合。
因此,以上参考图1-7描述的方法和设备集成了在检测出故障状况时利用所存储的用户上下文信息对协处理单元进行恢复。因为用户上下文信息中包含的信息表示在故障检测之前处理单元及其相关电路的状态,因此可以恢复处理单元的功率状态。通过改变处理单元、一个或多个显示装置、以及一个或多个电路中的至少一个的故障后检测状态信息以基于用户上下文信息匹配所确定的故障前检测状态信息,迅速将处理单元102恢复到其故障前的状况。换言之,处理单元102被恢复到已知的可工作状况或系统(例如系统100)的用户受故障状况影响最小的状况。通过存储用户上下文信息并在故障检测之后维护它,可以将其用于恢复不工作的处理单元102,而无需重启或重新初始化该处理单元上运行的客户端、应用和驱动程序。因而实现了接近无缝的恢复过程。
已经仅仅出于例示和描述的目的而非限制的目的给出了本发明的以上详细描述和其中描述的范例。因此本发明意图覆盖落在以上披露和本文主张的基本原理精神和范围之内的任何和所有的修改、变化和等价要件。

Claims (17)

1、一种方法,其包括:
在检测到与处理单元相关联的故障状况时,使用所存储的用户上下文信息恢复所述处理单元。
2、根据权利要求1所述的方法,还包括在所述处理单元的正常运行期间存储所述用户上下文信息。
3、根据权利要求1或2所述的方法,其中检测所述故障状况包括下列各项中的至少一项:
由协处理单元检测与所述协处理单元相关联的输入已接收到标识所述故障状况的信息;以及
由所述协处理单元检测与所述处理单元相关联的至少一个存储器位置包含指示故障状况的信息。
4、根据权利要求3所述的方法,其中检测至少一个存储器位置包含指示故障状况的信息包括下列各项中的至少一项:
由所述协处理单元基于监测与正常运行中的所述处理单元相关联的至少另一个存储器位置来检测初始故障状况,并由所述协处理单元基于确定与所述处理单元相关联的所述至少一个存储器位置包含指示所述故障状况的信息来验证所述初始故障状况为所述故障状况;
由所述协处理单元确定与所述处理单元相关联的至少一个处理单元标识存储器位置包含不正确的处理单元标识信息;以及
由所述协处理单元确定与所述处理单元相关联的至少一个像素时钟存储器位置包含不正确的像素时钟信息。
5、根据前述任一权利要求所述的方法,其中恢复所述处理单元包括:
使用初始化例程将与所述处理单元相关联的至少一个存储器位置重新初始化到工作状态。
6、根据权利要求5所述的方法,其中恢复所述处理单元包括防止向所述处理单元发出至少一个操作命令。
7、根据权利要求5或6所述的方法,其中使用初始化例程将与所述处理单元相关联的至少一个存储器位置重新初始化到工作状态包括:
向与所述处理单元相关联的所述至少一个存储器位置写入缺省信息;以及
向与所述处理单元相关联的所述至少一个存储器位置写入初始化信息。
8、根据前述任一权利要求所述的方法,其中恢复所述处理单元包括:
使用所存储的用户上下文信息来确定下列各项中至少一项的故障前检测状态信息:所述处理单元、与所述处理单元相关联的一个或多个显示装置、以及与所述处理单元相关联的一个或多个电路;以及
基于所存储的用户上下文信息来改变下列各项中的至少一项的故障后检测状态信息,以匹配所确定的故障前检测功率状态:所述处理单元、所述一个或多个显示装置、以及所述一个或多个电路。
9、根据权利要求8所述的方法,其中改变所述故障后检测状态信息包括:当发出需要使用与所述处理单元相关联的至少一个存储器位置、与所述处理单元相关联的至少另一个存储器位置、以及与所述处理单元相关联的至少又一个存储器位置这三者中的一个或多个的操作命令时,向与所述处理单元相关联的所述至少一个存储器位置、与所述处理单元相关联的所述至少另一个存储器位置,以及与所述处理单元相关联的所述至少又一个存储器位置这三者中的一个或多个中写入所存储的用户上下文信息的至少一部分。
10、根据前述任一权利要求所述的方法,包括在检测到所述故障状况时通过初始化序列对显示器进行重新初始化。
11、一种包括所存储的指令的存储器,所述指令在被执行时使协处理单元:
根据任一前述权利要求所述的方法恢复处理单元。
12、一种设备,其包括:
处理单元;以及
可操作地耦合到所述处理单元和包含所存储的指令的存储器的协处理单元,从而当由所述协处理单元执行所述指令时,使所述协处理单元根据权利要求1到10中的任一项所述的方法恢复所述处理单元。
13、一种设备,其包括:
用于在检测到与处理单元相关联的故障状况时使用所存储的用户上下文信息恢复所述处理单元的逻辑。
14、根据权利要求13所述的设备,其中所述逻辑还用于在处理单元的正常运行期间存储所述用户上下文信息。
15、根据权利要求13或14所述的设备,其中用于检测故障状况的所述逻辑包括用于使协处理单元检测下列各项中至少一项的逻辑:
与所述协处理单元相关联的输入已接收到标识所述故障状况的信息;以及
与所述处理单元相关联的至少一个存储器位置包含至少一个指示故障状况的存储位。
16、根据权利要求13到15中任一项权利要求所述的设备,其中用于使用所存储的用户上下文信息恢复所述处理单元的所述逻辑包括用于执行如下操作的逻辑:
使用所存储的用户上下文信息来确定下列各项中至少一项的故障前检测状态信息:所述处理单元、与所述处理单元相关联的一个或多个显示装置、以及与所述处理单元相关联的一个或多个电路;以及
基于所存储的用户上下文信息来改变下列各项中的至少一项的故障后检测状态信息,以匹配所确定的故障前检测功率状态:所述处理单元、所述一个或多个显示装置、以及所述一个或多个电路。
17、根据权利要求16所述的设备,其中用于改变所述故障后检测状态信息的所述逻辑包括用于在发出需要使用至少一个存储器位置的操作命令时向所述处理单元的所述至少一个存储器位置写入所存储的用户上下文信息的至少一部分的逻辑。
CNA2006800534002A 2005-12-28 2006-12-27 利用用户上下文信息检测故障状况并随后恢复的方法和设备 Pending CN101390058A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310741223.9A CN103761160B (zh) 2005-12-28 2006-12-27 利用用户上下文信息检测故障状况并随后恢复的方法和设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/319,926 US7702955B2 (en) 2005-12-28 2005-12-28 Method and apparatus for detecting a fault condition and restoration thereafter using user context information
US11/319,926 2005-12-28

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201310741223.9A Division CN103761160B (zh) 2005-12-28 2006-12-27 利用用户上下文信息检测故障状况并随后恢复的方法和设备

Publications (1)

Publication Number Publication Date
CN101390058A true CN101390058A (zh) 2009-03-18

Family

ID=38007222

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201310741223.9A Active CN103761160B (zh) 2005-12-28 2006-12-27 利用用户上下文信息检测故障状况并随后恢复的方法和设备
CNA2006800534002A Pending CN101390058A (zh) 2005-12-28 2006-12-27 利用用户上下文信息检测故障状况并随后恢复的方法和设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201310741223.9A Active CN103761160B (zh) 2005-12-28 2006-12-27 利用用户上下文信息检测故障状况并随后恢复的方法和设备

Country Status (5)

Country Link
US (1) US7702955B2 (zh)
EP (1) EP1974272B1 (zh)
CN (2) CN103761160B (zh)
DE (1) DE602006011956D1 (zh)
WO (1) WO2007074395A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109690496A (zh) * 2016-09-29 2019-04-26 英特尔公司 存储器监视器
CN111986171A (zh) * 2020-08-14 2020-11-24 西安应用光学研究所 一种用于红外线阵探测器的异常元检测方法
CN112114993A (zh) * 2020-09-28 2020-12-22 中国建设银行股份有限公司 一种应用系统的配置信息处理方法及装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095829B1 (en) * 2007-11-02 2012-01-10 Nvidia Corporation Soldier-on mode to control processor error handling behavior
WO2010137063A1 (ja) * 2009-05-26 2010-12-02 株式会社日立製作所 管理サーバ及び管理システム
EP2691853B1 (en) * 2011-03-31 2021-02-24 Hewlett-Packard Development Company, L.P. Supervisor system resuming control
JP2014010739A (ja) * 2012-07-02 2014-01-20 Fujitsu Ltd システムの状態の復元についての情報処理方法、情報処理プログラム及び情報処理装置
US9298556B2 (en) * 2013-04-24 2016-03-29 Nintendo Co., Ltd. Graphics processing watchdog active reset
CN104427229B (zh) * 2013-08-26 2017-10-31 上海斐讯数据通信技术有限公司 一种自动消除摄像模块esd的方法
US9275429B2 (en) 2014-02-17 2016-03-01 Qualcomm Incorporated Device hang detection and recovery
CN105446863B (zh) * 2015-11-23 2018-02-23 上海兆芯集成电路有限公司 具有记录能力的电子装置与电路状态记录方法
CN106339288B (zh) * 2016-06-06 2019-02-01 西北工业大学 一种软件故障上下文定位的方法及装置
US10579503B2 (en) 2017-05-15 2020-03-03 Microsoft Technology Licensing, Llc Conditionally crashing software applications to track software use
US10922203B1 (en) * 2018-09-21 2021-02-16 Nvidia Corporation Fault injection architecture for resilient GPU computing
US11403162B2 (en) * 2019-10-17 2022-08-02 Dell Products L.P. System and method for transferring diagnostic data via a framebuffer
CN111427934A (zh) * 2020-04-26 2020-07-17 北京工业大数据创新中心有限公司 一种异常事件及其上下文事件的关联挖掘方法及系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ZA777568B (en) 1977-12-20 1978-10-25 Int Standard Electric Corp Improvements in or relating to processor system
US4598356A (en) 1983-12-30 1986-07-01 International Business Machines Corporation Data processing system including a main processor and a co-processor and co-processor error handling logic
US4851991A (en) 1987-02-24 1989-07-25 Digital Equipment Corporation Central processor unit for digital data processing system including write buffer management mechanism
JPH06236299A (ja) 1993-02-10 1994-08-23 Hitachi Ltd システム監視方法及び監視装置
US5504859A (en) * 1993-11-09 1996-04-02 International Business Machines Corporation Data processor with enhanced error recovery
US6009258A (en) 1997-09-26 1999-12-28 Symantec Corporation Methods and devices for unwinding stack of frozen program and for restarting the program from unwound state
US6532497B1 (en) 1998-04-14 2003-03-11 International Business Machines Corporation Separately powered network interface for reporting the activity states of a network connected client
JP2000181890A (ja) * 1998-12-15 2000-06-30 Fujitsu Ltd マルチプロセッサ交換機及びその主プロセッサ切替方法
WO2000076119A1 (en) 1999-06-08 2000-12-14 General Instrument Corporation Cryptographic processing system
US6560726B1 (en) 1999-08-19 2003-05-06 Dell Usa, L.P. Method and system for automated technical support for computers
US6505298B1 (en) 1999-10-25 2003-01-07 International Business Machines Corporation System using an OS inaccessible interrupt handler to reset the OS when a device driver failed to set a register bit indicating OS hang condition
US6543002B1 (en) * 1999-11-04 2003-04-01 International Business Machines Corporation Recovery from hang condition in a microprocessor
US6496890B1 (en) 1999-12-03 2002-12-17 Michael Joseph Azevedo Bus hang prevention and recovery for data communication systems employing a shared bus interface with multiple bus masters
US6591379B1 (en) 2000-06-23 2003-07-08 Microsoft Corporation Method and system for injecting an exception to recover unsaved data
US6742139B1 (en) * 2000-10-19 2004-05-25 International Business Machines Corporation Service processor reset/reload
US6825844B2 (en) * 2001-01-16 2004-11-30 Microsoft Corp System and method for optimizing a graphics intensive software program for the user's graphics hardware
US6938183B2 (en) * 2001-09-21 2005-08-30 The Boeing Company Fault tolerant processing architecture
US6886112B2 (en) * 2002-06-28 2005-04-26 Microsoft Corporation Recovering from device failure
US7373548B2 (en) * 2003-08-29 2008-05-13 Intel Corporation Hardware recovery in a multi-threaded architecture
US8250412B2 (en) * 2003-09-26 2012-08-21 Ati Technologies Ulc Method and apparatus for monitoring and resetting a co-processor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109690496A (zh) * 2016-09-29 2019-04-26 英特尔公司 存储器监视器
CN109690496B (zh) * 2016-09-29 2023-09-22 英特尔公司 存储器监视器
CN111986171A (zh) * 2020-08-14 2020-11-24 西安应用光学研究所 一种用于红外线阵探测器的异常元检测方法
CN111986171B (zh) * 2020-08-14 2024-02-27 西安应用光学研究所 一种用于红外线阵探测器的异常元检测方法
CN112114993A (zh) * 2020-09-28 2020-12-22 中国建设银行股份有限公司 一种应用系统的配置信息处理方法及装置

Also Published As

Publication number Publication date
EP1974272B1 (en) 2010-01-20
WO2007074395A1 (en) 2007-07-05
CN103761160B (zh) 2017-03-01
EP1974272A1 (en) 2008-10-01
US7702955B2 (en) 2010-04-20
CN103761160A (zh) 2014-04-30
DE602006011956D1 (de) 2010-03-11
US20070168722A1 (en) 2007-07-19

Similar Documents

Publication Publication Date Title
CN101390058A (zh) 利用用户上下文信息检测故障状况并随后恢复的方法和设备
US7698594B2 (en) Reconfigurable processor and reconfiguration method executed by the reconfigurable processor
US8099636B2 (en) System and method for protecting memory stacks using a debug unit
US8677189B2 (en) Recovering from stack corruption faults in embedded software systems
AU2020285262B2 (en) Error recovery method and apparatus
US20120110378A1 (en) Firmware recovery system and method of baseboard management controller of computing device
US20100318746A1 (en) Memory change track logging
CN103226499B (zh) 一种恢复内部存储器中的异常数据的方法及装置
US20120304184A1 (en) Multi-core processor system, computer product, and control method
US20070250750A1 (en) Error detection apparatus and method
US20120233499A1 (en) Device for Improving the Fault Tolerance of a Processor
CN113467981A (zh) 异常处理的方法和装置
CN115328668A (zh) 故障处理方法、双核锁步系统、电子设备及介质
CN110659083A (zh) 一种程序故障重启后恢复内存数据的方法和系统
CN112241389A (zh) 片上系统
CN114461479A (zh) 调试多媒体处理芯片的方法、装置、存储介质和电子设备
CN111277820A (zh) 相机系统的失效检测的方法、装置以及检测与恢复方法
CN108415788B (zh) 用于对无响应处理电路作出响应的数据处理设备和方法
CN118033450A (zh) 燃料电池汽车的故障诊断方法、系统及燃料电池汽车
JP2004341817A (ja) 情報処理方法及びプログラム並びにナビゲーション装置
CN117724892A (zh) 转储数据生成方法、电子设备及存储介质
CN101201773B (zh) 储存装置的数据保护方法
CN113032130A (zh) 系统异常处理方法和装置
CN103617094A (zh) 多核处理器的瞬时故障容错系统
CN114771251A (zh) 一种液晶仪表显示方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: QUALCOMM INC.

Free format text: FORMER OWNER: ATI TECHNOLOGIES ULC

Effective date: 20110209

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: ONTARIO, CANADA TO: CALIFORNIA, USA

TA01 Transfer of patent application right

Effective date of registration: 20110209

Address after: American California

Applicant after: Qualcomm Inc.

Address before: Ontario

Applicant before: ATI. Technologies Ulc

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20090318