嵌入式微处理器高速缓存4位数据翻转错误的纠正装置的制造方法

文档序号:9164112阅读:457来源:国知局
嵌入式微处理器高速缓存4位数据翻转错误的纠正装置的制造方法
【技术领域】
[0001] 本实用新型涉及一种微处理器高速缓存数据错误的纠正装置,尤其涉及一种嵌入 式微处理器高速缓存多位数据翻转错误的纠正装置。
【背景技术】
[0002] 单粒子翻转(SEU)是在空间应用环境下,由于单粒子入射导致集成电路中存储单 元发生数据翻转错误的事件,是空间环境下电子系统发生故障和工作异常的重要诱因之 一。以往SEU主要表现为单个存储单元的单位数据翻转故障,但是在集成电路采用纳米工 艺后,随着半导体器件特征尺寸的减小、工作频率的上升和节点工作电压的降低,在高速缓 存(Cache)等规整的存储部件中,SEU引发多位翻转(MBU)的概率大大提高,会导致最多8 位随机数据翻转错误,对空间应用的电子系统产生更大的危害。
[0003] 作为现代微处理器中的一个重要组成部分,Cache完成程序代码与数据的缓冲,向 处理器内核(如流水线)提供指令代码与数据。如果Cache中的存储单元发生数据错误, 就会直接导致微处理器执行错误的指令,或对错误的数据进行运算,进而产生错误的执行 结果。因此,对于空间应用的高可靠微处理器而言,进行Cache系统的数据错误自动纠正具 有重要的意义。
[0004] 现行的通用微处理器(如alpha2l264、Itanium、Powerpc-alO等)主要采用奇偶 校验和ECC(Error Correcting Codes,错误纠正码)校验码实现Cache的错误保护,它的 局限性是只能纠正单比特错误和检测双比特错误。Chishti等人基于缓存行粒度提出的 MS-ECC方案,面积和性能开销很大。Kim等人提出的的二维校验码可以纠正多位错误,但它 对于分散的随机错误效率较低。Intel在2011年提出VS-ECC方案,针对不同的Cache块使 用纠错能力不同的算法,降低了算法带来的面积和性能开销,但在容错能力方面仍有待提 升。基于分组奇偶校验的数据重载策略目前被用于多种空间微处理器,用于对Cache的数 据错误进行容错,但是该方法只能解决组内1位错误问题,无法应对单粒子诱发的多位随 机错误。总之,现有的技术方案对于MBU引发的2-4位随机错误缺乏行之有效的容错方案。
[0005] 采用Cache数据错误检测,在出错时强制Cache不命中,通过重装Cache纠正数据 错误,也是一种行之有效的Cache数据翻转故障的容错方法。但是这种方法会降低Cache 的命中率,在使用目前广泛应用的DRAM类存储器的系统中,Cache失效开销一般都比较大, 同时,在纳米工艺下,SEU导致数据错误的概率大大提高,因此,这种基于Cache重装容错方 法会降低处理器的执行效率。

【发明内容】

[0006] 本实用新型的目的在于设计一种嵌入式微处理器抗单粒子翻转效应的高速缓存 中最多4位数据翻转故障的纠正装置,能够对SEU导致的最多4位随机数据翻转错误进行 自动的纠正。
[0007] -种嵌入式微处理器高速缓存4位数据翻转错误纠正装置,其特征在于:包括标 记编码器、标记存储器、标记译码器、数据编码器、数据存储器、数据译码器、命中比较器和 数据选择器;所述标记编码器在进行Cache写操作时,对写入的Cache地址标记及行有效 标志进行二进制BCH编码,生成校验码,与地址标记一起存入标记存储器;所述标记存储器 用于根据Cache管理策略,分1路、2路或4路存储标记字和它的BCH校验码,所述标记字 包括地址标记和行有效标志两部分;所述标记译码器在进行Cache访问时,对标记存储器 输出的标记字及校验码进行BCH校验,对标记字中的1至4位随机错误进行纠正,并将校 验正确或纠正错误后的标记字送命中比较器进行Cache命中判断;所述数据编码器在进行 Cache写操作时,对输入数据进行二进制BCH编码,生成校验码,与输入数据一起存入数据 存储器;所述数据存储器用于根据Cache管理策略,分1路、2路或4路存储Cache数据字 和它的BCH校验码;所述数据译码器在进行Cache读操作时,对数据存储器输出的数据及字 校验码进行BCH校验,对数据字中的1至4位随机错误进行纠正,并将校验正确或纠正错误 后的数据字送数据选择器输出给处理器内核;所述命中比较器将输入的存储器地址中的标 记部分与各个标记译码器输出的标记字进行比较,判断Cache是否命中,输出命中标志,控 制数据选择器选择数据输出;所述数据选择器根据命中比较器送来的命中选择信号,从多 个数据译码器的输出中选择真正的命中数据输出给处理器内核。
[0008] 本实用新型实现的嵌入式微处理器高速缓存4位数据翻转错误的纠正装置,在嵌 入式微处理器中能够纠正Cache的标记存储器和数据存储器由于SEU引发的1至4位随机 错误,可以提高微处理器在空间等恶劣环境下应用的可靠性。
【附图说明】
[0009] 图1是高速缓存采用直接映像时,根据本实用新型的4位数据翻转错误的纠正装 置结构图;
[0010] 图2是高速缓存采用两路组相联时,根据本实用新型的4位数据翻转错误纠正装 置结构图;
[0011] 图3是高速缓存采用四路组相联时,根据本实用新型的4位数据翻转错误纠正装 置结构图。
【具体实施方式】
[0012] 本实施例结合一种SPARC V8体系结构的嵌入式微处理器对本实用新型的具体实 施方式进行说明。该SPARC V8体系结构的嵌入式微处理器,采用32位RISC架构,指令 Cache和数据Cache均采用直接映像方式,容量都为2K字节,Cache行大小是4个字,字宽 32位。不考虑容错措施时,Cache的标记存储器容量为128字,字宽度25位,其中地址标记 21位,行有效标记4位,分别表示行内每一个字是否有效。
[0013] 处理器内核进行存储器访问时,32位存储器地址送给Cache后,划分为地址标记 (位31-11,共21位)、Cache索引(位10-4,共7位)和行内地址(位3-0,共4位,低2位 无用)三部分,其中地址标记用于Cache命中比较,Cache索引和行内地址作为标记存储器 与数据存储器的访问地址。
[0014] -般情况下Cache主要包含三部分:Cache控制器、Cache标记存储器和Cache数 据存储器,受SEU影响导致数据错误的部分主要是标记存储器和数据存储器。标记存储器 中出现数据错误时,会导致Cache误命中或误失效,误失效一般情况下只有是影响Cache命 中率,导致Cache访问性能降低,不会导致错误的结果;误命中则会导致Cache将错误的数 据或指令提供给处理器内核,从而导致错误的执行结果。Cache数据存储器中出现错误时, 就会在命中时向处理器内核提供错误的数据或指令代码,导致错误的执行结果。
[0015] 针对空间等环境下高可靠应用的需要,可以采用BCH编码方式对Cache数据存储 器和Cache标记存储器进行保护。BCH(Bose-Chaudhuri-Hocquenheim)编码是一种定义在 有限域GF(q)上线性循环分组码,能够对数据分组中的多个错误进行纠正。二进制BCH码 是一种定义在有限域GF (2)上的BCH码,能检测并纠正数据分组中的多位随机错误的差错 控制码,具有纠错能力强、构造方便、编码简单等优点,在通信领域(如数字广播、3G网络、 光通信等)得到了广泛的应用。
[0016] 本实施例采用二进制BCH码,对Cache数据存储器的32位数据和Cache标记存储 器的25位数据进行最多4位错误的自动纠正。确定BCH编码码长η = 63,选择本原多项式 P (X) = χ6+χ+1,校验位个数n-k = 24,最大信息位长度k = 39,最小码距dmin= 9。进而确 定生成多项式如下:
[0017] g (χ) = 1+χ+χ2+χ4+χ5+χ6+χ8+χ 9+χ10+χ13+χ16+χ17+χ 19+χ20+χ22+χ23+χ24
[0018] 可以得到[63, 39]BCH码的生成矩阵G39x63如下:
[0020] 由于Cache数据存储器和Cache标记存储器的数据位宽分别是32位和25位,对 [63, 39]BCH码进行缩短,便可得到缩短后的生成矩阵G32x56和G 25X49。设m为欲编码的32 位或25位数据,码字C = m · G即为相应的BCH编码,其中校验位宽度为24位。
[0021] 根据生成矩阵G不难得到Cache数据存储器和Cache标记存储器的BCH校验矩阵 H24x56和H 24 X 49,将从Cache数据存储器或Cache标记存储器读出的56位或49位包括检验 码的数据记为R,计算伴随式S = R · Ht,若S为全零向量,说明R没有错误,否则说明R发 生了 1至4位错误,由伴随式S可以求解得到错误位置多项式,根据错误位置多项式采用迭 代或代数法均可以求得错误位置,通过对错误位取反即可达到错误纠正的目的。
[0022] 基于上述基本原理与设置,本实用新型的嵌入式微处理器高速缓存4位数据翻转 错误纠正装置的一种【具体实施方式】如下:
[0023] 在SPARC V8体系结构的嵌入式微处理器中,将高速缓存设置为如图1所示的4位 数据翻转错误纠正装置,包括标记编码器、标记存储器、标记译码器、命中比较器
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1