System and method for executing platform-independent code on...

Electrical computers and digital processing systems: processing – Processing architecture – Microprocessor or multichip or multimodule processor having...

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S103000

Reexamination Certificate

active

06321323

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates in general to platform-independent code and, in particular, to a system and method for executing platform-independent code on a co-processor.
BACKGROUND OF THE INVENTION
Software developers often strive to tailor or “port” their applications to a variety of computing platforms to achieve a wider user base and increased product acceptance. However, system-dependent variables, such as microprocessor type and operating system, make porting a difficult task. Moreover, ported applications must thereafter be supported in each computing platform-specific environment. Consequently, the overall product cost, including porting and support, must be weighed against the potential gains in the marketplace.
An increasingly preferred alternative to porting customized applications is to write software in a platform-independent programming language, such as the Java™ programming language (hereinafter “Java”). Java™ is a trademark of Sun Microsystems, Inc., Mountain View, Calif. Writing in Java enables developers to create programs for diverse computing platforms independent of the particular microprocessors or operating systems used. Applications written in Java (hereinafter “Java programs”) can be utilized over a wide spectrum of computers, both as applications embedded within web pages, called “applets,” and as applications which run stand-alone or over a distributed environment.
The Java program code is first “compiled” into platform-independent bytecode. During runtime, the bytecode is “executed.” Presently, two forms of interpreters for executing bytecode are used. The first form of interpreter is a software interpreter for executing bytecode on a line-by-line basis, such as the Java virtual machine (JVM) described in T. Lindholm & F. Yellin, “The Java Virtual Machine Specification,” Addison-Wesley (1997), the disclosure of which is incorporated herein by reference. The JVM is an application program functionally interposed as a layer between the Java program and the native operating system and hardware. However, the JVM results in a significant performance degradation, potentially causing a slow-down of up to fifty times that of a comparable C or C++ programming language application.
The other form of bytecode interpreter is a native instruction translator, such as the Just-In-Time (JIT) compiler described in F. Yellin, “The JIT Compiler API,” ftp://ftpjavasoft.com/docs/jit_interface.pdf, Oct. 4, 1996, the disclosure of which is incorporated herein by reference. The JIT compiler translates the bytecode into native machine instructions to achieve near native code execution speeds. However, a one time computation cost is incurred each time an application is run, thereby causing overall slower execution than applications compiled directly into native machine instructions.
Therefore, there is a need for a system and method for accelerating execution of platform-independent code which avoids the slower performance of a JVM and JIT compiler. Preferably, such a system and method would operate concurrently and independently of the main processor using a co-processor.
SUMMARY OF THE INVENTION
The present invention enables the above problems to be substantially overcome by providing a system and method for executing platform-independent code using a co-processor. Platform-independent code is intercepted at an application layer, an interrupt for a co-processor is generated and the platform-independent program code is executed by the co-processor.
An embodiment of the present invention is a system and method for executing platform-independent code on a co-processor. The system includes a processor, a main memory and the co-processor, each interconnected with each other. The processor and the co-processor operate under control of an operating system. A memory manager operatively coupled to the operating system initializes a runtime environment including an address space in the main memory for the platform-independent code. A runtime shim operatively coupled to the operating system provides the initialized runtime environment to the co-processor through the operating system. The co-processor executes the platform-independent code responsive to the runtime shim with reference to the address space in the main memory.
A further embodiment of the present invention is an apparatus for efficiently executing platform-independent code in a computer system. The computer system includes a processor and a main memory with each interconnected with each other. Interfacing logic interconnects the apparatus with the processor and the main memory and includes channels for exchanging control, data and address signals with the processor and the main memory. A co-processor executes the platform-independent code in coordination with but independently from the processor. A buffer is interconnected with the co-processor and includes a plurality of storage locations in which are staged segments of the platform-independent code prior to execution by the co-processor. A direct memory access (DMA) controller is interconnected with the buffer and interfaces directly to the main memory through the interfacing logic. The DMA controller stages the segments of the platform-independent code into the buffer from the main memory. A bus internal to the apparatus interconnects the interfacing logic, the co-processor, the direct memory access controller, the programmable read only memory and the read only memory. The interfacing logic provides the control, data and address signals over the internal bus.
A further embodiment of the present invention is a method using a computer for facilitating execution of platform-independent program code on a co-processor. The computer includes a processor, a main memory and the co-processor with each interconnected with each other. A runtime environment including an address space in the main memory in which is stored the platform-independent program code is initialized. The co-processor is notified to begin execution of the platform-independent program code including being provided the address space in the runtime environment to the co-processor. Execution of the platform-independent program code by the co-processor with independent execution of other program code by the processor is coordinated and the main memory between the address space in the runtime environment and the main memory used by the processor is managed.
Still other embodiments of the present invention will become readily apparent to those skilled in the art from the following detailed description, wherein is shown and described only the embodiments of the invention by way of illustration of the best modes contemplated for carrying out the invention. As will be realized, the invention is capable of other and different embodiments and several of its details are capable of modification in various obvious respects, all without departing from the spirit and scope of the present invention. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive.


REFERENCES:
patent: 5313586 (1994-05-01), Rutman
patent: 5655131 (1997-08-01), Davies
patent: 5784553 (1998-07-01), Kolawa et al.
patent: 5875336 (1999-02-01), Dickol et al.
patent: 5920720 (1999-07-01), Toutonghi et al.
patent: 5923878 (1999-07-01), Marsland
patent: 5937193 (1999-08-01), Evoy
patent: 6126328 (2000-10-01), Mallory et al.
“Not Just Java”, by Peter van der Linden, SunSoft Press 1997, pp. 92-271.
“Just Java”, by Peter van der Linden, SunSoft Press 1997, pp. 340-350.
“The JIT Compiler API”, by Frank Yellin, Oct. 4, 1996, pp. 1-23.
“Inside Windows NT”, by Helen Custer, Microsoft Press, 1992, pp. 15-30.
“The Java Virtual Machine Specification”, by Tim Lindholm etal., Sep. 1996, pp. 57-82.
“Rockwell Unveils a New Chip Created for Java Applications”, by Frederick Rose, The Wall Street Journal Interactive Edition, Sep. 22, 1997, 2 pages, http://www.wsj.com/edition/current/articles/SB874891257730788000.html.
“Remote Queues: Exposing Message Queues for Optimization and

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

System and method for executing platform-independent code on... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method for executing platform-independent code on..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for executing platform-independent code on... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2602546

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