專利名稱:Java卡虛擬機的指令執(zhí)行方法
技術(shù)領(lǐng)域:
本發(fā)明涉及智能卡領(lǐng)域,尤其涉及一種Java卡虛擬機的指 令執(zhí)行方法。
背景技術(shù):
智能卡已經(jīng)被廣泛應(yīng)用在手機、音樂播放器、數(shù)字電視等各 類產(chǎn)品中,智能卡可以實現(xiàn)身份識別、數(shù)據(jù)的存儲、信息處理等 多種功能。Java卡是一項新興的智能卡,是一個開放的多應(yīng)用平 臺,通過Java卡可以實現(xiàn)下載各種應(yīng)用程序。
由于Java卡本身具有Java語言的特點,因此其通過Java卡 虛擬機對指令進行解釋執(zhí)行。Java卡虛擬才幾并不是一種物理結(jié) 構(gòu),而是一種解釋用于硬件平臺的字節(jié)碼的獨立的操作環(huán)境,其 中對于字節(jié)碼的解釋是通過選擇存儲于存儲器或CPU中的原始 機器語言指令而得以實現(xiàn)的。對于Java卡而言,其在工作過程中 的指令處理速度將直接影響到Java卡的運行速度。
圖1中揭示了一種現(xiàn)有的Java卡虛擬機的指令執(zhí)行方法,圖 1中所示的指令寄存器11中存儲由四條指令P1、 P2、 P3、 P4組 成的指令集,CPU12通過順序執(zhí)行的方法依次解釋(即按照 Pl、 P2、 P3、 P4的順序)、執(zhí)行每條指令,然而,這種指令的 執(zhí)行方式非常浪費時間,例如,如果執(zhí)行完指令PI后,CPU12 需要執(zhí)行下一條指令P4,那么CPU12仍然需要解釋指令P2、 P3 直至P4,即,采用遍歷的方式對指令進行解釋,直至找到需要執(zhí) 行的指令,這種方法會很大的影響Java卡的運行速度,效率非常 低。另一方面,如果某一條指令在執(zhí)行過程中出現(xiàn)了異?;蛘咤e 誤,那么CPU12無法繼續(xù)執(zhí)行下一條指令,將造成死機,導(dǎo)致 Java卡的穩(wěn)定性不高。針對現(xiàn)有技術(shù)的上述缺陷,本發(fā)明就是要提供一種高效率、
高穩(wěn)定性的Java卡虛擬機的指令執(zhí)行方法。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種高效率、高穩(wěn)定性的Java卡虛擬機 的指令執(zhí)行方法。
為實現(xiàn)上述發(fā)明目的,本發(fā)明提供的Java卡虛擬機的指令執(zhí) 行方法包括以下步驟
步驟一,處理器執(zhí)行指令集中需要被執(zhí)行的當(dāng)前指令,同時 通過處理器通知加速器對當(dāng)前指令進行解析;
步驟二,加速器解析當(dāng)前指令的屬性,得到下一指令的字節(jié) 碼地址;
步驟三,將下一指令的地址碼地址通知處理器,并在執(zhí)行完 當(dāng)前指令后由處理器跳轉(zhuǎn)至此下一指令。
本發(fā)明所提供的Java卡虛擬機的指令執(zhí)行方法通過加速器 對當(dāng)前指令進行解析,得到下一指令的字節(jié)碼地址,使得處理器 在執(zhí)行完當(dāng)前指令后能夠立即直接跳轉(zhuǎn)到下一需要執(zhí)行的指令, 避免了指令順序解析、執(zhí)行所帶來的時間浪費,具有高效率的優(yōu) 點;同時在當(dāng)前指令出現(xiàn)異?;蝈e誤時,處理器可以提示異常并 繼續(xù)執(zhí)行下一指令,避免了死機現(xiàn)象,使得Java卡的穩(wěn)定性得到 提高。
為了使得本發(fā)明Java卡虛擬機的指令執(zhí)行方法更加優(yōu)化, 還可以在執(zhí)行完所述步驟一之后,執(zhí)行一個判斷所有指令是否執(zhí) 行完畢的判斷步驟,如果判斷出所有指令均執(zhí)行完畢,則結(jié)束程 序;如果指令未執(zhí)行完畢,則執(zhí)行所述步驟二。
詳細(xì)的內(nèi)容將在具體實施例中作更清楚的介紹。
圖l是現(xiàn)有的Java卡虛擬機的指令執(zhí)行方法示意圖2是本發(fā)明Java卡虛擬機的指令執(zhí)行方法示意圖3是本發(fā)明Java卡虛擬機的指令執(zhí)行方法的第一實施例的 流程圖4是本發(fā)明Java卡虛擬機的指令執(zhí)行方法的另一實施例的 流程以下結(jié)合實施例及其附圖作進 一 步的詳細(xì)說明。
具體實施例方式
參見圖2中所示,圖2中揭示了本發(fā)明的Java卡虛擬機的指 令執(zhí)行方法,圖2中所示的Java卡虛擬機包括存儲指令集的指令 寄存器21、執(zhí)行指令的CPU22以及解釋指令的加速器23。指令 寄存器21中存儲由四條指令Pl、 P2、 P3、 P4組成的指令集, CPU22在執(zhí)行某一指令的同時,將需要被執(zhí)行的當(dāng)前指令送入加 速器23中進行解析,加速器23解析出當(dāng)前指令的屬性后,可以 得到下一指令的字節(jié)碼地址,并將此地址通知CPU22, CPU22執(zhí) 行完當(dāng)前指令后,將直接執(zhí)行下一指令,而不是順序解析、執(zhí)行 指令集中的指令。
圖3示出了本發(fā)明Java卡虛擬機的指令執(zhí)行方法的較佳實施 例的流程圖,其包括以下幾個步驟
步驟31, CPU22執(zhí)行指令集中需要被執(zhí)行的當(dāng)前指令,同 時通過CPU22通知加速器23對當(dāng)前指令進行解析;
步驟32,加速器23通過解析當(dāng)前指令的屬性,得到下一指 令的字節(jié)碼地址;
步驟33,將下一指令的地址碼地址通知CPU22,并在執(zhí)行 完當(dāng)前指令后由CPU22跳轉(zhuǎn)至此下一指令;在CPU22直接跳轉(zhuǎn)到下一指令后,重新執(zhí)行步驟一,執(zhí)行 此指令。如果下一指令為結(jié)束指令,即所有的指令已經(jīng)執(zhí)行完 畢,那么系統(tǒng)將結(jié)束此次指令的執(zhí)行。當(dāng)然,也可以在上述較佳 實施例的基礎(chǔ)上,增加一個判斷程序是否結(jié)束的步驟,如圖4中 所示,在步驟31與步驟32之間增加一個判斷步驟34,判斷所有 指令是否執(zhí)行完畢,如果所有步驟均執(zhí)行完畢,則解釋程序;如 果未執(zhí)行完畢,則繼續(xù)執(zhí)行步驟32。顯然,本發(fā)明所述的Java卡虛擬才幾的指令執(zhí)行方法通過加 速器23對當(dāng)前指令進行解析,得到下一指令的字節(jié)碼地址,使 得CPU22在執(zhí)行完當(dāng)前指令后能夠立即直接跳轉(zhuǎn)到下一需要執(zhí) 行的指令,避免了指令順序解析、執(zhí)行所帶來的時間浪費,具有 高效率的優(yōu)點;同時在當(dāng)前指令出現(xiàn)異?;蝈e誤時,CPU22可以 提示異常并繼續(xù)執(zhí)行下一指令,避免了死機現(xiàn)象,使得Java卡的 穩(wěn)定性提高。當(dāng)然本發(fā)明并不限于上述實施例,本領(lǐng)域內(nèi)的一般技術(shù)人員 可以根據(jù)上述描述作一些等效的變化,例如,指令集并不局限于 存儲在指令寄存器21中,還可以是其它形式的指令存儲器; CPU22也可以采取MCU (微控制器)等形式的處理器。諸如此類 的等效變換都應(yīng)該包含在權(quán)利要求限定的范圍內(nèi)。
權(quán)利要求
1、Java卡虛擬機的指令執(zhí)行方法,所述Java卡虛擬機包括存儲指令集的指令存儲器,執(zhí)行指令的CPU以及解析指令的加速器,所述Java卡虛擬機的指令執(zhí)行方法包括以下步驟步驟一,處理器執(zhí)行指令集中需要被執(zhí)行的當(dāng)前指令,同時通過處理器通知加速器對當(dāng)前指令進行解析;步驟二,加速器解析當(dāng)前指令的屬性,得到下一指令的字節(jié)碼地址;步驟三,將下一指令的地址碼地址通知處理器,并在執(zhí)行完當(dāng)前指令后由處理器跳轉(zhuǎn)至此下一指令。
2、 根據(jù)權(quán)利要求1所述的Java卡虛擬機的指令執(zhí)行方法, 其特征在于在執(zhí)行完所述步驟一之后,執(zhí)行一個判斷所有指令是否執(zhí)行 完畢的判斷步驟,如果判斷出所有指令均執(zhí)行完畢,則結(jié)束程 序;如果指令未執(zhí)行完畢,則執(zhí)行所述步驟二。
3、 根據(jù)權(quán)利要求1所述的Java卡虛擬機的指令執(zhí)行方法, 其特征在于所述指令存儲器為指令寄存器。
4、 根據(jù)權(quán)利要求1所述的Java卡虛擬機的指令執(zhí)行方法, 其特征在于所述處理器為CPU。
5、 根據(jù)權(quán)利要求1所述的Java卡虛擬機的指令執(zhí)行方法, 其特征在于所述處理器為MCU。
全文摘要
本發(fā)明涉及Java卡虛擬機的指令執(zhí)行方法,其包括以下步驟步驟一,處理器執(zhí)行指令集中需要被執(zhí)行的當(dāng)前指令,同時通過處理器通知加速器對當(dāng)前指令進行解析;步驟二,加速器解析當(dāng)前指令的屬性,得到下一指令的字節(jié)碼地址;步驟三,將下一指令的地址碼地址通知處理器,并在執(zhí)行完當(dāng)前指令后由處理器跳轉(zhuǎn)至此下一指令。本發(fā)明所提供的Java卡虛擬機的指令執(zhí)行方法通過加速器對當(dāng)前指令進行解析,得到下一指令的字節(jié)碼地址,使得處理器在執(zhí)行完當(dāng)前指令后能夠立即直接跳轉(zhuǎn)到下一需要執(zhí)行的指令,具有高效率、高穩(wěn)定性的優(yōu)點。
文檔編號G06F9/30GK101295239SQ20071002785
公開日2008年10月29日 申請日期2007年4月26日 優(yōu)先權(quán)日2007年4月26日
發(fā)明者娜 李, 輝 汪 申請人:東信和平智能卡股份有限公司