嵌入式微處理器高速緩存4位數據翻轉錯誤的糾正裝置與方法
【技術領域】
[0001] 本發明涉及一種微處理器高速緩存數據錯誤的糾正裝置,尤其涉及一種嵌入式微 處理器高速緩存多位數據翻轉錯誤的糾正裝置。本發明還涉及一種嵌入式微處理器高速緩 存多位數據翻轉錯誤的糾正方法。
【背景技術】
[0002] 單粒子翻轉(SEU)是在空間應用環境下,由于單粒子入射導致集成電路中存儲單 元發生數據翻轉錯誤的事件,是空間環境下電子系統發生故障和工作異常的重要誘因之 一。以往SEU主要表現為單個存儲單元的單位數據翻轉故障,但是在集成電路采用納米工 藝后,隨著半導體器件特征尺寸的減小、工作頻率的上升和節點工作電壓的降低,在高速緩 存(Cache)等規整的存儲部件中,SEU引發多位翻轉(MBU)的概率大大提高,會導致最多8 位隨機數據翻轉錯誤,對空間應用的電子系統產生更大的危害。
[0003] 作為現代微處理器中的一個重要組成部分,Cache完成程序代碼與數據的緩沖,向 處理器內核(如流水線)提供指令代碼與數據。如果Cache中的存儲單元發生數據錯誤, 就會直接導致微處理器執行錯誤的指令,或對錯誤的數據進行運算,進而產生錯誤的執行 結果。因此,對于空間應用的高可靠微處理器而言,進行Cache系統的數據錯誤自動糾正具 有重要的意義。
[0004] 現行的通用微處理器(如alpha21264、Itanium、Powerpc-alO等)主要采用奇偶 校驗和ECC(ErrorCorrectingCodes,錯誤糾正碼)校驗碼實現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位數據翻轉錯誤糾正方法,其特征在于:所述嵌 入式微處理器高速緩存4位數據翻轉錯誤糾正裝置包括標記編碼器、標記存儲器、標記譯 碼器、數據編碼器、數據存儲器、數據譯碼器、命中比較器和數據選擇器;所述嵌入式微處理 器高速緩存4位數據翻轉錯誤糾正裝置采用如下步驟與方法對Cache中的最多4位數據錯 誤進行檢測與糾正:
[0009] (1)初始復位時,將標記存儲器中所有標記均寫入全0,所有行有效標志置為無 效,所有標記字的校驗碼均設置為有效的BCH校驗碼;
[0010] (2)處理器進行存儲器讀或寫訪問時,將存儲器地址劃分為地址標記、Cache索引 和行內地址三部分,根據Cache索引從標記存儲器中,分1路、2路或4路讀出Cache標記、 行有效標志及校驗碼,送各個標記譯碼器進行BCH譯碼,標記譯碼器根據選擇的BCH生成多 項式,采用并行算法進行BCH快速譯碼,如果沒有數據錯誤,立即輸出Cache標記和行有效 標志,轉步驟(3);如果存在1至4位數據錯誤,標記譯碼器對其糾正后,輸出正確的Cache 標記和行有效標志,轉步驟(3);
[0011] (3)將步驟(2)讀出的各個Cache標記在命中比較器中,與存儲器地址中的地址標 記部分進行比較,如果某一個Cache標記與地址標記相等,且行內地址對應的行有效標志 為有效狀態時,表示Cache命中,命中比較器輸出有效的命中指示信號和命中選擇信號,轉 步驟(4);否則,Cache不命中,命中比較器將命中指示輸出信號和命中選擇信號置為無效 狀態,轉步驟(4);
[0012] (4)處理器訪問類型為存儲器寫訪問時,轉步驟(5),處理器訪問類型為存儲器讀 訪問時,轉步驟(6);
[0013] (5)存儲器寫操作開始時,數據編碼器將處理器送來的輸入數據,按照選擇的BCH 生成多項式,生成對應的BCH校驗碼,和數據一起送入數據存儲器的各路輸入,如果Cache 命中,將輸入數據和校驗碼一起寫入數據存儲器中,寫入位置由命中選擇信號、Cache索引 和行內地址共同確定,然后結束對Cache的操作;如果不命中,直接結束對Cache的操作;
[0014] (6)存儲器地址有效后,立即根據存儲器地址中的Cache索引和行內地址,從數據 存儲器中,分1路、2路或4路讀出數據字及校驗碼,送各個數據譯碼器進行BCH譯碼,數據 譯碼器根據選擇的BCH生成多項式,采用并行算法進行BCH快速譯碼,如果沒有數據錯誤, 立即輸出數據字給數據選擇器;如果存在1至4位數據錯誤,數據譯碼器對其糾正后,輸出 正確的數據字給數據選擇器;當命中比較器完成命中比較后,如果不命中轉步驟(7);如果 命中,根據命中選擇信號從各個數據譯碼器輸出的數據字選擇命中的數據,輸出給處理器 內核,結束對Cache的操作;
[0015] (7)在讀不命中時,根據處理器內核送來的存儲器地址,從主存儲器中讀取與 Cache行大小相同數量的數據字,將數據字依次送數據編碼器生成BCH校驗碼,將數據字及 校驗碼一起寫入數據存儲器中,寫入位置根據Cache替換策略和Cache索引確定;然后根據 存儲器地址產生相應的地址標記,將地址標記及行有效標志一起送標記編碼器生成標記字 的BCH校驗碼,將地址標記、行有效標志及生成的校驗碼一起寫入標記存儲器相應位置,寫 入位置根據Cache替換策略和Cache索引確定,完成Cache行的更新;同時,根據Cache訪問 策略,將存儲器地址對應的數據字經數據譯碼器、數據選擇器送處理器內核,結束對Cache 的操作。
[0016] 本發明實現的嵌入式微處理器高速緩存4位數據翻轉錯誤的糾正裝置與方法,在 嵌入式微處理器中能夠糾正Cache的標記存儲器和數據存儲器由于SEU引發的1至4位隨 機錯誤,可以提高微處理器在空間等惡劣環境下應用的可靠性。
【附圖