高速缓存多位数据翻转错误的检测及容错装置的制造方法
【技术领域】
[0001] 本实用新型设及一种微处理器高速缓存数据错误的检测与容错装置,尤其设及一 种嵌入式微处理器高速缓存多位数据翻转错误的检测与容错装置。
【背景技术】
[0002] 单粒子翻转(SEU)是在空间应用环境下,由于单粒子入射导致集成电路中存储单 元发生数据翻转错误的事件,是空间环境下电子系统发生故障和工作异常的重要诱因之 一。W往S抓主要表现为单个存储单元的单位数据翻转故障,但是在集成电路采用纳米工 艺后,随着半导体器件特征尺寸的减小、工作频率的上升和节点工作电压的降低,在高速缓 存(Cache)等规整的存储部件中,S抓引发多位翻转(MBU)的概率大大提高,会导致最多8 位随机数据翻转错误,对空间应用的电子系统产生更大的危害。
[0003] 作为现代微处理器中的一个重要组成部分,Cache完成程序代码与数据的缓冲,向 流水线提供指令代码与数据。如果化Che中的存储单元发生数据错误,就会直接导致微处 理器执行错误的指令,或对错误的数据进行运算,进而产生错误的执行结果。因此,对于空 间应用的高可靠微处理器而言,进行化Che系统的容错设计具有重要的意义。
[0004] 现行的通用微处理器(如alpha21264、Itanium、Powe巧c-alO等)主要采用奇偶 校验和ECC巧rrorCorrectingCodes,错误纠正码)校验码实现化che的错误保护,它的 局限性是只能纠正单比特错误和检测双比特错误。化ishti等人基于缓存行粒度提出的 MS-ECC方案,面积和性能开销很大。Kim等人提出的的二维校验码可W纠正多位错误,但它 对于分散的随机错误效率较低。Intel在2011年提出VS-ECC方案,针对不同的化Che块使 用纠错能力不同的算法,降低了算法带来的面积和性能开销,但在容错能力方面仍有待提 升。基于分组奇偶校验的数据重载策略目前被用于多种空间微处理器,用于对化Che的数 据错误进行容错,但是该方法只能解决组内1位错误问题,无法应对单粒子诱发的多位随 机错误。总之,现有的技术方案对于MBU引发的2-4位随机错误缺乏行之有效的容错方案。
【发明内容】
阳〇化]本实用新型的目的在于设计一种嵌入式微处理器抗单粒子翻转效应的高速缓存 多位数据翻转故障的检测及容错装置,能够对S抓导致的多位随机数据翻转错误进行检测 与容错。
[0006] 一种嵌入式微处理器高速缓存多位数据翻转错误的检测及容错装置,其特征在 于:包括标记BCH编码器、Cache标记存储器、标记BCH校验器、数据BCH编码器、Cache数 据存储器、数据BCH校验器、Cache控制器和命中控制器;所述标记BCH编码器在进行化Che 写访问时,对写入的化che标记进行BCH编码,生成校验码,与化che标记一起存入化che 标记存储器;所述化Che标记存储器用于存储化Che标记字和标记字的BCH校验码,所述 Cache标记字包括化che标记和行有效标志两部分;所述标记BCH校验器在进行化che访 问时,对化Che标记存储器输出的化Che标记及校验码进行BCH校验,生成校验错误标志, 供命中控制器决定是否命中;所述数据BCH编码器在进行化Che写访问时,对输入数据进 行BCH编码,生成校验码,与输入数据一起存入化Che数据存储器;所述化Che数据存储器 用于存储化Che数据字和数据字的BCH校验码;所述数据BCH校验器在进行化Che读访问 时,对化Che数据存储器输出的化Che数据及校验码进行BCH校验,生成校验错误标志,供 命中控制器决定是否命中;所述化Che控制器根据输入的存储器地址对化Che标记存储器、 Cache数据存储器的读写进行控制,根据输入的存储器地址与化Che标记判断化Che是否 命中,输出命中标志,选择化Che数据输出;所述命中控制器根据化Che控制器的命中标志、 标记BCH校验器的校验错误标志与数据BCH校验器的校验错误标志决定是否产生有效的 Cache命中标志,在命中有效时将化Che控制器选择的化Che数据输出给处理器内核。
[0007] 本实用新型实现的嵌入式微处理器高速缓存多位数据翻转错误的检测及容错装 置,在嵌入式微处理器中能够检测化Che的标记存储器和数据存储器由于沈U引发的多位 错误,并进行容错,可W提高微处理器在空间等恶劣环境下应用的可靠性。
【附图说明】
[0008] 图1是根据本实用新型的高速缓存多位数据翻转错误的检测及容错装置结构图;
[0009] 图2是根据本实用新型的高速缓存多位数据翻转错误的检测及容错装置进行命 中判断的工作流程图。
【具体实施方式】
[0010] 本实施例结合一种SPARCV8体系结构的嵌入式微处理器对本实用新型的具体实 施方式进行说明。该SPARCV8体系结构的嵌入式微处理器,采用32位RISC架构,指令 Cache和数据化Che均采用直接映像方式,容量都为2K字节,Cache行大小是4个字,字宽 32位。不考虑检测及容错措施时,Cache的标记存储器容量为128字,字宽度25化其中地 址标记21位,行有效标记4位,分别表示行内每一个字是否有效。
[0011] -般情况下化che主要包含S部分:Cache控制器、Cache标记存储器和化che数 据存储器,受S抓影响导致数据错误的部分主要是标记存储器和数据存储器。标记存储器 中出现数据错误时,会导致化Che误命中或误失效,误命中会导致化Che将错误的数据或指 令提供给处理器内核,从而导致错误的执行结果;误失效一般情况下只有是影响化Che命 中率,导致化Che访问性能降低,不会导致错误的结果。Cache数据存储器中出现错误时,就 会在命中时向处理器内核提供错误的数据或指令代码,导致错误的执行结果。
[0012] 针对空间等环境下高可靠应用的需要,可W采用BCH编码方式对化Che数据存储 器和化che标记存储器进行保护。BCH度ose-化au化uri-Hocquenheim)编码是一种定义在 有限域GF(q)上线性循环分组码,能够对数据分组中的多个错误进行纠正。二进制BCH码 是一种定义在有限域GF(2)上的BCH码,能检测并纠正数据分组中的多位随机错误的差错 控制码,具有纠错能力强、构造方便、编码简单等优点,在通信领域(如数字广播、3G网络、 光通信等)得到了广泛的应用。
[0013] 本实施例采用二进制BCH码,对化che数据存储器的32位数据和化che标记存 储器的25位数据进行4位错误检测。确定BCH编码码长n= 63,选择本原多项式P (X)= x6+x+l,校验位个数n-k= 24,最大信息位长度k= 39,最小码距dmi。= 9。进而确定生成 多项式如下: W14]g(X) =l+X+x2+x4+x5+x6+xS+x9+xl°+X"+xl6+x"+xl9+x2°+x22+x23+x24 阳01引可W得到[63,39]BCH码的生成矩阵G39X63如下:
[0016]
[0017] 由于化Che数据存储器和化Che标记存储器的数据位宽分别是32位和25位,对 [63, 39]BCH码进行缩短,便可得到缩短后的生成矩阵G32XW和G25X49。设m为欲编码的32 位或25位数据,码字C=m?G即为相应的BCH编码,其中校验位宽度为24位。
[0018] 根据生成矩阵G不难得到化Che数据存储器和化Che标记存储器的BCH校验矩阵 H24X56和H24X49,将从Cache数据存储器或Cache标记存储器读出的56位或49位包括检验 码的数据记为R,计算伴随式S=R?HT,若S为全零向量,说明R没有错误,否则说明R发 生了 1~4位错误。
[0019] 基于上述基本原理与设置,本实用新型的多位数据翻转错误的检测及容错装置的 一种【具体实施方式】如下:
[0020] 在SPARCV8体系结构的嵌入式微处理器中,将高速缓存设置为如图1所示的多位 数据翻转错误的检测及容错装置,包括标记BCH编码器、标记BCH校验器、数据BCH编码器、 数据BCH校验器、Cache控制器、Cache标记存储器、Cache数据存储器和命中控制器。
[0021] Cache控制器将输入的存储器地址(32位)划分为地址标记(高21位)Xache索 引(7位)和行内地址(低4位),使用化Che索引和行内地址对化Che标记存储器、Cache 数据存储器的读写进行控制,使用地址标记与化Che标记相比较,判断化Che是否命中,输 出命中标志,选择化che数据输出。