Designing SOCs with Configured Cores: Unleashing the Tensilica Xtensa and Diamond Cores

Figure 1.15 shows the use of two different microprocessor cores, one general-purpose processor and one DSP. Such a system is called a heterogeneous-multiprocessor system. A heterogeneous-multiprocessor design approach has the advantage of matching processor cores with application-appropriate features to specific on-chip tasks.
Selecting just the right processor core or tailoring the processor core to a specific task has many benefits. First, the processor need have no more abilities than required by its assigned task set. This characteristic of heterogeneous-multiprocessor system design minimizes processor gate counts by trimming unneeded features from each processor.
One of the key disadvantages of heterogeneous-multiprocessor design is the need to use a different software-development tool set (compiler, assembler, debugger, instruction-set simulator, real-time operating system, etc.) for each of the different processor cores used in the system design. Either the firmware team must become proficient in using all of the tool sets for the various processors or more likely the team must be split into groups, each assigned to different processor cores.
However, this situation is not always the case for heterogeneous-processor system designs, as we ll see later in this book. Each instance of a configurable processor core can take on exactly the attributes needed for a specific set of tasks and all of the variously configured processor cores, which are based on a common ISA (instruction-set architecture), can still use the same software-development tool suite so that software team members can use familiar tools to program all of the...