IP Library Granted Patent US 7,587,579
Granted Patent B2
US 7,587,579 · App. 11/022,850 · Granted Sep 8, 2009

Processor core interface for providing external hardware modules with access to registers of the core and methods thereof

Assignee: Ceva D.S.P. Ltd.
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,587,579
App. No.
11/022,850
Granted
Sep 8, 2009
Kind
B2
Abstract

A processor core architecture includes a cluster having at least a register file and predefined functional units having access to the register file. The architecture also includes an interface to one or more arbitrary functional units external to the processor core. The interface is to provide the arbitrary functional units with access to the register file.

Claims (30)

1. A method comprising:

providing a processor core architecture having a register file and predefined first and second computation and bit-manipulation functional units having access to said register file; and

providing an arbitrary functional unit external to said processor core architecture and coupled to said first and second functional units, said arbitrary functional unit having access to said register file;

receiving an instruction packet that includes an instruction for said arbitrary functional unit;

selecting based on data within the instruction packet which of the first and second computation and bit-manipulation functional units is to control the access of the arbitrary functional unit to the register file;

executing the instruction by the arbitrary functional unit and controlling, by the first computation and bit-manipulation functional unit, writing a result of the execution in the register file when the first computation and bit-manipulation functional unit is selected; and

executing the instruction by the arbitrary functional unit and controlling, by the second computation and bit-manipulation functional unit, writing a result of the execution in the register file when the second computation and bit-manipulation functional unit is selected.

2. The method of claim 1 , wherein said predefined functional units are able to control when, and to which register of said register file, said arbitrary functional unit is to have said access.

3. The method of claim 1 , wherein receiving the instruction packet that includes the instruction for said arbitrary functional unit comprises:

providing an instruction format having predefined bits to designate that the instruction is to be executed by said arbitrary functional unit and to designate which of said predefined functional units is to control said access to said register file by said arbitrary functional unit during execution of said instruction.

4. The method of claim 3 , wherein bits of said instruction format other than said predefined bits are to be defined by a designer of a processor involving said processor core architecture.

5. The method of claim 4 , wherein said processor core architecture has a pipeline, and said bits to be defined by said designer include bits that determine how many stages of said pipeline are to be used in execution of said instruction.

6. The method of claim 1 , wherein the first, second and arbitrary functional units execute at most two instructions in parallel.

7. A processor comprising:

a processor core architecture having a register file and predefined first and second computation and bit-manipulation functional units having access to said register file; and

an arbitrary functional unit external to said processor core and coupled to said first and second functional units, said arbitrary functional unit having access to said register file,

wherein said processor core comprises a dispatcher to select based on data within an instruction packet that includes an instruction for said arbitrary functional unit, which of the first and second computation and bit-manipulation functional units is to control the access of the arbitrary functional unit to the register file,

wherein writing in the register file a result of an execution of the instruction by the arbitrary unit is being controlled by the first computation and bit-manipulation functional unit, when the first computation and bit-manipulation functional unit is selected and by the second computation and bit-manipulation functional unit, when the second computation and bit-manipulation functional unit is selected.

8. The processor of claim 7 comprising:

a register file controller coupled to said register file and including a synchronization block for the arbitrary functional unit external to said processor core, where said synchronization block is to receive results of operations from a function block of said arbitrary functional unit and to write said results into said register file.

9. The processor of claim 8 , wherein the first predefined functional unit comprises:

first control circuitry to determine, from an encoded version of an operation, to which register of said register file to write a result of said operation, said first control circuitry also able to fetch operands of said operation from said register file and to control timing of receipt of said operands by said function block and timing of writing of said result by said synchronization block.

10. The processor of claim 9 , wherein said register file is an accumulator register file.

11. The processor of claim 7 , wherein said processor core architecture has a pipeline, and an instruction to be executed by said arbitrary functional unit includes an indication of how many stages of said pipeline are to be used in execution of said instruction.

12. The processor of claim 7 , wherein the first, second and arbitrary functional units execute at most two instructions in parallel.

13. The processor of claim 12 , wherein said first predefined functional unit further includes a predefined function block, and said control circuitry is to control timing of receipt of operands by said predefined function block and timing of writing of a result from said predefined function block to a register of said register file.

14. The processor of claim 12 , wherein the second predefined functional unit comprises:

second control circuitry to determine, from an encoded version of another operation, to which register of said register file to write a result of said other operation, said second control circuitry also able to fetch operands of said other operation from said register file and to control timing of receipt of said operands of said other operation by said function block and timing of writing of said result of said other operation by said synchronization block.

15. The processor of claim 14 , wherein the dispatcher is to dispatch an encoded version of a particular operation either to said first predefined functional unit or to said second predefined functional unit.

16. The processor of claim 15 , wherein said dispatcher is also to dispatch said encoded version of said particular operation to said arbitrary functional unit.

Assignments (2)
CHANGE OF NAME Recorded Jun 23, 2024
From: CEVA D.S.P. LTD.
To: CEVA TECHNOLOGIES, LTD
Reel/Frame 067808/0876 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2004
From: BOUKAYA, MICHAEL; GLASNER, ROY; BRIMAN, ERAN
To: CEVA D.S.P. LTD.
Reel/Frame 016130/0988 →
Continuity (1)
Related Publication 20060149936A1 · Jul 6, 2006