Multiprocessor system development for high performance signal processing applications

Developing multiprocessor systems to implement high performance signal processing algorithms can be a formidable undertaking. A process for designing multiprocessor systems, using primarily programmable processors, is proposed. This design process starts with algorithm entry and analysis, continues with functional decomposition and architecture entry, which are used to drive the algorithm to architecture mapping. The development process then proceeds with a combination of hardware profiling and performance modeling, followed by the visualization of the results. Since the process is iterative, feedback from later steps are often used to make better design choices in earlier steps, allowing the impact of these decisions to be re-evaluated. Ultimately, the user finishes with an implemented system. Each of these steps are described in detail, as well as some of the tools which support them.