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

Method and apparatus for operating a data processor to execute software written using a foreign instruction set

Assignee: NXP USA Inc
•
Filing: 1997-02-25
•
Granted: 2000-03-28
•
Expires: 2017-02-25
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An instruction set interpreter and translator provides dynamic idiom recognition by use of a programmable hash table. Idioms are sequences of consecutive instructions that occur frequently during execution. Interpretive execution of such idioms is optimized to attain high performance. Idioms are recognized dynamically during interpretive execution. A programmable hash table is extended with entries corresponding to newly recognized idioms as their frequency of occurrence exceeds a threshold.

Inventors

  • 👤 Mauricio Breternitz, Jr.

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 18:46
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/455; G06F9/45504

Claims Analysis

Total Claims: 13
Claim 1
Independent Claim 159 words
A software system for operating a data processor with a native mode of instructions to execute a plurality of foreign instructions, said software system comprising: A) a set of computer instructions for fetching a first foreign instruction and a subsequent second foreign instruction, B) a set of computer instructions for determining whether a translation in a hash table exists for a sequence of said first and second foreign instructions, wherein said translation comprises at least one native instruction an execution of which is equivalent to an execution of said first and second foreign instructions, C) a set of computer instructions for selectively creating a new translation for said first and second foreign instructions and adding said new translation to said hash table if said translation does not exist, D) a set of computer instructions for executing said new translation, and E) a machine readable medium containing the sets A-D of computer readable instructions encoded in a machine readable format.
Claim 2
Dependent Claim 159 words
A software system for operating a data processor with a native mode of instructions to execute a plurality of foreign instructions, said software system comprising: A) a set of computer instructions for fetching a first foreign instruction and a subsequent second foreign instruction, B) a set of computer instructions for determining whether a translation in a hash table exists for a sequence of said first and second foreign instructions, wherein said translation comprises at least one native instruction an execution of which is equivalent to an execution of said first and second foreign instructions, C) a set of computer instructions for selectively creating a new translation for said first and second foreign instructions and adding said new translation to said hash table if said translation does not exist, D) a set of computer instructions for executing said new translation, and E) a machine readable medium containing the sets A-D of computer readable instructions encoded in a machine readable format.
Claim 3
Dependent Claim 30 words
A method of manufacturing the machine readable medium in claim 1 which comprises the step of: encoding the software system in a machine readable format in the machine readable medium.
Claim 4
Independent Claim 149 words
A method of operating a data processor capable of executing a native instruction set to execute a plurality of instructions written in a foreign instruction set, comprising the steps of: fetching a first foreign instruction; fetching a subsequent second foreign instruction; determining whether a translation in a hash table exists for a sequence of said first and second foreign instructions, wherein said translation comprises at least one native instruction an execution of which is equivalent to an execution of said first and second foreign instructions; if said translation exists, executing said translation by providing said at least one native instruction to the data processor; if said translation does not exist, selectively performing the steps of: creating a new translation for said first and second foreign instructions; adding said new translation to said hash table; and executing said new translation by providing said new translation to th e data processor.
Claim 5
Independent Claim 149 words
A method of operating a data processor capable of executing a native instruction set to execute a plurality of instructions written in a foreign instruction set, comprising the steps of: fetching a first foreign instruction; fetching a subsequent second foreign instruction; determining whether a translation in a hash table exists for a sequence of said first and second foreign instructions, wherein said translation comprises at least one native instruction an execution of which is equivalent to an execution of said first and second foreign instructions; if said translation exists, executing said translation by providing said at least one native instruction to the data processor; if said translation does not exist, selectively performing the steps of: creating a new translation for said first and second foreign instructions; adding said new translation to said hash table; and executing said new translation by providing said new translation to th e data processor.
Claim 6
Dependent Claim 46 words
The method of claim 3 wherein said step of selectively performing said steps of creating, adding, and executing comprises the step of selectively performing said steps of creating, adding, and executing if a frequency of occurrence of said first and second foreign instructions exceeds a threshold.
Claim 7
Independent Claim 90 words
A method operating a data processor capable of executing a native instruction set to execute a plurality of instructions written in a foreign instruction set, comprising the steps of: fetching a first foreign instruction; fetching a subsequent second foreign instruction; selectively translating a sequence of said first and second foreign instructions into a new translation, wherein said new translation comprises at least one native instruction an execution of which is equivalent to an execution of said first and second foreign instructions; and storing said new translation in a hash table.
Claim 8
Independent Claim 90 words
A method operating a data processor capable of executing a native instruction set to execute a plurality of instructions written in a foreign instruction set, comprising the steps of: fetching a first foreign instruction; fetching a subsequent second foreign instruction; selectively translating a sequence of said first and second foreign instructions into a new translation, wherein said new translation comprises at least one native instruction an execution of which is equivalent to an execution of said first and second foreign instructions; and storing said new translation in a hash table.
Claim 9
Dependent Claim 44 words
The method of claim 3 wherein said step of translating comprises the step of selectively translating said sequence of said first and second foreign instructions into said new translation if a frequency of occurrence of said first and second foreign instructions exceeds a threshold.
Claim 10
Dependent Claim 34 words
The method of claim 5 further comprising the steps of: fetching a second sequence of said first and second foreign instructions; fetching said new translation from said hash table; and executing said new translation.
Claim 11
Dependent Claim 153 words
A data processing system capable of executing a plurality of foreign instructions comprising a central processing unit adapted to execute a native mode instruction set and an instruction path coprocessor coupled to the central processing unit which provides native instructions to the central processing unit in response to said central processing unit initiating an instruction fetch on a foreign instruction, the improvement wherein: the instruction path coprocessor includes a hash table; and the instruction path coprocessor selectively translates consecutive first and second foreign instructions into a new translation, wherein said new translation comprises at least one native instruction an execution of which is equivalent to an execution of said first and second foreign instructions, stores said new translation in said hash table, and thereafter provides said at least one native instruction to said central processing unit in response to said central processing unit initiating consecutive fetches of said first and second foreign instructions.
Claim 12
Dependent Claim 153 words
A data processing system capable of executing a plurality of foreign instructions comprising a central processing unit adapted to execute a native mode instruction set and an instruction path coprocessor coupled to the central processing unit which provides native instructions to the central processing unit in response to said central processing unit initiating an instruction fetch on a foreign instruction, the improvement wherein: the instruction path coprocessor includes a hash table; and the instruction path coprocessor selectively translates consecutive first and second foreign instructions into a new translation, wherein said new translation comprises at least one native instruction an execution of which is equivalent to an execution of said first and second foreign instructions, stores said new translation in said hash table, and thereafter provides said at least one native instruction to said central processing unit in response to said central processing unit initiating consecutive fetches of said first and second foreign instructions.
Claim 13
Dependent Claim 50 words
The data processing system of claim 8 wherein said instruction path coprocessor translates said sequence of said first and second foreign instructions into said new translation and stores said new translation in said hash table if a frequency of occurrence of said first and second foreign instructions exceeds a threshold.

References Cited (Backward Citations)

US5551015A Cited
US5574873A Cited
US5742794A Cited
US5758140A Cited
US5802373A Cited
US5842017A Cited
US5768593A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag