Systems and methods are disclosed to automatically generate a custom integrated circuit (ic) design by receiving a specification of the custom ic including computer readable code to be executed by the custom ic; generating an abstraction of the ic as a system, processor architecture and micro-architecture (SAMA) representation; providing the SAMA representation to a data model having at least an architecture optimization view, a physical design view, and a software tool view; optimizing the processor architecture by iteratively updating the SAMA representation and the data model to automatically generate a processor architecture uniquely customized to the computer readable code which satisfies one or more constraints; and synthesizing the generated architecture into a computer readable description of the custom integrated circuit for semiconductor fabrication. The foregoing can be done with no or minimal human involvement.
|
1. A method to automatically generate a custom integrated circuit (ic) design, comprising:
a. receiving at a computer a specification of the custom ic including computer readable code to be executed by the custom ic;
b. generating an abstraction of the ic as a system, processor architecture and micro-architecture (SAMA) representation;
c. providing the SAMA representation to a data model having at least an architecture optimization view, a physical design view, and a software tool view;
d. optimizing the processor architecture by iteratively updating the SAMA representation and the data model to automatically generate a processor architecture uniquely customized to the computer readable code which satisfies one or more constraints;
e. automatically and iteratively generate a customized computer architecture for the computer readable code that best fits the constraints with an application specific instruction set; and
f. synthesizing the generated architecture into a computer readable description of the custom integrated circuit for semiconductor fabrication.
3. The method of
4. The method of
6. The method of
Compiler, Assembler, Linker, Cycle-Based Simulator.
8. The method of
9. The method of
10. The method of
11. The method of
13. The method of
14. The method of
15. The method of
18. The method of
19. The method of
20. The method of
|
This application is related to commonly owned, concurrently filed application Ser. No. 12/835,603 entitled “AUTOMATIC OPTIMAL INTEGRATED CIRCUIT GENERATOR FROM ALGORITHMS AND SPECIFICATION”, application Ser. No. 12/835,621 entitled “AUTOMATIC OPTIMAL INTEGRATED CIRCUIT GENERATOR FROM ALGORITHMS AND SPECIFICATION”, application Ser. No. 12/835,628 entitled “APPLICATION DRIVEN POWER GATING”, application Ser. No. 12/835,631 entitled “SYSTEM, ARCHITECTURE AND MICRO-ARCHITECTURE (SAMA) REPRESENTATION OF AN INTEGRATED CIRCUIT”, and application Ser. No. 12/835,640 entitled “ARCHITECTURAL LEVEL POWER-AWARE OPTIMIZATION AND RISK MITIGATION”, the contents of which are incorporated by reference.
The present invention relates to systems and methods for an intermediate representation of a custom integrated circuit (IC) or an application-specific integrated circuit (ASIC).
As electronics become more user friendly, the features imposed on the electronics have grown. For example, in a typical hardware product development cycle for an embedded application, algorithm development is done. Next, system architects break down how the algorithms need to be implemented in the product. Conventionally, the algorithm is converted into a low level intermediate representation such as a register transfer language (RTL) that is close to the hardware.
RTL is commonly used in the electronics design industry to refer to the coding style used in hardware description languages that effectively guarantees the code model can be synthesized (converted to real logic functions) in a given hardware platform such as an FPGA or an ASIC.
There are many hardware description languages that can be used to create RTL modules for logic synthesis. Some of the most popular RTL modeling languages include: System Verilog, Verilog, and VHDL.
United States Patent Application 20090144690 discloses a method for converting a C-type programming language program to a hardware design, where the program is an algorithmic representation of one or more processes. The C-type programming language program is compiled into a hardware description language (HDL) synthesizable design. The compiler categorizes variables as using either implicit memory or custom memory. The programming language may use ANSI C and the HDL may be Verilog Register Transfer Level (RTL). The hardware device generated from the HDL synthesizable design may be an Application-Specific Integrated Circuit (ASIC) or a Field Programmable Gate Array (FPGA).
However, RTL is still a low level description of the hardware. Thus, it can be difficult to analyze and subsequently to optimize a design with RTL.
In one aspect, systems and methods automatically generate a custom integrated circuit (IC) design by receiving a specification of the custom IC including computer readable code to be executed by the custom IC; generating an abstraction of the IC as a system, processor architecture and micro-architecture (SAMA) representation; providing the SAMA representation to a data model having at least an architecture optimization view, a physical design view, and a software tool view; optimizing the processor architecture by iteratively updating the SAMA representation and the data model to automatically generate a processor architecture uniquely customized to the computer readable code which satisfies one or more constraints; and synthesizing the generated architecture into a computer readable description of the custom integrated circuit for semiconductor fabrication.
Implementations of the above aspects may include one or more of the following. The system can operate automatically with virtually no or minimal human involvement from algorithm, process, or code input that specifies the function of the custom IC. The user can execute the computer readable code on the custom IC. The data model is an expanded unified functional and physical model of the IC. The data model can receive physical primitive information of the IC. Software tools for the custom IC to run the application code can be automatically generated. The tools include one or more of: Compiler, Assembler, Linker, Cycle-Based Simulator. The tool automatically generates firmware. The tools can profile the firmware and providing the firmware profile as feedback to optimizing the architecture. The system can iteratively optimize the processor architecture based on predetermined physical constraints. The system can perform static profiling or dynamic profiling of the computer readable code. The system can automatically generate a software development kit (SDK) for the custom integrated circuit to run the computer readable code. The computer readable code can be transformed into assembly code and linked to generate firmware for the selected architecture. The system can perform cycle based simulation of the firmware. The architecture can be optimized based on profiled firmware and/or the assembly code. The system can generate register transfer level code for the selected architecture, and thus for a physical design optimized in terms of timing, area, or power. The system can synthesize the RTL code. In one embodiment, SAMA can specify one or more of the following:
Advantages of the preferred embodiments may include one or more of the following. The SAMA representation provides an intermediate abstraction of the hardware that makes it easy to optimize the processor architecture. The SAMA based system is better than RTL which complicates formal treatment and portability. SAMA allows machine independent, global optimization that precedes code generation. The architecture can use simple and fast code generators usually operate locally. The SAMA system is easier to use, simplify the code generator and to subsequently can optimize the architecture in ways that cannot be done using RTL code.
Other advantages of the preferred embodiments of the system may include one or more of the following. The system alleviates the problems of chip design and makes it a simple process. The embodiments shift the focus of product development process back from the hardware implementation process back to product specification and computer readable code or algorithm design. Instead of being tied down to specific hardware choices, the computer readable code or algorithm can be implemented on a processor that is optimized specifically for that application. The preferred embodiment generates an optimized processor automatically along with all the associated software tools and firmware applications. This process can be done in a matter of days instead of years as is conventional. The described automatic system removes the risk and makes chip design an automatic process so that the algorithm designers themselves can directly make the hardware chip without any chip design knowledge. The primary input to the system would be the computer readable code or algorithm specification in higher-level languages like C or Matlab.
For example, a general purpose register file is a simple structure. Based on the Profiling of the firmware compiled by the generated tools, the Architecture Optimizer 112 may optimize the size of the register file and generate a new SAMA 120 with reduced register file to save space and power. The resulting new tools may confirm the improvement via another round of profiling.
Referring now to
SAMA acts as a transition layer between software compilation and hardware synthesis. Such a transition layer is intended to take advantage of optimizations available in the compiler tool flow, and also to provide freedom to the low-level synthesizer, to explore options for application-specific implementations.
In one embodiment, SAMA can specify one or more of the following:
1. System
2. Architecture
3. Tools
4. MicroArchitecture
In one embodiment, the algorithm designers generate computer readable code that solves an application problem. Instead of the manual IC design, the system takes the code and analyzes the code or algorithm. Next, the system automatically generates an optimal architecture based on the code. The architecture is expressed in SAMA and together with the data model, the architecture can be optimized through one or more iterations. Next, an IC fabrication facility can fabricate the custom IC and the resulting IC is optimized to the algorithm with minimal or no human involvement.
Referring now to
In one embodiment, the architecture can automatically design a variable width instruction set encoding scheme. The program code which is made up on the variable width instruction set can be further compressed using lossless compression schemes to save storage space. Also when such a compression scheme is chosen, a corresponding de-compression scheme is also automatically designed such that, the instructions are dynamically decoded and issued. The system can optimally encode the instruction set using variable length instruction set. Each instruction can be encoded in any instruction set width that is optimal without restrictions on certain widths. This would allow for more instructions to be supported as compared to traditional encoding schemes and would give significant performance benefits. Also the instructions can be packed with very fine granularity and multiple instructions can be packed in to a single program memory access. This will increase the number of instructions that can be fetched to be issued per cycle. Once the instruction set and architecture is custom designed for the application code/algorithm, a custom integrated circuit is automatically generated by the system with no human involvement, thus reducing product development time and cost. Using an automatically generated software development kit (SDK) and auto generated firmware, the custom IC can run the code/algorithm efficiently.
The embodiments shift the focus of product development process from the hardware implementation process back to product specification and computer readable code or algorithm design. Instead of being tied down to specific hardware choices, the computer readable code or algorithm can be implemented on a processor that is optimized specifically for that application. The preferred embodiment generates an optimized processor automatically along with all the associated software tools and firmware applications. This process can be done in a matter of days instead of years as is conventional.
In
The computer readable code or algorithm 104 and requirement 106 are provided to an automated IC generator 111. Based only on the code or algorithm 104 and the constraints placed on the chip design, the IC generator 111 automatically generates with few or no human involvement an output that includes a GDS file 113, firmware 115 to run the IC, a software development kit (SDK) 116, and/or a test suite 118. The GDS file 113 and firmware 115 are used to fabricate a custom chip 121.
The instant system alleviates the issues of chip design and makes it a simple process. The system shifts the focus of product development process back from the hardware implementation process back to product specification and algorithm design. Instead of being tied down to specific hardware choices, the algorithm can always be implemented on a processor that is optimized specifically for that application. The system generates this optimized processor automatically along with all the associated software tools and firmware applications. This whole process can be done in a matter of days instead of years that it takes now. In a nutshell the system makes the digital chip design portion of the product development in to a black box.
In one embodiment, the instant system product can take as input the following:
Computer readable code or algorithm defined in C/Matlab
Peripherals required
Area Target
Power Target
Margin Target (how much overhead to build in for future firmware updates and increases in complexity)
Process Choice
Standard Cell library Choice
Testability scan
The output of the system may be a Digital Hard macro along with all the associated firmware. A software development kit (SDK) optimized for this Digital Hard macro is also automatically generated so that future upgrades to firmware are implemented without having to change the processor.
The system performs automatic generation of the complete and optimal hardware solution for any chosen target application. While the common target applications are in the embedded applications space they are not necessarily restricted to that.
By way of example, a computer to support the automated chip design system is discussed next. The computer preferably includes a processor, random access memory (RAM), a program memory (preferably a writable read-only memory (ROM) such as a flash ROM) and an input/output (I/O) controller coupled by a CPU bus. The computer may optionally include a hard drive controller which is coupled to a hard disk and CPU bus. Hard disk may be used for storing application programs, such as the present invention, and data. Alternatively, application programs may be stored in RAM or ROM. I/O controller is coupled by means of an I/O bus to an I/O interface. I/O interface receives and transmits data in analog or digital form over communication links such as a serial link, local area network, wireless link, and parallel link. Optionally, a display, a keyboard and a pointing device (mouse) may also be connected to I/O bus. Alternatively, separate connections (separate buses) may be used for I/O interface, display, keyboard and pointing device. Programmable processing system may be preprogrammed or it may be programmed (and reprogrammed) by downloading a program from another source (e.g., a floppy disk, CD-ROM, or another computer).
Each computer program is tangibly stored in a machine-readable storage media or device (e.g., program memory or magnetic disk) readable by a general or special purpose programmable computer, for configuring and controlling operation of a computer when the storage media or device is read by the computer to perform the procedures described herein. The inventive system may also be considered to be embodied in a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner to perform the functions described herein.
The invention has been described herein in considerable detail in order to comply with the patent Statutes and to provide those skilled in the art with the information needed to apply the novel principles and to construct and use such specialized components as are required. However, it is to be understood that the invention can be carried out by specifically different equipment and devices, and that various modifications, both as to the equipment details and operating procedures, can be accomplished without departing from the scope of the invention itself.
Padmanabhan, Satish, Ng, Pius, Kadiyala, Suresh
Patent | Priority | Assignee | Title |
10223081, | Oct 23 2012 | Micron Technology, Inc | Multistate development workflow for generating a custom instruction set reconfigurable processor |
10534591, | Oct 23 2012 | Micron Technology, Inc. | Multistage development workflow for generating a custom instruction set reconfigurable processor |
11048838, | Aug 02 2018 | SiFive, Inc. | Integrated circuits as a service |
11106592, | Jan 04 2008 | Micron Technology, Inc. | Microprocessor architecture having alternative memory access paths |
11610036, | Aug 02 2018 | SiFive, Inc. | Integrated circuits as a service |
11922101, | Aug 02 2018 | SiFive, Inc. | Integrated circuits as a service |
9710384, | Jan 04 2008 | Micron Technology, Inc | Microprocessor architecture having alternative memory access paths |
Patent | Priority | Assignee | Title |
6408428, | Aug 20 1999 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Automated design of processor systems using feedback from internal measurements of candidate systems |
20080177996, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 09 2010 | KADIYALA, SURESH | ALGOTOCHIP, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024909 | /0343 | |
Jul 09 2010 | OBLOCK, GARY | ALGOTOCHIP, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024909 | /0343 | |
Jul 09 2010 | PADMANABHAN, SATISH | ALGOTOCHIP, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024909 | /0343 | |
Jul 09 2010 | NG, PIUS | ALGOTOCHIP, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024909 | /0343 | |
Jul 09 2010 | PANDURANGAN, ANAND | ALGOTOCHIP, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024909 | /0343 | |
Jul 09 2010 | SHIGIHARA, TAK | ALGOTOCHIP, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024909 | /0343 | |
Jul 09 2010 | DURBHA, ANANTH | ALGOTOCHIP, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024909 | /0343 | |
Jul 13 2010 | Algo to Chip Corporation | (assignment on the face of the patent) | / | |||
Jul 28 2011 | ALGOTOCHIP, INC | Algotochip Corporation | CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF ASSIGNEE FROM ALGOTOCHIP, INC TO ALGOTOCHIP CORPORATION PREVIOUSLY RECORDED ON REEL 024909 FRAME 0343 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNMENT OF ENTIRE RIGHT, TITLE AND INTEREST | 026676 | /0491 | |
Nov 07 2013 | Algotochip Corporation | Nitto Denko Corporation | AMENDED AND RESTATED GRANT OF PATENT SECURITY INTEREST | 031666 | /0267 |
Date | Maintenance Fee Events |
Feb 17 2017 | REM: Maintenance Fee Reminder Mailed. |
Jul 09 2017 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jul 09 2016 | 4 years fee payment window open |
Jan 09 2017 | 6 months grace period start (w surcharge) |
Jul 09 2017 | patent expiry (for year 4) |
Jul 09 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 09 2020 | 8 years fee payment window open |
Jan 09 2021 | 6 months grace period start (w surcharge) |
Jul 09 2021 | patent expiry (for year 8) |
Jul 09 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 09 2024 | 12 years fee payment window open |
Jan 09 2025 | 6 months grace period start (w surcharge) |
Jul 09 2025 | patent expiry (for year 12) |
Jul 09 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |