Ayudar a los desarrolladores de software a elegir el hardware adecuado A menudo, los desarrolladores de software cuentan con un conocimiento limitado del campo del hardware y del diseño de la arquitectura de sistemas. Una novedosa herramienta ayuda a alinear la funcionalidad deseada con la implantación de hardware. Economía digital © Thinkstock El diseño electrónico a nivel de sistema (ESL) es una metodología innovadora para el desarrollo y la verificación de semiconductores que tiene un gran potencial para ayudar a los desarrolladores de software con el diseño automático de módulos de hardware desde la representación de alto nivel de una tarea. Sin embargo, faltan muchas de las herramientas de lenguaje necesarias para la comunicación entre los diferentes niveles de abstracción, lo que se traduce en un mayor tiempo de comercialización. Por ello, un grupo de científicos decidió explotar los paradigmas de los procesos de streams y de paralelismo de datos que permiten que una aplicación aparezca como una serie de unidades computacionales individuales (núcleos) sin gestionar explícitamente la comunicación entre dichas unidades. El proyecto «Automatic hardware generation using the stream programming paradigm» (ESL_STR), financiado con fondos comunitarios, les permitió conseguir su objetivo. El estudio supuso su aplicación a una matriz de puertas programable en campo (FPGA), un dispositivo semiconductor que puede ser «programado» por el usuario (en el campo) tras la fabricación, reimplantando el circuito integrado en el propio chip para obtener la funcionalidad deseada. Los investigadores desarrollaron una herramienta de diseño asistido por ordenador (CAD) para crear el diseño del coprocesador de una FPGA. La herramienta emplea Open Computing Language (OpenCL), un entorno de programación estándar para escribir programas para arquitecturas informáticas heterogéneas (con más de un procesador), formadas por el host o unidad central de procesamiento (CPU) y el dispositivo o unidad de procesamiento gráfico (GPU). La versión de ESL_STR, llamada silicon OpenCL (o SopenCL), traza el paralelismo (varios procesadores) de una aplicación en una FPGA reconfigurable. Un compilador de alto nivel (HLC) particiona los núcleos de la aplicación de OpenCL en la CPU, la GPU y la propia FPGA. Por su parte, un compilador de bajo nivel (LLC) procesa los núcleos seleccionados para ejecutarse en las plataformas de la FPGA, lo que crea un diseño de hardware equivalente que cumple los requisitos en cuanto a rendimiento. La herramienta ESL_STR abre la puerta a la portabilidad del código en diferentes plataformas multiprocesador, tanto en arquitecturas fijas como reconfigurables. Esta posibilidad promete hacer de las nuevas tecnologías como las FPGA una pieza clave en el ámbito de la informática de alto rendimiento.