CN1882917B - 用于监测和复位协处理器的方法和装置 - Google Patents

用于监测和复位协处理器的方法和装置 Download PDF

Info

Publication number
CN1882917B
CN1882917B CN2004800342662A CN200480034266A CN1882917B CN 1882917 B CN1882917 B CN 1882917B CN 2004800342662 A CN2004800342662 A CN 2004800342662A CN 200480034266 A CN200480034266 A CN 200480034266A CN 1882917 B CN1882917 B CN 1882917B
Authority
CN
China
Prior art keywords
coprocessor
hang
processor
module
detecting
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.)
Active
Application number
CN2004800342662A
Other languages
English (en)
Other versions
CN1882917A (zh
Inventor
程公先
陈兴邦
蒋依南
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.)
ATI Technologies ULC
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
Publication of CN1882917A publication Critical patent/CN1882917A/zh
Application granted granted Critical
Publication of CN1882917B publication Critical patent/CN1882917B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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 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/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/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)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Abstract

一种电路监测和复位协处理器,所述电路包括挂起检测器模块,其用于检测协处理器中的一个挂起。所述电路还包括选择性处理器复位模块,其用于响应于检测到所述协处理器中的一个挂起,复位所述协处理器,而不复位处理器。

Description

用于监测和复位协处理器的方法和装置
技术领域
本发明通常涉及计算机系统或者其他系统中的“挂起”(hang)的检测和恢复,并且尤其涉及到用于检测协处理器中的挂起和提供协处理器的恢复的装置和方法。
发明背景
对以更快的速度处理更大量的图形数据的需求的不断增长持续推动加速图形渲染(rendering)领域中的发展。当前的加速图形渲染方案是一个复杂的处理过程,其需要对硬件和软件两者进行精确地设计和实现。加速图形渲染一般使用通常为图形处理器的硬件,和通常为由主处理器执行的图形驱动程序的软件,以使图形数据和视频信息的处理最佳化。任一例如设计缺陷或者实现缺陷的问题,都能损害加速图形渲染,并能导致所述加速图形渲染停止运行。这样的问题可以包括有缺陷的图形处理器,总线控制器,中央处理器单元(CPU),或者其他硬件。其他的问题可能包括图形驱动程序、操作系统、图形应用程序或者其他软件等方面的缺陷。
由于在加速图形渲染中使用的硬件和软件的复杂性,以及在上述软件、硬件以不同方式组合所增加的复杂性,图形处理器经常会遭遇到包括完全挂起在内的各种渲染错误。一个挂起是一个其中系统或者进程变成没有响应的情形,比如由于处理器停转、死锁、陷入死循环等造成的处理器挂断的情形。目前,这种挂起会导致数据遗失以及中止整个计算机系统上的操作。不幸的是,新的加速图形渲染硬件和软件以及两者之间的大量可能组合的不断引入,使得很难完全识别和排除那些能够导致加速图形渲染错误的所有可能的错误。
目前,用于检测加速图形渲染错误的方法依赖于对图形驱动程序中的挂起进行的操作系统级检测,而并不能直接检测相应图形处理器中的挂起。例如,被微软Windows
Figure G200480034266201D00021
用来检测在图形加速渲染进程中是否已经发生一个错误的方法是,检测在图形驱动程序中是否存在挂起。在这里,“看门狗定时器”通过执行自旋循环(spin-loop)来测量在图形驱动程序中花费的时间,然后等待所述图形处理器来进行响应。死循环的检测被操作系统用作图形处理器可能挂起的一个信号。一旦超时期满,操作系统就停止所述图形驱动程序,向用户显示一个通知,并且提示用户重启计算机。这里,看门狗定时器周期性地执行,而不考虑渲染命令是否当前正被驱动程序处理。
根据一个预先设定的等待时间,由于表现为图形驱动程序中的挂起的和作为实际正在执行的大量渲染命令的都表现为缓慢响应,所以微软的Windows不能把两者区分开来。而且,利用微软的Windows在系统尝试在不关心图形驱动程序是否已经发出的任何指令,即图形驱动程序当前是否是空闲的情况下判定图形驱动程序是否挂起时,系统资源经常被浪费。另外,当微软的Windows检测到被认为是一个挂起的图形处理器时,整个系统必须被重启,迫使用户终止所有硬件和软件组件,而不管这些组件对图形处理器中的挂起有无贡献。
用于检测一个挂起的图形驱动程序的另一个方法是在微软Windows的Service Pack I(SP1)中使用的方法。这里,使用相同的“看门狗定时器”,但是响应于检测到一个挂起的图形驱动程序,所述系统在一次尝试中卸载图形驱动程序并加载一个标准的VGA驱动程序来依照一种非加速模式来继续图形渲染操作。这种设计通过允许用户保存其工作并重启计算机,防止了数据的丢失。然而,使用SP1,当系统切换到非加速模式时,加速图形渲染模式中的操作优势就丧失。而且,类似于微软Windows
Figure G200480034266201D00026
系统,SP1也不能区分图形驱动程序的缓慢响应和完全挂起两者。另外,当SP1切换到非加速模式时,系统返回到加速图形渲染的唯一方式就是执行整个系统的重启。而且,如果硬件和软件组件对图形处理器中的挂起有贡献,则迫使用户来终止所有硬件和软件组件。
发明内容
根据本发明的一个方面,提供一种用于监测和复位协处理器的电路,包括:
挂起检测器模块,用于检测所述协处理器中的挂起;和
选择性处理器复位模块,用于响应于检测到所述协处理器中的挂起,有选择地复位所述协处理器,而不复位处理器,其中
所述挂起检测器模块通过检测所述协处理器的当前状态和所述协处理器的当前活动之间的差异来检测所述协处理器中的所述挂起。
根据本发明的另一个方面,提供一种用于监测和复位协处理器的方法,包括步骤:
检测所述协处理器中的挂起;且
响应于检测到所述协处理器中的挂起,有选择地复位所述协处理器,而不复位处理器;
其中通过检测所述协处理器的当前状态和所述协处理器的当前活动之间的差异来检测所述协处理器中的所述挂起。
附图说明
参考下图,本发明可以更清楚的理解,其中相同参考标记表示类似的单元,其中:
图1是例示依照本发明的一个实施例的用于监测和复位协处理器的电路的一个实例的方框图;
图2是例示依照本发明的一个实施例的用于监测和复位协处理器的方法的一个实例的流程图;
图3是例示依照本发明的一个实施例的用于监测和复位协处理器的电路的一个实例的方框图;
图4是例示依照本发明的一个实施例的用于监测和复位协处理器的方法的一个实例的流程图;
图5是举例说明依照本发明的一个实施例的用于监测和复位协处理器的系统的一个实例的方框图;
图6是依照本发明的一个实施例的用于监测和复位协处理器的系统的实例的方框图;
图7是依照本发明的一个实施例的用于监测和复位协处理器的系统的一个实例的方框图,包括一个图形处理器;
图8是依照本发明的一个实施例的用于监测和复位图形处理器的系统的一个实例的方框图;
图9例示了依照本发明的一个实施例的用于监测和复位图形处理器的系统的一个实例;
图10是例示依照本发明的一个实施例的用于监测和复位协处理器的方法的一个实例的流程图;和
图11是例示依照本发明的一个实施例的用于监测和复位协处理器的方法的一个实例的流程图。
发明详述
简单地说,电路对协处理器进行监测和复位。所述电路包括挂起检测器模块,用于检测协处理器中的挂起。所述电路还包括选择性处理器复位模块,用来响应于检测到协处理器中的挂起,只对所述协处理器进行复位,而无需对处理器进行复位。
如同在本文档中所使用的,术语模块是指一个功能电路系统的较大集合中的一个功能子集合。术语电路系统至少包括下列之一:一个或多个执行指令的处理器,如微处理器、数字信号处理器(DSP),微控制器或离散逻辑,状态机,或硬件、软件和/或固件的任何适当组合。本领域的一个普通技术人员可以认识到,一个或者多个模块可被组合为电路系统的所述功能集合的所述较大集合。此外,任何来自一个模块的功能可以从一个模块转移到另一个模块。
如同在本文档中所使用的,术语协处理器是指相对于第一处理器的第二处理器。这样的协处理器例如可以包括通用处理器,外围设备处理器(例如图形处理器,音频处理器等等),或者其他的相似处理器。
如同在本文档中所使用的,术语处理器挂起被用来描述比如当处理器处于死循环时,其对来自该处理器外部的输入不再作出响应。在这种情况下,所述处理器需要重新引导或者复位以使所述处理器再一次对外部输入作出响应,并且另外按照所述设备被设计的方式来进行操作。
在协处理器复位期间,通常,与所述处理器有关的一个或者多个软件和/或硬件组件被复位,使得处理器能够依照其预期设计进行操作。复位可以包括在上电或者引导时执行的复位类型,就如同通常在处理装置上电时执行一样。但是,可以执行与上电复位不同的其他复位。一种复位可以是为特定的协处理器可用的多种不同复位类型。在一个实施例中,响应于检测到协处理器中的一个挂起,可以执行多个不同类型的复位。在此实施例中,在复位时刻或在此之前,使各个不同复位适合于协处理器或者其他相关组件的检测状态或者状况。执行复位的一般目的是复位的结果消除协处理器中的所述挂起并允许处理器恢复对指令的成功处理。
在一个实施例中,提供一个优点,使得所述特定协处理器中的一个挂起不必需要对除了所述挂起的协处理器以外的任何其他处理器进行复位。同样,在相同处理设备上运行的其他应用程序通常不受挂起和任何随后的复位的影响。例如:用于处理其他协处理器的指令或者其他应用程序的处理器不会受到所述协处理器的复位的影响。在一个实施例中,所述处理器执行针对用于监测和复位所述协处理器的电路的指令。此外,当所述挂起的协处理器复位时,所述处理器继续执行指令。
在一个实施例中,提供一个优点,使得从由操作系统通常提供的那些过程中提供单独的过程,这些单独的过程分别监测一个特定的应用/协处理器是否被挂起。因为所述过程与通过操作系统的可使用的相应过程是分离的,所以所述分离过程可以适合包含特定功能,该特定功能尤其适合对特定处理器的挂起进行检测和复位。例如,可以使得一个挂起检测过程适合于所述特定处理器,使得对那个特定处理器的挂起检测而言,对某一个软件和/或硬件状况的具体检查是最有效的。
在一个实施例中,提供一个优点,使得只有在处理器忙时,才会执行确定目的协处理器中是否已经出现一个挂起的过程。这里,还未执行任何指令且不太可能遭受挂起的空闲处理器,就不必为挂起的存在进行检查。即使因某种原因这个处理器经受一个挂起,事实上,当前不需要该处理器,并且有可能永远不需要,现有系统提供的好处是,忽略特定处理器的挂起状态直到实际需要所述过程。不管这样的处理器是否需要而进行关于这样的处理器是否被挂起的周期性检查的系统,不仅浪费了系统资源,而且引入了一种可能性,即因为检测到系统还不需要的挂起过程而需要重新引导所述系统。
在一个实施例中,提供一个优点,使得特别旨在协处理器的应用程序现在可以接管关于确定相关协处理器是否经历一个挂起的那些责任。这可能释放那些通常被操作系统使用来确定是否有一个挂起已经发生的挂起检测过程。
在一个实施例中,所述系统可以在所述处理器复位期间,暂停与所述挂起的处理器的通信。这提供了防止协处理器的任何进一步的不稳定的优点。
在一个实施例中,在尝试复位一个已挂起的处理器之后,所述系统在允许这个处理器继续执行之前,进行检查以确定所述复位是否成功。这提供了一个优点,即防止处理器在失败的复位之后继续进行处理。
在一个实施例中,在已经复位所述处理器之后,通过确定先前已挂起的处理器现在是否完全起作用,所述系统决定是否恢复协处理器的操作,这提供一个优点,即在确定为所述处理器还没有完全起作用时,防止处理器尝试重启处理。在一个实施例中,所述系统首先进行检查以判断复位是否成功,并且如果成功,判断先前已挂起的处理器是否完全起作用,如果起作用,则允许这个处理器的恢复使用。
在一个实施例中,出于调试系统来判断处理器挂起发生的原因的目的,所述系统保存着相关硬件和软件的状况的一个瞬像(snapshot)。这提供了一个优点,即保存可被用来识别处理问题的信息,使得能够在以后软件和/或硬件的升级中解决这种问题。在一个实施例中,所述保存的信息包括下列中一个或者多个:软件或驱动程序版本,错误报告格式版本,加速图形端口(AGP)速度;所支持的AGP版本、图形处理器设备ID、图形处理器供应商ID、图形处理器子系统ID、芯片组设备ID、芯片组供应商ID、误差标志、系统存储器大小、图形帧缓存大小、引擎时钟、存储器时钟,和内部协处理器状况,包括寄存器值和命令队列数据。
在一个实施例中,所述系统允许将硬件和软件状况发送到一个远程位置,比如协处理器供应商的电子邮件地址。这提供了一个优点,即供应商能够接到有关其产品在一定范围内存在缺点的有价值信息,并且因此能够较早地和更为详细地认识到与当前技术相比的处理问题。
图1例示了处理器100、协处理器102,和用于对协处理器进行监测和复位的电路104、挂起检测器模块106、选择性处理器复位模块108、挂起通知信号110、和合适连接112,该连接将所述协处理器102连接到所述处理器100。
用于对协处理器102进行监测和复位的所述电路包括所述挂起器检测模块106和所述选择性处理器复位模块108。在此例中,用于对协处理器进行监测和复位的所述电路104的形式是由处理器100执行的一个或者多个软件模块,比如由所述协处理器104执行的一个驱动程序。用于对所述协处理器进行监测和复位的所述电路104包括所述挂起检测器模块106和所述选择性处理器复位模块108。所述挂起检测器模块106用于检测协处理器中的挂起。所述挂起检测器模块106在一次努力中监测协处理器102以识别在协处理器102中何时发生一个挂起。例如,所述挂起检测器模块106可以周期地检查所述协处理器102以判断其当前是否被挂起。在一个实施例中,只有当针对所述协处理器的新指令被发送时,所述挂起检测器模块106才尝试判断所述协处理器102是否被挂起。在另一个实施例中,在获知所述协处理器102已经被分配执行指令时,所述挂起检测器模块106尝试判断所述协处理器102是否被挂起。
例如,所述挂起检测器模块106检查用于表明所述协处理器102当前是否正在执行指令的标记,如果是正在执行指令,那么所述同一挂起检测器模块106随后检查与所述协处理器102有关的相应寄存器,以判断在这些寄存器中,反映这些指令的实际执行的活动是否正在发生。在这样的寄存器中的所述活动或者缺少活动之间的差异被检测到的情况下,所述挂起检测器模块106随后会向所述选择性处理器复位模块108返回一个挂起通知信号110,以表明在所述协处理器102中已经检测到一个挂起。
在一个实施例中,更准确地说,所述挂起检测器模块106首先进行检查以查看一个忙标志是否被设定。如果所述“忙”标志被判断为未设定,所述挂起检测器模块106向所述选择处理器复位模块108返回一个无挂起通知信号(没有显示)。如果所述“忙”标志被判断为已经设定,特定寄存器的状况或者内容会被审查并且被保存(这些通常用于监测协处理器102的活动)。接着,允许经过一等待周期,以允许所述特定寄存器中的活动发生。再次,特定寄存器的状况或者内容会被保存,或者至少他们的内容会被审查并用来发生比较。最后,分别在等待周期任一侧发生的所述寄存器的两组内容被比较。如果检测到一个差别,那么随后向所述选择性处理器复位模块108发送无挂起通知信号(没有显示)。否则,如果检测不到差别,所述挂起检测器模块106会向所述选择性处理器复位模块108返回一个挂起通知信号110。
当所述选择性处理器复位模块108接收到表明了协处理器102中已经发生了一个挂起的挂起通知信号110时,所述选择处理器复位模块108有选择地复位所述协处理器102而不复位所述处理器100。在一个实施例中,由所述选择性处理器复位模块108执行的所述复位与上电和重新引导时执行的复位完全相同。在这种实施例中,整个协处理器可能会被复位。在另外一个实施例中,被执行的所述复位可以只包括通常在上电时复位的硬件的子集合的复位。在一个实施例中,多个子处理器(未显示)与所述协处理器102相关联。在这种实施例中,所述复位在各个子处理器上执行,而在另一个实施例中,只有所述子处理器的一个子集合被复位。与一个图形处理器有关的这种子处理器的一个例子是二维渲染引擎,三维渲染引擎、三维像素管道等。
在另一个实施例中,所述复位功能被称为多重定时,如16定时,以确保复位成功。在另一个实施例中,被执行的所述复位可以是通过模拟总线上的复位信号来对整个协处理器进行的一种复位(如当重新引导系统时执行的复位)。在这种实施例中,一个特定值被写入外围组件互连(PCI)地址空间的的特定位置。这种实施例提供了一个优点,即能执行所有硬件挂起的复位,这些硬件挂起是可以被用于对协处理器进行监测和复位的所述电路108检测到。
在另一个实施例中,被执行的所述复位是这样一种复位,即特别被设计来在所述挂起检测器模块106检测到所述协处理器102中的一个挂起后执行的复位。虽然在当前实施例中,所述选择处理器复位模块108仅复位102,但是在另外一个实施例中,也可以对另外的处理器执行复位。
在一个实施例中,所述挂起检测器模块106由所述处理器100执行。在另一个实施例中,所述处理器100为一个CPU。在一个实施例中,所述挂起检测器模块106检测协处理器102中的一个挂起,并向所述选择性处理器复位模块108发送一个挂起通知信号110,该挂起通知信号110表明一个挂起已被检测到。在一个实施例中,所述选择性处理器复位模块108由所述处理器100执行,且在允许所述处理器100继续执行用于对一个协处理器进行监测和复位的所述电路104的所述指令的同时,对所述协处理器102执行复位。
在一个实施例中,所述协处理器102为一个图形处理器,并且被图形处理器执行的指令为图形渲染命令。所述图形处理器包含一个忙标志,以表明图形处理器当前是否正在执行指令。在一个实施例中,所述图形处理器具有被用来执行图形渲染指令的寄存器。为了判断在图形处理器中是否发生了一个挂起,所述挂起检测器模块106检测所述忙标志被设定且继续检查所述图形处理器中的一个或者多个的所述活动,以确定其中的所述活动是否代表图形渲染命令的执行。如果忙标记和在图形处理器寄存器中被观察到的活动之间存在差异,那么所述挂起检测器模块106将发送一个挂起通知信号110至所述选择性处理器复位模块108。所述选择性处理器复位模块108随后将执行所述图形处理器的复位。在一个实施例中,如果所述忙标记表明所述处理器非忙,那么所述系统就不检查在相关寄存器中是否存在活动。
图2显示了一种方法200,其使用用于对协处理器进行监测和复位的所述电路104。在步骤202中执行开始节点后,执行步骤204,在步骤204中,所述系统检测所述协处理器中的一个挂起。在一个实施例中,如同上述关于图1的讨论,通过识别与协处理器102有关的忙标志和所述相应寄存器之间的差异,完成检测所述协处理器102中的一个挂起的所述步骤。在这个实施例中,所述挂起检测器模块106判断为一个忙标记被设定但所述相应寄存器中的所述活动表明所述协处理器102被挂起。而且,如上所述,在一个实施例中,当所述一个新指令或多个新指令被发送给所述协处理器102时,所述系统检测所述协处理器102中的挂起。但是,在另一个实施例中,在所述忙标志被设定的任何时刻,所述挂起检测器模块106识别所述协处理器中的一个挂起。在一个实施例中,只要所述忙标记被设定,所述检测器模块106会周期性地持续识别所述协处理器102中的挂起。一旦所述挂起检测器模块106检测到一次挂起,所述挂起检测器模块106就向选择性处理器复位模块108发送挂起通知信号110。
在步骤206中,在接收到表明所述协处理器被挂起的挂起通知信号110之后,所述选择性处理器复位模块108有选择地对所述协处理器102进行复位而不对所述处理器104进行复位。同样,如同上述关于图1的讨论,未复位的所述处理器为正在执行用于对协处理器进行监测和复位的所述电路104的所述处理器。在另一个实施例中,处理器104为主处理器或者CPU,且除了执行用于对协处理器104进行监测和复位的所述电路之外,还执行一个或者多个系统程序或者应用程序。
图3例示了处理器100,协处理器102,用于对协处理器进行监测和复位的电路104,挂起检测器模块106,选择性处理器复位模块108和合适连接112,该连接用于将协处理器102连接到处理器100。另外,可选的组件也被示出并用虚线表示,且包括中止通信模块300,复位检查模块302,重启通信模块304,挂起通知信号110,复位通知信号306,复位成功通知信号308和操作系统310。
在一个实施例中,响应于从挂起检测器模块106处接收到表明所述协处理器102中的挂起的挂起通知报告110,所述中止通信模块300被用来中止与所述协处理器102的命令通信。响应于接收到挂起通知信号110,所述中止通信模块300停止向所述协处理器102发送指令。在一个实施例中,这是通过当所述中止通信模块300把发送标志设定为关以防止进一步向所述协处理器102发送指令来实现的。在另一个实施例中,所述中止通信模块300把一个接收标志设定为关以表明没有从图形处理器接收回任何东西,或者换句话说,在所述协处理器102上当前没有执行悬挂指令,协处理器102将返回信号、数据等等。在另一个实施例中,所述发送标志和接收标志都被相应地设定。然而,在另一个实施例中,所述接收标志的功能被忙标志代替,使得当忙标志被设定时,可以认为所述协处理器102将返回一个信号、数据等等,且在所述忙标志为关时,可以认为协处理器102不会返回这种信息。因而,在这个实施例中,所述选择性处理器复位模块108把所述忙标志设定为关,并复位所述协处理器102。
响应于从所述选择性处理器复位模块108接收到复位通知信号306,所述复位检查模块302判断所述复位是否成功完成,并且如果成功完成,那么所述复位检查模块302产生复位成功通知信号308。在一个实施例中,所述复位成功通知信号308被发送给重启通信模块304。
在一个实施例中,使用重启通信模块304。这里,所述重启通信模块304响应于接收到复位成功通知信号308,重启与协处理器102的命令通信。在一个实施例中,这是通过将发送标志设定为开来实现的(参考图6)。在另一个实施例中,这是通过将发送标志和接收标志都设定为开来实现的。但是,如同以上有关所述中止通信模块300的讨论,一个实施例将忙标志设定为开,代替将接收标志设定为开。
除了举例说明虚线中的三个可选步骤402、404、406和显示在实线中的两个必须步骤204、206,图4还举例说明了与所述步骤204有关的两个可选步骤限制408和410,和与步骤206有关的可选步骤限制412。这里,所述始节点和终节点202和208与图2中显示的相同。另外,所述步骤204和206表示与图2中描述和显示的同样的步骤。在步骤402中,所述系统响应于检测到所述协处理器中的一个挂起,中止与所述协处理器102的命令通信。在步骤404中,所述系统检测所述协处理器102是否响应于所述协处理器102的所述复位而已经被成功复位。在步骤406中,所述系统响应于检测到所述协处理器已经被成功复位,重启与所述协处理器102的命令通信
如步骤限制408中所示,步骤204被限制为通过检测所述协处理器102的当前状态与所述协处理器102的当前活动之间的差异来检测所述协处理器中的挂起。步骤限制410对步骤限制408中引入的所述限制进行进一步的限制,使得可以利用检测到当前忙状态和检测到当前活动没有进展来检测到差异,当前忙状态在忙标记中反映出,当前活动没有进展在协处理器寄存器缺少活动中反映出。步骤限制412限制步骤206使得操作系统310在所述处理器100上执行。
图5例示了用于对所述协处理器102进行监测和复位的系统500,其包括处理器100,协处理器102,存储器502,指令504,挂起检测器模块指令506,选择性处理器复位模块指令508,合适连接510,512,514和516,其位于所述存储器502和所述处理器100、和协处理器设备102之间。此外,当在协处理器102中检测到挂起时,所述挂起检测器模块指令506产生所述挂起通知信号110给所述选择处理器复位模块指令508。如在此处使用的,存储器可以为以下中任何一个:随机存储器、只读存储器、光或磁存储器,或者能够存储数字信息的任何合适存储器。所述存储器可以是系统处理器、可为系统访问的其他存储器或协处理器的特定本地存储器。
所述指令集合504为适合在适当处理器100上执行的指令,其包括所述挂起检测器模块指令506和所述选择性处理器复位模块指令508。连接510,512,514和516,代表合适的电连接,其包括硬接线连接,桥接线或者总线等等。在一个实施例中,连接516表示主机总线。在图5中说明的所述系统的详细操作与上面关于图1和图2的描述类似。
图6例示了用于对协处理器102进行监测和复位的系统600,所述系统600包括在图5中显示的组件,除了把所述处理器100替换为主处理器602之外。在一个实施例中,所述主处理器为CPU。此外,下述可选指令模块包括:中止通信模块指令604,功能检查模块指令606,复位检查模块指令608和重启通信模块指令610。在这个实施例中,协处理器102包含忙标志612和寄存器614。此外,存储器502包含发送标志616,接收标志618和命令队列620。
如同上面关于图1的描述,发送标志616用于控制发送给所述协处理器102的信息。同样如图1所述,所述接收标志618用于控制从所述协处理器102接收信息。通过执行所述指令504,命令队列620被填充。在操作中,当发送标志616为开时,指令504的执行可以通过所述命令队列620,自由发送给协处理器102。当所述协处理器102准备好执行下一条指令时,所述协处理器102从所述命令队列620检索所述下一条命令。因此,将发送标志616设定为关可以防止所述指令504执行来填充所述命令队列620,因而,防止协处理器102访问新的附加指令。如上面图1所述,忙标记612可以与寄存器614一起使用,以判断所述协处理器当前是否在经历一个挂起。同样如上图1所述,所述忙标志612还可以作为接收标志618使用。
图7例示了用于监测和请求所述图形处理器702的选择性处理器复位的系统700,除了用主处理器602代替所述协处理器104,用图形处理器702代替所述协处理器102外,所述系统和图5中示出的类似。
图8例示了用于监测和请求所述图形处理器702的选择性处理器复位的系统800,除了用一个图形处理器702代替所述协处理器102,所述系统和图6中示出的类似。此外,用所述图形处理器忙标志802和所述相应图形寄存器804代替所述协处理器忙标志612和所述相应寄存器614。
图9例示了用于监视和请求图形处理器702的选择性处理器复位的系统900。除了所述存储器502还包括图形命令队列902和八个附加指令模块外,图9中的系统与图8的系统类似。所述八个新的指令模块包括所述显示模式切换模块指令904,所述软件渲染模块指令906,所述挂起已解决提示模块指令908,所述报告发送提示模块指令910,所述报告发送模块指令912,所述挂起未被解决提示模块指令914,所述功能检查模块指令606和所述保存瞬像模块指令915。同样与图8不同的是,所述复位检查模块指令608,所述中止通信模块指令604和所述重启通信模块指令610不是可选的。
所述显示模式切换模块指令904响应于接收到复位通知信号306而进行操作,以执行显示模式切换。显示模式切换是发送一个请求到主系统,请求刷新在显示器上的所有窗口。在一个实施例中,如果有多个子处理器(未显示),所述显示模块切换模块指令904运行来导致只有所述子处理器的一个子集合被复位。所述软件渲染模块指令906响应于检测到功能失败通知信号916或者复位失败通知信号918而进行操作,使得执行到软件渲染模式的动态切换。到软件渲染模式的动态切换的调用,导致系统依照软件渲染模式运行,在这种模式中,所述系统允许用户在执行图形处理器重新引导之前,保存其工作。挂起已解决提示模块指令908响应于功能成功通知信号920而执行,使得显示用于表明一个挂起被检测到并被解决的提示。一个实施例中不包括所述挂起已解决提示模块908,并且同样不执行显示。
报告发送提示模块指令910响应挂起通知信号110而进行操作。显示请求来自用户的关于用户是否希望将错误报告发送到远程位置的输入的提示。在一个实施例中,所述远程位置为设计和拥有正在运行和试图运行在所述图形处理器上的应用程序的供应商。在一个实施例中,报告中包括的信息包括以上参照图3讨论的硬件和软件的状况信息。报告发送模块指令912响应于发送请求通知信号922而进行操作,所述发送请求通知信号922是响应于将报告发送给远程位置的请求而发送的。报告发送模块指令912向远程位置发送包括硬件和软件状况的错误报告。接着,挂起未解决提示模块指令914响应于初始由所述复位检查模块608产生的复位失败报告信号918而进行操作,(或者响应由所述功能检查模块指令606产生的功能失败通知信号916而进行操作),所述挂起未解决提示模块914生成一个提示,该提示表示挂起被检测到且在没有复位主处理器的情况下不能解决。在一个实施例中,缺少挂起未解决提示模块914,并且同样,不执行显示。
在一个实施例中,在使用功能检查模块指令606,并响应于接收到复位通知信号306来判断协处理器是否完全起作用的情况下,所述功能检查模块指令606判断所述图形处理器702是否完全起作用。如果完全起作用,功能检查模块指令606产生被发送给重启通信模块指令610的功能成功通知信号920,该重启通信模块指令随后只执行图形处理器702的重启。
在另一个实施例中,功能检查模块指令606产生将由挂起已解决提示模块指令908处理的功能成功通知信号920。在另一个实施例中,功能检查模块指令606产生将由软件渲染模块指令906处理的功能失败通知信号916。在一个实施例中,功能检查模块指令606执行判断协处理器102是否已被完全复位的功能。这是通过如下来完成的,即发送一个或者多个指令到协处理器102,以指示其将数据从一个存储单元复制到另一个存储单元,并比较在两个单元中存储的数据以判断复制命令是否被成功执行。这里,重要的是协处理器102执行一个操作,对该操作的结果进行分析以判断操作是否被成功执行。
在一个实施例中,如果复位成功通知信号308已经由复位检查模块指令302产生,那么仅仅调用功能检查模块指令606。同样,在这种实施例中,如果检测到协处理器102的成功复位,那么仅仅执行功能检查模块指令606。在一个实施例中,如果处理器被判断为没有完全起作用,那么CPU接管图形处理器渲染的工作。在这种情况下,图形加速被丢弃,由在CPU上执行的非加速图形渲染取代。
保存瞬像模块指令915用来保存与所述协处理器102有关的硬件和软件的一个瞬像。响应于接收到从挂起检查模块指令506产生的挂起通知信号110,产生瞬像。在一个实施例中,硬件和软件状况包括与协处理器102相关的寄存器数据,与协处理器102相关的图形命令队列,芯片信息,AGP端口信息。硬件和软件的瞬像用来捕获与所述协处理器操作有关的数据,以便对这种数据的分析有益于调试协处理器为何会经受挂起的原因。
图10示出了详细描述特定实施例的操作的流程图1000。所述过程开始于节点1001。接着,在步骤1102中,系统尝试检测协处理器102中的挂起。在步骤1004中,系统尝试判断协处理器102的检测是否表明被挂起。如果不是挂起,那么系统返回到步骤1002,否则系统继续到步骤1006,其中系统中止与协处理器102的渲染命令通信。在步骤1006之后,步骤1008保存硬件和软件状况的一个瞬像。步骤1008之后是步骤1010,在步骤1010,系统有选择地复位协处理器102,而并不复位处理器104。步骤1010之后是步骤1012,在步骤1012,系统检测协处理器102是否已经成功被复位。步骤1014然后执行显示模式切换。
执行步骤1016,在该步骤中,系统判断协处理器102是否已经成功被复位。  如果检测为所述协处理器还没有成功地复位,那么开始一个即将被讨论的过程,在该过程中,系统将需要被重启。如果系统检测到所述协处理器102被成功复位,那么执行步骤1018,在步骤1018,系统检测协处理器102是否完全起作用。接下来是步骤1020,在步骤1020,系统判断协处理器102是否完全起作用或者没有完全起作用。如果系统没有完全起作用,那么终止于系统重启的过程重新被跟随。否则,如果系统被发现完全起作用,那么执行步骤1022。在步骤1022中,系统重启与协处理器102的渲染命令通信。随后是步骤1024,在步骤1024,系统显示挂起被检测和已解决的提示。
接着,在步骤1026中,系统显示请求用户是否希望将错误报告发送到远程位置的提示。在步骤1028中,系统判断是否要发送一个错误报告。如果判断为错误报告没有被请求,那么系统返回到步骤1002中的过程。如果报告被请求,那么在步骤1030中,包括硬件和软件状况的报告被发送到远程位置。在步骤1030后,系统返回到步骤1002,在步骤1002,系统再次尝试检测协处理器中的新的挂起。响应于在步骤1016中检测到协处理器不是完全复位或者在步骤1020中判断协处理器没有完全起作用,系统进行到节点A,节点A是在必须重启相应处理器的序列中的第一个步骤。
在图11中,节点A被示出,接着是步骤1100,1102,1104,1106,1108,和最后节点1110。在步骤1100,系统执行软件渲染方式的动态切换。步骤1100之后是步骤1102,其中系统显示挂起被检测且在没有执行系统复位的情况下不能被解决的提示。步骤1102之后是步骤1104,其中系统执行对请求用户是否希望发送一个错误报告给一个远程位置的提示的显示。在步骤1106中,用户的响应被分析,并且如果请求被拒绝,那么系统进行到步骤1110,在步骤1110中,重启是必需的,否则,如果一个报告被请求,那么包括硬件和/或软件状况的错误报告被发送到一个远程位置。在发送报告之后,系统进行步骤1110,在步骤1110中,随后将需要重新引导。
应该理解的是,对于本领域的技术人员而言,本发明其他变化和修改的实现以及其各个方面是显而易见的,且本发明并不局限于所描述的具体实施例。例如,可以按照任何合适的顺序来执行上述步骤。因此,期望的是,本发明包括落在这里公开和要求的基本原理的精神和范围内的所有修改、变形或等价物。

Claims (11)

1.一种用于监测和复位协处理器的装置,包括:
挂起检测器模块,用于检测所述协处理器中的挂起;和
选择性处理器复位模块,用于响应于检测到所述协处理器中的挂起,有选择地复位所述协处理器,而不复位处理器,其中
所述挂起检测器模块通过检测所述协处理器的当前状态并确定所述协处理器的活动之间的差异来检测所述协处理器中的所述挂起;
其中,所述挂起检测器模块通过确定所述当前状态是表明是否执行挂起检测的状态并且在等待周期的任一侧确定与所述协处理器相关联的相应寄存器内的数据之间的差异,来检测所述协处理器的活动之间的差异,其中在所述相应寄存器内的数据表示所述协处理器的活动;以及
通过检测到所述当前状态为忙和检测到当前活动上没有进展而检测到所述差异,其中通过检测到忙标志被设定而检测到所述当前状态为忙,通过检测在等待周期之前和之后检查的协处理器寄存器中具有相同内容而检测到当前活动上没有进展。
2.如权利要求1所述的装置,其中,操作系统在所述处理器上执行。
3.如权利要求1的装置,其中所述挂起检测器模块还用于确定所述相应寄存器内的数据是否反映了所述协处理器对指令的处理。
4.如权利要求1的装置,其中所述协处理器的当前状态是由存储在与所述协处理器相关联的所述相应寄存器内的数据表示的。
5.如权利要求1的所述的装置,还包括:
中止通信模块,用于响应于检测到所述协处理器中的挂起,中止与所述协处理器的命令通信;
复位检查模块,用于响应于对所述协处理器进行所述复位,检测所述协处理器是否已经被成功复位;以及
重启通信模块,用于响应于检测到所述协处理器已经被成功复位,重启与所述协处理器的命令通信。
6.如权利要求1的所述的装置,其中,所述处理器为主处理器,且所述协处理器为图形处理器。
7.一种用于监测和复位协处理器的方法,包括步骤:
检测所述协处理器中的挂起;且
响应于检测到所述协处理器中的挂起,有选择地复位所述协处理器,而不复位处理器;其中
检测所述协处理器中的挂起包括检测所述协处理器的当前状态和确定所述协处理器的活动之间的差异;
其中确定所述协处理器的活动之间的差异包括:在等待周期任一侧检测与所述协处理器相关联的相应寄存器内的数据之间的差异,其中在所述相应寄存器内的数据表示所述协处理器的当前活动;以及
其中,通过检测到所述当前状态为忙和检测到当前活动上没有进展而检测到所述差异,其中通过检测到忙标志被设定而检测到所述当前状态为忙,通过检测在等待周期之前和之后检查的协处理器寄存器中具有相同内容而检测到当前活动上没有进展。
8.如权利要求7的方法,还包括确定所述相应寄存器内的数据是否反映了所述协处理器对指令的处理。
9.如权利要求7的方法,其中所述协处理器的当前状态是由存储在与所述协处理器相关联的所述相应寄存器内的数据表示的。
10.如权利要求7所述的方法,其中,操作系统在所述处理器上执行。
11.如权利要求7所述的方法,还包括步骤:
响应于检测到所述协处理器中的挂起,中止与所述协处理器的命令通信;
响应于对所述协处理器进行复位,检测所述协处理器是否已经被成功复位;以及
响应于检测到所述协处理器已经被成功复位,重启与所述协处理器的命令通信。
CN2004800342662A 2003-09-26 2004-09-20 用于监测和复位协处理器的方法和装置 Active CN1882917B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/672,180 2003-09-26
US10/672,180 US8250412B2 (en) 2003-09-26 2003-09-26 Method and apparatus for monitoring and resetting a co-processor
PCT/IB2004/003089 WO2005031575A2 (en) 2003-09-26 2004-09-20 Method and apparatus for monitoring and resetting a co-processor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201110128814XA Division CN102193840A (zh) 2003-09-26 2004-09-20 用于监测和复位协处理器的方法和装置

Publications (2)

Publication Number Publication Date
CN1882917A CN1882917A (zh) 2006-12-20
CN1882917B true CN1882917B (zh) 2011-09-21

Family

ID=34393471

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201110128814XA Pending CN102193840A (zh) 2003-09-26 2004-09-20 用于监测和复位协处理器的方法和装置
CN2004800342662A Active CN1882917B (zh) 2003-09-26 2004-09-20 用于监测和复位协处理器的方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201110128814XA Pending CN102193840A (zh) 2003-09-26 2004-09-20 用于监测和复位协处理器的方法和装置

Country Status (5)

Country Link
US (1) US8250412B2 (zh)
EP (1) EP1668509B1 (zh)
JP (1) JP4887150B2 (zh)
CN (2) CN102193840A (zh)
WO (1) WO2005031575A2 (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040141461A1 (en) * 2003-01-22 2004-07-22 Zimmer Vincent J. Remote reset using a one-time pad
EP1687732A4 (en) * 2003-11-19 2008-11-19 Lucid Information Technology Ltd METHOD AND SYSTEM FOR A MULTIPLEXED 3D GRAPHIC PIPELINE VIA A PC BUS
US7961194B2 (en) * 2003-11-19 2011-06-14 Lucid Information Technology, Ltd. Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system
US20090027383A1 (en) * 2003-11-19 2009-01-29 Lucid Information Technology, Ltd. Computing system parallelizing the operation of multiple graphics processing pipelines (GPPLs) and supporting depth-less based image recomposition
US8085273B2 (en) 2003-11-19 2011-12-27 Lucid Information Technology, Ltd Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control
US20080094403A1 (en) * 2003-11-19 2008-04-24 Reuven Bakalash Computing system capable of parallelizing the operation graphics processing units (GPUs) supported on a CPU/GPU fusion-architecture chip and one or more external graphics cards, employing a software-implemented multi-mode parallel graphics rendering subsystem
US8497865B2 (en) 2006-12-31 2013-07-30 Lucid Information Technology, Ltd. Parallel graphics system employing multiple graphics processing pipelines with multiple graphics processing units (GPUS) and supporting an object division mode of parallel graphics processing using programmable pixel or vertex processing resources provided with the GPUS
US7812844B2 (en) * 2004-01-28 2010-10-12 Lucid Information Technology, Ltd. PC-based computing system employing a silicon chip having a routing unit and a control unit for parallelizing multiple GPU-driven pipeline cores according to the object division mode of parallel operation during the running of a graphics application
US20070291040A1 (en) * 2005-01-25 2007-12-20 Reuven Bakalash Multi-mode parallel graphics rendering system supporting dynamic profiling of graphics-based applications and automatic control of parallel modes of operation
US20080068389A1 (en) * 2003-11-19 2008-03-20 Reuven Bakalash Multi-mode parallel graphics rendering system (MMPGRS) embodied within a host computing system and employing the profiling of scenes in graphics-based applications
US7734797B2 (en) * 2004-03-29 2010-06-08 Marvell International Ltd. Inter-processor communication link with manageability port
US7412352B1 (en) * 2004-11-12 2008-08-12 Sun Microsystems, Inc. Computer diagnostic system and method
US20090096798A1 (en) * 2005-01-25 2009-04-16 Reuven Bakalash Graphics Processing and Display System Employing Multiple Graphics Cores on a Silicon Chip of Monolithic Construction
US7424644B2 (en) * 2005-03-01 2008-09-09 Microsoft Corporation Method and system for recovering data from a hung application
US7484131B2 (en) * 2005-09-13 2009-01-27 International Business Machines Corporation System and method for recovering from a hang condition in a data processing system
US7702955B2 (en) * 2005-12-28 2010-04-20 De Almeida Adrian S Method and apparatus for detecting a fault condition and restoration thereafter using user context information
US7788537B1 (en) * 2006-01-31 2010-08-31 Emc Corporation Techniques for collecting critical information from a memory dump
CN100449495C (zh) * 2006-08-25 2009-01-07 华为技术有限公司 一种辅助cpu对芯片进行驱动的系统及方法
US7917812B2 (en) * 2006-09-30 2011-03-29 Codman Neuro Sciences Sárl Resetting of multiple processors in an electronic device
US8677194B2 (en) * 2006-11-29 2014-03-18 Red Hat, Inc. Method and system for site configurable error reporting
US7966039B2 (en) * 2007-02-02 2011-06-21 Microsoft Corporation Bidirectional dynamic offloading of tasks between a host and a mobile device
US8432405B2 (en) * 2008-06-26 2013-04-30 Microsoft Corporation Dynamically transitioning between hardware-accelerated and software rendering
JP2010140361A (ja) * 2008-12-12 2010-06-24 Fujitsu Microelectronics Ltd コンピュータシステム及び異常検出回路
US8499288B2 (en) * 2010-05-19 2013-07-30 Microsoft Corporation User interface analysis management
WO2012066622A1 (ja) 2010-11-15 2012-05-24 富士通株式会社 アクセス方法、およびマルチコアプロセッサシステム
US8775607B2 (en) * 2010-12-10 2014-07-08 International Business Machines Corporation Identifying stray assets in a computing enviroment and responsively taking resolution actions
JP2014010739A (ja) * 2012-07-02 2014-01-20 Fujitsu Ltd システムの状態の復元についての情報処理方法、情報処理プログラム及び情報処理装置
KR101389976B1 (ko) * 2012-08-31 2014-05-07 주식회사 팬택 모바일 단말의 행 현상 관리 장치 및 방법
JP5971101B2 (ja) * 2012-12-06 2016-08-17 株式会社デンソー データ処理装置
JP6036578B2 (ja) 2013-03-08 2016-11-30 株式会社デンソー データ処理装置
US9817670B2 (en) 2013-12-13 2017-11-14 International Business Machines Corporation Framework to provide time bound execution of co-processor commands
CN103744760A (zh) * 2013-12-30 2014-04-23 哈尔滨工业大学 基于门级症状的硬件故障检测方法
US9275429B2 (en) 2014-02-17 2016-03-01 Qualcomm Incorporated Device hang detection and recovery
US10333865B2 (en) * 2015-08-21 2019-06-25 Cisco Technology, Inc. Transformation of peripheral component interconnect express compliant virtual devices in a network environment
KR20170079368A (ko) * 2015-12-30 2017-07-10 삼성전자주식회사 디버그 정보를 수집하기 위한 디버그 로직을 포함하는 cpu 시스템, 이를 포함하는 컴퓨팅 시스템 및 이의 디버깅 방법
US10606702B2 (en) * 2016-11-17 2020-03-31 Ricoh Company, Ltd. System, information processing apparatus, and method for rebooting a part corresponding to a cause identified
JP6781038B2 (ja) 2016-12-27 2020-11-04 日立オートモティブシステムズ株式会社 マイクロコンピュータ、論理回路
JP6831716B2 (ja) * 2017-03-01 2021-02-17 ルネサスエレクトロニクス株式会社 信号処理システム、装置、及びリセット制御方法
US10437659B2 (en) * 2017-03-03 2019-10-08 Silicon Laboratories, Inc. Built-in context error variables
US10649933B1 (en) 2019-04-22 2020-05-12 International Business Machines Corporation Select state detection and signal generation
US11263091B2 (en) * 2020-02-19 2022-03-01 International Business Machines Corporation Using inode entries to mirror data operations across data storage sites

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0953908A2 (en) * 1998-04-29 1999-11-03 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for time profiling multithreaded programs

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
JPH05210623A (ja) * 1992-01-31 1993-08-20 Fujitsu Ltd マイクロプロセッサ及びデータ処理装置
JPH05324597A (ja) * 1992-05-20 1993-12-07 Mutoh Ind Ltd マルチプロセッサシステムのリセット回路
JPH05342063A (ja) * 1992-06-11 1993-12-24 Kofu Nippon Denki Kk トレーサ回路
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
JPH07262032A (ja) * 1994-03-17 1995-10-13 Fujitsu Ltd 情報処理装置
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
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
US6886112B2 (en) * 2002-06-28 2005-04-26 Microsoft Corporation Recovering from device failure

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0953908A2 (en) * 1998-04-29 1999-11-03 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for time profiling multithreaded programs

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开平6-236299A 1994.08.23

Also Published As

Publication number Publication date
US8250412B2 (en) 2012-08-21
WO2005031575A2 (en) 2005-04-07
EP1668509B1 (en) 2012-07-18
EP1668509A2 (en) 2006-06-14
CN1882917A (zh) 2006-12-20
US20050081115A1 (en) 2005-04-14
WO2005031575A3 (en) 2005-05-19
JP4887150B2 (ja) 2012-02-29
CN102193840A (zh) 2011-09-21
JP2007507034A (ja) 2007-03-22

Similar Documents

Publication Publication Date Title
CN1882917B (zh) 用于监测和复位协处理器的方法和装置
CN106293979B (zh) 检测进程无响应的方法和装置
CN102099811B (zh) 用于离线虚拟环境中的或与之相关的改进的方法和系统
KR101332815B1 (ko) 휴대용 단말을 위한 재부팅 처리 장치 및 방법
JP4077815B2 (ja) 発明者JohnW.Curryによる、オペレーティングシステムと共に使用される改良された診断モニタおよびその方法
US5675800A (en) Method and apparatus for remotely booting a computer system
US5630049A (en) Method and apparatus for testing software on a computer network
US7428663B2 (en) Electronic device diagnostic methods and systems
JP4222370B2 (ja) デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
US7370238B2 (en) System, method and software for isolating dual-channel memory during diagnostics
EP2175372B1 (en) Computer apparatus and processor diagnostic method
US6725396B2 (en) Identifying field replaceable units responsible for faults detected with processor timeouts utilizing IPL boot progress indicator status
JP2004259258A (ja) 改良された診断実行器およびその方法
CN102314388A (zh) 支持智能型平台管理接口的服务器的测试方法
US20120042215A1 (en) Request processing system provided with multi-core processor
CN107111595B (zh) 用于检测早期引导错误的方法、设备及系统
US6550019B1 (en) Method and apparatus for problem identification during initial program load in a multiprocessor system
US20050268081A1 (en) Booting system and/or method for initializing peripherals
CN112506745B (zh) 内存温度读取方法、装置及计算机可读存储介质
KR100633827B1 (ko) 멀티 노드 컴퓨터 시스템의 목록화를 위한 방법 및 장치
CN107783844A (zh) 一种计算机程序运行异常检测方法、装置和介质
CN114138644A (zh) Bmc调试方法及监控方法、系统、装置、设备、介质
CN106021024B (zh) 一种用户终端停止响应提示方法及用户终端
JP2004302731A (ja) 情報処理装置および障害診断方法
CN115827355A (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
C14 Grant of patent or utility model
GR01 Patent grant