[發(fā)明專利]一種處理器的異常修復方法及裝置有效
| 申請?zhí)枺?/td> | 202011615563.3 | 申請日: | 2020-12-31 |
| 公開(公告)號: | CN112732481B | 公開(公告)日: | 2023-10-10 |
| 發(fā)明(設(shè)計)人: | 匡曉云;黃開天;楊祎巍;于楊;姚浩;弓羽箭;閆佳偉;韓輝;徐貴洲;焦進星 | 申請(專利權(quán))人: | 南方電網(wǎng)科學研究院有限責任公司;南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司;北京翼輝信息技術(shù)有限公司 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14 |
| 代理公司: | 北京智乾知識產(chǎn)權(quán)代理有限公司 11552 | 代理人: | 華冰 |
| 地址: | 510530 廣東省廣州市黃埔區(qū)科*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 處理器 異常 修復 方法 裝置 | ||
本發(fā)明提供了一種處理器的異常修復方法及裝置,該方法包括:檢測步驟S101,對處理器的運行狀態(tài)進行檢測,如果檢測到異常則設(shè)置異常標識;修復步驟S102:當操作系統(tǒng)SylixOS的ARCH層檢測到所述異常標識時,所述ARCH層觸發(fā)回調(diào)函數(shù),在所述回調(diào)函數(shù)中對所述異常進行恢復。本發(fā)明的方法可以快速修復非對齊訪問異常,通過抽象出的操作系統(tǒng)ARCH層對異常進行修復,使上層應用軟件感知不到此類異常,繼續(xù)正確執(zhí)行相關(guān)程序代碼,解決了上層應用出現(xiàn)錯誤時繼續(xù)執(zhí)行導致錯誤執(zhí)行結(jié)果的問題,提高了用戶體驗,本發(fā)明中,不僅確定出處理器異常,還確定產(chǎn)生該異常的應用,且在修復過程中,在修復時僅需要將產(chǎn)生的異常的指令重新執(zhí)行即可,修復速度快。
技術(shù)領(lǐng)域
本發(fā)明涉及處理器修復技術(shù)領(lǐng)域,特別是一種處理器的異常修復方法及裝置。
背景技術(shù)
現(xiàn)有軟件針對c-sky架構(gòu)處理器的非對齊訪問異常處理比較簡單,觸發(fā)異常后會拋異常,直接造成相關(guān)軟件無法直接運行的情況,需要運行在c-sky架構(gòu)處理器上的應用軟件在編碼過程中注意非對齊指令的使用,進行人為控制,影響了軟件的運行。
可見現(xiàn)有技術(shù)中,針對在c-sky架構(gòu)處理器上非對齊訪問異常的處理方法主要有以下缺陷和不足:
①不夠智能,人為避免,目前,現(xiàn)有方法僅僅做到CPU異常的通知功能,沒有真正規(guī)避硬件異常,均由上層應用用戶自身編程控制,非常繁瑣。
②不能通用,不利于多應用運行,這類處理器往往面對大量的用戶開發(fā)各種應用軟件,各軟件運行時觸發(fā)異常將導致原有軟件停止運行,不利于多應用運行。
③影響上層應用正確運行,這類異常并非致命性異常,當上層應用觸發(fā)非對齊訪問異常時容易忽略,此時應用執(zhí)行狀態(tài),通用寄存器狀態(tài)容易不正常,導致上層應用運行得到錯誤的執(zhí)行結(jié)果。
發(fā)明內(nèi)容
本發(fā)明針對上述現(xiàn)有技術(shù)中的缺陷,提出了如下技術(shù)方案。
一種處理器的異常修復方法,該方法包括:
檢測步驟,對處理器的運行狀態(tài)進行檢測,如果檢測到異常則設(shè)置異常標識;
修復步驟:當操作系統(tǒng)SylixOS的ARCH層檢測到所述異常標識時,所述ARCH層觸發(fā)回調(diào)函數(shù),在所述回調(diào)函數(shù)中對所述異常進行恢復。
更進一步地,所述異常為非對齊訪問異常。
更進一步地,所述處理器為c-sky架構(gòu)的處理器。
更進一步地,在所述回調(diào)函數(shù)中對所述異常進行恢復的操作包括:基于所述異常標識獲取所述異常的初始地址,將所述初始地址到下一個對齊地址ADD之間的第一數(shù)據(jù)讀出并寫入寄存器中,讀取ADD+1對齊地址處的第二數(shù)據(jù),將所述第二數(shù)據(jù)與所述第一數(shù)據(jù)在所述寄存器中進行組合得到組合數(shù)據(jù),通過PC指針反匯出導致處理器異常的指令,將所述指令基于所述組合數(shù)據(jù)重新執(zhí)行。
更進一步地,所述檢測步驟的操作為:檢測所述處理器上的運行狀態(tài),當檢測到所述處理器發(fā)生非對齊異常時,記錄所述非對齊異常發(fā)生的初始地址、導致該異常的進程以及所述進程所隸屬的應用,設(shè)置異常標識,并將所述非對齊異常發(fā)生的初始地址、導致該異常的進程以及所述進程所隸屬的應用與所述異常標識相關(guān)聯(lián)。
本發(fā)明還提出了一種處理器的異常修復裝置,該裝置包括:
檢測單元,對處理器的運行狀態(tài)進行檢測,如果檢測到異常則設(shè)置異常標識;
修復單元:當操作系統(tǒng)SylixOS的ARCH層檢測到所述異常標識時,所述ARCH層觸發(fā)回調(diào)函數(shù),在所述回調(diào)函數(shù)中對所述異常進行恢復。
更進一步地,所述異常為非對齊訪問異常。
更進一步地,所述處理器為c-sky架構(gòu)的處理器。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南方電網(wǎng)科學研究院有限責任公司;南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司;北京翼輝信息技術(shù)有限公司,未經(jīng)南方電網(wǎng)科學研究院有限責任公司;南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司;北京翼輝信息技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011615563.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





