<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>2227-1899</journal-id>
<journal-title><![CDATA[Revista Cubana de Ciencias Informáticas]]></journal-title>
<abbrev-journal-title><![CDATA[Rev cuba cienc informat]]></abbrev-journal-title>
<issn>2227-1899</issn>
<publisher>
<publisher-name><![CDATA[Editorial Ediciones Futuro]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S2227-18992015000100008</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Partición hardware software de un codificador JPEG utilizando escalador de colinas estocástico]]></article-title>
<article-title xml:lang="en"><![CDATA[JPEG encoder hardware software partitioning using stochastic hill climbing optimization technique]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Díaz Pando]]></surname>
<given-names><![CDATA[Humberto]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Sepúlveda Lima]]></surname>
<given-names><![CDATA[Roberto]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Rosete Suárez]]></surname>
<given-names><![CDATA[Alejandro]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Cuenca Asensi]]></surname>
<given-names><![CDATA[Sergio]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Facultad de Ingeniería Informática Instituto Superior Politécnico José Antonio Echevarría ]]></institution>
<addr-line><![CDATA[Marianao La Habana]]></addr-line>
<country>Cuba</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad de Alicante  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
<country>España</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>03</month>
<year>2015</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>03</month>
<year>2015</year>
</pub-date>
<volume>9</volume>
<numero>1</numero>
<fpage>94</fpage>
<lpage>108</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S2227-18992015000100008&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S2227-18992015000100008&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S2227-18992015000100008&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[La partición hardware/software es una etapa clave dentro del proceso de co-diseño de los sistemas embebidos. En esta etapa se decide qué componentes serán implementados como co-procesadores de hardware y qué componentes serán implementados en un procesador de propósito general. La decisión es tomada a partir de la exploración del espacio de diseño, evaluando un conjunto de posibles soluciones para establecer cuál de estas es la que mejor balance logra entre todas las métricas de diseño. Para explorar el espacio de soluciones, la mayoría de las propuestas, utilizan algoritmos metaheurísticos; destacándose los Algoritmos Genéticos, Recocido Simulado. Esta decisión, en muchos casos, no es tomada a partir de análisis comparativos que involucren a varios algoritmos sobre un mismo problema. En este trabajo se presenta la aplicación de los algoritmos: Escalador de Colinas Estocástico y Escalador de Colinas Estocástico con Reinicio, para resolver el problema de la partición hardware/software. Para validar el empleo de estos algoritmos se presenta la aplicación de este algoritmo sobre un caso de estudio, en particular la partición hardware/software de un codificador JPEG. En todos los experimentos es posible apreciar que ambos algoritmos alcanzan soluciones comparables con las obtenidas por los algoritmos utilizados con más frecuencia.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[Hardware/software partitioning is a key task for embedded system co-design. The goal of this task is to decide which components of an application will be executed in a general purpose processor (software) and which ones on a specific hardware. To support this decision a design space exploration is executed, by the evaluation of several solutions to establish the best trade-off reached. To accomplish this task, metaheuristics algorithms are used by the most proposals; highlighting Genetic Algorithms and Simulated Annealing. Many times this decision is not taken by a comparative study over several algorithms. In this article the application of Stochastic Hill Climbing and Restart Stochastic Hill Climbing for solving the hardware/software partitioning problem is presented. A case study of JPEG encoder is presented. The results show that comparable solutions are reached by those algorithms.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[codificador JPEG]]></kwd>
<kwd lng="es"><![CDATA[escalador de colinas estocástico]]></kwd>
<kwd lng="es"><![CDATA[escalador de colinas estocástico con reinicio]]></kwd>
<kwd lng="es"><![CDATA[partición hardware/software]]></kwd>
<kwd lng="en"><![CDATA[hardware/software partitioning]]></kwd>
<kwd lng="en"><![CDATA[JPEG encoder]]></kwd>
<kwd lng="en"><![CDATA[restart stochastic hill climbing]]></kwd>
<kwd lng="en"><![CDATA[stochastic hill climbing]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><B> ART&Iacute;CULO  ORIGINAL</B></font></p>     <p>&nbsp;</p>     <p><font size="4"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Partici&oacute;n hardware software  de un codificador JPEG utilizando escalador de colinas estoc&aacute;stico</font></strong></font></p>     <p>&nbsp;</p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>JPEG encoder hardware software partitioning using  stochastic hill climbing optimization technique</strong></font></p>     <p>&nbsp;</p>     <p>&nbsp;</p>     <p align="left"><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Humberto D&iacute;az  Pando<strong><strong><strong><strong><strong><sup>1*</sup></strong></strong></strong></strong></strong></font></strong><font face="Verdana, Arial, Helvetica, sans-serif"><strong>, Roberto Sep&uacute;lveda  Lima<strong><strong><strong><strong><sup>1</sup></strong></strong></strong></strong>, Alejandro  Rosete Su&aacute;rez<strong><strong><strong><strong><sup>1</sup></strong></strong></strong></strong>, Sergio Cuenca  Asensi<strong><strong><strong><strong><sup>2</sup></strong></strong></strong></strong></strong></font></font></p>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>1 </sup>Facultad de Ingenier&iacute;a  Inform&aacute;tica, Instituto  Superior Polit&eacute;cnico Jos&eacute; Antonio Echevarr&iacute;a, Calle 114 No 11901 e/ Ciclov&iacute;a y  Rotonda, Marianao, La Habana, Cuba.</font>    <br> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>2 </sup>Universidad  de Alicante, Espa&ntilde;a.</font></p>     ]]></body>
<body><![CDATA[<P><font face="Verdana, Arial, Helvetica, sans-serif"><span class="class"><font size="2">*Autor para la correspondencia: </font></span><font size="2"><a href="mailto:hdiazp@ceis.cujae.edu.cu">hdiazp@ceis.cujae.edu.cu</a></font></font><font size="2"></font>     <p>&nbsp;</p>     <p>&nbsp;</p> <hr>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>RESUMEN</b> </font>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La partici&oacute;n hardware/software  es una etapa clave dentro del proceso de co-dise&ntilde;o de los sistemas embebidos.  En esta etapa se decide qu&eacute; componentes ser&aacute;n implementados como co-procesadores  de hardware y qu&eacute; componentes ser&aacute;n implementados en un procesador de prop&oacute;sito  general. La decisi&oacute;n es tomada a partir de la exploraci&oacute;n del espacio de dise&ntilde;o,  evaluando un conjunto de posibles soluciones para establecer cu&aacute;l de estas es  la que mejor balance logra entre todas las m&eacute;tricas de dise&ntilde;o. Para explorar el  espacio de soluciones, la mayor&iacute;a de las propuestas, utilizan algoritmos metaheur&iacute;sticos;  destac&aacute;ndose los Algoritmos Gen&eacute;ticos, Recocido Simulado. Esta decisi&oacute;n, en  muchos casos, no es tomada a partir de an&aacute;lisis &nbsp;comparativos que involucren a varios  algoritmos sobre un mismo problema. En este trabajo se presenta la aplicaci&oacute;n &nbsp;de los algoritmos: Escalador de Colinas Estoc&aacute;stico  y Escalador de Colinas Estoc&aacute;stico con Reinicio, para resolver el problema de  la partici&oacute;n hardware/software. Para validar el empleo de estos algoritmos se  presenta la aplicaci&oacute;n &nbsp;de este algoritmo  sobre un caso de estudio, en particular la partici&oacute;n hardware/software de un  codificador JPEG. En todos los experimentos es posible apreciar que ambos  algoritmos alcanzan soluciones comparables con las obtenidas por los algoritmos  utilizados con m&aacute;s &nbsp;frecuencia.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Palabras clave: </span></b>codificador  JPEG, escalador de colinas estoc&aacute;stico, escalador de colinas estoc&aacute;stico con  reinicio, partici&oacute;n hardware/software.</font></p> <hr>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>ABSTRACT</span></b> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Hardware/software partitioning is a key task for embedded system  co-design. The goal of this task is to decide which components of an  application will be executed in a general purpose processor (software) and  which ones on a specific hardware. To support this decision a design space  exploration is executed, by the evaluation of several solutions to establish  the best trade-off reached. To accomplish this task, metaheuristics algorithms  are used by the most proposals; highlighting Genetic Algorithms and Simulated  Annealing. Many times this decision is not taken by a comparative study over  several algorithms. In this article the application of Stochastic Hill Climbing  and Restart Stochastic Hill Climbing for solving the hardware/software  partitioning problem is presented. A case study of JPEG encoder is presented.  The results show that comparable solutions are reached by those algorithms.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Key words: </span></b>hardware/software partitioning, JPEG encoder, restart  stochastic hill climbing, stochastic hill climbing.</font></p> <hr>     <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>INTRODUCCI&Oacute;N</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La Partici&oacute;n Hardware/Software  (PHS) de sistemas embebidos es considerada la etapa m&aacute;s &nbsp;importante en el co-dise&ntilde;o de sistemas  embebidos (Wolf, 2003; De Micheli and Gupta, 1997; Vahid and Givargis, 2002).  Esta etapa define la forma en que ser&aacute; implementado el sistema, teniendo en  cuenta la arquitectura del dispositivo de hardware. El resultado es una especificaci&oacute;n  de qu&eacute; componentes del sistema ser&aacute;n implementados en un co-procesador de  hardware y qu&eacute; componentes ser&aacute;n implementados sobre un procesador de prop&oacute;sito  general. La partici&oacute;n encontrada est&aacute; en correspondencia con los requisitos  impuestos por el usuario final.    <br>       <br>   Durante las &uacute;ltimas  d&eacute;cadas, varios modelos L&oacute;pez-Vallejo and L&oacute;pez (2003); Mann (2004); Jigang and  Srikanthan (2006b); Amin <em>et al.</em> (2007); Jigang <em>et al.</em> (2008b, a);  Bhattacharya <em>et al.</em> (2008) han sido  propuestos. Estos modelos, permiten llegar a una soluci&oacute;n, que si bien en  algunos casos pudiera ser un &oacute;ptimo local, es aceptada como suficientemente  buena. Los algoritmos metaheur&iacute;sticos son ampliamente utilizados en estos  modelos para realizar la exploraci&oacute;n del espacio de b&uacute;squeda &nbsp;y obtener la mejor soluci&oacute;n al problema PHS.  En muchos de estos modelos la selecci&oacute;n &nbsp;del algoritmo no est&aacute; fundamentada en un  estudio comparativo, predominando un criterio de conveniencia o elitismo. Por  otra parte, la b&uacute;squeda &nbsp;de la soluci&oacute;n  suele estar guiada por la optimizaci&oacute;n de varias m&eacute;tricas.    <br>       <br>   En art&iacute;culos &nbsp;previos D&iacute;az-Pando <em>et al.</em> (2013a,b), los autores del presente art&iacute;culo establecen una comparaci&oacute;n  entre varios algoritmos metaheur&iacute;sticos, utilizando modelos de optimizaci&oacute;n con  dos de las m&eacute;tricas de dise&ntilde;o m&aacute;s &nbsp;utilizadas: &Aacute;reay Tiempo. Adem&aacute;s, en D&iacute;az-Pando <em>et al.</em> (2013a), se presenta una versi&oacute;n  del modelo basado en soft computing. Los resultados de estos art&iacute;culos &nbsp;establecen que los algoritmos Escalador de  Colinas Estoc&aacute;stico y Escalador de Colinas Estoc&aacute;stico con Reinicio alcanzan  buenos resultados con respecto a otros algoritmos utilizados m&aacute;s &nbsp;frecuentemente en la literatura.    <br>       <br> El codificador  JPEG es un sistema apto para ser implementado en un sistema embebido Wallace  (1992); Lin <em>et al.</em> (2006), ya que es  de los est&aacute;ndares m&aacute;s &nbsp;utilizados para la  compresi&oacute;n de im&aacute;genes digitales. En la actualidad se han propuesto un conjunto  de trabajos Lin <em>et al.</em> (2006); Lee <em>et al.</em> (2007c); Nath and Datta (2014)  que est&aacute;n dirigidos a realizar la partici&oacute;n hardware/software de este sistema.    <br>     ]]></body>
<body><![CDATA[<br> En este art&iacute;culo  se presenta la aplicaci&oacute;n &nbsp;de los  algoritmos Escalador de Colinas Estoc&aacute;stico y Escalador de Colinas Estoc&aacute;stico con  Reinicio sobre un sistema de codificaci&oacute;n JPEG. El modelo PHS utilizado es una  variante del modelo utilizado por los autores en art&iacute;culos &nbsp;previos, a fin de que los resultados pudieran  ser comparados con los resultados presentes en el estado del arte.    <br>     <br> El art&iacute;culo est&aacute;  organizado de la siguiente forma, en la siguiente secci&oacute;n se presenta un  vistazo acerca de los principales algoritmos y t&eacute;cnicas &nbsp;utilizadas para resolver el problema PHS. El  sistema de codificaci&oacute;n JPEG es descrito en la secci&oacute;n. La secci&oacute;n 4 presenta  una breve descripci&oacute;n de los algoritmos Escalador de Colinas Estoc&aacute;stico y  Escalador de Colinas Estoc&aacute;stico con Reinicio junto con la funci&oacute;n objetivo  utilizada. La secci&oacute;n 5 presenta los experimentos realizados y un an&aacute;lisis &nbsp;de los resultados obtenidos, por &uacute;ltimo las  conclusiones del art&iacute;culo se presentan en la secci&oacute;n 6.</font></p>     <p>&nbsp;</p>     <p><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="3">MATERIALES Y M&Eacute;TODOS </font></strong></font></p> <h2><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Trabajos  relacionados</font></h2>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">De acuerdo con  la clasificaci&oacute;n presentada por Niemann (1998), las propuestas dirigidas a  solucionar el problema de Partici&oacute;n Hardware/Software (PHS) pueden ser  agrupadas siguiendo varios criterios. Algunos de estos criterios son:  complejidad del problema, arquitectura de destino, funci&oacute;n objetivo, estrategia  de b&uacute;squeda, entre otros. De acuerdo con los objetivos trazados en este art&iacute;culo,  las propuestas ser&aacute;n agrupadas seg&uacute;n este &uacute;ltimo criterio.    <br>       <br>   La estrategia de  b&uacute;squeda &nbsp;define los algoritmos que permitir&aacute;n  explorar el espacio de soluciones para buscar las soluciones que cumplan con  los par&aacute;metros establecidos por el dise&ntilde;ador. Las estrategias pueden ser  agrupadas seg&uacute;n la t&eacute;cnica de optimizaci&oacute;n utilizada, de esta forma es posible  mencionar: las basadas en algoritmos de programaci&oacute;n &nbsp;din&aacute;mica Madsen <em>et al.</em> (1997); Jigang and Srikanthan (2006a, b); Jigang <em>et al.</em> (2008b, b); Jigang and Srikanthan  (2006a) y en programaci&oacute;n &nbsp;entera  Bhattacharya <em>et al.</em> (2008); Arat&oacute; <em>et al.</em> (2003); Schwiegershausen <em>et al.</em> (1996); Arat&oacute; <em>et al.</em> (2005). Todas estas soluciones  exactas, si bien alcanzan el &oacute;ptimo global, tienen como inconveniente que el  tiempo de ejecuci&oacute;n crece de forma exponencial con respecto al aumento del tama&ntilde;o  del problema a resolver Arat&oacute; <em>et al.</em> (2003).    <br>       <br>   Para  contrarrestar este inconveniente surgen las soluciones aproximadas, las cuales  en la mayor&iacute;a de los casos no alcanzan el &oacute;ptimo global pero ofrecen una soluci&oacute;n  considerada como buena en un tiempo de ejecuci&oacute;n razonable. Las estrategias  basadas en algoritmos metaheur&iacute;sticos son las m&aacute;s &nbsp;utilizadas dentro de este grupo, destac&aacute;ndose  a su vez un conjunto de algoritmos como los m&aacute;s &nbsp;utilizados. En este caso se encuentran los  Algoritmos Gen&eacute;ticos ya sea en variantes mono-objetivos Wiangtong <em>et al.</em> (2002); Arat&oacute; <em>et al.</em> (2003); Arat&oacute; <em>et al.</em> (2005); Amin <em>et al.</em> (2007); Purnaprajna <em>et  al.</em> (2007); Bhattacharya <em>et al.</em> (2008) y multi-objetivo (Liu and Li, 2009; Lu <em>et al.</em>, 2009; Beux <em>et al.</em>,  2010; Jagadeeswari and Bhuvaneswari, 2011; Nath and Datta, 2014), Recocido  Simulado Ernst <em>et al.</em> (1993); Eles <em>et  al.</em> (1997); Vahid and Le (1997); Henkel and Ernst (2001); Wiangtong <em>et al.</em> (2002); L&oacute;pez-Vallejo and L&oacute;pez  (2003) y Enjambre de Part&iacute;culas variantes monoobjetivo Amin <em>et al.</em> (2007); Tong <em>et al.</em> (2008); Bhattacharya <em>et  al.</em> (2008); Abdelhalim and Habib (2011) y multi-objetivo Jagadeeswari and  Bhuvaneswari (2011).    ]]></body>
<body><![CDATA[<br>       <br>   En muchos casos  es posible apreciar que los algoritmos son seleccionados de forma arbitraria o  siguiendo la preferencia de los autores. No obstante existen un grupo de  trabajos L&oacute;pez-Vallejo and L&oacute;pez (2003); Arat&oacute; <em>et al.</em> (2005); Jigang and Srikanthan (2006b); Jigang <em>et al.</em> (2008b, a); Jagadeeswari and  Bhuvaneswari (2011), donde los autores plantean comparaciones entre varios  algoritmos sobre un mismo modelo PHS; con el objetivo de determinar el  algoritmo que mejor se ajusta a dicho modelo.    <br>       <br>   En el caso del  codificador JPEG, en los &uacute;ltimos a&ntilde;os es posible apreciar su utilizaci&oacute;n como aplicaci&oacute;n  &nbsp;real en casos de estudio que abordan el  problema PHS. Este caso de estudio fue introducido en Lee <em>et al.</em> (2007c) y seguidamente ha sido utilizado como sistema de  referencia para probar diferentes estrategias de b&uacute;squeda &nbsp;Lee <em>et  al.</em> (2007a, b, c); Abdelhalim and Habib (2011).</font></p> <h2><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sistema de codificaci&oacute;n  JPEG</font></h2>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Seg&uacute;n se hace  referencia en Nath and Datta (2014), existen una variedad de formatos para la compresi&oacute;n  de im&aacute;genes, destac&aacute;ndose por su popularidad el formato JPEG Wallace (1992). En  la figura 1 se muestra el grafo de flujo de control-datos y flujo perteneciente  a este sistema, el cual est&aacute; tomado de Lee <em>et  al.</em> (2007c). Estos autores asumen que el convertidor RGB a YUV es implementado  en software, por lo que no estar&aacute; involucrado en el proceso de partici&oacute;n. Adem&aacute;s,  los procesos agrupados en un mismo nivel pueden ser ejecutados de forma  concurrente ya que no existe dependencia entre ellos.    <br>       <br>   Para poder  utilizar el caso de estudio, es necesario disponer de detalles de las  estimaciones de las variables utilizadas, la funci&oacute;n de coste y los resultados  de la partici&oacute;n, todos estos detalles se encuentran en Lee <em>et al.</em> (2007c), por lo cual es posible establecer comparaciones  entre diferentes estrategias de b&uacute;squeda.    <br>       <br>   Para obtener las  estimaciones de los costes en hardware, los componentes fueron implementados en  una tarjeta ML310 usando la plataforma de dise&ntilde;o Xilinx ISE 7.1i. Mientras que  las estimaciones de los costes en software se obtuvieron con Xilinx Embedded  Design Kit (EDK 7.1i). La tarjeta ML310 contiene una FPGA Virtex2-Pro  XC2vP30FF896, la cual a su vez contiene 13696 slices y 2448 Kbytes de memoria y  dos procesadores IBM Power PC embebidos. Las estimaciones se muestran en la  tabla 1.</font></p>     <p align="center"><a name="f01"></a><img src="/img/revistas/rcci/v9n1/f0801115.jpg" width="470" height="596"></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En la <a href="/img/revistas/rcci/v9n1/t0801115.jpg" target="_blank">tabla 1</a>, la  primera columna representa el nombre y el identificador de cada componente que  aparece en la <a href="#f01">figura 1</a>. La segunda y tercera columna representa el tiempo de ejecuci&oacute;n  de cada uno de los componentes en las dos implementaciones. Las columnas cuatro  y cinco representan el porcentaje del &aacute;rea total que ocupa cada uno de los  componentes. Estos porcentajes est&aacute;n referidos a los recursos disponibles en la  tarjeta utilizada. Las dos &uacute;ltimas columnas muestran el consumo de potencia de  cada componente seg&uacute;n el tipo de implementaci&oacute;n.</font></p> <h2><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Escalador de  colinas estoc&aacute;stico </font></h2>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El Escalador de  Colinas Estoc&aacute;stico (ECE), es una t&eacute;cnica de optimizaci&oacute;n basada en un punto  propuesta por Jones (1995). El ECE est&aacute; inspirado en la forma en que un  alpinista escala una monta&ntilde;a, bajo esta situaci&oacute;n el alpinista se puede  encontrar en un punto en que solo conozca que los puntos m&aacute;s &nbsp;pr&oacute;ximos ascienden o descienden. Los  algoritmos basados en este principio son muy sencillos, aunque no gozan de gran  popularidad en el contexto de investigaci&oacute;n. No obstante se tiene informaci&oacute;n &nbsp;sobre los buenos resultados dados en otros  escenarios de aplicaci&oacute;n, en Rosete-Su&aacute;rez (2000) se realiza una revisi&oacute;n de  estas aplicaciones y adem&aacute;s&nbsp; se muestran  los resultados del empleo de este algoritmo en el problema del trazado de  grafos.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En la variante cl&aacute;sica  de este algoritmo cuando se alcanza una soluci&oacute;n, para pasar a la siguiente, se  explora la vecindad de manera exhaustiva. En el caso que el valor de la soluci&oacute;n  candidata sea menor que el valor de la soluci&oacute;n actual, el algoritmo queda  estancado en un &oacute;ptimo local; siendo este el principal inconveniente del  algoritmo. Otro inconveniente lo constituye que en la mayor&iacute;a de los  escenarios, la vecindad de una soluci&oacute;n puede ser un espacio lo suficientemente  grande como para que el tiempo de ejecuci&oacute;n de cada iteraci&oacute;n sea muy grande.    <br>       <br>   A partir de esta  &uacute;ltima dificultad surge el Escalador de Colinas Estoc&aacute;stico con Mejor Ascenso  (ECE-MA), el cual no explora la vecindad completa, sino que hace una exploraci&oacute;n  aleatoria de una parte. En el caso que no se mejore la soluci&oacute;n actual, no se  asume que sea un &oacute;ptimo local pues no se explor&oacute; la vecindad completa. En este  caso el algoritmo cumplir&aacute; con un n&uacute;mero de iteraciones establecidas. Este  algoritmo ser&aacute; utilizado como parte de los experimentos.    <br>       <br> Teniendo en  cuenta esta dificultad, es propuesta una variante denominada Escalador de  Colinas Estoc&aacute;stico con Reinicio (ECE-R) Rosete-Su&aacute;rez &nbsp;(2000). En esta variante el algoritmo se  reinicia la b&uacute;squeda &nbsp;desde una nueva soluci&oacute;n  generada aleatoriamente una vez que se haya detectado que el algoritmo est&aacute;  estancado en un &oacute;ptimo local.</font></p>     <p align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Funci&oacute;n objetivo</strong>     <br>       <br>   La funci&oacute;n  objetivo utilizada es una versi&oacute;n de la empleada en art&iacute;culos &nbsp;previos D&iacute;az-Pando <em>et al.</em> (2013a,b). En aras de hacer la comparaci&oacute;n lo m&aacute;s &nbsp;fiel posible se hace necesario modificar la  instancia del modelo, propuesta en D&iacute;az Pando (2014). La modificaci&oacute;n consta de  tres elementos principales: Considerar dos procesadores de prop&oacute;sito general en  la arquitectura, considerar la ejecuci&oacute;n simult&aacute;nea de dos funciones que se  ejecuten en procesadores independientes, modificar el c&aacute;lculo del &aacute;rea de  hardware ocupada por la soluci&oacute;n.    ]]></body>
<body><![CDATA[<br>       <br>   Sea <em>ah<sub>i</sub>;   </em>el &aacute;rea que ocupa la implementaci&oacute;n  de las funciones como coprocesadores de hardware, el &aacute;rea total consumida por  el dise&ntilde;o se calcula como:</font></p>     <p align="right"><img src="/img/revistas/rcci/v9n1/fo0801115.jpg" width="202" height="59"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sea <em>L </em>la cantidad de niveles en el sistema  (en la figura 1, <em>L </em>= 6) y <em>l<sub>i</sub></em> es la cantidad de tareas  en el i-&acute;esimo nivel (en la figura 1, <em>l<sub>6</sub></em>  = 4). El tiempo de ejecuci&oacute;n para la j-&acute;esima tarea en el i-&acute;esimo nivel  en hardware y software se define como <em>th<sub>ij</sub> </em>y <em>ts<sub>ij</sub> </em>respectivamente. <em>x<sub>ij</sub> </em>es una variable  binaria que indica el tipo de implementaci&oacute;n de la funci&oacute;n i-&acute;esima en el nivel  j-&acute;esimo, un valor de 1 indica implementaci&oacute;n en hardware y 0 en software. De  acuerdo con esto, el tiempo total del sistema se calcula como:</font></p>     <p align="right"><img src="/img/revistas/rcci/v9n1/fo0802115.jpg" width="435" height="61"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sea <em>me<sub>i</sub> </em>la memoria consumida por  cada una de las funciones implementadas en el procesador, la memoria total  consumida por el sistema se calcula como:</font></p>     <p align="right"><img src="/img/revistas/rcci/v9n1/fo0803115.jpg" width="207" height="55"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sea<em> ps<sub>i</sub> </em>la potencia consumida por  la funci&oacute;n <em>i </em>si es implementada sobre  un procesador empotrado y <em>ph<sub>i</sub> </em>la  potencia cuando se implementa en un coprocesador de hardware. La potencia  consumida por el dise&ntilde;o completo <em>P</em>,  se define como:</font></p>     <p align="right"><img src="/img/revistas/rcci/v9n1/fo0804115.jpg" width="260" height="61"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sea <em>R </em>= <em>R<sub>P</sub>,R<sub>Me</sub> </em>el conjunto que define las restricciones impuestas al dise&ntilde;o.<em>R<sub>P</sub></em>representa el valor m&aacute;ximo  de potencia que puede consumir la soluci&oacute;n y<em>R<sub>Me</sub></em>la cantidad de memoria m&aacute;xima disponible de la  plataforma para la ejecuci&oacute;n de las funciones sobre el procesador empotrado.  Estas restricciones ser&aacute;n tratadas como penalizaciones, siendo <em>P<sub>P</sub> </em>y <em>P<sub>M</sub> </em>las penalizaciones aplicadas por incumplir el consumo  de potencia y la memoria respectivamente, ambas penalizaciones se definen como:</font></p>     ]]></body>
<body><![CDATA[<p align="right"><img src="/img/revistas/rcci/v9n1/fo0805115.jpg" width="322" height="128"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sea <em>Ir </em>el &Iacute;ndice de rendimiento propuesto  por [40], una m&eacute;trica compuesta por las m&eacute;tricas &Aacute;rea y Tiempo mediante la multiplicaci&oacute;n  (<em>Ir </em>= <em>A </em>* <em>T</em>). En este trabajo las m&eacute;tricas ser&aacute;n consideradas  como conjuntos difusos, es por esto que <em>Ir </em>se calcular&aacute; a partir de la funci&oacute;n de pertenencia Gamma y utilizando la funci&oacute;n <em>x </em>* <em>y </em>de la operaci&oacute;n T-Norma; es decir Ir  se calcula como: <em>Ir </em>= <em>&micro;</em>(<em>a</em>)  * <em>&micro;</em>(<em>t</em>).    <br> Para evaluar las  soluciones se define la funci&oacute;n objetivo como:</font></p>     <p align="right"><img src="/img/revistas/rcci/v9n1/fo0806115.jpg" width="212" height="37"></p> <h2><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Experimentos</font></h2>     <p align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El objetivo principal de los  experimentos es demostrar la validez de la hip&oacute;tesis de que el comportamiento  de los algoritmos EC y ECR empleando un modelo HSP basado en l&oacute;gica &nbsp;difusa, en un escenario real, es similar o  mejor al alcanzado por otros algoritmos y modelos m&aacute;s &nbsp;utilizados.    <br>       <br>   Para lograr este  objetivo se propone la realizaci&oacute;n de un conjunto de experimentos, los cuales  tienen en com&uacute;n la aplicaci&oacute;n &nbsp;de la  instancia difusa del modelo al juego de datos referido anteriormente. En cada  uno de los experimentos se modificar&aacute;n los par&aacute;metros del modelo (los umbrales  de las funciones de pertenencia) o los par&aacute;metros del algoritmo ECE-R, para  evaluar el impacto de estos en la soluci&oacute;n obtenida.    <br>       <br>   Los algoritmos  fueron ejecutados 30 veces y en cada ejecuci&oacute;n fueron realizadas 50000  evaluaciones de la funci&oacute;n objetivo. El resultado de estas ejecuciones es la  mejor soluci&oacute;n por cada una de las ejecuciones en cuanto a calidad de la soluci&oacute;n.  Para evaluar los resultados y el comportamiento de los algoritmos y del modelo,  se seleccionaron las mejores soluciones en cuanto a calidad de la soluci&oacute;n.  Estas se compararon con las mejores soluciones obtenidas del estado del arte,  utilizando las siguientes m&eacute;tricas: porcentaje del &Aacute;rea de hardware ocupada,  Tiempo de ejecuci&oacute;n, Potencia y Memoria consumida.</font></p>     <p align="left">&nbsp;</p>     ]]></body>
<body><![CDATA[<p align="left"><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="3">RESULTADOS Y DISCUSI&Oacute;N </font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Una vez  ejecutados los experimentos, en esta secci&oacute;n se presentar&aacute;n los resultados y el  an&aacute;lisis &nbsp;de estos. En la tabla 2, se  presentan los resultados obtenidos por los algoritmos: ECE-MA y ECE-R; junto  con los resultados de las propuestas revisadas en el estado del arte: FBP Lee <em>et al.</em> (2007c), GHO Lee <em>et al.</em> (2007b), GA Lin <em>et al.</em> (2006), HOP Lee <em>et al.</em> (2007a), PSO-Norm Abdelhalim and Habib (2011).    <br>       <br>   Con vistas a  realizar una comparaci&oacute;n lo m&aacute;s &nbsp;justa  posible y ganar en claridad a la hora de presentar los datos, fueron retiradas,  de esta tabla, variantes de soluci&oacute;n propuestas por Abdelhalim and Habib  (2011), las cuales est&aacute;n dirigidas a minimizar solo un objetivo (&Aacute;rea o Tiempo  o Memoria o Potencia). Adem&aacute;s &nbsp;se retir&oacute;  la variante donde no se asume la restricci&oacute;n de la cantidad de componentes de  software por nivel.    <br>       <br> En la tabla (2)  no se encuentran todos los resultados obtenidos con ambos algoritmos, sino que  se muestran todas aquellas soluciones que son de inter&eacute;s en la comparaci&oacute;n, es  decir aquellas que mejoran al menos una de las m&eacute;tricas con respecto a las  propuestas anteriores. A fin de ilustrar el comportamiento de estos dos  algoritmos con respecto a los reportados en la bibliograf&iacute;a, se realizar&aacute; un an&aacute;lisis  &nbsp;de las soluciones teniendo en cuenta  cada una de las m&eacute;tricas.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a name="t02"></a><img src="/img/revistas/rcci/v9n1/t0802115.jpg" width="742" height="477">    <br>   </font></p>     <p align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Con respecto a  la m&eacute;trica tiempo, es posible apreciar que ninguna de las soluciones obtenidas  por el EC y el ECR logra  alcanzar el menor tiempo. No obstante, el incremento es despreciable, mientras  que la mejora en el resto de m&eacute;tricas es bastante significativa. Por ejemplo,  en la variante ECR-3, que arroja el peor tiempo, solo excede en un 0<em>,</em>6426% a la variante GHO, la cual es la  que mejor tiempo alcanza. No obstante, esa misma variante (ECR-3) mejora en un  20<em>,</em>26% y en un 18<em>,</em>12% el &Aacute;rea de hardware y la Potencia consumida por GHO. Por otro  lado la variante ECR-11, que presenta el mejor de los tiempos, solo excede a  GHO en 0<em>,</em>002197% y al mismo tiempo  mejora el &Aacute;rea y la Potencia en 3% y 4% respectivamente.    <br>       ]]></body>
<body><![CDATA[<br>   Con respecto al  consumo de memoria, la soluciones generadas por estos dos algoritmos no logran  buenos resultados, llegando a ser la peor soluci&oacute;n (EC-3) 11 veces superior a  la mejor soluci&oacute;n del estado del arte (GHO). No obstante, es posible apreciar tambi&eacute;n  que estas soluciones que presentan un consumo de memoria elevado, tienden a  mejorar en varios &oacute;rdenes el &aacute;rea de hardware ocupada, el consumo de potencia y  el tiempo de ejecuci&oacute;n. Por ejemplo, la soluci&oacute;n alcanzada por EC-3 alcanza el  valor m&iacute;nimo de &Aacute;rea y Potencia entre todas las soluciones.    <br>       <br>   En cualquier  caso, es posible decir como caso general que en los sistemas embebidos modernos  la m&eacute;trica menos restrictiva suele ser el consumo de Memoria, debido al bajo  precio de las nuevas tecnolog&iacute;as de memoria (DDR, DDR2, etc.).    <br>   De acuerdo a los  resultados mostrados, es posible constatar que las soluciones aportadas por EC  y ECR son las que mejores valores de &aacute;rea de hardware ocupada y consumo de  potencia. Muchas de estas soluciones alcanzan el menor valor de estas m&eacute;tricas  entre todas las propuestas, por ejemplo la soluci&oacute;n EC-3 logra un 5<em>,</em>27% y 0<em>,</em>95% de mejora con respecto a la mejor soluci&oacute;n del estado del  arte.    <br>       <br>   A la luz de los  resultados y de acuerdo con el prop&oacute;sito de estos experimentos, es posible  concluir que no existe un algoritmo que sea mejor que el resto, en este caso de  estudio. Para el caso de la m&eacute;trica &Aacute;rea y Potencia los algoritmos EC y ECR  alcanzan los mejores valores, mientras que para la m&eacute;trica Tiempo alcanzan  valores similares al mejor valor; no obstante las soluciones de estos dos  algoritmos alcanzan un consumo de Memoria superior en comparaci&oacute;n con el estado  del arte. De acuerdo con este planteamiento se considera errado el ofrecer como  resultado del proceso HSP una &uacute;nica soluci&oacute;n, cuando se trata de optimizar  varias m&eacute;tricas de forma simult&aacute;nea.    <br>       <br>   Con relaci&oacute;n a  las soluciones de los algoritmos ECE-MA y ECE-R, es posible plantear que est&aacute;n  dominadas por la m&eacute;trica &Aacute;rea, es decir alcanzan soluciones con muy bajo  porcentaje de utilizaci&oacute;n de recursos de hardware.    <br>       <br> De acuerdo con  los resultados obtenidos en los experimentos, variando los par&aacute;metros difusos  del modelo, es posible plantear que la l&oacute;gica &nbsp;difusa adem&aacute;s &nbsp;de brindar flexibilidad al modelo permite  penalizar de cierta forma las m&eacute;tricas involucradas en el modelo. Esta forma de  penalizar las soluciones es m&aacute;s &nbsp;intuitiva para un dise&ntilde;ador, en lugar de  establecer pesos por cada una de las m&eacute;tricas. Adem&aacute;s, permiten dirigir la b&uacute;squeda  &nbsp;hacia determinados espacios seg&uacute;n las  necesidades del dise&ntilde;ador en cuanto al tipo de soluci&oacute;n que se desee lograr.  Esto se debe a que moviendo los l&iacute;mites de la funci&oacute;n de pertenencia es posible  lograr valores en las m&eacute;tricas m&aacute;s &nbsp;altos  o m&aacute;s &nbsp;bajos.</font></p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>CONCLUSIONES</B></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En este trabajo  se present&oacute; la aplicaci&oacute;n &nbsp;de los  algoritmos ECE-MA y ECE-R en el problema de partici&oacute;n hardware/software. Para  tales prop&oacute;sitos, fue utilizado un sistema codificador JPEG del cual se dispone  de todos los datos vinculados con las estimaciones de cada una de las  variables. En el modelo utilizado se emple&oacute; el &iacute;ndice de rendimiento como m&eacute;trica  para guiar la b&uacute;squeda. Fueron empleados tambi&eacute;n elementos de la l&oacute;gica &nbsp;difusa, en este caso para modelar cada una de  las m&eacute;tricas como variables ling&uuml;&iacute;sticas.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Los resultados  obtenidos muestran que los algoritmos ECE-R y ECE-MA, lograron soluciones  comparables en relaci&oacute;n con otros algoritmos m&aacute;s &nbsp;populares. El algoritmo EC alcanz&oacute; la mejor soluci&oacute;n  en cuanto a &Aacute;rea de Hw y Potencia consumida logrando una mejora del 5<em>,</em>27% y 0<em>,</em>95% respectivamente con relaci&oacute;n a la mejor soluci&oacute;n del estado  del arte. Por su parte, le algoritmo ECE-R alcanz&oacute; una soluci&oacute;n con un Tiempo  de ejecuci&oacute;n que solo excede en 0<em>,</em>6426%  a la mejor soluci&oacute;n del estado del arte (GHO), presentando una mejora  significativa en un 20<em>,</em>26% y en un 18<em>,</em>12% el &Aacute;rea de hardware y la Potencia  consumida por GHO, aunque la soluci&oacute;n del ECR consume m&aacute;s &nbsp;memoria que GHO.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> En problemas  donde se optimicen varios objetivos de forma simult&aacute;nea, es err&oacute;neo plantear  una &uacute;nica soluci&oacute;n como la correcta, ya que existen soluciones buenas en un  objetivo y malas en otros. El modelo utilizado con un enfoque difuso es mejor  con respecto a las propuestas del estado del arte que utilizan pesos en la funci&oacute;n  objetivo, ya que permite tratar la importancia de las m&eacute;tricas de forma m&aacute;s &nbsp;intuitiva moviendo los l&iacute;mites en la funci&oacute;n  de pertenencia.</font></p>     <p>&nbsp;</p>     <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>REFERENCIAS    BIBLIOGR&Aacute;FICAS</B></font>       <br>       <br> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">M.B. Abdelhalim and S.E.-D. Habib. An  integrated high-level hardware/software partitioning methodology. <em>Design Automation for Embedded Systems</em>,  15(1):19&ndash;50, 2011. ISSN 0929-5585. doi: 10.1007 / s10617-010-9068-9. URL <a href="http://dx.doi.org/10.1007/s10617-010-9068-9">http://dx.doi.org/10.1007/s10617-010-9068-9.</a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">F.-F. Amin, K. Mehdi, F. Sied Mehdi,  and S. Saeed. Hw/sw partitioning using discrete particle swarm. En: 17th ACM  Great Lakes symposium on VLSI. Proceedings of the 17th ACM Great Lakes  Symposium on VLSI. ACM, New York, NY, USA: 2007, 359&ndash;364.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">P. Arat&oacute;, S. Zuh&aacute;sz, Z. A. Mann, A.  Orb&aacute;n, and D. Papp. Hardware/software partitioning in embedded system design.  En: IEEE International Symposium on Intelligent Signal Processing. IEEE: 2003,  197&ndash;202.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">S&eacute;bastien Le Beux, Guy Bois,  Gabriela Nicolescu, Youcef Bouchebaba, Michel Langevin, and Pierre Paulin.  Combining mapping and partitioning exploration for noc-based embedded systems. <em>Journal of Systems Architecture</em>,  56(7):223 &ndash; 232, 2010. ISSN 1383-7621. doi: http://dx.doi.org/10.1016/j.sysarc.2010.03.005.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Humberto D&iacute;az Pando. <em>Modelo  y estrategias de particio&acute;n de componentes hardware/software en el co-dise&ntilde;o de  sistemas embebidos</em>. PhD thesis, Universidad de Alicante, Espa&ntilde;a, 2014.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Humberto D&iacute;az-Pando, Sergio Cuenca Asensi, Roberto Sep&uacute;lveda  Lima, Jenny Fajardo Calder&iacute;n, and Alejandro Rosete Su&aacute;rez. An application of fuzzy logic for hardware/software  partitioning on embedded systems. <em>Computaci&oacute;n y  Sistemas</em>, 17(1):30&ndash;40, marzo 2013 a.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Giovanni De Micheli and Rajesh K.  Gupta. Hardware/software co-design. <em>Proceedings  of the IEEE</em>, 85(3): 349&ndash;365, 1997.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">P. Eles, Z. Peng, K. Kuchcinski, and  A. Doboli. System level hardware/software partitioning based on simulated  annealing and tabu search. <em>Des Autom  Embed Syst</em>, 2(1):5&ndash;32, 1997.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Rolf Ernst, Jorg Henkel, and Thomas  Benner. Hardware-software cosynthesis for microcontrollers. <em>IEEE Des. Test</em>, 10(4):64&ndash;75, October  1993. ISSN 0740-7475. doi: 10.1109/54.245964. URL <a href="http://dx.doi.org/10.1109/54.245964">http://dx.doi.org/10. 1109/54.245964.</a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Wu Jigang, Thambipillai Srikanthan,  and Guang-Wei Zou. New model and algorithm for hardware/software partitioning. <em>Journal of Computer Science and Technology</em>,  23(4):644&ndash;651, July 2008b. ISSN 1000-9000. doi: 10.1007/s11390-008-9160-9.</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Terry Jones. <em>Evolutionary Algorithms, Fitness Landscapes and Search</em>. PhD thesis,  University of New Mexico, 1995.    </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Trong-Yen Lee, Yang-Hsin Fan, Yu-Min  Cheng, Chia-Chun Tsai, and Rong-Shue Hsiao. An efficiently hardware-software partitioning  for embedded multiprocessor fpga system. En: International multiconference of  engineers and computer scientists. Hong Kong: 2007b, 346&ndash;351.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Yang Liu and Qing Cheng Li. Hardware  software partitioning using immune algorithm based on pareto. En: International  Conference on Artificial Intelligence and Computational Intelligence, volume 2.  IEEE: 2009 , 176&ndash;180.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Marisa L&oacute;pez-Vallejo and Juan Carlos L&oacute;pez. On the hardware-software partitioning problem: System  modeling and partitioning techniques. <em>ACM  Trans. Des. Autom. Electron. Syst. (TODAES)</em>, 8(3):269&ndash;297, July 2003. ISSN  1084-4309. doi: 10.1145/785411.785412.</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Zolt&aacute;n Ad&aacute;m Mann. <em>Partitioning algorithms for  hardware/software co-design</em>. PhD thesis, Budapest Univerity of Technology  and Economics, Department of Control Engineering and Information Technology,  2004.    </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Pankaj Kumar Nath and Dilip Datta.  Multi-objective hardware-software partitioning of embedded systems: A case  study of {JPEG} encoder. <em>Applied Soft  Computing</em>, 15(0):30 &ndash; 41, 2014. ISSN 1568-4946. doi:  http://dx.doi.org/10.1016/j.asoc.2013.10.032. URL <a href="http://www.sciencedirect.com/science/article/pii/S1568494613003669">http://www.sciencedirect.com/science/article/ pii/S1568494613003669.</a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Ralf Niemann. <em>Hardware/Software co-design for data flow dominated embedded systems</em>.  Kluwer Academic Publishers, Boston, 1998.    </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">M. Schwiegershausen, H. Kropp, and P.  Pirsch. A system level hw/sw partitioning and optimization tool. En:  Proceedings of the conference on European design automation. IEEE Computer  Society Press: 1996, 120&ndash;125.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Qiaoling Tong, Xuecheng Zou, Qiao  Zhang, Fei Gao, and Hengqing Tong. The hardware/software partitioning in  embedded system by improved particle swarm optimization algorithm. En: Fifth  IEEE International Symposium on Embedded Computing. IEEE Computer Society  Press: 2008, 43&ndash;46.</font></p>     ]]></body>
<body><![CDATA[<!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Frank Vahid and Tony Givargis. <em>Embedded System Design: A Unified  Hardware/Software Introduction</em>. J. Wiley and Sons, 2002.    </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Wayne Wolf. A decade of  hardware/software codesign. <em>Computer</em>,  36(4):38&ndash;43, April 2003. ISSN 0018-9162.</font></p>     <p><strong>&nbsp;</strong></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>&nbsp;</strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Recibido: 14/11/2014      <br> Aceptado: 19/01/2015 </font></p>      ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Abdelhalim]]></surname>
<given-names><![CDATA[M.B]]></given-names>
</name>
<name>
<surname><![CDATA[D. Habib]]></surname>
<given-names><![CDATA[S.E]]></given-names>
</name>
</person-group>
<source><![CDATA[An integrated high-level hardware/software partitioning methodology]]></source>
<year>2011</year>
<page-range>19-50</page-range><publisher-name><![CDATA[Design Automation for Embedded Systems]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Amin]]></surname>
<given-names><![CDATA[F.-F]]></given-names>
</name>
<name>
<surname><![CDATA[Mehdi]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
<name>
<surname><![CDATA[Sied Mehdi]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Saeed]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<source><![CDATA[Hw/sw partitioning using discrete particle swarm.]]></source>
<year>2007</year>
<page-range>359-364</page-range><publisher-loc><![CDATA[^eNew York New York]]></publisher-loc>
<publisher-name><![CDATA[En: 17th ACM Great Lakes symposium on VLSI. Proceedings of the 17th ACM Great Lakes Symposium on VLSI. ACM]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Arató]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Zuhász]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Mann]]></surname>
<given-names><![CDATA[Z. A]]></given-names>
</name>
<name>
<surname><![CDATA[Orbán]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Papp]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA[Hardware/software partitioning in embedded system design.]]></source>
<year>2003</year>
<page-range>197-202</page-range><publisher-name><![CDATA[En: IEEE International Symposium on Intelligent Signal Processing. IEEE]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Le Beux]]></surname>
<given-names><![CDATA[Sébastien]]></given-names>
</name>
<name>
<surname><![CDATA[Bois]]></surname>
<given-names><![CDATA[Guy]]></given-names>
</name>
<name>
<surname><![CDATA[Nicolescu]]></surname>
<given-names><![CDATA[Gabriela]]></given-names>
</name>
<name>
<surname><![CDATA[Bouchebaba]]></surname>
<given-names><![CDATA[Youcef]]></given-names>
</name>
<name>
<surname><![CDATA[Langevin]]></surname>
<given-names><![CDATA[Michel]]></given-names>
</name>
<name>
<surname><![CDATA[Paulin]]></surname>
<given-names><![CDATA[Pierre]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Combining mapping and partitioning exploration for noc-based embedded systems.]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<volume>56</volume>
<numero>7</numero>
<issue>7</issue>
<page-range>223 - 232</page-range></nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Díaz Pando]]></surname>
<given-names><![CDATA[Humberto]]></given-names>
</name>
</person-group>
<source><![CDATA[Modelo y estrategias de partición de componentes hardware/software en el co-diseño de sistemas embebidos]]></source>
<year>2014</year>
<publisher-name><![CDATA[PhD thesis, Universidad de Alicante]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Díaz-Pando]]></surname>
<given-names><![CDATA[Humberto]]></given-names>
</name>
<name>
<surname><![CDATA[Cuenca Asensi]]></surname>
<given-names><![CDATA[Sergio]]></given-names>
</name>
<name>
<surname><![CDATA[Sepúlveda Lima]]></surname>
<given-names><![CDATA[Roberto]]></given-names>
</name>
<name>
<surname><![CDATA[Fajardo Calderín]]></surname>
<given-names><![CDATA[Jenny]]></given-names>
</name>
<name>
<surname><![CDATA[Rosete Suárez]]></surname>
<given-names><![CDATA[Alejandro]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An application of fuzzy logic for hardware/software partitioning on embedded systems.]]></article-title>
<source><![CDATA[]]></source>
<year>marz</year>
<month>o </month>
<day>20</day>
<volume>17</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>30-40</page-range></nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[De Micheli]]></surname>
<given-names><![CDATA[Giovanni]]></given-names>
</name>
<name>
<surname><![CDATA[Rajesh]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Gupta. Hardware/software co-design.]]></article-title>
<source><![CDATA[]]></source>
<year>1997</year>
<volume>85</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>349-365</page-range></nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Eles]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[Peng]]></surname>
<given-names><![CDATA[Z]]></given-names>
</name>
<name>
<surname><![CDATA[Kuchcinski]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
<name>
<surname><![CDATA[Doboli]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[System level hardware/software partitioning based on simulated annealing and tabu search.]]></article-title>
<source><![CDATA[]]></source>
<year>1997</year>
<volume>2</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>5-32</page-range></nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ernst]]></surname>
<given-names><![CDATA[Rolf]]></given-names>
</name>
<name>
<surname><![CDATA[Henkel]]></surname>
<given-names><![CDATA[Jorg]]></given-names>
</name>
<name>
<surname><![CDATA[Benner]]></surname>
<given-names><![CDATA[Thomas]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Hardware-software cosynthesis for microcontrollers.]]></article-title>
<source><![CDATA[]]></source>
<year>Octo</year>
<month>be</month>
<day>r </day>
<volume>10</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>64-75</page-range><publisher-name><![CDATA[Test]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Jigang]]></surname>
<given-names><![CDATA[Wu]]></given-names>
</name>
<name>
<surname><![CDATA[Srikanthan]]></surname>
<given-names><![CDATA[Thambipillai]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Algorithmic aspects of area-efficient hardware/software partitioning.]]></article-title>
<source><![CDATA[]]></source>
<year>Dece</year>
<month>mb</month>
<day>er</day>
<volume>38</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>223-235</page-range></nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Jones]]></surname>
<given-names><![CDATA[Terry]]></given-names>
</name>
</person-group>
<source><![CDATA[Evolutionary Algorithms, Fitness Landscapes and Search]]></source>
<year>1995</year>
<publisher-name><![CDATA[PhD thesis, University of New Mexico]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Yen Lee]]></surname>
<given-names><![CDATA[Trong]]></given-names>
</name>
<name>
<surname><![CDATA[Hsin Fan]]></surname>
<given-names><![CDATA[Yang]]></given-names>
</name>
<name>
<surname><![CDATA[Min Cheng]]></surname>
<given-names><![CDATA[Yu]]></given-names>
</name>
<name>
<surname><![CDATA[Chun Tsai]]></surname>
<given-names><![CDATA[Chia]]></given-names>
</name>
<name>
<surname><![CDATA[Shue Hsiao]]></surname>
<given-names><![CDATA[Rong]]></given-names>
</name>
</person-group>
<source><![CDATA[An efficiently hardware-software partitioning for embedded multiprocessor fpga system.]]></source>
<year>2007</year>
<month>b</month>
<page-range>346-351</page-range><publisher-loc><![CDATA[^eHong Kong Hong Kong]]></publisher-loc>
<publisher-name><![CDATA[En: International multiconference of engineers and computer scientists.]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B13">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Liu]]></surname>
<given-names><![CDATA[Yang]]></given-names>
</name>
<name>
<surname><![CDATA[Cheng Li]]></surname>
<given-names><![CDATA[Qing]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Hardware software partitioning using immune algorithm based on pareto.]]></article-title>
<source><![CDATA[]]></source>
<year>2009</year>
<volume>2</volume>
<page-range>176-180</page-range></nlm-citation>
</ref>
<ref id="B14">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[López-Vallejo]]></surname>
<given-names><![CDATA[Marisa]]></given-names>
</name>
<name>
<surname><![CDATA[López]]></surname>
<given-names><![CDATA[Juan Carlos]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[On the hardware-software partitioning problem: System modeling and partitioning techniques]]></article-title>
<source><![CDATA[]]></source>
<year>July</year>
<month> 2</month>
<day>00</day>
<volume>8</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>269-297</page-range><publisher-name><![CDATA[Des. Autom. Electron. Syst. (TODAES)]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B15">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Adám Mann]]></surname>
<given-names><![CDATA[Zoltán]]></given-names>
</name>
</person-group>
<source><![CDATA[Partitioning algorithms for hardware/software co-design]]></source>
<year>2004</year>
<publisher-name><![CDATA[PhD thesis, Budapest Univerity of Technology and Economics, Department of Control Engineering and Information Technology]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B16">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Pankaj Kumar]]></surname>
<given-names><![CDATA[Nath]]></given-names>
</name>
<name>
<surname><![CDATA[Datta]]></surname>
<given-names><![CDATA[Dilip]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Multi-objective hardware-software partitioning of embedded systems: A case study of {JPEG} encoder]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<volume>15</volume>
<numero>0</numero>
<issue>0</issue>
<page-range>30 - 41</page-range></nlm-citation>
</ref>
<ref id="B17">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Niemann]]></surname>
<given-names><![CDATA[Ralf]]></given-names>
</name>
</person-group>
<source><![CDATA[Hardware/Software co-design for data flow dominated embedded systems]]></source>
<year>1998</year>
<publisher-loc><![CDATA[^eBoston Boston]]></publisher-loc>
<publisher-name><![CDATA[Kluwer Academic Publishers]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B18">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Schwiegershausen]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Kropp]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
<name>
<surname><![CDATA[Pirsch]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[A system level hw/sw partitioning and optimization tool]]></source>
<year>1996</year>
<page-range>120-125</page-range><publisher-name><![CDATA[En: Proceedings of the conference on European design automation. IEEE Computer Society Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B19">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tong]]></surname>
<given-names><![CDATA[Qiaoling]]></given-names>
</name>
<name>
<surname><![CDATA[Zou]]></surname>
<given-names><![CDATA[Xuecheng]]></given-names>
</name>
<name>
<surname><![CDATA[Zhang]]></surname>
<given-names><![CDATA[Qiao]]></given-names>
</name>
<name>
<surname><![CDATA[Gao]]></surname>
<given-names><![CDATA[Fei]]></given-names>
</name>
<name>
<surname><![CDATA[Tong]]></surname>
<given-names><![CDATA[Hengqing]]></given-names>
</name>
</person-group>
<source><![CDATA[The hardware/software partitioning in embedded system by improved particle swarm optimization algorithm.]]></source>
<year>2008</year>
<page-range>43-46</page-range><publisher-name><![CDATA[En: Fifth IEEE International Symposium on Embedded Computing. IEEE Computer Society Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B20">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Vahid]]></surname>
<given-names><![CDATA[Frank]]></given-names>
</name>
<name>
<surname><![CDATA[Givargis]]></surname>
<given-names><![CDATA[Tony]]></given-names>
</name>
</person-group>
<source><![CDATA[Embedded System Design: A Unified Hardware/Software Introduction.]]></source>
<year>2002</year>
<publisher-name><![CDATA[J. Wiley and Sons]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B21">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Wolf]]></surname>
<given-names><![CDATA[Wayne]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A decade of hardware/software codesign]]></article-title>
<source><![CDATA[]]></source>
<year>Apri</year>
<month>l </month>
<day>20</day>
<volume>36</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>38-43</page-range></nlm-citation>
</ref>
</ref-list>
</back>
</article>
