当前位置: 首页 > 专利查询>英特尔公司专利>正文

使用灵活编程接口字段用于错误加入的系统和方法技术方案

技术编号:2851675 阅读:213 留言:0更新日期:2012-04-11 18:40
描述了用于将硬件错误加入到微处理器系统的系统和方法。在一个实施例中,建立了系统软件和系统固件之间的软件接口。因而可以支持用于软件错误处理程序的软件测试和调试。软件接口可以支持查询模式调用和播种模式调用。当发出一个查询模式调用时,可以请求系统固件和硬件是否支持特定类型错误的加入。从该调用的返回可用于制作用于加入的所支持的错误的列表。当发出播种模式调用时,相应的错误可以被加入到硬件中。

【技术实现步骤摘要】

本专利技术一般涉及微处理器系统,更具体地涉及微处理器系统,该系统可以支持通过命令将硬件错误加入系统的软件错误处理程序的测试。
技术介绍
微处理器中的硬件错误可能起因于很多来源,例如宇宙射线穿透、温度过高的热点、电源电压尖峰脉冲以及很多其他来源。这些硬件错误可能波及处理器、平台和软件,产生可能使系统性能降低的数据破坏,导致错误的系统功效,或产生没有记载的数据破坏。为了提高可靠性和可用性,很多微处理器系统可以实现错误检测、错误抑制、错误纠正和错误恢复机制。可以在硬件或系统固件中执行这些功能中的一些。然而,在某些环境中,操作系统软件或应用软件可能需要从硬件接收错误消息,并且使用错误处理程序模块对它们起作用。错误处理程序模块在模块自身的设计和调试期间提出了难题。不向它提供实际的硬件错误就不可能充分地测试其功能。这可以在微处理器厂商的工厂中通过使用专门并且昂贵的硬件工具和测试设备来执行,上述硬件工具和测试设备用于随意地加入硬件错误。这在操作系统软件厂商的工厂或在应用软件厂商的工厂要做到是非常难的。他们可能不希望获得专门而且昂贵的硬件,该硬件可能只能用于有限的一组处理器修正,他们也没有经过训练的人员来操作该硬件。在某些处理器实施例中,可能存在允许随意加入特定错误的错误加入接口。然而,这些接口可能在处理器修正级别之间变化,因而需要用于错误加入控制的任何软件的可扩展再编码。此外,这对于操作系统软件厂商或应用程序厂商可能不是一个实用的方法。附图说明通过实例但不作为限定来说明本公开,在附图中相同的参考数字指的是相同的元件,其中附图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错本文档来自技高网...

【技术保护点】
一种方法,包括:接收来自系统上的软件对于加入第一错误的请求;确定是否存在对所述第一错误的支持;并且当确定存在对所述第一错误的所述支持时,将所述第一错误加入到所述系统。

【技术特征摘要】
US 2004-11-9 10/9855021.一种方法,包括接收来自系统上的软件对于加入第一错误的请求;确定是否存在对所述第一错误的支持;并且当确定存在对所述第一错误的所述支持时,将所述第一错误加入到所述系统。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所述的计算机可读媒介,其中所述请求包括与所述第一错误相关的粒度...

【专利技术属性】
技术研发人员:S马里塞蒂R库拉姆科特K亚马达S布伦登K韦德
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1