Java virtual machine hardware for RISC and CISC processors

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06332215

ABSTRACT:

BACKGROUND OF THE INVENTION
Java™ is an object orientated programming language developed by Sun Microsystems. The Java language is small, simple and portable across platforms and operating systems, both at the source and at the binary level. This makes the Java programming language very popular on the Internet.
Java's platform independence and code compaction are the most significant advantages of Java over conventional programming languages. In conventional programming languages, the source code of a program is sent to a compiler which translates the program into machine code or processor instructions. The processor instructions are native to the system's processor. If the code is compiled on an Intel-based system, the resulting program will only run on other Intel-based systems. If it is desired to run the program on another system, the user must go back to the original source code, obtain a compiler for the new processor, and recompile the program into the machine code specific to that other processor.
Java operates differently. The Java compiler takes a Java program and, instead of generating machine code for a particular processor, generates bytecodes. Bytecodes are instructions that look like machine code, but aren't specific to any processor. To execute a Java program, a bytecode interpreter takes the Java bytecode converts them to equivalent native processor instructions and executes the Java program. The Java byte code interpreter is one component of the Java Virtual Machine.
Having the Java programs in bytecode form means that instead of being specific to any one system, the programs can run on any platform and any operating system as long a Java Virtual Machine is available. This allows a binary bytecode file to be executable across platforms.
The disadvantage of using bytecodes is execution speed. System specific programs that run directly on the hardware from which they are compiled, run significantly faster that Java bytecodes, which must be processed by the Java Virtual Machine. The processor must both convert the Java bytecodes into native instructions in the Java Virtual Machine and execute the native instructions.
One way to speed up the Java Virtual Machine is by techniques such as the “Just in Time” (JIT) interpreter, and even faster interpreters known as “Hot Spot JITs” interpreters. The JIT versions all result in a JIT compile overhead to generate native processor instructions. These JIT interpreters also result in additional memory overhead.
The slow execution speed of Java and overhead of JIT interpreters have made it difficult for consumer appliances requiring local-cost solutions with minimal memory usage and low energy consumption to run Java programs. The performance requirements for existing processors using the fastest JITs more than double to support running the Java Virtual Machine in software. The processor performance requirements could be met by employing superscalar processor architectures or by increasing the processor clock frequency. In both cases, the power requirements are dramatically increased. The memory bloat that results from JIT techniques, also goes against the consumer application requirements of low cost and low power.
It is desired to have an improved system for implementing Java programs that provides a low-cost solution for running Java programs for consumer appliances.
SUMMARY OF THE INVENTION
The present invention generally relates to a Java hardware accelerator which can be used to quickly translate Java bytecodes into native instructions for a central processing unit (CPU). The hardware accelerator speeds up the processing of the Java bytecodes significantly because it removes the bottleneck which previously occurred when the Java Virtual Machine is run in software on the CPU to translate Java bytecodes into native instructions.
In the present invention, at least part of the Java Virtual Machine is implemented in hardware as the Java hardware accelerator. The Java hardware accelerator and the CPU can be put together on a single semiconductor chip to provide an embedded system appropriate for use with commercial appliances. Such an embedded system solution is less expensive than a powerful superscalar CPU and has a relatively low power consumption.
The hardware Java accelerator can convert the stack-based Java bytecodes into a register-based native instructions on a CPU. The hardware accelerators of the present invention are not limited for use with Java language and can be used with any stack-based language that is to be converted to register-based native instructions. Also, the present invention can be used with any language that uses instructions, such as bytecodes, which run on a virtual machine.


REFERENCES:
patent: 4587612 (1986-05-01), Fisk et al.
patent: 4631663 (1986-12-01), Chilinski et al.
patent: 4763255 (1988-08-01), Hopkins et al.
patent: 4783738 (1988-11-01), Li et al.
patent: 4860191 (1989-08-01), Nomura et al.
patent: 4961141 (1990-10-01), Hopkins et al.
patent: 5077657 (1991-12-01), Cooper et al.
patent: 5113522 (1992-05-01), Dinwiddie, Jr. et al.
patent: 5136696 (1992-08-01), Beckwith et al.
patent: 5142681 (1992-08-01), Driscoll et al.
patent: 5163139 (1992-11-01), Haigh et al.
patent: 5193180 (1993-03-01), Hastings
patent: 5201056 (1993-04-01), Daniel et al.
patent: 5218711 (1993-06-01), Yoshida
patent: 5241636 (1993-08-01), Kohn
patent: 5313614 (1994-05-01), Goettelmann et al.
patent: 5333296 (1994-07-01), Bouchard et al.
patent: 5335344 (1994-08-01), Hastings
patent: 5355460 (1994-10-01), Eickemeyer et al.
patent: 5430862 (1995-07-01), Smith et al.
patent: 5481684 (1996-01-01), Richter et al.
patent: 5490256 (1996-02-01), Mooney et al.
patent: 5535329 (1996-07-01), Hastings
patent: 5542059 (1996-07-01), Blomgren
patent: 5574927 (1996-11-01), Scantlin
patent: 5577233 (1996-11-01), Goettelmann et al.
patent: 5619666 (1997-04-01), Coon et al.
patent: 5634118 (1997-05-01), Blomgren
patent: 5650948 (1997-07-01), Gafter
patent: 5659703 (1997-08-01), Moore et al.
patent: 5692170 (1997-11-01), Isaman
patent: 5761477 (1998-06-01), Wahbe et al.
patent: 5764908 (1998-06-01), Shoji et al.
patent: 5768593 (1998-06-01), Walters et al.
patent: 5774868 (1998-06-01), Cragun et al.
patent: 5778178 (1998-07-01), Arunachalam
patent: 5781750 (1998-07-01), Blomgren et al.
patent: 5784584 (1998-07-01), Moore et al.
patent: 5794068 (1998-08-01), Asghar et al.
patent: 5809336 (1998-09-01), Moore et al.
patent: 5838165 (1998-11-01), Chatter
patent: 5875336 (1999-02-01), Dickol et al.
patent: 5889996 (1999-03-01), Adams
patent: 5898850 (1999-04-01), Dickol et al.
patent: 5898885 (1999-04-01), Dickol et al.
patent: 5903761 (1999-05-01), Tyma
patent: 5923892 (1999-07-01), Levy
patent: 5937193 (1999-08-01), Evoy
patent: 5953741 (1999-09-01), Evoy et al.
patent: 5983334 (1999-11-01), Coon et al.
patent: 5999731 (1999-12-01), Yellin et al.
patent: 6021469 (2000-02-01), Tremblay et al.
patent: 6026485 (2000-02-01), O'Connor et al.
patent: 6131144 (2000-10-01), Koppala
patent: 6158048 (2000-12-01), Lueh et al.
patent: 6167488 (2000-12-01), Koppala
patent: 6209077 (2001-03-01), Robertson et al.
Debaere and Campenhout, “Interpretation and Instruction Path Coprocessing,” ©1990 The MIT Press.
“Sun says JAVA chips will vastly increase speed, reduce costs to run JAVA programs,”Interactive Daily, (Dec. 1996) downloaded from the Internet.
Andreas Krall, “Efficient JAVA VM Just-In-Time Compilation,” IEEE 1998.
Title: Efficient Java VM Just-in-time Compilation, author: Krall et al, IEEE, 1998.*
Title: SUN says Java chips will vastly increase speed, reduce costs to run Java programs, source: interactive daily, Dec. 6, 1996.*
Title: SGI WebForce 02 is a one-stop Web authoring platform, source: InfoWorld, Jan. 20, 1997.*
Title: CACAO a 64 bit Java VM just in time compiler, Concurrency: Practice and Experience, Noveber, 97.

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

Java virtual machine hardware for RISC and CISC processors does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Java virtual machine hardware for RISC and CISC processors, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Java virtual machine hardware for RISC and CISC processors will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2574352

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