A Light-Weight Cooperative Multi-threading with Hardware Supported Thread-Management on an Embedded Multi-Processor System
Bo-Cheng Charles Lai, Patrick R. Schaumont, Ingrid M.R. Verbauwhede · 2006
This paper proposes a light-weight cooperative multithreading programming model for an embedded multiprocessor 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. I.