Massively parallel processor array
![]() | Welcome to this sandbox page, a space to experiment with editing.
You can either edit the source code ("Edit source" tab above) or use VisualEditor (here). Click the "Publish changes" button when finished. You can click "Show preview" to see a preview of your edits, or "Show changes" to see what you have changed. Anyone can edit this page and it is automatically cleared regularly (anything you write will not remain indefinitely). Click here to reset the sandbox. You can use your personal sandbox, instead, or using the "Sandbox" link in the top right.Creating an account gives you access to a personal sandbox, among other benefits. Please do not place copyrighted, offensive, illegal or libelous content in the sandboxes. For more info about sandboxes, see Wikipedia:About the sandbox and Help:My sandbox. New to Wikipedia? See the contributing to Wikipedia page or our tutorial. Questions? Try the Teahouse! |
The Massively Parallel Processor Array (MPPA) is a class of integrated circuits which have a massively parallel array of hundreds to thousands of CPUs and RAMs, interconnected by a reconfigurable interconnect of word-wide channels. One or more CPUs and RAMs are combined with interconnect into a tile. Many tiles are stacked up to form the array.[1][2]
MPPA is a MIMD (Multiple Instruction streams, Multiple Data) architecture, with distributed memory accessed locally, not shared globally. Each processor is strictly encapsulated, accessing only its own code and memory. Point-to-point communication between processors is directly realized in the configurable interconnect.
The MPPA's massive parallelism and its distributed memory MIMD architecture distinguishes it from multicore and manycore architectures, which have fewer processors and an SMP or other shared memory architecture, used for general-purpose computing, and from GPGPUs with SIMD architectures, used for HPC applications.[3]
MPPAs are used in high-performance embedded systems and hardware acceleration of desktop computer and server applications, such as video compression[4], image processing[5], medical imaging, network processing, software defined radio and other compute-intensive streaming media applications, which otherwise would use FPGA, DSP and/or ASIC chips.
An MPPA application is developed by expressing it as a hierarchical block diagram or workflow, whose basic objects run in parallel, each on their own processor. Likewise, large data objects may be broken up and distributed into local memories with parallel access. Objects communicate over a parallel structure of dedicated channels. The objective is to maximize aggregate throughput while minimizing local latency, optimizing performance and efficiency. An MPPA's model of computation is similar to a Kahn process network or Communicating_sequential_processes (CSP).[6]
MPPAs include commercial devices from Ambric, picoChip and IntellaSys, and the ASAP research chip.
References
- ^ Mike Butts, "Synchronization through Communication in a Massively Parallel Processor Array", IEEE Micro, vol. 27, no. 5, September/October 2007, IEEE Computer Society
- ^ Bevan Baas, et. al., "AsAP: A Fine-grain Multi-core Platform for DSP Applications", IEEE Micro, vol. 27, no. 2, March/April 2007, IEEE Computer Society
- ^ M. Butts, "Multicore and Massively Parallel Platforms and Moore's Law Scalability", Proc. Embedded Systems Conference - Silicon Valley, April 2008
- ^ Laurent Bonetto, "Massively parallel processing arrays (MPPAs) for embedded HD video and imaging (Part 1)", Video/Imaging DesignLine, May 16, 2008 http://www.videsignline.com/howto/207800413
- ^ Paul Chen, "Multimode sensor processing using Massively Parallel Processor Arrays (MPPAs)", Programmable Logic DesignLine, March 18, 2008 http://www.pldesignline.com/howto/206904379
- ^ Mike Butts, Brad Budlong, Paul Wasson, Ed White, "Reconfigurable Work Farms on a Massively Parallel Processor Array", Proceedings of FCCM, April 2008, IEEE Computer Society