嵌入式微處理器高速緩存的混合糾錯裝置的制造方法
【技術領域】
[0001] 本實用新型涉及一種微處理器高速緩存數(shù)據(jù)錯誤的糾錯裝置,尤其涉及一種嵌入 式微處理器高速緩存多位數(shù)據(jù)錯誤的糾錯裝置。
【背景技術】
[0002] 單粒子翻轉(SEU)是在空間應用環(huán)境下,由于單粒子入射導致集成電路中存儲單 元發(fā)生數(shù)據(jù)翻轉錯誤的事件,是空間環(huán)境下電子系統(tǒng)發(fā)生故障和工作異常的重要誘因之 一。以往SEU主要表現(xiàn)為單個存儲單元的單位數(shù)據(jù)翻轉故障,但是在集成電路采用納米工 藝后,隨著半導體器件特征尺寸的減小、工作頻率的上升和節(jié)點工作電壓的降低,在高速緩 存(Cache)等規(guī)整的存儲部件中,SEU引發(fā)多位翻轉(MBU)的概率大大提高,會導致最多8 位隨機數(shù)據(jù)翻轉錯誤,對空間應用的電子系統(tǒng)產(chǎn)生更大的危害。
[0003] 作為現(xiàn)代微處理器中的一個重要組成部分,Cache完成程序代碼與數(shù)據(jù)的緩沖,向 處理器內核(如流水線)提供指令代碼與數(shù)據(jù)。如果Cache中的存儲單元發(fā)生數(shù)據(jù)錯誤, 就會直接導致微處理器執(zhí)行錯誤的指令,或對錯誤的數(shù)據(jù)進行運算,進而產(chǎn)生錯誤的執(zhí)行 結果。因此,對于空間應用的高可靠微處理器而言,進行Cache系統(tǒng)的數(shù)據(jù)錯誤自動糾正具 有重要的意義。
[0004] 現(xiàn)行的通用微處理器(如alpha2l264、Itanium、Powerpc-alO等)主要采用奇偶 校驗和ECC(Error Correcting Codes,錯誤糾正碼)校驗碼實現(xiàn)Cache的錯誤保護,它的 局限性是只能糾正單比特錯誤和檢測雙比特錯誤。Chishti等人基于緩存行粒度提出的 MS-ECC方案,面積和性能開銷很大。Kim等人提出的的二維校驗碼可以糾正多位錯誤,但它 對于分散的隨機錯誤效率較低。Intel在2011年提出VS-ECC方案,針對不同的Cache塊使 用糾錯能力不同的算法,降低了算法帶來的面積和性能開銷,但在容錯能力方面仍有待提 升。基于分組奇偶校驗的數(shù)據(jù)重載策略目前被用于多種空間微處理器,用于對Cache的數(shù) 據(jù)錯誤進行容錯,但是該方法只能解決組內1位錯誤問題,無法應對單粒子誘發(fā)的多位隨 機錯誤??傊?,現(xiàn)有的技術方案對于MBU引發(fā)的2-4位隨機錯誤缺乏行之有效的容錯方案。
[0005] 采用Cache數(shù)據(jù)錯誤檢測,在出錯時強制Cache不命中,通過重裝Cache糾正數(shù)據(jù) 錯誤,也是一種行之有效的Cache數(shù)據(jù)翻轉故障的容錯方法。但是這種方法會降低Cache 的命中率,在使用目前廣泛應用的DRAM類存儲器的系統(tǒng)中,Cache失效開銷一般都比較大, 同時,在納米工藝下,SEU導致數(shù)據(jù)錯誤的概率大大提高,因此,這種基于Cache重裝容錯方 法會降低處理器的執(zhí)行效率。
[0006] 針對空間等環(huán)境下高可靠應用的需要,可以采用BCH編碼方式對Cache數(shù)據(jù)存儲 器和Cache標記存儲器進行保護。BCH(Bose-Chaudhuri-Hocquenheim)編碼是一種定義在 有限域GF(q)上線性循環(huán)分組碼,能夠對數(shù)據(jù)分組中的多個錯誤進行糾正。二進制BCH碼 是一種定義在有限域GF (2)上的BCH碼,能檢測并糾正數(shù)據(jù)分組中的多位隨機錯誤的差錯 控制碼,具有糾錯能力強、構造方便、編碼簡單等優(yōu)點,在通信領域(如數(shù)字廣播、3G網(wǎng)絡、 光通信等)得到了廣泛的應用。
[0007] 基于BCH編解碼的糾錯方法可以對Cache中的多位數(shù)據(jù)錯誤進行檢測與糾正,避 免Cache數(shù)據(jù)重裝帶來的額外開銷。但是,BCH譯碼算法較為復雜,發(fā)生錯誤時,需要占用 多個時鐘周期,完成伴隨式計算、錯誤位置多項式計算、錯誤位置求解多個步驟才能完成錯 誤糾正。對于一位錯誤和多位錯誤,BCH譯碼過程完全相同,糾錯時都需要等待譯碼過程完 成后,才能向CPU內核提供數(shù)據(jù),導致CPU內核的流水線插入多個周期的暫停。
[0008] 盡管在納米級工藝下,SEU發(fā)生概率大大提高,且會引發(fā)多位數(shù)據(jù)翻轉,但是,SEU 引發(fā)單個數(shù)據(jù)位的翻轉錯誤仍然是主要的錯誤模式,占較大比例。對于單個數(shù)據(jù)位錯誤,采 用基于擴展海明碼的錯誤檢測與糾正(EDAC,Error Detection and Correction)算法具有 更好的糾錯效率,糾錯時間更短,只有需要5-6級門延遲即可完成。這樣,在單個數(shù)據(jù)位錯 誤時,如果采用EDAC算法,可以快速地向CPU內核提供糾正后的數(shù)據(jù),不需要在CPU內核的 流水線上插入等待周期,或只有插入1個等待周期。如果能夠針對不同錯誤類型采取不同 的處理算法,降低處理器流水線在SEU故障狀態(tài)下的等待延遲,就可以提高微處理器在空 間環(huán)境下的執(zhí)行速度。
【發(fā)明內容】
[0009] 本實用新型的目的在于設計一種嵌入式微處理器抗單粒子翻轉效應的高速緩存 中多位數(shù)據(jù)翻轉故障的快速糾正裝置,能夠對SEU導致的多位隨機數(shù)據(jù)翻轉錯誤進行自動 的糾正,并能夠對一位數(shù)據(jù)錯誤進行快速糾錯。
[0010] 一種嵌入式微處理器高速緩存的混合糾錯裝置,其特征在于:包括EDAC標記編碼 器、BCH標記編碼器、標記存儲器、EDAC標記譯碼器、BCH標記譯碼器、EDAC數(shù)據(jù)編碼器、BCH 數(shù)據(jù)編碼器、數(shù)據(jù)存儲器、EDAC數(shù)據(jù)譯碼器、BCH數(shù)據(jù)譯碼器、命中判決器和數(shù)據(jù)選擇器;所 述EDAC標記編碼器在進行Cache寫操作時,對寫入的地址標記及行有效標志進行編碼,生 成EDAC校驗碼,與地址標記一起存入標記存儲器;所述BCH標記編碼器在進行Cache寫操 作時,對寫入的地址標記、行有效標志及EDAC校驗碼進行二進制BCH編碼,生成BCH校驗 碼,存入標記存儲器;所述標記存儲器用于存儲標記字和它的EDAC校驗碼及BCH校驗碼,所 述標記字包括地址標記和行有效標志兩部分;所述EDAC標記譯碼器在進行Cache訪問時, 對標記存儲器輸出的標記字及EDAC校驗碼進行校驗,對標記字中的1位數(shù)據(jù)錯誤進行快速 糾正,并將糾錯后的標記字送命中判決器進行Cache命中判決;所述BCH標記譯碼器在進 行Cache訪問時,對標記存儲器輸出的標記字、EDAC校驗碼及BCH校驗碼進行校驗,生成錯 誤糾錯標志,對標記字中的多位隨機錯誤進行糾正,將糾錯后的標記字送命中判決器進行 Cache命中判決;所述EDAC數(shù)據(jù)編碼器在進行Cache寫操作時,對輸入數(shù)據(jù)進行編碼,生成 EDAC校驗碼,與輸入數(shù)據(jù)一起存入數(shù)據(jù)存儲器;所述BCH數(shù)據(jù)編碼器在進行Cache寫操作 時,對輸入數(shù)據(jù)及EDAC校驗碼進行二進制BCH編碼,生成BCH校驗碼,存入數(shù)據(jù)存儲器;所 述數(shù)據(jù)存儲器用于存儲Cache數(shù)據(jù)字和它的EDAC校驗碼及BCH校驗碼;所述EDAC數(shù)據(jù)譯碼 器在進行Cache讀操作時,對數(shù)據(jù)存儲器輸出的數(shù)據(jù)字及EDAC校驗碼進行校驗,對數(shù)據(jù)字 中的1位隨機錯誤進行糾正,并將糾正后的數(shù)據(jù)字送數(shù)據(jù)選擇器;所述BCH數(shù)據(jù)譯碼器在進 行Cache讀操作時,對數(shù)據(jù)存儲器輸出的數(shù)據(jù)字、EDAC校驗碼及BCH校驗碼進行校驗,生成 錯誤糾錯標志,對數(shù)據(jù)字中的多位隨機錯誤進行糾正,并將糾正后的數(shù)據(jù)字送數(shù)據(jù)選擇器; 所述命中判決器將輸入的存儲器地址中的標記部分,根據(jù)BCH數(shù)據(jù)譯碼器的指示,與EDAC 數(shù)據(jù)譯碼器或BCH數(shù)據(jù)譯碼器的輸出進行比較,判斷Cache是否命中,輸出命中指示標志, 控制數(shù)據(jù)選擇器的數(shù)據(jù)輸出;所述數(shù)據(jù)選擇器根據(jù)命中判決器送來的命中選擇信號和BCH 數(shù)據(jù)譯碼器送來的錯誤指示信號,在Cache命中時,選擇EDAC數(shù)據(jù)譯碼器或BCH數(shù)據(jù)譯碼 器的數(shù)據(jù),輸出給處理器內核。
[0011] 本實用新型實現(xiàn)的嵌入式微處理器高速緩存的混合糾錯裝置,在嵌入式微處理器 中能夠糾正Cache的標記存儲器和數(shù)據(jù)存儲器由于SEU引發(fā)的多位隨機錯誤,并能夠對其 中的單位錯誤進行快速糾錯,可以提高微處理器在空間等惡劣環(huán)境下應用的可靠性與處理 性能。
【附圖說明】
[0012] 圖1是采用單一糾錯方法的Cache數(shù)據(jù)錯誤糾正裝置的結構圖;
[0013] 圖2是根據(jù)本實用新型的混合糾錯裝置結構圖。
【具體實施方式】
[0014] 本實施例結合一種SPARC V8體系結構的嵌入式微處理器對本實用新型的具體實 施方式進行說明。該SPARC V8體系結構的嵌入式微處理器,采用32位RISC架構,指令 Cache和數(shù)據(jù)Cache均采用直接映像方式,容量都為2K字節(jié),Cache行大小是4個字,字寬 32位。不考慮容錯措施時,Cache的標記存儲器容量為128字,字寬度25位,其中地址標記 21位,行有效標記4位,分別表