Method for accelerating java virtual machine bytecode...

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S006000, C711S165000, C707S793000

Reexamination Certificate

active

06473777

ABSTRACT:

TECHNICAL FIELD
The present invention relates to processors for executing a Java Virtual Machine and, in particular, to a coprocessor that handles selected overhead portions of execution offloaded from a main processor.
BACKGROUND
The Java Virtual Machine is an abstract computing machine. The structure of this abstract computing machine, including its instruction set, have been defined by Sun Microsystems, Inc. and is set forth in “The Java Virtual Machine Specification”, published by Addison-Wesley in 1996. The Java Virtual Machine employs a “class” file that contains Java Virtual Machine instructions (known as “bytecodes”). As envisioned by its creators, code written for the Java Virtual Machine is to be platform-independent. That is, code written for a Java Virtual Machine implemented for one underlying processor (or operating system) should execute identically when executed on a Java Virtual Machine implemented for another underlying processor (or operating system).
Many implementations of Java are interpreted, meaning that, in general, the Java bytecodes are fetched, decoded and executed in turn. Interpretation is slow mainly because of the additional level of decoding required. Furthermore, bytecodes interpretation is particularly slow because the Java Virtual Machine employs a stack machine model, which involves many slow pushes and pops from the machine stack. Programs written in Java, whether or not interpreted, are also known to execute relatively slowly because of the large amount of constraint checking that must be performed at runtime. Constraint checking is an important security consideration, since many Java programs are downloaded from insecure sources such as the internet.
To address the concerns of slowness, other implementations of Java perform just-in-time (“JIT”) compilation of the Java bytecodes as described, for example, in “Compiling Java Just in Time”, in the May/June 1997 edition of IEEE Micro. Essentially, the compilation occurs at runtime, as opposed to more conventional compilation, which occurs before runtime. JIT is particularly beneficial when a portion of Java code (e.g., a Java method) will be executed more than once, and the overhead associated with its compilation can be substantially avoided for executions of the method after the first. Even the resulting JIT-compiled code, however, must include code for constraint checking.
Other factors affect the speed (or lack thereof) of execution of Java code. For example, “garbage collection” is an overhead task that executes to reclaim unused objects and, conventionally, takes processor cycles that could otherwise be used to execute Java instructions.
What is desired is a system that can competently implement the Java Virtual Machine Specification, in a way that provides improved speed of execution.
SUMMARY
A coprocessor performs an overhead function of a Java virtual machine executing in a main processor. The coprocessor includes memory access circuitry configured to access a memory also accessible by the host processor. Pointer receiving circuitry is configured to receive at least one pointer to data in the memory pertinent to the overhead function. Function performing circuitry is configured to perform the overhead function to operate on the data in the memory pointed to by the at least one pointer. Result passing circuitry configured to pass a result back to the main processor. For example, overhead functions that may be performed by the coprocessor include bytecode verification, just-in-time compiling and garbage collection.


REFERENCES:
patent: 4817140 (1989-03-01), Chandra et al.
patent: 5546398 (1996-08-01), Tucker et al.
patent: 5619713 (1997-04-01), Baum et al.
patent: 5692185 (1997-11-01), Nilsen et al.
patent: 5701470 (1997-12-01), Joy et al.
patent: 5953736 (1999-09-01), O'Connor et al.
patent: 6003065 (1999-12-01), Yan et al.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method for accelerating java virtual machine bytecode... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method for accelerating java virtual machine bytecode..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method for accelerating java virtual machine bytecode... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2997250

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.