IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0996169
(2001-11-28)
|
발명자
/ 주소 |
|
출원인 / 주소 |
|
대리인 / 주소 |
Caesar, Rivise, Bernstein, Cohen &
|
인용정보 |
피인용 횟수 :
6 인용 특허 :
35 |
초록
▼
A bytecode execution system and method for increasing the execution speed of invoking and returning from Methods while minimizing the memory footprint required to support this. The system includes a virtual machine with a class loader and an interpreter or, alternatively, a hardware accelerator. Spe
A bytecode execution system and method for increasing the execution speed of invoking and returning from Methods while minimizing the memory footprint required to support this. The system includes a virtual machine with a class loader and an interpreter or, alternatively, a hardware accelerator. Speed and memory enhancements are realized by establishing an activation stack frame template with a set of criteria. Each Method from subject code is examined to determine whether the Method conforms to the criteria of the stack frame template. If the Method conforms, an activation frame for that Method based on the activation stack frame template is created when the Method is invoked. Otherwise, an activation frame based on standard virtual machine criteria is created. An access structure is associated with each Method and a Method routing structure is created for each class.
대표청구항
▼
1. A method of increasing the execution speed of invoking and returning from a Method of a plurality of Methods executing on a computer system while reducing the supporting memory footprint, the method comprising:establishing a single frame size determining template for comparing the single frame si
1. A method of increasing the execution speed of invoking and returning from a Method of a plurality of Methods executing on a computer system while reducing the supporting memory footprint, the method comprising:establishing a single frame size determining template for comparing the single frame size determining template with each of the Methods of the plurality of Methods, the single frame size determining template having a set of frame size determining criteria representative of a predetermined number of words for determining the size of activation frames when creating the activation frames;determining whether a word number requirement of the Method conforms to the frame size determining criteria of the single frame size determining template;conditionally creating a fixed size activation frame regardless of an exact stack requirement of the Method, based on the set of frame size determining criteria of the single frame size determining template if the word number requirement of the Method conforms to the set of frame size determining criteria of the single frame size determining template;conditionally creating an activation frame to match the Method's exact stack requirements if the word number requirement of the Method does not conform to the set of frame size determining criteria of the single frame size determining template;spatially optimizing the Method to provide a Method access structure; andassociating the Method access structure with the Method such that the Method access structure is contiguous with the code of the Method.2. The method as claimed in claim 1, wherein the set of frame size determining criteria includes the number of parameter words, the total number of local words, and the number or words of evaluation stack.3. The method as claimed in claim 1, wherein creating an activation frame for the Method based on the set of frame size determining criteria of the single frame frame size determining template includes creating a local variable portion, an evaluation stack, and a fixed size frame linkage structure.4. The method as claimed in claim 1, further comprising associating the Method access structure with a pointer and defining the pointer such that it is an indicator of where code for implementing a Method resides and an indicator for the Method itself.5. The method as claimed in claim 1, wherein the Method access structure is variably sized.6. A computer-implemented method of increasing the execution speed of invoking a plurality of Methods in an execution device, the plurality of Methods associated with one or more classes, the method comprising:establishing a single frame size determining template for comparing the single frame size determining template with each of the Methods of the plurality of Methods when they are invoked, the single frame size determining template having a set of frame size determining criteria representative of a predetermined number of words for determining the size of activation frames when creating the activation frames;for each one of the Methods,determining whether a word number requirement of the one Method conforms to the frame size determining criteria of the single frame size determining template;conditionally creating a fixed size activation frame regardless of an exact stack requirement of the one Method, based on the set of frame size determining criteria of the single frame size determining template if the word number requirement of the one Method conforms to the set of frame size determining criteria of the single frame size determining template;conditionally creating an activation frame to match the one Method's exact stack requirements if the word number requirement of the one Method does not conform to the set of frame size determining criteria of the single frame size determining template;spatially optimizing the Method to provide a Method access structure;associating the Method access structure with the Method such that the Method access structure is contiguous with the code of the Method;conditionally creating a Method routing structure external to the Method access structure and pointing to the Method access structure for each class; andrewriting invocation bytecodes to a form that includes an indication of the Method routing structure.7. The method as claimed in claim 6, wherein the set of frame size determining criteria includes the number of parameter words, the total number of local words, and the number or words of evaluation stack.8. The method as claimed in claim 6, wherein creating an activation frame for the Method based on the set of frame size determining criteria of the single frame size determining template includes creating a local variable portion, an evaluation stack, and a fixed size frame linkage structure.9. The method as claimed in claim 6, further comprising associating each Method access structure with a pointer and defining the pointer such that it is an indicator of where code for implementing a Method resides and an indicator for the Method itself.10. The method as claimed in claim 6, further comprising maintaining Method access structures associated with dynamically compiled code in an area of memory separate from Method access structures associated with bytecode.11. The method as claimed in claim 6, further comprising creating the Method routing structure such that it has one or more misaligned pointers.12. The method as claimed in claim 11, wherein the misaligned pointers are used to denote processor executable Method access structures and one or more aligned pointers are used to denote processor non-executable Method access structures.13. The method as claimed in claim 6, wherein each Method access structure is variably sized.14. An execution system for increasing an execution speed of invoking Methods of one or more classes, the system comprising:memory; anda virtual machine operable to access the memory, to create a representation of at least one of the Methods based on a single frame size determining template for comparing the single frame size determining template with each of the Methods of the plurality of Methods when they are invoked, the single frame size determining template having a set of frame size determining criteria representative of a predetermined number of words for determining the size of activation frames when creating the activation frames, to conditionally create a representation of at least one of the Methods based on exact stack requirements, to spatially optimize at least one of the Methods to provide a Method access structure, to associate the Method access structure contiguous to the representation of each of the Methods, to create a Method routing structure external to the Method access structure and pointing to the Method access structure for each of the one or more classes in the memory, and to rewrite invocation bytecodes to a form that includes an indication of the Method routing structure.15. The execution system as claimed in claim 14, wherein the set of frame size determining criteria includes the number of parameter words, the total number of local words, and the number or words of evaluation stack.16. The execution system as claimed in claim 14, wherein the single frame size determining template includes a local variable portion, an evaluation stack, and a fixed size frame linkage structure.17. The execution system as claimed in claim 14, wherein the virtual machine is operable to associate a pointer with each Method access structure, the pointer defined such that it is an indicator of where code for implementing a Method resides and an indicator for the Method itself.18. The execution system as claimed in claim 14, wherein the virtual machine is operable to maintain Method access structures associated with dynamically compiled code in an area of memory separate from Method access structures associated with bytecode.19. The execution system as claimed in claim 14, wherein the Method routing structure includes one or more misaligned pointers to denote processor executable Method access structures.20. The execution system as claimed in claim 14, wherein the virtual machine is operable to spatially associate the Method access structure immediately preceding the representation of each of the Methods.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.