Symmetric Multiprocessor Design for Hybrid CPU/FPGA SoCs
This paper presents the design of a Symmetric Multiprocessor (SMP) hybridthreads (hthreads) system that allows multiple threads to execute in parallel across multiple processors controlled by a single hardware scheduler. This approach increases the performance of software at a minimal cost to hardware. The issues that must be addressed for extending a uniprocessor kernel include system initialization, processor identification, context switching and concurrency control. As a proof of concept this paper shows how hthreads, an existing hardware/software co-designed kernel can be extended to control multiple processors from a single, centralized hardware scheduler. Analysis results from executing on hardware reveal that for computationally intensive programs the typical speedup is in the range of 1.65x. This shows improvement in system performance while also illustrating issues associated with bus arbitration and memory access times.
KeywordsContext Switching Multiple Processor Cache Coherency Memory Access Time Thread Manager
Unable to display preview. Download preview PDF.
- 1.Xilinx University Program, http://www.xilinx.com/univ/
- 2.Avnet Electronics Marketing, http://www.em.avnet.com/
- 3.Peck, W., Anderson, E., Agron, J., Stevens, J., Baijot, F., Andrews, D.: Hthreads: A Computational Model for Reconfigurable Devices (August 2006)Google Scholar
- 4.Agron, J., Peck, W., Anderson, E., Andrews, D., Komp, E., Sass, R., Baijot, F., Stevens, J.: Run-Time Services for Hybrid CPU/FPGA Systems on Chip (December 2006)Google Scholar
- 5.Andrews, D., Peck, W., Agron, J., Preston, K., Komp, E., Finley, M., Sass, R.: hThreads: A Hardware/Software Co-Designed Multithreaded RTOS Kernel (September 2005)Google Scholar
- 6.Hybridthreads - Wiki Page, http://wiki.ittc.ku.edu/hybridthread/Main_Page
- 7.Hybridthreads - Main Page, http://www.ittc.ku.edu/hybridthreads/
- 8.Sourceware: libc __malloc_lock/__malloc_unlock implementation, http://sourceware.org/newlib/libc.html
- 9.Xilinx - Programmable Logic Devices, http://www.xilinx.com
- 10.Silberschatz, A., Baer, P., Gagne, G., Gagne, G.: Operating System Concepts, 6th edn. (2001)Google Scholar
- 11.Xilinx: Designing Multiprocessor Systems in Platform Studio, http://direct.xilinx.com/bvdocs/whitepapers/wp262.pdf
- 12.Xilinx: Processor Local Bus (PLB) v3.4, http://www.xilinx.com/ipcenter/catalog/logicore/docs/plb_v34.pdf