ABSTRACT
Hardware/software partitioning is an increasingly common technique that maps critical regions of a software application into custom hardware to achieve application speedup. Most previous partitioning approaches assume that each application region has only a single hardware implementation. However, code regions typically can be implemented as many different versions that tradeoff performance and area, as in the case of a loop that can be unrolled by different amounts. We introduce a new formulation of hardware/software partitioning that integrates multiple versions of region implementations, improving performance by more than 27% on average compared to partitioning with a single implementation. We present an optimal ILP solution, and introduce an efficient heuristic that achieves solutions within 0% to 8% of the optimal while running in less than one second for large problem sizes.
- Chatha, K. and Vemuri, R. 2000. An iterative algorithm for partitioning, hardware design space exploration and scheduling of hardware-software systems. Design Automation for Embedded Systems Journal, No. 5, August 2000, pp 281--293,.Google Scholar
Digital Library
- Chatha, K. and Vemuri, R. 2001. MAGELLAN: multiway hardware-software partitioning and scheduling for latency minimization of hierarchical control-dataflow task graphs. In Proceedings of the International Workshop on Hardware/Software Codesign (CODES), pp. 42--47. Google Scholar
Digital Library
- CriticalBlue. http://www.criticalblue.com.Google Scholar
- EEMBC. http://www.eembc.org.Google Scholar
- Eles, P., Peng, Z., Kuchchinski, K., and Doboli, A. 1997. System level hardware/software partitioning based on simulated annealing and tabu search. Journal on Design Automation for Embedded Systems, Vol. 2, No. 1, pp. 5--32.Google Scholar
Digital Library
- Ernst, R. and Henkel, J. 1992. Hardware-software codesign of embedded controllers based on hardware extraction. In Proceedings of the International Workshop on Hardware/Software Codesign (CODES).Google Scholar
- Grode, J., Knudsen, P., and Madsen, J. 1998. Hardware resource allocation for hardware/software partitioning in the LYCOS system. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE), pp. 22---27. Google Scholar
Digital Library
- Gupta, R. and De Micheli, G. 1992. System-level synthesis using reprogrammable components. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE), pp. 2--7.Google Scholar
- Haubelt, C., Teich, J., Richter, K., and Ernst, R. 2002. System design for flexibility. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE), pp. 854--862. Google Scholar
Digital Library
- Henkel, J. 1999. A low power hardware/software partitioning approach for core-based embedded systems. In Proceedings of the Design Automation Conference (DAC), pp. 122--127. Google Scholar
Digital Library
- ILOG CPLEX. http://www.ilog.com/products/cplex/Google Scholar
- Kalavade, A. and Lee, E. 1994. A global criticality/local phase driven algorithm for the constrained hardware/software partitioning problem. In Proceedings of the International Workshop on Hardware/Software Codesign (CODES), pp. 42--48. Google Scholar
Digital Library
- Kalavade, A. and Subrahmanyam, P.A. 1997. Hardware/Software Partitioning for Multi-Function-Systems. In Proceedings of the International Conference on Computer-aided Design (ICCAD), pp.516--521. Google Scholar
Digital Library
- Lee, C., Potkonjak, M., and Magione-Smith, W. 1997. MediaBench: A tool for evaluating and synthesizing multimedia and communication systems. In Proceedings of the International Symposium on Microarchitecture (MICRO), pp. 330--335. Google Scholar
Digital Library
- Oh, H. and Ha, S. 2002. Hardware-software cosynthesis of multi-mode multi-task embedded systems with real-time constraints. In Proceedings of the International Workshop on Hardware/Software Codesign (CODES), pp.133--138. Google Scholar
Digital Library
- Ozre, E., Nisbet, A., and Gregg, D. 2004. Fine-tuning loop-level parallelism for increasing performance of DSP applications on FPGAs, In Proceedings of Symposium on FPGAs for Custom Computing Machines (FCCM), pp. 273--274. Google Scholar
Digital Library
- Pellerin, D. and Thibault, S. 2006. Evaluating hardware acceleration strategies using C-to-hardware tools. XCell Journal, Issue 58, pp. 16--18.Google Scholar
- Li, Y., Callahan, T., Darnell, E., Harr, R., Kurkure, U., and Stockwood, J. 2000. Hardware-software co-design of embedded reconfigurable architectures. In Proceedings of the Design Automation Conference (DAC), pp.507--512. Google Scholar
Digital Library
- So, B., Hall, M., and Diniz, P. 2002. A compiler approach to fast hardware design space exploration in FPGA-based systems. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI ), pp. 165--176. Google Scholar
Digital Library
- Srinivasan, V., Radhakrishnan, S., and Vemuri, R. 1998. Hardware/software partitioning with integrated hardware design space exploration. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE), pp. 28--35. Google Scholar
Digital Library
- Stitt, G. 2008. Hardware/software partitioning with multi-version implementation exploration. Technical Report, February 2008. University of Florida.Google Scholar
- Stitt, G., Lysecky, R., and Vahid, F. 2003. Dynamic hardware/software partitioning: a first approach. In Proceedings of the Design Automation Conference (DAC), pp. 250--255. Google Scholar
Digital Library
- Stitt, G., Vahid, F., McGregor, G., and Einloth, B. 2005. Hardware/software partitioning of software binaries: a case study of H.264 decode. In Proceedings of the International Conference on Hardware/Software Codesign and System Synthesis (CODES/ISSS), pp. 285--290. Google Scholar
Digital Library
- Vahid, F. and Gajski, D. 1995. Incremental hardware estimation during hardware/software functional partitioning. IEEE Transactions on VLSI Systems, Vol. 3, No. 3, September 1995, pp. 459--464. Google Scholar
Digital Library
- XPRES Compiler. http://www.tensilica.com/html/xpres.html.Google Scholar
- Yamada, T., Kataoka, S., and Watanabe, K. 2002. Heuristic and exact algorithms for the disjunctively constrained knapsack problem. Information Processing Society of Japan Journal, Vol. 43, No. 9, pp. 2864--2870.Google Scholar
Index Terms
Hardware/software partitioning with multi-version implementation exploration
Recommendations
Dynamic hardware/software partitioning: a first approach
DAC '03: Proceedings of the 40th annual Design Automation ConferencePartitioning an application among software running on a microprocessor and hardware co-processors in on-chip configurable logic has been shown to improve performance and energy consumption in embedded systems. Meanwhile, dynamic software optimization ...
Hardware/software partitioning of software binaries
ICCAD '02: Proceedings of the 2002 IEEE/ACM international conference on Computer-aided designPartitioning an embedded system application among a microprocessor and custom hardware has been shown to improve the performance, power or energy of numerous examples. The advent of single-chip microprocessor/FPGA platforms makes such partitioning even ...
Energy savings and speedups from partitioning critical software loops to hardware in embedded systems
We present results of extensive hardware/software partitioning experiments on numerous benchmarks. We describe our loop-oriented partitioning methodology for moving critical code from hardware to software. Our benchmarks included programs from ...





Comments