CN1801114A - 使用灵活编程接口字段用于错误加入的系统和方法 - Google Patents
使用灵活编程接口字段用于错误加入的系统和方法 Download PDFInfo
- Publication number
- CN1801114A CN1801114A CNA2005101380600A CN200510138060A CN1801114A CN 1801114 A CN1801114 A CN 1801114A CN A2005101380600 A CNA2005101380600 A CN A2005101380600A CN 200510138060 A CN200510138060 A CN 200510138060A CN 1801114 A CN1801114 A CN 1801114A
- Authority
- CN
- China
- Prior art keywords
- mistake
- request
- support
- answer
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
描述了用于将硬件错误加入到微处理器系统的系统和方法。在一个实施例中,建立了系统软件和系统固件之间的软件接口。因而可以支持用于软件错误处理程序的软件测试和调试。软件接口可以支持查询模式调用和播种模式调用。当发出一个查询模式调用时,可以请求系统固件和硬件是否支持特定类型错误的加入。从该调用的返回可用于制作用于加入的所支持的错误的列表。当发出播种模式调用时,相应的错误可以被加入到硬件中。
Description
技术领域
本发明一般涉及微处理器系统,更具体地涉及微处理器系统,该系统可以支持通过命令将硬件错误加入系统的软件错误处理程序的测试。
背景技术
微处理器中的硬件错误可能起因于很多来源,例如宇宙射线穿透、温度过高的热点、电源电压尖峰脉冲以及很多其他来源。这些硬件错误可能波及处理器、平台和软件,产生可能使系统性能降低的数据破坏,导致错误的系统功效,或产生没有记载的数据破坏。为了提高可靠性和可用性,很多微处理器系统可以实现错误检测、错误抑制、错误纠正和错误恢复机制。可以在硬件或系统固件中执行这些功能中的一些。然而,在某些环境中,操作系统软件或应用软件可能需要从硬件接收错误消息,并且使用错误处理程序模块对它们起作用。
错误处理程序模块在模块自身的设计和调试期间提出了难题。不向它提供实际的硬件错误就不可能充分地测试其功能。这可以在微处理器厂商的工厂中通过使用专门并且昂贵的硬件工具和测试设备来执行,上述硬件工具和测试设备用于随意地加入硬件错误。这在操作系统软件厂商的工厂或在应用软件厂商的工厂要做到是非常难的。他们可能不希望获得专门而且昂贵的硬件,该硬件可能只能用于有限的一组处理器修正,他们也没有经过训练的人员来操作该硬件。
在某些处理器实施例中,可能存在允许随意加入特定错误的错误加入接口。然而,这些接口可能在处理器修正级别之间变化,因而需要用于错误加入控制的任何软件的可扩展再编码。此外,这对于操作系统软件厂商或应用程序厂商可能不是一个实用的方法。
附图说明
通过实例但不作为限定来说明本公开,在附图中相同的参考数字指的是相同的元件,其中:
附图1是根据本公开一个实施例的在具有固件的系统中的错误加入的图表。
附图2是根据本公开一个实施例的在具有分离系统和处理器固件的系统中的错误加入的图表。
附图3是根据本公开一个实施例的在具有多层固件的系统中的错误加入的图表。
附图4是根据本公开一个实施例的利用错误加入系统的软件的流程图。
附图5是根据本公开另一个实施例的利用错误加入系统的软件的流程图。
附图6A是根据本公开一个实施例的用于加入错误的系统的示意图。
附图6B是根据本公开另一个实施例的用于加入错误的系统的示意图。
具体实施方式
下面的描述包括用于将硬件错误加入微处理器系统以方便软件错误处理程序测试的技术。在下面的描述中,列出了很多特定细节(例如逻辑实现、软件模块分配、总线和其他接口发信号技术)以及操作细节,以提供对本发明更彻底地理解。然而,应当理解的是,没有上述特定细节,本领域的技术人员也可以进行实践本发明。在其他实例中,为了不使本发明晦涩难懂,没有详细示出控制结构、门级电路和全部的软件指令序列。本领域的技术人员利用所包括的描述,无需过多实验,将能够实现适当的功能。在特定实施例中,在安腾处理器系列可兼容处理器(例如由Intel公司生产的处理器)和相关的系统和处理器固件的环境中公开本发明。然而,本发明也可以应用于其他类型的处理器,例如奔腾可兼容处理器(例如由Intel公司生产的处理器)、X-Scale系列可兼容处理器或者来自其他厂商或设计者的任何处理器结构的各种不同通用处理器的任何一个。此外,某些实施例可以包括或者可以是特定用途处理器,例如图形、网络、图像、通信或与其固件连接的任何其他已知或其它可用类型的处理器。
现在参考附图1,示出了根据本公开一个实施例的在具有固件的系统中的错误加入的图表。在附图1的实施例中,处理器/平台硬件110可以包括一个或多个微处理器以及各种支持芯片,例如系统存储器、存储控制器、输入/输出控制器、系统总线或系统互连的其他形式,以及各种输入/输出设备。在某些实施例中,可以将这些支持芯片中的一些集中到集成“芯片集”中。处理器/平台硬件110可以包括错误加入接口114,错误加入接口可以允许外界影响处理器/平台硬件110的操作。在一个实施例中,错误加入接口114可以包括寄存器或其他通信接口,以允许接收特意将不同种类的硬件错误加入到处理器/平台硬件110以便于各种软件错误处理程序的测试、调试和确认的命令。值得注意的是,当被装入全部的错误处理环境时,软件错误处理程序应当是有效的,它还可以包括硬件错误处理程序和固件处理程序。特定错误可以首先由硬件处理,并且随后交给固件,最终交给软件供解决。
附图1示出了可以在处理器/平台硬件110上执行的软件的若干层。这些可以包括一个或多个操作系统软件170和一个或多个应用软件180。每个可以具有其自己的错误处理程序,例如操作系统错误处理程序172和错误加入实用程序182。当处理器/平台硬件110中发生错误时,操作系统错误处理程序172通过错误消息接口118接收各种硬件错误消息。在不同的实施例中,错误消息可能由硬件而引起,或可能被硬件调用后由固件发送。一旦被操作系统170接收到,错误消息可以经由软件接口184被传送到错误加入实用程序182。
有可能使软件直接与错误加入接口114通信,但由于各种原因这可能不是优选的。测试操作系统错误处理程序172或者错误加入实用程序182的终端用户将没有必要知道哪种类型的错误可以被加入处理器硬件和平台硬件的特定版本。处理器和平台硬件的每个“步进”或修正级将会需要不同的软件版本。而且,为了安全起见,有理由不应当广泛地分发错误加入接口114的详细信息。
因此,在一个实施例中,可以在软件(可以包括操作系统软件170和应用软件180)和处理器/平台固件120之间定义软件接口160。软件接口160可以允许软件查询在给定环境中存在什么类型的对于错误加入的支持,并且还基于信息分派实际的错误加入。软件接口160的使用可以有利地允许软件测试,而不需要为已有硬件的每个步进级重写软件。
软件接口160可以包括两个部分:调用164和返回162。调用164还可以进一步被分成两个部分:查询模式和“播种”或加入命令模式。在查询模式中,该调用可包括请求对以下问题的回答,即是否存在对于加入所描述的错误的支持。在一个实施例中,软件可以进行一系列查询,并且保持记录所接收到的回答的表格或其他形式。以这种方式,该软件可以得到存在的对于在给定的处理器和平台中加入错误的全部支持的信息。
软件接口160可以包括描述很多错误类型的能力,这些错误类型比在任何特定实现中预料的多得多,以允许未来的增长。作为查询的一部分而发送的数据字可以包括几个字段,以便详细描述需要加入的错误。例如,字段可以描述错误的严重性,这可能包括可恢复的错误、致命的局部错误、已校正的错误、致命的全局错误以及可能的其他错误。另一个字段可以描述将会发生错误的特定硬件结构,这可能包括高速缓冲存储器、翻译后援缓冲器(TLB)、系统互连、寄存器文件、微体系结构以及可能的其他类型。第三字段可以描述将会加入所请求的错误的“触发”或情况。各种实施例中的触发可以是当接受或不接受特定分支指令时,或当特定缓冲器达到其容量的某一部分时,或发生错误期间处理器正在执行的操作类型。在其他实施例中,可以定义很多其他的触发。
在一个实施例中,数据字可以包括用于错误结构层次级别的字段。在一个实施例中,可以有四个级别,级别1具有描述错误的最粗纹理(grain),并且级别4具有描述的最细纹理。级别1错误描述的例子可能是特定严重性的高速缓冲存储器错误并且达到特定的高速缓冲存储器级别。级别2错误描述可以包括所有级别1描述,此外,还包括该错误是否在高速缓冲存储器的数据或标签部分,以及将会发生错误的高速缓冲存储器的索引和路径。级别3错误描述可以包括所有级别2描述,此外,还包括将会发生错误的高速缓冲存储器的确切地址。错误结构层次级别的使用可以有助于允许逐步包含越来越多的错误类型,而不必要重新表征软件接口160。可以理解,在一个实施例中,可以保持跨越发生错误的不同硬件结构的特定层次级别。换句话说,特定硬件和固件实现可以仅支持在各种硬件结构中加入的普通错误,或可以支持在各种硬件结构中加入的非常详细的特定错误。然而,在其他实施例中,层次级别可以从一个硬件结构变化到另一个。
对于查询调用的返回162可以仅包括将所请求的错误表征为“被支持”或“不被支持”的字段。返回162还可以提供全局回答以指示错误的哪些层次级别是被支持的。这有助于软件制造者将来在层次级别恒定地跨越变化的硬件结构的那些实施例中查询。
调用164还可以包括“播种”或加入命令模式。在一个实施例中,播种模式数据字等效于来自查询模式的相应的数据字,除了可作为标记以指示是否要把该数据字解释为查询模式或播种模式的单个位。在其他实施例中,对播种模式的数据字进行编码不同于对查询模式的相应数据字进行编码。
对于播种模式调用164的返回162可能发生在播种模式调用请求加入不被支持的错误的环境中。在这种情况下,返回162可以仅指示所请求的错误不被支持。在其他实施例中,其他信息可以包含在返回162中。
如上所述,软件接口160的使用可以允许操作系统软件170或应用软件180通过命令引起加入错误,而无需错误加入接口114的详细信息。在处理器/平台固件120和错误加入接口114之间的交互可能会需要这种信息。在一个实施例中,查询接口132可用于处理器/平台固件120以请求关于错误加入接口114连同处理器/平台固件120所支持的错误加入类型和层次级别的信息。在其他实施例中,处理器/平台固件120可以被编程以包括有关要插入的平台的这个信息。该编程在某些实施例中可以采取表格或寄存器组的形式。在某些实施例中,处理器/平台固件120可以模仿特定的硬件错误,所以没有必要为这些错误询问错误加入接口114。
在一个实施例中,当“播种”错误(命令加入错误)时,还可以使用用于处理器/平台固件120的任务接口122。在一个实施例中,处理器/平台固件120可以通过路径126发送任务消息到错误加入接口114。在一个实施例中,这些任务消息可以写到寄存器或错误加入接口114中的其他存储设备中。返回路径124可用于错误加入接口114,以便将通信状态或不支持消息传送到处理器/平台固件120。
现在参照附图2,示出了根据本公开一个实施例的具有分离的系统和处理器固件的系统中的错误加入的框图。附图2的系统大体上类似于附图1的系统,但是处理器和平台固件被分成支持处理器硬件210的处理器提取层(PAL)252和支持平台硬件212的系统提取层(SAL)254。在一个实施例中,附图2系统可以使用安腾处理器系列可兼容处理器、例如由Intel公司生产的处理器,以及在其上开发供使用的PAL 252和SAL 254。在这种环境中,错误消息接口218可以是机器检查体系结构(MCA)接口,能够传送在平台硬件212和处理器硬件210中检测到的错误。在变化的实施例中,错误消息可以由硬件引起,或被硬件调用之后通过PAL 252发送,或可以在依次由PAL 252调用后通过SAL254发送。
在一个实施例中,软件接口260一般可以在软件和PAL 252之间传送与上面公开的关于附图1的软件接口160相同类型的数据字。在其他实施例中,软件接口260可以完全定义成如附图1中的软件接口160那样。平台相关错误可能需要在软件和SAL 254之间的第二软件接口256。关于软件接口260的调用264和软件接口256的调用266的数据字可以包括错误的严重性、会发生错误的特定硬件结构以及“触发”或会加入所请求的错误的情况的字段。SAL 254软件接口256的平台硬件结构可以包括周边元件扩展接口(PCI)总线、扩展PCI(PCI-E)连接、通用系统互连(CSI)连接或通常在系统主板上找到的其他结构。还可以包括用于错误的层次级别的字段。在软件接口260的情况下,会发生错误的特定硬件结构可以包括处理器内的结构:在软件接口260的情况下,会发生错误的特定硬件结构可以包括在处理器外的平台内的结构。
现在参照附图3,示出了根据本公开一个实施例的在具有多层固件的系统中的错误加入的框图。附图3的系统大体上类似于附图1的系统,除了已经将处理器和平台固件组织到如所示的分层结构中。处理器/平台固件320的基本功能在逻辑上与硬件极为接近。在软件和处理器/平台固件之间的通用接口可以由可扩展固件接口(EFI)340表示。EFI 340可用于将虚拟固件/硬件机器呈现给软件。最后,一个小的轻型操作系统装入器350可以位于EFI 340上。在一个实施例中,附图2的系统可以使用奔腾可兼容处理器(例如由Intel公司生产的处理器)以及在其上开发供使用的EFI 340。在这种环境中,错误消息接口318可以是机器检查体系机构(MCA)接口,能够传送在处理器/平台硬件310中检测到的错误。在变化的实施例中,错误消息可能由硬件产生,或由硬件调用后通过处理器/平台固件320发送,或由处理器/平台固件320调用后通过EFI340发送。
在一个实施例中,软件接口360一般可以在软件和EFI 340之间传送与上面公开的关于附图1的软件接口160相同类型的数据字。在其他实施例中,软件接口360可以完全定义成如附图1中的软件接口160那样。关于软件接口360的调用364的数据字可以包括错误的严重性、会发生错误的特定硬件结构以及“触发”或会加入所请求的错误的情况的字段。还可以包括用于错误的层次级别的字段。
现在参照附图4,示出了根据本公开一个实施例的利用错误加入系统的软件的流程图。可以由经由诸如上面附图1的软件接口160的软件接口连接到固件和硬件的软件来执行附图4的处理。当处理在块410开始时,可能会在块414等待,直到该软件想要用特定错误X测试其错误处理程序。在判断块418,可以确定错误X是否在用于加入所支持的错误的软件所保持的列表上。如果是,那么处理经由YES路径继续存在。然后在块434该软件发出播种调用,并且将错误X加入硬件。然后在块414重复该处理。
然而,如果在判断块418确定错误X不存在列表上,那么处理经由NO路径继续存在,并且在块422作出关于对错误X的支持的查询调用。在判断块426可以确定在处理器/平台硬件中是否存在对错误X的支持。如果是,处理经由YES路径继续存在。在块430在软件发出播种调用之前将错误X添加到列表,并且在块434将错误X加入到硬件。然后在块414重复该处理。
然而,如果在判断块426确定不存在对错误X的支持,那么处理经由NO路径继续存在,并且返回到块414。
现在参照附图5,示出了根据本公开另一个实施例的利用错误加入系统的软件的流程图。可以由经由诸如上面附图1的软件接口160的软件接口连接到固件和硬件的软件来执行附图5的处理。附图5处理与附图4处理的不同之处在于,附图5系统支持跨越硬件的各部分可能是统一的层次级别。
当处理在块510开始时,可能在块514等待,直到软件想要用对应于层次级别Y的错误X测试其错误处理程序。在判断块518,可以确定所支持的最大层次级别是否在硬件所支持的错误和层次级别的软件所保持的列表上。如果不是,则处理沿NO路径继续存在,并且在块522发出查询调用来确定所支持的级别。然后在块526,在进入判断块530之前将层次级别写入列表。如果确定最大层次级别在该列表上,那么处理经由YES路径继续存在,并直接进入判断块530。
在判断块530中可以确定列表上的最大层次级别是否大于或等于所希望的级别Y。如果不是,那么处理沿NO路径继续存在,并且返回到块514。如果是,那么处理沿YSE路径继续存在并且进入判断块534。
在判断块534中,确定错误X是否在用于加入所支持的错误的软件所保持的列表上。如果是,处理经过YES路径继续存在。然后在块550软件发出播种调用,并且将错误X加入到硬件中。然后在块514重复处理。
然而,如果在判断块534确定错误X不在列表上,则处理经过NO路径继续存在,并且在块538进行关于对错误X的支持的查询调用。在判断块542,确定处理器/平台硬件中是否存在对于错误X的支持。如果是,那么处理经过YES路径继续存在。在块546,在软件发出播种调用前将错误X加入列表,并且在块550将错误X加入硬件。然后在块514重复该处理。
然而,如果在判断块542确定不存在对错误X的支持,那么处理经过NO路径继续存在,并且返回到块514。
现在参照附图6A和附图6B,示出了根据本公开两个实施例的用于加入错误的系统的示意图。附图6A系统大体上示出了处理器、存储器和输入/输出设备由系统总线互连的系统,而附图6B系统大体上示出了处理器、存储器和输入/输出设备由很多点对点接口互连的系统。
附图6A系统可以包括一个或多个处理器,为了简单起见这里仅示出了两个,处理器40和处理器60。处理器40、60可以包括一级高速缓冲存储器42、62。附图6A系统可以具有经由总线接口44、64、12、8与系统总线6连接的多个功能。在一个实施例中,系统总线6可以是由Intel公司生产的奔腾类微处理器使用的前端总线(FSB)。在其他实施例中,还可以使用其他总线。在某些实施例中,存储控制器34和总线桥32可以共同被称为芯片组。在某些实施例中,与附图6A实施例中所示的相比,可以在物理芯片中不同地划分芯片组的功能。
存储控制器34可以允许处理器40、处理器60从系统存储器10以及从固件可擦写可编程只读存储器(EPROM)36中读和写。在某些实施例中,固件可以为软件提供错误加入软件接口。在某些实施例中固件EPROM 36可以使用闪存。存储控制器34可以包括总线接口8,以允许向系统总线6上的总线代理传送存储器读和写数据,以及从系统总线6上的总线代理得到存储器读和写数据。存储控制器34还可以经过高性能图形接口39与高性能图形电路38连接。在特定实施例中,高性能图形接口39可以是先进的图形端口AGP接口。存储控制器34可以经过高性能图形接口39将数据从系统存储器10送往高性能图形电路38。
附图6B也可以包括一个或多个处理器,为了简单起见只示出了两个,处理器70、80。处理器70、80每个都可以包括本地存储控制器集线器(MCH)72、82,用来与存储器2、4以及与固件3、5连接。在某些实施例中,固件可以为软件提供错误加入软件接口。处理器70、80可以使用点对点接口电路78、88经由点对点接口50交换数据。处理器70、80每个都可以使用点对点接口电路76、94、86、98经由单独的点对点接口52、54与芯片组90交换数据。芯片组90还可以经由高性能图形接口92与高性能图形电路38交换数据。
在附图6A系统中,总线桥32可以允许在系统总线6和总线16之间交换数据,这在某些实施例中可以是工业标准结构(ISA)总线或外设部件互连(PCI)总线。在附图6B系统中,芯片组90可以经过总线接口96与总线16交换数据。在任一个系统中,总线16上可以有各种输入/输出I/O设备14,在某些实施例中包括低性能图形控制器、视频控制器和网络控制器。在某些实施例中,另一个总线桥18可用于允许在总线16和总线20之间交换数据。在某些实施例中,总线20可以是小型计算机系统接口(SCSI)总线、集成驱动器电子部件(IDE)总线或通用串行总线(USB)总线。附加的I/O设备可以与总线20连接。这些可以包括键盘和光标控制设备22,包括鼠标、音频I/O24、具有调制解调器和网络接口的通信设备26,以及数据存储设备28。软件代码30可以存储在数据存储设备28中。在某些实施例中,数据存储设备28可以是固定磁盘、软盘驱动器、光盘驱动器、磁光盘驱动器、磁带或包括闪存的非易失性存储器。
在上述说明书中,参照本发明的特定示范实施例描述了本发明。然而,很明显可以对其作出各种调整和改变,而不背离如所附权利要求阐述的本发明更广阔的精神和范围。相应地,说明书和附图可以看作是示范性的而不是限制性的。
Claims (81)
1、一种方法,包括:
接收来自系统上的软件对于加入第一错误的请求;
确定是否存在对所述第一错误的支持;并且
当确定存在对所述第一错误的所述支持时,将所述第一错误加入到所述系统。
2、如权利要求1所述的方法,进一步包括当确定不存在对所述第一错误的所述支持时,发送返回消息。
3、如权利要求1所述的方法,其中对所述第一错误的所述支持包括所述系统的硬件中的支持。
4、如权利要求1所述的方法,其中对所述第一错误的所述支持包括所述系统的仿真固件中的支持。
5、如权利要求1所述的方法,其中所述请求是系统调用。
6、如权利要求1所述的方法,其中所述请求包括与所述第一错误相关的粒度的层次级别。
7、如权利要求6所述的方法,其中所述粒度的层次级别描述了能够由所述请求所请求的所有错误的子集。
8、如权利要求1所述的方法,其中所述请求指示要发生所述第一错误的硬件结构。
9、如权利要求1所述的方法,其中所述请求指示所述第一错误的严重性的级别。
10、如权利要求1所述的方法,其中所述请求指示指定所述第一错误的加入时间的触发事件。
11、如权利要求1所述的方法,进一步包括接收查询,所述查询请求是否存在对所述第一错误的支持的回答。
12、如权利要求11所述的方法,其中所述查询要包含在系统调用中。
13、如权利要求12所述的方法,其中所述回答要包含在系统调用返回中。
14、如权利要求11所述的方法,其中所述回答包括与所述第一错误相关的粒度的层次级别。
15、如权利要求14所述的方法,其中所述粒度的层次级别描述能够由所述请求所请求的所有错误的子集。
16、如权利要求11所述的方法,其中所述回答指示要发生所述第一错误的硬件结构。
17、如权利要求11所述的方法,其中所述回答指示所述第一错误的严重性的级别。
18、如权利要求11所述的方法,其中所述回答指示指定所述第一错误的加入时间的触发事件。
19、一种装置,包括:
用于接收来自系统上的软件对于加入第一错误的请求的设备;
用于确定是否存在对所述第一错误的支持的设备;以及
用于当确定存在对所述第一错误的所述支持时,将所述第一错误加入到所述系统的设备。
20、如权利要求19所述的装置,进一步包括当确定不存在对所述第一错误的所述支持时,用于发送返回消息的设备。
21、如权利要求19所述的装置,其中对所述第一错误的所述支持包括所述系统硬件中的支持。
22、如权利要求19所述的装置,其中对所述第一错误的所述支持包括所述系统仿真固件中的支持。
23、如权利要求19所述的装置,其中所述请求是系统调用。
24、如权利要求19所述的装置,其中所述请求包括与所述第一错误相关的粒度的层次级别。
25、如权利要求24所述的装置,其中所述粒度的层次级别描述能够由所述请求所请求的所有错误的子集。
26、如权利要求19所述的装置,其中所述请求指示要发生所述第一错误的硬件结构。
27、如权利要求19所述的装置,其中所述请求指示所述第一错误的严重性的级别。
28、如权利要求19所述的装置,其中所述请求指示指定所述第一错误的加入时间的触发事件。
29、如权利要求19所述的装置,还包括用于接收查询的设备,所述查询请求是否存在对所述第一错误的支持的回答。
30、如权利要求29所述的装置,其中所述查询要包含在系统调用中。
31、如权利要求30所述的装置,其中所述回答要包含在系统调用返回中。
32、如权利要求29所述的装置,其中所述回答包括与所述第一错误相关的粒度的层次级别。
33、如权利要求32所述的装置,其中所述粒度的层次级别描述能够由所述请求所请求的所有错误的子集。
34、如权利要求29所述的装置,其中所述回答指示要发生所述第一错误的硬件结构。
35、如权利要求29所述的装置,其中所述回答指示所述第一错误的严重性的级别。
36、如权利要求29所述的装置,其中所述回答指示指定所述第一错误的加入时间的触发事件。
37、一种包含软件代码的计算机可读媒介,当软件代码由处理器执行时,执行的处理包括:
接收来自系统上的软件对于加入第一错误的请求;
确定是否存在对所述第一错误的支持;并且
当确定存在对所述第一错误的所述支持时,将所述第一错误加入到所述系统。
38、如权利要求37所述的计算机可读媒介,进一步包括当确定不存在对所述第一错误的所述支持时,发送返回消息。
39、如权利要求37所述的计算机可读媒介,其中对所述第一错误的所述支持包括所述系统的硬件中的支持。
40、如权利要求37所述的计算机可读媒介,其中对所述第一错误的所述支持包括所述系统的仿真固件中的支持。
41、如权利要求37所述的计算机可读媒介,其中所述请求是系统调用。
42、如权利要求37所述的计算机可读媒介,其中所述请求包括与所述第一错误相关的粒度的层次级别。
43、如权利要求42所述的计算机可读媒介,其中所述粒度的层次级别描述能够由所述请求所请求的所有错误的子集。
44、如权利要求37所述的计算机可读媒介,其中所述请求指示要发生所述第一错误的硬件结构。
45、如权利要求37所述的计算机可读媒介,其中所述请求指示所述第一错误的严重性的级别。
46、如权利要求37所述的计算机可读媒介,其中所述请求指示指定所述第一错误的加入时间的触发事件。
47、如权利要求37所述的计算机可读媒介,进一步包括接收查询,所述查询请求是否存在对所述第一错误的支持的回答。
48、如权利要求47所述的计算机可读媒介,其中所述查询要包含在系统调用中。
49、如权利要求48所述的计算机可读媒介,其中所述回答要包含在系统调用返回中。
50、如权利要求47所述的计算机可读媒介,其中所述回答包括与所述第一错误相关的粒度的层次级别。
51、如权利要求50所述的计算机可读媒介,其中所述粒度的层次级别描述能够由所述请求所请求的所有错误的子集。
52、如权利要求47所述的计算机可读媒介,其中所述回答指示要发生所述第一错误的硬件结构。
53、如权利要求47所述的计算机可读媒介,其中所述回答指示所述第一错误的严重性的级别。
54、如权利要求47所述的计算机可读媒介,其中所述回答指示指定所述第一错误的加入时间的触发事件。
55、一种装置,包括
第一模块,接收来自系统上的软件对于加入第一错误的请求;
连接到所述第一模块的第二模块,,确定是否存在对所述第一错误的支持;并且
连接到所述第一模块和所述第二模块的第三模块,当确定存在对所述第一错误的所述支持时,将所述第一错误加入到所述系统。
56、如权利要求55所述的装置,其中当所述第二模块确定不存在对所述第一错误的所述支持时,所述第一模块发送返回消息到所述软件。
57、如权利要求55所述的装置,其中所述支持由所述装置的硬件执行。
58、如权利要求55所述的装置,其中所述支持由所述装置的仿真固件执行。
59、如权利要求58所述的装置,其中所述第一模块从所述请求中对描述能够由所述请求所请求的所有错误的子集的粒度的层次级别进行解码。
60、如权利要求55所述的装置,其中所述第一模块从所述请求中对要发生所述第一错误的硬件结构进行解码。
61、如权利要求55所述的装置,其中所述第一模块从所述请求中对所述第一错误的严重性的级别进行解码。
62、如权利要求55所述的装置,其中所述第一模块从所述请求中对指定所述第一错误的加入时间的触发事件进行解码。
63、如权利要求55所述的装置,其中所述第一模块接收是否存在对所述第一错误的支持的查询并发送回答。
64、如权利要求55所述的装置,其中所述回答包括与所述第一错误相关的粒度的层次级别。
65、如权利要求64所述的装置,其中所述粒度的层次级别描述了能够由所述请求所请求的所有错误的子集。
66、如权利要求55所述的装置,其中所述回答指示要发生所述第一错误的硬件结构。
67、如权利要求55所述的装置,其中所述回答指示所述第一错误的严重性的级别。
68、如权利要求55所述的装置,其中所述回答指示指定所述第一错误的加入时间的触发事件。
69、一种系统,包括:
固件,接收对于加入第一错误的请求,确定是否存在对所述第一错误的支持,当存在对所述第一错误的支持时加入所述第一错误;以及
硬件,接收所述第一错误并发送错误消息。
70、如权利要求69所述的系统,还包括经由接口连接到所述固件以发送所述请求的软件。
71、如权利要求70所述的系统,其中所述软件接收来自所述硬件的所述错误消息。
72、如权利要求70所述的系统,其中当所述固件确定不存在对所述第一错误的所述支持时,所述固件发送返回消息到所述软件。
73、如权利要求70所述的系统,其中所述支持由所述硬件执行。
74、如权利要求70所述的系统,其中所述支持由所述固件的仿真固件执行。
75、如权利要求70所述的系统,其中所述固件从所述请求中对描述能够由所述请求所请求的所有错误的子集的粒度的层次级别进行解码。
76、如权利要求70所述的系统,其中所述固件从所述请求中对要发生所述第一错误的硬件结构进行解码。
77、如权利要求70所述的系统,其中所述固件从所述请求中对所述第一错误的严重性的级别进行解码。
78、如权利要求70所述的系统,其中所述固件从所述请求中对指定所述第一错误的加入时间的触发事件进行解码。
79、如权利要求70所述的系统,其中所述固件从所述软件接收是否存在对所述第一错误的支持的请求,并发送回答到软件。
80、如权利要求79所述的系统,其中所述回答包括与所述第一错误相关的粒度的层次级别。
81、如权利要求69所述的系统,其中所述硬件包括处理器、连接到所述处理器的系统互连、经由所述系统相连从所述处理器接收数据的音频输入/输出设备。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/985502 | 2004-11-09 | ||
US10/985,502 US7587639B2 (en) | 2004-11-09 | 2004-11-09 | System and method for error injection using a flexible program interface field |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1801114A true CN1801114A (zh) | 2006-07-12 |
CN100410894C CN100410894C (zh) | 2008-08-13 |
Family
ID=36462267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101380600A Expired - Fee Related CN100410894C (zh) | 2004-11-09 | 2005-11-08 | 使用灵活编程接口字段用于错误加入的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7587639B2 (zh) |
CN (1) | CN100410894C (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587639B2 (en) * | 2004-11-09 | 2009-09-08 | Intel Corporation | System and method for error injection using a flexible program interface field |
US7941810B2 (en) * | 2006-12-28 | 2011-05-10 | Intel Corporation | Extensible and flexible firmware architecture for reliability, availability, serviceability features |
US8448024B2 (en) * | 2007-05-16 | 2013-05-21 | Intel Corporation | Firmware assisted error handling scheme |
US8296739B2 (en) * | 2008-03-31 | 2012-10-23 | International Business Machines Corporation | Testing soft error rate of an application program |
US8359577B2 (en) * | 2008-12-23 | 2013-01-22 | Honeywell International Inc. | Software health management testbed |
US8863094B2 (en) | 2010-05-18 | 2014-10-14 | International Business Machines Corporation | Framework for a software error inject tool |
US8707104B1 (en) * | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
JP2014531681A (ja) * | 2011-09-29 | 2014-11-27 | インテル・コーポレーション | メモリにエラーを注入する方法および装置 |
US8645797B2 (en) * | 2011-12-12 | 2014-02-04 | Intel Corporation | Injecting a data error into a writeback path to memory |
US9003238B2 (en) | 2012-12-06 | 2015-04-07 | Compellent Technologies | Systems and methods for error simulation and code testing |
JP5877533B2 (ja) * | 2013-01-31 | 2016-03-08 | 三菱電機株式会社 | 計算機装置及び計算機装置の制御方法 |
JP6250604B2 (ja) * | 2015-08-11 | 2017-12-20 | インテル コーポレイション | セキュアなエラーハンドリング |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4759019A (en) * | 1986-07-10 | 1988-07-19 | International Business Machines Corporation | Programmable fault injection tool |
US5671352A (en) * | 1995-07-07 | 1997-09-23 | Sun Microsystems, Inc. | Error injection to a behavioral model |
US5890162A (en) * | 1996-12-18 | 1999-03-30 | Intel Corporation | Remote streaming of semantics for varied multimedia output |
JP3772932B2 (ja) * | 1997-02-21 | 2006-05-10 | ソニー株式会社 | ディスク装置 |
US6728668B1 (en) * | 1999-11-04 | 2004-04-27 | International Business Machines Corporation | Method and apparatus for simulated error injection for processor deconfiguration design verification |
US6519718B1 (en) * | 2000-02-18 | 2003-02-11 | International Business Machines Corporation | Method and apparatus implementing error injection for PCI bridges |
US7500143B2 (en) * | 2000-05-05 | 2009-03-03 | Computer Associates Think, Inc. | Systems and methods for managing and analyzing faults in computer networks |
US6691250B1 (en) * | 2000-06-29 | 2004-02-10 | Cisco Technology, Inc. | Fault handling process for enabling recovery, diagnosis, and self-testing of computer systems |
US7020803B2 (en) * | 2002-03-11 | 2006-03-28 | Hewlett-Packard Development Company, Lp. | System and methods for fault path testing through automated error injection |
US6961874B2 (en) * | 2002-05-20 | 2005-11-01 | Sun Microsystems, Inc. | Software hardening utilizing recoverable, correctable, and unrecoverable fault protocols |
CN1324475C (zh) * | 2002-10-24 | 2007-07-04 | 联想(北京)有限公司 | 一种内存错误产生器及计算机主板内存纠错功能测试方法 |
US7587639B2 (en) * | 2004-11-09 | 2009-09-08 | Intel Corporation | System and method for error injection using a flexible program interface field |
-
2004
- 2004-11-09 US US10/985,502 patent/US7587639B2/en active Active
-
2005
- 2005-11-08 CN CNB2005101380600A patent/CN100410894C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20060112307A1 (en) | 2006-05-25 |
US7587639B2 (en) | 2009-09-08 |
CN100410894C (zh) | 2008-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100410894C (zh) | 使用灵活编程接口字段用于错误加入的系统和方法 | |
US8990657B2 (en) | Selective masking for error correction | |
CN1146790C (zh) | 利用硬件自动擦除存储器中的纠错码差错的方法和装置 | |
US8566672B2 (en) | Selective checkbit modification for error correction | |
US8726292B2 (en) | System and method for communication in a multithread processor | |
US7954021B2 (en) | Solid state drive with flash sparing | |
US8607121B2 (en) | Selective error detection and error correction for a memory interface | |
US6539503B1 (en) | Method and apparatus for testing error detection | |
US5978952A (en) | Time-distributed ECC scrubbing to correct memory errors | |
US20070168768A1 (en) | ECC coding for high speed implementation | |
US20140033180A1 (en) | Establishing cloud debug breakpoints assigned to users | |
US20090217281A1 (en) | Adaptable Redundant Bit Steering for DRAM Memory Failures | |
US20080270842A1 (en) | Computer operating system handling of severe hardware errors | |
CN100416496C (zh) | 更新指令错误状态寄存器 | |
CN1942863A (zh) | 用于在奇偶错误检测之后维持数据完整性的装置和方法 | |
CN101051269A (zh) | 智能平台管理接口韧体架构及其建立方法 | |
US8176388B1 (en) | System and method for soft error scrubbing | |
US7617417B2 (en) | Method for reading input/output port data | |
US8819494B2 (en) | Automatically changing parts in response to tests | |
CN100342346C (zh) | 错误核对与校正功能测试方法 | |
CN117555607A (zh) | 嵌入式多媒体卡的开卡方法及相关设备 | |
CN1834927A (zh) | 错误通知方法及信息处理装置 | |
CN101119233A (zh) | 获取设备运行状态的方法、装置及系统 | |
US9047185B2 (en) | Inadvertent freed storage recovery | |
US8020072B2 (en) | Method and apparatus for correcting data errors |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080813 Termination date: 20181108 |