用于将错误注入存储器的方法和装置制造方法

文档序号:6485147阅读:178来源:国知局
用于将错误注入存储器的方法和装置制造方法
【专利摘要】公开的是用于将错误注入到存储器的装置和方法。在一个实施例中,专用接口包括错误注入系统地址寄存器和耦合到错误注入系统地址寄存器的错误注入掩码寄存器。如果错误注入系统地址寄存器包括匹配传入写地址的系统地址,则错误注入掩码寄存器将错误输出到存储器。
【专利说明】用于将错误注入存储器的方法和装置
【背景技术】发明领域
[0001]本发明的实施例一般涉及用于将错误注入存储器的方法和装置。
[0002]相关技术描述
[0003]为了开发和验证复杂错误处理和错误恢复软件(SW),诸如操作系统(OS)供应商、虚拟机管理器(VMM)等的SW供应商期望能将错误注入到给定系统地址用于软件测试的简
单接口。
[0004]在当前实现中,不存在能用于将错误注入到存储器的简单接口。相反,利用复杂方法,涉及基本输入/输出系统(BIOS)应用和为测试设计的(DFx)错误注入机制,它们用于实现错误注入。
[0005]不幸的是,这些方法复杂且包括很多与每个待测试产品相关联的设计问题。此外,这些方法通常不耐用,因为需要针对每个待测试的产品对它们进行“再创造”。例如,需要将给定的系统地址转换成存储器地址(因为DFx机制对存储器地址起作用)且它们可能还需要来自微代码的帮助以解锁旨在仅用于待测试的特定产品的某些能力。
[0006]因此,有利的是将简单接口用于注入错误以测试产品。
【专利附图】

【附图说明】
[0007]可结合附图从以下详细描述中获得对本发明的更好理解,其中:
[0008]图1示出可用于本发明的实施例的计算机系统体系结构。
[0009]图2示出可用于本发明的实施例的计算机系统体系结构。
[0010]图3是根据本发明的一个实施例的MCH专用接口的框图。
[0011]图4是根据本发明的一个实施例的测试软件流程和MCH专用接口流程(例如,硬件(HW)流程)的流程图400。
【具体实施方式】
[0012]在下面的描述中,出于说明目的,阐述了众多具体细节以便提供对以下描述的本发明的实施例的全面理解。然而,对本领域技术人员将显而易见的是,没有这些具体细节中的一些也可实施本发明的诸实施例。在其他实例中,众所周知的结构和设备以框图形式示出,以避免淡化本发明的实施例的底层原理。
[0013]以下是示例性计算机系统,该计算机系统可用于在下文中讨论的且用于执行本文中详细描述的指令的本发明的实施例。本领域已知的对膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备的其他系统设计和配置也是合适的。一般来说,能够纳入本文中所公开的处理器和/或其它执行逻辑的大量系统和电子设备一般都是合适的。[0014]现在参见图1,所示为根据本发明的一个实施例的计算机系统100的框图。系统100可包括耦合至图形存储器控制器中枢(GMCH) 120的一个或多个处理元件110、115。附加的处理元件115的可选特性在图1中通过虚线来表示。每个处理元件可以是单核,或可替代地包括多核。处理元件可任选地包括除处理核之外的其它片上元件,诸如集成存储器控制器和/或集成I/O控制逻辑。此外,对于至少一个实施例,处理元件的(多个)核可多线程化,因为它们对每个核可包括一个以上的硬件线程上下文。
[0015]图1示出GMCH120可耦合至存储器140,该存储器140可以是例如动态随机存取存储器(DRAM)。对于至少一个实施例,DRAM可以与非易失性高速缓存相关联。GMCH120可以是芯片组或芯片组的一部分。GMCH120可以与(多个)处理器110、115进行通信,并控制处理器110、115与存储器140之间的交互。GMCH120还可担当(多个)处理器110、115和系统100的其它元件之间的加速总线接口。对于至少一个实施例,GMCHl20经由诸如前端总线(FSB) 195之类的多站总线与(多个)处理器110、115进行通信。此外,GMCH120耦合至显示器140 (诸如平板显示器)。GMCH120可包括集成图形加速器。GMCH120还耦合至输入/输出(I/O)控制器中枢(ICH) 150,该输入/输出(I/O)控制器中枢(ICH) 150可用于将各种外围设备耦合至系统100。在图1的实施例中作为示例示出了外部图形设备160以及另一外围设备170,该外部图形设备160可以是耦合至ICH150的分立图形设备。
[0016]替代地,系统100中还可存在附加或不同的处理元件。例如,附加(多个)处理元件115可包括与处理器110相同的附加处理器、与处理器110异类或不对称的附加(多个)处理器、加速器(诸如例如图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列或任何其它处理元件。按照包括体系结构、微体系结构、热、功耗特征等等优点的度量谱,物理资源110、115之间存在各种差别。这些差别会有效显示为处理元件110、115之间的不对称性和异类性。对于至少一个实施例,各种处理元件110、115可驻留在同一管芯封装中。
[0017]现在参见图2,所示为根据本发明的一个实施例的另一计算机系统200的框图。如图2所示,多处理器系统200是点对点互连系统,并且包括经由点对点互连250耦合的第一处理元件270和第二处理元件280。如图2所示,处理元件270和280中的每一个都可以是多核处理器,包括第一和第二处理器核(即,处理器核274a与274b以及处理器核284a与284b)。替代地,处理元件270、280中的一个或多个可以是除处理器之外的元件,诸如加速器或现场可编程门阵列。虽然仅以两个处理元件270、280来示出,但应理解本发明的范围不限于此。在其它实施例中,在给定处理器中可存在一个或多个附加处理元件。
[0018]第一处理元件270还可包括存储器控制器中枢(MCH) 272和点对点(P_P)接口 276和278,如下文描述的,存储器控制器中枢(MCH) 272包括专用接口 273。类似地,第二处理元件280可包括MCH282和P-P接口 286和288,如下文描述的,MCH282包括专用接口 283。处理器270、280可以经由使用点对点(PtP)接口电路278、288的点对点(PtP)接口 250来交换数据。如图2所示,MCH272和282将处理器耦合到相应的存储器,即存储器242和存储器244,这些存储器可以是本地附连到相应处理器的主存储器部分。
[0019]处理器270、280可各自经由使用点对点接口电路276、294、286、298的单独PtP接口 252、254与芯片组290交换数据。芯片组290还可经由高性能图形接口 239与高性能图形电路238交换数据。本发明的实施例可定位与具有任意数量的处理核的任意处理元件内。在一个实施例中,任意处理器核可包括本地高速缓存存储器(未示出)或者以其它方式关联于本地高速缓存存储器(未示出)。此外,共享高速缓存(未示出)可被包括于在这两个处理器的外部但经由p2p互连与这些处理器连接的任一处理器中,从而如果一处理器被置于低功率模式,则任一个或这两个处理器的本地高速缓存信息可被存储在该共享的高速缓存中。第一处理元件270和第二处理元件280可分别经由P-P互连276、286和284耦合到芯片组290。如图2所示,芯片集290包括P-P接口 294和298。此外,芯片组290包括将芯片组290与高性能图形引擎248耦合的接口 292。在一个实施例中,总线249可被用于将图形引擎248耦合到芯片组290。替代地,点对点互连249可耦合这些部件。芯片集290又可以通过接口 296耦合到第一总线216。在一个实施例中,第一总线216可以是外围部件互连(PCI)总线,或诸如PCI Express总线或其它第三代I/O互连总线之类的总线,但本发明的范围并不受此限制。
[0020]如图2所示,各种I/O设备214可连同总线桥218 —起耦合到第一总线216,总线桥218将第一总线216耦合到第二总线220。在一个实施例中,第二总线220可以是低引脚数(LPC)总线。在一个实施例中,各种设备可耦合到第二总线220,包括例如键盘/鼠标222、通信设备226以及数据存储单元228,如可包括代码230的盘驱动器或其他大容量存储设备。进一步地,音频1/0224可以耦合到第二总线220。注意,其它架构是可能的。例如,取代点对点体系结构,系统可以实现多站总线或其它这类体系结构。
[0021]在一个实施例中,处理元件270可包括MCH272,MCH272包括专用接口 273。应意识到其它处理元件可包括MCH,MCH同样包括专用接口(例如,处理元件280的专用接口 283)。如将要描述的,MCH272的专用接口 273可由计算机系统200的测试软件使用以编程将向其中注入错误的系统地址,且可包括掩码寄存器以选择将注入哪种类型的错误。
[0022]现在转到图3,根据本发明的一个实施例示出MCH专用接口 273的框图。在一个实施例中,MCH专用接口 273包括错误注入系统地址寄存器302和耦合到错误注入系统地址寄存器的错误注入掩码寄存器330。如果错误注入系统地址寄存器302包括匹配传入写地址325的系统地址,则错误注入掩码寄存器330将错误输出到存储器350。
[0023]现在将提供MCH专用接口 273的概要。如图3所示,提供错误注入系统地址寄存器302,使得计算机系统的测试软件可编程将向其中注入错误的期望系统地址。还提供逻辑310以查找该经编程的地址和传入请求的地址325之间的匹配。一旦系统地址已经被编程到错误注入系统地址寄存器302,则测试软件可执行对该系统地址325的写。地址匹配然后可触发进入存储器350的该位置的错误(例如,数据333)。可通过对控制哪些位将包含错误的错误注入掩码寄存器330的软件编程来选择错误的类型(经改正或未改正的)。作为示例,MCH专用接口 273可与存储器232相关联的计算机系统200的处理元件270的MCH272联用,但如应意识到的,可与任何计算机系统联用。例如,本发明的实施例可利用图1的计算机系统100实现。
[0024]作为一个示例,如图3所示,出于安全目的,锁定机制301可耦合到错误注入系统地址寄存器302。作为具体示例,可在系统管理模式(SMM)期间解锁该锁定机制301。测试软件可解锁通过反相器322耦合到与门324的锁320,并且可将对寄存器321的写入发送到与门324。由此,可在错误注入系统地址寄存器302中设置有效位304,并且系统被解锁。
[0025]如前面描述的,测试软件可将错误注入系统地址提交到错误注入系统地址寄存器302。判定逻辑块310用于查找测试软件程序写地址325和错误注入系统地址302之间的匹配。具体地,如果存储器写(write to memory)信号309和有效信号304由与门306接收,从而将信号发送到判定逻辑块310,且判定逻辑块310将来自寄存器302的错误注入系统地址与测试软件程序写地址325匹配,则判定逻辑块310将错误注入信号312发送到错误注入掩码寄存器330。
[0026]因此,一旦错误注入系统地址已经被编程到寄存器302中,则测试软件可随后执行对系统地址325的写入,且一旦由判定逻辑块310确定地址匹配,则判定块310可触发错误注入信号312,以通过错误注入掩码寄存器330将其注入到该位置。可通过测试软件预编程控制哪些位将包含错误的错误注入掩码寄存器330的数据掩码寄存器来选择错误的类型(经改正或未改正的)。如图3所看见的,数据错误333可通过数据缓冲器340提交到存储器350,用于测试目的。
[0027]由此,该前述结构和方法允许存储器错误333 (经改正或未改正的)注入存储器350,以通过计算机系统200的测试软件检测和改正软件问题。
[0028]另外参考图4,图4是示出测试软件流程和MCH专用接口流程(例如,硬件(HW)流程)的流程图400。如图4所见,如前所述,测试软件解锁该锁定机制301。接下来,测试软件将X编程到错误注入系统地址寄存器302 (圆404)。应意识到,X是测试软件想要向其注入错误的系统地址。
[0029]接下来,测试软件编程错误注入掩码寄存器330,以导致期望的错误(圆406)。此夕卜,测试软件设置有效位304,以装备硬件逻辑用于注入(圆408)。接下来,测试软件执行对地址X的写入(圆410)。
[0030]转向硬件或MCH专用接口流程,确定是否有存储器写的访问(判定圆420)。如果没有,则事务继续,且没有错误注入(圆422)。然而,如果是存储器写,则确定访问是否针对地址X以及机制是否被装备(判定圆425)。如果没有,则事务继续,且没有错误注入(圆422)。
[0031]然而,如果机制被装备且访问是针对地址X(例如,由逻辑框310确定),则可应用错误注入掩码330 (圆430)。在这种情况下,数据333与错误434被写入存储器350。如前所述,可通过测试软件预编程控制哪些位将包含错误的错误注入掩码寄存器330的数据掩码寄存器来选择错误的类型(经改正或未改正的)。
[0032]此外,测试软件可执行对地址X的读取(圆450),且硬件可检测错误(圆452)。然后,硬件可记录并发信号通知错误(圆454),且错误处理软件可处理错误(圆456)。
[0033]由此,该前述结构和方法允许存储器错误(经改正或未改正的)注入存储器,以通过计算机系统的测试软件检测和改正软件问题。此外,使用前述专用接口和软件方法的实施例可用于满足软件供应商的错误注入需要,软件供应商诸如操作系统供应商和虚拟机管理供应商以及原始设备制造商。前述本发明提供可专门设计用于将错误诸如存储器以进行测试的简单接口。具体地,该方法允许存储器错误(经改正和/或未经改正的)诸如以供检测和改正。本质上,前面描述的结构和方法允许真正的错误诸如到存储器且允许开发和确认错误恢复流程。
[0034]本文公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本发明的实施例可被实现为在包括至少一个处理器、数据储存器系统(包括易失性和非易失性存储器和/或储存元件)、至少一个输入设备以及至少一个输出设备的可编程系统上执行的计算机程序。
[0035]可将程序代码应用至输入数据以执行本文描述的功能并产生输出信息。输出信息可以按已知方式被应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
[0036]程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。程序代码也可以在需要的情况下用汇编语言或机器语言来实现。事实上,本文中描述的机制不仅限于任何特定编程语言的范围。在任一情形下,语言可以是编译语言或解释
;五古
P口口 ο
[0037]至少一个实施例的一个或多个方面可以由存储在机器可读介质上的代表性数据来实现,该数据表示处理器中的各种逻辑,其在被机器读取时使得该机器生成执行本文描述的技术的逻辑。被称为“IP核的这些表示可以被存储在有形的机器可读介质上,并被提供给多个客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。敏此类机器可读存储介质可包括但不限于通过机器或设备制造或形成的粒子的有形排列,包括存储介质,诸如:硬盘;包括软盘、光盘、压缩盘只读存储器(CD-ROM)、可重写压缩盘(CD-RW)以及磁光盘的任何其它类型的盘;诸如只读存储器(ROM)之类的半导体器件;诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)之类的随机存取存储器(RAM);可擦除可编程只读存储器(EPROM);闪存;电可擦除可编程只读存储器(EEPROM);磁卡或光卡;或适于存储电子指令的任何其它类型的介质。
[0038]因此,本发明的实施例还可包括非瞬态有形机器可读介质,该机器可读介质包含用于执行本发明的操作实施例的指令,或包含限定本文中描述的结构、电路、装置、处理器和/或系统特征的诸如HDL之类的设计数据。这些实施例也被称为程序产品。
[0039]本文公开的指令的某些操作可由硬件组件执行,且可体现在机器可执行指令中,该指令用于导致或至少致使电路或其它硬件组件以执行该操作的指令编程。电路可包括通用或专用处理器、或逻辑电路,这里仅给出几个示例。这些操作还可任选地由硬件和软件的组合执行。执行逻辑和/或处理器可包括响应于从机器指令导出的机器指令或一个或多个控制信号以存储指令指定的结果操作数的专用或特定电路或其它逻辑。例如,本文公开的指令的实施例可在图1和2的Iv或多个系统中执彳丁,且指令的实施例可存储在将在系统中执行的程序代码中。另外这些附图的处理元件可利用本文详细描述的详细描述的流水线和/或体系结构(例如有序和无序体系结构)之一。例如,有序体系结构的解码单元可解码指令、将经解码的指令传送到矢量或标量单元等。
[0040]贯穿前述描述,为解释起见,阐明了众多具体细节以提供对本发明的全面理解。然而,对本领域技术人员将显而易见的是,没有这些具体细节也可实践本发明。因此,本发明的范围和精神应根据所附权利要求书来判断。
【权利要求】
1.一种用于将错误注入到存储器的装置,包括: 错误注入系统地址寄存器;以及 耦合到所述错误注入系统地址寄存器的错误注入掩码寄存器,其中如果所述错误注入系统地址寄存器包括匹配传入写地址的系统地址,则错误注入掩码寄存器将错误输出到存储器。
2.如权利要求1所述的装置,其特征在于,所述装置是处理器的存储器控制器中枢(MCH)的组件。
3.如权利要求1所述的装置,其特征在于,利用错误预先编程所述错误注入掩码寄存器。
4.如权利要求3所述的装置,其特征在于,所述错误包括经改正的错误或未改正的错误中的至少一个。
5.如权利要求1所述的装置,其特征在于,还包括耦合到所述错误注入系统地址寄存器的锁定机制,所述锁定机制锁定或解锁所述错误注入系统地址寄存器,使得错误注入掩码寄存器分别被启用来将错误输出到存储器,或不被启用来将错误输出到存储器。
6.如权利要求5所述的装置,其特征在于,所述锁定机制还包括错误注入系统地址寄存器的有效位。
7.如权利要求5所述的装置,其特征在于,还包括逻辑块,其中所述逻辑块将错误注入信号发送到错误注入掩码寄存器,使得错误注入掩码寄存器将错误输出到存储器。
8.如权利要求7所述的 装置,其特征在于,如果所述锁定机制被解锁且所述系统地址匹配所述传入写地址,则逻辑块将错误注入信号发送到错误注入掩码寄存器。
9.一种计算机系统,包括: 存储器; 用于处理指令的处理器;以及 存储器控制中枢(MCH),包括专用接口以将错误注入到存储器,所述专用接口包括: 错误注入系统地址寄存器;以及 耦合到所述错误注入系统地址寄存器的错误注入掩码寄存器,其中如果错误注入系统地址寄存器包括匹配传入写地址的系统地址,则所述错误注入掩码寄存器将错误输出到存储器。
10.如权利要求9所述的计算机系统,其特征在于,利用错误预先编程所述错误注入掩码寄存器。
11.如权利要求10所述的计算机系统,其特征在于,所述错误包括经改正的错误或未改正的错误中的至少一个。
12.如权利要求9所述的计算机系统,其特征在于,还包括耦合到所述错误注入系统地址寄存器的锁定机制,所述锁定机制锁定或解锁所述错误注入系统地址寄存器,使得错误注入掩码寄存器分别被启用来将错误输出到存储器,或不被启用来将错误输出到存储器。
13.如权利要求12所述的计算机系统,其特征在于,所述锁定机制还包括错误注入系统地址寄存器的有效位。
14.如权利要求12所述的计算机系统,其特征在于,还包括逻辑块,其中所述逻辑块将错误注入信号发送到错误注入掩 码寄存器,使得错误注入掩码寄存器将错误输出到存储器。
15.如权利要求14所述的计算机系统,其特征在于,如果所述锁定机制被解锁且所述系统地址匹配所述传入写地址,则逻辑块将错误注入信号发送到错误注入掩码寄存器。
16.一种用于将错误注入到存储器的方法,包括: 在错误注入系统地址寄存器处从测试软件接收系统地址; 确定错误注入系统地址寄存器的系统地址是否匹配传入写地址;以及 如果系统地址匹配所述传入写地址,则命令错误注入掩码寄存器将错误输出到存储器。
17.如权利要求14所述的方法,其特征在于,还包括利用错误预先编程所述错误注入掩码寄存器。
18.如权利要求17所述的方法,其特征在于,所述错误包括经改正的错误或未改正的错误中的至少一个。
19.如权利要求16所述的方法,其特征在于,锁定机制耦合到所述错误注入系统地址寄存器,所述锁定机制锁定或解锁所述错误注入系统地址寄存器,使得错误注入掩码寄存器分别被启用来将错误输出到存储器,或不被启用来将错误输出到存储器。
20.如权利要求19所述的方法,其特征在于,所述锁定机制还包括错误注入系统地址寄存器的有效位。
21.如权利要求19所述的方法,其特征在于,还包括将错误注入信号发送到错误注入掩码寄存器,使得错误注入掩码寄存器将错误输出到存储器。
22.如权利要求21所述的 方法,其特征在于,还包括如果所述锁定机制被解锁且所述系统地址匹配传入写地址,则将错误注入信号发送到错误注入掩码寄存器。
【文档编号】G06F13/14GK103890733SQ201180074534
【公开日】2014年6月25日 申请日期:2011年9月29日 优先权日:2011年9月29日
【发明者】T·伊戈左, K·程, M·J·库马, J·A·瓦尔加斯, G·詹德亚拉 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1