用于在失效操作之后检测高速缓冲存储器中的有效指示符中的位翻转的高速缓冲存储器错误检测电路,以及相关方法和基于处理器的系统与流程

文档序号:11814660阅读:303来源:国知局
用于在失效操作之后检测高速缓冲存储器中的有效指示符中的位翻转的高速缓冲存储器错误检测电路,以及相关方法和基于处理器的系统与流程

本申请案主张2014年4月18日申请且标题为“用于在失效操作之后检测高速缓冲存储器中的有效指示符中的位翻转的高速缓冲存储器错误检测电路,以及相关方法和基于处理器的系统”的第14/256,360号美国专利申请案的优先权,其以全文引用的方式并入本文中。

技术领域

本发明的领域涉及检测基于处理器的系统中的高速缓冲存储器中的位翻转。



背景技术:

存储器单元是计算机数据存储装置的基本构建块,也被称为“存储器”。计算机系统可从存储器读取数据或将数据写入到存储器。作为实例,存储器可用以提供中央处理单元(CPU)系统中的高速缓冲存储器。高速缓冲存储器是将存储存储在主存储器中频繁存取的存储地址处的数据的复本的较小、较快的存储器,或用以减少存储器存取等待时间的较高层级高速缓冲存储器。因此,高速缓冲存储器是可由CPU用来减少存储器存取时间的存储器。

高速缓冲存储器包括标记阵列和数据阵列。标记阵列含有也被称作“标记”的地址。所述标记提供数据阵列中的数据存储位置的索引。标记阵列中的标记和存储在数据阵列中的标记的索引处的数据也被称作“高速缓存行”或“高速缓存条目”。如果作为存储器存取请求的一部分提供到高速缓冲存储器的存储器地址或其部分与标记阵列中的标记匹配,那么这被称为“高速缓存命中”。高速缓存命中意味着数据阵列中的在匹配标记的索引处所含有的数据含有对应于主存储器和/或较高层级高速缓冲存储器中的所请求存储器地址的数据。数据阵列中的在匹配标记的索引处所含有的数据可用于存储器存取请求,而不必须存取具有较大存储器存取延时的主存储器或较高层级高速缓冲存储器。然而,如果所述存储器存取请求的存储地址或其部分并不与标记阵列中的标记匹配,或如果高速缓存条目以其它方式无效,那么这被称为“高速缓冲存储器未中”。在高速缓存未中的情况下,数据阵列被认为不含有可满足存储器存取请求的数据。

对于高速缓存命中,不仅存储器存取请求的存储器地址必须与标记阵列中的标记匹配,而且对应于所述所匹配的标记的高速缓存条目必须也是有效的。就此而言,为高速缓冲存储器中的每一高速缓存条目提供有效指示符(例如有效位),以指示高速缓存条目的有效性。因此,所述有效指示符也在高速缓冲存储器存取中作为高速缓冲存储器错误逻辑的一部分来查询。当存储在高速缓存条目的数据阵列中的数据不再有效时,可将所述有效指示符设定成无效状态。所述有效指示符还提供用于删除高速缓存条目的方便方法。为了删除高速缓存条目,可简单地将对应于待删除的高速缓存条目的有效指示符设定成无效状态(例如逻辑零‘0’值,其中逻辑一‘1’值指示有效状态),相对于为所述高速缓存条目覆写存储在数据阵列中的数据。因此,如果随后在用有效数据填充之前存取删除的高速缓存条目,那么所存取的高速缓存条目的有效指示符将表示高速缓存条目的无效状态。在此实例中,有效指示符将致使所述高速缓冲存储器针对高速缓存条目存取产生高速缓冲存储器未中。然而,如果有效指示符中出现无意位翻转,从而致使有效指示符不恰当地指示无效高速缓存条目的有效状态,例如从辐射或电涌,那么当存取此无效高速缓存条目时,高速缓冲存储器将产生错误的高速缓存命中,相对于真实高速缓冲存储器未中。因此,可因有效的指示符位翻转而针对所述存储器存取请求从高速缓冲存储器提供无效数据。

因此,高速缓冲存储器设计中希望考虑有效指示符中的位翻转的可能性。解决高速缓冲存储器中的有效指示符中的位翻转的一种方法是防止位翻转发生。举例来说,所述有效指示符可为抗辐射的,以使所述有效指示符较不容易发生翻转。然而,抗辐射可以减小高速缓冲存储器的性能的方式增加成本或电路复杂性。

防止高速缓冲存储器中的有效指示符中发生位翻转的一种替代方法是检测有效指示符中的位翻转。一种检测有效指示符中的位翻转的方法是复制高速缓冲存储器中的每一高速缓存条目中的有效指示符。高速缓冲存储器被设计成仅在所存取的高速缓存条目的两个有效指示符均有效的情况下产生高速缓存命中。因此,如果所述有效指示符中的一者中发生位翻转,那么复制有效指示符将不匹配。然而,复制高速缓冲存储器中的高速缓存条目中的有效指示符需要高速缓冲存储器中的额外电路。由于为确定所存取的高速缓存条目的有效指示符是否匹配所需的额外逻辑提供复制的有效指示符,因此高速缓冲存储器的存取等待时间和高速缓冲存储器存取所消耗的能量也可增加。并且,如果给定高速缓存条目的所复制的有效指示符中发生相同的位翻转,那么有效指示符仍将匹配且可能产生错误的高速缓存命中。

检测高速缓冲存储器中的有效指示符中的位翻转的另一方法是在奇偶校验运算和奇偶校验中包含有效指示符。奇偶校验逻辑可提供于高速缓冲存储器中,以产生高速缓存条目或其部分的奇偶校验(例如奇偶校验位或字),其包含高速缓存条目的填充物上的高速缓存条目的有效指示符。当在高速缓冲存储器中存取高速缓存条目时,检查奇偶校验。如果已发生无意的位翻转,那么所产生的奇偶校验将不与高速缓存条目的奇偶校验或其部分匹配,且因此高速缓冲存储器未中将由高速缓冲存储器产生。因此,如果高速缓存条目的有效指示符包含于奇偶校验的产生中,那么有效指示符中的位翻转将导致奇偶校验失配,其将用以产生高速缓冲存储器未中或用信号通知错误。然而,提供有效指示符作为奇偶校验指示符的一部分可能是不利的。如果有效指示符包含于高速缓存条目的奇偶校验中,那么当高速缓冲存储器中的高速缓存条目改变时,必须重新产生奇偶校验。因此,如果高速缓存条目被删除,那么有效指示符就无法简单地设定成无效状态。还必须产生新的奇偶校验指示符,且存储在高速缓存条目中,从而增加高速缓存条目删除操作的等待时间和能量。如果高速缓冲存储器支持“闪存失效”或“选择性失效”操作,其允许通过简单地使有效指示符失效,来使高速缓冲存储器中的多个高速缓存条目同时且快速地失效。如果高速缓冲存储器的有效指示符包含于高速缓存条目的奇偶校验中,对于每一高速缓冲存储器闪存失效或选择性失效操作,还必须重新产生每一失效的高速缓存条目的奇偶校验。



技术实现要素:

本文所揭示的方面包含高速缓冲存储器错误检测电路,用于在失效操作之后检测高速缓冲存储器中的有效指示符(例如有效位)中的位翻转。还揭示相关方法和基于处理器的系统。如果高速缓存命中因失效操作之后对高速缓存条目(例如标签)的存取而产生,但在再建立高速缓存条目之前,与高速缓存条目相关联的有效指示符中已发生位翻转。这是因为有效指示符应指示无效状态(对于高速缓冲存储器未中),如相对于失效操作之后和高速缓存条目的重新建立之前的有效状态(对于高速缓存命中)。因此,在本文所揭示的方面中,当有效指示符指示高速缓冲存储器中的所存取高速缓存条目的有效状态时,高速缓冲存储器错误检测电路经配置以确定在重新建立高速缓存条目之前,是否对所述高速缓存条目执行失效操作。如果对高速缓存条目执行失效操作,那么有效指示符中已发生位翻转,因为有效指示符应指示无效状态,致使将产生高速缓冲存储器未中。所述有效指示符应指示无效状态,因为在失效操作之后,所述有效指示符设定成无效状态。所述高速缓冲存储器错误检测电路可致使产生高速缓冲存储器未中,或针对所存取的高速缓存条目将指示错误,因此,即使高速缓存条目的有效指示符归因于位翻转而指示有效状态。

因此,在本文所揭示的方面中,为了使高速缓冲存储器错误检测电路确定在高速缓存条目的重新建立之前何时已发生失效操作,提供失效间隔指示符(例如计数器)。失效间隔指示符针对高速缓冲存储器上执行的每一失效操作推进失效间隔状态(例如计数)。当在高速缓冲存储器中建立高速缓存条目时,失效间隔状态,或其经编码版本,存储在高速缓存条目中。如果随后存取的高速缓存条目的有效指示符指示有效状态,那么高速缓冲存储器错误检测电路确认失效操作尚未出现。如果当建立高速缓存条目时原先存储或编码在高速缓存条目中的失效间隔状态不是所存取的高速缓存条目的有效指示符指示有效状态时的当前失效间隔状态,此为失效操作之后与高速缓存条目相关联的有效指示符中已发生位翻转的指示。这是因为在失效操作之后,所存取的高速缓存条目的有效指示符应指示无效状态,如相对于有效状态,因为失效操作迫使所述有效指示符成为无效状态。因此,在此实例中,高速缓冲存储器错误检测电路经配置以致使当在检测到的失效操作之后在与所存取的高速缓存条目相关联的有效指示符中检测到位翻转时,将产生高速缓冲存储器未中(相对于高速缓存命中)或错误指示,以便避免使用存储在数据阵列中的对应于所述高速缓存条目的数据。

因为当建立高速缓存条目时,失效间隔状态存储或编码在高速缓冲存储器中的高速缓存条目中,所以高速缓冲存储器错误检测电路可检测高速缓冲存储器中的有效指示符中的位翻转,而不使保护有效指示符使其免于抗辐射,或包含高速缓存条目的奇偶校验中的有效指示符。如果有效指示符包含于高速缓存条目的奇偶校验中以检测有效指示符位翻转,那么除迫使有效指示符处于无效状态之外,将必须在高速缓冲存储器闪存失效操作上重新计算每一高速缓存条目的奇偶校验,因此实质上增加闪存失效操作的等待时间和能量。然而,如果在建立后失效间隔状态即刻存储在每一高速缓存条目中,那么对于高速缓冲存储器中的每一高速缓存条目,必须包含额外位。然而,在本文所揭示的其它方面中,为了避免需要将此额外存储包含在高速缓冲存储器中的每一高速缓存条目,以在建立高速缓存条目时存储失效间隔状态,失效间隔状态可或者用存储在高速缓存条目中的现有高速缓存条目奇偶校验来编码。因此,在此后一实例中,高速缓冲存储器中将仅需要失效间隔指示符的开销以及用以分别在高速缓存条目建立和存取后编码和检查高速缓存条目的奇偶校验中的当前失效间隔状态的逻辑。

就此来说,在一个方面中,提供用于检测高速缓冲存储器中的有效指示符中的位翻转的高速缓冲存储器错误检测电路。所述高速缓冲存储器错误检测电路包括至少一个失效间隔指示符,其经配置以基于高速缓冲存储器中执行的失效操作,推进失效间隔状态(例如使计数器递增)。高速缓冲存储器错误检测电路进一步包括冗余信息指示符产生电路,其经配置以响应于高速缓冲存储器中至少一个高速缓存条目的建立,基于失效间隔状态来产生至少一个高速缓存条目中的每一者的冗余信息指示符。高速缓冲存储器错误检测电路还包括至少一个冗余信息指示符验证电路。所述冗余信息指示符验证电路响应于高速缓冲存储器中的所存取的高速缓存条目有效指示符指示有效状态,经配置以接收高速缓冲存储器中的所存取高速缓存条目的冗余信息指示符。所述冗余信息指示符验证电路还经配置以从至少一个失效间隔指示符接收失效间隔状态,且基于所述失效间隔状态产生当前冗余信息指示符。所述冗余信息指示符验证电路进一步经配置以将所存取的高速缓存条目的冗余信息指示符与当前冗余信息指示符进行比较,且产生高速缓存条目错误指示符。所述高速缓存条目错误指示符可基于冗余信息指示符与当前冗余信息指示符的比较,指示所存取的高速缓存条目中是否出现位翻转。

在一个方面中,提供用于检测高速缓冲存储器中的有效指示符中的位翻转的高速缓冲存储器错误检测电路。高速缓冲存储器错误检测电路包括用于基于高速缓冲存储器上执行的失效操作来推进失效间隔状态的装置。所述高速缓冲存储器错误检测电路进一步包括用于响应于至少一个高速缓存条目的建立,基于失效间隔状态产生高速缓冲存储器中的至少一个高速缓存条目中的每一者的冗余信息指示符的装置。所述高速缓冲存储器错误检测电路还包括:用于响应于高速缓冲存储器中的所存取的高速缓存条目的有效指示符指示有效状态,接收高速缓冲存储器中的所存取的高速缓存条目的冗余信息指示符,接收失效间隔状态,基于所述失效间隔状态产生当前冗余信息指示符,以及将所述所存取的高速缓存条目的冗余信息指示符与当前冗余信息指示符进行比较且产生高速缓存条目错误指示符的装置。所述高速缓存条目错误指示符可基于冗余信息指示符与当前冗余信息指示符的比较,指示所存取的高速缓存条目中是否出现位翻转。

在另一方面中,提供一种在失效操作之后检测来自高速缓冲存储器中的有效指示符中的位翻转的高速缓冲存储器错误的方法。所述方法包括基于高速缓冲存储器上执行的失效操作来推进至少一个失效间隔指示符的失效间隔状态,以及响应于建立至少一个高速缓存条目,产生高速缓冲存储器中的至少一个高速缓存条目中的每一者的冗余信息指示符。所述方法进一步包括接收高速缓冲存储器中的所存取高速缓存条目的冗余信息指示符,以及从所述至少一个失效间隔指示符接收失效间隔状态。所述方法还包括基于失效间隔状态产生当前冗余信息指示符,将所存取的高速缓存条目的冗余信息指示符与当前冗余信息指示符进行比较,以及产生高速缓存条目错误指示符。所述方法还可包括在基于冗余信息指示符与当前冗余信息指示符的比较,在所存取的高速缓存条目中出现位翻转的情况下,产生高速缓存条目错误指示符。

在另一方面中,提供一种上面存储有计算机可执行指令以致使基于处理器的高速缓冲存储器错误检测电路检测高速缓冲存储器中的有效指示符的位翻转的非暂时性计算机可读媒体。上面存储有计算机可执行指令的所述非暂时性计算机可读媒体致使基于处理器的高速缓冲存储器错误检测电路基于高速缓冲存储器上执行的失效操作,推进至少一个失效间隔指示符的失效间隔状态;响应于建立至少一个高速缓存条目,针对高速缓冲存储器中的至少一个高速缓存条目中的每一者产生冗余信息指示符;接收高速缓冲存储器中的所存取的高速缓存条目的冗余信息指示符;从至少一个失效间隔指示符接收失效间隔状态,基于失效间隔状态产生当前冗余信息指示符;以及将所存取的高速缓存条目的冗余信息指示符与当前冗余信息指示符进行比较。

附图说明

图1是高速缓冲存储器中提供的示范性高速缓冲存储器错误检测电路的示意图,其中高速缓冲存储器错误检测电路经配置以检测高速缓冲存储器上执行的失效操作之后高速缓冲存储器中的有效指示符中的位翻转;

图2是说明图1中的高速缓冲存储器中的一系列示范性高速缓存条目事件的表,其示范在高速缓冲存储器上执行失效操作之后,高速缓存条目的有效指示符中的位翻转的出现率,以及图1中的高速缓冲存储器错误检测电路使用经编码的冗余信息指示符来检测有效指示符的位翻转的能力;

图3是说明用于针对高速缓冲存储器上执行的每一失效操作,推进图1中的高速缓冲存储器错误检测电路的失效间隔指示符中的失效间隔状态的示范性过程;

图4是说明图1中的高速缓冲存储器错误检测电路中的冗余信息指示符产生电路在高速缓冲存储器中的建立后,从失效间隔指示符接收将用以编码高速缓存条目中的冗余信息指示符的当前失效间隔状态的示范性过程的流程图;

图5是说明图1中的高速缓冲存储器错误检测电路中的冗余信息指示符验证电路在所存取的高速缓存条目的建立以及失效间隔指示符中的当前失效间隔状态期间,基于编码有所存取的高速缓存条目的冗余信息指示符,检测高速缓冲存储器中的所存取的高速缓存条目的有效指示符中是否已发生位翻转的示范性过程;

图6是提供于高速缓冲存储器中的另一示范性高速缓冲存储器错误检测电路的示意图,其中所述高速缓冲存储器错误检测电路经配置以在所述高速缓冲存储器上执行的失效操作之后检测高速缓冲存储器中的有效指示符中的位翻转,其中失效间隔指示符编码在对应于所存取的高速缓存条目的检错码(例如奇偶校验)中;

图7是说明图6中的高速缓冲存储器中的一系列示范性高速缓存条目事件的表,其示范在对所述高速缓冲存储器执行失效操作之后用于高速缓存条目的有效指示符中的位翻转的出现率,以及图6中的高速缓冲存储器错误检测电路使用经编码冗余信息指示符作为所存取的高速缓存条目的检错码的一部分来检测有效指示符的位翻转的能力;

图8是可提供于图6中的高速缓冲存储器错误检测电路中的示范性冗余信息指示符验证电路的示意图,其中所述冗余信息指示符验证电路经配置以在高速缓冲存储器中的高速缓存条目的建立后,即刻基于编码有来自失效间隔指示符的失效间隔状态的相关联冗余信息指示符来检测所存取高速缓存条目的有效指示符中的位翻转;

图9是可提供于图6中的高速缓冲存储器错误检测电路中的示范性冗余信息指示符产生电路的示意图,其中所述冗余信息指示符产生电路经配置以基于对应于待建立的所存取高速缓存条目的经编码检错码以及在所述所存取高速缓存条目的建立时来自所述失效间隔指示符的失效间隔状态而产生冗余信息指示符;

图10是说明图9中的冗余信息指示符产生电路接收来自待编码的失效间隔指示符的当前失效间隔状态作为高速缓冲存储器中的所建立高速缓存条目的检错码的一部分的示范性过程的流程图;

图11是说明图8中的冗余信息指示符验证电路基于编码有所建立的高速缓存条目的失效间隔状态的冗余信息指示符以及失效间隔指示符中的当前失效间隔状态来检测高速缓冲存储器中的所存取高速缓存条目的有效指示符中是否已发生位翻转的示范性过程的流程图;以及

图12是可包含高速缓冲存储器的示范性基于处理器的系统的框图,所述高速缓冲存储器包含经配置以在对高速缓冲存储器的高速缓存条目执行失效操作之后检测高速缓冲存储器中的有效指示符中的位翻转的任何高速缓冲存储器错误检测电路。

具体实施方式

本文所揭示的方面包含高速缓冲存储器错误检测电路,用于在失效操作之后检测高速缓冲存储器中的有效指示符(例如有效位)中的位翻转。还揭示相关方法和基于处理器的系统。如果高速缓存命中因失效操作之后对高速缓存条目(例如标签)的存取而产生,但在再建立高速缓存条目之前,与高速缓存条目相关联的有效指示符中已发生位翻转。这是因为有效指示符应指示无效状态(对于高速缓冲存储器未中),如相对于失效操作之后和高速缓存条目的重新建立之前的有效状态(对于高速缓存命中)。因此,在本文所揭示的方面中,当有效指示符指示高速缓冲存储器中的所存取高速缓存条目的有效状态时,高速缓冲存储器错误检测电路经配置以确定在重新建立高速缓存条目之前,是否对所述高速缓存条目执行失效操作。如果对高速缓存条目执行失效操作,那么有效指示符中已发生位翻转,因为有效指示符应指示无效状态,致使将产生高速缓冲存储器未中或将指示错误。所述有效指示符应指示无效状态,因为在失效操作之后,所述有效指示符设定成无效状态。所述高速缓冲存储器错误检测电路可致使产生高速缓冲存储器未中,或针对所存取的高速缓存条目将指示错误,因此,即使高速缓存条目的有效指示符归因于位翻转而指示有效状态。

就此来说,图1是高速缓冲存储器12中提供的示范性高速缓冲存储器错误检测电路10的示意图。高速缓冲存储器12包括标记阵列14和数据阵列16。高速缓冲存储器12可建立标记阵列14和数据阵列16中的高速缓存条目18(0)到18(N),其中‘N+1”是高速缓冲存储器12中的高速缓存条目18的数目。通过将相关联的标签20(0)到20(N)存储在标记阵列14中来建立高速缓存条目18(0)到18(N)。高速缓存条目18(0)到18(N)的建立还包括将对应的数据条目22(0)到22(N)存储在数据阵列16中。所述数据条目22(0)到22(N)可对应于存储在较高层级存储器(例如较高层级高速缓冲存储器或主存储器)中的数据。在高速缓存条目18(0)到18(N)的建立后,与每一高速缓存条目18(0)到18(N)相关联的有效指示符24(0)到24(N)设定成有效状态(例如存储逻辑高“1”),其指示高速缓存条目18(0)到18(N)的有效性。如果高速缓存条目18(0)到18(N)不再有效,那么不再有效的高速缓存条目18(0)到18(N)的对应有效指示符24(0)到24(N)可改变为无效状态(例如存储逻辑低“0”),来使高速缓存条目18(0)到18(N)失效。所述有效指示符24(0)到24(N)可用以确定针对相应的高速缓存条目18(0)到18(N)是否应产生高速缓冲存储器未中或其它错误。

继续参考图1,当希望使高速缓存条目18(0)到18(N)中的高速缓存条目18失效时,可对将失效的高速缓存条目18执行失效操作。在一失效操作中可使一个高速缓存条目18失效,或作为对高速缓冲存储器12执行的快闪失效操作的一部分,可使整个高速缓冲存储器12或多个高速缓存条目18(0)到18(N)失效。在接收到在失效启用输入28上接收到的失效启用信号26后,即刻起始在图1中的高速缓冲存储器12中的高速缓存条目18(0)到18(N)中的一或多者上执行的失效操作。作为响应,高速缓冲存储器12将与失效的高速缓存条目18(0)到18(N)相关联的有效指示符24(0)到24(N)设定为无效状态。如果对高速缓冲存储器12执行快闪失效操作来使所有的高速缓存条目18(0)到18(N)失效,那么高速缓冲存储器12将对应于所有高速缓存条目18(0)到18(N)的所有有效指示符24(0)到24(N)的状态设定为无效状态。

继续参考图1,如果高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)在失效操作后但在高速缓存条目18(0)到18(N)的重新建立之前指示有效状态,则已知与高速缓存条目18(0)到18(N)相关联的有效指示符24(0)到24(N)中已发生位翻转。这是因为在失效操作之后、在重新建立高速缓存条目18(0)到18(N)之前,有效指示符24(0)到24(N)应指示无效状态(对于高速缓冲存储器未中),而非有效状态(对于高速缓存命中)。因此,当有效指示符24(0)到24(N)对于高速缓冲存储器12中的所存取高速缓存条目18(0)到18(N)指示有效状态时,如下文将更详细地论述,则提供于高速缓冲存储器错误检测电路10中的冗余信息指示符验证电路30可确定在高速缓存条目18(0)到18(N)的重新建立之前,是否对高速缓存条目18(0)到18(N)执行失效操作。如果在高速缓存条目18(0)到18(N)的重新建立之前,对高速缓存条目18(0)到18(N)执行失效操作,则图1中的高速缓冲存储器错误检测电路10可致使产生高速缓冲存储器未中,或产生所存取的高速缓存条目18(0)到18(N)的错误,即使高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)因有效指示符24(0)到24(N)中的位翻转而指示有效状态。

继续参考图1,在高速缓存条目错误指示符线32上提供高速缓存条目错误指示符34,以指示所存取的高速缓存条目18(0)到18(N)是否已引发错误,例如已出现位翻转。作为图1中示出的一个实例且作为非限制性实例,高速缓存条目错误指示符34可与指示高速缓冲存储器错误(例如奇偶校验错误)的其它任选输入36组合,作为到高速缓存命中/未中指示符电路38的输入,以在高速缓存命中/未中指示符线42上产生高速缓存命中/未中指示符40。作为另一实例,可提供高速缓存条目错误指示符34,以与高速缓冲存储器错误产生和/或报告分开指示所存取的高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)中的错误。作为又一实例,高速缓存条目错误指示符34可用于通过复位到所要的校验点,使用错误校正码(ECC)或向后错误恢复来产生前向错误恢复。

在论述图1中的高速缓冲存储器错误检测电路10的进一步示范性细节之前,本文首先描述图2来阐释图1中的高速缓冲存储器错误检测电路10在失效操作之后,可如何检测有效指示符24(0)到24(N)中的位翻转。在这点上,图2说明表44,其说明针对图1中的高速缓冲存储器12中的高速缓存条目18(0)执行的一系列示范性事件。然而,应注意,本实例也适用于存取高速缓存条目18(1)到18(N)。表44示范在失效操作之后高速缓存条目18(0)的有效指示符24(0)中的位翻转的出现,以及图1中的高速缓冲存储器错误检测电路10检测所述位翻转的能力。

在这点上,以图1中的高速缓冲存储器12中的高速缓存条目18(0)作为实例,高速缓存条目18(0)示出为通过图2中的建立事件52在高速缓冲存储器12中建立。在高速缓存条目18(0)的建立期间,将有效指示符24(0)设定成有效状态(例如“1”)。在此实例中,使用呈失效间隔计数48(例如“10”)的形式的当前失效间隔状态来作为冗余信息指示符46(0),其在建立后即刻存储在高速缓存条目18(0)中。因此,在此实施例中,冗余信息指示符46(0)含有实际未经编码形式的失效间隔计数48。高速缓冲存储器错误检测电路10使用对应于每一高速缓存条目18(0)到18(N)的冗余信息指示符46(0)到46(N)以及失效间隔指示符所提供的当前失效间隔计数48(在此实例中,呈图1中的高速缓冲存储器错误检测电路10中失效间隔计数器50的形式)来检测位翻转。还为高速缓存条目18(0)建立标记20(0)。注意,失效间隔指示符可以不同于计数器的其它形式提供,以不受限地存储任何类型的所要指示符,例如与失效间隔状态不同的状态或其它状态。

接下来,继续参考图2,对高速缓存条目18(0)执行失效操作54。失效操作54将高速缓存条目18(0)的有效指示符24(0)的有效性状态设定为无效状态(例如“0”),以使高速缓存条目18(0)失效,如上文所论述。在此实例中,还通过递增来推进当前失效间隔计数48,以记录失效操作54。注意,虽然当前失效间隔计数48已递增,但高速缓存条目18(0)中的冗余信息指示符46(0)保持相同。如下文所述,后来使用此信息来确定在高速缓存条目18(0)的先前建立事件52之后出现失效操作54。

继续参考图2,出于说明的目的,接下来假定发生在此实例中导致有效指示符24(0)中出现位翻转(例如从“0”到“1”的位翻转)的辐射事件56。然而,如上文所论述,高速缓存条目18(0)中的冗余信息指示符46(0)不等于当前失效间隔计数48,意味着在预期有效指示符24(0)含有无效状态(例如‘0’)的情况下,出现失效操作54。因此,当随后在再建立之前在存取事件58中存取高速缓存条目18(0),那么高速缓存条目18(0)的有效指示符24(0)指示有效状态。然而,如上所述,归因于先前失效操作54,高速缓存条目18(0)实际上无效。因为当前失效间隔计数48由于失效操作54而递增,所以当建立高速缓存条目18(0)时,当前失效间隔计数48将不与存储在高速缓存条目18(0)中的冗余信息指示符46(0)匹配。因此,高速缓冲存储器错误检测电路10可经配置以确定此失配,作为在失效操作54之后检测有效指示符24(0)中出现位翻转的方法。如下文将更详细地论述,高速缓冲存储器错误检测电路10可致使对高速缓存条目18(0)的存取事件58产生高速缓冲存储器未中,或即使有效指示符24(0)归因于位翻转而指示有效状态也产生错误,以防止产生错误的高速缓存命中。

在这点上,现将论述图1中的高速缓冲存储器错误检测电路10的较多示范性细节。在这点上,图1中的高速缓冲存储器错误检测电路10中的冗余信息指示符验证电路30基于失效间隔计数器50确定在高速缓存条目18(0)到18(N)的重新建立之前何时已发生失效操作(未图示)时。在此实例中,对于对高速缓冲存储器12中的高速缓存条目18(0)到18(N)执行的每一失效操作,失效间隔计数器50使失效间隔计数48递增。当在高速缓冲存储器12中建立高速缓存条目18(0)到18(N)时,失效间隔计数48通过冗余信息指示符产生电路60存储在高速缓存条目18(0)到18(N)中,作为冗余信息指示符46(0)到46(N)。

失效间隔计数器50可经配置以使失效间隔计数48递增一(1),或可能希望使失效间隔计数48递增不同于一(1)的值。失效间隔计数器50可经配置以基于失效间隔计数器50所使用的位数,来使失效间隔计数48在失效间隔计数值的范围内递增。举例来说,如果失效间隔计数器50使用两(2)个位,此处将为失效间隔计数48的四(4)个可能值(例如“00”、“01”、“10”和“11”);如图2中所描述,三(3)个位将提供八(8)个值的范围。还可能为失效间隔计数48配置失效间隔计数值的范围,或甚至基于失效间隔配置设定62而停用失效间隔计数器50。失效间隔计数48由失效间隔计数器50提供到冗余信息指示符产生电路60,并且还提供到冗余信息指示符验证电路30。

继续参考图1,如果随后存取的高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)指示有效状态,高速缓冲存储器错误检测电路10中的冗余信息指示符验证电路30确认是否因为所存取高速缓存条目18(0)到18(N)的上一次建立而已发生失效操作。当建立高速缓存条目18(0)到18(N)时,冗余信息指示符验证电路30基于当前失效间隔计数48和存储在高速缓存条目18(0)到18(N)中作为冗余信息指示符46(0)到46(N)的失效间隔计数来确认是否已发生失效操作。如果在建立高速缓存条目18(0)到18(N)时存储在高速缓存条目18(0)到18(N)中的失效间隔计数并不与建立所存取的高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)时的相关联当前失效间隔计数48匹配,那么这导致失配。此失配是在失效操作之后与高速缓存条目18(0)到18(N)相关联的有效指示符24(0)到24(N)中已发生位翻转的指示。这是因为在失效操作之后,相对于有效状态所存取的高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)应指示无效状态,因为失效操作迫使有效指示符24(0)到24(N)进入无效状态。

因此,在图1中的此实例中,高速缓冲存储器错误检测电路10中的冗余信息指示符验证电路30经配置以致使产生高速缓冲存储器未中(相对于高速缓存命中),或在与所存取的高速缓存条目18(0)到18(N)相关联的有效指示符24(0)到24(N)中检测到位翻转时,产生错误。失效间隔计数器50所提供的并不与和高速缓存条目18(0)到18(N)相关联的冗余信息指示符46(0)到46(N)匹配的当前失效间隔计数48是在失效操作之后,有效指示符24(0)到24(N)中已发生位翻转的指示。当在所述检测到的失效操作之后检测到位翻转时,产生高速缓冲存储器未中或其它错误,以避免使用存储在数据阵列16中对应于高速缓存条目18(0)到18(N)的数据条目22(0)到22(N)。如果针对所存取的高速缓存条目18(0)到18(N)尚未检测到不正确的有效指示符24(0)到24(N)状态,那么高速缓冲存储器12将已产生错误高速缓存命中,相对于真实高速缓冲存储器未中。

在这点上,图3是说明针对对高速缓冲存储器12中的高速缓存条目18(0)到18(N)执行的每一失效操作(未图示),使图1中的高速缓冲存储器错误检测电路10的失效间隔计数器50中的失效间隔计数48递增的示范性过程。参考图1和3,失效间隔计数器50接收失效启用信号26(框64)。失效间隔计数器50接着基于接收到失效启用信号26使失效间隔计数48递增(框66)。失效间隔计数器50可使失效间隔计数48递增失效间隔配置设定62所设定的可配置增量。还可基于失效间隔配置设定62来停用失效间隔计数器50,或将其设定成固定的失效间隔计数48的值。

在这点上,图4是说明图1中的高速缓冲存储器错误检测电路10中的冗余信息指示符产生电路60从失效间隔计数器50接收当前失效间隔计数48以在建立后即刻将冗余信息指示符46(0)到46(N)存储在高速缓存条目18(0)到18(N)中。参考图1和4,冗余信息指示符产生电路60经配置以接收提供于待建立的高速缓存条目18(0)到18(N)中的标记20(0)到20(N)(框68)。冗余信息指示符产生电路60还经配置以接收失效间隔计数器50所提供的当前失效间隔计数48(框70)。冗余信息指示符产生电路60将从失效间隔计数器50接收到的当前失效间隔计数48存储在正建立的高速缓存条目18(0)到18(N)中(框72)。在此实例中,冗余信息指示符46(0)到46(N)是当前失效间隔计数48,且存储在高速缓存条目18(0)到18(N)中作为冗余信息指示符46(0)到46(N)。冗余信息指示符46(0)到46(N)将由高速缓冲存储器错误检测电路10的冗余信息指示符验证电路30用来验证与高速缓存条目18(0)到18(N)相关联的有效指示符24(0)到24(N)。

在这点上,图5是说明图1中的高速缓冲存储器错误检测电路10中的冗余信息指示符验证电路30检测高速缓冲存储器12中的所存取的高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)中是否已发生位翻转。检测是否已发生位翻转是基于将高速缓存条目18(0)到18(N)的建立期间与高速缓存条目18(0)到18(N)相关联的冗余信息指示符46(0)到46(N)与失效间隔计数器50中的当前失效间隔计数48的比较。参考图1和5,冗余信息指示符验证电路30基于存储在高速缓存条目18(0)到18(N)中的冗余信息指示符46(0)到46(N),来验证对应于正存取的高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)。冗余信息指示符验证电路30响应于用于所存取的高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)指示有效状态,接收用于所存取的高速缓存条目18(0)到18(N)的冗余信息指示符46(0)到46(N)(框74)。冗余信息指示符验证电路30还从失效间隔计数器50接收当前失效间隔计数48(框76)。冗余信息指示符验证电路30将与所存取的高速缓存条目18(0)到18(N)相关联的冗余信息指示符46(0)到46(N)与当前失效间隔计数48进行比较(框78)。如果在所存取的高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)指示有效状态时,当前失效间隔计数48并不与存储在冗余信息指示符46(0)到46(N)中的失效间隔计数匹配,那么这是在失效操作之后,与高速缓存条目18(0)到18(N)相关联的有效指示符24(0)到24(N)中已发生位翻转的指示。这是因为在失效操作之后,相对于有效状态,所存取的高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)应指示无效状态,因为失效操作迫使有效指示符24(0)到24(N)处于无效状态。匹配将指示高速缓存条目18(0)到18(N)的建立和所建立的高速缓存条目18(0)到18(N)的存取两者已在同一失效间隔中出现。高速缓存条目错误指示符34基于冗余信息指示符46(0)到46(N)与当前失效间隔计数48的比较,指示在此方面中用于所存取的高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)中是否已发生位翻转(框80)。

图1中的高速缓冲存储器错误检测电路10可检测高速缓冲存储器12中的有效指示符24(0)到24(N)中的位翻转,而不用抗辐射来保护有效指示符24(0)到24(N),或将有效指示符24(0)到24(N)包含在高速缓存条目18(0)到18(N)的检错码(例如奇偶校验)中。当建立高速缓存条目18(0)到18(N)时,高速缓冲存储器错误检测电路10可检测正存储在高速缓冲存储器12中的高速缓存条目18(0)到18(N)中的失效间隔计数48的位翻转。如果有效指示符24(0)到24(N)包含于高速缓存条目18(0)到18(N)的检错码中,那么除迫使有效指示符24(0)到24(N)处于无效状态之外,将必须在高速缓冲存储器快闪失效操作上重新计算每一失效的高速缓存条目18(0)到18(N)的检错码,从而增加快闪失效操作的等待时间。然而,如果在建立后失效间隔计数48即刻存储在每一高速缓存条目18(0)到18(N)中,那么针对高速缓冲存储器12中的每一高速缓存条目18(0)到18(N),必须包含额外位。为了避免需要在高速缓冲存储器12中的每一高速缓存条目18(0)到18(N)中提供额外位来存储建立高速缓存条目18(0)到18(N)时的失效间隔计数48,可替代地用存储在高速缓存条目18(0)到18(N)中的现有高速缓存条目检错码(例如奇偶校验)来编码失效间隔计数48。

关于图6,提供示范性高速缓冲存储器错误检测电路10(1)的示意图,所述电路提供类似于图1的高速缓存条目错误检测。图6中的高速缓冲存储器错误检测电路10(1)包含具有图1的高速缓冲存储器错误检测电路10的一些常见元件,其共享常见元件编号。因此,此处将不重新描述这些常见元件。图6中的高速缓冲存储器错误检测电路10(1)还提供检测高速缓存条目18(0)到18(N)中的位翻转的功能。高速缓冲存储器错误检测电路10(1)由先前在图1中描述的至少一个失效间隔计数器50(0)-50(M)组成。高速缓冲存储器错误检测电路10(1)将失效间隔计数48(0)到48(M)提供到冗余信息指示符产生电路60(1)并且还提供到冗余信息指示符验证电路30(1)。

继续参考图6,提供多个失效间隔计数器50(0)-50(M),其包含相关联的失效间隔计数48(0)到48(M),以促进跟踪选择性失效操作。选择性失效操作是仅对高速缓冲存储器12(1)中的高速缓存条目18(0)到18(N)(其可为或可不为连续的)的一部分执行的失效操作,相对于对高速缓冲存储器12(1)中的所有高速缓存条目18(0)到18(N)或其子集执行的快闪失效操作。选择性失效操作允许高速缓存条目18(0)到18(N)的子集(其可或可不为连续的)与特定失效间隔计数器50(0)-50(M)和对应失效间隔计数48(0)到48(M)相关联。可基于(但不限于)权限、安全性、异常等级、不同操作模式、条目类型等来确定选择性失效操作。以此方式,图6中的高速缓冲存储器错误检测电路10(1)可经配置以响应于失效启用信号26使仅与高速缓存条目18(0)到18(N)的一部分相关联的失效间隔计数48(0)到48(M)递增。

继续参考图6,在此实例中,高速缓冲存储器12(1)包含多个数据阵列16(0)到16(X),其中数据阵列16的数目等于“X+1”。所述多个数据阵列16(0)到16(X)中的每一者与失效间隔计数器50(0)-50(M)相关联。如果所述多个数据阵列16(0)到16(X)正使用失效操作可基于例如权限、安全性、异常等级、不同操作模式、条目类型等的常见事件列表,那么数据阵列16(0)到16(X)还共享常见失效间隔计数器50(0)-50(M)。多个高速缓冲存储器(未图示)可各自提供冗余信息指示符产生电路60(1)和冗余信息指示符验证电路30(1)。举例来说,所述多个高速缓冲存储器(未图示)所提供的多个高速缓冲存储器层级可一起失效,从而消除了对每一高速缓冲存储器12(1)或高速缓冲存储器12(1)的每一层级的失效间隔计数器50(0)-50(M)的需要。

继续参考图6,冗余信息指示符产生电路60(1)接收与正存取的高速缓存条目18(0)到18(N)相关联的失效间隔计数器50(0)-50(M)所提供的当前失效间隔计数48(0)到48(M)。另外,作为非限制性实例,冗余信息指示符产生电路60(1)接收采用标记奇偶校验82的形式的检错码81,作为标记检错码产生电路84所提供的第二输入。标记检错码产生电路84基于高速缓存条目18(0)到18(N)中接收到的标记20(0)到20(N)产生标记奇偶校验82。标记奇偶校验82用于错误检查目的,从而允许高速缓冲存储器12(1)检测标记20(0)到20(N)是否已损毁,或已另外出乎意料地改变。在此实例中,冗余信息指示符产生电路60(1)接收标记奇偶校验82,且编码接收到的失效间隔计数48(0)到48(M),以提供接收到的失效间隔计数48(0)到48(M)的经编码版本作为标记奇偶校验82的一部分。由于此编码,冗余信息指示符产生电路60(1)输出对应于待建立的高速缓存条目18(0)到18(N)的待存储的冗余信息指示符46'(1)(0)-46'(1)(N)的经编码版本。

将失效间隔计数48(0)到48(M)编码在标记奇偶校验82中允许编码失效间隔计数48(0)到48(M)而无需额外位来用于奇偶校验存储的益处。这种形式的编码还提供将有效指示符24(0)到24(N)与标记20(0)到20(N)检错码(例如奇偶校验)检查组合到冗余信息指示符验证电路30(1)中的单个操作中的益处。接着使用所存储的经编码冗余信息指示符46'(1)(0)-46'(1)(N)来验证对应于随后存取的高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)。然而,如下文较详细论述,如果在图6中的高速缓冲存储器12(1)中的高速缓存条目18(0)到18(N)中检测到位翻转,那么所述位翻转可能已出现在高速缓存条目18(0)到18(N)中的任何地方,相对于仅在有效指示符24(0)到24(N)中。为了进一步阐释图6中的高速缓冲存储器12(1),图7提供说明图6中的高速缓冲存储器12(1)中的一系列示范性高速缓存条目18(0)事件。作为一实例,表86示范在失效操作之后有效指示符24(0)中的位翻转的出现率,以及使用经编码冗余信息指示符46'(1)(0)和当前失效间隔计数48(0)来检测高速缓存条目18(0)到18(N)中的位翻转的能力。参考图7,所说明的示范性事件由一系列高速缓存条目18(0)事件组成。最初在建立事件90中建立高速缓存条目18(0)。在高速缓存条目18(0)建立事件90后,标记20(0)即刻存储在标记阵列14中。另外,通过高速缓冲存储器12(1)将有效指示符24(0)设定成有效状态(例如逻辑高或“1”)。在此实例中,冗余信息指示符46(1)(0)由冗余信息指示符产生电路60(1)用当前失效间隔计数48(0)(例如“10”)来编码,以提供存储在标记阵列14中的高速缓存条目18(0)中的经编码冗余信息指示符46'(1)(0)。在此实例中,冗余信息指示符产生电路60(1)使用“异或”函数,用标记20(0)(例如“0111”)来编码当前失效间隔计数48(0)(例如“10”),从而产生所存储的对应于高速缓存条目18(0)的“00”的值。在一些时间点,接收到的失效启用信号26(未图示)所指示的失效操作92使至少一个高速缓存条目18(0)失效。当发生失效操作92时,高速缓冲存储器12(1)将把有效指示符24(0)设定为无效状态(例如逻辑低或“0”)。另外,响应于接收到指示失效操作92的失效启用信号26,当前失效间隔计数48(0)通过失效间隔计数器50(0)递增所配置的间隔(例如“11”)。然而,虽然当前失效间隔计数48(0)递增,但具有经编码失效间隔计数48(0)的所存储的经编码冗余信息指示符46'(1)(0)保持不变。

继续参考图7,高速缓冲存储器错误检测电路10(1)经配置以在失效操作92之后检测高速缓存条目18(0)到18(N)中的位翻转。如果随后存取的高速缓存条目18(0)的有效指示符24(0)指示有效状态,那么高速缓冲存储器错误检测电路10(1)确认失效间隔计数器50(0)所提供的当前失效间隔计数48(0)的经编码版本与建立高速缓存条目18(0)时的冗余信息指示符46(1)(0)匹配。以与冗余信息指示符46(1)(0)相同的方式来编码当前失效间隔计数48(0)。因此,当前失效间隔计数48(0)与所存储的冗余信息指示符46(1)(0)匹配意味着相同失效间隔计数48(0)曾用以建立和存取高速缓存条目18(0)。因此,在存取高速缓存条目18(0)之前,不执行失效操作92。然而,如果在对高速缓存条目18(0)的存取事件96后,当前失效间隔计数48(0)的经编码版本并不与和高速缓存条目18(0)相关联的失效间隔计数48(0)匹配,那么这是在失效操作92之后,所存取的高速缓存条目18(0)中已发生位翻转的指示,即使所存取的高速缓存条目18(0)的有效指示符24(0)指示有效状态也是如此。以此方式,高速缓冲存储器12(1)可产生错误高速缓存命中,相对于真高速缓冲存储器未中。

图8提供示范性冗余信息指示符验证电路30(1)的示意图的额外细节,所述电路可提供于图6中的高速缓冲存储器12(1)中的高速缓冲存储器错误检测电路10(1)中,以检测高速缓存条目18(0)到18(N)中的位翻转。冗余信息指示符验证电路30(1)经配置以在高速缓存条目18(0)到18(N)建立时,编码有来自失效间隔计数器50(0)-50(M)的失效间隔计数48(0)到48(M)的所存储的经编码冗余信息指示符46'(1)(0)到46'(1)(N)来检测高速缓存条目18(0)到18(N)中的位翻转。参看图8,冗余信息指示符验证电路30(1)经配置以将所存储的经编码冗余信息指示符46'(1)(0)到46'(1)(N)与当前冗余信息指示符98进行比较,以将有效指示符24(0)到24(N)确定为恰当地有效。下文论述当前冗余信息指示符的产生。提供冗余信息指示符比较电路100,以将在高速缓存条目18(0)到18(N)建立时编码的经编码冗余信息指示符46'(1)(0)到46'(1)(N)与高速缓存条目18(0)到18(N)存取时产生的当前冗余信息指示符98进行比较。通过将经编码冗余信息指示符46'(1)(0)到46'(1)(N)与当前冗余信息指示符98进行比较,冗余信息指示符验证电路30(1)能够确定在高速缓存条目18(0)到18(N)建立之后且在高速缓存条目18(0)到18(N)存取之前,是否已发生失效操作。如果经编码冗余信息指示符46'(1)(0)到46'(1)(N)和当前冗余信息指示符98不相等,那么这是在高速缓存条目18(0)到18(N)的建立之后已发生失效操作且相关联的有效指示符24(0)到24(N)应设定成无效状态的指示。

继续参考图8,当前冗余信息指示符98由提供于冗余信息指示符验证电路30(1)中的第二冗余信息指示符产生电路102产生。第二冗余信息指示符产生电路102接收采用标记奇偶校验104的形式的当前所产生的检错码103,作为图6中的标记检错码电路106所提供的非限制性实例。第二冗余信息指示符产生电路102还接收失效间隔计数器50(0)-50(M)所提供的当前失效间隔计数48(0)到48(M)。失效间隔计数48(0)到48(M)表示高速缓存条目18(0)到18(N)存取时的当前失效间隔计数48(0)到48(M)。当前冗余信息指示符98以与经编码冗余信息指示符46'(1)(0)到46'(1)(N)类似的方式由第二冗余信息指示符产生电路102产生。

继续参考图8,第二冗余信息指示符产生电路102使用多个逻辑门108,其实施基于“或”的函数来产生当前冗余信息指示符98。举例来说,在此实例中,逻辑栅极108为“异或”门,但其它门,包含基于“或”的门(例如“或”和/或“或非”门也可用作实例。作为非限制性实例,如果失效间隔计数48(0)到48(M)为“10”,且标记20(0)到20(N)是“0111”,那么第一奇偶校验产生电路110对“10”+“0111”或“100111”的组合的或串接的值的奇数位执行“异或”函数。组合的或串接的值“100111”的前两(2)个位是失效间隔计数48(0)到48(M),且接下来的四(4)个位是高速缓存条目18(0)到18(N)中的标记20(0)到20(N)。对组合的或串接的值“100111”的奇数位的“异或”函数的结果是“0”,其变为经编码冗余信息指示符46'(1)(0)到46'(1)(N)的第一位。在第二奇偶校验产生电路112中,使用应用于偶数位中的每一者的相同“异或”函数来编码标记奇偶校验104的偶数位以及失效间隔计数48(0)到48(M)的偶数位。所述结果形成经编码冗余信息指示符46'(1)(0)到46'(1)(N)的第二位。经由应用于奇数和偶数位中的每一者的“异或”函数,所得经编码冗余信息指示符46'(1)(0)到46'(1)(N)变为编码有失效间隔计数48(0)到48(M)的标记奇偶校验104。应注意,除“异或”函数以外,可使用其它数字逻辑函数。

继续参考图6和8,冗余信息指示符验证电路30(1)可经配置以接收表示标记奇偶校验104的多个位,使得标记奇偶校验[0]114表示第一或最低有效位,且标记奇偶校验[Y]116表示最后一个或最高有效位,其中标记奇偶校验104中存在Y个位。冗余信息指示符验证电路30(1)还可经配置以接收表示失效间隔计数48(0)到48(M)的多个位,使得失效间隔计数[0]118表示第一或最低有效位,且失效间隔计数[Z]120表示最后一个或最高有效位,其中失效间隔计数48(0)到48(M)中存在Z个位。所得经编码冗余信息指示符46'(1)(0)到46'(1)(N)存储在对应于高速缓存条目18(0)到18(N)的标记阵列14中。

一旦产生,就通过冗余信息指示符比较电路100将当前冗余信息指示符98与所存储的经编码冗余信息指示符46'(1)(0)到46'(1)(N)进行比较,以确定是否存在匹配。如果存在匹配,那么这是有效指示符24(0)到24(N)应有效的指示,因为高速缓存条目18(0)到18(N)建立和高速缓存条目18(0)到18(N)存取已在如由同一失效间隔计数48(0)到48(M)表示的同一失效间隔中出现。由于所述比较,冗余信息指示符比较电路100产生高速缓存条目错误指示符122,其发信号通知高速缓存条目18(0)到18(N)中是否已发生位翻转。

继续参考图6,图9中提供高速缓冲存储器12(1)中的示范性冗余信息指示符产生电路60(1)的示意图的额外细节。冗余信息指示符产生电路60(1)经配置以基于对应于待建立的高速缓存条目18(0)到18(N)的经编码检错码(例如奇偶校验)以及建立高速缓存条目18(0)到18(N)时的失效间隔计数48(0)到48(M)来产生经编码冗余信息指示符46'(1)(0)到46'(1)(N)。参看图9中的冗余信息指示符产生电路60(1),说明一种用标记奇偶校验82来编码失效间隔计数48(0)到48(M)以产生经编码冗余信息指示符46'(1)(0)到46'(1)(N)的方法。在此实例中,冗余信息指示符产生电路60(1)使用多个逻辑门108,其实施“异或”函数来将失效间隔计数48(0)到48(M)编码在标记奇偶校验82中。冗余信息指示符产生电路60(1)类似于冗余信息指示符验证电路30(1)。可使用“异或”函数来实施奇偶校验产生,作为数字电路中的检错码。在此实例中,冗余信息指示符产生电路60(1)将基于将“异或”应用于接收到的输入的奇数位和偶数位中的每一者来产生经编码冗余信息指示符46'(1)(0)到46'(1)(N)。在第一奇偶校验产生电路110中,使用应用于奇数位中的每一者的“异或”函数来编码标记奇偶校验82的奇数位以及失效间隔计数48(0)到48(M)的奇数位。所述结果形成经编码冗余信息指示符46'(1)(0)到46'(1)(N)的第一位。

结合图6继续参考图9,作为非限制性实例,如果失效间隔计数48(0)到48(M)是“10”,且标记20(0)到20(N)是“0111”,那么第一奇偶校验产生电路110对“10”+“0111”或“100111”的组合的或串接的值的奇数位执行“异或”函数。组合的或串接的值“100111”的前两(2)个位是失效间隔计数48(0)到48(M),且第二四(4)个位是高速缓存条目18(0)到18(N)中的标记20(0)到20(N)。对组合的或串接的值“100111”的奇数位的“异或”函数的结果是“0”,其变为经编码冗余信息指示符46'(1)(0)到46'(1)(N)的第一位。在第二奇偶校验产生电路112中,使用应用于偶数位中的每一者的相同“异或”函数来编码标记奇偶校验82的偶数位以及失效间隔计数48(0)到48(M)的偶数位。所述结果形成经编码冗余信息指示符46'(1)(0)到46'(1)(N)的第二位。经由应用于奇数位和偶数位中的每一者的“异或”函数,所得经编码冗余信息指示符46'(1)(0)到46'(1)(N)变为编码有失效间隔计数48(0)到48(M)的标记奇偶校验82。应注意,除“异或”函数以外,可使用其它数字逻辑函数。

继续参考图6和9,冗余信息指示符产生电路60(1)可经配置以接收表示标记奇偶校验82的多个位,使得标记奇偶校验[0]114表示第一或最低有效位,且标记奇偶校验[Y]116表示最后一个或最高有效位,其中标记奇偶校验82中存在Y个位。冗余信息指示符产生电路60(1)还可经配置以接收表示失效间隔计数48(0)到48(M)的多个位,使得失效间隔计数[0]118表示第一或最低有效位,且失效间隔计数[Z]120表示最后一个或最高有效位,其中失效间隔计数48(0)到48(M)中存在Z个位。所得经编码冗余信息指示符46'(1)(0)到46'(1)(N)存储在对应于高速缓存条目18(0)到18(N)的标记阵列14中。

继续参考图6,冗余信息指示符验证电路30(1)经配置以响应于正存取的高速缓存条目18(0)到18(N)而接收当前失效间隔计数48(0)到48(M)。冗余信息指示符验证电路30(1)还经配置以接收所存储的对应于所存取的高速缓存条目18(0)到18(N)的经编码冗余信息指示符46'(1)(0)到46'(1)(N)。另外,冗余信息指示符验证电路30(1)经配置以从标记奇偶校验电路106接收当前所产生的标记奇偶校验104。以与从上文所论述的标记奇偶校验产生电路84产生标记奇偶校验82类似的方式产生当前所产生的标记奇偶校验104。标记奇偶校验电路106使用提供于标记奇偶校验电路106中的逻辑门(未图示)来产生当前所产生的标记奇偶校验104。然而,在此实例中,检查标记奇偶校验104不是在标记奇偶校验电路106中执行的。在此实例中,在冗余信息指示符验证电路30(1)中检查标记奇偶校验104。虽然仍检查标记奇偶校验104,但现在是对标记20(0)到20(N)和有效指示符24(0)到24(N)两者执行,即使针对经编码冗余信息指示符46'(1)(0)到46'(1)(N)仍使用相同数目的位。将经编码冗余信息指示符46'(1)(0)到46'(1)(N)的同一位数用作将在其中仅执行对标记20(0)到20(N)的标记奇偶校验104校验的情境中使用。以此方式,经编码冗余信息指示符46'(1)(0)到46'(1)(N)有效指示符24(0)到24(N)以及标记20(0)到20(N)两者提供检错码(例如奇偶校验)保护。另外,失效间隔计数器50(0)-50(M)也可由其它高速缓冲存储器(未图示)用来跟踪失效操作。

作为一个非限制性实例,提供于图6中的高速缓冲存储器错误检测电路10(1)中的每一失效间隔计数48(0)到48(M)中的位数可提供为小于或等于标记奇偶校验82中的位数。否则,图8中的冗余信息指示符验证电路30(1)可能不可能在所有情形中都检测到位翻转。举例来说,假定存在提供于失效间隔计数48中的四(4)个计数器位,以及当前标记奇偶校验104中的两(2)个校验位。并且假定‘0111’和‘1000’的计数器值为失效间隔计数48。当考虑‘0111’和‘1000’的这些失效间隔计数的偶数和奇数位时,两者导致图9中的冗余信息指示符产生电路60(1)产生相同的“偶数”结果=1“异或”1=0“异或”0=0。两者还导致图9中的冗余信息指示符产生电路60(1)产生相同的“奇数”结果=0“异或”1=1“异或”0=1。因此,当失效间隔计数48归因于失效操作从‘0111’递增到‘1000’时,对于作为新失效间隔计数48的‘0111’和‘1000’的两个失效间隔计数,冗余信息指示符产生电路60(1)将相同的值编码在经编码冗余信息指示符46'中。因此,在此实例中,在使失效间隔计数48从‘0111’递增到‘1000’的对应的失效操作之后,图8中的冗余信息指示符验证电路30(1)将不可能检测到位翻转,因为在此实例中,冗余信息指示符产生电路60(1)所提供的冗余信息指示符46的编码结果将相同。

注意,也可能在建立高速缓存条目18(0)到18(N)时,冗余信息指示符46(1)(0)到46(1)(N)可编码有失效间隔计数,以提供不同于当前失效间隔计数48(0)到48(M)的经编码冗余信息指示符46'。此技术可用于对不是快闪无效的高速缓冲存储器12(1)执行的其它操作。举例来说,可能希望将特定高速缓存条目18(0)到18(N)作为目标来使其失效。在此实例中,可用指示对应的高速缓存条目18(0)到18(N)无效的无效指示符来盖写目标高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)。还可盖写目标高速缓存条目18(0)到18(N)的标记奇偶校验82。以此方式,如果有效指示符24(0)到24(N)翻转返回到有效状态,那么可检测到此情况。当前失效间隔计数48(0)到48(M)也将不递增。以此方式,在失效操作之后高速缓冲存储器12(1)检测其它所建立的高速缓存条目18(0)到18(N)中的位翻转的能力不受影响,因为用以编码其它所建立的高速缓存条目18(0)到18(N)的标记奇偶校验82的当前失效间隔计数48(0)到48(M)不更改。

在此实例中,不同于当前失效间隔计数48(0)到48(M)的失效间隔计数可用以编码对应于目标高速缓存条目18(0)到18(N)的冗余信息指示符46(1)(0)到46(1)(N),以提供经编码冗余信息指示符46'(1)(0)到46'(1)(N)。举例来说,在当前失效间隔计数48的经配置计数值的范围外的失效间隔计数可用于提供对应于目标高速缓存条目18(0)到18(N)的经编码冗余信息指示符46'(1)(0)-46'(1)(N)。否则,如果失效操作不是发信号通知失效启用信号26的类型,且因此并不推进当前失效间隔计数48(0)到48(M),那么在失效的目标高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)中发生的位翻转可能无法被冗余信息指示符验证电路30(1)检测到。

关于图10,提供说明图6中的冗余信息指示符产生电路60(1)从失效间隔计数器50(0)到50(M)接收当前失效间隔计数48(0)到48(M)来编码在所建立的高速缓存条目18(0)到18(N)的标记奇偶校验82中的示范性过程的流程图。冗余信息指示符产生电路60(1)经配置以基于待建立的高速缓存条目18(0)到18(N)来接收标记奇偶校验82(框124)。产生标记奇偶校验82,作为标记检错码产生电路84的检错码81。另外,冗余信息指示符产生电路60(1)经配置以接收当前失效间隔计数48(0)到48(M)(框126)。冗余信息指示符产生电路60(1)经配置以响应于建立高速缓存条目18(0)到18(N),基于当前失效间隔计数48(0)到48(M),提供高速缓存条目18(0)到18(N)中的每一者的经编码冗余信息指示符46'(1)(0)到46'(1)(N)(框128)。在此实例中,如上文所描述,所述编码包括使用“异或”函数来编码如图6和9中所描述的具有标记奇偶校验82的失效间隔计数48(0)到48(M)。一旦经编码,高速缓存条目18(0)到18(N)中的每一者的经编码冗余信息指示符46'(1)(0)到46'(1)(N)就存储在对应于高速缓存条目18(0)到18(N)中的每一者的标记阵列14(框130)。所存储的经编码冗余信息指示符46'(1)(0)到46'(1)(N)将由冗余信息指示符验证电路30(1)用来检测有效指示符24(0)到24(N)中的位翻转。

关于图11,提供说明图6中的冗余信息指示符验证电路30(1)的示范性过程的流程图。冗余信息指示符验证电路30(1)检测高速缓冲存储器12(1)中的所存取高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)中是否已发生位翻转。冗余信息指示符验证电路30(1)基于高速缓存条目18(0)到18(N)建立期间编码有失效间隔计数48(0)到48(M)的经编码冗余信息指示符46'(1)(0)到46'(1)(N)以及失效间隔计数器50(0)到50(M)中的当前失效间隔计数48(0)到48(M)来检测位翻转。冗余信息指示符验证电路30(1)接收用于所存取的高速缓存条目18(0)到18(N)的经编码冗余信息指示符46'(1)(0)到46'(1)(N)(框132)。冗余信息指示符验证电路30(1)另外从失效间隔计数器50(0)-50(M)接收当前失效间隔计数48(0)到48(M)(框134)。冗余信息指示符验证电路30(1)接着基于当前失效间隔计数48(0)到48(M)产生当前冗余信息指示符98(如图8中示出)(框136)。冗余信息指示符比较电路100将用于所存取的高速缓存条目18(0)到18(N)的经编码冗余信息指示符46'(1)(0)到46'(1)(N)与当前冗余信息指示符98进行比较(框138)。基于所述比较,冗余信息指示符比较电路100基于经编码冗余信息指示符46'(1)(0)到46'(1)(N)与当前冗余信息指示符98的比较而产生用于所存取的高速缓存条目18(0)到18(N)的有效指示符24(0)到24(N)中是否出现位翻转的高速缓存条目错误指示符122(框140)。

根据本文所揭示的各方面的用于在失效操作之后检测高速缓冲存储器中的有效指示符中的位翻转的高速缓冲存储器错误检测电路,以及相关方法和基于处理器的系统可在任何基于处理器的装置中提供或集成到任何基于处理器的装置中。实例包含(但不限于)机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字影音光盘(DVD)播放器和便携式数字视频播放器。

在这点上,图12说明基于处理器的系统146的实例,其可使用高速缓冲存储器错误检测电路147,所述电路可分别包含图1、6和12中的高速缓冲存储器错误检测电路10、10(1)和10(2)中的任一者,作为非限制性实例,用于在失效操作之后,检测高速缓冲存储器中的有效指示符(例如有效位)中的位翻转。在此实例中,基于处理器的系统146包含一或多个CPU 148,其各自包含一或多个处理器150。CPU 148可具有高速缓冲存储器152,其耦合到处理器150以用于对临时存储的数据的快速存取。CPU 148耦合到系统总线154,且可将包含在基于处理器的系统146中的主装置和从装置互相耦合。众所周知,CPU 200通过经由系统总线154交换地址、控制和数据信息而与这些其它装置通信。举例来说,CPU 148可将总线事务请求传送到作为从属装置的实例的存储器控制器156。虽然图12中未说明,但是可提供多个系统总线154,其中每一系统总线154构成不同构造。

其它主装置和从属装置可连接到系统总线154。如图12中所说明,作为实例,这些装置可包含存储器系统158、一或多个输入装置160、一或多个输出装置162、一或多个网络接口装置164及一或多个显示器控制器166。输入装置160可包含任何类型的输入装置,包含但不限于输入键、开关、话音处理器等。输出装置162可包含任何类型的输出装置,包含但不限于音频、视频、其它视觉指示等。网络接口装置164可为经配置以允许数据与网络168间的交换的任何装置。网络222可为任何类型的网络,包含但不限于有线或无线网络、私用网络或公用网络、局域网(LAN)、广域网(WLAN)和因特网。网络接口装置164可经配置以支持所要的任何类型的通信协议。存储器系统158可包含一或多个存储器单元170(0到N)。

CPU 148还可经配置以经由系统总线154存取显示器控制器166以控制发送到一或多个显示器172的信息。显示器控制器166经由一或多个视频处理器174将信息发送到显示器172来显示,其将待显示的信息处理成适合于显示器172的格式。显示器172可包含任何类型的显示器,包含但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。

所属领域的技术人员将进一步了解,结合本文中所揭示的方面所描述的各种说明性逻辑块、模块、电路及算法可被实施为电子硬件、存储于存储器或另一计算机可读媒体中且由处理器或其它处理装置执行的指令,或此两者的组合。作为实例,本文中所描述的主装置和从装置可用于任何电路、硬件组件、集成电路(IC)或IC芯片中。本文所披露的存储器可以是任何类型和大本文揭示的存储器可以是任何类型和大小的存储器,并且可经配置以存储所需的任何类型的信息。为清楚地说明此可互换性,上文已大为清楚说明这个可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路和步骤。如何实施此功能性取决于特定应用、设计选项如何实施此功能性取决于特定应用、设计选项和/或强加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不本领域的技术人员可针对每一特定应用以不同的方式实施所描述的功能性,但此类实施决策不应被解释为会造成对本发明的范围的偏离。

结合本文中所揭示的方面描述的各种说明性逻辑块、模块和电路可用以下各项来实施或执行:处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或经设计以执行本文中所描述的功能的其任何组合。处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例处理器还可实施为计算装置的组合,例如,DSP和微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器或任何其它这些配置。

本文中所揭示的方面可以硬件和存储于硬件中的指令来体现,且可驻留于(例如)随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可装卸式磁盘、CD-ROM或此领域中已知的任何其它形式的计算机可读媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体。处理器和存储媒体可驻留于ASIC中。ASIC可驻留于远程站中。在替代方案中,处理器和存储媒体可作为离散组件驻留在远程站、基站或服务器中。

还应注意,描述本文中的示范性方面中的任一者中所描述的操作步骤是为了提供实例和论述。可用除了所说明的序列之外的大量不同序列来执行所描述的操作。另外,单个操作步骤中所描述的操作此外,单个操作步骤中所描述的操作实际上可在许多不同步骤中执行。另外,可组合在示范性方面中所论述的一或多个操作步骤。应理解,如所属领域的技术人员将容易显而易见,流程图中所说明的操作步骤可以经受众多不同修改。所属领域的技术人员还将了解,可使用多种不同技术和技法中的任一者来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。

提供本发明的前述描述以使所属领域的技术人员能够制造或使用本发明。所属领域的技术人员将容易显而易见对本发明的各种修改,且本文中界定的一般原理可应用于其它变化而不脱离本发明的精神或范围。因此,本发明并不希望限于本文中所描述的实例和设计,而是应被赋予与本文中所揭示的原理和新颖特征相一致的最广范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1