專利名稱:元語言程序代碼執(zhí)行的中斷方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種如權(quán)利要求1所述的元語言程序代碼執(zhí)行的中斷的計(jì)算機(jī)實(shí)現(xiàn)方法。
背景技術(shù):
計(jì)算機(jī)程序的應(yīng)用通常是依賴于硬件的。因此,對(duì)于必須相應(yīng)改變的軟件解決方 案的相同功能,程序開發(fā)不得考慮不同的硬件解決方案。為了不依賴于硬件設(shè)計(jì),過去已經(jīng) 開發(fā)虛擬機(jī)的概念。在這樣的虛擬機(jī)上,可以執(zhí)行虛擬機(jī)代碼或所謂的元語言程序代碼。使 用所謂的元語言程序代碼,虛擬機(jī)代碼可以在微控制器上執(zhí)行。作為這樣的虛擬機(jī)的示例, 在現(xiàn)有技術(shù)范圍內(nèi)已知Java虛擬機(jī),并且在這樣的虛擬機(jī)上將執(zhí)行虛擬機(jī)代碼。例如,在 智能卡或基于微控制器的身份證的微控制器上執(zhí)行這樣的虛擬機(jī)代碼或元語言程序碼。例 如,已知這樣的卡被稱作所謂的內(nèi)部使用Java虛擬機(jī)的Java卡。這樣的智能卡或Java卡 典型地用于執(zhí)行例如智能卡上的Java應(yīng)用程序,以便實(shí)現(xiàn)智能卡上的加密處理,從而在使 用這樣的智能卡期間或者出于識(shí)別卡用戶的目的,創(chuàng)建特定程度的安全性。作為本發(fā)明技術(shù)背景的示例,EP 1 821 210 A2公開了在硬件相關(guān)平臺(tái)頂層使用 Java虛擬機(jī)的虛擬機(jī)環(huán)境,其中該Java平臺(tái)用于執(zhí)行Java程序。有時(shí),元語言代碼或虛擬機(jī)代碼會(huì)包含故障或?qū)е掠邢薜漠惓9收希沟冒?創(chuàng)建故障的語言代碼的執(zhí)行應(yīng)當(dāng)由不包含這樣的故障的語言代碼來代替。US 6 202 208專利描述了用于修改運(yùn)行在計(jì)算機(jī)系統(tǒng)上的Java虛擬機(jī)的補(bǔ)丁環(huán) 境。該環(huán)境包括包括方法表的計(jì)算機(jī)電子存儲(chǔ)器上的補(bǔ)丁數(shù)據(jù)結(jié)構(gòu),包含在補(bǔ)丁數(shù)據(jù)結(jié)構(gòu) 中用于改變補(bǔ)丁數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)項(xiàng),以及與每個(gè)所識(shí)別的補(bǔ)丁相關(guān)的第二數(shù)據(jù)項(xiàng)。
發(fā)明內(nèi)容
本發(fā)明的目的是產(chǎn)生一種元語言程序代碼執(zhí)行的中斷的計(jì)算機(jī)實(shí)現(xiàn)方法,該方法 允許代替這樣的元語言程序代碼或元語言程序代碼的至少一部分。本發(fā)明的目的可以由根據(jù)權(quán)利要求1的特征的計(jì)算機(jī)實(shí)現(xiàn)方法來解決實(shí)現(xiàn)。本發(fā) 明的計(jì)算機(jī)上元語言程序代碼執(zhí)行的中斷的計(jì)算機(jī)實(shí)現(xiàn)方法包括地址控制器控制元語言 程序代碼的中斷的步驟,所述計(jì)算機(jī)包括執(zhí)行本機(jī)代碼的微控制器,所述本地代碼實(shí)現(xiàn)了 執(zhí)行元語言程序代碼的虛擬機(jī)。根據(jù)本發(fā)明,有利的是,該方法還包括持久存儲(chǔ)元件包含元語言程序代碼,所述 元語言程序代碼包括元語言指令,而暫時(shí)存儲(chǔ)元件包括寄存器,所述寄存器反映元語言程 序計(jì)數(shù)器的數(shù)據(jù)。此外,有利的是,該方法還包括地址控制器能夠讀取在持久存儲(chǔ)元件中存儲(chǔ)的元 語言程序代碼的物理地址的步驟。還有利的是,本發(fā)明還包括使用寄存器地址讀取特定位置處的持久存儲(chǔ)元件的 內(nèi)容的步驟。
此外,有利的是,本發(fā)明還包括使用地址表來比較寄存器地址的步驟。此外,可能有利的是,將地址表存儲(chǔ)在存儲(chǔ)器中,優(yōu)選地存儲(chǔ)在地址控制器的存儲(chǔ) 器中。根據(jù)本發(fā)明的實(shí)施例,有利的是,地址控制器指示微控制器的一個(gè)處理器 (handler)來發(fā)布元語言程序代碼運(yùn)行的異常或中斷。
參照附圖,根據(jù)本發(fā)明的以下示例性實(shí)施例的描述,本發(fā)明的上述和其他特征及 優(yōu)勢(shì)將顯而易見,其中圖1示出了表示本發(fā)明方法的示意框圖。
具體實(shí)施例方式圖1示意性示出了表示本發(fā)明的示意框圖。方框1表示一個(gè)微控制器。該微控制 器1包含微代碼2、本機(jī)代碼程序計(jì)數(shù)器6和異常處理器14。微控制器1執(zhí)行在微控制器 1內(nèi)實(shí)現(xiàn)的微代碼2。微代碼2反映在虛擬機(jī)5上實(shí)現(xiàn)的虛擬機(jī)循環(huán)4的本機(jī)代碼3,通過 微控制器1的本機(jī)代碼程序計(jì)數(shù)器6根據(jù)箭頭A尋址該本機(jī)代碼3。本機(jī)代碼3包含虛擬機(jī)實(shí)現(xiàn)單元5,該虛擬機(jī)實(shí)現(xiàn)單元5還包括元語言程序計(jì)數(shù)器 7、元語言指令解釋程序8和虛擬機(jī)循環(huán)4。該虛擬機(jī)循環(huán)4實(shí)現(xiàn)經(jīng)由箭頭B控制元語言程序計(jì)數(shù)器7。該元語言程序計(jì)數(shù)器 7是虛擬機(jī)5的一部分,虛擬機(jī)5是本機(jī)代碼3本身的一部分。此外,虛擬機(jī)5包括可以通過方框11的元語言指令9進(jìn)行控制的元語言中斷解釋 程序8。虛擬機(jī)5的元語言中斷解釋程序8根據(jù)箭頭D接收并執(zhí)行方框11的元語言代碼 10的元語言指令9。元語言代碼10存儲(chǔ)在持久存儲(chǔ)器或存儲(chǔ)介質(zhì)11中,并且根據(jù)箭頭B 通過元語言程序計(jì)數(shù)器7進(jìn)行尋址。此外,根據(jù)箭頭C將元語言程序計(jì)數(shù)器7映射到暫時(shí) 存儲(chǔ)介質(zhì)或存儲(chǔ)器13中的寄存器12上。根據(jù)圖1,方框圖還示出了包括可以尋址和控制的寄存器12的暫時(shí)存儲(chǔ)介質(zhì)或存 儲(chǔ)器13。圖1還示出了包含地址表16的地址控制器15。該地址控制器根據(jù)箭頭G發(fā)送控 制信號(hào)到可能在過程中引起異常的異常處理器14。這些異??梢砸鹪Z言程序代碼中的 改變,為了用替代元語言程序代碼代替原始的元語言程序代碼。此外,根據(jù)箭頭E將寄存器12連接到地址控制器15和/或地址表16。此外,根據(jù) 箭頭F將地址控制器15和/或地址表16連接到包括元語言代碼7和元語言指令9的持久 存儲(chǔ)單元10。根據(jù)本發(fā)明,將物理地址存儲(chǔ)在暫時(shí)存儲(chǔ)介質(zhì)或存儲(chǔ)器13的寄存器12中,該寄存 器12反映虛擬機(jī)5的元語言程序計(jì)數(shù)器7。因此,反映該元語言程序計(jì)數(shù)器的物理地址的 數(shù)據(jù)集合存儲(chǔ)在寄存器12中。元語言程序計(jì)數(shù)器7用于讀取持久存儲(chǔ)器11中的元語言代碼10的元語言指令9。 如箭頭F所指示,地址控制器15能夠監(jiān)視到這個(gè)存儲(chǔ)在持久存儲(chǔ)介質(zhì)中的物理地址。寄存器12的地址用于讀取特定位置處的持久存儲(chǔ)介質(zhì)11的內(nèi)容。因此,地址控制器15使用地址表16比較寄存器的地址。如果寄存器12的當(dāng)前內(nèi)容與地址表中的一個(gè)條目相匹配,地址控制器將在微控 制器1的異常處理器14中引起異常,該異常用于停止虛擬機(jī)3循環(huán)中的元語言指令解釋程 序8的執(zhí)行。該硬件觸發(fā)的異常允許通過另一種實(shí)現(xiàn)方式代替現(xiàn)有元語言代碼10的可能性, 例如可能用于無效的元語言程序代碼10實(shí)現(xiàn)情況中的補(bǔ)丁元語言代碼。根據(jù)本發(fā)明,硬件本身監(jiān)視元語言指令取回操作,并且該功能性對(duì)于元語言指令 解釋程序8是透明的,且對(duì)于虛擬機(jī)5的總體性能沒有特定影響。因此,上面所描述的方法允許用位于其他存儲(chǔ)元件(例如EEPR0M)上的其他新的 元語言代碼,來代替一個(gè)存儲(chǔ)元件(例如ROM)的元語言代碼。因此,該方法允許硬件觸發(fā) 的元語言代碼的補(bǔ)丁。一般來說,使用本發(fā)明的方法運(yùn)行在計(jì)算機(jī)上是有利的。此外,有利的是,例如原 始實(shí)現(xiàn)代碼有故障的情況下,使用這樣的方法運(yùn)行在芯片卡或智能卡上,以用其他虛擬機(jī) 代碼代替在該卡上原始執(zhí)行的虛擬機(jī)代碼。參考
1微控制器
2微代碼
3本機(jī)代碼
4虛擬機(jī)循環(huán)
5虛擬機(jī)
6本機(jī)代碼程序計(jì)數(shù)器
7元語言程序計(jì)數(shù)器
8元語言指令解釋程序
9元語言指令
10元語言程序代碼
11持久存儲(chǔ)介質(zhì)、存儲(chǔ)器
12寄存器
13暫時(shí)存儲(chǔ)介質(zhì)
14異常處理器
15地址控制器
16地址表
權(quán)利要求
1.一種計(jì)算機(jī)上元語言程序代碼(10)執(zhí)行的中斷的計(jì)算機(jī)實(shí)現(xiàn)方法,所述計(jì)算機(jī)具 有執(zhí)行本機(jī)代碼( 執(zhí)行的微控制器(1),所述本機(jī)代碼( 執(zhí)行實(shí)現(xiàn)了執(zhí)行元語言程序代 碼(10)的虛擬機(jī)(5),其中,地址控制器(1 控制元語言程序代碼(10)執(zhí)行的中斷。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述方法還包括持久存儲(chǔ)元件(11)包含元語 言代碼(10),所述元語言代碼(10)包括元語言指令(9),而暫時(shí)存儲(chǔ)元件(1 包含寄存器 (12),所述寄存器(12)反應(yīng)元語言程序計(jì)數(shù)器(7)的數(shù)據(jù)。
3.根據(jù)權(quán)利要求1或2所述的方法,其中,所述方法還包括地址控制器(1 能夠讀 取在持久存儲(chǔ)元件(11)中存儲(chǔ)的元語言代碼(10)的物理地址。
4.根據(jù)權(quán)利要求1至3之一所述的方法,其中,所述方法還包括使用寄存器(12)的 地址來讀取特定位置處持久存儲(chǔ)元件(11)的內(nèi)容的步驟。
5.根據(jù)權(quán)利要求1至4之一所述的方法,其中,所述方法還包括使用地址表(16)來 比較寄存器的地址的步驟。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述地址表存儲(chǔ)在存儲(chǔ)器中,優(yōu)選地存儲(chǔ)在地址 控制器(15)的存儲(chǔ)器中。
7.根據(jù)權(quán)利要求1至6之一所述的方法,其中,地址控制器(15)指示微控制器(1)的 異常處理器(14)來發(fā)布元語言程序代碼運(yùn)行的異?;蛑袛唷?br>
全文摘要
本發(fā)明涉及一種計(jì)算機(jī)上元語言程序代碼(10)執(zhí)行的中斷的計(jì)算機(jī)實(shí)現(xiàn)方法,所述計(jì)算機(jī)具有利用執(zhí)行元語言程序代碼(10)的虛擬機(jī)(5)來執(zhí)行本機(jī)代碼(3)執(zhí)行的微控制器(1),其中,地址控制器(15)控制元語言程序代碼(10)執(zhí)行的中斷。
文檔編號(hào)G06F9/445GK102077170SQ200980124226
公開日2011年5月25日 申請(qǐng)日期2009年5月28日 優(yōu)先權(quán)日2008年6月27日
發(fā)明者弗蘭克·西德爾 申請(qǐng)人:Nxp股份有限公司