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