Patent US4051256A successfully refreshed from Google Patents.
Patent US5752035A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5752035A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for compiling and executing programs for reprogrammable instruction set accelerator

Assignee: Xilinx Inc
•
Filing: 1995-06-07
•
Granted: 1998-05-12
•
Expires: 2015-06-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A microprocessor comprises a defined execution unit coupled to internal buses of the processor for execution of a predefined, fixed set of instructions, combined with one or more programmable execution units coupled to the internal buses for execution of a set of program instructions, to provide an on chip reprogrammable instruction set accelerator RISA. Reprogrammable execution units may be made using field programmable gate array technology having configuration stores. Techniques for translating a computer program into executable code relying on the RISA involve providing a library of defined and programmed instructions, and compiling a program using the library to produce an executable version of the program using both defined and programmed instructions. The executable version can be optimized to conserve configuration resources for the programmable execution unit, or to optimize speed of execution. Thus, seldom used programmed instructions in the final object code can be replaced with segments of defined instructions to conserve configuration resources. Alternatively, specially prepared sets of programmed instructions can be used to compile programs. A variety of versions are formed using separate sets of programmed instructions and the best final version is selected. In addition, commonly used segments of instructions can be synthesized into a programmed instruction dynamically.

Inventors

  • 👤 Stephen M. Trimberger

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 12:26
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/30145; G06F15/00; G06F15/76; G06F15/78; G06F15/7867; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/447; G06F9/30094; G06F9/3016; G06F9/30167; G06F9/30181; G06F9/30196; G06F9/38; G06F9/3802; G06F9/3885; G06F9/3893; G06F9/3895; G06F9/3897

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 61 words
A method for translating a computer program to executable code, comprising: providing a library including defined instructions executable by a defined execution unit, and including programmed instructions executable by a configurable execution unit configured for execution of the programmed instructions; and compiling the program using both defined and programmed instructions from the library to produce an executable version of the program.
Claim 2
Independent Claim 61 words
A method for translating a computer program to executable code, comprising: providing a library including defined instructions executable by a defined execution unit, and including programmed instructions executable by a configurable execution unit configured for execution of the programmed instructions; and compiling the program using both defined and programmed instructions from the library to produce an executable version of the program.
Claim 3
Dependent Claim 55 words
The method of claim 1, wherein the step of compiling includes: generating preliminary object code using the library; identifying programmed instructions in the preliminary object code according to a criterion relevant to efficiency of use of resources to configure the configurable execution unit; replacing identified programmed instructions with defined instructions to produce the executable version.
Claim 4
Dependent Claim 49 words
The method of claim 1, wherein the library includes a plurality of sets of programmed instructions, and the step of compiling includes: generating preliminary object code versions using respective sets of programmed instructions in the library; and selecting one of the preliminary object code versions as the executable version.
Claim 5
Independent Claim 116 words
A method for translating a computer program to executable code, comprising: providing a library of defined instructions, including instructions executable by a defined execution unit; providing a library of programmed instructions, including instructions executable by a configurable execution unit; generating preliminary object code using the library of defined instructions; identifying a sequence of instructions in the preliminary object code to be replaced by a programmed instruction from the library of programmed instructions; and replacing the identified sequence of instructions in the preliminary object code with the programmed instruction to produce the executable version, the programmed instruction being executable by the configurable execution unit when the configurable execution unit is configured for execution of the programmed instruction.
Claim 6
Independent Claim 116 words
A method for translating a computer program to executable code, comprising: providing a library of defined instructions, including instructions executable by a defined execution unit; providing a library of programmed instructions, including instructions executable by a configurable execution unit; generating preliminary object code using the library of defined instructions; identifying a sequence of instructions in the preliminary object code to be replaced by a programmed instruction from the library of programmed instructions; and replacing the identified sequence of instructions in the preliminary object code with the programmed instruction to produce the executable version, the programmed instruction being executable by the configurable execution unit when the configurable execution unit is configured for execution of the programmed instruction.
Claim 7
Dependent Claim 35 words
The method of claim 4, including after the step of identifying: synthesizing, based on the identified sequence, a programmed instruction and configuration data for configuring the configurable execution unit to execute the synthesized programmed instruction.
Claim 8
Dependent Claim 35 words
The method of claim 4, wherein the step of identifying includes generating a profile of the preliminary object code and selecting based on the profile, a commonly used sequence of instructions as the identified sequence.
Claim 9
Dependent Claim 18 words
The method of claim 4, wherein the library includes prespecified programmed instructions executable by a configurable execution unit.
Claim 10
Independent Claim 88 words
A method for executing a computer program including a particular function, comprising: providing a defined instruction execution unit; providing a programmable instruction execution unit connected in parallel with the defined instruction execution unit; programming the programmable instruction execution unit to execute at least a portion of the particular function in response to a programmed instruction; supplying a sequence of instructions including defined instructions and the programmed instruction; and executing the defined instructions in the defined instruction execution unit and the programmed instruction in the programmable instruction execution unit.
Claim 11
Independent Claim 88 words
A method for executing a computer program including a particular function, comprising: providing a defined instruction execution unit; providing a programmable instruction execution unit connected in parallel with the defined instruction execution unit; programming the programmable instruction execution unit to execute at least a portion of the particular function in response to a programmed instruction; supplying a sequence of instructions including defined instructions and the programmed instruction; and executing the defined instructions in the defined instruction execution unit and the programmed instruction in the programmable instruction execution unit.
Claim 12
Dependent Claim 30 words
The method of claim 8, including: identifying a sequence of instructions in the program corresponding to the particular function; and replacing the identified sequence of instructions with a programmed instruction.
Claim 13
Dependent Claim 56 words
The method of claim 9, including after the step of identifying: synthesizing, based on the identified sequence, a programmed instruction and configuration data for configuring the configurable execution unit to execute the synthesized programmed instruction; and wherein the step of programming the programmable execution unit includes configuring the programmable execution unit with the synthesized configuration data.
Claim 14
Dependent Claim 35 words
The method of claim 9, wherein the step of identifying includes generating a profile of the preliminary object code and selecting based on the profile, a commonly used sequence of instructions as the particular function.
Claim 15
Independent Claim 62 words
A method for executing a computer program comprising: providing a data processing system including a fixed instruction execution unit and a programmable instruction execution unit; identifying a one or more instructions in the program to be replaced by a programmed instruction; replacing the identified one or more instructions with the programmed instruction; and executing the programmed instruction in the programmable execution unit.
Claim 16
Independent Claim 62 words
A method for executing a computer program comprising: providing a data processing system including a fixed instruction execution unit and a programmable instruction execution unit; identifying a one or more instructions in the program to be replaced by a programmed instruction; replacing the identified one or more instructions with the programmed instruction; and executing the programmed instruction in the programmable execution unit.
Claim 17
Dependent Claim 36 words
The method of claim 12, including after the step of identifying: synthesizing based on the identified one or more instructions, a programmed instruction and configuration data for the programmable execution unit to execute the programmed instruction.
Claim 18
Dependent Claim 37 words
The method of claim 13, wherein the steps of identifying and synthesizing are executed during run time of the program; and including: configuring the programmable execution unit using the configuration data for execution of the programmed instruction.
Claim 19
Dependent Claim 27 words
The method of claim 13, wherein the step of identifying includes monitoring an instruction cache in the data processing system to detect commonly used sets of instructions.
Claim 20
Dependent Claim 37 words
The method of claim 15, wherein the steps of identifying and synthesizing are executed during run time of the program; and including: configuring the programmable execution unit using the configuration data for execution of the programmed instruction.

References Cited (Backward Citations)

US5423051A Cited
US5361373A Cited
US5550839A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-05-11 2001-11-10 2002-05-12 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-05-11 2005-11-10 2006-05-12 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-05-11 2009-11-10 2010-05-12 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag