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

Reprogrammable instruction set accelerator using a plurality of programmable execution units and an instruction page table

Assignee: Xilinx Inc
•
Filing: 1995-06-07
•
Granted: 1998-05-05
•
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 programmed instruction providing an on chip reprogrammable instruction set accelerator RISA. The programmable execution units may be made using a field programmable gate array having a configuration store, and resources for accessing the configuration store to program the programmable execution unit. An instruction register is included in the data processor which holds a current instruction for execution, and is coupled to an instruction data path to supply the instruction to the defined instruction unit and to the programmable instruction units in parallel, through appropriate decoding resources. A RISA instruction page table is used to detect when an instruction in the sequence has not been configured for the RISAs on chip. When a RISA instruction page table miss is detected, the program is stopped and programmable execution unit configured with the new instruction. Techniques for compiling a program using both RISA and fixed instructions optimizes utilization of configurable resources in the system. Further, synthesis of RISA instructions can be carried out on the fly during the execution of other instructions by the system, or this synthesis can be done at compile time.

Inventors

  • 👤 Stephen M. Trimberger

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 01:09
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/38; G06F9/3802; G06F9/3877; G06F9/3885; G06F9/3893; G06F9/3895; G06F9/3897

Claims Analysis

Total Claims: 33
Claim 1
Independent Claim 74 words
A data processor comprising: internal buses for operand and result data; a defined execution unit coupled to the internal buses for execution of defined instructions; a plurality of separately configurable execution units coupled to the internal buses for execution of respective sets of programmed instructions; and a condition code register connected to at least one of the configurable execution units to receive condition codes from said at least one of the configurable execution units.
Claim 2
Dependent Claim 74 words
A data processor comprising: internal buses for operand and result data; a defined execution unit coupled to the internal buses for execution of defined instructions; a plurality of separately configurable execution units coupled to the internal buses for execution of respective sets of programmed instructions; and a condition code register connected to at least one of the configurable execution units to receive condition codes from said at least one of the configurable execution units.
Claim 3
Dependent Claim 41 words
The data processor of claim 1, wherein the internal buses include a first bus and a second bus, and the defined execution unit and the plurality of separately configurable execution units are connected in parallel across the first and second buses.
Claim 4
Dependent Claim 20 words
The data processor of claim 1, wherein the plurality of separately configurable execution units comprise a field programmable gate array.
Claim 5
Dependent Claim 39 words
The data processor of claim 1, including: an instruction register which holds a current instruction for execution, and an instruction data path supplying the instruction to the defined execution unit and to the plurality of separately configurable execution units.
Claim 6
Dependent Claim 14 words
The data processor of claim 4, wherein the instruction data path includes a decoder.
Claim 7
Dependent Claim 47 words
The data processor of claim 1, including: instruction fetching resources responsive to condition codes, wherein the condition code register is coupled with the instruction fetching resources and is connected to receive condition codes from the defined execution unit and from the plurality of separately configurable execution units.
Claim 8
Dependent Claim 35 words
The data processor of claim 1, including: an instruction state machine; and the plurality of separately configurable execution units include logic to signal the instruction state machine when execution of a programmed instruction is done.
Claim 9
Dependent Claim 94 words
The data processor of claim 1, including: an instruction register which holds instructions in sequence for execution, and an instruction data path supplying the instruction to the defined execution unit and to the plurality of separately configurable execution units; instruction management logic coupled with the instruction register which includes a store which stores identifiers for the programmed instructions in the respective sets of programmed instructions, and matching logic which matches incoming instructions with the instructions in the store to detect a programmed instruction miss in which an incoming instruction is not within the store.
Claim 10
Dependent Claim 42 words
The data processor of claim 8, wherein the instruction management logic includes instruction mapping logic to supply a pointer to a location storing configuration data for programmable execution units needed for the incoming instruction in the event of a programmed instruction miss.
Claim 11
Dependent Claim 29 words
The data processor of claim 8, wherein the identifiers for the programmed instructions indicate which of the plurality of separately configurable executions units is configured for the incoming instruction.
Claim 12
Dependent Claim 120 words
A data processor comprising: an instruction path; internal buses for operand and result data; a defined execution unit coupled to the internal buses and the instruction path for execution of defined instructions; a programmable execution unit coupled to the internal buses and the instruction path for execution of a set of programmed instructions; a condition code register connected to the programmable execution unit to receive condition codes from the programmable execution unit; and instruction management logic coupled with the instruction path which includes a store which stores identifiers for the set of programmed instructions, and matching logic which matches incoming instructions with the set to detect a programmed instruction miss in which an incoming instruction is not within the set.
Claim 13
Dependent Claim 120 words
A data processor comprising: an instruction path; internal buses for operand and result data; a defined execution unit coupled to the internal buses and the instruction path for execution of defined instructions; a programmable execution unit coupled to the internal buses and the instruction path for execution of a set of programmed instructions; a condition code register connected to the programmable execution unit to receive condition codes from the programmable execution unit; and instruction management logic coupled with the instruction path which includes a store which stores identifiers for the set of programmed instructions, and matching logic which matches incoming instructions with the set to detect a programmed instruction miss in which an incoming instruction is not within the set.
Claim 14
Dependent Claim 43 words
The data processor of claim 11, wherein the instruction management logic includes instruction mapping logic to supply a pointer to a location storing configuration data for the programmable execution unit needed for the incoming instruction in the event of a programmed instruction miss.
Claim 15
Dependent Claim 57 words
The data processor of claim 11, wherein at least one internal bus is divided into a first section and a second section, wherein the first section is coupled to the defined execution unit and not the programmable execution unit, and wherein the second section is coupled to the programmable execution unit and not the defined execution unit.
Claim 16
Dependent Claim 42 words
The data processor of claim 1, wherein the internal buses include a first bus and a second bus, and the defined execution unit and at least one configurable execution unit are connected in parallel across the first bus and the second bus.
Claim 17
Dependent Claim 19 words
The data processor of claim 1, wherein at least one configurable execution unit comprises a field programmable gate array.
Claim 18
Dependent Claim 13 words
The data processor of claim 11, wherein the instruction path includes a decoder.
Claim 19
Dependent Claim 46 words
The data processor of claim 1, including: an instruction fetching resource responsive to condition codes; and a condition code register, coupled with the instruction fetching resource, and connected to receive condition codes from the defined execution unit and from the at least one configurable execution unit.
Claim 20
Dependent Claim 32 words
The data processor of claim 1, including: an instruction state machine; and the programmable execution unit includes logic to signal the instruction state machine when execution of a programmed instruction is done.
Claim 21
Dependent Claim 18 words
The data processor of claim 1, wherein the programmable execution unit receives configuration information through the internal buses.
Claim 22
Dependent Claim 23 words
The data processor of claim 1, wherein the programmable execution unit receives configuration information through a configuration port independent of the internal buses.
Claim 23
Dependent Claim 18 words
The data processor of claim 1, including: logic which indicates that the programmable execution unit is being configured.
Claim 24
Dependent Claim 170 words
A microprocessor, comprising: internal buses for operand and result data; a defined execution unit coupled to the internal buses for execution of defined instructions; a programmable execution unit coupled to the internal buses for execution of a set of programmed instructions; an instruction register which holds instructions in sequence for execution, and an instruction path from the instruction register, including a decoder supplying control signals in response to instructions to the defined execution unit and to the programmable execution unit; an instruction state machine, responsive to condition codes, which supply instructions to the instruction register; a condition code register, coupled with the instruction fetching resources, and connected to receive condition codes from the defined execution unit and from the programmable execution unit; and instruction management logic coupled with the instruction path which includes a store which stores identifiers for the set of programmed instructions, and matching logic which matches incoming instructions with the set to detect a programmed instruction miss in which an incoming instruction is not within the set.
Claim 25
Dependent Claim 170 words
A microprocessor, comprising: internal buses for operand and result data; a defined execution unit coupled to the internal buses for execution of defined instructions; a programmable execution unit coupled to the internal buses for execution of a set of programmed instructions; an instruction register which holds instructions in sequence for execution, and an instruction path from the instruction register, including a decoder supplying control signals in response to instructions to the defined execution unit and to the programmable execution unit; an instruction state machine, responsive to condition codes, which supply instructions to the instruction register; a condition code register, coupled with the instruction fetching resources, and connected to receive condition codes from the defined execution unit and from the programmable execution unit; and instruction management logic coupled with the instruction path which includes a store which stores identifiers for the set of programmed instructions, and matching logic which matches incoming instructions with the set to detect a programmed instruction miss in which an incoming instruction is not within the set.
Claim 26
Dependent Claim 58 words
The microprocessor of claim 22, wherein the instruction management logic includes instruction mapping logic to supply a pointer to a location storing configuration data for the programmable execution unit needed for the incoming instruction in the event of a programmed instruction miss; and resources for accessing the programmable execution unit to define programmed instructions using the configuration data.
Claim 27
Dependent Claim 47 words
The microprocessor of claim 23, wherein the programmable execution unit comprises field programmable gate array logic having a configuration store, and the resources for accessing the programmable execution unit include a data path to the configuration store to program the programmable execution unit through the internal buses.
Claim 28
Dependent Claim 49 words
The microprocessor of claim 23, wherein the programmable execution unit comprises field programmable gate array logic having a configuration store, and the resources for accessing the programmable execution unit include a configuration port independent of the internal buses for accessing the configuration store to program the programmable execution unit.
Claim 29
Dependent Claim 26 words
The microprocessor of claim 22, wherein: the programmable execution unit includes logic to signal the instruction state machine when execution of a programmed instruction is done.
Claim 30
Dependent Claim 37 words
The microprocessor of claim 22, wherein the internal buses include a first bus and a second bus, and the defined execution unit and the programmable execution unit are connected in parallel across the first and second buses.
Claim 31
Dependent Claim 17 words
The microprocessor of claim 22, including: logic which indicates that the programmable execution unit is being configured.
Claim 32
Dependent Claim 79 words
A data processor comprising: internal buses for operand and result data; a defined execution unit coupled to the internal buses for execution of defined instructions; a plurality of separately configurable execution units coupled to the internal buses for execution of respective sets of programmed instructions; and a configuration data bus coupled to at least one configurable execution unit whereby the at least one configurable execution unit is configured with data received from a source external to the data processor.
Claim 33
Dependent Claim 79 words
A data processor comprising: internal buses for operand and result data; a defined execution unit coupled to the internal buses for execution of defined instructions; a plurality of separately configurable execution units coupled to the internal buses for execution of respective sets of programmed instructions; and a configuration data bus coupled to at least one configurable execution unit whereby the at least one configurable execution unit is configured with data received from a source external to the data processor.

References Cited (Backward Citations)

USRE34363E Cited
US5517628A Cited
US5321845A Cited
US5109503A Cited
US5511173A Cited
US5471593A Cited
US5301344A Cited
US5336950A Cited
US5386518A Cited
US5430734A Cited
US5537601A Cited
US5535406A Cited
US5574930A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag