Real time processor optimized for executing JAVA programs
First Claim
1. A computer system comprising:
- (a) a compiler for compiling a high level source code to generate an intermediate code; and
(b) a microprocessor system for executing said intermediate code, said microprocessor system comprising a microprocessor and an instruction set so that said microprocessor system is capable of executing said intermediate code as the native code of the microprocessor without a software interpreter;
wherein said intermediate code is characterized in that it does not require a direct knowledge of the microprocessor environment;
wherein said intermediate code comprises a real time embedded program.
1 Assignment
0 Petitions
Accused Products
Abstract
An improved computer architecture and system advantageously combine the beneficial characteristics of a high level object oriented programming language with an optimized processor for efficient application to real time embedded computing problems. Additionally, an improved method for resolving symbolic references in code generated by compiling source code written in an object oriented programming language to the corresponding logical memory addresses stores look-up information with the object itself after the first encounter of a given symbolic reference, whereby the logical memory address information is available for subsequent encounters of the symbolic reference, and whereby no modification of the program instructions containing the symbolic reference is necessary. In a preferred embodiment, the Java™ programming language is used.
264 Citations
35 Claims
-
1. A computer system comprising:
-
(a) a compiler for compiling a high level source code to generate an intermediate code; and
(b) a microprocessor system for executing said intermediate code, said microprocessor system comprising a microprocessor and an instruction set so that said microprocessor system is capable of executing said intermediate code as the native code of the microprocessor without a software interpreter;
wherein said intermediate code is characterized in that it does not require a direct knowledge of the microprocessor environment;
wherein said intermediate code comprises a real time embedded program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system comprising:
-
(a) a compiler for compiling a high level source code to generate an intermediate code; and
(b) a microprocessor system for executing said intermediate code, said microprocessor system comprising a microprocessor and an instruction set so that said microprocessor system capable of executing said intermediate code as the native code of the microprocessor without a software interpreter;
wherein said intermediate code is characterized in that it does not require a direct knowledge of the microprocessor environment; and
wherein said intermediate code retains at least some of the symbolic characteristics of its corresponding source code. - View Dependent Claims (14)
-
-
12. A computer system comprising:
-
(a) a compiler for compiling a high level source code to generate an intermediate code;
(b) a microprocessor system for executing said intermediate code, said microprocessor system comprising a microprocessor and an instruction set so that said microprocessor system is capable of executing said intermediate code as the native code of the microprocessor without a software interpreter;
wherein said intermediate code is characterized in that it does not require a direct knowledge of the microprocessor environment, wherein said compiler is capable of generating Java bytecodes and wherein said source code is selected from the group consisting of the source codes of C, C+ and C++. - View Dependent Claims (15)
-
-
13. A computer system comprising:
-
(a) a compiler for compiling a high level source code to generate an intermediate code; and
(b) a microprocessor system for executing said intermediate code, said microprocessor system comprising a microprocessor and an instruction set so that said microprocessor system capable of executing said intermediate code as the native code of the microprocessor without a software interpreter;
wherein said intermediate code is characterized in that it does not require a direct knowledge of the microprocessor environment; and
wherein said intermediate code uses primarily symbolic references to stored information. - View Dependent Claims (16, 17, 20, 21, 22, 23, 24)
-
-
18. A computer system comprising
(a) a first memory wherein intermediate level instructions are stored; -
(b) a second memory wherein native level instructions are stored; and
(c) circuitry for selecting a set of native level instructions to execute in response to each intermediate level instruction without a software interpreter; and
wherein the intermediate level instructions retain at least some of the symbolic characteristics of their source code. - View Dependent Claims (19)
-
-
25. A computer system comprising
(a) a first memory wherein intermediate level instructions are stored; -
(b) a second memory wherein native level instructions are stored; and
(c) circuitry for selecting a set of native level instructions to execute in response to each intermediate level instruction without a software interpreter; and
wherein the intermediate level instructions primarily use symbolic references to stored information.
-
-
26. A computer system comprising:
-
(a) a first memory wherein intermediate level instructions are stored;
(b) a second memory wherein native level instructions are stored; and
(c) circuitry for selecting a set of native level instructions to execute in response to each intermediate level instruction without a software interpreter; and
wherein a Rockwell Advanced Achitecture Microprocessor with at least 16 bit addressing is used to execute the native level instructions.
-
-
27. A computer system comprising:
-
(a) a first memory wherein intermediate level instructions are stored;
(b) a second memory wherein native level instructions are stored; and
(c) circuitry for selecting a set of native level instructions to execute in response to each intermediate level instruction without a software interpreter; and
wherein a microprocessor is used to execute the microcoded native level instructions and wherein the native level instruction set may be changed without altering the fundamental architecture of the computer system.
-
-
28. A computer system comprising:
-
(a) a first memory wherein intermediate level instructions are stored;
(b) a second memory wherein native level instructions are stored; and
(c) circuitry for selecting a set of native level instructions to execute in response to each intermediate level instruction without a software interpreter; and
wherein memory resident objects are partitioned into garbage-collectible and non-garage collectible types;
wherein the system determines which of the garbage-collectible types will be needed during the remainder of the program execution; and
wherein the memory occupied by the unneeded garbage-collectible objects is deallocated.
-
-
29. A computer system comprising
(a) a first memory wherein intermediate level instructions are stored; -
(b) a second memory wherein native level instructions are stored; and
(c) circuitry for selecting a set of native level instructions to execute in response to each intermediate level instruction without a software interpreter; and
whereinsymbolic references are resolved to logical references by a method comprising the steps of;
(a) providing an index which links all symbolically referenced items of information to a corresponding logical memory address;
(b) interpreting said intermediate level instructions;
(c) upon a first encounter of any symbolic reference within said intermediate level instructions, resolving the symbolic reference to a logical reference by searching the index and retrieving location information;
(d) storing the logical reference location information with the referenced object;
whereby subsequent encounters of any previously resolved symbolic references may use previously retrieved location information stored with the object. memory for storing the intermediate code and a second memory for storing native level code, wherein the executing step includes selecting the native level code in response to the intermediate code.
-
-
30. A computer system comprising:
-
(a) a compiler for compiling a high level source code to generate an intermediate code; and
(b) a microprocessor system for executing said intermediate code, said microprocessor system comprising a microprocessor and an instruction set so that said microprocessor system capable of executing said intermediate code as the native code of the microprocessor without a software interpreter;
wherein memory resident objects are partitioned into garbage-collectible and non-garbage collectible types;
wherein the system determines which of the garbage-collectible types will be needed during the remainder of the program execution; and
wherein the memory occupied by the unneeded garbage-collection objects is deallocated.
-
-
31. A computer system comprising:
-
(a) a compiler for compiling a high level source code to generate an intermediate code; and
(b) a microprocessor system for executing said intermediate code, said microprocessor system comprising a microprocessor and an instruction set so that said microprocessor system capable of executing said intermediate code as the native code of the microprocessor without a software interpreter;
wherein said intermediate code is characterized in that it does not require a direct knowledge of the microprocessor environment;
wherein symbolic references are resolved to logical references by a method comprising the steps of;
(a) providing an index which links all symbolically referenced items of information to a corresponding logical memory address;
(b) interpreting said intermediate level instructions;
(c) upon a first encounter of any symbolic reference within said intermediate level instructions, resolving the symbolic reference to a logical reference by searching the index and retrieving location information;
(d) storing the logical reference location information with the referenced object;
whereby subsequent encounters of any previously resolved symbolic references may use previously retrieved location information stored with the object.
-
-
32. A method of executing a high level source code, comprising:
-
compiling the high level source code to generate an intermediate code, the intermediate code does not require knowledge of a microprocessor environment;
executing the intermediate code with a microprocessor system, the microprocessor system comprising an instruction set so that said microprocessor system capable of executing the intermediate code without a software interpreter, wherein the intermediate code comprises a real time embedded program. - View Dependent Claims (33)
-
-
34. A method of executing a high level source code, comprising:
-
compiling the high level source code to generate an intermediate code, the intermediate code does not require knowledge of a microprocessor environment;
executing the intermediate code with a microprocessor system, the microprocessor system comprising an instruction set so that said microprocessor system capable of executing the intermediate code without a software interpreter;
wherein the microprocessor system includes a first memory for storing the intermediate code and a second memory for storing native level code, wherein the executing step includes selecting the native level code in response to the intermediate code;
wherein the executing step includes;
(a) providing an index which links all symbolically referenced items of information to a corresponding logical memory address;
(b) interpreting said intermediate level instructions;
(c) upon a first encounter of any symbolic reference within said intermediate level instructions, resolving the symbolic reference to a logical reference by searching the index and retrieving location information;
(d) storing the logical reference location information with the referenced object;
whereby subsequent encounters of any previously resolved symbolic references may use previously retrieved location information stored with the object.
-
-
35. A computer system comprising:
-
(a) a compiler means for compiling a high level source code to generate an intermediate code; and
(b) a microprocessor system means for executing said intermediate code, said microprocessor system comprising a microprocessor and an instruction set so that said microprocessor system capable of executing said intermediate code as the native code of the microprocessor means without a software interpreter;
wherein said intermediate code is characterized in that it does not require a direct knowledge of the microprocessor environment, wherein the intermediate code comprises a real time embedded program.
-
Specification