primer día de trabajo en la UC


Hoy ha sido mi primera toma de contacto con el nuevo trabajo. No sabía donde estaba el laboratorio donde tenía que empezar a trabajar aunque intuía que tenía que estar entre la planta -3 y -4. Al Final tuve que preguntar a uno de otro de los grupos de investigación que estaba pululando por los pasillos a eso de las 8:30 de la mañana. No conocía a Hector pero le sonaba que el laboratorio de investigación estaba en la planta -4 y así fue. Al entrar en el laboratorio solamente había dos personas, que ya habían oído hablar de mi llegada. Me dijeron que Hector no llegaba hasta las 9:30 y me asignaron el puesto que me correspondía, un vetusto ordenador con fedora, en el que tuvieron que crearme la cuenta para poder utilizarlo.

Según fueron pasando los minutos fue entrando gente, y se fue presentando. Como es habitual en mí, no me acuerdo de los nombres de casi ninguno. Tiempo al tiempo. Las primeras tres horas la pasé mirando la web oficial del proyecto MULTICUBE y su entrada en la wikipedia, y la herramienta de optimización de la empresa STECO, modeFrontier (que también tiene entrada en la wikipedia y hasta un manual, eso sí de la antigua versión 3, ahora van por la 4), que se va a adaptar al diseño de circuitos como un objetivo del proyecto.

La verdad es que es una herramienta muy interesante. Es como un framework de optimización multiobjetivo, que hace uso de muchas técnicas metaheurísticas (inspiradas en la física: simulated annealing; y la biología: algoritmos genéticos, estrategias evolutivas, GTM, Multi-Objective Particle Swarm, …; optimización heurística), clásicas, estadísticas (eficiencia de pareto, diseño de experimentos, ANOVA, Response Surface Methodology (RSM), .. ) e híbridas para obtener los resultados deseados.

A eso de las 11 y media se reunieron todos (o casi) a tomar el café en una parte del laboratorio habilitada para zona de ocio y me invitaron. Ahí puede socializar un poco, dentro de mis limitaciones. En esa zona de ocio tenía un microondas con cartones de leche, café, magdalenas. Por lo visto se pone un bote cada cierto tiempo para reponer existencias. El café me sentó un poco mal.

Tras la pausa, que debió durar casi veinte minutos volvimos al trabajo. Le pedí a Hector que me dejara un documento del proyecto MULTICUBE para mirar un poco la distribución de tareas y el resto de la documentación. La lectura del documento, del que no dispongo de versión electrónica, fue bastante educativa. Tenía una sección introductoria donde se justificaban las aportaciones previstas del proyecto, del estado del arte del diseño de sistemas electrónicos integrados y de la necesidad de herramientas que permitan diseñar de forma óptima estos dispositivos que combinan el hardware y el software.

Los dispositivos embebidos actuales se diseñan mediante circuitos electrónicos integrados de varios cores (como los microprocesadores), cada uno con capacidades de proceso específicas (p.e DSPs y ASICs adhoc de modulación, encriptación, …), memoria y sistemas de entrada y salida, llamados SOC, unidos por una red de comunicaciones llamada NOC sobre la que corre software, generalmente de tiempo real. El diseño del HW y el SW debe hacerse de forma pareja, satisfaciendo restricciones de consumo de energía, rendimiento, latencia, espacio ocupado, … un montón de parámetros conflictivos que deben simularse antes de fabricarlo para asegurarse de que se cumplen los requisitos. El sistema de optimización modeFrontier es el candidato perfecto para la optimización con diferentes parámetros.

En el documento se mencionan plataformas comerciales que ya existen sobre las que se puede hacer el diseño y optimización: OMAP™ Technology – Texas Instrument y STMicroelectronics – Nomadik multimedia processors (la empresa es uno de los socios del proyecto MULTICUBE)

Así pues se puede diseñar y simular estos dispositivos en su totalidad antes de fabricarlos para optimizar su diseño en función de varios parámetros. Hay varias técnicas de simulación como cycle accurate simulation (ver entrada de a wikipedia) y Instruction Set Simulaton (esta última se ha convertido en intensiva en procesador y prohibitiva para la complejidad que están adquiriendo los SOCs) Se mencionan varias implementaciones de entornos de simulación del primer tipo: PERFidiX (desarrolado por el GIM-TEISA), MPARAM (open source) y la propietaria de CoWare.

Para simular las plataformas se utilizan lenguajes de especificación que cubren tanto la descripción y simulación hardware como la software. El que se utiliza en el proyecto es SystemC (ver entrada de la wikipedia) El aprendizaje de este lenguaje es fundamental para participar en el proyecto (me lo comentó Eugenio) así que por la tarde me he dedicado a seguir varios tutoriales de este lenguaje:

SystemC Tutorial, material sacado del libro Doulos SystemC Golden Reference Guide.

SystemC Tutorial, de ASIC World (que incluye una breve introducción al lenguaje C++ en el que está implementado systemc)

Por cierto que se puede bajar la especificación del estándar del IEEE.

Finalmente, puesto que la implementación de SystemC está hecha en C++ he considerado interesante echar un vistazo de repaso de este lenguaje con estos enlaces:

C++ Reference (Reference of the C++ Language Library, with detailed descriptions of its elements and examples on how to use its functions)

C++ Programming Language Tutorials

The C Standard Library

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