| Data processing device and method -> Monitor Keywords |
|
Data processing device and methodUSPTO Application #: 20060101437Title: Data processing device and method Abstract: A data processing device and method are provided. The data processing device includes a code storage unit storing an original code to be translated into a machine language code, a code analyzer analyzing the original code stored in the code storage unit, a register allocator allocating a predesignated register for a command included in the original code based on the result of analysis, and a code executor executing a machine language code generated using the allocated register. According to the data processing device and method, compiling time can be minimized. (end of abstract) Agent: Sughrue Mion, PLLC - Washington, DC, US Inventors: Sang-gyu Lee, Chong-mok Park USPTO Applicaton #: 20060101437 - Class: 717141000 (USPTO) Related Patent Categories: Data Processing: Software Development, Installation, And Management, Software Program Development Tool (e.g., Integrated Case Tool Or Stand-alone Development Tool), Translation Of Code, Compiling Code, Analysis Of Code Form The Patent Description & Claims data below is from USPTO Patent Application 20060101437. Brief Patent Description - Full Patent Description - Patent Application Claims CROSS-REFERENCE TO RELATED APPLICATION [0001] This application claims priority from Korean Patent Application No. 10-2004-0084406 filed on Oct. 21, 2004 in the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference in its entirety. BACKGROUND OF THE INVENTION [0002] 1. Field of the Invention [0003] The present invention relates to a data processing device and method, and more particularly, to a data processing device and method capable of minimizing compiling time. [0004] 2. Description of the Related Art [0005] In the field of computers, a virtual machine is a term used by Sun Microsystems, Inc., a developer of the Java (a registered trademark of Sun Microsystems, Inc.) language and the execution environment therefor, and is software serving as an interface between a compiled Java binary code and a microprocessor (or a hardware platform) actually executing a command of a program. When a Java virtual machine is provided on a single platform, any Java program called a bytecode can be executed on the platform. Java is designed to allow application programs to be executed on any platform without having to be reconstructed or compiled in conformity with the platform. [0006] Java programming languages have proliferated rapidly since they were published in the middle of 1990's but were disadvantageous in that their codes have a slow operating speed compared to the codes composed by other programming languages such as C or C++. In order to overcome this disadvantage, two techniques applicable to a conventional interpreter-based Java virtual machine have been previously proposed: one is a dynamic code generation technique such as a Just-In-Time (JIT) compiler and the other is a static code generation technique such as an Ahead-Of-Time (AOT) compiler. [0007] The Java platform basically comprises a Java virtual machine and Java classes. Class files are composed of information associated with data structures of the classes, including field information, method information, and so on. Execution codes of a method are formed of the bytecode, independent of hardware or an operating system. [0008] As shown in FIG. 1, such Java virtual machine includes a Java virtual machine runtime 10, an operating system layer 20, a hardware layer 30, a class loader 40, an execution engine 50 and a garbage collector 60. The virtual machine runtime manages necessary resources such as memory, threads, and networks using interface with lower layers, i.e., the operating system layer 20 and the hardware layer 30. The class loader 40 converts a class corresponding to a program module written in Java into a form that can be executed by the Java virtual machine and loads the converted class onto memory. The execution engine 50 executes an execution code of a Java class. The garbage collector 60 collects unnecessary memories among memories used during the execution of an application and returns them to the Java virtual machine runtime 10 to be reused. [0009] On the basis of the execution engine, the conventional Java virtual machine can be classified into an interpreter-based Java virtual machine, a JIT compiler-based Java virtual machine, a Java virtual machine using the interpreter-based and JIT compiler-based Java virtual machines, an AOT compiler-based Java virtual machine, and so on. [0010] The interpreter-based Java virtual machine interprets the bytecodes of the method intended for execution one by one, thereby performing an application. [0011] The JIT compiler obtains a machine language code dependent on the current Java platform by compiling the bytecodes, and then executes the machine language code to conduct an application. [0012] Although the JIT compiler provides better performance than the interpreting method, compiling time is included in application execution time since compiling is performed at a method execution time. To overcome this disadvantage, an AOT compiler performs compiling before the application execution begins because compiling time is regarded as part of the method execution time. [0013] FIG. 2 illustrates a method of translating a bytecode into a machine language code using a compiler. [0014] In operation S10, the compiler analyzes the bytecode and collects data needed to generate the machine language code. [0015] Here, the data needed to generate the machine language code includes a type of command obtained by analyzing the bytecode and a use frequency of the command. [0016] In operation S20, the compiler allocates a register for the command based on the collected data. In operation S30, the compiler generates the machine language code. [0017] In operation S40, the machine language code is recorded in a predetermined memory and then is executed. [0018] When the compiler generating the machine language code as described above, compile performance is greatly influenced by the manner of allocating a register on which an operation is performed fastest within a processor. [0019] In detail, local register allocation or global register allocation is performed according to a type of command. The local register allocation is performed in units of basic blocks while the global register allocation is performed in units of methods. [0020] In other words, a register is allocated for a basic block in the local register allocation and is allocated for a method in the global register allocation. [0021] A command for loading onto a register and a command for moving to a memory must be respectively added to the front and the back of each of the basic block and the method. Accordingly, performance is decreased with respect to a stack slot beyond a register allocation unit, i.e., the basic block or the method when the local register allocation or the global register allocation is used. [0022] Korean Patent Publication No. 2001-0104687 discloses a hardware Java accelerator which implements a part of a Java virtual machine in hardware to accelerate system operations related with Java bytecodes. The disclosed hardware Java accelerator accelerates an operating speed but does not prevent performance from decreasing with respect to a stack slot beyond a register allocation unit, i.e., a basic block or a method during compiling. Continue reading... Full patent description for Data processing device and method Brief Patent Description - Full Patent Description - Patent Application Claims Click on the above for other options relating to this Data processing device and method patent application. ### 1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored. 3. Each week you receive an email with patent applications related to your keywords. Start now! - Receive info on patent apps like Data processing device and method or other areas of interest. ### Previous Patent Application: Revalidation of a compiler for safety control Next Patent Application: Detection of code patterns Industry Class: Data processing: software development, installation, and management ### FreshPatents.com Support Thank you for viewing the Data processing device and method patent info. IP-related news and info Results in 6.80402 seconds Other interesting Feshpatents.com categories: Canon USA , Celera Genomics , Cephalon, Inc. , Cingular Wireless , Clorox , Colgate-Palmolive , Corning , Cymer , |
||