專利名稱:一種提高自定義程序運行速度的方法和裝置的制作方法
技術領域:
本發明涉及計算機應用領域,特別涉及一種提高自定義程序運行速度的方法和裝置。
背景技術:
MMU(Memory Management Unit,存儲器管理單元)具有強大的管理功能,同時能有效地利用存儲空間。因為MMU可提供物理地址空間的制造商保護、物理地址空間的操作系統保護以及虛擬地址空間的操作系統保護,所以用戶本地執行的代碼能得到有效地保護,也能防止用戶的惡意代碼對COS(Card Operating System,卡片操作系統)的攻擊,同時還能對用戶自定義程序進行監控,控制用戶自定義程序的權限。
COS從本質上說是智能卡芯片內的一個監控軟件,用于接收和處理外界發給智能卡的各種信息,管理卡內的存儲器,并給出相應的應答信息。在現有技術中,COS一般為軟件開發商編寫的可被信息安全設備所識別并執行的程序。
信息安全設備是一種帶有處理器和存儲器的裝置,內置智能卡芯片,保證內部數據不會被非法獲取,同時具有可編程運算功能。主要用于信息傳輸、信息的安全存儲以及對網絡傳輸信息內容的審計和身份認證等領域,具有抗攻擊、安全性高的特性。現有信息安全設備內部通常采用COS來管理,USB Key是一種USB接口的信息安全設備,它內置單片機或智能卡芯片,可以存儲用戶的密鑰或數字證書等。
WDT(Watch Dog Timer,看門狗定時器)是為防止程序進入死循環而設計的電路,在看門狗定時器電路中有一個輸入及一個輸出到微控制器單元MCU的RST端,MCU正常工作的時候,每隔一段時間輸出一個信號到輸入端,給WDT清零,如果超過規定的時間不給WDT清零,一般在程序跑飛時,WDT超過定時時長,就會給出一個復位信號到MCU,使MCU復位,防止程序進入死循環。其工作原理是在系統運行后,啟動看門狗定時器的計數器,看門狗就開始自動計數,如果到了一定的時間還沒有進行清看門狗,那么看門狗計數器就會溢出,從而引起看門狗中斷,造成系統復位,所以在使用有看門狗的芯片時要注意清看門狗。
隨著信息化產品的飛速發展,越來越多的信息安全設備為用戶提供了豐富的系統調用函數和自定義程序功能,用戶可以編寫自己的程序來加強信息安全設備的安全性,靈活地在自己熟悉的開發環境下,使用不同的語言隨心編寫程序。例如,用戶可以用某種開發工具將算法編譯生成一個可執行程序,然后將該文件下到芯片中。需要的時候便可調用該可執行程序完成相應的功能。但現有技術中,用戶的可執行程序不是由芯片直接運行,而是由虛擬機來解釋執行。即COS將可執行文件的內容讀入,由虛擬機解釋執行用戶自定義程序的每一條指令,由于中間經歷了一個翻譯的過程,使得執行速度比較慢,造成了硬件的資源浪費。
發明內容
本發明為了解決現有技術中用戶自定義程序執行速度慢及浪費硬件資源的問題,提供了一種提高自定義程序運行速度的方法和裝置。所述技術方案如下一種提高自定義程序運行速度的方法,所述方法包括以下步驟步驟A編譯器將自定義程序編譯成信息安全設備能直接執行的程序;步驟B將所述編譯后的自定義程序下載到所述信息安全設備中;步驟C當所述信息安全設備收到運行所述自定義程序命令后,運行所述自定義程序,然后返回運行結果。
所述步驟B中的自定義程序下載到由卡片操作系統指定地址的存儲單元中。
所述步驟B還包括卡片操作系統設置看門狗定時器,相應地,步驟C還包括執行所述自定義程序時,卡片操作系統對所述看門狗定時器清零,所述看門狗定時器進行監控,如果所述自定義程序運行時間超過定時時長,所述看門狗定時器產生中斷,停止執行所述自定義程序;否則,當所述自定義程序運行結束后,所述卡片操作系統對看門狗定時器再次清零。
所述步驟C還包括控制所述自定義程序的訪問權限。
所述信息安全設備為USB Key。
所述步驟A還包括對編譯后的自定義程序進行加密,相應地,所述步驟B還包括,對所述自定義程序進行解密。
所述步驟A還包括對編譯后的自定義程序加校驗碼,相應地,所述步驟B還包括,對所述自定義程序進行校驗,檢驗所述校驗碼是否正確。
本發明同時提供了一種提高自定義程序運行速度的裝置,所述裝置包括目標代碼編譯模塊,用于將自定義程序編譯為可被信息安全設備執行的程序,以及將編譯后的程序下載到所述信息安全設備;信息安全設備,用于存儲并運行編譯后的自定義程序,以及將運行結果返回給用戶。
所述目標代碼編譯模塊具體包括源代碼編輯模塊,用于提供用戶編寫自定義程序的環境;編譯模塊,用于對所述用戶自定義程序的源代碼進行編譯,編譯為信息安全設備直接執行的程序;下載模塊,用于將編譯后的自定義程序下載到信息安全設備內部的指定存儲單元中。
所述信息安全設備具體包括用戶程序存儲模塊,用于存儲下載的自定義程序;卡片操作系統模塊,用于設置存儲器管理單元和看門狗計時器,使所述存儲器管理單元對所述自定義程序進行管理,以及定時清空看門狗定時器;存儲器管理單元,用于將所述自定義程序設置為可執行或只寫狀態,用于控制用戶所述自定義程序運行時能訪問的存儲區域,限制所述自定義程序訪問非法區域。
本發明的技術方案帶來的有益效果是通過將用戶自定義的程序直接編譯為可以被信息安全設備直接執行的程序,簡化了用戶自定義程序的運行過程,加快了自定義程序的運行速度。
圖1是本發明實施例1提供的提高自定義程序運行速度的方法流程圖;圖2是本發明實施例2提供的提高自定義程序運行速度的裝置示意圖。
具體實施例方式
下面結合附圖和具體實施例對本發明作進一步說明,但本發明不局限于以下實施例。
實施例1參見圖1,提供了一種提高自定義程序運行速度的方法,在本實施例中,信息安全設備為USB Key,該USB Key采用方舟CPU核,具有完整的MMU功能,并集成了中斷控制器、時鐘定時器和看門狗定時器。編輯器可任意選取,這里為GCC。
具體實施步驟如下
步驟101用戶編寫自定義程序,程序如下unsigned int Check(unsigned int y,unsigned int z,unsigned int id){unsigned int chi;chi=y+z;chi=chi^y;chi=chi^z;chi=chi-id;return chi;}用戶自定義程序是在外部集成開發環境下完成編輯和編譯工作的,開發人員在一臺電腦上用特定的編譯工具完成編輯和編譯工作。
步驟102GCC編譯器對上述用戶自定義程序進行編譯,編譯成可以直接被信息安全設備加載執行的程序代碼。
在本實施例中,經過GCC編譯器編譯的用戶自定義程序為一段二進制代碼,這樣就可以直接被信息安全設備加載執行,編譯結果如下14 08 02 08 02 00 74 08 02 0c 82 0a02 0c 62 08 02 80 82 08 00 08 12 00。
為了更安全,也可以對編譯后的自定義程序進行加密,加密后的程序只有對應的信息安全設備才能進行解密。或者在編譯后的自定義程序上填加校驗碼,當信息安全設備下載到自定義程序后,先對校驗碼進行檢驗,如果檢驗通過,則證明此程序可以執行,否則,此程序有錯誤,不執行。
步驟103GCC編譯器與信息安全設備建立連接,由PC機中的應用程序將編譯后的用戶自定義程序下載到信息安全設備中。
在本實施例中,用戶自定義程序通過存儲控制器的控制下載到信息安全設備內部COS管理的指定地址中。
步驟104當信息安全設備接收到運行用戶自定義程序的命令后,經過編譯后的用戶自定義程序在信息安全設備內部運行。
在本實施例中,由PC機中的應用程序向信息安全設備發送運行用戶自定義程序的命令,當信息安全設備接收到外部發來的運行用戶自定義程序的指令后,把控制權轉交給用戶自定義程序。
用戶自定義程序運行時受到WDT的控制,用戶自定義程序被調用時,WDT的計時器被清零,用戶自定義程序運行結束時,將控制權交重新交給COS時,COS將WDT的計時器清零,用戶自定義程序在運行的過程中COS呈掛起狀態。
當用戶自定義程序的運行時間超過某一設定的工作時間時,則認為程序陷入死循環。這時WDT的計時器的時間大于設定的工作時間,WDT將產生一個中斷,強行終止用戶自定義程序,使COS重新得到CPU的控制權。從而保護信息安全設備的正常運轉。
其中,用戶自定義程序的工作時間可由COS來設定。
在本實施例中,信息安全設備中的存儲管理器單元可將用戶自定義程序設置為只讀,只寫等狀態,從而保證用戶自定義程序的安全性。用戶自定義程序運行時能訪問的存儲區域受到MMU的控制,若訪問非法區域則被拒絕。
步驟105用戶自定義程序在信息安全設備內部運行完畢,將運行結果返回給用戶。
實施例2參見圖2,提供了一種提高自定義程序運行速度的裝置,該裝置主要包括目標代碼編譯模塊和信息安全設備兩部分。
目標代碼編譯模塊,用于將自定義程序編譯為可被信息安全設備執行的程序,以及將編譯后的程序下載到所述信息安全設備;信息安全設備,用于存儲并運行編譯后的自定義程序,以及將運行結果返回給用戶。
其中,目標代碼編譯模塊具體包括源代碼編輯模塊,用于提供用戶編寫自定義程序的環境;編譯模塊,用于對所述自定義程序的源代碼進行編譯,編譯為信息安全設備直接執行的程序;下載模塊,用于將編譯后的自定義程序下載到信息安全設備內部的指定存儲單元中。
信息安全設備具體包括用戶程序存儲模塊,用于存儲下載的自定義程序;卡片操作系統模塊,用于設置存儲器管理單元和看門狗計時器,使所述存儲器管理單元對自定義程序進行管理,以及定時清空看門狗定時器;存儲器管理單元,用于將自定義程序設置為可執行或只寫狀態,用于控制自定義程序運行時能訪問的存儲區域,限制該自定義程序訪問非法區域。
該存儲器管理單元包含多個寄存器,通過這些寄存器實現其功能,操作,和狀態。
以上對本發明所提供的一種提高自定義程序運行速度的方法和裝置進行的介紹,本發明中采用具體實例對原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在具體實施方式
及應用范圍內進行的通常變化和替換都應包含在本發明的保護范圍內。
權利要求
1.一種提高自定義程序運行速度的方法,其特征在于,所述方法包括以下步驟步驟A編譯器將自定義程序編譯成信息安全設備能直接執行的程序;步驟B將所述編譯后的自定義程序下載到所述信息安全設備中;步驟C當所述信息安全設備收到運行所述自定義程序命令后,運行所述自定義程序,然后返回運行結果。
2.如權利要求1所述的提高自定義程序運行速度的方法,其特征在于,所述步驟B中的自定義程序下載到由卡片操作系統指定地址的存儲單元中。
3.如權利要求1所述的提高自定義程序運行速度的方法,其特征在于,所述步驟B還包括卡片操作系統設置看門狗定時器,相應地,步驟C還包括執行所述自定義程序時,卡片操作系統對所述看門狗定時器清零,所述看門狗定時器進行監控,如果所述自定義程序運行時間超過定時時長,所述看門狗定時器產生中斷,停止執行所述自定義程序;否則,當所述自定義程序運行結束后,所述卡片操作系統對看門狗定時器再次清零。
4.如權利要求1或3所述的提高自定義程序運行速度的方法,其特征在于,所述步驟C還包括控制所述自定義程序的訪問權限。
5.如權利要求1所述的提高自定義程序運行速度的方法,其特征在于,所述信息安全設備為USB Key。
6.如權利要求1所述的提高自定義程序運行速度的方法,其特征在于,所述步驟A還包括對編譯后的自定義程序進行加密,相應地,所述步驟B還包括,對所述自定義程序進行解密。
7.如權利要求1所述的提高自定義程序運行速度的方法,其特征在于,所述步驟A還包括對編譯后的自定義程序加校驗碼,相應地,所述步驟B還包括,對所述自定義程序進行校驗,檢驗所述校驗碼是否正確。
8.一種提高自定義程序運行速度的裝置,其特征在于,所述裝置包括目標代碼編譯模塊,用于將自定義程序編譯為可被信息安全設備執行的程序,以及將編譯后的程序下載到所述信息安全設備;信息安全設備,用于存儲并運行編譯后的自定義程序,以及將運行結果返回給用戶。
9.如權利要求8所述的提高自定義程序運行速度的裝置,其特征在于,所述目標代碼編譯模塊具體包括源代碼編輯模塊,用于提供用戶編寫自定義程序的環境;編譯模塊,用于對所述自定義程序的源代碼進行編譯,編譯為信息安全設備直接執行的程序;下載模塊,用于將編譯后的自定義程序下載到信息安全設備內部的指定存儲單元中。
10.如權利要求8所述的提高自定義程序運行速度的裝置,其特征在于,所述信息安全設備具體包括用戶程序存儲模塊,用于存儲下載的自定義程序;卡片操作系統模塊,用于設置存儲器管理單元和看門狗計時器,使所述存儲器管理單元對所述自定義程序進行管理,以及定時清空看門狗定時器;存儲器管理單元,用于將所述自定義程序設置為可執行或只寫狀態,用于控制所述自定義程序運行時能訪問的存儲區域,限制所述自定義程序訪問非法區域。
全文摘要
本發明提供了一種提高自定義程序運行速度的方法和裝置,屬于計算機應用領域。為了解決現有技術中用戶自定義程序執行速度慢及浪費硬件資源的問題,本發明提供了一種提高自定義程序運行速度的方法,所述方法包括將自定義程序編譯成信息安全設備能執行的程序,將編譯后的自定義程序下載到信息安全設備中,當信息安全設備收到運行自定義程序命令后,運行自定義程序,然后返回運行結果。本發明還提供了一種提高自定義程序運行速度的裝置,所述裝置包括目標代碼編譯模塊和信息安全設備。采用本發明所述方案簡化了用戶自定義程序的運行過程,加快了自定義程序的運行速度。
文檔編號G06F21/00GK1987789SQ200610169608
公開日2007年6月27日 申請日期2006年12月25日 優先權日2006年12月25日
發明者陸舟, 于華章 申請人:北京飛天誠信科技有限公司