IP Library Granted Patent US 9,582,278
Granted Patent B2
US 9,582,278 · App. 12/248,883 · Granted Feb 28, 2017

Automated processor generation system and method for designing a configurable processor

Inventors: Albert Ren-Rui Wang (Fremont, CA); Richard Ruddell (Los Gatos, CA); David William Goodwin (Sunnyvale, CA); Earl A. Killian (Los Altos Hills, CA); Nupur Bhattacharyya (Mountain View, CA); Marines Puig Medina (San Jose, CA); Walter David Lichtenstein (Belmont, MA); Pavlos Konas (Mountain View, CA); Rangarajan Srinivasan (Los Gatos, CA); Christopher Mark Songer (Mountain View, CA); Akilesh Parameswar (San Jose, CA); Dror E. Maydan (Palo Alto, CA); Ricardo E. Gonzalez (Menlo Park, CA)
Assignee: Cadence Design Systems, Inc.
G06F9/30167G06F9/30145G06F17/5045
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 9,582,278
App. No.
12/248,883
Granted
Feb 28, 2017
Kind
B2
Abstract

A system for generating processor hardware supports a language for significant extensions to the processor instruction set, where the designer specifies only the semantics of the new instructions and the system generates other logic. The extension language provides for the addition of processor state, including register files, and instructions that operate on that state. The language also provides for new data types to be added to the compiler to represent the state added. It allows separate specification of reference semantics and instruction implementation, and uses this to automate design verification. In addition, the system generates formatted instruction set documentation from the language specification.

Claims (38)

1. A computer-implemented system for designing a configurable processor, the system comprising:

hardware generation means for, based on a user-defined specification, generating a description of a hardware implementation of the processor;

software generation means for, based on the user-defined specification, generating software development tools specific to the hardware implementation; and

document generation means for generating documentation of an instruction set of the processor whose hardware implementation description and software development tools are generated by the hardware generation means and software means, respectively, based on the user-defined specification.

2. The system of claim 1 , wherein the document generation means includes means for using reference semantics of instructions defined in the user-defined specification to generate the processor instruction set documentation.

3. The system of claim 1 , wherein:

the user-defined specification contains reference semantics of an instruction defined therein and a user-defined specification of at least one of a synopsis and a text description for the user-defined instruction; and

the document generation means includes means for using the at least one of the synopsis and the text description to generate documentation of the processor instruction set.

4. The system of claim 1 , wherein the user-defined specification includes a statement specifying scheduling information of instructions used in the software development tools, and wherein the hardware generation means includes means for, based on the statement in the user-defined specification, determining whether and how to generate a description of at least one of pipeline logic, pipeline stalling logic and instruction rescheduling logic.

5. The system of claim 4 , wherein the scheduling information includes a statement that an operand of an instruction enters a pipeline of the processor at a given stage.

6. The system of claim 4 , wherein the scheduling information includes a statement that an operation of an instruction exits a pipeline of the processor at a given stage.

7. The system of claim 4 , wherein:

the software generated by the software generation means includes a compiler which uses instructions described in the user-defined specification; and

the compiler uses the scheduling information during instruction scheduling to schedule the instructions described in the user-defined specification.

8. The system of claim 1 , wherein the user-defined specification includes a description of an instruction which requires a plurality of processor cycles to be processed.

9. The system of claim 8 , wherein:

the user-defined specification includes a description of an instruction's semantics which is independent of a target pipeline of the processor; and

the hardware generation means includes means for generating as part of the processor hardware implementation a pipeline based on a pipeline description separate from the instruction semantics.

10. The system of claim 1 , wherein the generated documentation comprises a textual instruction set reference manual.

11. A computer-implemented method for designing a configurable processor, the method comprising:

generating, based on a user-defined specification a description of a hardware implementation of the processor;

generating, based on the user-defined specification, software development tools specific to the hardware implementation; and

generating documentation of an instruction set of the processor having the generated hardware implementation description and software development tools, based on the user-defined specification.

12. The method of claim 11 , wherein the documentation generating step includes using reference semantics of instructions defined in the user-defined specification to generate the processor instruction set documentation.

13. The method of claim 11 , wherein:

the user-defined specification contains reference semantics of an instruction defined therein and a user-defined specification of at least one of a synopsis and a text description for the user-defined instruction; and

the documentation generation step includes using the at least one of the synopsis and the text description to generate documentation of the processor instruction set.

14. The method of claim 11 , wherein the user-defined specification includes a statement specifying scheduling information of instructions used in the software development tools, and wherein the hardware generation step includes, based on the statement in the user-defined specification, determining whether and how to generate a description of at least one of pipeline logic, pipeline stalling logic and instruction rescheduling logic.

15. The method of claim 14 , wherein the scheduling information includes a statement that an operand of an instruction enters a pipeline of the processor at a given stage.

16. The method of claim 14 , wherein the scheduling information includes a statement that an operation of an instruction exits a pipeline of the processor at a given stage.

17. The method of claim 14 , wherein:

the software generated by the software generation step includes a compiler which uses instructions described in the user-defined specification; and

the compiler uses the scheduling information during instruction scheduling to schedule the instructions described in the user-defined specification.

18. The method of claim 11 , wherein the user-defined specification includes a description of an instruction which requires a plurality of processor cycles to be processed.

19. The method of claim 18 , wherein:

the user-defined specification includes a description of an instruction's semantics which is independent of a target pipeline of the processor; and

the hardware generation step includes generating as part of the processor hardware implementation a pipeline based on a pipeline description separate from the instruction semantics.

20. The method of claim 11 , wherein the step of generating documentation includes generating a textual instruction set reference manual.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2013
From: TENSILICA, INC.
To: CADENCE DESIGN SYSTEMS, INC.
Reel/Frame 031011/0857 →
Continuity (3)
Division 11281217 · Nov 16, 2005
Continuation 09506502 · Feb 17, 2000
Related Publication 20090172630A1 · Jul 2, 2009