el diseño de sistemas embebidos


En mi segundo día de trabajo he profundizado un poco en el nuevo mundo (para mí) de los sistemas embebidos. Los sistemas electrónicos actuales están proliferando en nuestras vidas: teléfonos móviles 3G cada vez con más funcionalidades, sistemas domóticos, plataformas de juegos, sistemas de control y navegación del automóvil … y en concreto en el mundo de las telecomunicaciones y los sistemas de control cada vez se usan más dispositivos que incorporan un hardware y software específicos para la aplicación que deben de correr (sistemas integrados de protección perimetral, sistemas de telecomunicaciones de banda ancha, …)

El diseño de estos sistemas se ha complicado cada vez más debido a los requerimientos de procesado de información multimedia, bajo consumo, factor de forma pequeño, … Los sistemas cada vez más incorporan software muy sofisticado que además tiene que funcionar en tiempo real. El hardware se debe de integrar al máximo y se incorporan sistemas totalmente integrados (SoC) con múltiples cores en su interior unidos por redes especiales (MpSoC/NoC) cada uno especializado en un proceso (DPSs, memoria, I/O, procesadores de bajo consumo, funciones especiales implementadas en hardware, …) El diseño de estos dispositivos es un esfuerzo de codiseño hardware/software en el que todo debe encajar como un guante (estar optimizado) y en el que se deben tener en cuenta múltiples restricciones (rendimiento, consumo de energía, tamaño, coste, reutilización de componentes HW/SW, …)

La empresas que se dedican al diseño y fabricación de hardware han intentado aprovechar economías de escala estandarizando o imponiendo plataformas de hardware, más o menos flexibles, con diversas arquitecturas modulares, dando la posibilidad de configurar ciertos parámetros de dichas arquitecturas y permitiendo la reutilización de componentes (IP Cores) Esa tendencia ha llegado hasta cierto punto también al software (sistemas operativos en tiempo real con librerías estándar)

Los pasos que se dieron para mejorar el time-to-market del diseño, verificación y fabricación de estos sistemas fueron: la construcción de aplicaciones de diseño automático de hardware (EDA Tools), la definición de lenguajes formales de descripción de hardware (VHDL, Verilog, SystemC) y la posibilidad de simular dichos sistemas (a nivel de puerta lógica, de registro y de transacción) para comprobar que su funcionamiento es correcto y su rendimiento estimado antes de su fabricación. Además esas descripciones formales permiten su transformación en componentes estándar de hardware (proceso de síntesis) en las fábricas de chips o su mapeo a plataformas de hardware de los diversos fabricantes.

De un tiempo a esta parte se ha avanzado mucho en la extensión de los lenguajes formales de descripción y simulación hardware para la simulación del software que corre sobre ellos, permitiendo hacer el codiseño completo de los dispositivos embebidos. Además se han adoptado varios niveles de simulación, desde el más bajo a nivel de registros y pines, muy costoso computacionalmente (RTL) hasta niveles superiores de sistema con abstracción de la implementación concreta (TLM)

En MULTICUBE se pretende extender el ámbito de las herramientas de codiseño, permitiendo mapear de forma óptima las especificaciones a nivel de sistema y casos de uso de las aplicaciones a sistemas embebidos compuestos por MpSOCs y NoCs de forma óptima mediante un proceso de optimización (tuning) que se denomina Design Space Exploration (DSE), que va a permitir al diseñador convertir las especificaciones en una serie de diseños óptimos en un espacio de soluciones de diseño, correspondientes a plataformas HW/SW existentes en el mercado (o definibles por el diseñador), sobre las que va a poder navegar y variar sus parámetros y optimizar hasta seleccionar el/los diseños a simular para tomar (a nivel TLM o RTL) una decisión final de implementación.

Para esto se van a utilizar técnicas heurísticas de optimización (que incluyen técnicas de optimización basadas en computación evolutiva, lo cual lo hace muy interesante para mi, que tengo la asignatura de computación evolutiva del máster de Inteligencia de Artificial de la UNED) con una herramienta surgida de un proyecto europeo de investigación anterior llamada modeFrontier (ver referencias Google) de la empresa ESTECO (surgida como spin-off del citado proyecto europeo) La herramienta tiene hasta una web de comunidad en Europa, con el propósito de darla a conocer a la comunidad de potenciales usuarios y colaborar en la extensión de su uso.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s