CN204833244U - 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置 - Google Patents
嵌入式微处理器高速缓存4位数据翻转错误的纠正装置 Download PDFInfo
- Publication number
- CN204833244U CN204833244U CN201520627129.5U CN201520627129U CN204833244U CN 204833244 U CN204833244 U CN 204833244U CN 201520627129 U CN201520627129 U CN 201520627129U CN 204833244 U CN204833244 U CN 204833244U
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- mark
- hit
- word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn - After Issue
Links
Abstract
一种嵌入式微处理器高速缓存4位数据翻转错误的纠正装置,其特征在于:包括标记编码器、标记存储器、标记译码器、数据编码器、数据存储器、数据译码器、命中比较器和数据选择器,依据所选用的Cache管理策略,使用二进制BCH编码对Cache标记存储器和数据存储器中的最多4位数据错误进行纠正。
Description
技术领域
本实用新型涉及一种微处理器高速缓存数据错误的纠正装置,尤其涉及一种嵌入式微处理器高速缓存多位数据翻转错误的纠正装置。
背景技术
单粒子翻转(SEU)是在空间应用环境下,由于单粒子入射导致集成电路中存储单元发生数据翻转错误的事件,是空间环境下电子系统发生故障和工作异常的重要诱因之一。以往SEU主要表现为单个存储单元的单位数据翻转故障,但是在集成电路采用纳米工艺后,随着半导体器件特征尺寸的减小、工作频率的上升和节点工作电压的降低,在高速缓存(Cache)等规整的存储部件中,SEU引发多位翻转(MBU)的概率大大提高,会导致最多8位随机数据翻转错误,对空间应用的电子系统产生更大的危害。
作为现代微处理器中的一个重要组成部分,Cache完成程序代码与数据的缓冲,向处理器内核(如流水线)提供指令代码与数据。如果Cache中的存储单元发生数据错误,就会直接导致微处理器执行错误的指令,或对错误的数据进行运算,进而产生错误的执行结果。因此,对于空间应用的高可靠微处理器而言,进行Cache系统的数据错误自动纠正具有重要的意义。
现行的通用微处理器(如alpha21264、Itanium、Powerpc-a10等)主要采用奇偶校验和ECC(ErrorCorrectingCodes,错误纠正码)校验码实现Cache的错误保护,它的局限性是只能纠正单比特错误和检测双比特错误。Chishti等人基于缓存行粒度提出的MS-ECC方案,面积和性能开销很大。Kim等人提出的的二维校验码可以纠正多位错误,但它对于分散的随机错误效率较低。Intel在2011年提出VS-ECC方案,针对不同的Cache块使用纠错能力不同的算法,降低了算法带来的面积和性能开销,但在容错能力方面仍有待提升。基于分组奇偶校验的数据重载策略目前被用于多种空间微处理器,用于对Cache的数据错误进行容错,但是该方法只能解决组内1位错误问题,无法应对单粒子诱发的多位随机错误。总之,现有的技术方案对于MBU引发的2-4位随机错误缺乏行之有效的容错方案。
采用Cache数据错误检测,在出错时强制Cache不命中,通过重装Cache纠正数据错误,也是一种行之有效的Cache数据翻转故障的容错方法。但是这种方法会降低Cache的命中率,在使用目前广泛应用的DRAM类存储器的系统中,Cache失效开销一般都比较大,同时,在纳米工艺下,SEU导致数据错误的概率大大提高,因此,这种基于Cache重装容错方法会降低处理器的执行效率。
发明内容
本实用新型的目的在于设计一种嵌入式微处理器抗单粒子翻转效应的高速缓存中最多4位数据翻转故障的纠正装置,能够对SEU导致的最多4位随机数据翻转错误进行自动的纠正。
一种嵌入式微处理器高速缓存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是否命中,输出命中标志,控制数据选择器选择数据输出;所述数据选择器根据命中比较器送来的命中选择信号,从多个数据译码器的输出中选择真正的命中数据输出给处理器内核。
本实用新型实现的嵌入式微处理器高速缓存4位数据翻转错误的纠正装置,在嵌入式微处理器中能够纠正Cache的标记存储器和数据存储器由于SEU引发的1至4位随机错误,可以提高微处理器在空间等恶劣环境下应用的可靠性。
附图说明
图1是高速缓存采用直接映像时,根据本实用新型的4位数据翻转错误的纠正装置结构图;
图2是高速缓存采用两路组相联时,根据本实用新型的4位数据翻转错误纠正装置结构图;
图3是高速缓存采用四路组相联时,根据本实用新型的4位数据翻转错误纠正装置结构图。
具体实施方式
本实施例结合一种SPARCV8体系结构的嵌入式微处理器对本实用新型的具体实施方式进行说明。该SPARCV8体系结构的嵌入式微处理器,采用32位RISC架构,指令Cache和数据Cache均采用直接映像方式,容量都为2K字节,Cache行大小是4个字,字宽32位。不考虑容错措施时,Cache的标记存储器容量为128字,字宽度25位,其中地址标记21位,行有效标记4位,分别表示行内每一个字是否有效。
处理器内核进行存储器访问时,32位存储器地址送给Cache后,划分为地址标记(位31-11,共21位)、Cache索引(位10-4,共7位)和行内地址(位3-0,共4位,低2位无用)三部分,其中地址标记用于Cache命中比较,Cache索引和行内地址作为标记存储器与数据存储器的访问地址。
一般情况下Cache主要包含三部分:Cache控制器、Cache标记存储器和Cache数据存储器,受SEU影响导致数据错误的部分主要是标记存储器和数据存储器。标记存储器中出现数据错误时,会导致Cache误命中或误失效,误失效一般情况下只有是影响Cache命中率,导致Cache访问性能降低,不会导致错误的结果;误命中则会导致Cache将错误的数据或指令提供给处理器内核,从而导致错误的执行结果。Cache数据存储器中出现错误时,就会在命中时向处理器内核提供错误的数据或指令代码,导致错误的执行结果。
针对空间等环境下高可靠应用的需要,可以采用BCH编码方式对Cache数据存储器和Cache标记存储器进行保护。BCH(Bose-Chaudhuri-Hocquenheim)编码是一种定义在有限域GF(q)上线性循环分组码,能够对数据分组中的多个错误进行纠正。二进制BCH码是一种定义在有限域GF(2)上的BCH码,能检测并纠正数据分组中的多位随机错误的差错控制码,具有纠错能力强、构造方便、编码简单等优点,在通信领域(如数字广播、3G网络、光通信等)得到了广泛的应用。
本实施例采用二进制BCH码,对Cache数据存储器的32位数据和Cache标记存储器的25位数据进行最多4位错误的自动纠正。确定BCH编码码长n=63,选择本原多项式p(x)=x6+x+1,校验位个数n-k=24,最大信息位长度k=39,最小码距dmin=9。进而确定生成多项式如下:
g(x)=1+x+x2+x4+x5+x6+x8+x9+x10+x13+x16+x17+x19+x20+x22+x23+x24
可以得到[63,39]BCH码的生成矩阵G39×63如下:
由于Cache数据存储器和Cache标记存储器的数据位宽分别是32位和25位,对[63,39]BCH码进行缩短,便可得到缩短后的生成矩阵G32×56和G25×49。设m为欲编码的32位或25位数据,码字C=m·G即为相应的BCH编码,其中校验位宽度为24位。
根据生成矩阵G不难得到Cache数据存储器和Cache标记存储器的BCH校验矩阵H24×56和H24×49,将从Cache数据存储器或Cache标记存储器读出的56位或49位包括检验码的数据记为R,计算伴随式S=R·HT,若S为全零向量,说明R没有错误,否则说明R发生了1至4位错误,由伴随式S可以求解得到错误位置多项式,根据错误位置多项式采用迭代或代数法均可以求得错误位置,通过对错误位取反即可达到错误纠正的目的。
基于上述基本原理与设置,本实用新型的嵌入式微处理器高速缓存4位数据翻转错误纠正装置的一种具体实施方式如下:
在SPARCV8体系结构的嵌入式微处理器中,将高速缓存设置为如图1所示的4位数据翻转错误纠正装置,包括标记编码器、标记存储器、标记译码器、命中比较器、数据编码器、数据存储器、数据译码器和数据选择器。
标记编码器在进行Cache写操作时,使用生成矩阵G25×49,对写入的地址标记及行有效标志进行二进制BCH编码,生成校验码,与地址标记一起存入标记存储器。
由于采用直接映像算法,标记存储器采用128字×49位的存储器,按地址顺序存储标记字(25位)和它的BCH校验码(24位),其中标记字包括地址标记(21位)和行有效标志(4位)两部分。
由于采用直接映像算法,4位数据翻转错误纠正装置设置1个标记译码器,在进行Cache访问时,使用校验矩阵H24×49,对标记存储器输出的标记字及校验码进行BCH校验,对标记字中的1至4位随机错误进行纠正,并将校验正确或纠正错误后的标记字送命中比较器进行Cache命中判断。
命中比较器将输入的存储器地址中的标记部分与标记译码器输出的标记字进行比较,如果相等,表示Cache命中,输出命中标志,控制数据选择器选择数据输出;如果不相等,则Cache不命中。
数据编码器在进行Cache写操作时,使用生成矩阵G32×56,对输入数据进行二进制BCH编码,生成24位校验码,与输入数据一起存入数据存储器。
数据存储器采用512字×56位的存储器,用于存储32位Cache数据字和它的24位BCH校验码。
由于采用直接映像算法,4位数据翻转错误纠正装置设置1个数据译码器,在进行Cache读操作时,使用校验矩阵H24×56,对数据存储器输出的数据字及校验码进行BCH校验,对数据字中的1至4位随机错误进行纠正,并将校验正确或纠正错误后的数据字送数据选择器输出给处理器内核。
在命中比较器送来的命中选择信号有效时,数据选择器将数据译码器输出的数据送给处理器内核。
所述SPARCV8体系结构的嵌入式微处理器高速缓存4位数据翻转错误纠正装置采用如下步骤与方法对Cache中的数据错误进行检测与纠正:
(1)初始复位时,通过标记编码器,将标记存储器中所有Cache标记均写入全0,所有行有效标志均置为无效,所有标记字的BCH校验码均设置为有效的BCH校验码。
(2)处理器进行存储器读或写访问时,32位存储器地址被划分为21位地址标记、7位Cache索引和4位行内地址三部分,根据Cache索引从标记存储器中读出Cache标记、行有效标志及校验码,送标记译码器进行BCH译码,标记译码器根据选择的BCH生成多项式,采用并行算法进行BCH快速译码,如果没有数据错误,立即输出Cache标记和行有效标志,转步骤(3);如果存在1至4位数据错误,标记译码器对其纠正后,输出正确的Cache标记和行有效标志,转步骤(3);
(3)将步骤(2)读出的Cache标记在命中比较器中,与存储器地址中的地址标记部分进行比较,如果Cache标记与地址标记相等,且行内地址对应的行有效标志为有效状态时,表示Cache命中,命中比较器输出有效的命中指示信号和命中选择信号,转步骤(4);否则,Cache不命中,命中比较器将命中指示输出信号和命中选择信号置为无效状态,转步骤(4);
(4)处理器访问类型为存储器写访问时,转步骤(5),处理器访问类型为存储器读访问时,转步骤(6);
(5)存储器写操作开始时,数据编码器立即将处理器送来的输入数据,按照选择的BCH生成多项式,生成对应的BCH校验码,和数据一起送入数据存储器的各路输入,如果Cache命中,将输入数据和校验码一起写入数据存储器中,写入位置由命中选择信号、Cache索引和行内地址共同确定,然后结束对Cache的操作;如果不命中,直接结束对Cache的操作;
(6)存储器地址有效后,立即根据存储器地址中的Cache索引和行内地址,从数据存储器中读出数据字及校验码,送数据译码器进行BCH译码,数据译码器根据选择的BCH生成多项式,采用并行算法进行BCH快速译码,如果没有数据错误,立即输出数据字给数据选择器;如果存在1至4位数据错误,数据译码器对其纠正后,输出正确的数据字给数据选择器;当命中比较完成命中比较后,如果不命中转步骤(7);如果命中,根据命中选择信号从数据译码器输出的数据字选择命中的数据,输出给处理器内核,结束对Cache的操作;
(7)在读不命中时,根据处理器内核送来的存储器地址,从主存储器中读取与Cache行大小相同数量的数据字,将数据字依次送数据编码器生成BCH校验码,将数据字及校验码一起写入数据存储器中Cache索引指明的位置;然后根据存储器地址产生相应的地址标记,将地址标记及行有效标志一起送标记编码器生成标记字的BCH校验码,将地址标记、行有效标志及生成的校验码一起写入标记存储器中Cache索引确定的位置,完成Cache行的更新;同时,将存储器地址对应的数据字经数据译码器、数据选择器送处理器内核,结束对Cache的操作。
由于采用了前述[63,39]BCH码生成多项式,本实施例能够对Cache数据存储器和Cache标记存储器中的任意1至4位随机错误进行纠正。
嵌入式微处理器高速缓存4位数据翻转错误纠正装置的映像规则只能选择直接映像、两路组相联或四路组相联。采用直接映像的Cache映像规则时,嵌入式微处理器高速缓存4位数据翻转错误纠正装置的结构如图1所示;采用两路组相联的Cache映像规则时,嵌入式微处理器高速缓存4位数据翻转错误纠正装置的结构如图2所示;采用四路组相联的Cache映像规则时,嵌入式微处理器高速缓存4位数据翻转错误纠正装置的结构如图3所示。
本实用新型实现的嵌入式微处理器高速缓存4位数据翻转错误纠正装置,解决了嵌入式微处理器高速缓存中1至4位随机数据错误的检测与自动纠正问题,可以提高嵌入式微处理器在空间环境下工作的可靠性与处理性能。
在不脱离本实用新型精神的范围内,本实用新型可以具有多种变形,如:Cache容量变化、映像规则的选择等,均可在不同的实施中改变。这些变形也包含在本实用新型所要求保护的范围之内。
Claims (3)
1.一种嵌入式微处理器高速缓存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是否命中,输出命中标志,控制数据选择器选择数据输出;所述数据选择器根据命中比较器送来的命中选择信号,从多个数据译码器的输出中选择真正的命中数据输出给处理器内核。
2.根据权利要求1所述的4位数据翻转错误纠正装置,其特征在于:所述标记译码器的数量为1个、2个或4个,分别对标记存储器的一路输出进行校验和纠错;所述数据译码器的数量为1个、2个或4个,分别对数据存储器的一路输出进行校验和纠错。
3.根据权利要求2所述的4位数据翻转错误纠正装置,其特征在于:所述标记存储器、数据存储器的存储路数及标记译码器、数据译码器的数量,由所选择的Cache映射规则确定,可选择的Cache映射规则为直接映像、两路组相联或四路组相联。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201520627129.5U CN204833244U (zh) | 2015-08-19 | 2015-08-19 | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201520627129.5U CN204833244U (zh) | 2015-08-19 | 2015-08-19 | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN204833244U true CN204833244U (zh) | 2015-12-02 |
Family
ID=54690822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201520627129.5U Withdrawn - After Issue CN204833244U (zh) | 2015-08-19 | 2015-08-19 | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN204833244U (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022675A (zh) * | 2015-08-19 | 2015-11-04 | 首都师范大学 | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置与方法 |
CN109165115A (zh) * | 2018-06-26 | 2019-01-08 | 北京中电华大电子设计有限责任公司 | 一种增强flash存储器可靠性的方法 |
WO2022143690A1 (zh) * | 2020-12-31 | 2022-07-07 | 华为技术有限公司 | 一种编码方法及装置 |
-
2015
- 2015-08-19 CN CN201520627129.5U patent/CN204833244U/zh not_active Withdrawn - After Issue
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022675A (zh) * | 2015-08-19 | 2015-11-04 | 首都师范大学 | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置与方法 |
CN105022675B (zh) * | 2015-08-19 | 2017-12-08 | 首都师范大学 | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置与方法 |
CN109165115A (zh) * | 2018-06-26 | 2019-01-08 | 北京中电华大电子设计有限责任公司 | 一种增强flash存储器可靠性的方法 |
WO2022143690A1 (zh) * | 2020-12-31 | 2022-07-07 | 华为技术有限公司 | 一种编码方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101696389B1 (ko) | 비트 값들의 저장된 총계를 이용하여 데이터 에러들을 보정하는 시스템 및 방법 | |
US8464137B2 (en) | Probabilistic multi-tier error correction in not-and (NAND) flash memory | |
US8296620B2 (en) | Data devices including multiple error correction codes and methods of utilizing | |
US9268632B2 (en) | Memory device with ECC history table | |
CN105843699B (zh) | 用于错误监视与校正的动态随机存取存储器设备与方法 | |
CN104798047A (zh) | 错误检测和校正装置及方法 | |
US8566682B2 (en) | Failing bus lane detection using syndrome analysis | |
CN109716661A (zh) | 用于存储装置的阶梯码编码及解码的设备及方法 | |
CN103703447B (zh) | Mram场的干扰检测和恢复 | |
CN108182125B (zh) | 近阈值电压下高速缓存多位硬错误的检测及容错装置与方法 | |
US9141473B2 (en) | Parallel memory error detection and correction | |
JP2003115195A (ja) | 耐障害性を有する磁気抵抗固体記憶装置 | |
CN102904685B (zh) | 一种硬件表项校验错误的处理方法及装置 | |
CN105022675A (zh) | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置与方法 | |
CN103077095B (zh) | 内存数据的纠错方法及装置及计算机系统 | |
CN204833244U (zh) | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置 | |
CN103218271B (zh) | 一种数据纠错方法及装置 | |
CN105005513A (zh) | 高速缓存多位数据翻转错误的检测及容错装置与方法 | |
CN105138412A (zh) | 嵌入式微处理器高速缓存的混合纠错装置与方法 | |
CN105027084B (zh) | 在移动通信系统中控制存储器的装置和方法 | |
CN204856465U (zh) | 高速缓存多位数据翻转错误的检测及容错装置 | |
CN204833243U (zh) | 嵌入式微处理器高速缓存的混合纠错装置 | |
US20150121016A1 (en) | Method, Apparatus and Device for Data Processing | |
CN105023616A (zh) | 一种基于汉明码存取数据的方法及集成随机存取存储器 | |
CN110716824A (zh) | 编码方法及使用所述编码方法的存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
AV01 | Patent right actively abandoned | ||
AV01 | Patent right actively abandoned |
Granted publication date: 20151202 Effective date of abandoning: 20171208 |