Electronic System Level

Models and their Application

Processor-centric design: Processors, Multi-processors and software

 






















 

 

 

 

 

 

 

 

 

Chapter 6 Processor-centric design: Processors, Multi-processors and software

Almost all embedded systems are a combination of software running on embedded processor cores, supporting hardware such as memories and processor buses, and other hardware elements including function accelerators and peripheral interface blocks. As a result, systems design increasingly is taking a processor-centric focus. High-level descriptions of systems functionality must be analyzed and partitioned across multiple elements, including processors, potentially more than one, and hardware components where needed.

After the system is partitioned, various components are implemented and integrated. Implementation may be based on reusable, configurable hardware and software IP, or may required development from scratch. The system may not be fully specified at initial design time, because it may be intended to be a reusable product platform. In this case, in order to accommodate additional functionality unspecified at design time, extra processing resources need to be designed in.

There are many options for designing instruction set processors for such systems, including use of fixed [ACR] instruction set architecture (ISA) processors, use of multiple processors either homogeneous or heterogeneous, or the design of [ACR] application specific instruction set processors (ASIPs) either from scratch, or based on configurable and extensible processor IP. Ensuring a successful product design and implementation after choosing one or more of these options can be a complex juggling act of many different issues.

This chapter looks into the issues involved in processor centric design using a commercial configurable and extensible processor IP as an example. It will start with a particular, quasi-realistic design application and illustrate the steps taken in a design and implementation flow using a particular set of ESL design tools for processor-centric systems, showing how various options are chosen and issues are resolved.

6.1 Choices and tradeoffs in processor-centric design
6.2 An ASIP Integrated Development Environment (IDE)
6.3 Introduction to flow and example
6.4 Starting with algorithms
6.5 Processor definition
     6.5.1 Designing the design space exploration
     6.5.2 Exploring the processor design space: pre-configured cores
     6.5.3 Exploring the processor design space: automatically
     6.5.4 Exploring the processor design space: cache and memory
     6.5.5 Exploring the processor design space: fine-tuning
     6.5.6 Speed-area-power tradeoffs
     6.5.7 Detailed Energy Space Exploration
6.6 Software implementation
6.7 Predicting software performance via sampling
6.8 Multicore issues
     6.8.1 A practical methodology for multiprocessor ASIP definition and programming
     6.8.2 Developing multicore system level models
     6.8.3 Porting methodology for new video codecs to the multicore system
     6.8.4 Using the IDE for multicore simulation and validation
6.9 Debug
     6.9.1 Single core debug in the IDE
     6.9.2 Multi processor debug in the IDE
6.10 Conclusions
6.11 References

Errata

Feedback

     Your name:
     Your company or affiliation:
     e-mail address:

     Would you like to be contacted by one of the authors

Your comments or suggestion


Buy the books here

This site is owned and maintained by Brian Bailey
All information is Copyright © 2007-2010