首页> 中国专利> 避免硬件事件预定序列触发的计算机处理器中的处理缺陷

避免硬件事件预定序列触发的计算机处理器中的处理缺陷

摘要

一种用于避免硬件事件的预定序列触发的计算机处理器中的处理缺陷的系统、方法和计算机程序产品。该系统可以包括检测单元和上电复位单元。检测单元检测硬件事件的预定序列将在计算机处理器处出现。上电复位单元响应于检测到硬件事件的序列而将计算机处理器初始化为在计算机存储器中存储的状态。

著录项

  • 公开/公告号CN103870388A

    专利类型发明专利

  • 公开/公告日2014-06-18

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201310546152.7

  • 发明设计人 M·C·杜龙;M·D·麦克劳克林;

    申请日2013-11-06

  • 分类号G06F11/36(20060101);G06F11/07(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人王茂华;黄倩

  • 地址 美国纽约阿芒克

  • 入库时间 2024-02-20 00:20:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-01-18

    授权

    授权

  • 2014-07-16

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20131106

    实质审查的生效

  • 2014-06-18

    公开

    公开

说明书

技术领域

本发明涉及计算机处理器性能,并且更具体地涉及一种用于在 计算机处理器中的避免处理缺陷的系统和方法。

背景技术

现代微处理器的功能性增加已经引起更复杂的处理器设计和 架构特征。增加的复杂性可能使微处理器更易受设计缺陷影响。出 于经济和制造原因,这样的设计缺陷不能都通过硬件来修复,因此 希望构建可以通过内置功能避免缺陷的微处理器。现有技术解决方 案已经无法完全解决如下问题,即,避免在处理器上引起处理缺陷 的情况。

发明内容

因而,本发明的一个示例方面是一种避免在由硬件事件的预定 序列触发的计算机处理器中的处理缺陷的方法。该方法包括检测步 骤,用于检测硬件事件的预定序列将在计算机处理器处出现。执行 步骤由计算机处理器执行第一上电复位过程。计算机处理器响应于 检测到硬件事件序列来初始化为在计算机存储器中存储的第一状 态。

本发明的另一示例是一种用于避免在由硬件事件的预定序列 触发的计算机处理器中的处理缺陷的系统。该系统包括检测单元和 上电复位单元。检测单元确定硬件事件的预定序列将在计算机处理 器处出现。上电复位单元在计算机处理器维持功率之时响应于检测 到硬件事件序列而将计算机处理器初始化为在计算机存储器中存储 的第一状态。

本发明的又一示例是一种用于避免在由硬件事件的预定序列 触发的计算机处理器中的处理缺陷的计算机程序产品。该计算机程 序产品包括:计算机可读程序代码,被配置用于检测硬件事件的预 定序列将在计算机处理器处出现;并且计算机处理器执行第一上电 复位过程,使得计算机处理器响应于检测到硬件事件的序列来初始 化为在计算机存储器中存储的第一状态。

附图说明

在说明书末尾处的权利要求中具体指出地并且清楚地要求保 护被视为本发明的主题内容。本发明的前述和其它目的、特征以及 优点从结合附图进行的以下具体描述中变得清楚,在附图中:

图1示出根据本发明的一个实施例的用于避免在硬件事件的 预定序列触发的计算机处理器中的处理缺陷的系统。

图2示出根据本发明的一个实施例的避免在硬件事件的预定 序列触发的计算机处理器中的处理缺陷的方法。

图3示出本发明设想的用于避免计算机处理器中的处理缺陷 的系统的另一实施例。

具体实施方式

参照本发明的实施例描述本发明。贯穿本发明的描述,参照图 1-图3。在参照附图时,用相似标号指示贯穿示出的相似结构和单元。

图1是根据本发明的一个实施例的用于避免在由硬件事件的 预定序列112触发的计算机处理器104中的处理缺陷的系统102。系 统102包括检测单元110和上电复位单元108。

检测单元110确定硬件事件的预定序列112将在计算机处理器 104处出现。上电复位单元108将计算机处理器104初始化为在计算 机存储器106中存储的第一状态118。上电复位单元108响应于检测 到硬件事件序列112来初始化,同时在计算机处理器104处维持功 率。上电复位单元108允许计算机处理器104在从低功率模式脱离 时对自身进行初始化。上电复位单元108也可以用来利用新设置来 重新初始化芯片。

系统102可以包括指令高速缓存114,该指令高速缓存包含将 由计算机处理器104执行的计算机指令116。另外,确定硬件事件的 预定序列112将在计算机处理器104处出现包括:检测特定计算机 指令序列116在指令高速缓存114处被加载。

在一个实施例中,计算机处理器104通过清除计算机处理器 104的指令高速缓存114来初始化为第一状态118。在另一实施例中, 计算机处理器104通过改变计算机处理器104的操作频率来初始化 为第一状态118。在又一实施例中,计算机处理器104通过改变计算 机处理器104的指令高速缓存114的深度来初始化为第一状态118。

系统102可以包括检测单元110,其被进一步被配置用于在将 计算机处理器104初始化为第一状态118之后,确定硬件事件的预 定序列112是否将出现在计算机处理器104处。另外,上电复位单 元108可以被配置用于将计算机处理器104初始化为在计算机存储 器106中存储的第二状态120。如果在将计算机处理器104初始化为 第一状态118之后硬件事件的预定序列112不再在计算机处理器104 处出现,则计算机处理器104可以初始化为第二状态120。第二状态 120是在将计算机处理器104初始化为第一状态118之前的计算机处 理器104的状态。

在一个实施例中,将计算机处理器104初始化为第二状态120 包括从计算机存储器106加载第二状态120。

在一个实施例中,可能不希望始终在第二状态120中运行系统 102,并且可以在序列完成之后再次利用原始设置来初始化计算机处 理器104。

在一个实施例中,检测单元110利用处理器104中的暂时解决 方案(workaround)触发器(WAT)来检测将暴露逻辑错误(bug) 或者挂起条件的条件将何时出现。作为仅刷新指令并且重试的替代, 系统在一个配置中重新初始化处理器104并且加载新寄存器设置, 以便对逻辑错误暂时解决。可能不希望始终具有这些设置,因此系 统可以如所需的那样应用和去除暂时解决方案设置。这可以在没有 重新引导系统104并且仅有少量性能惩罚的情况下完成。

上电复位单元108允许芯片在从低功率模式脱离时初始化本 身。这通常用于系统上的功率节省。它也可以用来用新设置重新初 始化芯片。系统102向L2高速缓存中加载新设置,然后使芯片经过 上电复位(power-on-reset)过程,在该过程中,它从L2高速缓存加 载设置并且启动指令。

如果WAT机制检测到将由于已知逻辑错误而引起问题的数据 或者指令序列,则系统可以使用上电复位单元108以加载新芯片设 置来对问题暂时解决。如果不希望继续利用暂时解决方案来执行指 令,则可以在序列完成之后再次利用原始设置初始化芯片。

本发明的实施例可以纠正处理器逻辑错误以及错误在集中式 控制逻辑中的情况,针对该处理器逻辑错误可能不存在集中式控制 暂时解决方案。本发明的实施例也可以解决无软件暂时解决方案可 用或者当不可能使用检查点和恢复时的情形。

例如在IBM POWER4处理器上,暂时解决方案可能需要将高 速缓存深度设置成4而不是32。出于性能原因,这可能不是希望的 设置。一旦要求暂时解决方案的情形停止存在,上电复位单元108 可以加载原始设置并且用优选设置继续。另外,暂时解决方案在运 行时间期间被执行,而无需重新引导操作系统或者系统。

其它实施例可以使用暂时解决方案以调整能量比例模式、速度 设置、处理器频率、存储器控制器和针对处理器可以处于的每个模 式的其它初始化设置。实施例将根据生成的逻辑错误调整检测并且 可以防止停止检查核或者系统。

尽管暂时解决方案调整检测到错误的处理器,但是其它处理器 将继续执行无害指令,以保证不同指令序列将执行并且系统将无需 重启和尝试再次遇到逻辑错误。因此,系统可以工作在单个和多核 处理器上,并且可以不停机改变初始值。

图2示出根据本发明的一个实施例的避免在硬件事件的预定 序列触发的计算机处理器中的处理缺陷的方法。该方法包括检查步 骤202。在检查步骤202期间,检查特定计算机指令序列是否在计算 机处理器的指令高速缓存处被加载。在检查步骤202之后,该方法 继续检测步骤204。

在检测步骤204检测硬件事件的预定序列在计算机处理器出 现。检测步骤204可以包括如下硬件事件的预定序列,该硬件事件 的预定序列是已知对计算处理器的效率或者速度有害的硬件事件顺 序。检测步骤也可以包括硬件事件的预定序列,该如下硬件事件序 列是已知需要大量存储器的硬件事件序列。在检测步骤204之后, 该方法继续执行步骤206。

在执行步骤206,计算机处理器执行第一上电复位过程。响应 于检测到硬件事件序列将计算机处理器初始化为在计算机存储器中 存储的第一状态。备选地,执行步骤206可以包括清除计算机处理 器的指令高速缓存的第一上电复位过程。执行步骤206也可以包括 改变计算机处理器的操作频率的第一上电复位过程。执行步骤206 可以进一步包括改变计算机处理器的指令高速缓存的深度的第一上 电复位过程。在该执行步骤206之后,该方法继续到确定步骤208。

在确定步骤208,确定在执行第一上电复位过程之后硬件事件 的预定序列将在计算机处理器处出现。如果硬件事件的预定序列在 确定状态206之后不再在计算机处理器处出现,则该方法继续到执 行步骤210。

在执行步骤210,执行第二上电复位过程,使得将计算机处理 器被初始化为第二状态。第二状态是计算机处理器在第一上电复位 过程之前的状态。在执行步骤210之后,该方法继续到加载步骤212。

在加载步骤212,第二状态从计算机存储器被加载到计算机处 理器中。在加载步骤212之后,该方法返回到检查步骤202并且再 次开始。

图3示出本发明设想的用于避免计算机处理器中的处理缺陷 的系统的另一实施例。因而,本发明的这一实施例是使用硬件事件 的预定序列(暂时解决方案触发器)以触发处理器检测将暴露逻辑 错误的条件或者挂起条件将何时出现。取代刷新指令以及重试,一 个实施例将重新初始化处理器并且加载新寄存器设置以避免逻辑错 误。可能不希望始终具有这些设置,从而系统可以在它希望时应用 和去除避免设置。

该方法可以在运行时间期间运行,而无需重新引导OS或者系 统并且可以在单或者多芯处理器上运行。

所属技术领域的技术人员知道,本发明的各个方面可以实现为 系统、方法或计算机程序产品。因此,本发明的各个方面可以具体 实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式 (包括固件、驻留软件、微代码等),或硬件和软件方面结合的实 施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实 施例中,本发明的各个方面还可以实现为在一个或多个计算机可读 介质中的计算机程序产品的形式,该计算机可读介质中包含计算机 可读的程序代码。

可以采用一个或多个计算机可读介质的任意组合。计算机可读 介质可以是计算机可读信号介质或者计算机可读存储介质。计算机 可读存储介质例如可以是——但不限于——电、磁、光、电磁、红 外线、或半导体的系统、装置或器件,或者任意以上的组合。计算 机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个 或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器 (RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM 或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、 磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可 读存储介质可以是任何包含或存储程序的有形介质,该程序可以被 指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部 分传播的数据信号,其中承载了计算机可读的程序代码。这种传播 的数据信号可以采用多种形式,包括——但不限于——电磁信号、 光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质,该计算机可读介 质可以发送、传播或者传输用于由指令执行系统、装置或者器件使 用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传 输,包括——但不限于——无线、有线、光缆、RF等等,或者上述 的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行 本发明操作的计算机程序代码,所述程序设计语言包括面向对象的 程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式 程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以 完全地在用户计算机上执行、部分地在用户计算机上执行、作为一 个独立的软件包执行、部分在用户计算机上部分在远程计算机上执 行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的 情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN) 或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算 机(例如利用因特网服务提供商来通过因特网连接)。

下面将参照根据本发明实施例的方法、装置(系统)和计算机 程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框 图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算 机程序指令实现。这些计算机程序指令可以提供给通用计算机、专 用计算机或其它可编程数据处理装置的处理器,从而生产出一种机 器,使得这些计算机程序指令在通过计算机或其它可编程数据处理 装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个 方框中规定的功能/动作的装置。

也可以把这些计算机程序指令存储在计算机可读介质中,这些 指令使得计算机、其它可编程数据处理装置、或其他设备以特定方 式工作,从而,存储在计算机可读介质中的指令就产生出包括实现 流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的 制造品(article of manufacture)。

也可以把计算机程序指令加载到计算机、其它可编程数据处理 装置、或其它设备上,使得在计算机、其它可编程数据处理装置或 其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而 使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或 框图中的一个或多个方框中规定的功能/动作的过程。

附图中的流程图和框图显示了根据本发明的多个实施例的系 统、方法和计算机程序产品的可能实现的体系架构、功能和操作。 在这点上,流程图或框图中的每个方框可以代表一个模块、程序段 或代码的一部分,所述模块、程序段或代码的一部分包含一个或多 个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作 为替换的实现中,方框中所标注的功能也可以以不同于附图中所标 注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行, 它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要 注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中 的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的 系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

已经出于示例的目的而呈现本发明的各种实施例的描述,但是 这些描述未旨在于穷举本发明或者使本发明限于公开的实施例。许 多修改和变化在不脱离描述的实施例的范围和精神实质的情况下将 为本领域普通技术人员所清楚。选择这里所以术语以最佳地说明实 施例的原理、实际应用或者较市面上发现的技术而言的技术改进或 者使本领域其他普通技术人员能够理解这里公开的实施例。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号