Abstract:
The invention relates to a computer implemented method of interruption of meta language program code ( 10 ) execution on a computer having a micro controller ( 1 ) executing a native code ( 3 ) execution with a virtual machine ( 5 ) executing a meta language program code ( 10 ), where an address controller ( 15 ) controls the interruption of the meta language program code ( 10 ).

Description:
FIELD OF THE INVENTION 
       [0001]    The invention relates to a computer implemented method of interruption of Meta language program code execution as claimed in claim  1 . 
       BACKGROUND OF THE INVENTION 
       [0002]    Usually the application of a computer program is hardware dependent. Therefore the program development has to consider different hardware solutions for the same functionality of the software solution which has to be adapted accordingly. In order to be independent from the hardware design the virtual machine concept has been developed in the past. On such a virtual machine a virtual machine code or a so called Meta language program code will be executed. Virtual machine code will be executed on a micro controller using the so called Meta language program code. As an example of such a virtual machine the Java virtual machine is known within the prior art and on such a virtual machine a virtual machine code will be executed. Such virtual machine code or Meta language program code is executed e.g. on micro controllers of Smart Cards or micro controller based identification cards. Such cards are e.g. known as so called Java Cards which use the Java virtual machine internally. Such Smart Cards or Java Cards are typically used to execute e.g. Java applications on Smart Cards in order to perform encryption processes on Smart Cards to create a certain degree of security during the use of such Smart Cards or for identification purposes of the user of the card. 
         [0003]    As an example of technological background of the invention EP 1 821 210 A2 discloses a virtual machine environment using a Java virtual machine on top of a hardware dependent platform, where the Java platform is used to execute a Java program. 
         [0004]    Sometimes the execution of Meta language code or virtual machine code may contain failures or may lead to failures which might be limited such that the execution of language code containing or creating failures should be replaced by language code without containing or creating such failures. 
         [0005]    U.S. Pat. No. 6,202,208 describes a patching environment for modifying a Java virtual machine running on a computer system. The environment comprising a patch data structure on an electronic memory of the computer including as method table, a data item contained in the patch data structure to identify the patch data structure and a second data item associated with each of the identified patches. 
       OBJECT AND SUMMARY OF THE INVENTION 
       [0006]    It is an object of the invention to create a computer implemented method of interruption of Meta language program code execution which allows a replacement e.g. of such Meta language program code or at least part of it. 
         [0007]    The object of the invention will be solved by a computer implemented method according to the features of claim  1 . The inventive computer implemented method of interruption of Meta language program code execution on a computer including a micro controller which executes a native code implementing a virtual machine executing a Meta language program code comprises the step that an address controller controls the interruption of the Meta language program code execution. 
         [0008]    According to the invention it is of advantage that the method furthermore includes that a persistent storage element contains the Meta language program code including Meta language instructions, while a transient storage element contains a register reflecting data of a Meta language program counter. 
         [0009]    Furthermore it is of advantage that the method furthermore includes the step that the address controller is able to read the physical address of the Meta language program code stored in the persistent storage element. 
         [0000]    It is furthermore of advantage that the method furthermore includes the step of using the address of the register to read the content of the persistent storage element at a specific position. 
         [0010]    Additionally it is advantageous that the method furthermore includes the step of comparing the address of the register using an address table. 
         [0000]    Furthermore it might be of advantage that the address table is stored in a memory, preferably in a memory of the address controller. 
         [0011]    According to an embodiment of the invention it might be helpful that the address controller instructs an exception handler of the micro controller to issue an exception or interruption of the running of the Meta language program code. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]    The above and other features and advantages of the invention will be apparent from the following description of an exemplary embodiment of the invention with reference to the accompanying drawings, in which: 
           [0013]      FIG. 1  shows a schematic view of a block diagram representing the inventive method. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
       [0014]      FIG. 1  shows schematically a block diagram representing the invention. Block  1  represents a micro controller. The micro controller  1  contains a micro code  2 , a native code program counter  6  and an exception handler  14 . The micro controller  1  executes the micro code  2  which is implemented within the micro controller  1 . The micro code  2  reflects the native code  3  of a virtual machine loop  4  implementation in the virtual machine  5 , which is addressed according to arrow A by the native code program counter  6  of the micro controller  1 . 
         [0015]    The native code  3  contains a virtual machine implementation  5 , which furthermore contains a Meta language program counter  7 , a Meta language instruction interpreter  8  and the virtual machine loop  4 . 
         [0016]    The virtual machine loop  4  implementation controls the Meta language program counter  7  via arrow B. The Meta language program counter  7  is part of the virtual machine  5  which is itself part of the native code  3 . 
         [0017]    The virtual machine  5  furthermore comprises the Meta language interpretation interpreter  8  which might be controlled by Meta language instructions  9  of block  11 . The Meta language instructions interpreter  8  of the virtual machine  5  receives and executes according to arrow D the Meta language instructions  9  of the Meta language code  10  of block  11 . The Meta language code  10  is stored within the persistent memory or storage  11  and which is addressed according to arrow B by the Meta language program counter  7 . Furthermore the Meta language program counter  7  is mapped according to arrow C on a register  12  in a transient storage or memory  13 . 
         [0018]    According to  FIG. 1  the diagram shows furthermore a transient storage or memory  13 , which contains registers  12  which might be addressed and controlled. 
         [0019]      FIG. 1  additionally shows an address controller  15 , which contains an address table  16 . The address controller sends control signals according to arrow G to the exception handler  14  which might raise an exception in the process. These exceptions may lead to a change in Meta language program code in order to replace a part of the original Meta language program code to a replacement Meta language program code. 
         [0020]    Furthermore the register  12  is connected to the address controller  15  and/or to the address table  16  according to arrow E. Additionally according to arrow F the address controller  15  and/or to the address table  16  is connected to the persistent storage unit  10  including the meta language code  7  and the meta language instructions  9 . 
         [0021]    According to the invention a physical address will be stored in the register  12  of the transient storage or memory  13  reflecting the Meta language program counter  7  of the virtual machine  5 . Accordingly a set of data reflecting the physical address of the Meta language program counter will be stored in the register  12 . 
         [0022]    The Meta language program counter  7  is used to read the Meta language instructions  9  of the Meta language code  10  in the persistent storage memory  11 . An address controller  15  is able to observe this physical address which is stored in the persistent storage accordingly as indicated by arrow F. 
         [0023]    The address of the register  12  is used to read the content of the persistent storage  11  at a specific position. Therefore the address controller  15  compares  15  the address of the register using the address table  16 . 
         [0024]    In case the current content of the register  12  matches with one entry in the address table the address controller will raise en exception in the exception handler  14  of the micro controller  1  which is used to stop an execution of the meta language instruction interpreter  8  in the virtual machine  3  loop. 
         [0025]    This hardware triggered exception allows the possibility to replace existing Meta language code  10  by another implementation, e.g. a patched Meta language code which might be used in case of an invalid Meta language code  10  implementation. 
         [0026]    According to the invention the hardware itself observes a Meta language instruction fetch operation and the functionality is transparent to the Meta language instruction interpreter  8  and has no specific impact on the overall performance of the virtual machine  5 . 
         [0027]    Therefore the above described method allows to replace meta language code of one storage element e.g. an ROM with other new meta language code which is located on an other storage element e.g. on a EEPROM. Therefore the method allows a hardware triggered patch of Meta language code. 
         [0028]    In general it is of advantage to use the inventive method to run on a computer. Furthermore it is of advantage to use such method to run on a chip card or smart card to replace virtual machine code originally implemented on the card by other virtual machine code e.g. in case of failure of the originally implemented code. 
       REFERENCES 
       [0029]      1  micro controller 
         [0030]      2  micro code 
         [0031]      3  native code 
         [0032]      4  virtual machine loop 
         [0033]      5  virtual machine 
         [0034]      6  native code program counter 
         [0035]      7  meta language program counter 
         [0036]      8  meta language instruction interpreter 
         [0037]      9  meta language instructions 
         [0038]      10  meta language program code 
         [0039]      11  persistent storage, memory 
         [0040]      12  register 
         [0041]      13  transient storage 
         [0042]      14  exception handler 
         [0043]      15  address controller 
         [0044]      16  address table