SciELO - Scientific Electronic Library Online

vol.17 issue1Backpropagation through Time Algorithm for Training Recurrent Neural Networks using Variable Length InstancesFeature Selection using Associative Memory Paradigm and Parallel Computing author indexsubject indexsearch form
Home Pagealphabetic serial listing  

Services on Demand




Related links

  • Have no similar articlesSimilars in SciELO


Computación y Sistemas

On-line version ISSN 2007-9737Print version ISSN 1405-5546

Comp. y Sist. vol.17 n.1 Ciudad de México Jan./Mar. 2013




An Application of Fuzzy Logic for Hardware/Software Partitioning in Embedded Systems


Aplicación de lógica difusa para el particionado hardware/software en sistemas embebidos


Humberto Díaz Pando1, Sergio Cuenca Asensi2, Roberto Sepúlveda Lima1, Jenny Fajardo Calderín1 and Alejandro Rosete Suárez1


1 School of Informatics Engineering, CUJAE, Havana Cuba.

2 University of Alicante, Spain,,,


Article received on 07/10/2012
Accepted on 18/12/2012.



Hardware/Software partitioning (HSP) is a key task for embedded system co-design. The main goal of this task is to decide which components of an application are to be executed in a general purpose processor (software) and which ones, on a specific hardware, taking into account a set of restrictions expressed by metrics. In last years, several approaches have been proposed for solving the HSP problem, directed by metaheuristic algorithms. However, due to diversity of models and metrics used, the choice of the best suited algorithm is an open problem yet. This article presents the results of applying a fuzzy approach to the HSP problem. This approach is more flexible than many others due to the fact that it is possible to accept quite good solutions or to reject other ones which do not seem good. In this work we compare six metaheuristic algorithms: Random Search, Tabu Search, Simulated Annealing, Hill Climbing, Genetic Algorithm and Evolutionary Strategy. The presented model is aimed to simultaneously minimize the hardware area and the execution time. The obtained results show that Restart Hill Climbing is the best performing algorithm in most cases.

Keywords: Hardware/software co-design, hardware/software partitioning, metaheuristic algorithms.



El Particionado Hardware/Software (PHS) es una etapa fundamental en el co-diseño de sistemas embebidos. El objetivo principal de esta etapa es decidir que componentes de la aplicación serían ejecutados en un procesador de propósito general (software) y cuales en un hardware específico, teniendo en cuenta las restricciones. En los últimos anos, se han propuesto diferentes estrategias para resolver el problema PHS, las cuales utilizan en su mayoría algoritmos metaheurísticos. Sin embargo, debido a la diversidad de modelos y métricas utilizadas, decidir que algoritmo es mejor que otro es un problema abierto. Este artículo presenta los resultados de aplicar lógica difusa en el problema PHS. Esta estrategia es más flexible que muchas de las otras propuestas, ya que es posible aceptar soluciones bastante buenas o rechazar otras que no parezcan buenas. Además en este trabajo se comparan seis algoritmos metaheurísticos: Búsqueda aleatoria, Búsqueda tabú, Recocido simulado, Escalador de colinas, Algoritmo genético y Estrategia evolutiva. El modelo que se presenta está dirigido a minimizar de forma simultánea el área de hardware y el tiempo de ejecución del sistema. Los resultados muestran que el escalador de colinas es el algoritmo que obtiene mejores resultados en la mayoría de los casos.

Palabras clave: Co-diseño hardware/software, particionado hardware/software, algoritmos metaheurísticos.





1. Vahid, F. & Givargis, T. (2002). Embedded System Design: A Unified Hardware/Software Introduction. New York: Wiley.         [ Links ]

2. De Micheli, G. & Gupta, R.K. (2002). Hardware-software co-design. In G. De Micheli, R. Ernst, & W. Wolf, (Eds.), Readings in hardware/software co-design (30-44). San Francisco: Morgan Kaufmann Publishers.         [ Links ]

3. Wolf, W. (2003). A decade of hardware/software codesign. Computer, 36(4), 38-43.         [ Links ]

4. Arato, P., Mann, Z.A., & Orban, A. (2005). Algorithmic aspects of hardware/software partitioning. ACM Transactions on Design Automation of Electronic Systems (TODAES), 10(1), 136-156.         [ Links ]

5. Lopez-Vallejo, M. & Lopez, J.C. (2003). On the hardware-software partitioning problem: System modeling and partitioning techniques. ACM Transactions on Desing Automation of Electronic Systems (TODAES), 8(3), 269-297.         [ Links ]

6. Wu, J. & Srikanthan, T. (2006). Low-complex dynamic programming algorithm for hardware/software partitioning. Information Processing Letters, 98(2), 41-46.         [ Links ]

7. Jigang, W., Srikanthan, T., & Jiao, T. (2008). Algorithmic aspects for functional partitioning and scheduling in hardware/software co-design. Design Automation for Embedded Systems, 12(4), 345-375.         [ Links ]

8. Wu, J.G., Srikanthan, T., & Zou, G.W. (2008). New model and algorithm for hardware/software partitioning. Journal of Computer Science and Technology, 23(4), 644-651.         [ Links ]

9. Bhattacharya, A., Konar, A., Das, S., Grosan, C., & Abraham, A. (2008). Hardware software partitioning problem in embedded system design using particle swarm optimization algorithm. 2nd International Conference on Complex, Intelligent and Software Intensive Systems, Catalonia, Spain, 171-176.         [ Links ]

10. Farmahini-Farahani, A., Kamal, M., Fakhraie, S.M., & Safari, S. (2007). HW/SW partitioning using discrete particle swarm. 17th ACM Great Lakes symposium on VLSI (GLSVLSI '07), Stresa-Lago Maggiore, Italy, 359-364.         [ Links ]

11. Mann, Z.A. (2005). Partitioning algorithms for hardware/software co-design. Ph.D. dissertation, Budapest Univerity of Technology and Economics, Budapest, Hungary.         [ Links ]

12. Mourelle, L.M. & Nedjah, N. (2004). Efficient cryptographic hardware using the co-design methodology. International Conference on Information Technology: Coding and Computing (ITCC 2004), Las Vegas, Nevada, USA, 2, 508-512.         [ Links ]

13. Verdegay, J.L., Yager, R.R., & Bonissone, P.P. (2008). On heuristics as a fundamental constituent of soft computing. Fuzzy Sets Systems, 159(7), 846-855.         [ Links ]

14. Adhipathi, P. (2004). Model based approach to hardware/software partitioning of SOC designs. Master's thesis, Faculty of the Virginia Polytechnic Institute and State University, Blacksburg, Virginia, USA.         [ Links ]

15. 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 Transactions on Very Large Scale Integration Systems, 9(2), 273-289.         [ Links ]

16. Shaout, A., El-Mousa, A.H., & Mattar, K. (2010). Models of computation for heterogeneous embedded systems in Electronic Engineering and Computing Technology. Electronic Engineering and Computing Technology. Lecture Notes in Electrical Engineering, 60, 201-213.         [ Links ]

17. Cortes, L.A., Eles, P., & Peng, Z. (1999). A survey on hardware/software codesign representation models. Linkoping, Sweden: Linkoping University.         [ Links ]

18. Gupta, R.K. & De Micheli, G. (1993). Hardware-software cosynthesis for digital systems. IEEE Design & Test of Computers, 10(3), 29-41.         [ Links ]

19. Gohringer, D., Hubner, M., Benz, M., & Becker, J. (2010). A design methodology for application partitioning and architecture development of reconfigurable multiprocessor systems-on-chip. 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), Charlotte, NC, USA, 259-262.         [ Links ]

20. Ernst, R., Henkel, J., & Benner, T. (1993). Hardware-software cosynthesis for microcontrollers. IEEE Design & Test of computers, 10(4), 64-75.         [ Links ]

21. Jigang, W. & Srikanthan, T. (2006). Algorithmic aspects of area-efficient hardware/software partitioning. The Journal of Supercomputing, 38(3), 223-235.         [ Links ]

22. Vahid, F. (1997). Modifying min-cut for hardware and software functional partitioning. 5th International Workshop on Hardware/Software Co-Design (CODES/CASHE'97), Braunschweig, Germany, 43-48        [ Links ]

23. Wiangtong, T., Cheung, P.Y.K., & Luk, W. (2002). Comparing three heuristic search methods for functional partitioning in hardware-software codesign. Design Automation for Embedded Systems, 6(4), 425-449.         [ Links ]

24. Eles, P., Peng, Z., Kuchcinski, K., & Doboli, A. (1997). System level hardware/software partitioning based on simulated annealing and tabu search. Design Automation for Embedded Systems, 2(1), 5-32.         [ Links ]

25. Purnaprajna, M., Reformat, M., & Pedrycz, W. (2007). Genetic algorithms for hardware-software partitioning and optimal resource allocation. Journal of Systems Architecture: the EUROMICRO Journal, 53(7), 339-354.         [ Links ]

26. Madsen, J., Grode, J., Knudsen, P.V., Petersen, M.E., & Haxthausen, A. (1997). LYCOS: the lyngby co-synthesis system. Design Automation for Embedded Systems, 2(2), 195-235.         [ Links ]

27. López, M.L., Iglesias, C.A., & López, J.C. (1998). A knowledge-based system for hardware-software partitioning. Design, automation & test in Europe, Paris, France, 914-915.         [ Links ]

28. Huang, Y. & Kim, Y.S. (2007). Boltzmann Machine Incorporated Hybrid Neural Fuzzy System for Hardware/Software Partitioning in Embedded System Design. 4th International Conference on Modeling Decisions for Artificial Intelligence (MDAI '07), Kitakyushu, Japan, 307-317.         [ Links ]

29. Zhang, Y., Luo, W., Zhang, Z., Li, B., & Wang, X. (2008). A hardware/software partitioning algorithm based on artificial immune principles. Applied Soft Computing, 8(1), 383-391        [ Links ]

30. Rosete-Suárez, A., Nogueira-Keeling, A., Ochoa-Rodríguez, A., & Sebag, M. (1999). Hacia un enfoque general del trazado de grafos. Revista Iberoamericana de Inteligencia Artificial, 3(8), 18-26.         [ Links ]

31. Rosete-Suárez, A., Ochoa-Rodríguez, A., & Sebag, M. (1999). Automatic graph drawing and stochastic hill climbing. Genetic and Evolutionary Computation Conference, Orlando, Florida, USA, 2, 1699-1706.         [ Links ]

32. J. Fajardo & A. Rosete. (2011). Algoritmo multigenerador de soluciones para la competencia y colaboración de generadores metaheurísticos. Revista Internacional de Investigación de Operaciones (RIIO), 1.         [ Links ]

33. Loranca, M.B.B. & Galván, C.G. (2012). Búsqueda de entorno variable multiobjetivo para resolver el problema de particionamiento de datos espaciales con características poblacionales. Computacion y Sistemas, 16(3), 335-347.         [ Links ]

34. Gómez, J.C. & Terashima-Marfn, H. (2012). Building general hyper-heuristics for multi-objective cutting stock problems. Computación y Sistemas, 16(3), 321 -334.         [ Links ]

Creative Commons License All the contents of this journal, except where otherwise noted, is licensed under a Creative Commons Attribution License