高速緩存多位數(shù)據(jù)翻轉(zhuǎn)錯(cuò)誤的檢測(cè)及容錯(cuò)裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本實(shí)用新型設(shè)及一種微處理器高速緩存數(shù)據(jù)錯(cuò)誤的檢測(cè)與容錯(cuò)裝置,尤其設(shè)及一 種嵌入式微處理器高速緩存多位數(shù)據(jù)翻轉(zhuǎn)錯(cuò)誤的檢測(cè)與容錯(cuò)裝置。
【背景技術(shù)】
[0002] 單粒子翻轉(zhuǎn)(SEU)是在空間應(yīng)用環(huán)境下,由于單粒子入射導(dǎo)致集成電路中存儲(chǔ)單 元發(fā)生數(shù)據(jù)翻轉(zhuǎn)錯(cuò)誤的事件,是空間環(huán)境下電子系統(tǒng)發(fā)生故障和工作異常的重要誘因之 一。W往S抓主要表現(xiàn)為單個(gè)存儲(chǔ)單元的單位數(shù)據(jù)翻轉(zhuǎn)故障,但是在集成電路采用納米工 藝后,隨著半導(dǎo)體器件特征尺寸的減小、工作頻率的上升和節(jié)點(diǎn)工作電壓的降低,在高速緩 存(Cache)等規(guī)整的存儲(chǔ)部件中,S抓引發(fā)多位翻轉(zhuǎn)(MBU)的概率大大提高,會(huì)導(dǎo)致最多8 位隨機(jī)數(shù)據(jù)翻轉(zhuǎn)錯(cuò)誤,對(duì)空間應(yīng)用的電子系統(tǒng)產(chǎn)生更大的危害。
[0003] 作為現(xiàn)代微處理器中的一個(gè)重要組成部分,Cache完成程序代碼與數(shù)據(jù)的緩沖,向 流水線提供指令代碼與數(shù)據(jù)。如果化Che中的存儲(chǔ)單元發(fā)生數(shù)據(jù)錯(cuò)誤,就會(huì)直接導(dǎo)致微處 理器執(zhí)行錯(cuò)誤的指令,或?qū)﹀e(cuò)誤的數(shù)據(jù)進(jìn)行運(yùn)算,進(jìn)而產(chǎn)生錯(cuò)誤的執(zhí)行結(jié)果。因此,對(duì)于空 間應(yīng)用的高可靠微處理器而言,進(jìn)行化Che系統(tǒng)的容錯(cuò)設(shè)計(jì)具有重要的意義。
[0004] 現(xiàn)行的通用微處理器(如alpha21264、Itanium、Powe巧c-alO等)主要采用奇偶 校驗(yàn)和ECC巧rrorCorrectingCodes,錯(cuò)誤糾正碼)校驗(yàn)碼實(shí)現(xiàn)化che的錯(cuò)誤保護(hù),它的 局限性是只能糾正單比特錯(cuò)誤和檢測(cè)雙比特錯(cuò)誤?;痠shti等人基于緩存行粒度提出的 MS-ECC方案,面積和性能開銷很大。Kim等人提出的的二維校驗(yàn)碼可W糾正多位錯(cuò)誤,但它 對(duì)于分散的隨機(jī)錯(cuò)誤效率較低。Intel在2011年提出VS-ECC方案,針對(duì)不同的化Che塊使 用糾錯(cuò)能力不同的算法,降低了算法帶來的面積和性能開銷,但在容錯(cuò)能力方面仍有待提 升?;诜纸M奇偶校驗(yàn)的數(shù)據(jù)重載策略目前被用于多種空間微處理器,用于對(duì)化Che的數(shù) 據(jù)錯(cuò)誤進(jìn)行容錯(cuò),但是該方法只能解決組內(nèi)1位錯(cuò)誤問題,無法應(yīng)對(duì)單粒子誘發(fā)的多位隨 機(jī)錯(cuò)誤??傊F(xiàn)有的技術(shù)方案對(duì)于MBU引發(fā)的2-4位隨機(jī)錯(cuò)誤缺乏行之有效的容錯(cuò)方案。
【發(fā)明內(nèi)容】
陽(yáng)〇化]本實(shí)用新型的目的在于設(shè)計(jì)一種嵌入式微處理器抗單粒子翻轉(zhuǎn)效應(yīng)的高速緩存 多位數(shù)據(jù)翻轉(zhuǎn)故障的檢測(cè)及容錯(cuò)裝置,能夠?qū)抓導(dǎo)致的多位隨機(jī)數(shù)據(jù)翻轉(zhuǎn)錯(cuò)誤進(jìn)行檢測(cè) 與容錯(cuò)。
[0006] 一種嵌入式微處理器高速緩存多位數(shù)據(jù)翻轉(zhuǎn)錯(cuò)誤的檢測(cè)及容錯(cuò)裝置,其特征在 于:包括標(biāo)記BCH編碼器、Cache標(biāo)記存儲(chǔ)器、標(biāo)記BCH校驗(yàn)器、數(shù)據(jù)BCH編碼器、Cache數(shù) 據(jù)存儲(chǔ)器、數(shù)據(jù)BCH校驗(yàn)器、Cache控制器和命中控制器;所述標(biāo)記BCH編碼器在進(jìn)行化Che 寫訪問時(shí),對(duì)寫入的化che標(biāo)記進(jìn)行BCH編碼,生成校驗(yàn)碼,與化che標(biāo)記一起存入化che 標(biāo)記存儲(chǔ)器;所述化Che標(biāo)記存儲(chǔ)器用于存儲(chǔ)化Che標(biāo)記字和標(biāo)記字的BCH校驗(yàn)碼,所述 Cache標(biāo)記字包括化che標(biāo)記和行有效標(biāo)志兩部分;所述標(biāo)記BCH校驗(yàn)器在進(jìn)行化che訪 問時(shí),對(duì)化Che標(biāo)記存儲(chǔ)器輸出的化Che標(biāo)記及校驗(yàn)碼進(jìn)行BCH校驗(yàn),生成校驗(yàn)錯(cuò)誤標(biāo)志, 供命中控制器決定是否命中;所述數(shù)據(jù)BCH編碼器在進(jìn)行化Che寫訪問時(shí),對(duì)輸入數(shù)據(jù)進(jìn) 行BCH編碼,生成校驗(yàn)碼,與輸入數(shù)據(jù)一起存入化Che數(shù)據(jù)存儲(chǔ)器;所述化Che數(shù)據(jù)存儲(chǔ)器 用于存儲(chǔ)化Che數(shù)據(jù)字和數(shù)據(jù)字的BCH校驗(yàn)碼;所述數(shù)據(jù)BCH校驗(yàn)器在進(jìn)行化Che讀訪問 時(shí),對(duì)化Che數(shù)據(jù)存儲(chǔ)器輸出的化Che數(shù)據(jù)及校驗(yàn)碼進(jìn)行BCH校驗(yàn),生成校驗(yàn)錯(cuò)誤標(biāo)志,供 命中控制器決定是否命中;所述化Che控制器根據(jù)輸入的存儲(chǔ)器地址對(duì)化Che標(biāo)記存儲(chǔ)器、 Cache數(shù)據(jù)存儲(chǔ)器的讀寫進(jìn)行控制,根據(jù)輸入的存儲(chǔ)器地址與化Che標(biāo)記判斷化Che是否 命中,輸出命中標(biāo)志,選擇化Che數(shù)據(jù)輸出;所述命中控制器根據(jù)化Che控制器的命中標(biāo)志、 標(biāo)記BCH校驗(yàn)器的校驗(yàn)錯(cuò)誤標(biāo)志與數(shù)據(jù)BCH校驗(yàn)器的校驗(yàn)錯(cuò)誤標(biāo)志決定是否產(chǎn)生有效的 Cache命中標(biāo)志,在命中有效時(shí)將化Che控制器選擇的化Che數(shù)據(jù)輸出給處理器內(nèi)核。
[0007] 本實(shí)用新型實(shí)現(xiàn)的嵌入式微處理器高速緩存多位數(shù)據(jù)翻轉(zhuǎn)錯(cuò)誤的檢測(cè)及容錯(cuò)裝 置,在嵌入式微處理器中能夠檢測(cè)化Che的標(biāo)記存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器由于沈U引發(fā)的多位 錯(cuò)誤,并進(jìn)行容錯(cuò),可W提高微處理器在空間等惡劣環(huán)境下應(yīng)用的可靠性。
【附圖說明】
[0008] 圖1是根據(jù)本實(shí)用新型的高速緩存多位數(shù)據(jù)翻轉(zhuǎn)錯(cuò)誤的檢測(cè)及容錯(cuò)裝置結(jié)構(gòu)圖;
[0009] 圖2是根據(jù)本實(shí)用新型的高速緩存多位數(shù)據(jù)翻轉(zhuǎn)錯(cuò)誤的檢測(cè)及容錯(cuò)裝置進(jìn)行命 中判斷的工作流程圖。
【具體實(shí)施方式】
[0010] 本實(shí)施例結(jié)合一種SPARCV8體系結(jié)構(gòu)的嵌入式微處理器對(duì)本實(shí)用新型的具體實(shí) 施方式進(jìn)行說明。該SPARCV8體系結(jié)構(gòu)的嵌入式微處理器,采用32位RISC架構(gòu),指令 Cache和數(shù)據(jù)化Che均采用直接映像方式,容量都為2K字節(jié),Cache行大小是4個(gè)字,字寬 32位。不考慮檢測(cè)及容錯(cuò)措施時(shí),Cache的標(biāo)記存儲(chǔ)器容量為128字,字寬度25化其中地 址標(biāo)記21位,行有效標(biāo)記4位,分別表示行內(nèi)每一個(gè)字是否有效。
[0011] -般情況下化che主要包含S部分:Cache控制器、Cache標(biāo)記存儲(chǔ)器和化che數(shù) 據(jù)存儲(chǔ)器,受S抓影響導(dǎo)致數(shù)據(jù)錯(cuò)誤的部分主要是標(biāo)記存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。標(biāo)記存儲(chǔ)器 中出現(xiàn)數(shù)據(jù)錯(cuò)誤時(shí),會(huì)導(dǎo)致化Che誤命中或誤失效,誤命中會(huì)導(dǎo)致化Che將錯(cuò)誤的數(shù)據(jù)或指 令提供給處理器內(nèi)核,從而導(dǎo)致錯(cuò)誤的執(zhí)行結(jié)果;誤失效一般情況下只有是影響化Che命 中率,導(dǎo)致化Che訪問性能降低,不會(huì)導(dǎo)致錯(cuò)誤的結(jié)果。Cache數(shù)據(jù)存儲(chǔ)器中出現(xiàn)錯(cuò)誤時(shí),就 會(huì)在命中時(shí)向處理器內(nèi)核提供錯(cuò)誤的數(shù)據(jù)或指令代碼,導(dǎo)致錯(cuò)誤的執(zhí)行結(jié)果。
[0012] 針對(duì)空間等環(huán)境下高可靠應(yīng)用的需要,可W采用BCH編碼方式對(duì)化Che數(shù)據(jù)存儲(chǔ) 器和化che標(biāo)記存儲(chǔ)器進(jìn)行保護(hù)。BCH度ose-化au化uri-Hocquenheim)編碼是一種定義在 有限域GF(q)上線性循環(huán)分組碼,能夠?qū)?shù)據(jù)分組中的多個(gè)錯(cuò)誤進(jìn)行糾正。二進(jìn)制BCH碼 是一種定義在有限域GF(2)上的BCH碼,能檢測(cè)并糾正數(shù)據(jù)分組中的多位隨機(jī)錯(cuò)誤的差錯(cuò) 控制碼,具有糾錯(cuò)能力強(qiáng)、構(gòu)造方便、編碼簡(jiǎn)單等優(yōu)點(diǎn),在通信領(lǐng)域(如數(shù)字廣播、3G網(wǎng)絡(luò)、 光通信等)得到了廣泛的應(yīng)用。
[0013] 本實(shí)施例采用二進(jìn)制BCH碼,對(duì)化che數(shù)據(jù)存儲(chǔ)器的32位數(shù)據(jù)和化che標(biāo)記存 儲(chǔ)器的25位數(shù)據(jù)進(jìn)行4位錯(cuò)誤檢測(cè)。確定BCH編碼碼長(zhǎng)n= 63,選擇本原多項(xiàng)式P (X)= x6+x+l,校驗(yàn)位個(gè)數(shù)n-k= 24,最大信息位長(zhǎng)度k= 39,最小碼距dmi。= 9。進(jìn)而確定生成 多項(xiàng)式如下: W14]g(X) =l+X+x2+x4+x5+x6+xS+x9+xl°+X"+xl6+x"+xl9+x2°+x22+x23+x24 陽(yáng)01引可W得到[63,39]BCH碼的生成矩陣G39X63如下:
[0016]
[0017] 由于化Che數(shù)據(jù)存儲(chǔ)器和化Che標(biāo)記存儲(chǔ)器的數(shù)據(jù)位寬分別是32位和25位,對(duì) [63, 39]BCH碼進(jìn)行縮短,便可得到縮短后的生成矩陣G32XW和G25X49。設(shè)m為欲編碼的32 位或25位數(shù)據(jù),碼字C=m?G即為相應(yīng)的BCH編碼,其中校驗(yàn)位寬度為24位。
[0018] 根據(jù)生成矩陣G不難得到化Che數(shù)據(jù)存儲(chǔ)器和化Che標(biāo)記存儲(chǔ)器的BCH校驗(yàn)矩陣 H24X56和H24X49,將從Cache數(shù)據(jù)存儲(chǔ)器或Cache標(biāo)記存儲(chǔ)器讀出的56位或49位包括檢驗(yàn) 碼的數(shù)據(jù)記為R,計(jì)算伴隨式S=R?HT,若S為全零向量,說明R沒有錯(cuò)誤,否則說明R發(fā) 生了 1~4位錯(cuò)誤。
[0019] 基于上述基本原理與設(shè)置,本實(shí)用新型的多位數(shù)據(jù)翻轉(zhuǎn)錯(cuò)誤的檢測(cè)及容錯(cuò)裝置的 一種【具體實(shí)施方式】如下:
[0020] 在SPARCV8體系結(jié)構(gòu)的嵌入式微處理器中,將高速緩存設(shè)置為如圖1所示的多位 數(shù)據(jù)翻轉(zhuǎn)錯(cuò)誤的檢測(cè)及容錯(cuò)裝置,包括標(biāo)記BCH編碼器、標(biāo)記BCH校驗(yàn)器、數(shù)據(jù)BCH編碼器、 數(shù)據(jù)BCH校驗(yàn)器、Cache控制器、Cache標(biāo)記存儲(chǔ)器、Cache數(shù)據(jù)存儲(chǔ)器和命中控制器。
[0021] Cache控制器將輸入的存儲(chǔ)器地址(32位)劃分為地址標(biāo)記(高21位)Xache索 引(7位)和行內(nèi)地址(低4位),使用化Che索引和行內(nèi)地址對(duì)化Che標(biāo)記存儲(chǔ)器、Cache 數(shù)據(jù)存儲(chǔ)器的讀寫進(jìn)行控制,使用地址標(biāo)記與化Che標(biāo)記相比較,判斷化Che是否命中,輸 出命中標(biāo)志,選擇化che數(shù)據(jù)輸出。