Multiple Processor (Multicore) Design

Use Multiple Xtensa Processors in the Dataplane

Many SOCs are designed with multiple Xtensa processors to do the "heavy duty" data processing in the SOC dataplane. One of our customers has designed a chip that employs almost 200 processors. Whether they’re homogeneous arrays of processors performing high-throughput communications tasks or a group of heterogeneous processors performing different tasks in an image processing chain, the allocation of performance among all of the tasks in a SOC design is much easier with multiple Xtensa processors than with just one control processor and multiple blocks of logic.

The Benefits of Multiple Processor Design

There are several advantages to using multiple processors as SOC task building blocks. One of the biggest is that processors are inherently programmable, so functional changes can be made to the chip’s operation using firmware after the chip design is finished and even after the chip has been fabricated. Complex state machines can be implemented in firmware running on the processors, greatly reducing verification time.

In addition, a multiple-processor-based design approach promotes the flexible sharing and reuse of on-chip memories while reducing the overall amount of memory needed.

Design with multiple processors facilitates system modeling with instruction-set simulators, which are much faster and more efficient than RTL-based system simulation.

Additionally, by employing multiple processors in SOC designs, it’s easier to develop one SOC that works for several different related products, such as different models of digital cameras, cell phones or printers.

One of the hidden benefits of spreading tasks across multiple processors is that breaking the SOC’s overall task into smaller subtasks. Spreading these subtasks across multiple processors actually speeds the process of writing and debugging the required software. See Jack Ganssle’s article, "Subtract Software Costs by Adding CPUs."

The Key Questions for Multiple Processor Design

This section shares some of the answers to these key questions. How do you use multiple processor cores to develop an SOC? How do you partition your design to take maximum advantage of multiple processors? How do you take a task that you know cannot be run on a conventional processor core meeting your power, area, and performance goals, and transform an Xtensa processor so that it has the I/O throughput, computational parallelism, and low power of a hand-crafted state-machine driving an RTL datapath? How do you manage the software among all the processors? How do you connect them and manage communication in the hardware?

At Tensilica, we’ve been working with our customers and can help you efficiently design with multiple Xtensa processors. For more information, read all the subsections in this section and get a copy of the book “Engineering the Complex SOC:  Fast, Flexible Design with Configurable Processors, by Chris Rowen, published by Prentice Hall.

The next few pages go into more detail on the things you should consider when using multiple processor cores in your design.

Marketing Agency