使用奇偶校验和冗余行的动态错误处理的制作方法

文档序号:6764568阅读:197来源:国知局
使用奇偶校验和冗余行的动态错误处理的制作方法
【专利摘要】公开了用于使用奇偶校验和冗余行的动态错误校正的发明的实施例。在一个实施例中,一种装置包括存储结构、奇偶校验逻辑、错误存储空间、以及错误事件生成器。存储结构用于存储多个数据值。奇偶校验逻辑用于检测存储结构中存储的数据值中的奇偶校验错误。错误存储空间用于存储检测到奇偶校验错误的指示。错误事件生成器用于响应于奇偶校验错误的指示被存储在错误存储空间中而生成事件。
【专利说明】使用奇偶校验和冗余行的动态错误处理
【技术领域】
[0001]本公开涉及信息处理的领域,并且更特别地,涉及信息处理系统中的错误检测和校正的领域。
【背景技术】
[0002]随着集成电路制造技术中的改善持续提供更为密集的电路,较低的操作电压被用来降低功耗。然而,在诸如被用作处理器中的高速缓冲存储器的静态随机访问存储器之类的存储器结构中,对较大的阵列大小和较低的操作电压的组合增加了存储器单元故障的可能性。因而,这些设备的制造商和用户变得越来越关心错误检测和校正。可以通过将奇偶校验和/或纠错码(ECC)单元与硬件添加到一起以生成并检查奇偶校验和ECC值来保护存储器结构。奇偶校验可以提供可能不足以向错误管理提供鲁棒解决方案的错误检测。另一方面,ECC在管芯面积和流水线复杂性方面的成本可能太高而无法提供所期望的解决方案。
【专利附图】

【附图说明】
[0003]在附图中通过示例而非限制的方式来图示本发明。
[0004]图1图示根据本发明的实施例的包括动态错误处理的信息处理系统。
[0005]图2图示根据本发明的实施例的用于动态错误处理的方法。
[0006]图3图示根据本发明的实施例的用于动态错误处理的方法。
【具体实施方式】
[0007]描述了用于使用奇偶校验和冗余行的动态错误处理的发明的实施例。在本描述中,可以阐述诸如处理器和系统配置之类的许多特定细节,以便提供对本发明的更透彻的理解。然而,将由本领域技术人员领会的是,本发明可以在不具有此类特定细节的情况下实施。另外地,未详细地示出一些公知的结构、电路、以及其它特征,以避免不必要地模糊本发明。例如,未描述基于奇偶校验的错误检测的完整描述,原因在于许多公知的方法可以被用于本发明的实施例中。在本描述中,“O”(或“零”)和“I”(或“一”)可以被用来描述数据或其它信息的二进制数位(“比特”)的值,其中前者可以是表示逻辑“零”或“关断”值的任何电压或其它电平,并且后者可以是表示逻辑“一”或“导通”值的任何此类电平。
[0008]如【背景技术】章节中所描述的,可以将存储元件添加到信息存储结构,以提供信息处理系统中的错误检测和/或校正。本发明的实施例可以被用于任何信息处理系统中的任何信息存储结构。本发明的实施例可以期望用于处理器内的存储器阵列,诸如末级高速缓存,原因在于处理器和系统成本和性能可能对这些数据存储结构的大小特别地敏感。
[0009]图1图示根据本发明的实施例的包括用于存储器阵列的动态错误处理的信息处理系统100。系统100包括处理器110、软件120、非易失性存储设备130、以及实时时钟190。系统100也可以包括任何数量的附加的处理器、设备、存储结构、和/或任何其它组件或元件。[0010]处理器100可以是任何类型的处理器,包括诸如Intel?C0reTM处理器家族或来自Intel?公司或另一公司的其它处理器家族中的处理器之类的通用微处理器、或诸如图形处理器或微控制器之类的专用处理器。处理器110可以包括存储结构140、奇偶校验逻辑150、错误存储空间160、地址映射逻辑170、以及运行单元180。
[0011]软件120可以是安装和/或运行在系统100上的可由处理器110或系统100中的任何其它组件运行的任何软件。例如,软件120可以是图形设备驱动器。如以下进一步描述的,软件120可以包括错误处理例程122。非易失性存储设备130可以是任何类型的非易失性存储设备,诸如磁盘或固态硬盘驱动器。
[0012]存储结构140可以表示存储信息处理系统中的包括数据和/或指令的信息的任何结构,诸如寄存器、高速缓存、或另一类型的存储器结构。例如,存储结构140可以表示处理器110中的末级数据高速缓冲存储器。存储结构140可以包括存储数据或其它信息的数据存储区142、冗余存储区144、以及存储由奇偶校验逻辑150基于数据或其它信息而生成的奇偶校验值的奇偶校验存储结构146。可替代地,奇偶校验存储区146可以被包括在系统100中的任何其它地方。数据存储区142、冗余存储区144、以及奇偶校验存储区146可以包括任何类型的单独的存储元件,诸如存储数据的比特的锁存器或触发器。
[0013]奇偶校验逻辑150可以包括任何电路、逻辑、或其它硬件,以生成被用来检测数据中的错误的奇偶校验值。例如,奇偶校验逻辑150可以包括异或非(exclusive NOR)门,以生成当具有逻辑“ I ”值的输入的数量是奇数时将被设为逻辑“ I ”值并且当具有逻辑“ I ”值的输入的数量是偶数时被设为逻辑“O”值的奇偶校验比特。检查值可以是单个奇偶校验比特或多个奇偶校验比特,其中奇偶校验在任何数量的数据比特之上被计算。奇偶校验值生成可以相对于与数据值的生成、数据值的取出、和/或数据值的存储关联的指令的运行在任何时间执行。例如,可以与数据值的生成并行地、在存储数据值之前、或在存储数据值之后生成奇偶校验值。
[0014]奇偶校验逻辑150也可以包括使用所生成的奇偶校验值来检测数据值中的错误的任何电路、逻辑、或其它硬件。奇偶校验逻辑150可以根据任何其它的已知方法全部地或部分地被实现在专用电路、逻辑、硬件中,或者在还能够执行其它功能的电路、逻辑、或其它硬件内。例如,奇偶校验逻辑150可以被包括在通用算术逻辑单元或处理器110的任何其它运行单元180中。
[0015]如以下进一步描述的,错误存储空间160可以表示存储诸如由奇偶校验逻辑150所生成的信息之类的关于奇偶校验错误的信息的诸如寄存器之类的任何类型的信息存储结构。错误事件生成器162可以表示响应于将信息加载或写到错误存储空间160中而生成中断或其它事件的任何电路或其它硬件。
[0016]地址映射逻辑170可以包括用于转换地址的任何电路、逻辑、或其它硬件。例如,在其中存储结构140是高速缓冲存储器的实施例中,地址映射逻辑170可以将高速缓存线或行的逻辑地址转换为高速缓存线或行的物理地址。
[0017]图2图示根据本发明的实施例的用于动态错误处理的方法200。尽管方法实施例不限于该方面中,在图2的方法实施例的描述中可以对图1的实施例的元件进行引用。
[0018]在框210中,生成、取出、或以其它方式提供具有第一宽度的第一数据值;例如,可以由诸如处理器110中的运行单元180之类的运行单元来生成一个字节的数据。在框212中,由奇偶校验逻辑150基于该第一数据值来生成第一奇偶校验值。在框214中,在存储结构140中的第一位置中存储该第一数据值;例如,在数据存储区142的第一行中。在框216中,在存储结构140中的第二位置中存储该第一奇偶校验值;例如,在与数据存储区142的第一行对应的奇偶校验存储区146中的位置中。
[0019]在框220中,例如结合由运行单元180对要求第一数据值的指令的运行来读取第一位置(其中存储了第一数据值)的内容。在框222中,读取第二位置(其中存储了第一奇偶校验值)的内容。在框224中,基于第一位置的内容来生成第二奇偶校验值。在框226中,将第二奇偶校验值与第二位置(其中存储了第一奇偶校验值)的内容相比较。如果它们相等,那么在第一位置的内容中未检测到错误(例如,自存储了第一数据值和第一奇偶校验值以来,第一位置或第二位置的内容都未被错误改变)。如果它们不相等,那么在第一位置的内容中检测到错误(例如,自存储了第一数据值和第一奇偶校验值以来,第一位置或第二位置的内容已经被错误改变),并且方法200在框230中继续。
[0020]在框230中,在错误存储空间160中存储关于奇偶校验错误的检测的信息。所存储的信息可以包括错误的位置(例如,数据存储区142的行或线)。在其中存储结构140划分成存储体(bank)的实施例中,位置信息可以包括存储体标识符、子存储体标识符、以及线标识符。在框232中,错误事件生成器162识别对错误存储空间160的写入,从而触发中断或其它事件。在框234中,识别中断。在框236中,响应于中断而发起错误处理例程122。
[0021]在框240中,错误处理例程122读取错误存储空间160以确定错误的位置(例如,行)。在框242中,错误处理例程122可以执行对于处理和/或防止错误的传播所需或期望的任何操作,诸如冲洗(flush)其中可以使用框222中所读取的数据的流水线或使所述流水线无效。在框244中,错误处理例程122可以清理错误存储空间160,以便为识别数据存储区142中的另一错误做准备。在框246中,错误处理例程122将错误的位置存储在非易失性存储设备130中。在框248中,错误处理例程122对地址映射逻辑170重新编程,以利用来自冗余存储区144的未使用的位置或行来替换其中找到了错误的位置或行。例如,地址映射逻辑170可以被重新编程为使得对具有错误的位置或行的访问被重新指引至冗余存储区144中的位置或行。
[0022]在框250中,系统100可以下电。在框252中,系统100可以上电并且可以开始系统100的引导。在框254中,软件120可以读取非易失性存储设备130,以确定数据存储区142中的任何先前找到的错误的位置。在框256中,软件120可以对地址映射逻辑170重新编程,以例如通过将对其中找到了错误的位置或行的访问重新指引至冗余存储区144中的未使用的位置或行,而利用冗余存储区144中的未使用的位置或行来替换其中找到了错误的位置或行。
[0023]在方法200中,在非易失性存储器中存储关于错误的信息,以使得每次引导系统时,能够利用冗余行来替换被发现包含错误的位置或行。因而,不使用易受低操作电压处的故障影响的存储器位置。然而,可以期望在由低操作电压所引起的错误和软错误之间进行区分。
[0024]图3图示根据本发明的实施例的用于在由低操作电压所引起的错误和软错误之间进行区分的方法300。在框310中,例如,如在方法200中的框238中那样,响应于检测到数据存储区142中的错误而发起错误处理例程122。[0025]在框320中,错误处理例程122读取错误存储空间160以确定错误的位置(例如,行)。在框322中,错误处理例程122在错误日志中记录错误的位置。在框324中,错误处理例程122在错误日志中记录检测到错误的时间(例如,使用基于实时时钟190的值的时间戳)。在框326中,错误处理例程122可以执行对于处理和/或防止错误的传播所需或期望的任何操作,诸如冲洗其中可以使用框222中所读取的数据的流水线或使所述流水线无效。在框328中,错误处理例程122可以清理错误存储空间160,以便为识别数据存储区142中的另一错误做准备。
[0026]在框330中,系统100继续操作预定的时间段,例如十二小时。预定的时间段的长度可以基于任何期望的准则来选择,诸如系统100在其中的环境和错误保护的期望级别。在框332中,在未检测到与框322中所记录的位置相同的位置处的第二错误的情况下,预定的时间段到期。在框334中,清理与框322和324相关的错误日志条目。因为错误在预定的时间段内未重新发生,所以基于错误归因于软错误而不是低操作电压的结论而执行框334。因而,可以忽视错误。然而,如果在预定的时间段内在相同的位置处的确发生第二错误,那么可以根据框246和248来处理第二错误。
[0027]在本发明的范围内,图2和3中所图示的方法可以采用不同的次序来执行,在所图示的框被省略、附加的框被添加或者对经重新排序、被省略、或附加的框的组合的情况下执行。例如,框214和216可以同时执行,并且框220和222也是;这些仅是可能的对于方法200和300的几个变型。
[0028]因而,已经描述了用于动态错误处理的发明的实施例。虽然某些实施例已经被描述并且示出在附图中,但要理解的是,此类实施例仅说明而不是局限本广泛发明,并且本发明不限于所示出和描述的特定构造和布置,原因在于本领域普通技术人员在研究本公开后可以进行各种其它修改。在其中增长很快并且不容易预见进一步的进展的诸如此的技术的领域中,在不背离本公开的原理或所附权利要求的范围的情况下,所公开的实施例可以如通过实现技术进展而促进的在布置和细节方面可容易地修改。
【权利要求】
1.一种装置,包括: 存储结构,用于存储多个数据值; 奇偶校验逻辑,用于检测存储结构中存储的数据值中的奇偶校验错误; 错误存储空间,用于存储检测到奇偶校验错误的指示;以及 错误事件生成器,用于响应于奇偶校验错误的指示被存储在错误存储空间中而生成事件。
2.如权利要求1所述的装置,其中存储结构包括存储多个数据值的数据存储区和存储多个奇偶校验值的奇偶校验存储区,多个奇偶校验值的每个对应于多个数据值之一。
3.如权利要求2所述的装置,其中奇偶校验逻辑还用于生成多个奇偶校验值。
4.如权利要求2所述的装置,还包括地址映射逻辑,并且其中存储结构还包括冗余存储区,并且其中地址映射逻辑要被重新编程以将对数据存储区中的第一位置的访问重新指引至冗余存储区中的第二位置。
5.一种方法,包括: 由硬件检测存储结构中的第一位置中的第一奇偶校验错误; 由硬件存储关于检测到第一奇偶校验错误的信息; 由硬件响应于存储所述信息而触发事件; 由软件对所述事件进行响应。
6.如权利要求5所述的方法,其中所述信息包括第一奇偶校验错误的第一位置。
7.如权利要求6所述的方法,其中进行响应包括从错误存储空间读取第一位置信息。
8.如权利要求7所述的方法,其中进行响应还包括对地址映射逻辑重新编程以将对第一位置的访问重新指引至存储结构中的第二位置。
9.如权利要求8所述的方法,其中第一位置在存储结构中的数据存储区中,并且第二位置在存储结构中的冗余存储区中。
10.如权利要求7所述的方法,其中进行响应还包括在非易失性存储设备中存储第一位置信息。
11.如权利要求5所述的方法,其中进行响应包括清理错误存储位置。
12.如权利要求7所述的方法,其中进行响应还包括在错误日志中记录第一位置信息。
13.如权利要求12所述的方法,其中进行响应还包括在错误日志中记录第一奇偶校验错误的时间戳。
14.如权利要求13所述的方法,进一步包括在未检测到第一位置中的第二奇偶校验错误的情况下,在预定的时间段到期之后清理错误日志。
15.—种系统,包括: 处理器,包括: 存储结构,用于存储多个数据值, 奇偶校验逻辑,用于检测存储结构中存储的数据值中的奇偶校验错误, 错误存储空间,用于存储检测到奇偶校验错误的指示;以及 错误事件生成器,用于响应于奇偶校验错误的指示被存储在错误存储空间中而生成事件;以及 非易失性存储设备,用于存储奇偶校验错误的第一位置。
16.如权利要求15所述的系统,其中存储结构包括存储多个数据值的数据存储区和存储多个奇偶校验值的奇偶校验存储区,多个奇偶校验值的每个对应于多个数据值之一。
17.如权利要求16所述的系统,其中奇偶校验逻辑还用于生成多个奇偶校验值。
18.如权利要求16所述的系统,其中所述处理器还包括地址映射逻辑,并且其中存储结构还包括冗余存储区,并且其中地址映射逻辑要被重新编程以将对数据存储区中的第一位置的访问重新指引至冗余存储区中的第二位置。
19.如权利要求18所述的系统,进一步包括实时时钟,用于提供奇偶校验错误的时间戳。
20.如权利要求19所述的系统,其中所述处理器运行错误处理例程以对检测到奇偶校验错误进 行响应。
【文档编号】G11C29/42GK103988182SQ201280062047
【公开日】2014年8月13日 申请日期:2012年12月13日 优先权日:2011年12月16日
【发明者】A.科克尔, S.沙, A.纳瓦莱, M.拉马多斯, S.K.达马拉祖 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1