IP Library Granted Patent US 7,493,470
Granted Patent B1
US 7,493,470 · App. 10/313,548 · Granted Feb 17, 2009

Processor apparatus and methods optimized for control applications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,493,470
App. No.
10/313,548
Granted
Feb 17, 2009
Kind
B1
Abstract

Apparatus and methods for real-time control using a data processor. In one aspect, the invention comprises an improved processor having one or more extension instructions (and associated supporting pipeline hardware) which are specially adapted for use in a real-time control algorithm running on the processor. In one exemplary embodiment, the processor is a 32-bit pipelined RISC device having custom multiply (CMUL) and multiply-accumulate (CMAC) instructions added to the extension instruction set to optimize algorithm performance in real-time linear time-invariant (LTI) applications. Specialized extension hardware, and methods for generating a processor design adapted for real-time control applications are also disclosed.

Claims (93)

1. An apparatus comprising:

a user-configured and extended digital processor core having a pipeline, comprising: a base instruction set, said set comprising a plurality of instructions adapted to run on said core;

at least one extension instruction adapted to run on said core, said at least one extension instruction being user-designated, and optimized for real-time control applications; and

extension hardware operatively coupled to said pipeline of said core, said extension hardware facilitating the running of said at least one extension instruction by said core;

a storage device in data communication with said processor core; and

at least one algorithm disposed at least partly in said storage device, said at least one algorithm being adapted to provide an output useful for real-time control applications based on at least one input and a plurality of state variables, said algorithm utilizing said at least one extension instruction to optimize the operation thereof;

wherein said base instruction set comprises:

a plurality of first instructions having a first length;

a plurality of second instructions having a second length; and

wherein said processor core further comprises logic adapted to decode and process both said first length and second length instructions from a single program having both first and second length instructions contained therein, wherein said first length is less than said second length; and

said first instructions occur more frequently within said single program than said second instructions.

2. The apparatus of claim 1 , wherein said algorithm is adapted to perform iterative calculations within a loop, said act of performing iterative calculations performed according to the method, comprising:

reading a new input sample;

calculating the output value for the current sampling period;

updating a plurality of internal variables; and

determining a partial product.

3. The apparatus of claim 1 , wherein said at least one extension instruction comprises an extension instruction adapted to perform a signed multiplication of a coefficient by a state variable, and add the result to the value held by an accumulator of an arithmetic logic unit.

4. The apparatus of claim 1 , wherein said extension instruction is optimized for iterative performance of a multiplication and addition operation.

5. The apparatus of claim 1 , wherein said at least one extension instruction is adapted to perform primary functions related to said real-time control applications, and said base instruction set is adapted to perform secondary functions associated with said real-time control applications.

6. The apparatus of claim 5 , wherein said primary functions comprise at least repeated signed multiplication of a coefficient by a state variable, and add the result to the value held by an accumulator of an arithmetic logic unit.

7. The apparatus of claim 6 , wherein said secondary functions relate to a state-space control system model.

8. An apparatus comprising:

a user-configured and extended digital processor core, comprising:

a base instruction set, said set comprising a plurality of instructions adapted to run on said core;

at least one extension instruction adapted to run on said core, said at least one extension instruction being user-designated, and optimized for real-time control applications;

a pipeline apparatus, comprising:

an instruction fetch stage;

an instruction decode stage operatively coupled downstream of said fetch stage;

an execution stage operatively coupled downstream of said decode stage; and

a writeback stage operatively coupled downstream of said execution stage;

wherein said fetch, decode, execute, and writeback stages are adapted to process a plurality of instructions of at least said base instruction set comprising a first plurality of 16-bit instructions and a second plurality of 32-bit instructions, without switching modes; and

extension hardware operatively coupled to said pipeline of said core, said extension hardware facilitating the running of said at least one extension instruction by said core;

a storage device in data communication with said processor core; and

at least one algorithm disposed at least partly in said storage device, said at least one algorithm being adapted to provide an output useful for real-time control applications based on at least one input and a plurality of state variables, said algorithm utilizing said at least one extension instruction to optimize the operation thereof.

9. The apparatus of claim 8 , wherein said algorithm is adapted to perform iterative calculations within a loop, said act of performing iterative calculations performed according to the method, comprising:

reading a new input sample;

calculating the output value for the current sampling period;

updating a plurality of internal variables; and

determining a partial product.

10. The apparatus of claim 8 , wherein said at least one extension instruction comprises an extension instruction adapted to perform a signed multiplication of a coefficient by a state variable, and add the result to the value held by an accumulator of an arithmetic logic unit.

11. The apparatus of claim 8 , wherein said extension instruction is optimized for iterative performance of a multiplication and addition operation.

12. The apparatus of claim 8 , wherein said at least one extension instruction is adapted to perform primary functions related to said real-time control applications, and said base instruction set is adapted to perform secondary functions associated with said real-time control applications.

13. The apparatus of claim 12 , wherein said primary functions comprise at least repeated signed multiplication of a coefficient by a state variable, and add the result to the value held by an accumulator of an arithmetic logic unit.

14. The apparatus of claim 13 , wherein said secondary functions relate to a state-space control system model.

15. An apparatus comprising:

a user-configured and extended digital processor core having a pipeline, comprising:

a base instruction set, said set comprising a plurality of instructions adapted to run on said core;

at least one extension instruction adapted to run on said core, said at least one extension instruction being user-designated, and optimized for real-time control applications; and

extension hardware operatively coupled to said pipeline of said core, said extension hardware facilitating the running of said at least one extension instruction by said core;

a storage device in data communication with said processor core; and

at least one algorithm disposed at least partly in said storage device, said at least one algorithm being adapted to provide an output useful for real-time control applications based on at least one input and a plurality of state variables, said at least one algorithm utilizing said at least one extension instruction to optimize the operation thereof;

wherein said base instruction set comprises:

a plurality of first instructions having a first length;

a plurality of second instructions having a second length; and wherein said processor core further comprises logic adapted to decode and process both said first length and second length instructions from a single program having both first and second length instructions contained therein, wherein said first length is less than said second length; and

said first instructions occur more frequently within said single program than said second instructions.

16. An apparatus comprising:

a user-configured and extended digital processor core, comprising:

a base instruction set, said set comprising a plurality of instructions adapted to run on said core;

at least one extension instruction adapted to run on said core, said at least one extension instruction being user-designated, and optimized for real-time control applications;

a pipeline apparatus, comprising:

an instruction fetch stage;

an instruction decode stage operatively coupled downstream of said fetch stage;

an execution stage operatively coupled downstream of said decode stage; and

a writeback stage operatively coupled downstream of said execution stage;

wherein said fetch, decode, execute, and writeback stages are adapted to process a plurality of instructions of at least said base instruction set comprising a first plurality of 16-bit instructions and a second plurality of 32-bit instructions, without switching modes; and

extension hardware operatively coupled to said pipeline of said core, said extension hardware facilitating the running of said at least one extension instruction by said core;

a storage device in data communication with said processor core; and

at least one algorithm disposed at least partly in said a storage device, said at least one algorithm being adapted to provide an output useful for real-time control applications based on at least one input and a plurality of state variables, said at least one algorithm utilizing said at least one extension instruction to optimize the operation thereof.

17. The apparatus of claim 1 , wherein said at least one algorithm, said at least one extension instruction, and said extension hardware collectively implement a state-space representation of an LTI controller function.

18. The apparatus of claim 1 , further comprising a plurality of formats adapted to represent coefficients and state variables associated with said at least one algorithm.

19. The apparatus of claim 18 , wherein at least one of said plurality of formats comprises a coefficient format, said coefficient format comprising a low-precision floating-point form having a mantissa portion and an exponent portion.

20. The apparatus of claim 19 , wherein the position of a binary point in said mantissa portion is predetermined to allow for fractional values.

21. The apparatus of claim 8 , wherein said at least one algorithm, said at least one extension instruction, and said extension hardware collectively implement a state-space representation of an LTI controller function.

22. The apparatus of claim 8 , further comprising a plurality of formats adapted to represent coefficients and state variables associated with said at least one algorithm.

23. The apparatus of claim 22 , wherein at least one of said plurality of formats comprises a coefficient format, said coefficient format comprising a low-precision floating-point form having a mantissa portion and an exponent portion.

24. The apparatus of claim 23 , wherein the position of a binary point in said mantissa portion is predetermined to allow for fractional values.

25. An apparatus comprising:

a user-configured and extended digital processor core, comprising:

a base instruction set, said set comprising a plurality of instructions adapted to run on said core;

at least one extension instruction adapted to run on said core, said at least one extension instruction being user-designated, and optimized for real-time control applications;

a pipeline apparatus, comprising:

an instruction fetch stage;

an instruction decode stage operatively coupled downstream of said fetch stage;

an execution stage operatively coupled downstream of said decode stage;

a writeback stage operatively coupled downstream of said execution stage;

wherein said fetch, decode, execute, and writeback stages are adapted to process a plurality of instructions of at least said base instruction set comprising a first plurality of instructions comprising a first length and a second plurality of instructions comprising a second length, without switching modes; and

extension hardware operatively coupled to said pipeline of said core, said extension hardware facilitating the running of said at least one extension instruction by said core;

a storage device in data communication with said processor core; and

at least one algorithm disposed at least partly in said storage device, said at least one algorithm being adapted to provide an output useful for real-time control applications based on at least one input and a plurality of state variables, said algorithm utilizing said at least one extension instruction to optimize the operation thereof.

26. The apparatus of claim 25 , wherein said at least one algorithm, said at least one extension instruction, and said extension hardware collectively implement a state-space representation of an LTI controller function.

27. The apparatus of claim 25 , further comprising a plurality of formats adapted to represent coefficients and state variables associated with said at least one algorithm.

28. The apparatus of claim 27 , wherein at least one of said plurality of formats comprises a coefficient format, said coefficient format comprising a low-precision floating-point form having a mantissa portion and an exponent portion.

29. The apparatus of claim 28 , wherein the position of a binary point in said mantissa portion is predetermined to allow for fractional values.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2011
From: CUMPLIDO, RENE; GOODALL, ROGER; JONES, SIMON
To: ARC INTERNATIONAL PLC.
Reel/Frame 025862/0940 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2010
From: VIRAGE LOGIC CORPORATION; VL C.V.; ARC CORES LIMITED; ARC INTERNATIONAL I.P., INC.; ARC INTERNATIONAL INTELLECTUAL PROPERTY, INC.; ARC INTERNATIONAL LIMITED, FORMERLY ARC INTERNATIONAL PLC; ARC INTERNATIONAL (UK) LIMITED
To: SYNOPSYS, INC.
Reel/Frame 025105/0907 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2004
From: CUMPLIDO, RENE; GOODALL, ROGER; JONES, SIMON
To: ARC INTERNATONAL
Reel/Frame 015249/0997 →