WO2000034844A3 - Java virtual machine hardware for risc and cisc processors - Google Patents

Java virtual machine hardware for risc and cisc processors Download PDF

Info

Publication number
WO2000034844A3
WO2000034844A3 PCT/US1999/028782 US9928782W WO0034844A3 WO 2000034844 A3 WO2000034844 A3 WO 2000034844A3 US 9928782 W US9928782 W US 9928782W WO 0034844 A3 WO0034844 A3 WO 0034844A3
Authority
WO
WIPO (PCT)
Prior art keywords
java
virtual machine
hardware
risc
java virtual
Prior art date
Application number
PCT/US1999/028782
Other languages
French (fr)
Other versions
WO2000034844A9 (en
WO2000034844A2 (en
Inventor
Mukesh K Patel
Jay Kamdar
V R Ranganth
Original Assignee
Jedi Technologies Inc
Mukesh K Patel
Jay Kamdar
V R Ranganth
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22775862&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2000034844(A3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Jedi Technologies Inc, Mukesh K Patel, Jay Kamdar, V R Ranganth filed Critical Jedi Technologies Inc
Priority to JP2000587240A priority Critical patent/JP2002532772A/en
Priority to AU21654/00A priority patent/AU2165400A/en
Priority to EP99965998A priority patent/EP1157323A2/en
Priority to KR1020017007190A priority patent/KR20010104687A/en
Publication of WO2000034844A2 publication Critical patent/WO2000034844A2/en
Publication of WO2000034844A3 publication Critical patent/WO2000034844A3/en
Publication of WO2000034844A9 publication Critical patent/WO2000034844A9/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Abstract

A hardware Java accelerator (22) is provided to implement portions of the Java virtual machine in hardware in order to accelerate the operation of the system on Java bytecodes. The Java hardware accelerator (22) preferably includes Java bytecode translation into native CPU instructions. The combination of the Java hardware accelerator and a CPU (26) provides an embedded solution which results in an inexpensive system to run Java programs for use in commercial appliances.
PCT/US1999/028782 1998-12-08 1999-12-07 Java virtual machine hardware for risc and cisc processors WO2000034844A2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2000587240A JP2002532772A (en) 1998-12-08 1999-12-07 Java virtual machine hardware for RISC and CISC processors
AU21654/00A AU2165400A (en) 1998-12-08 1999-12-07 Java virtual machine hardware for risc and cisc processors
EP99965998A EP1157323A2 (en) 1998-12-08 1999-12-07 Java virtual machine hardware for risc and cisc processors
KR1020017007190A KR20010104687A (en) 1998-12-08 1999-12-07 Java virtual machine hardware for RISC and CISC processors

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/208,741 1998-12-08
US09/208,741 US6332215B1 (en) 1998-12-08 1998-12-08 Java virtual machine hardware for RISC and CISC processors

Publications (3)

Publication Number Publication Date
WO2000034844A2 WO2000034844A2 (en) 2000-06-15
WO2000034844A3 true WO2000034844A3 (en) 2000-11-23
WO2000034844A9 WO2000034844A9 (en) 2002-04-25

Family

ID=22775862

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/028782 WO2000034844A2 (en) 1998-12-08 1999-12-07 Java virtual machine hardware for risc and cisc processors

Country Status (6)

Country Link
US (3) US6332215B1 (en)
EP (1) EP1157323A2 (en)
JP (1) JP2002532772A (en)
KR (1) KR20010104687A (en)
AU (1) AU2165400A (en)
WO (1) WO2000034844A2 (en)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532531B1 (en) * 1996-01-24 2003-03-11 Sun Microsystems, Inc. Method frame storage using multiple memory circuits
US6826749B2 (en) * 1998-12-08 2004-11-30 Nazomi Communications, Inc. Java hardware accelerator using thread manager
US6332215B1 (en) * 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US6425003B1 (en) * 1999-01-22 2002-07-23 Cisco Technology, Inc. Method and apparatus for DNS resolution
US7200842B1 (en) * 1999-02-02 2007-04-03 Sun Microsystems, Inc. Object-oriented instruction set for resource-constrained devices
US6578020B1 (en) * 1999-12-07 2003-06-10 International Business Machines Corporation Method and system for converting code to executable code using neural networks implemented in a very large scale integration (VLSI) integrated circuit
US7080234B2 (en) * 2000-03-08 2006-07-18 Sun Microsystems, Inc. VLIW computer processing architecture having the problem counter stored in a register file register
EP1316014A1 (en) * 2000-08-31 2003-06-04 Koninklijke Philips Electronics N.V. System for executing virtual machine instructions
US20020069402A1 (en) * 2000-10-05 2002-06-06 Nevill Edward Colles Scheduling control within a system having mixed hardware and software based instruction execution
GB2367653B (en) * 2000-10-05 2004-10-20 Advanced Risc Mach Ltd Restarting translated instructions
GB2367654B (en) * 2000-10-05 2004-10-27 Advanced Risc Mach Ltd Storing stack operands in registers
GB2367651B (en) * 2000-10-05 2004-12-29 Advanced Risc Mach Ltd Hardware instruction translation within a processor pipeline
KR20020028814A (en) * 2000-10-10 2002-04-17 나조미 커뮤니케이션즈, 인코포레이티드 Java hardware accelerator using microcode engine
US6978456B1 (en) 2000-10-31 2005-12-20 Sun Microsystems, Inc. Methods and apparatus for numeric constant value inlining in virtual machines
US6901591B1 (en) 2000-10-31 2005-05-31 Sun Microsystems, Inc. Frameworks for invoking methods in virtual machines
US6996813B1 (en) * 2000-10-31 2006-02-07 Sun Microsystems, Inc. Frameworks for loading and execution of object-based programs
JP2002169696A (en) * 2000-12-04 2002-06-14 Mitsubishi Electric Corp Data processing apparatus
US6990567B1 (en) * 2000-12-22 2006-01-24 Lsi Logic Corporation Use of internal general purpose registers of a processor as a Java virtual machine top of stack and dynamic allocation of the registers according to stack status
US7873814B1 (en) 2000-12-22 2011-01-18 Lsi Corporation Microcode based hardware translator to support a multitude of processors
JP2002215387A (en) * 2001-01-22 2002-08-02 Mitsubishi Electric Corp Data processor provided with instruction translator, and memory interface device
US7096466B2 (en) * 2001-03-26 2006-08-22 Sun Microsystems, Inc. Loading attribute for partial loading of class files into virtual machines
US7020874B2 (en) * 2001-03-26 2006-03-28 Sun Microsystems, Inc. Techniques for loading class files into virtual machines
US7543288B2 (en) * 2001-03-27 2009-06-02 Sun Microsystems, Inc. Reduced instruction set for Java virtual machines
US6957428B2 (en) 2001-03-27 2005-10-18 Sun Microsystems, Inc. Enhanced virtual machine instructions
CA2444968A1 (en) 2001-04-23 2002-10-31 Atmel Corporation Microprocessor for executing byte compiled java code
GB2376099B (en) * 2001-05-31 2005-11-16 Advanced Risc Mach Ltd Program instruction interpretation
GB2376098B (en) 2001-05-31 2004-11-24 Advanced Risc Mach Ltd Unhandled operation handling in multiple instruction set systems
GB2376100B (en) * 2001-05-31 2005-03-09 Advanced Risc Mach Ltd Data processing using multiple instruction sets
US20030023958A1 (en) * 2001-07-17 2003-01-30 Patel Mukesh K. Intermediate language accelerator chip
GB2380003A (en) * 2001-07-03 2003-03-26 Digital Comm Technologies Ltd Method and apparatus for executing stack based programs using a register based processor
GB2377288A (en) * 2001-07-06 2003-01-08 Digital Comm Technologies Ltd Executing branch instructions of a stack based program on a register based processor
US7058934B2 (en) 2001-08-24 2006-06-06 Sun Microsystems, Inc. Frameworks for generation of Java macro instructions for instantiating Java objects
US7039904B2 (en) * 2001-08-24 2006-05-02 Sun Microsystems, Inc. Frameworks for generation of Java macro instructions for storing values into local variables
US6988261B2 (en) * 2001-08-24 2006-01-17 Sun Microsystems, Inc. Frameworks for generation of Java macro instructions in Java computing environments
US7228533B2 (en) * 2001-08-24 2007-06-05 Sun Microsystems, Inc. Frameworks for generation of Java macro instructions for performing programming loops
US20030066046A1 (en) * 2001-09-07 2003-04-03 Dawson Thomas Patrick Java virtual machine with non-volatile memory
US7434030B2 (en) 2001-09-12 2008-10-07 Renesas Technology Corp. Processor system having accelerator of Java-type of programming language
KR20040045467A (en) * 2001-10-02 2004-06-01 코닌클리케 필립스 일렉트로닉스 엔.브이. Speculative execution for java hardware accelerator
CN1575451A (en) * 2001-10-25 2005-02-02 皇家飞利浦电子股份有限公司 Low overhead exception checking
EP1308838A3 (en) * 2001-10-31 2007-12-19 Aplix Corporation Intermediate code preprocessing apparatus, intermediate code execution apparatus, intermediate code execution system, and computer program product for preprocessing or executing intermediate code
JP2003167737A (en) * 2001-11-30 2003-06-13 Nec Corp Stack use method
US6978358B2 (en) * 2002-04-02 2005-12-20 Arm Limited Executing stack-based instructions within a data processing apparatus arranged to apply operations to data items stored in registers
US20030192035A1 (en) * 2002-04-09 2003-10-09 Duesterwald Ald Evelyn Systems and methods for implementing efficient execution transfers between successive translations of stack-based program code in a virtual machine environment
US6973644B2 (en) * 2002-04-12 2005-12-06 The Mathworks, Inc. Program interpreter
US20030212878A1 (en) * 2002-05-07 2003-11-13 Chen-Hanson Ting Scaleable microprocessor architecture
US20040003018A1 (en) * 2002-06-26 2004-01-01 Pentkovski Vladimir M. Method and system for efficient handlings of serial and parallel java operations
TW588243B (en) * 2002-07-31 2004-05-21 Trek 2000 Int Ltd System and method for authentication
EP1387249B1 (en) * 2002-07-31 2019-03-13 Texas Instruments Incorporated RISC processor having a stack and register architecture
US20040031022A1 (en) * 2002-08-02 2004-02-12 Masayuki Kabasawa Information processing device for multiple instruction sets with reconfigurable mechanism
US9207958B1 (en) * 2002-08-12 2015-12-08 Arm Finance Overseas Limited Virtual machine coprocessor for accelerating software execution
AU2002361532A1 (en) * 2002-09-20 2004-04-08 Freescale Semiconductor, Inc. Apparatus and method for automated transistor and component folding to produce cell structures
GB2406943B (en) * 2002-12-12 2005-10-05 Advanced Risc Mach Ltd Processing activity masking in a data processing system
US7089340B2 (en) * 2002-12-31 2006-08-08 Intel Corporation Hardware management of java threads utilizing a thread processor to manage a plurality of active threads with synchronization primitives
US7228543B2 (en) * 2003-01-24 2007-06-05 Arm Limited Technique for reaching consistent state in a multi-threaded data processing system
JP2006520034A (en) * 2003-02-20 2006-08-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Conversion of a series of computer instructions
JP4224430B2 (en) * 2003-07-07 2009-02-12 株式会社ルネサステクノロジ Information processing device
US7810080B2 (en) * 2003-09-15 2010-10-05 Thomas Plum Automated safe secure techniques for eliminating undefined behavior in computer software
US7516459B2 (en) * 2004-02-20 2009-04-07 Intel Corporation Methods and apparatus to optimize managed application program interfaces
GB2412192B (en) * 2004-03-18 2007-08-29 Advanced Risc Mach Ltd Function calling mechanism
US7802080B2 (en) * 2004-03-24 2010-09-21 Arm Limited Null exception handling
US7930526B2 (en) * 2004-03-24 2011-04-19 Arm Limited Compare and branch mechanism
DE102004025419A1 (en) * 2004-05-24 2005-12-22 Infineon Technologies Ag Controller and method for processing instructions
DE102004025418A1 (en) * 2004-05-24 2005-12-22 Infineon Technologies Ag Controller with a decoder
US7418551B2 (en) * 2004-07-06 2008-08-26 Intel Corporation Multi-purpose register cache
US20060080681A1 (en) * 2004-10-12 2006-04-13 Majid Anwar Mechanism to extend functionality in a restricted computing environment
US20060080683A1 (en) * 2004-10-12 2006-04-13 Majid Anwar Mechanism to circumvent restrictions of pre-written code components
US7444625B2 (en) * 2004-10-12 2008-10-28 Picsel (Research) Limited Concurrent code loading mechanism
US7533376B2 (en) * 2004-10-12 2009-05-12 Picsel (Research) Limited Dynamic linking in constrained environment
US20060080680A1 (en) * 2004-10-12 2006-04-13 Majid Anwar Platform independent dynamic linking
US7318143B2 (en) * 2004-10-20 2008-01-08 Arm Limited Reuseable configuration data
US7343482B2 (en) * 2004-10-20 2008-03-11 Arm Limited Program subgraph identification
US7350055B2 (en) * 2004-10-20 2008-03-25 Arm Limited Tightly coupled accelerator
KR100597414B1 (en) 2004-10-21 2006-07-05 삼성전자주식회사 Data processing device and register allocation method using data processing device
JP4602047B2 (en) * 2004-10-29 2010-12-22 ルネサスエレクトロニクス株式会社 Information processing device
US7657881B2 (en) 2004-12-21 2010-02-02 Intel Corporation Using optimized libraries to improve performance of deployed application code at runtime
US7478224B2 (en) * 2005-04-15 2009-01-13 Atmel Corporation Microprocessor access of operand stack as a register file using native instructions
US7389500B2 (en) * 2005-07-08 2008-06-17 Microsoft Corporation Selective pre-compilation of virtual code to enhance boot time emulator performance
KR100678912B1 (en) 2005-10-18 2007-02-05 삼성전자주식회사 Method for interpreting method bytecode and system by the same
WO2007056624A2 (en) * 2005-10-21 2007-05-18 Nielsen Media Research, Inc. Methods and apparatus for metering portable media players
US8032872B2 (en) * 2006-01-09 2011-10-04 Oracle America, Inc. Supporting applets on a high end platform
EP2011002B1 (en) 2006-03-27 2016-06-22 Nielsen Media Research, Inc. Methods and systems to meter media content presented on a wireless communication device
US20070283336A1 (en) * 2006-06-01 2007-12-06 Michael Karl Gschwind System and method for just-in-time compilation in a heterogeneous processing environment
US20070288909A1 (en) * 2006-06-07 2007-12-13 Hong Kong Applied Science and Technology Research Institute Company Limited Hardware JavaTM Bytecode Translator
US20080126705A1 (en) * 2006-08-08 2008-05-29 Fabrice Jogand-Coulomb Methods Used In A Portable Mass Storage Device With Virtual Machine Activation
US7725614B2 (en) * 2006-08-08 2010-05-25 Sandisk Corporation Portable mass storage device with virtual machine activation
KR101407629B1 (en) * 2007-06-04 2014-06-13 더 보드 오브 리젠츠 오브 더 유니버시티 오브 텍사스 시스템 Apparatus and method for accelerating java translation
US8689224B2 (en) * 2007-09-26 2014-04-01 The Boeing Company Methods and systems for preserving certified software through virtualization
US10802990B2 (en) * 2008-10-06 2020-10-13 International Business Machines Corporation Hardware based mandatory access control
KR100930831B1 (en) * 2009-03-24 2009-12-10 주식회사 에이디칩스 Apparatus for accelerating bytecode translation and the method
US9043769B2 (en) * 2009-12-28 2015-05-26 Hyperion Core Inc. Optimization of loops and data flow sections in multi-core processor environment
WO2012103209A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Guest instruction to native instruction range based mapping using a conversion look aside buffer of a processor
WO2012103367A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Guest to native block address mappings and management of native code storage
WO2012103253A2 (en) * 2011-01-27 2012-08-02 Soft Machines, Inc. Multilevel conversion table cache for translating guest instructions to native instructions
WO2012103373A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Variable caching structure for managing physical storage
WO2012103359A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Hardware acceleration components for translating guest instructions to native instructions
WO2012103245A2 (en) 2011-01-27 2012-08-02 Soft Machines Inc. Guest instruction block with near branching and far branching sequence construction to native instruction block
US8966478B2 (en) * 2011-06-28 2015-02-24 The Boeing Company Methods and systems for executing software applications using hardware abstraction
US8819649B2 (en) * 2011-09-09 2014-08-26 Microsoft Corporation Profile guided just-in-time (JIT) compiler and byte code generation
US9354874B2 (en) 2011-10-03 2016-05-31 International Business Machines Corporation Scalable decode-time instruction sequence optimization of dependent instructions
US9286072B2 (en) 2011-10-03 2016-03-15 International Business Machines Corporation Using register last use infomation to perform decode-time computer instruction optimization
US9329869B2 (en) 2011-10-03 2016-05-03 International Business Machines Corporation Prefix computer instruction for compatibily extending instruction functionality
US9836316B2 (en) * 2012-09-28 2017-12-05 Intel Corporation Flexible acceleration of code execution
US9880842B2 (en) * 2013-03-15 2018-01-30 Intel Corporation Using control flow data structures to direct and track instruction execution
CN105122206B (en) 2013-03-15 2018-11-09 英特尔公司 The method and apparatus of visitor's return-address stack emulation for supporting to speculate
WO2014151652A1 (en) 2013-03-15 2014-09-25 Soft Machines Inc Method and apparatus to allow early dependency resolution and data forwarding in a microprocessor
KR101694291B1 (en) * 2014-01-28 2017-01-10 한국전자통신연구원 Apparatus and method for accelerating java script engine
US9348595B1 (en) 2014-12-22 2016-05-24 Centipede Semi Ltd. Run-time code parallelization with continuous monitoring of repetitive instruction sequences
US9208066B1 (en) * 2015-03-04 2015-12-08 Centipede Semi Ltd. Run-time code parallelization with approximate monitoring of instruction sequences
US10296350B2 (en) 2015-03-31 2019-05-21 Centipede Semi Ltd. Parallelized execution of instruction sequences
US10296346B2 (en) 2015-03-31 2019-05-21 Centipede Semi Ltd. Parallelized execution of instruction sequences based on pre-monitoring
US9715390B2 (en) 2015-04-19 2017-07-25 Centipede Semi Ltd. Run-time parallelization of code execution based on an approximate register-access specification
US10802854B2 (en) * 2019-08-30 2020-10-13 Alibaba Group Holding Limited Method and apparatus for interpreting bytecode instruction stream

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875336A (en) * 1997-03-31 1999-02-23 International Business Machines Corporation Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system
US5898885A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native stack-based instruction within a computer system
US5898850A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native mode-sensitive instruction within a computer system

Family Cites Families (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3889243A (en) * 1973-10-18 1975-06-10 Ibm Stack mechanism for a data processor
US4236204A (en) * 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
JPS5569855A (en) * 1978-11-20 1980-05-26 Panafacom Ltd Data processing system
US4524416A (en) * 1980-04-15 1985-06-18 Honeywell Information Systems Inc. Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system
US4587632A (en) * 1980-05-27 1986-05-06 At&T Bell Laboratories Lookahead stack oriented computer
EP0097725B1 (en) 1982-06-08 1986-05-14 Ibm Deutschland Gmbh Circuits in the control part of a microprogrammable processor for direct hardware execution of selected instructions
EP0124517A1 (en) 1982-10-22 1984-11-14 International Business Machines Corporation Accelerated instruction mapping external to source and target instruction streams for near realtime injection into the latter
US4922414A (en) * 1982-12-17 1990-05-01 Symbolics Inc. Symbolic language data processing system
US4763255A (en) 1984-10-31 1988-08-09 International Business Machines Corporation Method for generating short form instructions in an optimizing compiler
JP2564805B2 (en) 1985-08-08 1996-12-18 日本電気株式会社 Information processing device
US4783738A (en) 1986-03-13 1988-11-08 International Business Machines Corporation Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element
US5142681A (en) 1986-07-07 1992-08-25 International Business Machines Corporation APL-to-Fortran translators
DE3726192A1 (en) * 1987-08-06 1989-02-16 Otto Mueller STACK CONTROL
EP0325384B1 (en) * 1988-01-15 1993-09-29 Quantel Limited Data processing and communication
US5136696A (en) 1988-06-27 1992-08-04 Prime Computer, Inc. High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions
US5313614A (en) 1988-12-06 1994-05-17 At&T Bell Laboratories Method and apparatus for direct conversion of programs in object code form between different hardware architecture computer systems
US4961141A (en) 1988-12-16 1990-10-02 International Business Machines Corporation Generating efficient code for a computer with dissimilar register spaces
US5218711A (en) 1989-05-15 1993-06-08 Mitsubishi Denki Kabushiki Kaisha Microprocessor having program counter registers for its coprocessors
US5113522A (en) 1989-05-17 1992-05-12 International Business Machines Corporation Data processing system with system resource management for itself and for an associated alien processor
US5077657A (en) 1989-06-15 1991-12-31 Unisys Emulator Assist unit which forms addresses of user instruction operands in response to emulator assist unit commands from host processor
US5440749A (en) 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
EP0588446B1 (en) * 1989-09-01 1999-07-07 Amdahl Corporation Programmable computer with automatic translation between source and object code with version control
US5241636A (en) 1990-02-14 1993-08-31 Intel Corporation Method for parallel instruction execution in a computer
US5201056A (en) 1990-05-02 1993-04-06 Motorola, Inc. RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output
CA2038264C (en) 1990-06-26 1995-06-27 Richard James Eickemeyer In-memory preprocessor for a scalable compound instruction set machine processor
CA2045756C (en) 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
US5430862A (en) 1990-06-29 1995-07-04 Bull Hn Information Systems Inc. Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution
US5163139A (en) 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
US5265206A (en) * 1990-10-23 1993-11-23 International Business Machines Corporation System and method for implementing a messenger and object manager in an object oriented programming environment
US5307492A (en) * 1991-03-07 1994-04-26 Digital Equipment Corporation Mapping assembly language argument list references in translating code for different machine architectures
US5193180A (en) 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
US5666296A (en) 1991-12-31 1997-09-09 Texas Instruments Incorporated Method and means for translating a data-dependent program to a data flow graph with conditional expression
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
CA2093451C (en) 1993-04-06 2000-03-14 David M. Mooney Method and mechanism for calling 32-bit functions from 16-bit functions
US5499352A (en) * 1993-09-30 1996-03-12 Intel Corporation Floating point register alias table FXCH and retirement floating point register array
US5613132A (en) * 1993-09-30 1997-03-18 Intel Corporation Integer and floating point register alias table within processor device
US5548776A (en) * 1993-09-30 1996-08-20 Intel Corporation N-wide bypass for data dependencies within register alias table
US5781750A (en) 1994-01-11 1998-07-14 Exponential Technology, Inc. Dual-instruction-set architecture CPU with hidden software emulation mode
US5542059A (en) 1994-01-11 1996-07-30 Exponential Technology, Inc. Dual instruction set processor having a pipeline with a pipestage functional unit that is relocatable in time and sequence order
US5481684A (en) 1994-01-11 1996-01-02 Exponential Technology, Inc. Emulating operating system calls in an alternate instruction set using a modified code segment descriptor
US5574927A (en) 1994-03-25 1996-11-12 International Meta Systems, Inc. RISC architecture computer configured for emulation of the instruction set of a target computer
GB2289353B (en) * 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Data processing with multiple instruction sets
US6151702A (en) * 1994-09-30 2000-11-21 Computer Associates Think, Inc. Method and system for automated, interactive translation of a software program to a data model for input to an information repository
US5668999A (en) 1994-12-20 1997-09-16 Sun Microsystems, Inc. System and method for pre-verification of stack usage in bytecode program loops
US5748964A (en) * 1994-12-20 1998-05-05 Sun Microsystems, Inc. Bytecode program interpreter apparatus and method with pre-verification of data type restrictions
US5774868A (en) 1994-12-23 1998-06-30 International Business And Machines Corporation Automatic sales promotion selection system and method
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US5752035A (en) * 1995-04-05 1998-05-12 Xilinx, Inc. Method for compiling and executing programs for reprogrammable instruction set accelerator
US5634118A (en) * 1995-04-10 1997-05-27 Exponential Technology, Inc. Splitting a floating-point stack-exchange instruction for merging into surrounding instructions by operand translation
US5619665A (en) * 1995-04-13 1997-04-08 Intrnational Business Machines Corporation Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture
US5692170A (en) 1995-04-28 1997-11-25 Metaflow Technologies, Inc. Apparatus for detecting and executing traps in a superscalar processor
US6295599B1 (en) * 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
US5778178A (en) 1995-11-13 1998-07-07 Arunachalam; Lakshmi Method and apparatus for enabling real-time bi-directional transactions on a network
US5838948A (en) * 1995-12-01 1998-11-17 Eagle Design Automation, Inc. System and method for simulation of computer systems combining hardware and software interaction
US5761477A (en) * 1995-12-04 1998-06-02 Microsoft Corporation Methods for safe and efficient implementations of virtual machines
JP2000515270A (en) * 1996-01-24 2000-11-14 サン・マイクロシステムズ・インコーポレイテッド Dual instruction set processor for execution of instruction sets received from network or local memory
US6532531B1 (en) 1996-01-24 2003-03-11 Sun Microsystems, Inc. Method frame storage using multiple memory circuits
US6076141A (en) * 1996-01-24 2000-06-13 Sun Microsytems, Inc. Look-up switch accelerator and method of operating same
DE69713400T2 (en) * 1996-01-24 2002-10-31 Sun Microsystems Inc Processor with area check for matrix access
US6038643A (en) * 1996-01-24 2000-03-14 Sun Microsystems, Inc. Stack management unit and method for a processor having a stack
US6065108A (en) 1996-01-24 2000-05-16 Sun Microsystems Inc Non-quick instruction accelerator including instruction identifier and data set storage and method of implementing same
DE69738810D1 (en) * 1996-01-24 2008-08-14 Sun Microsystems Inc COMMAND FOLDING IN A STACK MEMORY PROCESSOR
US6091897A (en) * 1996-01-29 2000-07-18 Digital Equipment Corporation Fast translation and execution of a computer program on a non-native architecture by use of background translator
US5794068A (en) 1996-03-18 1998-08-11 Advanced Micro Devices, Inc. CPU with DSP having function preprocessor that converts instruction sequences intended to perform DSP function into DSP function identifier
US5768593A (en) 1996-03-22 1998-06-16 Connectix Corporation Dynamic cross-compilation system and method
US5805895A (en) 1996-06-09 1998-09-08 Motorola, Inc. Method and apparatus for code translation optimization
US6031992A (en) * 1996-07-05 2000-02-29 Transmeta Corporation Combining hardware and software to provide an improved microprocessor
US5764908A (en) 1996-07-12 1998-06-09 Sofmap Future Design, Inc. Network system containing program modules residing in different computers and executing commands without return results to calling modules
US5838165A (en) 1996-08-21 1998-11-17 Chatter; Mukesh High performance self modifying on-the-fly alterable logic FPGA, architecture and method
US5926832A (en) * 1996-09-26 1999-07-20 Transmeta Corporation Method and apparatus for aliasing memory data in an advanced microprocessor
US6067577A (en) * 1996-09-30 2000-05-23 Apple Computer, Inc. Dynamic method resolution for native methods in a dynamic object-oriented programming language
US6606743B1 (en) * 1996-11-13 2003-08-12 Razim Technology, Inc. Real time program language accelerator
US5937193A (en) * 1996-11-27 1999-08-10 Vlsi Technology, Inc. Circuit arrangement for translating platform-independent instructions for execution on a hardware platform and method thereof
US5953741A (en) * 1996-11-27 1999-09-14 Vlsi Technology, Inc. Stack cache for stack-based processor and method thereof
US6085307A (en) * 1996-11-27 2000-07-04 Vlsi Technology, Inc. Multiple native instruction set master/slave processor arrangement and method thereof
US5889996A (en) 1996-12-16 1999-03-30 Novell Inc. Accelerator for interpretive environments
US5920720A (en) * 1997-02-25 1999-07-06 Microsoft Corporation Efficient computer based virtual machine object structure
US5905895A (en) 1997-03-07 1999-05-18 International Business Machines Corporation Method and system for optimizing non-native bytecodes before bytecode interpretation
US6167488A (en) * 1997-03-31 2000-12-26 Sun Microsystems, Inc. Stack caching circuit with overflow/underflow unit
US6003038A (en) 1997-03-31 1999-12-14 Sun Microsystems, Inc. Object-oriented processor architecture and operating method
US6009499A (en) * 1997-03-31 1999-12-28 Sun Microsystems, Inc Pipelined stack caching circuit
US6131144A (en) * 1997-04-01 2000-10-10 Sun Microsystems, Inc. Stack caching method with overflow/underflow control using pointers
US6052526A (en) * 1997-04-17 2000-04-18 Vertel Corporation Data structure and method for dynamic type resolution using object-oriented programming language representation of information object sets
US5953736A (en) * 1997-04-23 1999-09-14 Sun Microsystems, Inc. Write barrier system and method including pointer-specific instruction variant replacement mechanism
US6330659B1 (en) 1997-11-06 2001-12-11 Iready Corporation Hardware accelerator for an object-oriented programming language
WO1998050852A1 (en) 1997-05-08 1998-11-12 Iready Corporation Hardware accelerator for an object-oriented programming language
US6009511A (en) * 1997-06-11 1999-12-28 Advanced Micro Devices, Inc. Apparatus and method for tagging floating point operands and results for rapid detection of special floating point numbers
US6139199A (en) 1997-06-11 2000-10-31 Sun Microsystems, Inc. Fast just-in-time (JIT) scheduler
US6321323B1 (en) 1997-06-27 2001-11-20 Sun Microsystems, Inc. System and method for executing platform-independent code on a co-processor
US6317872B1 (en) * 1997-07-11 2001-11-13 Rockwell Collins, Inc. Real time processor optimized for executing JAVA programs
US6128728A (en) * 1997-08-01 2000-10-03 Micron Technology, Inc. Virtual shadow registers and virtual register windows
US5944801A (en) * 1997-08-05 1999-08-31 Advanced Micro Devices, Inc. Isochronous buffers for MMx-equipped microprocessors
DE69836902T2 (en) * 1997-10-02 2007-10-18 Koninklijke Philips Electronics N.V. COMPUTER SETTING ON VARIABLE INSTRUCTIONS
WO1999018484A2 (en) * 1997-10-02 1999-04-15 Koninklijke Philips Electronics N.V. A processing device for executing virtual machine instructions
DE69839913D1 (en) * 1997-10-02 2008-10-02 Koninkl Philips Electronics Nv DATA PROCESSING DEVICE FOR PROCESSING COMMAND
US5970249A (en) * 1997-10-06 1999-10-19 Sun Microsystems, Inc. Method and apparatus for performing byte-code optimization during pauses
US8782199B2 (en) * 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US5923892A (en) * 1997-10-27 1999-07-13 Levy; Paul S. Host processor and coprocessor arrangement for processing platform-independent code
US5903761A (en) * 1997-10-31 1999-05-11 Preemptive Solutions, Inc. Method of reducing the number of instructions in a program code sequence
JP3377419B2 (en) * 1997-11-11 2003-02-17 インターナショナル・ビジネス・マシーンズ・コーポレーション Instruction string generation method and apparatus, conversion method, and computer
US6170083B1 (en) * 1997-11-12 2001-01-02 Intel Corporation Method for performing dynamic optimization of computer code
US6118940A (en) 1997-11-25 2000-09-12 International Business Machines Corp. Method and apparatus for benchmarking byte code sequences
US6122638A (en) * 1997-11-26 2000-09-19 International Business Machines Corporation Object-oriented processor and method for caching intermediate data in an object-oriented processor
AU1809599A (en) 1997-12-11 1999-06-28 Digits Corp. Object code analysis and remediation system and method
US6081665A (en) 1997-12-19 2000-06-27 Newmonics Inc. Method for efficient soft real-time execution of portable byte code computer programs
US6110226A (en) 1998-02-19 2000-08-29 Cygnus Solutions Java development environment using optimizing ahead-of-time compiler
US6148391A (en) * 1998-03-26 2000-11-14 Sun Microsystems, Inc. System for simultaneously accessing one or more stack elements by multiple functional units using real stack addresses
US6374286B1 (en) * 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
US6108768A (en) * 1998-04-22 2000-08-22 Sun Microsystems, Inc. Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system
US6275903B1 (en) 1998-04-22 2001-08-14 Sun Microsystems, Inc. Stack cache miss handling
US6075942A (en) * 1998-05-04 2000-06-13 Sun Microsystems, Inc. Encoding machine-specific optimization in generic byte code by using local variables as pseudo-registers
US6292935B1 (en) * 1998-05-29 2001-09-18 Intel Corporation Method for fast translation of java byte codes into efficient native processor code
US6158048A (en) * 1998-05-29 2000-12-05 Intel Corporation Method for eliminating common subexpressions from java byte codes
US6085198A (en) * 1998-06-05 2000-07-04 Sun Microsystems, Inc. Integrated three-tier application framework with automated class and table generation
US6131191A (en) 1998-07-21 2000-10-10 Intel Corporation Code implants for compilers
US6141794A (en) 1998-10-16 2000-10-31 Sun Microsystems, Inc. System and method for synchronizing access to shared variables in a virtual machine in a digital computer system
US6233678B1 (en) * 1998-11-05 2001-05-15 Hewlett-Packard Company Method and apparatus for profiling of non-instrumented programs and dynamic processing of profile data
US6275984B1 (en) * 1998-11-20 2001-08-14 Sega Of America, Inc. System and method for delaying indirect register offset resolution
US6212604B1 (en) * 1998-12-03 2001-04-03 Sun Microsystems, Inc. Shared instruction cache for multiple processors
US6249861B1 (en) * 1998-12-03 2001-06-19 Sun Microsystems, Inc. Instruction fetch unit aligner for a non-power of two size VLIW instruction
US6332215B1 (en) * 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US6209077B1 (en) 1998-12-21 2001-03-27 Sandia Corporation General purpose programmable accelerator board
US6901591B1 (en) * 2000-10-31 2005-05-31 Sun Microsystems, Inc. Frameworks for invoking methods in virtual machines
US7478224B2 (en) * 2005-04-15 2009-01-13 Atmel Corporation Microprocessor access of operand stack as a register file using native instructions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875336A (en) * 1997-03-31 1999-02-23 International Business Machines Corporation Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system
US5898885A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native stack-based instruction within a computer system
US5898850A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native mode-sensitive instruction within a computer system

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"CACAO- a 64 bit Java VM, just-in-time compiler", KRALL ET. AL., vol. 9, no. 11, November 1997 (1997-11-01), pages 1017 - 1030, XP002117590 *
DATABASE PROMPT "SGI Webforce 02 is a one-step Web authoring platform" *
INFO WORLD, 20 January 1997 (1997-01-20), pages IW4 *
KRALL A: "Efficient JavaVM just-in-time compilation", PROCEEDINGS. INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURESAND COMPILATION TECHNIQUES, XX, XX, 12 October 1998 (1998-10-12) - 18 October 1998 (1998-10-18), XX, pages 205 - 212, XP002117591 *

Also Published As

Publication number Publication date
EP1157323A2 (en) 2001-11-28
KR20010104687A (en) 2001-11-26
AU2165400A (en) 2000-06-26
WO2000034844A2 (en) 2000-06-15
US6332215B1 (en) 2001-12-18
US20060200801A1 (en) 2006-09-07
US20020066083A1 (en) 2002-05-30
US8185882B2 (en) 2012-05-22
JP2002532772A (en) 2002-10-02
US7080362B2 (en) 2006-07-18

Similar Documents

Publication Publication Date Title
WO2000034844A3 (en) Java virtual machine hardware for risc and cisc processors
WO2002031652A8 (en) Java hardware accelerator using microcode engine
EP1037145A3 (en) A hybrid just-in-time compiler that consumes minimal resources
MY124662A (en) Java runtime system with modified constant pool
IE851252L (en) Instruction prefetch system for conditional branch¹instruction for central processor unit
WO1999008175A3 (en) Universally accessible computing system
WO2005043335A3 (en) System for invoking a privileged function in a device
EP0263288A3 (en) Extended floating point operations supporting emulation of source instruction execution
WO1994009433A3 (en) A system for operating application software in a safety critical environment
EP0997816A3 (en) Method and apparatus for selecting ways to compile at runtime
MX9603917A (en) Low friction apparel.
WO2000041544A3 (en) Structural reinforcement for use in a shoe sole
BR9811110A (en) Absorbent article
WO2000016191A3 (en) Accurate method for inlining virtual calls
MY131818A (en) Data processing using multiple instruction sets.
EP0871110A3 (en) Branch prediction in computer system
WO2001080001A3 (en) Computer method and system for executing java computer programs
CA2283776A1 (en) Combining hardware and software to provide an improved microprocessor
TW353739B (en) Loadable hardware support
MY130960A (en) System for providing transitions between operating modes of a device
WO2002015003A3 (en) Method and apparatus for caching native code in a virtual machine interpreter
MY115760A (en) Method and system for preventing unauthorized access to a computer program
DK0392250T3 (en) Liquid preservative
WO2003083617A3 (en) Hardware-translator-based custom method invocation system and method
EP0377299A3 (en) An encapsulation system for a computer system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
ENP Entry into the national phase

Ref country code: JP

Ref document number: 2000 587240

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 1020017007190

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 1999965998

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 1020017007190

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1999965998

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1999965998

Country of ref document: EP

WWR Wipo information: refused in national office

Ref document number: 1020017007190

Country of ref document: KR