[發明專利]程序執行監控系統有效
| 申請號: | 201310287128.6 | 申請日: | 2013-07-05 |
| 公開(公告)號: | CN103425543B | 公開(公告)日: | 2017-03-01 |
| 發明(設計)人: | 孔泉;楊昆 | 申請(專利權)人: | 杭州萬高科技股份有限公司 |
| 主分類號: | G06F11/00 | 分類號: | G06F11/00 |
| 代理公司: | 上海和躍知識產權代理事務所(普通合伙)31239 | 代理人: | 孟建勇 |
| 地址: | 310051 浙江省杭*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 程序 執行 監控 系統 | ||
【技術領域】
本發明屬于電子技術領域,特別是涉及嵌入式處理器軟件執行可靠性的硬件保護電路,該電路監控每一條代碼的執行以判斷程序執行是否異常。
【背景技術】
傳統的嵌入式軟件執行的保護電路稱為看門狗電路??撮T狗電路要求軟件在間隔一個預設好的時間之內對特定寄存器進行訪問(這個特定的操作稱為喂狗操作)。如在規定時間內軟件沒有發起喂狗操作,則認定軟件執行進入某種異常狀態,此時看門狗電路會提起硬件的警報,該警報可提起中斷或直接復位處理器。傳統看門狗電路的問題是只對喂狗操作敏感,如果軟件異常的類型不會導致喂狗操作異常時,該軟件異常不會被監測到。
【發明內容】
本發明的目的在于提供一種更精確的程序執行監控系統,可對每一條指令的執行都敏感,從而實現更大范圍地監測出軟件執行的異常狀態。
為實現上述目的,本發明提供一種程序執行監控系統,該程序執行監控系統包括軟件模擬單元、精確看門狗電路及比較單元,其中軟件模擬單元執行編譯完成之后的代碼獲取軟件執行的軌跡,利用此軌跡計算出執行周期內出現的指令組合并用預定的運算方法獲得預計的運算碼,并輸出給比較單元,而在代碼動態執行過程中,精確看門狗電路在周期開始時開始記錄指令總線上出現的每一個指令,加入運算輸入,在周期結束時計算獲得動態運算碼也輸出給比較單元,比較單元將動態運算碼和預計的運算碼進行對比判斷程序執行是否異常。
依據上述主要特征,在具體某種特定實現時,選用了該預定的運算方法為累加和。
依據上述主要特征,該預計的運算碼是以寄存器的形式存在于程序執行監控系統中,可動態配置
依據上述主要特征,該程序執行監控系統應用在一數字信號處理器核上,設定執行的周期為1.28秒。
與現有技術相比較,本發明可以很敏感的監控到每一條指令的執行狀況,通過比較單元比較動態運算碼和預計的運算碼而判斷程序執行是否異常,從而實現更大范圍地監測出軟件執行的異常狀態。
【附圖說明】
圖1為一種實施本發明的應用舉例。
圖2為圖1所示的實施本發明的程序執行監控系統的應用示意圖。
【具體實施方式】
請參閱圖1所示,實施本發明的程序執行監控系統包括軟件模擬單元、精確看門狗電路及比較單元,其中軟件模擬單元執行編譯完成之后的代碼獲取軟件執行的軌跡,利用此軌跡計算出執行周期內出現的指令組合并用預定的運算方法獲得預計的運算碼,并輸出給比較單元。
而在代碼動態執行過程中,精確看門狗電路在周期開始時開始記錄指令總線上出現的每一個指令,加入運算輸入,在周期結束時計算獲得動態運算碼也輸出給比較單元,比較單元將動態運算碼和預計的運算碼進行對比判斷程序執行是否異常。
在具體實施時,軟件模擬單元實際為一段軟件代碼,該軟件代碼模擬處理器的工作方式對編譯完成之后的代碼進行讀取,即軟件實現的虛擬處理器核執行編譯之后的微代碼。
在具體實施時,實施本發明的程序執行監控系統應用在一數字信號處理器核上,設定執行的周期為1.28秒,即每隔1.28秒,該程序執行監控系統將會重新從起始位置(即對比點或周期起始點)開始執行,由此設定精確看門狗電路的運算碼對比周期也為1.28秒。
實施本發明的程序執行監控系統是通過軟件編程使得代碼的執行完全不依賴于動態的數據改變,即代碼執行順序可預期。在編譯完成后通過軟件模擬單元獲得程序執行軌跡,該程序執行軌跡即為程序執行過程中所有執行到的代碼按照執行順序先后排列出來的組合,之后利用此軌跡計算出執行周期內出現的指令組合并用預定的運算方法獲得預計的運算碼。
該預定的運算方法可為通過不同的計算方法來獲得最終的運算碼,本實施例采用累加和方式,即設定該程序執行監控系統的預定的運算方法為累加和,由此計算出1.28秒周期內所有被執行到的代碼的累加和。其他各種不同的算法可獲得不同的可靠性,如異或計算,CRC計算等。但會相應的增加硬件成本。
按上述的方法,動態運算碼是通過處理器核在實際工作時,精確看門狗電路獲取指令總線上的數值進行依次累加獲得,而預計的運算碼是通過軟件實現的虛擬處理器核(即軟件模擬單元)對編譯之后的微代碼進行執行得到,比較單元通過將動態運算碼與預計的運算碼進行比較而判斷代碼執行是否異常。
該預計的運算碼是以寄存器的形式存在于程序執行監控系統中,可動態配置。在工作時該寄存器被寫成計算獲得的累加和,即預計的運算碼。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州萬高科技股份有限公司,未經杭州萬高科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310287128.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:基于設備的應用層配置底層硬件的方法
- 下一篇:事件響應方法和電子設備





