← Back to Patent Explorer
US6031992A Expired / Lapsed US ⏱️ 0.0 years remaining

Combining hardware and software to provide an improved microprocessor

Assignee: Intellectual Ventures Holding 81 LLC
•
Filing: 1996-07-05
•
Granted: 2000-02-29
•
Expires: 2016-07-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A microprocessor for a host computer designed to execute target application programs for a target computer having a target instruction set including the combination of code morphing software, and morph host processing hardware designed to execute instructions of a host instruction set, the combination of the code morphing software and the morph host processing hardware comprising means to translate a set of target instructions into instructions of a host instruction set, means to optimize the instructions of the host instruction set translated from the target application program speculating upon the occurrence of a condition, means to determine under control of the code morphing software official state of the target computer which existed at the beginning of a translation of a set of target instructions during execution of the target application program by the microprocessor, means for updating state of the target computer from state of the host computer when a set of host instructions executes in accordance with the speculation, means to detect failure of the condition during the execution of the set of host instructions, means for updating state of the host computer from state of the target computer when a set of host instructions fails to execute in accordance with the speculation, and means to translate a new set of host instructions without the speculation when a set of host instructions fails to execute in accordance with the speculation.

Inventors

  • 👤 Robert F. Cmelik
  • 👤 David R. Ditzel
  • 👤 Edmund J. Kelly
  • 👤 Colin B. Hunter
  • 👤 Douglas A. Laird
  • 👤 Malcolm John Wing
  • 👤 Grzegorz B. Zyner

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 19:15
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F9/3812; G06F9/3017; G06F9/30174; G06F9/44; G06F9/455; G06F9/45504

Claims Analysis

Total Claims: 33
Claim 1
Independent Claim 36 words
A microprocessor comprising the combination of translation software, and host hardware, the translation software running directly on the host hardware, the translation software responding to target instructions by generating instructions to run on the host hardware.
Claim 2
Dependent Claim 36 words
A microprocessor comprising the combination of translation software, and host hardware, the translation software running directly on the host hardware, the translation software responding to target instructions by generating instructions to run on the host hardware.
Claim 3
Dependent Claim 24 words
A microprocessor as claimed in claim 1 in which the translation software is code morphing software and the host hardware is morph host hardware.
Claim 4
Dependent Claim 21 words
A microprocessor as claimed in claim 2 in which the enhanced morph host hardware comprises a very long instruction word microprocessor.
Claim 5
Dependent Claim 96 words
A microprocessor comprising the combination of translation software, and host hardware, in which the translation software is code morphing software and the host hardware is morph host hardware, in which the code morphing software comprises: processes to translate target instructions of a program written for a processor having a first instruction set into primitive instructions capable of execution on the enhanced morph host hardware, and processes to store the host primitive instructions as host translations in a translation buffer from which they may be recalled and executed by the morph host hardware any number of times.
Claim 6
Dependent Claim 96 words
A microprocessor comprising the combination of translation software, and host hardware, in which the translation software is code morphing software and the host hardware is morph host hardware, in which the code morphing software comprises: processes to translate target instructions of a program written for a processor having a first instruction set into primitive instructions capable of execution on the enhanced morph host hardware, and processes to store the host primitive instructions as host translations in a translation buffer from which they may be recalled and executed by the morph host hardware any number of times.
Claim 7
Dependent Claim 25 words
A microprocessor as claimed in claim 4 in which the code morphing software further comprises processes to reorder, reschedule and optimize the primitive host instructions.
Claim 8
Dependent Claim 221 words
A microprocessor comprising the combination of translation software, in which the translation software is code morphing software, and host hardware, in which the host hardware is morph host hardware, and in which the enhanced morph host hardware comprises: a store buffer for data being transferred to memory, the store buffer including: means responding to execution of a host translation without an exception to commit data stored in the store buffer to memory, and means responding to generation of an exception or error during execution of a host translation to dump data in the store buffer without committing it to memory; an execution unit comprising: a set of working registers in the execution unit larger than a set of registers required by a target processor in a target processor execution unit; a set of target registers for holding official register state of a target processor developed in processing a target program; and in which the code morphing software comprises: means responding to execution of a host translation without an exception or error during execution of a host translation for transferring state from the sets of working registers to the target registers, and means responding to generation of an exception or error during execution of a host translation for transferring state from the sets of target registers to the sets of working registers.
Claim 9
Dependent Claim 221 words
A microprocessor comprising the combination of translation software, in which the translation software is code morphing software, and host hardware, in which the host hardware is morph host hardware, and in which the enhanced morph host hardware comprises: a store buffer for data being transferred to memory, the store buffer including: means responding to execution of a host translation without an exception to commit data stored in the store buffer to memory, and means responding to generation of an exception or error during execution of a host translation to dump data in the store buffer without committing it to memory; an execution unit comprising: a set of working registers in the execution unit larger than a set of registers required by a target processor in a target processor execution unit; a set of target registers for holding official register state of a target processor developed in processing a target program; and in which the code morphing software comprises: means responding to execution of a host translation without an exception or error during execution of a host translation for transferring state from the sets of working registers to the target registers, and means responding to generation of an exception or error during execution of a host translation for transferring state from the sets of target registers to the sets of working registers.
Claim 10
Dependent Claim 152 words
A microprocessor as claimed in claim 6: in which the means responding to execution of a host translation without an exception or error during execution of a host translation for transferring state from the sets of working registers to the target registers comprises a commit host instruction, in which the means responding to generation of an exception or error during execution of a host translation for transferring state from the sets of target registers to the sets of working registers comprises a rollback host instruction, and in which the means responding to execution of a host translation without an exception to commit data stored in the store buffer to memory, and the means responding to generation of an exception or error during execution of a host translation to dump data in the store buffer without committing it to memory function in response to the commit host instruction and the rollback host instruction.
Claim 11
Dependent Claim 24 words
A microprocessor as claimed in claim 6 in which the enhanced morph host hardware comprises means indicating that a target instruction has been translated.
Claim 12
Dependent Claim 34 words
A microprocessor as claimed in claim 6 in which the means indicating that a target instruction has been translated includes an address translation cache storing an indication that a target instruction has been translated.
Claim 13
Dependent Claim 34 words
A microprocessor as claimed in claim 9 in which the means indicating that an instruction is normal or abnormal includes an address translation cache storing an indication that a target instruction has been translated.
Claim 14
Dependent Claim 24 words
A microprocessor as claimed in claim 6 in which the enhanced morph host hardware comprises means indicating that an instruction is normal or abnormal.
Claim 15
Dependent Claim 29 words
A microprocessor as claimed in claim 6 in which the enhanced morph host hardware comprises means indicating that data at a memory address has been moved to a register.
Claim 16
Dependent Claim 60 words
A microprocessor as claimed in claim 12 in which the means indicating that data at a memory address has been moved to a register includes means storing an indication that data at the address has been moved to a register comprises means for comparing addresses to be executed with an address of data which has been moved to a register.
Claim 17
Dependent Claim 214 words
A microprocessor for a host computer designed to execute target application programs for a target computer having a target instruction set comprising the combination of: code morphing software, and morph host processing hardware designed to execute instructions of a host instruction set, the combination of the code morphing software and the morph host processing hardware comprising: means to translate a set of target instructions into instructions of a host instruction set speculating upon the occurrence of a condition, means to determine under control of the code morphing software official state of the target computer which existed at the beginning of a translation of a set of target instructions during execution of the target program by the microprocessor, means for updating state of the target computer from state of the host computer when a set of host instructions executes in accordance with the speculation, means to detect failure of the condition during the execution of the set of host instructions, means for updating state of the host computer from state of the target computer when a set of host instructions fails to execute in accordance with the speculation, and means to translate a new set of host instructions without the speculation when a set of host instructions fails to execute in accordance with the speculation.
Claim 18
Dependent Claim 214 words
A microprocessor for a host computer designed to execute target application programs for a target computer having a target instruction set comprising the combination of: code morphing software, and morph host processing hardware designed to execute instructions of a host instruction set, the combination of the code morphing software and the morph host processing hardware comprising: means to translate a set of target instructions into instructions of a host instruction set speculating upon the occurrence of a condition, means to determine under control of the code morphing software official state of the target computer which existed at the beginning of a translation of a set of target instructions during execution of the target program by the microprocessor, means for updating state of the target computer from state of the host computer when a set of host instructions executes in accordance with the speculation, means to detect failure of the condition during the execution of the set of host instructions, means for updating state of the host computer from state of the target computer when a set of host instructions fails to execute in accordance with the speculation, and means to translate a new set of host instructions without the speculation when a set of host instructions fails to execute in accordance with the speculation.
Claim 19
Dependent Claim 35 words
A microprocessor for a host computer as claimed in claim 14 further comprising means to optimize the instructions of the host instruction set translated from the target program speculating upon the occurrence of a condition.
Claim 20
Dependent Claim 52 words
A microprocessor for a host computer as claimed in claim 14 in which the means to translate a set of target instructions into instructions of a host instruction set speculating upon the occurrence of a condition speculates that no exception or error will occur during the translation of the set of instructions.
Claim 21
Dependent Claim 67 words
A microprocessor for a host computer as claimed in claim 14 in which the means to determine under control of the code morphing software official state of the target computer which existed at the beginning of a translation of a set of target instructions comprises means storing official state of the target computer which existed at the beginning of a translation of a set of target instructions.
Claim 22
Dependent Claim 42 words
A microprocessor for a host computer as claimed in claim 17 in which the means storing official state of the target computer which existed at the beginning of a translation of a set of target instructions comprises a set of target registers.
Claim 23
Dependent Claim 68 words
A microprocessor for a host computer as claimed in claim 17 in which the means for updating state of the target computer from state of the host computer when a set of host instructions executes in accordance with the speculation comprises means for transferring host state to the means storing official state of the target computer when a set of host instructions executes without an error or exception.
Claim 24
Dependent Claim 35 words
A microprocessor for a host computer as claimed in claim 14 in which the means to detect failure of the condition during the execution of the set of host instructions comprises means generating an exception.
Claim 25
Dependent Claim 21 words
A microprocessor for a host computer as claimed in claim 20 in which the means generating an exception is hardware means.
Claim 26
Dependent Claim 21 words
A microprocessor for a host computer as claimed in claim 20 in which the means generating an exception is software means.
Claim 27
Dependent Claim 69 words
A microprocessor for a host computer as claimed in claim 14 in which the means for updating state of the host computer from state of the target computer when a set of host instructions fails to execute in accordance with the speculation comprises means transferring official state of the target computer which existed at the beginning of a translation of a set of target instructions to update host state.
Claim 28
Dependent Claim 80 words
A microprocessor for a host computer as claimed in claim 14 in which the means to translate a new set of host instructions without the speculation when a set of host instructions fails to execute in accordance with the speculation comprises means beginning at a target instruction which existed at the beginning of a translation of a set of target instructions which failed to translate each target instruction in order saving host state as official state of the target computer.
Claim 29
Independent Claim 160 words
A method of executing target programs designed to be executed by a target computer having a target instruction set on a host computer having a host processor capable of executing instructions from a host instruction set different than the target instruction set, the method comprising: storing state of the target computer as it exists at the beginning of translating a target instruction; translating target instructions commanding an operation into a set of host instructions for executing on the host processor the operation commanded by the target instruction; storing the host instructions as a host translation in a translation buffer; executing the host translation on the host processor; updating state stored for the target computer from state of the host computer when the execution of a host translation does not generate an exception or error; and updating state of the host computer from stored state of the target computer when the execution of the host translation generates an exception or error.
Claim 30
Independent Claim 160 words
A method of executing target programs designed to be executed by a target computer having a target instruction set on a host computer having a host processor capable of executing instructions from a host instruction set different than the target instruction set, the method comprising: storing state of the target computer as it exists at the beginning of translating a target instruction; translating target instructions commanding an operation into a set of host instructions for executing on the host processor the operation commanded by the target instruction; storing the host instructions as a host translation in a translation buffer; executing the host translation on the host processor; updating state stored for the target computer from state of the host computer when the execution of a host translation does not generate an exception or error; and updating state of the host computer from stored state of the target computer when the execution of the host translation generates an exception or error.
Claim 31
Dependent Claim 33 words
A method of executing target application programs as claimed in claim 25 comprising the additional step of optimizing and rescheduling host instructions before storing the set of host instructions as a host translation.
Claim 32
Dependent Claim 152 words
A method of executing target application programs as claimed in claim 25 comprising the additional steps of: translating each target instructions commanding an operation into a set of host instructions for executing on the host processor each target instruction of the operation commanded by the target instructions without reordering, optimizing, or rescheduling the primitive instructions to generate a host instruction; storing each set of host instructions in the translation buffer as a host translation as the set is completed; storing and updating state of the host computer after each target instruction is translated to a set of host instructions, executing each host translation on the host processor; updating state stored for the target computer from state of the host computer when the execution of a host translation does not generate an exception or error; and taking any exception or error generated when executing the host instruction generates an exception or an error.
Claim 33
Dependent Claim 44 words
A method of executing target application programs as claimed in claim 25 comprising the additional step of optimizing and rescheduling host instructions after storing the set of host instructions as a host translation if the set of host instructions is to be reexecuted often.

References Cited (Backward Citations)

US5574927A Cited
US5838948A Cited
US5768567A Cited
US5721927A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-02-28 2003-08-30 2004-02-29 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-02-28 2007-08-30 2008-02-29 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-02-28 2011-08-30 2012-02-29 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag