[發明專利]基于Zynq-7000的片上存儲器抗單粒子翻轉防護方法有效
| 申請號: | 201710485237.7 | 申請日: | 2017-06-23 |
| 公開(公告)號: | CN107291570B | 公開(公告)日: | 2020-01-07 |
| 發明(設計)人: | 彭喜元;沈露;崔秀海;彭宇;王少軍 | 申請(專利權)人: | 哈爾濱工業大學 |
| 主分類號: | G06F11/07 | 分類號: | G06F11/07;G06F11/20 |
| 代理公司: | 11340 北京天奇智新知識產權代理有限公司 | 代理人: | 陳新勝 |
| 地址: | 150001 黑龍*** | 國省代碼: | 黑龍;23 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 zynq 7000 存儲器 粒子 翻轉 防護 方法 | ||
1.一種基于Zynq-7000的片上存儲器抗單粒子翻轉防護方法,CPU0或CPU1中的原始數據通過軟件EDAC模塊進行編碼操作,寫入到OCM中;OCM中的Hsiao碼數據通過軟件EDAC模塊進行解碼操作,被CPU0或CPU1讀取;當數據讀取檢測到單位錯或雙位錯時,SGI產生軟件中斷進行雙核同步數據回寫或通知CPU0和CPU1進行處理,其特征在于:
A、關鍵變量定義及初始化:將需存儲在OCM且待加固的變量作為關鍵變量,定義關鍵變量的位寬,指定關鍵變量在OCM中的存儲地址,初始化關鍵變量,并對SGI進行使能;
B、數據編解碼操作:采用具有糾一檢二功能的Hsiao碼作為OCM加固的糾錯碼,根據Hsiao碼算法原理,對CPU寫入OCM的數據進行編碼操作,對CPU從OCM讀取的數據進行解碼操作;
C、錯誤中斷生成:采用Zynq-7000內部軟件生成中斷SGI處理檢測到的錯誤,當從OCM讀取數據檢測到單位錯時,SGI產生軟件中斷SEC,通知CPU0和CPU1進行同步回寫;當從OCM讀取數據檢測到雙位錯時,SGI產生軟件中斷DED,通知CPU0和CPU1進行處理;
D、雙核同步回寫:當數據讀取檢測到單位錯時,通過Hsiao碼解碼操作可以得到CPU所需的正確數據,但為便于后續數據的使用需將正確數據回寫到OCM中,同時為避免一個CPU在數據回寫過程中被另一個CPU訪問,采取雙核同步回寫操作,直到數據回寫完成才可以被訪問。
2.根據權利要求1所述的基于Zynq-7000的片上存儲器抗單粒子翻轉防護方法,其特征在于:所述的關鍵變量定義及初始化過程中,將所有存儲到OCM的關鍵變量定義成位寬為32位的無符號長整型數,其中僅低16位有效,高16位全部清0,用作Hsiao碼校驗位的存儲;為所有的關鍵變量分配OCM存儲地址,Zynq-7000內OCM默認的映射地址空間為0x0000_0000~0x0003_FFFF和0xFFFF_0000~0xFFFF_FFFF;對存儲到OCM的關鍵變量進行初始化賦值。
3.根據權利要求1所述的基于Zynq-7000的片上存儲器抗單粒子翻轉防護方法,其特征在于:所述的解碼操作過程中,當CPU向OCM寫入數據時,從CPU0或CPU1中讀取原始數據,將原始數據的低16位有效數據拆分成兩組8位數據,對8位數據進行移位操作存入一個長度為8的數據位數組中,使數組中各元素最低位的值為8位數據相應位的值;根據上述得到的數據數組與Hsiao碼算法獲取的生成矩陣G,對每一個8位數據進行編碼操作,并獲取一個長度為5的校驗位數組;根據Hsiao碼的數據位分配,將兩組數據位數組和校驗位數組進行移位操作,合成一個32位Hsiao碼數據,存入OCM中。
4.根據權利要求1所述的基于Zynq-7000的片上存儲器抗單粒子翻轉防護方法,其特征在于:所述的解碼操作過程中,當CPU從OCM讀取數據時:從OCM中讀取Hsiao碼數據,并記錄該數據地址,將Hsiao碼數據拆分成兩組Hsiao碼數據,對13位編碼數據進行移位操作存入一個長度為13的編碼位數組中,使數組中各元素最低位的值為編碼數據相應位的值;根據上述得到的編碼位數組與Hsiao碼算法獲取的監督矩陣H,對每一個編碼數據進行解碼操作,并獲取一個長度為5的校驗子數組;將兩組校驗子數組進行移位操作,使校驗子S相應位的值為數組中各元素最低位的值,根據校驗子S得到無錯、單位錯和雙位錯的錯誤狀態標志,對于無錯和單位錯可以得到正確的數據,被CPU0或CPU1讀取和使用。
5.根據權利要求1所述的基于Zynq-7000的片上存儲器抗單粒子翻轉防護方法,其特征在于:所述的錯誤中斷生成過程中,為單位錯和雙位錯分別分配一個SGI ID號,初始化并開啟對應的SGI;當檢測到錯誤時,將SGI連接到所有的CPU,通過寫Zynq-7000內部ICDSGIR寄存器,產生相應的軟件中斷,同時對錯誤狀態標志SEC_Flag或DED_Flag置位;進入單位錯或雙位錯對應的軟件中斷服務函數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于哈爾濱工業大學,未經哈爾濱工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710485237.7/1.html,轉載請聲明來源鉆瓜專利網。





