Abstract
Hardware/software partitioning is a crucial step in hardware/software co-design for energy-efficient, high-performance systems. Previous research efforts mainly focused on single processor architecture. Their methods can not produce high-quality solutions to the problem of hardware/software partitioning for multiprocessor systems. In this paper, we propose two algorithms for hardware/software partitioning problem on MPSoC, to minimize power consumption with time and area constraints. The Tree_Partitioning algorithm generates optimal partitioning results for tree-structured control-flow graphs using dynamic programming. For the general partitioning problem, we propose the DAG_Partitioning algorithm to produce near optimal solution efficiently for directed-acyclic graphs. The experimental results show that our proposed algorithms outperform existing techniques for a set of benchmarks with various time and area constraints.
Similar content being viewed by others
References
Arató, P., Juhász, S., Mann, Z.Á., Orbán, A., Papp, D.: Hardware-software partitioning in embedded system design. In: Intelligent Signal Processing, 2003 IEEE International Symposium on, pp. 197–202 (2003)
Arató, P., Mann, Z.Á., Orbán, A.: Algorithmic aspects of hardware/software partitioning. ACM Trans. Des. Autom. Electron. Syst. 10(1), 136–156 (2005)
Bakshi, S., Gajski, D.D.: Hardware/software partitioning and pipelining. In: Proceedings of the 34th annual Design Automation Conference, pp. 713–716. ACM (1997)
Bình, N.N., Imai, M., Shiomi, A., Hikichi, N.: A hardware/software partitioning algorithm for designing pipelined asips with least gate counts. In: Design Automation Conference Proceedings 1996, 33rd, pp. 527–532 (1996)
Blickle, T., Teich, J., Thiele, L.: System-level synthesis using evolutionary algorithms. Des. Autom. Embed. Syst. 3(1), 23–58 (1998)
Chatha, K.S., Vemuri, R.: An iterative algorithm for hardware-software partitioning, hardware design space exploration and scheduling. Des. Autom. Embed. Syst. 5(3–4), 281–293 (2000)
Chatha, K.S., Vemuri, R.: Magellan: multiway hardware-software partitioning and scheduling for latency minimization of hierarchical control-dataflow task graphs. In: Proceedings of the Ninth International Symposium on Hardware/Software, Codesign, pp. 42–47 (2001)
Chatha, K.S., Vemuri, R.: Hardware-software partitioning and pipelined scheduling of transformative applications. IEEE Trans. Very Large Scale Integr. Syst. 10(3), 193–208 (2002)
Dick, R.P., Jha, N.K.: Mogac: A multiobjective genetic algorithm for hardware-software cosynthesis of distributed embedded systems. IEEE Trans. Comput. Aid. Des. Integr. Circuits Syst. 17(10), 920–935 (1998)
Dick, R.P., Rhodes, D.L., Wolf, W.: Tgff: task graphs for free. In: Proceedings of the 6th International Workshop on Hardware/Software Codesign, pp. 97–101. IEEE Computer Society (1998)
Eles, P., Peng, Z., Kuchcinski, K., Doboli, A.: System level hardware/software partitioning based on simulated annealing and tabu search. Des. Autom. Embed. Syst. 2(1), 5–32 (1997)
Gohringer, D., Becker, J.: High performance reconfigurable multi-processor-based computing on fpgas. In: 2010 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum, pp. 1–4 (2010)
Goodacre, J., Sloss, A.N.: Parallelism and the arm instruction set architecture. Computer 38(7), 42–50 (2005)
Grode, J., Knudsen, P.V., Madsen, J.: Hardware resource allocation for hardware/software partitioning in the lycos system. In: Proceedings of the Design, Automation and Test in Europe, pp. 22–27 (1998)
Henkel, J., Ernst, R.: An approach to automated hardware/software partitioning using a flexible granularity that is driven by high-level estimation techniques. IEEE Trans. Very Large Scale Integr. Syst. 9(2), 273–289 (2001)
Jiang, Y., Zhang, H., Jiao, X., Song, X., Hung, W.N., Gu, M., Sun, J.: Uncertain model and algorithm for hardware/software partitioning. In: VLSI, 2012 IEEE Computer Society Annual Symposium on, pp. 243–248 (2012)
Jigang, W., Chang, B., Srikanthan, T.: A hybrid branch-and-bound strategy for hardware/software partitioning. In: Computer and Information Science, Eighth IEEE/ACIS International Conference on, pp. 641–644 (2009)
Jigang, W., Srikanthan, T.: Algorithmic aspects of area-efficient hardware/software partitioning. J. Supercomput. 38(3), 223–235 (2006)
Jigang, W., Srikanthan, T., Chen, G.: Algorithmic aspects of hardware/software partitioning: 1D search algorithms. IEEE Trans. Comput. 59(4), 532–544 (2010)
Jigang, W., Srikanthan, T., Jiao, T.: Algorithmic aspects for functional partitioning and scheduling in hardware/software co-design. Des. Autom. Embed. Syst. 12(4), 345–375 (2008)
Kalavade, A., Subrahmanyam, P.: Hardware/software partitioning for multifunction systems. IEEE Trans. Comput. Aid. Des. Integr. Circuits Syst. 17(9), 819–837 (1998)
Lee, T.Y., Fan, Y.H., Tsai, C.C.: Adaptive multi-constraints in hardware-software partitioning for embedded multiprocessor fpga systems. WSEAS Trans. Comput. 8(2), 334–343 (2009)
Lin, T.Y., Hung, Y.T., Chang, R.G.: Efficient hardware/software partitioning approach for embedded multiprocessor systems. In: VLSI Design, Automation and Test, 2006 International Symposium on, pp. 1–4 (2006)
López-Vallejo, M., López, J.C.: On the hardware-software partitioning problem: System modeling and partitioning techniques. ACM Trans. Des. Autom. Electron. Syst. 8(3), 269–297 (2003)
Madsen, J., Grode, J., Knudsen, P.V., Petersen, M.E., Haxthausen, A.: Lycos: The lyngby co-synthesis system. Des. Autom. Embed. Syst. 2(2), 195–235 (1997)
Niemann, R., Marwedel, P.: Hardware/software partitioning using integer programming. In: Proceedings of the 1996 European Conference on Design and Test, p. 473. IEEE Computer Society (1996)
Niemann, R., Marwedel, P.: An algorithm for hardware/software partitioning using mixed integer linear programming. Des. Autom. Embed. Syst. 2(2), 165–193 (1997)
Srinivasan, V., Radhakrishnan, S., Vemuri, R.: Hardware software partitioning with integrated hardware design space exploration. In: Design, Automation and Test in Europe, 1998, Proceedings, pp. 28–35 (1998)
Vahid, F.: Partitioning sequential programs for cad using a three-step approach. ACM Trans. Des. Autom. Electron. Syst. 7(3), 413–429 (2002)
Vahid, F., Gajski, D.D.: Clustering for improved system-level functional partitioning. In: System Synthesis, 1995, Proceedings of the Eighth International Symposium on, pp. 28–33 (1995)
Vertex, Xilinx Inc., http://www.xilinx.com
Wiangtong, T., Cheung, P.Y., Luk, W.: Comparing three heuristic search methods for functional partitioning in hardware-software codesign. Des. Autom. Embed. Syst. 6(4), 425–449 (2002)
Wiangtong, T., Cheung, P.Y., Luk, W.: Hardware/software codesign: A systematic approach targeting data-intensive applications. IEEE Signal Process. Mag. 22(3), 14–22 (2005)
Wolf, W., Jerraya, A.A., Martin, G.: Multiprocessor system-on-chip (mpsoc) technology. IEEE Trans. Comput. Aid. Des. Integr. Circuits Syst. 27(10), 1701–1713 (2008)
Wu, J., Srikanthan, T.: Low-complex dynamic programming algorithm for hardware/software partitioning. Inf. Process. Lett. 98(2), 41–46 (2006)
Wu, J., Srikanthan, T., Yan, C.: Algorithmic aspects for power-efficient hardware/software partitioning. Math. Comput. Simul. 79(4), 1204–1215 (2008)
Zivojnovic, V., Velarde, J.M., Schlager, C., Meyr, H.: Dspstone: A dsp-oriented benchmarking methodology. Signal Process. Appl. Technol. 94 (1994)
Acknowledgments
This work is partially supported by NSF CNS-1015802, Texas NHARP 009741-0020-2009, NSFC 61173014, National 863 Program 2013AA013202, Chongqing cstc2012ggC40005.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Sha, E., Wang, L., Zhuge, Q. et al. Power Efficiency for Hardware/Software Partitioning with Time and Area Constraints on MPSoC. Int J Parallel Prog 43, 381–402 (2015). https://doi.org/10.1007/s10766-013-0283-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-013-0283-4