Tech Support | Generator Login | Careers | Contact Us
METHODOLOGY

  Overview

  ESL Design

  C/C++ Design

  Speed RTL Design

  Multi Processor Dsgn

  + Design Process

  + Modeling

  + Partitioning

  + Task Assignments

  + Interconnect

  + Communications

  + Interfaces

  Low Power Design

  Optimized with TIE

  EDA Design Flow

  System Modeling

Multiple Processor (Multicore) Design

Many SOCs are designed with multiple Xtensa processors. 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.

SOC Book
RECOGNITION
Red Herring top 100
Read The Future of Multicore Processors from Instat/ Microprocessor Report
Read "More Patents for Tensilica" from In-Stat/Microprocessor Report
Portable Design 2006 Editor's Choice Award
EDN 100  Hot Products 2006
QUOTABLE

“We selected Tensilica’s Xtensa processor for its ability to help us achieve our goal of developing innovative-multi-gigabit, lower-power mmWave communications products. By optimizing the Xtensa processor into a tailored processor core, this enables our products to attain the performance these wireless applications demand.”

Kumar Mahesh, Manager of MAC and Software Design for SiBEAM, Inc.