Abstract
Embedded systems are widely used in many sophisticated applications. To speed the time-to-market cycle, the hardware and software co-design has become one of the main methodologies in modern embedded systems. The most important challenge in the embedded system design is partitioning; i.e. deciding which modules of the system should be implemented in hardware and which ones in software. Finding an optimal partition is hard because of the large number and different characteristics of the modules that have to be considered.
In this article, we develop a new high-level hardware/software partitioning methodology. Two novel features characterize this methodology. Firstly, the Particle Swarm Optimization (PSO) technique is introduced to the Hardware/Software partitioning field. Secondly, the hardware is modeled using two extreme implementations that bound different hardware scheduling alternatives. Our methodology further partitions the design into hardware and software modules at the early Control-Data Flow Graph (CDFG) level of the design; thanks to improved modeling techniques using intermediate-granularity functional modules. A new restarting technique is applied to PSO to avoid quick convergence. This technique is called Re-Excited PSO. Our numerical results prove the usefulness of the proposed technique.
The target technology is Field Programmable Gate Arrays (FPGAs). We developed FPGA-based estimation techniques to evaluate the costs of implementing the design components. These costs are the area, delay, latency, and power consumption for both the hardware and software implementations. Hardware/software communication is also taken into consideration.
The aforementioned methodology is embodied in an integrated CAD tool for hardware/software co-design. This tool accepts behavioral, un-timed, algorithmic-level, VHDL, design representation, and outputs a valid hardware/software partition and schedule for the design subject to a set of area/power/delay constraints. This tool is code named CUPSHOP for (Cairo University PSo-based Hardware/sOftware Partitioning tool). Finally, a JPEG-encoder case study is used to validate and contrast our partitioning methodology against the prior-art methodologies.
Similar content being viewed by others
References
Abdelhalim MB, Habib SE-D (2007) Fast FPGA-based delay estimation for a novel hardware/software partitioning scheme. In: Proceedings of the 2nd international design and test workshop, Cairo, Egypt, pp 175–181
Abdelhalim MB, Habib SE-D (2008) Fast FPGA-based area and latency estimation for a novel hardware/software partitioning scheme. In: Proceedings of the 21st Canadian conference on electrical and computer engineering, Niagara Falls, Ontario, Canada, pp 775–779
Abdelhalim MB, Habib SE-D (2008) Fast hardware upper-bound power estimation for a novel FPGA-based HW/SW partitioning scheme. In: Proceedings of the IEEE computer society annual symposium on VLSI, Montpellier, France, pp 393–398
Abdelhalim MB, Salama AE, Habib SE-D (2006) Hardware software partitioning using particle swarm optimization technique. In: Proceedings of the 6th intl workshop on SOC for real-time applications, IWSOC’06, Cairo, Egypt, 2006, pp 189–194
Abdelhalim MB, Salama AE, Habib SE-D (2007) Constrained and unconstrained hardware software partitioning using particle swarm optimization technique. In: Proceedings of the 2nd international embedded system symposium, Irvine, CA, USA, pp 207–220
Adhipathi P (2004) Model based approach to hardware/software partitioning of SOC designs. MSc Thesis, Virginia Polytechnic Institute and State University, USA
Altera (2003). Apex 20 K device family architecture. Handbook
Altera (2005) Avalon interface specification, Version 3.1
Altera (2006) NIOS-II processor reference handbook
Altera (2007) Cyclone device handbook
Altera (2007) Quartus II Version 7.1 handbook—volume 4: SOPC builder
Altera (2008) Cyclone PowerPlay early power estimator
Armstrong JR, Adhipathi P, Baker JM Jr (2002) Model and synthesis directed task assignment for systems on a chip. In: 15th international conference on parallel and distributed computing systems, Cambridge, USA
Binh NN, Imai M, Shiomi A, Hikichi N (1996) A hardware/software partitioning algorithm for designing pipelined ASIPs with least gate counts. In: Proceedings of 33rd design automation conference, Las Vegas, Nevada, USA, pp 527–532
Chatha KS, Vemuri R (2001) MAGELLAN: multiway hardware-software partitioning and scheduling for latency minimization of hierarchical control-dataflow task graphs. In: Proceedings of the 9th international symposium on hardware/software codesign, Copenhagen, Denmark, pp 42–47
Chen D, Cong J, Fan Y, Zhang Z (2007) High-level power estimation and low-power design space exploration for FPGAs. In: ASPDAC’07, Yokohama, Japan, pp 529–534
Chen W, Smith CH, Fralick S (1977) A fast computation algorithm for the DCT. IEEE Trans Commun 25:1004–1009
De Holanda JA, Assumpcao J, Wolf DF, Marques E, Cardoso JM (2007) On adapting power estimation models for embedded soft-core processors. In: International symposium on industrial embedded systems, Costa da Caparica, Portugal, pp 345–348
De Micheli G (1994) Synthesis and optimization of digital circuits. McGraw Hill, New York
De Souza DC, De Barros MA, Naviner LAB, Neto BGA (2003) On relevant quality criteria for optimized partitioning methods. In: Proceedings of 45th midwest symposium on circuits and systems, Cairo, Egypt, pp 1502–1505
Ditzel M (2004) Power-aware architecting for data-dominated applications. PhD thesis, Delft University of Technology, The Netherlands
Eberhart RC, Kennedy J (1995) A new optimizer using particle swarm theory. In: Proceedings of the 6th international symposium on micro-machine and human science, Nagoya, Japan, pp 39–43
Eberhart RC, Shi Y (2001) Particle swarm optimization: developments, applications and resources. In: Proceedings of 2001 congress on evolutionary computation, Seoul, Korea, pp 81–86
Eles P, Peng Z, Kuchcinski K, Doboli A (1997) System level HW/SW partitioning based on simulated annealing and tabu search. Des Autom Embed Syst 2(1):5–32
Ernest RL (1997) Target architectures. In: Staunstrup J, Wolf W (eds) Hardware/software co-design: principles and practice. Kluwer Academic, Dordrecht, pp 113–148
Hanselman D, Littlefield B (2001) Mastering MATLAB 6. Prentice Hall, New York
Hassan R, Cohanim B, de Weck O, Venter G (2005) A comparison of particle swarm optimization and the genetic algorithm. In: 1st AIAA multidisciplinary design optimization specialist conference, Austin, Texas
Haupt RL, Haupt SE (2004) Practical genetic algorithms, 2nd edn. Wiley Interscience, New York
Henkel J, Ernst R (2001) 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 (VLSI) Syst 9(2):273–289
Jeon J, Ahn Y, Choi K (2002) CDFG toolkit user’s guide. Technical Report No. SNU-EE-TR-2002-8. School of Electronic Engineering, Seoul National University, South Korea
Jerraya AA, Romdhani M, Valderama C, Le Marrec AP, Hessel F, Marchioro GF, Daveau JM (1997) Languages for system-level specification and design. In: Staunstrup J, Wolf W (eds) Hardware/software co-design: principles and practice. Kluwer Academic, Dordrecht, pp 113–148
Jha NK, Dick RP (1998) MOGAC: a multiobjective genetic algorithm for hardware-software co-synthesis of distributed embedded systems. IEEE Trans Comput-Aided Des Integr Circuits Syst 17(10):920–935
Jigang W, Srikanthan T, Chaen G (2010) Algorithmic aspects of hardware/software partitioning: 1D search algorithms. IEEE Trans Comput 59(4):532–544
Jonsson B (2005) A JPEG encoder in SystemC. MSc thesis, Lulea University of Technology, Sweden
Kalavade A, Lee EA (1994) A global criticality/local phase driven algorithm for the constrained hardware/software partitioning problem. In: Proceedings of 3rd international workshop on hardware/software codesign, Grenoble, France, pp 42–48
Kalavade A, Lee EA (2002) The extended partitioning problem: hardware-software mapping and implementation-bin selection. In: De Micheli G, Ernest RL, Wolf W (eds) Readings in hardware/software co-design. Morgan Kaufmann, San Mateo, pp 293–312
Kennedy J, Eberhart RC (1995) Particle swarm optimization. In: Proceedings of IEEE international conference on neural networks, Perth, Australia, pp 1942–1948
Knudsen PV, Madsen J (1996) PACE: a dynamic programming algorithm for hardware/software partitioning. In: 4th international workshop on hardware/software co-design, Pittsburgh, Pennsylvania, USA, pp 85–92
Lee TY, Fan YH, Cheng YM, Tsai CC, Hsiao RS (2007) Hardware-oriented partition for embedded multiprocessor FPGA systems. In: Proceedings of the second international conference on innovative computing, information and control, Kumamoto, Japan, pp 65–68
Lee TY, Fan YH, Cheng YM, Tsai CC, Hsiao RS (2007) An efficiently hardware-software partitioning for embedded multiprocessor FPGA system. In: Proceedings of international multiconference of engineers and computer scientists, Hong Kong, pp 346–351
Lee TY, Fan YH, Cheng YM, Tsai CC, Hsiao RS (2007) Enhancement of hardware-software partition for embedded multiprocessor FPGA systems. In: Proceedings of the 3rd international conference on international information hiding and multimedia signal processing, Kaohsiung, Taiwan, pp 19–22
Li F, Lin Y, He L, Chen D, Cong J (2005) Power modeling and characteristics of field programmable gate arrays. IEEE Trans Comput-Aided Integr Circuits Syst 24(11):1712–1724
Lin F, Wang H, Bian J (2005) HW/SW interface synthesis based on Avalon bus specification for NIOS-oriented SoC design. In: Proceedings of the international conference on field-programmable technology, Kent Ridge Guild House, Singapore, pp 305–306
Lin TY, Hung YT, Chang RG (2006) Efficient hardware/software partitioning approach for embedded multiprocessor systems. In: Proceedings of international symposium on VLSI design, automation and test, Hsinchu, Taiwan, pp 231–234
Lopez-Vallejo M, Lopez JC (2003) On the hardware-software partitioning problem: system modeling and partitioning techniques. ACM Trans Des Autom Electron Syst 8(3):269–297
Luenberger DG (1984) Linear and non-linear programming. Addison-Wesley, Reading
Luthra M, Gupta S, Dutt N, Gupta R, Nicolau A (2003) Interface synthesis using memory mapping for an FPGA platform. In: Proceedings of the 21st international conference on computer design, San Jose, CA, USA, pp 140–145
Madsen J, Gorde J, Knudsen PV, Petersen ME, Haxthausen A (1997) LYCOS: the lyngby co-synthesis system. Des Autom Embed Syst 2(2):195–236
Mann ZA (2004) Partitioning algorithms for hardware/software co-design. PhD thesis, Budapest University of Technology and Economics, Hungary
Marrec PL, Valderrama CA, Hessel F, Jerraya AA, Attia M, Cayrol O (1998) Hardware, software and mechanical cosimulation for automotive applications. In: Proceedings of 9th international workshop on rapid system prototyping, Leuven, Belgium, pp 202–206
Mei B, Schaumont P, Vernalde S (2000) A hardware/software partitioning and scheduling algorithm for dynamically reconfigurable embedded systems. In: Proceedings of 11th ProRISC, Veldhoven, Netherlands
Nieman R (1998) Hardware/software co-design for data flow dominated embedded systems. Kluwer Academic, Dordrecht
Poli R (2008) Analysis of the publications on the applications of particle swarm optimization. J Artif Evol Appl 2008:685175
Shi Y, Eberhart RC (1998) Parameter selection in particle swarm optimization. In: Proceedings of 7th annual conference on evolutionary computation, New York, USA, pp 591–601
Shi Y, Eberhart RC (1999) Empirical study of particle swarm optimization. In: Proceedings of the 1999 congress on evolutionary computation, Washington DC, USA, pp 1945–1950
Stitt G (2008) Hardware/software partitioning with multi-version implementation exploration. In: Proceedings of great lakes symposium in VLSI, Orlando, Florida, USA, pp 143–146
Stitt G, Vahid F, McGregor G, Einloth B (2005) Hardware/software partitioning of software binaries: a case study of H.264 decoder. In: IEEE/ACM CODES+ISSS’05, New York, USA, pp 285–290
Tiwari V, Malik S, Wolfe A (1994) Power analysis of embedded software: a first step towards software power minimization. IEEE Trans Very Large Scale Integr (VLSI) Syst 2(4):437–445
Tong Q, Zou X, Tong H, Gao F, Zhang Q (2008) Hardware/software partitioning in embedded system based on novel united evolutionary algorithm scheme. In: 2nd international conference on computer and electrical engineering, Phuket Island, Thailand, pp 141–144
Vahid F (2002) Partitioning sequential programs for CAD using a three-step approach. ACM Trans Des Autom Electron Syst 7(3):413–429
Xilinx Inc (2007) Virtex-II Pro and Virtex-II Pro X platform FPGAs: complete data sheet
Zheng YL, Ma LH, Zhang LY, Qian JX (2003) On the convergence analysis and parameter selection in particle swarm optimization. In: Proceedings of the 2nd international conference on machine learning and cybernetics, Xi-an, China, pp 1802–1807
Zou Y, Zhuang Z, Cheng H (2004) HW-SW partitioning based on genetic algorithm. In: Proceedings of congress on evolutionary computation, Anhui, China, pp 628–633
Author information
Authors and Affiliations
Corresponding author
Additional information
This research is an extended version of IESS 2007 conference paper [5].
Rights and permissions
About this article
Cite this article
Abdelhalim, M.B., Habib, S.ED. An integrated high-level hardware/software partitioning methodology. Des Autom Embed Syst 15, 19–50 (2011). https://doi.org/10.1007/s10617-010-9068-9
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-010-9068-9