CN104246710A - 高可用性处理器中的可重新配置修复模式 - Google Patents

高可用性处理器中的可重新配置修复模式 Download PDF

Info

Publication number
CN104246710A
CN104246710A CN201380020281.0A CN201380020281A CN104246710A CN 104246710 A CN104246710 A CN 104246710A CN 201380020281 A CN201380020281 A CN 201380020281A CN 104246710 A CN104246710 A CN 104246710A
Authority
CN
China
Prior art keywords
repair
resource
instruction
check point
software
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.)
Granted
Application number
CN201380020281.0A
Other languages
English (en)
Other versions
CN104246710B (zh
Inventor
C.A.克里高斯基
B.R.普拉斯基
C-L.K.舒
S.卡洛
F.Y.布萨巴
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104246710A publication Critical patent/CN104246710A/zh
Application granted granted Critical
Publication of CN104246710B publication Critical patent/CN104246710B/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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • 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/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • 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/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • 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/142Reconfiguring to eliminate the error
    • G06F11/1428Reconfiguring to eliminate the error with loss of hardware functionality
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

进行错误修复的计算机程序产品被配置成执行包括由处理器创建修复检验点的方法。根据软件修复检验点的创建使处理器动态地切换到操作的不可修复处理模式。操作的不可修复处理模式是断电或为指令处理改用一子组硬件错误修复资源的模式。在操作的不可修复处理模式期间确定需要新软件修复检验点。根据需要新软件修复检验点的确定,使处理器动态地切换到操作的可修复处理模式。操作的可修复处理模式是使包括该子组中的至少一种硬件错误修复资源的硬件错误修复资源用于硬件错误修复操作的模式。

Description

高可用性处理器中的可重新配置修复模式
技术领域
本发明涉及高可用性处理器中的错误修复,更具体地说,本发明的示范性实施例涉及利用操作的可修复和不可修复模式两者为高可用性处理器进行指令处理的错误修复系统和方法。
背景技术
高可用性计算机系统都需要硬件差错检测和修复所检测差错和防止任何不正确结果的方法两者。在支持差错修复的传统微处理器中,大多数差错修复操作都是硬件特有的并集成在微处理器本身内。因此,在微处理器上执行的软件在缺乏由微处理器硬件内的瞬时硬件差错引起的中断或信令的时候可以不中断地运行。
这些在微处理器中实现的传统修复机制在保持来自检测到差错之前处理的任何时间上较老指令的结果的同时,通常放弃通过出错电路处理或可能处理的指令。为了鉴别指令的结果是否可能出错,需要缓存和/或保存结果,直到在无错提交这些指令(以及它们的结果)之前,对照任何可能出错状况检验了相关结果。如果检测到出错状况,则需要重算这些可能出错结果,并放弃和以后重发任何受影响指令。
为了取得上述能力,需要额外流水线资源来缓存指令结果,直到未检测到差错。另外,因为需要从好总体结构状态收回指令,所以需要保持(例如,通过检验点))适当状态(总体结构以及有时非总体结构)。这样的缓存、维护、和检验点设置增加了所需的总电路或减少了支持差错修复的传统微处理器中可用于指令处理的净可用资源。
发明内容
按照本发明的示范性实施例,提供了进行差错修复的计算机程序产品、系统、和方法。由处理器创建软件修复检验点。根据软件修复检验点的创建使处理器动态地切换到操作的不可修复处理模式。操作的不可修复处理模式是将一子组硬件错误修复资源断电或为指令处理改用(re-purpose)的模式。在操作的不可修复处理模式期间确定需要新软件修复检验点。根据需要新软件修复检验点的确定,使处理器动态地切换到操作的可修复处理模式。操作的可修复处理模式是使包括该子组中的至少一种硬件差错修复资源的硬件差错修复资源用于硬件差错修复操作的模式。
通过本发明的技术实现了另外的特征和优点。本发明的其它实施例和方面将在本文中作详细描述,并且被认为是要求保护的发明的一部分。为了更好地理解具有这些优点和特征的发明,请参照如下描述以及附图。
附图说明
作为本说明书的结论,在权利要求书中具体指出和明确要求保护视为本发明的主题,本发明的前面和其它特征和优点可以从结合附图所作的如下详细描述中明显看出,在附图中:
图1例示了按照本发明的示范性实施例的在可修复模式下的高可用性计算机处理器的图形;
图2例示了按照本发明的示范性实施例的在不可修复模式下的高可用性计算机处理器的图形;
图3例示了按照本发明的示范性实施例的支持不可修复模式的高可用性计算机处理器中处理指令的方法的流程图;
图4例示了按照本发明的示范性实施例的计算机可用存储介质;以及
图5例示了按照本发明的示范性实施例的计算机装置的图形。
具体实施方式
按照本发明的示范性实施例,提供了通过动态改变可用于处理器的差错修复系统增加可用于指令执行的资源、在高可用性处理器上处理指令的高可用性计算机处理器和方法。例如,按照至少一个示范性实施例,高可用性计算机处理器可以动态地从可完全修复模式切换到可以为其它操作释放通常用于差错/错误修复的资源(例如,寄存器、缓冲器等)的不可修复模式的一种形式。因此,当在不可修复模式下操作时,在仍然为如通过软件创建检验点而不是昂贵的硬件特有检验点实现的可接受水平的差错修复提供保证的同时,与其它计算机处理器(例如,只有可修复模式的处理器)相比,释放的资源可以使计算吞吐量增大。
例如,硬件机制可以通过软件来实现,以便处理器动态地将自身配置成在两种模式的某一种下执行。在处在操作的不可修复模式下的时候,软件可以提供一些粗粒度修复机制,并且可以使用基于软件的检验点方案修复差错,从而使差错修复得到相同度量,同时还拥有来自未使用硬件修复资源的释放资源。因此,应用(或代码段)可以指示处理器进入不可修复模式,并且只有当检测到差错时才得到通知。否则,处理器可以仍然到(或切换回到)它的可修复模式。
不可修复处理器状态具有多种好处。可以为生产性工作分配保存预先知道好检验点状态所需的额外资源。也可以减少任何瞬时缓存状态。例如,如果将物理寄存器池的一部分分配给硬件检验点设置,则这些寄存器现在可以取而代之地用于推测处理。更进一步,可以使另外的推测处理在校正了所有错误和取得检验点之前提前完成。可以在通过在不可修复模式下不再需要的硬件进行检验点设置之前提交结果。此外,一旦软件实现错误修复操作需要新软件检验点,则可以指引处理器切换回到操作的可修复模式,以便在软件创建新检验点的同时用硬件促进错误修复。随后,处理器可以返回到具有新释放资源的不可修复模式。
按照本发明的另外示范性实施例,提供了通过动态改变可用于处理器的差错修复系统降低功耗、在高可用性处理器上处理指令的高可用性计算机处理器和方法。例如,按照至少一个示范性实施例,高可用性计算机处理器可以动态地从可完全修复模式切换到可以为其它操作释放和断电通常用于差错/错误修复的资源(例如,寄存器、缓冲器等)的不可修复模式的一种形式。因此,当在不可修复模式下操作时,在仍然为如通过软件创建检验点而不是昂贵的硬件特有检验点实现的可接受水平的差错修复提供保证的同时,断电资源对总功耗没有贡献。
更进一步,上述的示范性实施例可以以组合形式实现,以便使释放资源的一部分断电,而使释放资源的另一个部分被改用。这样,与现有技术对照实现了计算机处理的多种好处的多种操作状态可以变得显而易见。
现在转到图1,其中例示了按照示范性实施例的高可用性计算机处理器。如图所示,处理器100包括可以划分成多个不同高速缓存级别或指名的高速缓存101。处理器100进一步包括配置成从高速缓存101中取出指令的指令取出电路102。处理器100进一步包括配置成从指令取出电路102接收取出指令的指令解码电路103。处理器100进一步包括配置成分派通过电路103解码的指令的指令分派电路104。根据分派,发出和通过指令执行部分105执行指令,指令执行部分105被进一步配置成从高速缓存101中取出相关数据。假设无序指令执行和支持的详细管理主要在电路105内管理。
因此,如上所述,处理器100包括以预期方式起作用的相对常用和一般部分。这些部分可以按照示范性实施例的任何所希望实现,针对精简或复杂(例如,RISC或CISC)指令集或完全专用指令集来配置。因此,处理器100不应该局限于任何特定计算机处理器,而应该可同等地应用于包括有点相似或等效组件的任何计算机处理器。
返回到图1,处理器100进一步包括与高速缓存101和指令执行部分105通信的错误修复资源106。错误修复资源106可以包括包含队列、缓冲器、线程处理单元、寄存器、和任何其它适当组件的差错修复组件。错误修复资源106可以处理,创建和存储指令和结果以促进错误修复。更进一步,错误修复资源106可以检测硬件差错,捕获检验点,以及根据差错的检测进行检验点重试。
返回到图1,处理器100进一步包括通过信道108与指令执行部分105和错误修复资源106通信的通用资源107。通用资源可以包括通用寄存器、浮点寄存器、专用寄存器、或以受控方式处理和存储指令结果的任何其它适当组件。
尽管错误修复资源106和通用资源107被例示成单独组件,但可以将这些资源分配给其它组件101,102,103,104,105、和未明确例示的其它处理器组件。更进一步,可以使用错误修复资源106和通用资源107两者在处理器100上执行多个线程。
要注意的是,尽管错误修复资源106和通用资源107被配置成提供不同功能,但本文组织的相关组件包含一般相同或相似组件的至少一部分。例如,寄存器和缓冲器两者都可以包括在错误修复资源106和通用资源107中。因此,按照本发明的示范性实施例,可以释放、断电或改用错误修复资源的一部分,以便在至少一种新操作模式下与通用资源联合起作用。在图2中例示了这样的情况。
如图2所示,错误修复资源106的一部分被释放和改用成资源206B,以便依照通用资源107起作用。可替代地,可以断电资源206B的一部分或全部以降低功耗。进一步,错误修复资源106的其余部分可以仍然专用于错误修复,以及被进一步配置成释放,断电,改用或重整资源206B,以便在处理器100内起错误修复资源或通用资源的作用。然后,由此得出,如果为用在指令处理中而释放了另外的资源,则处理器100可以以比所有错误修复资源106专用于管理硬件差错修复时快的速率操作。此外,如果将另外资源的一部分断电,则可以实现节电。要注意的是,处理器100仍然检测硬件差错,并将它们报告给操作系统或应用代码。但是,在硬件中禁用,取而代之,通过软件实现检验点捕获和重试机制。
在这种配置中,处理器改变它的基本操作,不分配节省检验点的资源,也不推迟可能必须等待到检验点得到创建和核实的指令执行或完成。这样的配置改变可以通过修改有先后次序的典型指令分派/发出/执行规则、存储更新排序、和寄存器映射算法来完成。在这样的不可修复模式操作下,可以实现许多细粒度指令处理性能提高和节电。
更进一步,按照本发明的示范性实施例,提供了在保持跨软件和硬件地分配差错修复义务以便更有效利用系统资源的有用系统级错误修复机制的同时计算效率、为指令处理提供模板的指令处理的方法。
转到图3,其中例示了高可用性计算机处理器中指令处理的方法。该方法300包括在方块301中创建软件检验点。创建软件检验点可以包括创建为高可用性处理器执行的指令实现软件错误修复和硬件错误修复两者的基于软件错误修复检验点。
根据检验点的创建,方法300包括在方块302中指引高可用性计算机处理器进入或开始不可修复模式下的处理。因此,处理器将自身切换到不可修复模式,以达到额外性能或节电。指引处理器可以包括将像“开始不可修复模式”那样的指令插入软件程序中。该指令可以具体化成简单命令、操作代码、或如果在正常处理器操作期间取出或解码,则指引处理器进入操作的不可修复模式的指令。这样的指令可以具体化成具有存储在高速缓存或存储器的特定部分中的数据值,一旦作为处理指令的一部分访问,该数据值就指引错误修复资源106释放,断电,或改用错误修复资源106的至少一部分。可替代地,可以利用可通过软件控制的一组位标志或其它附加指示将指令具体化,以便更直接控制资源释放。一旦执行了指令,处理器就居先对所有指令设置检验点,并将自身切换到新操作政策,以便在关注性能或节电模式下操作。并且不再支持硬件检验点修复。此后,处理器100可以在方块303中使用新释放资源206B和/或通用资源107处理指令。可替代地或组合地,处理器可以在断电资源206b的至少一部分的同时利用通用资源107来处理指令。如果在方块304中通过错误修复资源206A检测到差错,则可以在方块307中设置标志、数值、或其它通知手段,以及在方块308中使用其软件检验点重试指令。该通知可以通过中断当之前指令流来完成,处理器可以将特殊中断布置到软件代码中。如果不可应用或不希望有中断管理,则处理器可替代地可以跳转到预定指令地址。这样的指令地址可以是存储体中的固定地点,或可以专用作,例如,“开始不可修复模式”指令的操作数地址。否则,可以在不可修复模式下继续处理,直到需要新软件检验点。这种确定是针对基于软件的错误修复作出的(例如,参见方块305)。
应当懂得,虽然在不可修复模式下操作,但要挨着检验点设置的分派/发出规则通常需要(例如,如果在可修复模式下执行)的指令现在可以在较早时间执行。更进一步,现在可以为指令处理分配已经需要的和为基于硬件检验点重试保留的物理寄存器池(一般寄存器/GPR、浮点寄存器/FPR、条件代码寄存器/CCR等)资源。更进一步,可以不等待指令检验点设置地进行由存储更新指令(例如,像在简单存储指令中那样)引起的高速缓存更新。因此,可以实现提高的处理效率。
此后,如果软件准备取如在方块305中确定的另一个检验点,则可以发出另一条特殊指令以便在方块306中指引处理器进入或开始可修复模式下的处理。因此,处理器将自身切换到可修复模式,以便再次开始可能硬件特有差错修复的支持。指引处理器可以包括发出像“结束不可修复模式”那样的特殊指令。该指令可以具体化成简单命令、操作代码、或如果在正常处理器操作期间取出或解码,则指引处理器进入操作的可修复模式的指令。这样的指令可以具体化成具有存储在高速缓存或存储器的特定部分中的数据值,一旦作为处理指令的一部分访问,该数据值就指引改用和/或断电资源206B用作错误修复资源。可替代地,可以利用可通过软件控制的一组位标志或其它附加指示将指令具体化,以便更直接控制资源释放。一旦执行了特殊指令,处理器就可以检验完成了所有先之前指令,然后将自身切换回到可修复模式;并且如上所述再次支持硬件检验点修复。
如本领域的普通技术人员所懂得,本发明的各个方面可以具体化成系统、方法和计算机程序产品(例如,如图4所例示)。更进一步,本发明的各个方面可以采取具体化在一种或多种计算机可读介质402中的计算机程序产品400的形式,计算机可读介质402含有具体化在上面的计算机可读程序代码404。
可以利用一种或多种计算机可读介质的任何组合。该计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是,例如,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或设备,或前者的任何适当组合。计算机可读存储介质的更具体例子(非穷举列表)包括如下:具有一条或多条导线的电连接、便携式计算机软盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或前者的任何适当组合。在本文件的背景下,计算机可读存储介质可以是可以包含或存储程序的任何有形介质,该程序可以被指令执行系统、装置或设备使用或者与其结合使用。
计算机可读信号介质可以包括,例如,在基带中或者作为载波一部分、含有具体化在其中的计算机可读程序代码的传播数据信号。这样的传播数据信号可以采取多种形式的任何一种,包括,但不限于,电磁信号、光信号或它们的任何适当组合。计算机可读信号介质可以是非计算机可读存储介质、和可以传送,传播或传输程序的任何计算机可读介质,该程序可以被指令执行系统、装置或设备使用或者与其结合使用。
具体化在计算机可读介质上的程序代码可以使用任何适当介质发送,包括,但不限于,无线、有线、光缆、RF等,或前者的任何适当组合。
进行本发明的各个方面的操作的计算机程序代码可以以一种或多种编程语言的任何组合来编写,该编程语言包括像Java、Smalltalk、C++等那样的面向对象编程语言、和像“C”编程语言或类似编程语言那样的传统过程式编程语言。程序代码可以完全在用户计算机上执行、部分在用户计算机上执行、作为一个独立软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形下,远程计算机可以通过任何类型的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。
上面参考按照本发明实施例的方法、装置(系统)和计算机程序产品的例示性流程图和/或框图描述了本发明的各个方面。应当明白,例示性流程图和/或框图的每个方块以及例示性流程图和/或框图中的各个方块的组合都可以通过计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而形成一台机器,使得经由计算机或其它可编程数据处理装置的处理器执行的指令形成实现在流程图和/或框图的一个或多个方块中规定的功能/动作的部件。
这些计算机程序指令也可以存储在计算机可读介质中,该计算机可读介质可以指引计算机装置(例如,如图5所例示)、其它可编程数据处理装置、或其它设备以特定方式起作用,使得存储在计算机可读介质中的指令形成包括实现在流程图和/或框图的一个或多个方块中规定的功能/动作的指令的制品。
也可以将计算机程序指令装载到计算机、其它可编程数据处理装置、或其它设备上,使一系列操作步骤在计算机、其它可编程数据处理装置、或其它设备上得到执行,形成计算机实现过程,以便在计算机或其它可编程装置上执行的指令提供实现在流程图和/或框图中的一个或多个方块中规定的功能/动作的过程。
如上所述,上文所述的方法可以通过计算机系统或装置来实现。例如,图5例示了按照一个示范性实施例的计算机装置。因此,本文所述的部分或全部方法可以在计算机系统500的处理器502中作为指令来执行。计算机系统500包含用于存储指令和信息的存储器501、用于计算机通信的输入设备503、和显示设备504。因此,本发明可以用软件实现成,例如,与计算机系统500有点类似的计算机系统上的任何适当计算机程序。
图中的流程图和框图例示了按照本发明的各种实施例的系统、方法和计算机程序产品的可能实现的总体结构、功能和操作。在这一点上,流程图或框图中的每个方块可以代表一个模块、程序段或代码的一部分,该模块、程序段或代码的一部分包含一条或多条用于实现规定的逻辑功能的可执行指令。还应当注意到,在一些可替代实现中,标注在方块中的功能也可以以不同于标注在附图中的次序发生。例如,取决于所涉及的功能,两个相继示出的方块实际上可以基本同时地执行,或这些方块有时也可以按相反的次序执行。还要注意的是,框图和/或例示性流程图中的每个方块、以及框图和/或例示性流程图中的方块的组合可以用执行规定的功能或动作的专用基于硬件系统,或专用硬件与计算机指令的组合体来实现。
本文所使用的术语只是为了描述具体实施例的目的而无意限制本发明。如本文所使用,单数形式“一个”、“一种”和“该”也有意包括复数形式,除非上下文另有明确指示。还要明白,术语“包含”当用在本说明书中,规定存在所述的特征、整数、步骤、操作、元件、和/或组件,但不排除存在或附加一个或多个其他特征、整数、步骤、操作、元件、组件、和/或它们的群体。
所附权利要求书中的所有部件或步骤以及功能元件的相应结构、材料、动作以及等价物旨在包括如具体要求保护结合其他所要求保护的元件执行功能的任何结构、材料或动作。展示本发明的描述是为了例示和描述的目的,但不是穷尽性的或使本发明限于所公开的形式。许多修改例和变体对本领域普通技术人员来说是显而易见的,不偏离本发明的范围和精神。选择和描述实施例是为了最佳地说明本发明的原理和实际应用,并使本领域其他普通技术人员能够针对各种实施例以及如适用于设想的特定用途的各种修改例理解本发明。
本文描绘的流程图仅仅是一个例子。可以不偏离本发明的精神地存在这个图形或本文所述的步骤(或操作)的许多变体。例如,可以以不同次序执行这些步骤,或可以添加,删除,和/或修改这些步骤。所有这些变体都被认为是所要求保护的发明的一部分。
虽然已经描述了本发明的优选实施例,但要明白的是,无论现在还是将来,本领域的普通技术人员都可以作出在所附权利要求的范围之内的改进和改善。这个权利要求书应该理解为保持对首先描述的本发明的适当保护。

Claims (20)

1.一种用于错误修复的计算机程序产品,该计算机程序产品包含:
处理电路可读和存储指令的有形存储介质,该指令由该处理电路执行,以便执行包含如下步骤的方法:
由处理器创建软件修复检验点;
由处理器根据软件修复检验点的创建动态地切换到操作的不可修复处理模式,该操作的不可修复处理模式是将一子组硬件错误修复资源断电或为指令处理改用的模式;
在该操作的不可修复处理模式期间确定需要新软件修复检验点;以及
根据需要新软件修复检验点的确定,由处理器动态地切换到操作的可修复处理模式,该操作的可修复处理模式是使包括该子组中的至少一种硬件错误修复资源的硬件错误修复资源用于硬件错误修复操作的模式。
2.如权利要求1所述的计算机程序产品,其中该方法进一步包含:
通过该硬件错误修复资源确定出现了瞬时差错;以及
将该瞬时差错通知软件。
3.如权利要求2所述的计算机程序产品,其中该方法进一步包含:
根据出现了瞬时差错的确定,根据软件修复检验点重试之前指令。
4.如权利要求1所述的计算机程序产品,其中该方法进一步包含接收专用指令,以及动态地切换到操作的不可修复处理模式进一步基于专用指令的接收。
5.如权利要求4所述的计算机程序产品,其中该专用指令是该硬件错误修复资源可检测的操作代码。
6.如权利要求4所述的计算机程序产品,其中该专用指令将不可修复模式标志值提交给通过该硬件错误修复资源监视的存储器地址空间的保留部分。
7.如权利要求1所述的计算机程序产品,其中该方法进一步包含接收第二专用指令,以及需要新软件修复检验点的确定基于第二专用指令的接收。
8.一种用于错误修复的方法,包含:
由处理器创建软件修复检验点;
由处理器根据软件修复检验点的创建动态地切换到操作的不可修复处理模式,该操作的不可修复处理模式是将一子组硬件错误修复资源断电或为指令处理改用的模式;
在该操作的不可修复处理模式期间确定需要新软件修复检验点;以及
根据需要新软件修复检验点的确定,由处理器动态地切换到操作的可修复处理模式,该操作的可修复处理模式是使包括该子组中的至少一种硬件错误修复资源的硬件错误修复资源用于硬件错误修复操作的模式。
9.如权利要求8所述的方法,包含:
通过该硬件错误修复资源确定出现了瞬时差错;以及
将该瞬时差错通知软件。
10.如权利要求9所述的方法,进一步包含:
根据出现了瞬时差错的确定,根据软件修复检验点重试之前指令。
11.如权利要求8所述的方法,进一步包含接收专用指令,其中动态地切换到操作的不可修复处理模式进一步基于专用指令的接收。
12.如权利要求11所述的方法,其中该专用指令是该硬件错误修复资源可检测的操作代码。
13.如权利要求11所述的方法,其中该专用指令将不可修复模式标志值提交给通过该硬件错误修复资源监视的存储器地址空间的保留部分。
14.如权利要求11所述的方法,进一步包含接收第二专用指令,其中需要新软件修复检验点的确定基于第二专用指令的接收。
15.一种利用可重新配置修复模式的系统,该系统包含:
处理器,其包含配置成进行基于硬件错误修复的硬件错误修复资源、和配置成进行指令处理的通用资源,该系统被配置成执行包含如下步骤的方法:
由该处理器创建软件修复检验点;
由该处理器根据软件修复检验点的创建动态地切换到操作的不可修复处理模式,该操作的不可修复处理模式是将一子组硬件错误修复资源断电或为指令处理改用的模式;
在该操作的不可修复处理模式期间确定需要新软件修复检验点;以及
根据需要新软件修复检验点的确定,动态地切换到操作的可修复处理模式,该操作的可修复处理模式是使包括该子组中的至少一种硬件错误修复资源的硬件错误修复资源用于硬件错误修复操作的模式。
16.如权利要求15所述的系统,其中该方法进一步包含:
通过该硬件错误修复资源确定出现了瞬时差错;以及
将该瞬时差错通知软件。
17.如权利要求16所述的系统,其中该方法进一步包含:
根据出现了瞬时差错的确定,根据软件修复检验点重试之前指令。
18.如权利要求15所述的系统,其中该方法进一步包含接收专用指令,以及动态地切换到操作的不可修复处理模式进一步基于专用指令的接收。
19.如权利要求18所述的系统,其中该专用指令是该硬件错误修复资源可检测的操作代码。
20.如权利要求16所述的系统,其中该方法进一步包含接收第二专用指令,以及需要新软件修复检验点的确定基于第二专用指令的接收。
CN201380020281.0A 2012-04-16 2013-03-08 用于错误修复的方法和系统 Expired - Fee Related CN104246710B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/447,554 2012-04-16
US13/447,554 US8954797B2 (en) 2012-04-16 2012-04-16 Reconfigurable recovery modes in high availability processors
PCT/EP2013/054696 WO2013156201A1 (en) 2012-04-16 2013-03-08 Reconfigurable recovery modes in high availability processors

Publications (2)

Publication Number Publication Date
CN104246710A true CN104246710A (zh) 2014-12-24
CN104246710B CN104246710B (zh) 2017-10-20

Family

ID=47843295

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380020281.0A Expired - Fee Related CN104246710B (zh) 2012-04-16 2013-03-08 用于错误修复的方法和系统

Country Status (5)

Country Link
US (2) US8954797B2 (zh)
CN (1) CN104246710B (zh)
DE (1) DE112013002054T5 (zh)
GB (1) GB2514700B (zh)
WO (1) WO2013156201A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106032619A (zh) * 2015-03-20 2016-10-19 无锡飞翎电子有限公司 洗衣机通信方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384020B2 (en) 2013-01-18 2016-07-05 Unisys Corporation Domain scripting language framework for service and system integration
US20140208169A1 (en) * 2013-01-18 2014-07-24 Unisys Corporation Domain scripting language framework for service and system integration
US9588845B2 (en) * 2014-02-10 2017-03-07 Via Alliance Semiconductor Co., Ltd. Processor that recovers from excessive approximate computing error
US10235232B2 (en) 2014-02-10 2019-03-19 Via Alliance Semiconductor Co., Ltd Processor with approximate computing execution unit that includes an approximation control register having an approximation mode flag, an approximation amount, and an error threshold, where the approximation control register is writable by an instruction set instruction
CN108270832B (zh) * 2016-12-30 2020-11-06 华为技术有限公司 一种故障重放方法和装置
US10997027B2 (en) * 2017-12-21 2021-05-04 Arizona Board Of Regents On Behalf Of Arizona State University Lightweight checkpoint technique for resilience against soft errors
US11449380B2 (en) 2018-06-06 2022-09-20 Arizona Board Of Regents On Behalf Of Arizona State University Method for detecting and recovery from soft errors in a computing device
US10922203B1 (en) * 2018-09-21 2021-02-16 Nvidia Corporation Fault injection architecture for resilient GPU computing
US10884845B2 (en) * 2018-11-08 2021-01-05 International Business Machines Corporation Increasing processing capacity of processor cores during initial program load processing
US10884818B2 (en) 2018-11-08 2021-01-05 International Business Machines Corporation Increasing processing capacity of virtual machines
US10990434B2 (en) 2019-02-05 2021-04-27 International Business Machines Corporation Increasing processing capacity of virtual machines for an abnormal event
US11327767B2 (en) 2019-04-05 2022-05-10 International Business Machines Corporation Increasing resources for partition to compensate for input/output (I/O) recovery event

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09204205A (ja) * 1996-01-26 1997-08-05 Toshiba Corp プログラム制御システム
CN101196847A (zh) * 2006-12-08 2008-06-11 深圳艾科创新微电子有限公司 Cpu程序存储器自动维护的方法及硬件单元结构
US8082469B2 (en) * 2008-08-07 2011-12-20 Hitachi, Ltd. Virtual computer system, error recovery method in virtual computer system, and virtual computer control program

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5692121A (en) 1995-04-14 1997-11-25 International Business Machines Corporation Recovery unit for mirrored processors
US6058491A (en) 1997-09-15 2000-05-02 International Business Machines Corporation Method and system for fault-handling to improve reliability of a data-processing system
US6247118B1 (en) 1998-06-05 2001-06-12 Mcdonnell Douglas Corporation Systems and methods for transient error recovery in reduced instruction set computer processors via instruction retry
US7478276B2 (en) 2005-02-10 2009-01-13 International Business Machines Corporation Method for checkpointing instruction groups with out-of-order floating point instructions in a multi-threaded processor
US7200742B2 (en) * 2005-02-10 2007-04-03 International Business Machines Corporation System and method for creating precise exceptions
US7467325B2 (en) 2005-02-10 2008-12-16 International Business Machines Corporation Processor instruction retry recovery
US20080263324A1 (en) 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US8108714B2 (en) 2007-03-12 2012-01-31 International Business Machines Corporation Method and system for soft error recovery during processor execution
US8078851B2 (en) 2008-12-18 2011-12-13 Faraday Technology Corp. Processor and method for recovering global history shift register and return address stack thereof by determining a removal range of a branch recovery table
US8140905B2 (en) 2010-02-05 2012-03-20 International Business Machines Corporation Incremental problem determination and resolution in cloud environments
US20120221884A1 (en) * 2011-02-28 2012-08-30 Carter Nicholas P Error management across hardware and software layers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09204205A (ja) * 1996-01-26 1997-08-05 Toshiba Corp プログラム制御システム
CN101196847A (zh) * 2006-12-08 2008-06-11 深圳艾科创新微电子有限公司 Cpu程序存储器自动维护的方法及硬件单元结构
US8082469B2 (en) * 2008-08-07 2011-12-20 Hitachi, Ltd. Virtual computer system, error recovery method in virtual computer system, and virtual computer control program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106032619A (zh) * 2015-03-20 2016-10-19 无锡飞翎电子有限公司 洗衣机通信方法
CN106032619B (zh) * 2015-03-20 2018-05-01 无锡飞翎电子有限公司 洗衣机通信方法

Also Published As

Publication number Publication date
GB2514700A (en) 2014-12-03
US20130275806A1 (en) 2013-10-17
GB201414521D0 (en) 2014-10-01
US20130275801A1 (en) 2013-10-17
DE112013002054T5 (de) 2015-03-05
US8954797B2 (en) 2015-02-10
GB2514700B (en) 2015-04-08
CN104246710B (zh) 2017-10-20
WO2013156201A1 (en) 2013-10-24
US9043641B2 (en) 2015-05-26

Similar Documents

Publication Publication Date Title
CN104246710A (zh) 高可用性处理器中的可重新配置修复模式
CN105573660B (zh) 用于改善分簇磁盘阵列的性能的方法和装置
US8645669B2 (en) Cracking destructively overlapping operands in variable length instructions
CN103810035B (zh) 智能上下文管理
CN103842959A (zh) 在计算机系统中维持操作数活性信息
US20160070574A1 (en) Register files for storing data operated on by instructions of multiple widths
TWI533201B (zh) 縮減交易回復的快取控制
CN108845830A (zh) 一种一对数装载指令的执行方法
US9141551B2 (en) Specific prefetch algorithm for a chip having a parent core and a scout core
US20140331031A1 (en) Reconfigurable processor having constant storage register
CN106537329B (zh) 用于为多线程执行锁保护处理操作的数据处理装置及方法
US20130159679A1 (en) Providing Hint Register Storage For A Processor
CN103365628B (zh) 用于执行预解码时优化的指令的方法和系统
CN103116511A (zh) 基于单个flash存储芯片的双启动方法
CN105393212A (zh) 使用锁定机制的高效任务调度
US20160011877A1 (en) Managing instruction order in a processor pipeline
JP5104861B2 (ja) 演算処理装置
CN108920190A (zh) 用于确定从其恢复指令执行的恢复点的装置和方法
US10102003B2 (en) Intelligent context management
JPWO2008155804A1 (ja) 同時マルチスレッドの命令完了制御装置
CN107436752B (zh) 异常现场恢复方法、装置及计算机可读存储介质
US10761885B2 (en) Apparatus and method of executing thread groups
CN101176067A (zh) 基于专用处理单元的使用动态修改系统参数
JP2004110796A (ja) 高クロック・レートによる二層スレッド状態マルチスレッド化サポートを実施する方法および装置
CN105980980B (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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171020

Termination date: 20210308

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