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