Co-simulación HW/SW de una plataforma MPSoC multi-SO
HW/SW co-simulation of a MPSoC multi-OS platform
Author
Fernández Rodríguez, RodrigoDate
2012-12Director/es
Derechos
Atribución-NoComercial-SinDerivadas 3.0 España
Palabras clave
Multi-SO
Co-simulación HW/SW
Sistemas embebidos
MPSoC
Abstract:
RESUMEN: El objetivo de este trabajo ha sido trabajar en la generación de una herramienta de
simulación de sistemas embebidos de alto nivel que permita simular sistemas que
combinen distintos sistemas operativos sobre diversas plataformas HW. Más en
concreto, el objetivo es partir de una herramienta previa y extendiderla para soportar
sistemas que combinen dos sistemas operativos sobre tres arquitecturas distintas,
generando un demostrador apropiado a tal efecto.
El trabajo se ha centrado en extender la plataforma de simulación SCoPE
desarrollada por el Grupo de Ingeniería Microelectrónica (GIM) de la Universidad de
Cantabria (UC) para realizar la simulación de sistemas embebidos multiprocesador
System-on-Chip (MPSoC) con plataformas software que combinan distintos sistemas
operativos. Además se han analizado las capacidades de simulación y estimación de
prestaciones de este tipo de sistemas con múltiples sistemas operativos con diferentes
arquitecturas que implican diferentes formas de comunicación entre los sistemas
operativos y los componentes del software de aplicación, como pueden ser el uso de
una red NoC o zonas de memoria compartida.
Para comprobar las capacidades de simulación y estimación se ha implementado
una aplicación compleja que realiza la captura y codificación de vídeo y audio. Los
datos se obtienen gracias a unos periféricos cuyos modelos se han implementado y
añadido a la plataforma hardware, junto con sus respectivos controladores. Esta parte
de captura de datos se realiza sobre un sistema operativo POSIX. Además, las tareas de
compresión tanto del vídeo como del audio (a los formatos H.264 y mp3
respectivamente) se repartirán entre componentes ejecutados sobre sistemas operativos
POSIX, que se encargará de la compresión de audio, y Win32, que se encargará de la
compresión de vídeo.
Para desarrollar la plataforma que permita realizar las simulaciones se ha hecho
uso de un plug-in desarrollado para SCoPE que permite la simulación de código de
aplicación que utilice la API Win32. Este plug-in ha sido desarrollado de una forma
inicial para una versión anterior del simulador. Por ello en primer lugar se ha realizado
la adaptación del plug-in a la última versión disponible; así como realizado una prueba
de su correcto funcionamiento con una aplicación de cierta envergadura para
complementar los test que se han hecho por separado de las diferentes funcionalidades
que este plug-in implementa.
Por último, se han comparado las simulaciones y estimaciones obtenidas con la
infraestructura desarrollada con otras proporcionadas por otras herramientas como
OVP.
ABSTRACT: The aim of this work has been to work on the generation of a simulation tool for
high-level embedded systems to simulate systems combining different operating
systems on different HW platforms. More specifically, the goal is to start from a
previous tool and extend it to support systems combining two operating systems over
three different architectures, generating a test suitable for this purpose.
In this project, the SCoPE simulation tool, developed by Microelectronic
Engineering Group (GIM) from University of Cantabria (UC), has been extended in
order to support simulations of Multiprocessor System-on-Chip (MPSoC) embedded
systems running software platforms combining several operating systems. Furthermore,
during the proyect it has analyzed the simulation and performance estimation
capabilities for systems including different operating systems on different hardware
architectures. These combinations implies applying different communication strategies
among operating systems and software application components, as Network-on-Chip
communication or shared memory areas.
In order to test simulation and performance estimation capabilities, a complex
application which performs audio and video capture and encoding has being
implemented. Data is retrieved through peripheral models implemented and added to
hardware platform for that purpose together with their respective device drivers. This
data retrieval is performed on a POSIX operating system. Also, video and audio
encoding tasks (to H.264 and mp3 formats respectively) are performed among
components executed over POSIX operating systems, in charge of audio encoding, and
Win32, in charge of video compression.
To develop a platform capable of performing the proposed simulations, a plug-in
developed for SCoPE, which allows to simulate application code using Win32 API, has
being used. This plug-in was initially developed for a previous version of SCoPE.
Because of that, an adaptation to latest SCoPE version was needed; as well as a test
with a complex application to ensure proper results of the plug-in, complementing
other tests used to check individual features of the plug-in.
Finally, several tests have been performed in order to compare simulations and
performance estimation results obtained with this infrastructure to others results
obtained with other tools like OVP.