Share |
Login Form
Newsletter



Receive HTML?

Latest Members


Reason #4 to Customize a Processor Core - Use an Automated Process

 
User rating
 
3.0 (2)

The process of creating a configured processor core for a specific application can be highly automated. Compilers are now available that can examine the C code for a particular task or algorithm and suggest process extensions that will speed up that task or algorithm. These compilers can provide near-immediate feedback to a design team, which can significantly shorten the design cycle.

For example, Tensilica's XPRES Compiler can automatically analyze C code, identify critical inner loops and other tuning opportunities, and create many trial processor configurations with customized extensions that boost performance. The XPRES Compiler creates a graph showing different execution speed/gate-count trade offs for the analyzed code. That way, the design team can decide what trade-offs it wants to make between added gates (area) and increased performance (cycle count).

Tensilica's tool chain automates the process of designing a configurable processor. This automation allows Tensilica to guarantee that the results are correct by construction. The development process includes the following steps:

  1. Compile the original C/C++ application and run the XPRES Compiler. The XPRES Compiler analyzes millions of possible instruction combinations and present the designer with alternatives.
  2. The designer selects the "best" configuration for the target gate count. Optionally, the designer can manually refine the generated configuration.
  3. Build the processor using Tensilica's standard Xtensa Processor Generator flow. The Xtensa Processor Generator creates an RTL description of the configured processor and generates tailored versions of all necessary software development tools including the compiler, assembler, debugger, and instruction set simulator. It also generates a C or SystemC simulation model of the proceswsor and EDA synthesis scripts. No manual work is required to match software development tools and processor.
  4. Compile the original, unmodified C code to run on the customized processor core. It will take advantage of all customizations.

Note the if an ASIC designer uses the XPRES Compiler to create a customized processor, no modifications need to be made to the original C code or any other C code to use these new instructions. The compiler automatically exploits those new instructions.

Adding functions to a Tensilica processor core never compromises the underlying base Xtensa instruction set, thereby ensuring availability of a robust ecosystem of third party application software and development tools. Configurable Xtensa processors are always compatible with major operating systems, debug probes, and ICE solutions; and always come iwth a complete, automatically generated software development tool chain including an integrated development environment based on the ECLIPSE framework; a world-class optimizing, vectorizing compiler; a cycle-accurate SystemC-compatible simulation models and instruction set simulator; the full industry-standard GNU tool chain; and EDA synthesis scripts.

 

User reviews

Average user rating from: 2 user(s)

To write a review please register or login.
Overall:
 
3.0
 
 

The best is not alweays the best

Overall:
 
4.0
Brian Bailey Reviewed by Brian Bailey
April 06, 2010
Comments (0)
Report this review
 

I would be more inclined to defend Paula's article. While it may be true that the very smallest or fastest implementation may come from a dedicated solution, these tend to be fixed in function, whereas in many cases there is a need for both performance, time to market and flexibility. Consider an audio codec. I am sure you could build an MP3 decoder in hardware much smaller and faster than a Tensilica processor, but what happens when the codec is updated, or an additional format is required. With a custom solution you are likely fried unless of course you designed a flexible process to do it - in which case you probably would do no better than their solution. Solutions are all trade-offs between many functions and factors and if there were one right solution, then we would all be out of jobs very quickly.

 

Lesson from VLSI - learned or not?

Overall:
 
2.0
Muhammad Maiz Ghauri Reviewed by Muhammad Maiz Ghauri
April 06, 2010
Comments (0)
Report this review
 

Back-end or VLSI Designers know that critical parts of hardware need to be designed out manually. Its known as 'custom layout', as opposed to 'cell/library based layout'. Can configured processors, such as those of Tensilica be used to create critical applications, where speed is more important than time-to-market?
However, other (non-sensitive) applications would, in most cases, be better served if a configured processor is used.
Any ideas on improving both time-to-market and speed simultaneously?

 
 
Written by :
Paula Jones
 
 






Latest Content
User rating
 
0.0 (0)