高速缓存多位数据翻转错误的检测及容错装置与方法
【技术领域】
[0001] 本发明涉及一种微处理器高速缓存数据错误的检测与容错装置,尤其涉及一种嵌 入式微处理器高速缓存多位数据翻转错误的检测与容错装置。本发明还涉及一种嵌入式微 处理器高速缓存多位数据翻转错误的检测与容错方法。
【背景技术】
[0002] 单粒子翻转(SEU)是在空间应用环境下,由于单粒子入射导致集成电路中存储单 元发生数据翻转错误的事件,是空间环境下电子系统发生故障和工作异常的重要诱因之 一。以往SEU主要表现为单个存储单元的单位数据翻转故障,但是在集成电路采用纳米工 艺后,随着半导体器件特征尺寸的减小、工作频率的上升和节点工作电压的降低,在高速缓 存(Cache)等规整的存储部件中,SEU引发多位翻转(MBU)的概率大大提高,会导致最多8 位随机数据翻转错误,对空间应用的电子系统产生更大的危害。
[0003] 作为现代微处理器中的一个重要组成部分,Cache完成程序代码与数据的缓冲,向 流水线提供指令代码与数据。如果Cache中的存储单元发生数据错误,就会直接导致微处 理器执行错误的指令,或对错误的数据进行运算,进而产生错误的执行结果。因此,对于空 间应用的高可靠微处理器而言,进行Cache系统的容错设计具有重要的意义。
[0004] 现行的通用微处理器(如alpha2l264、Itanium、Powerpc-alO等)主要采用奇偶 校验和ECC(ErrorCorrectingCodes,错误纠正码)校验码实现Cache的错误保护,它的 局限性是只能纠正单比特错误和检测双比特错误。Chishti等人基于缓存行粒度提出的 MS-ECC方案,面积和性能开销很大。Kim等人提出的的二维校验码可以纠正多位错误,但它 对于分散的随机错误效率较低。Intel在2011年提出VS-ECC方案,针对不同的Cache块使 用纠错能力不同的算法,降低了算法带来的面积和性能开销,但在容错能力方面仍有待提 升。基于分组奇偶校验的数据重载策略目前被用于多种空间微处理器,用于对Cache的数 据错误进行容错,但是该方法只能解决组内1位错误问题,无法应对单粒子诱发的多位随 机错误。总之,现有的技术方案对于MBU引发的2-4位随机错误缺乏行之有效的容错方案。
【发明内容】
[0005] 本发明的目的在于设计一种嵌入式微处理器抗单粒子翻转效应的高速缓存多位 数据翻转故障的检测及容错装置与方法,能够对SEU导致的多位随机数据翻转错误进行检 测与容错。
[0006] -种嵌入式微处理器高速缓存多位数据翻转错误的检测及容错装置,其特征在 于:包括标记BCH编码器、Cache标记存储器、标记BCH校验器、数据BCH编码器、Cache数 据存储器、数据BCH校验器、Cache控制器和命中控制器;所述标记BCH编码器在进行Cache 写访问时,对写入的Cache标记进行BCH编码,生成校验码,与Cache标记一起存入Cache 标记存储器;所述Cache标记存储器用于存储Cache标记字和标记字的BCH校验码,所述 Cache标记字包括Cache标记和行有效标志两部分;所述标记BCH校验器在进行Cache访 问时,对Cache标记存储器输出的Cache标记及校验码进行BCH校验,生成校验错误标志, 供命中控制器决定是否命中;所述数据BCH编码器在进行Cache写访问时,对输入数据进 行BCH编码,生成校验码,与输入数据一起存入Cache数据存储器;所述Cache数据存储器 用于存储Cache数据字和数据字的BCH校验码;所述数据BCH校验器在进行Cache读访问 时,对Cache数据存储器输出的Cache数据及校验码进行BCH校验,生成校验错误标志,供 命中控制器决定是否命中;所述Cache控制器根据输入的存储器地址对Cache标记存储器、 Cache数据存储器的读写进行控制,根据输入的存储器地址与Cache标记判断Cache是否 命中,输出命中标志,选择Cache数据输出;所述命中控制器根据Cache控制器的命中标志、 标记BCH校验器的校验错误标志与数据BCH校验器的校验错误标志决定是否产生有效的 Cache命中标志,在命中有效时将Cache控制器选择的Cache数据输出给处理器内核。
[0007] -种嵌入式微处理器高速缓存多位数据翻转错误的检测及容错方法,其特征在 于:所述嵌入式微处理器高速缓存多位数据翻转错误的检测及容错装置包括标记BCH编码 器、Cache标记存储器、标记BCH校验器、数据BCH编码器、Cache数据存储器、数据BCH校验 器、Cache控制器和命中控制器;所述嵌入式微处理器高速缓存多位数据翻转错误的检测 及容错装置采用如下步骤与方法对Cache中的数据错误进行检测与处理:
[0008] (1)初始复位时,将Cache标记存储器中所有Cache标记均写入全0,所有行有效 标志均置为无效,所有Cache标记字的BCH校验码均设置为有效的BCH校验码;
[0009] (2)处理器进行存储器读或写访问时,Cache控制器根据存储器地址从Cache标记 存储器中读出Cache标记、行有效标志及BCH校验码,送标记BCH校验器进行BCH校验,如 果BCH校验错误,强制命中控制器产生Cache不命中指示,由Cache控制器通过标记BCH编 码器将Cache标记存储器中相应位置的Cache标记写入全0,行有效标志置为无效状态,并 写入相应的BCH校验码,作废当前的Cache行,以后按照所使用的Cache管理策略重新装入 该Cache行;如果Cache标记的BCH校验正确,分两种情况:处理器访问类型为存储器写访 问时,转步骤(3),处理器访问类型为存储器读访问时,转步骤(4);
[0010] (3)按照所使用的Cache管理策略,根据步骤(2)读出的Cache标记、行有效标志 及存储器地址判断Cache是否命中,如果命中,将处理器送来的数据经数据BCH编码器形成 BCH校验码后,和数据一起写入Cache数据存储器的相应位置,结束对Cache的操作;如果 不命中,直接结束对Cache的操作;
[0011] (4)Cache控制器按照所使用的Cache管理策略,根据步骤(2)读出的Cache标 记、行有效标志及存储器地址判断Cache是否命中,如果不命中转步骤(5);如果命中,存 储器地址从Cache数据存储器中读出Cache数据和BCH校验码,送数据BCH校验器进行 BCH校验,如果校验正确,根据Cache管理策略,由命中控制器输出命中信号,选择正确的 Cache数据送给处理器内核,结束对Cache的操作;如果BCH校验不正确,强制命中控制器 产生Cache不命中,由Cache控制器通过标记BCH编码器将Cache标记存储器中相应位置 的Cache标记写入全0,行有效标志置为无效状态,并写入相应的BCH校验码,作废当前的 Cache行,以后按照所使用的Cache管理策略重新装入该Cache行,转步骤(5);
[0012] (5)在读不命中时,Cache根据处理器内核送来的存储器地址,从主存储器中读取 与Cache行大小相同数量的数据字,按照所使用的Cache管理策略,将数据字依次送数据 BCH编码器生成数据字的BCH校验码,将数据字及生成的校验码一起写入Cache数据存储器 的相应位置,然后由存储器地址生成Cache标记,将Cache标记及Cache行有效标志一起送 标记BCH编码器生成标记字的BCH校验码,将Cache标记、Cache行有效标志及生成的BCH 校验码一起写入Cache标记存储器相应位置,完成Cache行的更新。
[0013] 本发明实现的嵌入式微处理器高速缓存多位数据翻转错误的检测及容错装置与 方法,在嵌入式微处理器中能够检测Cache的标记存储器和数据存储器由于SEU引发的多 位错误,并进行容错,可以提高微处理器在空间等恶劣环境下应用的可靠性。
【附图说明】
[0014] 图1是根据本发明的高速缓存多位数据翻转错误的检测及容错装置结构图;
[0015] 图2是根据本发明的高速缓存多位数据翻转错误的检测及容错装置进行命中判 断的工作流程图。
【