A Light-Weight Cooperative Multi-threading with Hardware Supported Thread-Management on an Embedded Multi-Processor System

paper proposes a light-weight cooperative multi- threading programming model for an embedded multi- processor system. The synchronization between different threads is obtained by a test-and-set-lock. Each processor needs to acquire the lock before accessing shared resources. To reduce the overhead of software thread-management, a hardware thread-queue manager is added to maintain the stack pointer for each thread. This reduces off-chip memory accesses during context switches. The whole multi-processor system, including software stack and hardware architecture, is evaluated with a cycle-accurate simulation platform. With a data-flow-based image encoder as the driver application, the multi-processor system with hardware thread-queue manager achieves 9.5% performance speedup compared to a pure software thread-queue manager.

[1]  Patrick Schaumont,et al.  Cooperative multithreading on embedded multiprocessor architectures enables energy-scalable design , 2005, Proceedings. 42nd Design Automation Conference, 2005..

[2]  Bradford Nichols,et al.  Pthreads programming , 1996 .

[3]  Gregory R. Andrews,et al.  Concurrent programming - principles and practice , 1991 .

[4]  John Goodacre,et al.  Parallelism and the ARM instruction set architecture , 2005, Computer.

[5]  Pierre G. Paulin,et al.  Parallel programming models for a multi-processor SoC platform applied to high-speed traffic management , 2004, CODES+ISSS '04.

[6]  Anoop Gupta,et al.  Parallel computer architecture - a hardware / software approach , 1998 .

[7]  Karl M. Guttag,et al.  A single-chip multiprocessor for multimedia: the MVP , 1992, IEEE Computer Graphics and Applications.

[8]  Patrick Schaumont,et al.  Interactive cosimulation with partial evaluation , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[9]  Hugh Garraway Parallel Computer Architecture: A Hardware/Software Approach , 1999, IEEE Concurrency.

[10]  David R. Keppel,et al.  Tools and Techniques for Building Fast Portable Threads Packages , 1993 .

[11]  Bradford Nichols,et al.  Pthreads programming - a POSIX standard for better multiprocessing , 1996 .

[12]  Sharad Malik,et al.  Flexible and formal modeling of microprocessors with application to retargetable simulation , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.