<< Volver atrás

Tesis:

Real-time and dependability assessment of hw-accelerated space applications for reconfigurable MPSoCs


  • Autor: PÉREZ GARCÍA, Arturo

  • Título: Real-time and dependability assessment of hw-accelerated space applications for reconfigurable MPSoCs

  • Fecha: 2023

  • Materia:

  • Escuela: E.T.S. DE INGENIEROS INDUSTRIALES

  • Departamentos: AUTOMATICA, INGENIERIA ELECTRICA Y ELECTRONICA E INFORMATICA INDUSTRIAL

  • Acceso electrónico: https://oa.upm.es/75785/

  • Director/a 1º: TORRE ARNANZ, Eduardo de la

  • Resumen: The space sector has changed in recent years, and this change continues revolving the way space missions are conceived. Traditionally, the space sector has been very conservative, where only ultra-tested solutions could be applied, given the fact that this environment imposes harsh conditions: thermal management is challenging with extreme temperature ranges and no air to dissipate the heat, vibrations are high during the launch to put satellites in orbit, and there is radiation present in the form of high-energy particles, which solar flares or cosmic rays can generate. The latter is a big concern for electronics, because when high-energy particles hit an electronic circuit, a transference of electric charge is performed from the particle to the device. This effect can generate transitory currents, which can cause different consequences known as single-event effects (SEE). However, in recent years, the concept of New Space has been raised, giving a name to a trend of thinking the space missions in another manner. New Space has been only possible due to a reduction in the costs of putting satellites in orbit. A consequence of changing the launching methods and, thanks to technological improvements, which have allowed the miniaturization of satellites. The concept of CubeSat standardizes the dimensions of small satellites. This is an idea exploited by research institutions and companies that never before could think of deploying their developments in orbit, allowing them to conduct research or offer new services to customers, respectively. These developments can benefit from new computing devices, which provide unprecedented performance levels in single platforms, achieving very integrated solutions that are powerful enough to solve complex applications while the costs are reduced. One of the most interesting platforms is reconfigurable multiprocessor system-on-chip devices (RMPSoCs). These heterogeneous devices integrate into a single chip a reconfigurable circuit with a fixed set of peripherals, memories, and processors. The reconfigurable part is built using SRAM-based FPGA fabric, which, in the basics, are composed of different configurable logic elements, digital signal processor elements, and block-RAM memories as device primitives. This set of primitives is configurable, and moreover, all the internal interconnections that link these elements between them and with I/O ports are also adaptable. In this manner, custom HW solutions can be implemented, offering levels of performance per watt that are only surpassed by Application Specific Integrated Circuits, whose costs are several orders of magnitude higher. The design implemented on the FPGA is defined by data stored in a so-called configuration memory (CFGMEM). Therefore, they can be conceived as two layers devices, in the manner it is pictured in figure 0-1. One is the application logic that includes the device primitives and interconnects logic which the designer can use to build very customized solutions, and the other is the configuration layer composed by the CFGMEM. Apart from the SRAM-FPGA, RMPSoCs are also composed of another welldifferentiated part that is fixed in the silicon when the device is manufactured. This hardwired part can include different sets of multiprocessor systems, high performance peripherals, and hierarchical memories, among other elements, offering a SW-based solution. Therefore, the paradigms of HW design and SW design are integrated into a single device. The first offers outstanding performance, but the development effort required is more significant than for the SW-counterpart, which is flexible and can develop many functions at lower implementation costs. RMPSoCs offer very customizable solutions because the functions developed by the hardwired part can be adapted depending on the SW used within the processors, but also, the FPGA application can be modified by changing the design loaded in the CFGMEM. Even at runtime, a technique known as dynamic and partial reconfiguration (DPR) can be used to modify only a part of the FPGA application while the rest of the design continues operating. This technique, at a low level, is implemented by changing only a part of the configuration memory. This technique is reserved mostly for SRAMbased FPGAs, which are identified by the technology used to implement their CFGMEM. Returning to the change of paradigm of the space sector, RMPSoCs are excellent candidates for implementing satellite applications that require high computing performance and I/O throughput with contained power consumption. Moreover, due to its adaptability features, a single device can be used on different mission stages by modifying the algorithms it performs over time. In the case of satellite constellations, the overall workload can be dynamically distributed between the available nodes. Another opportunity is the idea of communication satellites that don’t become obsolete because the protocols that they develop are updated along the years of operation. The usage of these devices in space has a big concern, the presence of radiation which has already been introduced. Moreover, due to the high pressure New Space puts on the costs of the solutions, commercial off-the-shelf (COTS) components are conceived as a possible alternative for different space missions. The benefit of using COTS devices is that they are produced in high volumes, so they are very cheap compared to radiation-hardened (rad-hard) or radiation-tolerant (rad-tol) chips. Moreover, the performance of rad-hard and rad-tol devices compared to COTS counterparts is lower. However, radiation can affect COTS, even more, considering the levels of the miniaturization of the manufacturing processes of modern devices. In this regard, SEEs are the biggest concern. In particullar, for SRAM-based FPGAs, a type of SEE that produces bit-flips in memory elements must be considered. These effects are known as single event upsets (SEUs), and if they affect the CFGMEM, they can unexpectedly alter the application mapped in the FPGA. The usage of COTS RMPSoCs in space needs the application of different fault mitigation techniques to cope with SEUs. Especially in the reconfiguration part. The hardwired part is naturally more robust to these effects because the number of memory elements is smaller. Nevertheless, SEUs can affect cache memories or processor registers where the usage of error correction codes and redundant configurations of processors can mitigate the problems. In the FPGA, redundancy can be applied in the design mapped in the application layer to reduce the possibilities that an SEU produces errors in the output data delivered by the application. Redundancy is also helpful in detecting SEUs, because if the results of copies of the same module operating with the same data differ, this means that at least one of these copies of the module is altered or damaged. Regarding the configuration layer, there are techniques named scrubbers that are used to detect and repair bit-flips in memories. In this thesis, the concept of mission and support tasks is used to refer to functions executed in RMPSoCs. Mission tasks depend on the satellite goals, and support tasks are needed to guarantee the survival of the system in space and to exploit the adaptability features of RMPSoCs. Integrating different types of tasks in such flexible devices is a complex process given the fact that mission applications must be designed using HW/SW co-design methods to exploit the device capabilities fully. The usage of the HW by the mission tasks must be coordinated with the support tasks implementing DPR and fault mitigation. High-reliability levels must be guaranteed, even when the reduction of costs is one of the main objectives, so the system must be deterministic. In the sense that due to a workload overhead produced, for example, by the triggering of the execution of a support task while the mission was processing important data, the system must maintain its service level or to reduce it following foreseen procedures. Therefore, the complexity of these solutions is very high, which needs diverse and knowledge teams which are not affordable for all entities trying to access space. This thesis proposes methods for reducing the development and validation time of space applications for RMPSoCs, where hybrid-mission tasks implemented using HW/SW resources are integrated with support tasks. First, a procedure for developing real-time SW threads in a modular manner is proposed. This methodology allows for incrementally building complex multithreaded applications while all the steps are validated. Three types of modular tasks are contemplated, the already mentioned mission and support tasks, together with validation tasks. The latter are designed to be added to the platform, exploiting its modular features at different design stages helping in the development and validation of the system. Moreover, a semiautomated workflow is proposed to evaluate the design space considering the restrictions of the development flow of real-time systems where the SWbinaries are statically linked together with the analysis of configurations of the threads, which affect the real-time performance and the reliability of the system. The development methodology is complemented with procedures regarding the correct implementation of real-time multithread applications, considering the hybrid implementation of the threads, which, in the case of RMPSoCs, can be implemented using HW/SW resources. It is based on the monitoring of specific timing characteristics of the threads and the use of the fixed priority rate monotonic scheduling algorithms. The extraction of different timing characteristics of the threads, which can be done with a relatively low effort following the development methodology proposed in this work, allows defining the execution periods of the threads considering they are going to be deployed in a multithread system with shared resources. These two methodologies are complemented by a dependability validation methodology that aims to obtain reliability metrics at the system level, guiding the design process and allowing the comparison of alternatives. This methodology is based on the utilization of the Poisson distribution for modeling the number of faults the system delivers within a time interval. In this manner, the integration of mission and support tasks can be evaluated by using a fault emulation method integrated with the before mentioned validation tools. The methodological contributions are complemented by architectural contributions and with a set of tools to support the previous ideas. A generic reconfigurable processor is proposed based on the usage of the real-time executive for multiprocessor systems (RTEMS) real-time OS, and the ARTICo3 framework in the FPGA. ARTICo3 is a multiple HW acceleration platform where several identical accelerators may be operating together to either increase the computing performance or reliability by dynamically selecting different redundancy options. These two elements, i.e. RTEMS and ARTICo3 composed the foundations for developing, on one side, multithread realtime applications with synchronization mechanisms and, on the other side, a reconfigurable architecture that allows to dynamically adapt the application of the FPGA by reconfiguring the predefined slots with different applications and setting the HW modules into different redundant configurations. The benefits of the ARTICo3 architecture are also exploited for reducing the validation effort of the system. The ARTICo3 architecture was enhanced to support scrubbers implemented in the FPGA, and a new runtime was developed for deterministically using HW accelerator loaded into its HW slots from RTEMS applications. The synchronization of mission and support tasks are solved using operational modes and an FPGA synchronization strategy based on semaphores and barriers from RTEMS, which is portable to other RTOS. The developments presented in the last paragraph was used to implement the already introduced reconfigurable processor for space application. A validation infrastructure was generated to validate this system and to analyze its reliability. It allows obtaining execution traces of the system under test (SUT) in order to assess its real-time behavior. A fault injector system with fault location control was developed. Automatic application deployment in the SUT was also implemented in order to support the semiautomated validation procedure introduced above. Finally, a tool was created to analyze all the traces taken from the SUT by the validation infrastructure, which gives information about its timing behavior and the effects of the injected faults on the mission applications allowing the assessment of reliability and availability. The SUT and part of the validation infrastructure were deployed on the same device using a truly heterogeneous RMPSoC from Xilinx, the Zynq Ultrascale+. It combines two multiproprocessor systems types, one of them capable of real-time operations (ARM R5), and the other one is based on powerful general purpose processors (ARM A53). This platform allowed the deployment of the SUT using the R5 processors running in lockstep and the FPGA. An embedded test system (ETS) was deployed in the application processors of this platform. The ETS is in charge of controlling the fault injection process, the application deployment in the SUT, and the gathering of traces from the SUT. This highly integrated platform offers a cheap solution with good observability of a representative platform to implement a reconfigurable processor for space applications. The architectural and methodological contributions were materialized by the implementation of different tools that can be reused in further developments and ported to other devices. Finally, the main contributions of this thesis are validated through several experiments where two representative applications were used to create two different solutions that were characterized and analyzed using all the developments performed in this work. In this document, chapter 1 motivates the work and introduces the problem in more detail. The generic methodology proposal is done in chapter 2. Followed, the specific architectural contributions, and the tools supporting them, are shown in chapters 3, and 4, respectively. Chapter 5 contains the description of the experiments, which permits to conclude the work in chapter 6, providing also potentially interesting continuation lines of this work. RESUMEN El sector espacial ha cambiado en los últimos años, y este cambio continúa revolucionando la manera en que se conciben las misiones espaciales. Tradicionalmente, el sector espacial se ha caracterizado por ser muy conservador, donde solo se aplicaban soluciones con mucho tiempo de test a sus espaldas. Porque este entorno impone condiciones muy duras: la gestión térmica es complicada porque las temperaturas son extremas y no hay aire para dispiar el calor, las vibraciones durante el despegue son muy elevadas y además, es un entorno con radiación en forma de partículas de alta energía, generadas por erupciones solares o rayos cósmicos. La radiación es un gran problema para la electrónica. Porque cuando una partícula de alta energía golpea un dispositivo electrónico, se produce una transferencia de carga eléctrica desde la partícula hacia el dispositivo. Este efecto puede generar corrientes transitorias, las cuales pueden provocar distintos eventos conocidos como single event effects (SEE). Sin embargo, durante los últimos años, ha aparecido el concepto de New Space. Nombrando así la tendencia de pensar las misiones espaciales de una forma diferente. El New Space ha sido posible gracias al abaratamiento de los costes de poner satélites en órbita. Una consecuencia a raíz de nuevos métodos de lanzamiento y avances tecnológicos, los cuales han permitido reducir el tamaño de los satélites. El concepto de CubeSats estandariza las dimensiones de pequeños satélites. Esta idea es explotada por instituciones investigadoras y empresas que nunca antes hubieran barajado la idea de poner sus desarrollos en órbita, permitiendo nuevas investigaciones o el ofrecimiento de nuevos servicios, respectivamente. Estos desarrollos se benefician de nuevos dispositivos de cómputo, los cuales ofrecen niveles de rendimiento sin precedentes en una sola plataforma, logrando soluciones muy integradas con la capacidad suficiente como para resolver aplicaciones complejas, manteniendo un coste reducido. Una de las plataformas más interesantes son los sistemas reconfigurables multiprocesador en chip (RMPSoC). Estos dispositivos heterogéneos integran en un sólo chip circuitos reconfigurables con un conjunto fijo de periféricos, memorias y procesadores. La parte reconfigurable es construida usando FPGAs de tecnología SRAM, las cuales se componen de una serie de primitivas, que básicamente son: diferentes elementos configurables (CLB), procesadores de procesamiento de señal (DSP) y memorias (BRAM). Este conjunto de primitivas es configurable, y además, todas las conexiones internas entre ellas y con los puertos de entrada/salida (E/S) son también adaptables. De esta manera, soluciones HW customizadas pueden ser implementadas, ofreciendo niveles de cómputo por vatio que sólo pueden ser superados por circuitos integrados de aplicación específica, los cuales tienen costes de varios órdenes de magnitud superiores. El diseño implementado en una FPGA se define por los valores cargados en la memoria de configuración (CFGMEM). Por lo tanto, estos dispositivos pueden verse como dispositivos compuestos por dos capas, como puede verse en la figura 0-1. Una es la capa de aplicación, la cual incluye las primitivas y el sistema de interconexión que el diseñador puede utilizar para construir soluciones muy customizadas, y la otra capa está compuesta por la CFGMEM. A parte de la SRAM-FPGA, RMPSoCs incluyen otra parte bien diferenciada la cual se construye de forma fija en el silicio del dispositivo cuando este es manufacturado. Esta parte fija puede incluir conjuntos de multiprocesadores, interfaces de alta velocidad y memorias, a parte de otros elementos, ofreciendo soluciones basadas en SW. Por lo tanto, los paradigmas de diseño HW y diseño SW se integran en un solo dispositivo. El primero ofrece un rendimiento que no tiene rival, pero el esfuerzo para generar desarrollos es mucho mayor que en soluciones SW, las cuales son muy flexibles y permiten implementar muchos desarrollos se pueden realizar con menor esfuerzo. RMPSoCs ofrecen soluciones muy customizadas porque las funciones desarrolladas por la parte fija se pueden adaptar dependiendo del SW utilizado, pero también, la aplicación implementada en la FPGA puede ser modificada cambiando el diseño cargado en la CFGMEM. Incluso en tiempo de ejecución, usando una técnica conocida como reconfiguración parcial y dinámica (DPR) para cambiar una parte del diseño mientras el resto continúa trabajando. Esta técnica, a bajo nivel, es implementada cambiando los valores guardados en una parte de la CFGMEM. DPR se reserva mayoritariamente a las SRAM-FPGAs, las cuales se identifican con la tecnología usada para implementar su CFGMEM. Retomando el cambio de paradigma en el sector espacial, RMPSoCs son candidatos excelentes para implementar aplicaciones de satélites que requieren gran capacidad de cómputo y altas velocidades de E/S, manteniendo un nivel de consumo energético bajo. Además, gracias a sus capacidades de adaptación, un solo dispositivo puede ser utilizado durante distintas etapas de una misión modificando los algoritmos que ejecuta durante el tiempo. En el caso de constelaciones de satélites, la carga de trabajo total se puede distribuir dinámicamente entre los nodos disponibles. Otra oportunidad consiste en reutilizar satélites de comunicaciones, gracias a actualizar los protocolos que utilizan durante el tiempo. El uso de estos dispositivos en el espacio tiene una problemática asociada, la existencia de radiación, la cual ya se ha introducido antes. Además, debido a la presión que el concepto de New Space pone en los costes de las soluciones, se plantea el uso de dispositivos comerciales producidos en altos volúmenes (COTS) para misiones espaciales. Los COTS tienen precios muy inferiores comparados con dispositivos protegidos contra radiación (radhard) o dispositivos tolerantes a radiación (rad-tol). Además, la capacidad de cómputo de los dispositivos COTS frente a equivalentes rad-hard y rad-tol es mayor. Sin embargo, los COTS son sensibles a la radiación, especialmente en dispositivos modernos debido a la miniaturización de los procesos de manufactura. A este respecto, SEE representan el mayor problema. Concretamente, en el caso de las SRAM-FPGAs, un tipo de SEE que modifica los valores lógicos de dispositivos de almacenamiento conocidos como single event upset (SEU). En el caso de que afecten a la CFGMEM, pueden modificar de forma inesperada la aplicación implementada en la FPGA. El uso de RMPSoCs distribuidos como COTS en el espacio requiere la utilización de distintas técnicas de mitigación de fallos para hacer frente a los SEUs. Especialmente en la parte reconfigurable. La parte fija en el silicio es naturalmente más robusta a estos efectos, porque la cantidad de memoria, en esta parte, es menor. Sin embargo, los SEUs pueden afectar a memorias caché o registros de configuración. En estos casos, el uso de códigos de detección y corrección de errores y configuraciones redundantes de procesadores pueden reducir los problemas. En el caso de la FPGA, se puede aplicar redundancia en el diseño implementado en la capa de aplicación para reducir las posibilidades de que un SEU genere errores en los datos de salida de una aplicación. El uso de redundancia también permite la detección de SEUs, porque si los resultados de dos copias de un mismo módulo, realizando operaciones con el mismo conjunto de datos, genera datos de salida diferentes, significa que al menos uno de ellos está afectado o dañado. En el caso de la capa de configuración, existen técnicas, conocidas como scrubbers que permiten detectar y corregir bits afectados por SEUs. En esta tesis, el concepto de tareas de misión y tareas de soporte se usa para hacer referencia a grupos de funcionalidades ejecutadas en un RMPSoC. Las tareas de misión dependen de los objetivos del satélite, y las tareas de soporte garantizan la supervivencia del sistema en el espacio y permiten la utilización de sus ventajas de adaptación. Integrar los dos grupos de tareas en un dispositivo tan flexible es complejo, teniendo en cuenta que las tareas de misión ya de por sí tienen que ser implementadas usando técnicas de co-desarrollo HW/SW para maximizar el aprovechamiento de la plataforma. Además el uso delHWpor parte de las tareas demisión tiene que coordinarse con la reconfiguración del mismo para adaptar la plataforma o para mitigar fallos, por las tareas de soporte. Altos niveles de fiabilidad tienen que ser garantizados, incluso cuando la reducción de costes es uno de los mayores requisitos, por lo tanto el sistema debe ser determinista. En este sentido, un aumento repentino de la carga de trabajo, que puede generarse porque las tareas de soporte se han activado para corregir un SEU, mientras las tareas de misión están procesando datos importantes; no debe disminuir la calidad del servicio de la plataforma, o en el caso de que se vea disminuida, que lo haga de una forma prevista. Por lo tanto, la complejidad de estas soluciones es muy alta, lo cual requiere equipos y conocimientos diversos los cuales no son factibles por todas las entidades tratando de acceder al sector espacial. Esta tesis propone métodos para reducir el tiempo de desarrollo y de validación de aplicaciones espaciales implementadas en RMPSoCs, donde tareas de misión híbridas, implementadas con recursos HW/SW, son integrados con tareas de soporte. Primero, se presenta un procedimiento para desarrollar tareas HW/SW de forma modular. Esta metodología permite generar de forma incremental aplicaciones multitarea complejas, validando cada uno de los pasos. Tres tipos de tareas son consideradas, las ya mencionadas tareas de misión y de soporte, las cuales se complementan con tareas de validación. Estas últimas se diseñan para poder ser añadidas a la plataforma, gracias al diseño modular de las tareas, en diferentes etapas de diseño, facilitando el desarrollo y la validación del sistema. Además, se propone una metodología de trabajo semiautomatizada para evaluar el espacio de diseño, teniendo en cuenta las restricciones del flujo de trabajo de sistemas de tiempo real, donde los binarios de las aplicaciones son enlazados de forma estática, y el análisis de distintas configuraciones de las tareas que pueden afectar al comportamiento de tiempo real y a la fiabilidad del sistema. La metodología de desarrollo se complementa con procedimientos para asegurar la correcta implementación de aplicaciones multitarea de tiempo real, considerando que las tareas pueden ser híbridas, utilizando para su implementación recursos SW y HW. Estos procedimientos se basan en monitorizar las características temporales de las tareas y en el uso de el algoritmo de gestión de tareas rate monotonic scheduling (RMS). Gracias a la obtención de las características temporales de las tareas, lo cual se pude llevar a cabo de forma relativamente sencilla considerando la metodología de desarrollo propuesta en este trabajo, permiten definición de los periodos de ejecución de las tareas, considerando que se van a ejecutar en un sistema multitarea con recursos compartidos. Estas dos metodologías son complementadas con una metodología de análisis de fiabilidad para obtener medidas a este respecto, a nivel de sistema, que permitan guiar el proceso de diseño y comparar alternativas. Esta metodología se basa en la utilización de la distribución de Poisson para modelar el número de fallos del sistema en un intervalo de tiempo específico. De esta manera, la integración de tareas de misión y de soporte se puede validar mediante la utilización de un sistema de emulación de fallos. Las contribuciones metodológicas se complementan con contribuciones arquitecturales y con un conjunto de herramientas que dan soporte a las ideas previas. Se propone un procesador genérico para el espacio fundamentado en el uso del sistema operativo de tiempo real RTEMS y con el conjunto de herramientas asociadas a la arquitectura reconfigurable ARTICo3. ARTICo3 es un sistema de multiaceleración HW donde varias copias idénticas de aceleradores HW pueden ser utilizadas de forma conjunta para aumentar la capacidad de cómputo o la fiabilidad, gracias a la utilización dinámica de distintas configuraciones de redundancia. Estos dos elementos (RTEMS y ARTICo3) son la base para desarrollar, por un lado, sistemas multitarea con mecanismos de sincronización, y por otro, una arquitectura reconfigurable que permite adaptar de forma dinámica la aplicación implementada en la FPGA, alternando los aceleradores HW o la configuración de redundancia de los mismos. La adaptabilidad ofrecida por ARTICo3 se puede aprovechar para reducir los esfuerzos de validación. La arquitectura de ARTICo3 se actualizó para incluir scrubbers implementados en la FPGA, y una nueva biblioteca SW que permite un uso determinista de esta arquitectura reconfigurable desde aplicaciones de RTEMS. La sincronización de las tareas de misión y de soporte se resuelve utilizando el concepto de modos operacionales, junto a una estrategia de sincronización del uso de la FPGA basada en semáforos y barreras de RTEMS, la cual es portable a otros sistemas operativos de tiempo real. Los desarrollos explicados en el párrafo anterior se utilizaron para implementar un procesador reconfigurable para aplicaciones espaciales. Para validar este sistema se generó una infraestructura de validación, la cual permite obtener trazas del sistema bajo test (SUT) para asegurar su comportamiento de tiempo-real y analizar su fiabilidad. Un sistema de inyección de fallos, con control de localización del fallo inyectado, fue desarrollado. También se implementó la capacidad de lanzar aplicaciones en el SUT de de forma automatizada para soportar los procedimientos de validación semiautomatizados que ya han sido introducidos. Finalmente, se generó una herramienta para analizar todas las trazas obtenidas del SUT por la infraestructura de validación, la cual permite obtener información sobre el comportamiento temporal y los efectos de los fallos inyectados en las tareas de misión, permitiendo la validación de la fiabilidad y la disponibilidad del sistema. El SUT y parte de la infraestructura de validación se implementaron en un solo dispositivo gracias a la utilización de una plataforma heterogégena RMPSoC de Xilinx, la Zynq Ultrascale+. La cual combina dos tipos de sistemas multiprocesador, uno de ellos destinado a la realización de tareas de tiempo real (ARM R5), y el otro está basado en potentes procesadores de aplicación (ARM A53). Esta plataforma permitió desplegar el SUT utilizando los procesadores de tiempo real configurados en modo lockstep y la FPGA. Un sistema embebido de test (ETS) se desplegó en los procesadores de aplicación. El ETS se encarga de controlar el proceso de inyección de fallos, el lanzamiento de tareas en el SUT y la obtención de trazas de monitorización. Esda plataforma muy integrada ofrece una solución de bajo coste con buena observabilidad de un sistema representativo para aplicaciones espaciales. Las contribuciones metodológicas y arquitecturales se mateliarizaron con la implementación de diferentes herramientas, que pueden ser usadas en futuros desarrollos y en otros dispositivos. Finalmente, las contribuciones de este trabajo se evaluaron mediante el desarrollo de distintos experimentos, donde dos aplicaciones representativas, con distintas configuraciones, fueron caracterizadas y analizadas usando los desarrollos de este trabajo. En este documento, 1 motiva el desarrollo de este trabajo e introduce el problema con más detalle. La metodología propuesta se explica en el 2. A continuación, se cubren las contribuciones metodológicas, y las herramientas que les dan soporte, en los capítulos 3 y 4. El capítulo 5 contiene la descripción de los experimentos, la cual permite concluir el trabajo en, 6, proporcionando potenciales líneas de investigación futuras para este trabajo.