79 resultados para multi-platform development
Resumo:
In this paper, the authors introduce a novel mechanism for data management in a middleware for smart home control, where a relational database and semantic ontology storage are used at the same time in a Data Warehouse. An annotation system has been designed for instructing the storage format and location, registering new ontology concepts and most importantly, guaranteeing the Data Consistency between the two storage methods. For easing the data persistence process, the Data Access Object (DAO) pattern is applied and optimized to enhance the Data Consistency assurance. Finally, this novel mechanism provides an easy manner for the development of applications and their integration with BATMP. Finally, an application named "Parameter Monitoring Service" is given as an example for assessing the feasibility of the system.
Resumo:
Enterprises are increasingly using a wide range of heterogeneous information systems for executing and governing their business activities. Even if the adoption of service orientation has improved loose coupling and reusability, applications are still isolated data silos whose integration requires complex transformations and mediations. However, by leveraging Linked Data principles those data silos can now be seamlessly integrated, and this opens the door to new data-driven approaches for Enterprise Application Integration (EAI). In this paper we present LDP4j, an open souce Java-based framework for the development of interoperable read-write Linked Data applications, based on the W3C Linked Data Platform (LDP) specification.
Resumo:
With the ever growing trend of smart phones and tablets, Android is becoming more and more popular everyday. With more than one billion active users i to date, Android is the leading technology in smart phone arena. In addition to that, Android also runs on Android TV, Android smart watches and cars. Therefore, in recent years, Android applications have become one of the major development sectors in software industry. As of mid 2013, the number of published applications on Google Play had exceeded one million and the cumulative number of downloads was more than 50 billionii. A 2013 survey also revealed that 71% of the mobile application developers work on developing Android applicationsiii. Considering this size of Android applications, it is quite evident that people rely on these applications on a daily basis for the completion of simple tasks like keeping track of weather to rather complex tasks like managing one’s bank accounts. Hence, like every other kind of code, Android code also needs to be verified in order to work properly and achieve a certain confidence level. Because of the gigantic size of the number of applications, it becomes really hard to manually test Android applications specially when it has to be verified for various versions of the OS and also, various device configurations such as different screen sizes and different hardware availability. Hence, recently there has been a lot of work on developing different testing methods for Android applications in Computer Science fraternity. The model of Android attracts researchers because of its open source nature. It makes the whole research model more streamlined when the code for both, application and the platform are readily available to analyze. And hence, there has been a great deal of research in testing and static analysis of Android applications. A great deal of this research has been focused on the input test generation for Android applications. Hence, there are a several testing tools available now, which focus on automatic generation of test cases for Android applications. These tools differ with one another on the basis of their strategies and heuristics used for this generation of test cases. But there is still very little work done on the comparison of these testing tools and the strategies they use. Recently, some research work has been carried outiv in this regard that compared the performance of various available tools with respect to their respective code coverage, fault detection, ability to work on multiple platforms and their ease of use. It was done, by running these tools on a total of 60 real world Android applications. The results of this research showed that although effective, these strategies being used by the tools, also face limitations and hence, have room for improvement. The purpose of this thesis is to extend this research into a more specific and attribute-‐ oriented way. Attributes refer to the tasks that can be completed using the Android platform. It can be anything ranging from a basic system call for receiving an SMS to more complex tasks like sending the user to another application from the current one. The idea is to develop a benchmark for Android testing tools, which is based on the performance related to these attributes. This will allow the comparison of these tools with respect to these attributes. For example, if there is an application that plays some audio file, will the testing tool be able to generate a test input that will warrant the execution of this audio file? Using multiple applications using different attributes, it can be visualized that which testing tool is more useful for which kinds of attributes. In this thesis, it was decided that 9 attributes covering the basic nature of tasks, will be targeted for the assessment of three testing tools. Later this can be done for much more attributes to compare even more testing tools. The aim of this work is to show that this approach is effective and can be used on a much larger scale. One of the flagship features of this work, which also differentiates it with the previous work, is that the applications used, are all specially made for this research. The reason for doing that is to analyze just that specific attribute in isolation, which the application is focused on, and not allow the tool to get bottlenecked by something trivial, which is not the main attribute under testing. This means 9 applications, each focused on one specific attribute. The main contributions of this thesis are: A summary of the three existing testing tools and their respective techniques for automatic test input generation of Android Applications. • A detailed study of the usage of these testing tools using the 9 applications specially designed and developed for this study. • The analysis of the obtained results of the study carried out. And a comparison of the performance of the selected tools.
Resumo:
The development of mixed-criticality virtualized multi-core systems poses new challenges that are being subject of active research work. There is an additional complexity: it is now required to identify a set of partitions, and allocate applications to partitions. In this job, a number of issues have to be considered, such as the criticality level of the application, security and dependability requirements, time requirements granularity, etc. MultiPARTES [11] toolset relies on Model Driven Engineering (MDE), which is a suitable approach in this setting, as it helps to bridge the gap between design issues and partitioning concerns. MDE is changing the way systems are developed nowadays, reducing development time. In general, modelling approaches have shown their benefits when applied to embedded systems. These benefits have been achieved by fostering reuse with an intensive use of abstractions, or automating the generation of boiler-plate code.
Resumo:
As environmental standards become more stringent (e.g. European Directive 2008/50/EC), more reliable and sophisticated modeling tools are needed to simulate measures and plans that may effectively tackle air quality exceedances, common in large cities across Europe, particularly for NO2. Modeling air quality in urban areas is rather complex since observed concentration values are a consequence of the interaction of multiple sources and processes that involve a wide range of spatial and temporal scales. Besides a consistent and robust multi-scale modeling system, comprehensive and flexible emission inventories are needed. This paper discusses the application of the WRF-SMOKE-CMAQ system to the Madrid city (Spain) to assess the contribution of the main emitting sectors in the region. A detailed emission inventory was compiled for this purpose. This inventory relies on bottom-up methods for the most important sources. It is coupled with the regional traffic model and it makes use of an extensive database of industrial, commercial and residential combustion plants. Less relevant sources are downscaled from national or regional inventories. This paper reports the methodology and main results of the source apportionment study performed to understand the origin of pollution (main sectors and geographical areas) and define clear targets for the abatement strategy. Finally the structure of the air quality monitoring is analyzed and discussed to identify options to improve the monitoring strategy not only in the Madrid city but the whole metropolitan area.
Resumo:
En este proyecto, se presenta un informe técnico sobre la cámara Leap Motion y el Software Development Kit correspondiente, el cual es un dispositivo con una cámara de profundidad orientada a interfaces hombre-máquina. Esto es realizado con el propósito de desarrollar una interfaz hombre-máquina basada en un sistema de reconocimiento de gestos de manos. Después de un exhaustivo estudio de la cámara Leap Motion, se han realizado diversos programas de ejemplo con la intención de verificar las capacidades descritas en el informe técnico, poniendo a prueba la Application Programming Interface y evaluando la precisión de las diferentes medidas obtenidas sobre los datos de la cámara. Finalmente, se desarrolla un prototipo de un sistema de reconocimiento de gestos. Los datos sobre la posición y orientación de la punta de los dedos obtenidos de la Leap Motion son usados para describir un gesto mediante un vector descriptor, el cual es enviado a una Máquina Vectores Soporte, utilizada como clasificador multi-clase.
Resumo:
¿Suministrarán las fuentes de energía renovables toda la energía que el mundo necesita algún día? Algunos argumentan que sí, mientras que otros dicen que no. Sin embargo, en algunas regiones del mundo, la producción de electricidad a través de fuentes de energía renovables ya está en una etapa prometedora de desarrollo en la que su costo de generación de electricidad compite con fuentes de electricidad convencionales, como por ejemplo la paridad de red. Este logro ha sido respaldado por el aumento de la eficiencia de la tecnología, la reducción de los costos de producción y, sobre todo, los años de intervenciones políticas de apoyo financiero. La difusión de los sistemas solares fotovoltaicos (PV) en Alemania es un ejemplo relevante. Alemania no sólo es el país líder en términos de capacidad instalada de sistemas fotovoltaicos (PV) en todo el mundo, sino también uno de los países pioneros donde la paridad de red se ha logrado recientemente. No obstante, podría haber una nube en el horizonte. La tasa de difusión ha comenzado a declinar en muchas regiones. Además, las empresas solares locales – que se sabe son importantes impulsores de la difusión – han comenzado a enfrentar dificultades para manejar sus negocios. Estos acontecimientos plantean algunas preguntas importantes: ¿Es ésta una disminución temporal en la difusión? ¿Los adoptantes continuarán instalando sistemas fotovoltaicos? ¿Qué pasa con los modelos de negocio de las empresas solares locales? Con base en el caso de los sistemas fotovoltaicos en Alemania a través de un análisis multinivel y dos revisiones literarias complementarias, esta tesis doctoral extiende el debate proporcionando riqueza múltiple de datos empíricos en un conocimiento de contexto limitado. El primer análisis se basa en la perspectiva del adoptante, que explora el nivel "micro" y el proceso social que subyace a la adopción de los sistemas fotovoltaicos. El segundo análisis es una perspectiva a nivel de empresa, que explora los modelos de negocio de las empresas y sus roles impulsores en la difusión de los sistemas fotovoltaicos. El tercero análisis es una perspectiva regional, la cual explora el nivel "meso", el proceso social que subyace a la adopción de sistemas fotovoltaicos y sus técnicas de modelado. Los resultados incluyen implicaciones tanto para académicos como políticos, no sólo sobre las innovaciones en energía renovable relativas a la paridad de red, sino también, de manera inductiva, sobre las innovaciones ambientales impulsadas por las políticas que logren la competitividad de costes. ABSTRACT Will renewable energy sources supply all of the world energy needs one day? Some argue yes, while others say no. However, in some regions of the world, the electricity production through renewable energy sources is already at a promising stage of development at which their electricity generation costs compete with conventional electricity sources’, i.e., grid parity. This achievement has been underpinned by the increase of technology efficiency, reduction of production costs and, above all, years of policy interventions of providing financial support. The diffusion of solar photovoltaic (PV) systems in Germany is an important frontrunner case in point. Germany is not only the top country in terms of installed PV systems’ capacity worldwide but also one of the pioneer countries where the grid parity has recently been achieved. However, there might be a cloud on the horizon. The diffusion rate has started to decline in many regions. In addition, local solar firms – which are known to be important drivers of diffusion – have started to face difficulties to run their businesses. These developments raise some important questions: Is this a temporary decline on diffusion? Will adopters continue to install PV systems? What about the business models of the local solar firms? Based on the case of PV systems in Germany through a multi-level analysis and two complementary literature reviews, this PhD Dissertation extends the debate by providing multiple wealth of empirical details in a context-limited knowledge. The first analysis is based on the adopter perspective, which explores the “micro” level and the social process underlying the adoption of PV systems. The second one is a firm-level perspective, which explores the business models of firms and their driving roles in diffusion of PV systems. The third one is a regional perspective, which explores the “meso” level, i.e., the social process underlying the adoption of PV systems and its modeling techniques. The results include implications for both scholars and policymakers, not only about renewable energy innovations at grid parity, but also in an inductive manner, about policy-driven environmental innovations that achieve the cost competiveness.
Resumo:
In recent years, there has been a great increase in the development of wireless technologies and location services. For this reason, numerous projects in the location field, have arisen. In addition, with the appearance of the open Android operating system, wireless technologies are being developed faster than ever. This Project approaches the design and development of a system that combines the technologies of wireless, location and Android with the implementation of an indoor positioning system. As a result, an Android application has been obtained, which detects the position of a phone in a simple and useful way. The application is based on the WIFI manager API of Android. It combines the data stored in a SQL database with the wifi data received at any given time. Afterwards the position of the user is determined with the algorithm that has been implemented. This application is able to obtain the position of any person who is inside a building with Wi-Fi coverage, and display it on the screen of any device with the Android operating system. Besides the estimation of the position, this system displays a map that helps you see in which quadrant of the room are positioned in real time. This system has been designed with a simple interface to allow people without technology knowledge. Finally, several tests and simulations of the system have been carried out to see its operation and accuracy. The performance of the system has been verified in two different places and changes have been made in the Java code to improve its precision and effectiveness. As a result of the several tests, it has been noticed that the placement of the access point (AP) and the configuration of the Wireless network is an important point that should be taken into account to avoid interferences and errors as much as possible, in the estimation of the position. RESUMEN. En los últimos años, se ha producido un incremento en el desarrollo de tecnologías inalámbricas y en servicios de localización y posicionamiento. Por esta razón, han surgido numerosos proyectos relacionados con estas tecnologías. Por otra parte, un punto importante en el desarrollo de estas tecnologías ha sido la aparición del lenguaje Android que ha hecho que estas nuevas tecnologías se implementaran con una mayor rapidez. Este proyecto, se acerca al diseño y desarrollo de un sistema que combina tecnologías inalámbricas, de ubicación y uso de lenguaje Android para el desarrollo de una aplicación de un sistema de posicionamiento en interiores. Como consecuencia de esto se ha obtenido una aplicación Android que detecta la posición de un dispositivo móvil de una manera sencilla e intuititva. La aplicación se basa en la API WIFI de Android, que combina los datos almacenados en una base de datos SQL con los datos recibidos vía Wi-Fi en cualquier momento. A continuación, la posición del usuario se determina con el algoritmo que se ha implementado a lo largo de todo el proyecto utilizando código Android. Esta aplicación es capaz de obtener la posición de cualquier persona que se encuentra dentro de un edificio con cobertura Wi-Fi, mostrando por pantalla la ubicación del usuario en cualquier dispositivo que disponga de sistema operativo Android. Además de la estimación de la posición, este sistema muestra un mapa que le ayuda a ver en qué cuadrante de la sala está situado el usuario. Este sistema ha sido diseñado con una interfaz sencilla para permitir que usuarios sin conocimiento tecnológico o no acostumbrados al uso de los nuevos dispositivos de hoy en día puedan usarlo de una manera sencilla y de forma intuitiva. Por último, se han llevado a cabo varias pruebas y simulaciones del sistema para verificar su funcionamiento y precisión. El rendimiento del sistema se ha comprobado en dos puntos diferentes de la sala (lugar donde se han hecho todas las pruebas y desarrollado la aplicación) realizando cambios en el código Java para mejorar aún más la precisión y eficacia del posicionamiento. Como resultado de todo esto, se ha comprobado que la ubicación del punto de acceso (AP) y la configuración de la red inalámbrica es importante, y por ello se debe de tener en cuenta para evitar interferencias y tantos errores como sea posible en la estimación de la posición.
Resumo:
Esta tesis considera dos tipos de aplicaciones del diseño óptico: óptica formadora de imagen por un lado, y óptica anidólica (nonimaging) o no formadora de imagen, por otro. Las ópticas formadoras de imagen tienen como objetivo la obtención de imágenes de puntos del objeto en el plano de la imagen. Por su parte, la óptica anidólica, surgida del desarrollo de aplicaciones de concentración e iluminación, se centra en la transferencia de energía en forma de luz de forma eficiente. En general, son preferibles los diseños ópticos que den como resultado sistemas compactos, para ambos tipos de ópticas (formadora de imagen y anidólica). En el caso de los sistemas anidólicos, una óptica compacta permite tener costes de producción reducidos. Hay dos razones: (1) una óptica compacta presenta volúmenes reducidos, lo que significa que se necesita menos material para la producción en masa; (2) una óptica compacta es pequeña y ligera, lo que ahorra costes en el transporte. Para los sistemas ópticos de formación de imagen, además de las ventajas anteriores, una óptica compacta aumenta la portabilidad de los dispositivos, que es una gran ventaja en tecnologías de visualización portátiles, tales como cascos de realidad virtual (HMD del inglés Head Mounted Display). Esta tesis se centra por tanto en nuevos enfoques de diseño de sistemas ópticos compactos para aplicaciones tanto de formación de imagen, como anidólicas. Los colimadores son uno de los diseños clásicos dentro la óptica anidólica, y se pueden utilizar en aplicaciones fotovoltaicas y de iluminación. Hay varios enfoques a la hora de diseñar estos colimadores. Los diseños convencionales tienen una relación de aspecto mayor que 0.5. Con el fin de reducir la altura del colimador manteniendo el área de iluminación, esta tesis presenta un diseño de un colimador multicanal. En óptica formadora de imagen, las superficies asféricas y las superficies sin simetría de revolución (o freeform) son de gran utilidad de cara al control de las aberraciones de la imagen y para reducir el número y tamaño de los elementos ópticos. Debido al rápido desarrollo de sistemas de computación digital, los trazados de rayos se pueden realizar de forma rápida y sencilla para evaluar el rendimiento del sistema óptico analizado. Esto ha llevado a los diseños ópticos modernos a ser generados mediante el uso de diferentes técnicas de optimización multi-paramétricas. Estas técnicas requieren un buen diseño inicial como punto de partida para el diseño final, que será obtenido tras un proceso de optimización. Este proceso precisa un método de diseño directo para superficies asféricas y freeform que den como resultado un diseño cercano al óptimo. Un método de diseño basado en ecuaciones diferenciales se presenta en esta tesis para obtener un diseño óptico formado por una superficie freeform y dos superficies asféricas. Esta tesis consta de cinco capítulos. En Capítulo 1, se presentan los conceptos básicos de la óptica formadora de imagen y de la óptica anidólica, y se introducen las técnicas clásicas del diseño de las mismas. El Capítulo 2 describe el diseño de un colimador ultra-compacto. La relación de aspecto ultra-baja de este colimador se logra mediante el uso de una estructura multicanal. Se presentará su procedimiento de diseño, así como un prototipo fabricado y la caracterización del mismo. El Capítulo 3 describe los conceptos principales de la optimización de los sistemas ópticos: función de mérito y método de mínimos cuadrados amortiguados. La importancia de un buen punto de partida se demuestra mediante la presentación de un mismo ejemplo visto a través de diferentes enfoques de diseño. El método de las ecuaciones diferenciales se presenta como una herramienta ideal para obtener un buen punto de partida para la solución final. Además, diferentes técnicas de interpolación y representación de superficies asféricas y freeform se presentan para el procedimiento de optimización. El Capítulo 4 describe la aplicación del método de las ecuaciones diferenciales para un diseño de un sistema óptico de una sola superficie freeform. Algunos conceptos básicos de geometría diferencial son presentados para una mejor comprensión de la derivación de las ecuaciones diferenciales parciales. También se presenta un procedimiento de solución numérica. La condición inicial está elegida como un grado de libertad adicional para controlar la superficie donde se forma la imagen. Basado en este enfoque, un diseño anastigmático se puede obtener fácilmente y se utiliza como punto de partida para un ejemplo de diseño de un HMD con una única superficie reflectante. Después de la optimización, dicho diseño muestra mejor rendimiento. El Capítulo 5 describe el método de las ecuaciones diferenciales ampliado para diseños de dos superficies asféricas. Para diseños ópticos de una superficie, ni la superficie de imagen ni la correspondencia entre puntos del objeto y la imagen pueden ser prescritas. Con esta superficie adicional, la superficie de la imagen se puede prescribir. Esto conduce a un conjunto de tres ecuaciones diferenciales ordinarias implícitas. La solución numérica se puede obtener a través de cualquier software de cálculo numérico. Dicho procedimiento también se explica en este capítulo. Este método de diseño da como resultado una lente anastigmática, que se comparará con una lente aplanática. El diseño anastigmático converge mucho más rápido en la optimización y la solución final muestra un mejor rendimiento. ABSTRACT We will consider optical design from two points of view: imaging optics and nonimaging optics. Imaging optics focuses on the imaging of the points of the object. Nonimaging optics arose from the development of concentrators and illuminators, focuses on the transfer of light energy, and has wide applications in illumination and concentration photovoltaics. In general, compact optical systems are necessary for both imaging and nonimaging designs. For nonimaging optical systems, compact optics use to be important for reducing cost. The reasons are twofold: (1) compact optics is small in volume, which means less material is needed for mass-production; (2) compact optics is small in size and light in weight, which saves cost in transportation. For imaging optical systems, in addition to the above advantages, compact optics increases portability of devices as well, which contributes a lot to wearable display technologies such as Head Mounted Displays (HMD). This thesis presents novel design approaches of compact optical systems for both imaging and nonimaging applications. Collimator is a typical application of nonimaging optics in illumination, and can be used in concentration photovoltaics as well due to the reciprocity of light. There are several approaches for collimator designs. In general, all of these approaches have an aperture diameter to collimator height not greater than 2. In order to reduce the height of the collimator while maintaining the illumination area, a multichannel design is presented in this thesis. In imaging optics, aspheric and freeform surfaces are useful in controlling image aberrations and reducing the number and size of optical elements. Due to the rapid development of digital computing systems, ray tracing can be easily performed to evaluate the performance of optical system. This has led to the modern optical designs created by using different multi-parametric optimization techniques. These techniques require a good initial design to be a starting point so that the final design after optimization procedure can reach the optimum solution. This requires a direct design method for aspheric and freeform surface close to the optimum. A differential equation based design method is presented in this thesis to obtain single freeform and double aspheric surfaces. The thesis comprises of five chapters. In Chapter 1, basic concepts of imaging and nonimaging optics are presented and typical design techniques are introduced. Readers can obtain an understanding for the following chapters. Chapter 2 describes the design of ultra-compact collimator. The ultra-low aspect ratio of this collimator is achieved by using a multichannel structure. Its design procedure is presented together with a prototype and its evaluation. The ultra-compactness of the device has been approved. Chapter 3 describes the main concepts of optimizing optical systems: merit function and Damped Least-Squares method. The importance of a good starting point is demonstrated by presenting an example through different design approaches. The differential equation method is introduced as an ideal tool to obtain a good starting point for the final solution. Additionally, different interpolation and representation techniques for aspheric and freeform surface are presented for optimization procedure. Chapter 4 describes the application of differential equation method in the design of single freeform surface optical system. Basic concepts of differential geometry are presented for understanding the derivation of partial differential equations. A numerical solution procedure is also presented. The initial condition is chosen as an additional freedom to control the image surface. Based on this approach, anastigmatic designs can be readily obtained and is used as starting point for a single reflective surface HMD design example. After optimization, the evaluation shows better MTF. Chapter 5 describes the differential equation method extended to double aspheric surface designs. For single optical surface designs, neither image surface nor the mapping from object to image can be prescribed. With one more surface added, the image surface can be prescribed. This leads to a set of three implicit ordinary differential equations. Numerical solution can be obtained by MATLAB and its procedure is also explained. An anastigmatic lens is derived from this design method and compared with an aplanatic lens. The anastigmatic design converges much faster in optimization and the final solution shows better performance.
Resumo:
La embriogénesis es el proceso mediante el cual una célula se convierte en un ser un vivo. A lo largo de diferentes etapas de desarrollo, la población de células va proliferando a la vez que el embrión va tomando forma y se configura. Esto es posible gracias a la acción de varios procesos genéticos, bioquímicos y mecánicos que interaccionan y se regulan entre ellos formando un sistema complejo que se organiza a diferentes escalas espaciales y temporales. Este proceso ocurre de manera robusta y reproducible, pero también con cierta variabilidad que permite la diversidad de individuos de una misma especie. La aparición de la microscopía de fluorescencia, posible gracias a proteínas fluorescentes que pueden ser adheridas a las cadenas de expresión de las células, y los avances en la física óptica de los microscopios han permitido observar este proceso de embriogénesis in-vivo y generar secuencias de imágenes tridimensionales de alta resolución espacio-temporal. Estas imágenes permiten el estudio de los procesos de desarrollo embrionario con técnicas de análisis de imagen y de datos, reconstruyendo dichos procesos para crear la representación de un embrión digital. Una de las más actuales problemáticas en este campo es entender los procesos mecánicos, de manera aislada y en interacción con otros factores como la expresión genética, para que el embrión se desarrolle. Debido a la complejidad de estos procesos, estos problemas se afrontan mediante diferentes técnicas y escalas específicas donde, a través de experimentos, pueden hacerse y confrontarse hipótesis, obteniendo conclusiones sobre el funcionamiento de los mecanismos estudiados. Esta tesis doctoral se ha enfocado sobre esta problemática intentando mejorar las metodologías del estado del arte y con un objetivo específico: estudiar patrones de deformación que emergen del movimiento organizado de las células durante diferentes estados del desarrollo del embrión, de manera global o en tejidos concretos. Estudios se han centrado en la mecánica en relación con procesos de señalización o interacciones a nivel celular o de tejido. En este trabajo, se propone un esquema para generalizar el estudio del movimiento y las interacciones mecánicas que se desprenden del mismo a diferentes escalas espaciales y temporales. Esto permitiría no sólo estudios locales, si no estudios sistemáticos de las escalas de interacción mecánica dentro de un embrión. Por tanto, el esquema propuesto obvia las causas de generación de movimiento (fuerzas) y se centra en la cuantificación de la cinemática (deformación y esfuerzos) a partir de imágenes de forma no invasiva. Hoy en día las dificultades experimentales y metodológicas y la complejidad de los sistemas biológicos impiden una descripción mecánica completa de manera sistemática. Sin embargo, patrones de deformación muestran el resultado de diferentes factores mecánicos en interacción con otros elementos dando lugar a una organización mecánica, necesaria para el desarrollo, que puede ser cuantificado a partir de la metodología propuesta en esta tesis. La metodología asume un medio continuo descrito de forma Lagrangiana (en función de las trayectorias de puntos materiales que se mueven en el sistema en lugar de puntos espaciales) de la dinámica del movimiento, estimado a partir de las imágenes mediante métodos de seguimiento de células o de técnicas de registro de imagen. Gracias a este esquema es posible describir la deformación instantánea y acumulada respecto a un estado inicial para cualquier dominio del embrión. La aplicación de esta metodología a imágenes 3D + t del pez zebra sirvió para desvelar estructuras mecánicas que tienden a estabilizarse a lo largo del tiempo en dicho embrión, y que se organizan a una escala semejante al del mapa de diferenciación celular y con indicios de correlación con patrones de expresión genética. También se aplicó la metodología al estudio del tejido amnioserosa de la Drosophila (mosca de la fruta) durante el cierre dorsal, obteniendo indicios de un acoplamiento entre escalas subcelulares, celulares y supracelulares, que genera patrones complejos en respuesta a la fuerza generada por los esqueletos de acto-myosina. En definitiva, esta tesis doctoral propone una estrategia novedosa de análisis de la dinámica celular multi-escala que permite cuantificar patrones de manera inmediata y que además ofrece una representación que reconstruye la evolución de los procesos como los ven las células, en lugar de como son observados desde el microscopio. Esta metodología por tanto permite nuevas formas de análisis y comparación de embriones y tejidos durante la embriogénesis a partir de imágenes in-vivo. ABSTRACT The embryogenesis is the process from which a single cell turns into a living organism. Through several stages of development, the cell population proliferates at the same time the embryo shapes and the organs develop gaining their functionality. This is possible through genetic, biochemical and mechanical factors that are involved in a complex interaction of processes organized in different levels and in different spatio-temporal scales. The embryogenesis, through this complexity, develops in a robust and reproducible way, but allowing variability that makes possible the diversity of living specimens. The advances in physics of microscopes and the appearance of fluorescent proteins that can be attached to expression chains, reporting about structural and functional elements of the cell, have enabled for the in-vivo observation of embryogenesis. The imaging process results in sequences of high spatio-temporal resolution 3D+time data of the embryogenesis as a digital representation of the embryos that can be further analyzed, provided new image processing and data analysis techniques are developed. One of the most relevant and challenging lines of research in the field is the quantification of the mechanical factors and processes involved in the shaping process of the embryo and their interactions with other embryogenesis factors such as genetics. Due to the complexity of the processes, studies have focused on specific problems and scales controlled in the experiments, posing and testing hypothesis to gain new biological insight. However, methodologies are often difficult to be exported to study other biological phenomena or specimens. This PhD Thesis is framed within this paradigm of research and tries to propose a systematic methodology to quantify the emergent deformation patterns from the motion estimated in in-vivo images of embryogenesis. Thanks to this strategy it would be possible to quantify not only local mechanisms, but to discover and characterize the scales of mechanical organization within the embryo. The framework focuses on the quantification of the motion kinematics (deformation and strains), neglecting the causes of the motion (forces), from images in a non-invasive way. Experimental and methodological challenges hamper the quantification of exerted forces and the mechanical properties of tissues. However, a descriptive framework of deformation patterns provides valuable insight about the organization and scales of the mechanical interactions, along the embryo development. Such a characterization would help to improve mechanical models and progressively understand the complexity of embryogenesis. This framework relies on a Lagrangian representation of the cell dynamics system based on the trajectories of points moving along the deformation. This approach of analysis enables the reconstruction of the mechanical patterning as experienced by the cells and tissues. Thus, we can build temporal profiles of deformation along stages of development, comprising both the instantaneous events and the cumulative deformation history. The application of this framework to 3D + time data of zebrafish embryogenesis allowed us to discover mechanical profiles that stabilized through time forming structures that organize in a scale comparable to the map of cell differentiation (fate map), and also suggesting correlation with genetic patterns. The framework was also applied to the analysis of the amnioserosa tissue in the drosophila’s dorsal closure, revealing that the oscillatory contraction triggered by the acto-myosin network organized complexly coupling different scales: local force generation foci, cellular morphology control mechanisms and tissue geometrical constraints. In summary, this PhD Thesis proposes a theoretical framework for the analysis of multi-scale cell dynamics that enables to quantify automatically mechanical patterns and also offers a new representation of the embryo dynamics as experienced by cells instead of how the microscope captures instantaneously the processes. Therefore, this framework enables for new strategies of quantitative analysis and comparison between embryos and tissues during embryogenesis from in-vivo images.
Resumo:
Vivimos una época en la que el mundo se transforma aceleradamente. La globalización está siguiendo un curso imparable, la población mundial así como la población urbana siguen creciendo, y en los países emergentes los ingresos promedios aumentan, resultando en un cambio también acelerado de las dietas y hábitos alimentarios. En conjunto esos factores están causando un aumento fundamental de la demanda de alimentos. Junto con la apertura de los mercados agrícolas, estos procesos han provocado un crecimiento del comercio internacional de alimentos durante la última década. Dado que muchos países de América Latina están dotados de abundancia de recursos naturales, estas tendencias han producido un crecimiento rápido de las exportaciones de bienes primarios desde América Latina al resto del mundo. En sólo 30 años la participación en el mercado agrícola de América Latina casi se ha duplicado, desde 10% en 1980 a 18% en 2010. Este aumento del comercio agrícola ha dado lugar a un debate sobre una serie de cuestiones cruciales relacionadas con los impactos del comercio en la seguridad alimentaria mundial, en el medio ambiente o en la reducción de la pobreza rural en países en desarrollo. Esta tesis aplica un marco integrado para analizar varios impactos relacionados con la transformación de los mercados agrícolas y los mercados rurales debidos a la globalización y, en particular, al progresivo aumento del comercio internacional. En concreto, la tesis aborda los siguientes temas: En primer lugar, la producción mundial de alimentos tendrá que aumentar considerablemente para poder satisfacer la demanda de una población mundial de 9000 millones personas en 2050, lo cual plantea grandes desafíos sobre los sistemas de la producción de alimentos. Alcanzar este logro, sin comprometer la integridad del medio ambiente en regiones exportadoras, es un reto aún mayor. En este contexto, la tesis analiza los efectos de la liberalización del comercio mundial, considerando distintas tecnologías de producción agraria, sobre unos indicadores de seguridad alimentaria en diferentes regiones del mundo y sobre distintos indicadores ambientales, teniendo en cuenta escalas diferentes en América Latina y el Caribe. La tesis utiliza el modelo “International Model for Policy Analysis of Agricultural Commodities and Trade (IMPACT)” – un modelo dinámico de equilibrio parcial del sector agrícola a escala global – para modelar la apertura de los mercados agrícolas así como diferentes escenarios de la producción hasta el año 2050. Los resultados del modelo están vinculados a modelos biofísicos para poder evaluar los cambios en la huella hídrica y la calidad del agua, así como para cuantificar los impactos del cambio en el uso del suelo sobre la biodiversidad y los stocks de carbono en 2050. Los resultados indican que la apertura de los mercados agrícolas es muy importante para mejorar la seguridad alimentaria a nivel mundial, sin embargo, produce también presiones ambientales indeseables en algunas regiones de América Latina. Contrastando dos escenarios que consideran distintas modos de producción, la expansión de la tierra agrícola frente a un escenario de la producción más intensiva, se demuestra que las mejoras de productividad son generalmente superiores a la expansión de las tierras agrícolas, desde un punto de vista económico e ambiental. En cambio, los escenarios de intensificación sostenible no sólo hacen posible una mayor producción de alimentos, sino que también generan menos impactos medioambientales que los otros escenarios futuros en todas sus dimensiones: biodiversidad, carbono, emisiones de nitratos y uso del agua. El análisis muestra que hay un “trade-off” entre el objetivo de alcanzar la sostenibilidad ambiental y el objetivo de la seguridad alimentaria, independiente del manejo agrícola en el futuro. En segundo lugar, a la luz de la reciente crisis de los precios de alimentos en los años 2007/08, la tesis analiza los impactos de la apertura de los mercados agrícolas en la transmisión de precios de los alimentos en seis países de América Latina: Argentina, Brasil, Chile, Colombia, México y el Perú. Para identificar las posibles relaciones de cointegración entre los índices de precios al consumidor de alimentos y los índices de precios de agrarios internacionales, sujetos a diferentes grados de apertura de mercados agrícolas en los seis países de América Latina, se utiliza un modelo simple de corrección de error (single equation error correction). Los resultados indican que la integración global de los mercados agrícolas ha dado lugar a diferentes tasas de transmisión de precios en los países investigados. Sobre todo en el corto plazo, las tasas de transmisión dependen del grado de apertura comercial, mientras que en el largo plazo las tasas de transmisión son elevadas, pero en gran medida independientes del régimen de comercio. Por lo tanto, durante un período de shocks de precios mundiales una mayor apertura del comercio trae consigo más inestabilidad de los precios domésticos a corto plazo y la resultante persistencia en el largo plazo. Sin embargo, estos resultados no verifican necesariamente la utilidad de las políticas comerciales, aplicadas frecuentemente por los gobiernos para amortiguar los shocks de precios. Primero, porque existe un riesgo considerable de volatilidad de los precios debido a cambios bruscos de la oferta nacional si se promueve la autosuficiencia en el país; y segundo, la política de proteccionismo asume el riesgo de excluir el país de participar en las cadenas de suministro de alto valor del sector agrícola, y por lo tanto esa política podría obstaculizar el desarrollo económico. Sin embargo, es indispensable establecer políticas efectivas para reducir la vulnerabilidad de los hogares a los aumentos repentinos de precios de alimentos, lo cual requiere una planificación gubernamental precisa con el presupuesto requerido disponible. En tercer lugar, la globalización afecta a la estructura de una economía y, por medios distintos, la distribución de los ingreso en un país. Perú sirve como ejemplo para investigar más profundamente las cuestiones relacionadas con los cambios en la distribución de los ingresos en zonas rurales. Perú, que es un país que está cada vez más integrado en los mercados mundiales, consiguió importantes descensos en la pobreza extrema en sus zonas rurales, pero a la vez adolece de alta incidencia de pobreza moderada y de desigualdad de los ingresos en zonas rural al menos durante el periodo comprendido entre 2004 y 2012. Esta parte de la tesis tiene como objetivo identificar las fuerzas impulsoras detrás de estas dinámicas en el Perú mediante el uso de un modelo de microsimulación basado en modelos de generación de ingresos aplicado a nivel los hogares rurales. Los resultados indican que la fuerza principal detrás de la reducción de la pobreza ha sido el crecimiento económico general de la economía, debido a las condiciones macroeconómicas favorables durante el periodo de estudio. Estos efectos de crecimiento beneficiaron a casi todos los sectores rurales, y dieron lugar a la disminución de la pobreza rural extrema, especialmente entre los agricultores de papas y de maíz. En parte, estos agricultores probablemente se beneficiaron de la apertura de los mercados agrícolas, que es lo que podría haber provocado un aumento de los precios al productor en tiempos de altos precios mundiales de los alimentos. Sin embargo, los resultados también sugieren que para una gran parte de la población más pobre existían barreras de entrada a la hora de poder participar en el empleo asalariado fuera de la agricultura o en la producción de cultivos de alto valor. Esto podría explicarse por la falta de acceso a unos activos importantes: por ejemplo, el nivel de educación de los pobres era apenas mejor en 2012 que en 2004; y también las dotaciones de tierra y de mano de obra, sobre todo de los productores pobres de maíz y patata, disminuyeron entre 2004 y 2012. Esto lleva a la conclusión de que aún hay margen para aplicar políticas para facilitar el acceso a estos activos, que podría contribuir a la erradicación de la pobreza rural. La tesis concluye que el comercio agrícola puede ser un importante medio para abastecer una población mundial creciente y más rica con una cantidad suficiente de calorías. Para evitar adversos efectos ambientales e impactos negativos para los consumidores y de los productores pobres, el enfoque debe centrarse en las mejoras de la productividad agrícola, teniendo en cuenta los límites ambientales y ser socialmente inclusivo. En este sentido, será indispensable seguir desarrollando soluciones tecnológicas que garanticen prácticas de producción agrícola minimizando el uso de recursos naturales. Además, para los pequeños pobres agricultores será fundamental eliminar las barreras de entrada a los mercados de exportación que podría tener efectos indirectos favorables a través de la adopción de nuevas tecnologías alcanzables a través de mercados internacionales. ABSTRACT The world is in a state of rapid transition. Ongoing globalization, population growth, rising living standards and increasing urbanization, accompanied by changing dietary patterns throughout the world, are increasing the demand for food. Together with more open trade regimes, this has triggered growing international agricultural trade during the last decade. For many Latin American countries, which are gifted with relative natural resource abundance, these trends have fueled rapid export growth of primary goods. In just 30 years, the Latin American agricultural market share has almost doubled from 10% in 1980 to 18% in 2010. These market developments have given rise to a debate around a number of crucial issues related to the role of agricultural trade for global food security, for the environment or for poverty reduction in developing countries. This thesis uses an integrated framework to analyze a broad array of possible impacts related to transforming agricultural and rural markets in light of globalization, and in particular of increasing trade activity. Specifically, the following issues are approached: First, global food production will have to rise substantially by the year 2050 to meet effective demand of a nine billion people world population which poses major challenges to food production systems. Doing so without compromising environmental integrity in exporting regions is an even greater challenge. In this context, the thesis explores the effects of future global trade liberalization on food security indicators in different world regions and on a variety of environmental indicators at different scales in Latin America and the Caribbean, in due consideration of different future agricultural production practices. The International Model for Policy Analysis of Agricultural Commodities and Trade (IMPACT) –a global dynamic partial equilibrium model of the agricultural sector developed by the International Food Policy Research Institute (IFPRI)– is applied to run different future production scenarios, and agricultural trade regimes out to 2050. Model results are linked to biophysical models, used to assess changes in water footprints and water quality, as well as impacts on biodiversity and carbon stocks from land use change by 2050. Results indicate that further trade liberalization is crucial for improving food security globally, but that it would also lead to more environmental pressures in some regions across Latin America. Contrasting land expansion versus more intensified agriculture shows that productivity improvements are generally superior to agricultural land expansion, from an economic and environmental point of view. Most promising for achieving food security and environmental goals, in equal measure, is the sustainable intensification scenario. However, the analysis shows that there are trade-offs between environmental and food security goals for all agricultural development paths. Second, in light of the recent food price crisis of 2007/08, the thesis looks at the impacts of increasing agricultural market integration on food price transmission from global to domestic markets in six Latin American countries, namely Argentina, Brazil, Chile, Colombia, Mexico and Peru. To identify possible cointegrating relationships between the domestic food consumer price indices and world food price levels, subject to different degrees of agricultural market integration in the six Latin American countries, a single equation error correction model is used. Results suggest that global agricultural market integration has led to different levels of price path-through in the studied countries. Especially in the short-run, transmission rates depend on the degree of trade openness, while in the long-run transmission rates are high, but largely independent of the country-specific trade regime. Hence, under world price shocks more trade openness brings with it more price instability in the short-term and the resulting persistence in the long-term. However, these findings do not necessarily verify the usefulness of trade policies, often applied by governments to buffer such price shocks. First, because there is a considerable risk of price volatility due to domestic supply shocks if self-sufficiency is promoted. Second, protectionism bears the risk of excluding a country from participating in beneficial high-value agricultural supply chains, thereby hampering economic development. Nevertheless, to reduce households’ vulnerability to sudden and large increases of food prices, effective policies to buffer food price shocks should be put in place, but must be carefully planned with the required budget readily available. Third, globalization affects the structure of an economy and, by different means, the distribution of income in a country. Peru serves as an example to dive deeper into questions related to changes in the income distribution in rural areas. Peru, a country being increasingly integrated into global food markets, experienced large drops in extreme rural poverty, but persistently high rates of moderate rural poverty and rural income inequality between 2004 and 2012. The thesis aims at disentangling the driving forces behind these dynamics by using a microsimulation model based on rural household income generation models. Results provide evidence that the main force behind poverty reduction was overall economic growth of the economy due to generally favorable macroeconomic market conditions. These growth effects benefited almost all rural sectors, and led to declines in extreme rural poverty, especially among potato and maize farmers. In part, these farmers probably benefited from policy changes towards more open trade regimes and the resulting higher producer prices in times of elevated global food price levels. However, the results also suggest that entry barriers existed for the poorer part of the population to participate in well-paid wage-employment outside of agriculture or in high-value crop production. This could be explained by a lack of sufficient access to important rural assets. For example, poor people’s educational attainment was hardly better in 2012 than in 2004. Also land and labor endowments, especially of (poor) maize and potato growers, rather decreased than increased over time. This leads to the conclusion that there is still scope for policy action to facilitate access to these assets, which could contribute to the eradication of rural poverty. The thesis concludes that agricultural trade can be one important means to provide a growing and richer world population with sufficient amounts of calories. To avoid adverse environmental effects and negative impacts for poor food consumers and producers, the focus should lie on agricultural productivity improvements, considering environmental limits and be socially inclusive. In this sense, it will be crucial to further develop technological solutions that guarantee resource-sparing agricultural production practices, and to remove entry barriers for small poor farmers to export markets which might allow for technological spill-over effects from high-value global agricultural supply chains.
Resumo:
This project is divided into two main parts: The first part shows the integration of an Embedded Linux operating system on a development hardware platform named Zedboard. This platform contains a Zynq-7000 System on Chip (Soc) which is composed by two dual core ARM Cortex-A9 processors and a FPGA Artix-7. The Embedded Linux is built with Linuxlink, a Timesys tool. Meanwhile, the platform hardware configuration is done with Xilinx Vivado. The system is loaded with an SD card which requires to have every files needed for the booting process and for the operation. Some of these files are generated with Xilinx SDK software. The second part starts up from the system already built to integrate a peripheral in the Zynq-7000 FPGA. Also the drivers for controlling the peripheral from the operating system are developed. Finally, a user space program is created to test both of them. RESUMEN. Este proyecto consta de dos partes: La primera muestra la integración de un sistema operativo Linux embebido en una plataforma de desarrollo hardware llamada Zedboard. Esta plataforma utiliza un System on Chip (SoC) Zynq-7000 que está formado por dos procesadores ARM Cortex-A9 de doble núcleo y una FPGA Artix-7. El Linux embebido se construye utilizando la herramienta Linuxlink de Timesys, mientras que el hardware de la plataforma de desarrollo se configura con Vivado de Xilinx. El sistema se carga en una tarjeta SD que debe tener todos los archivos necesarios para completar el arranque y hacer funcionar el sistema. Algunos de esos archivos se generan con la herramienta SDK de Xilinx. En la segunda parte se utiliza el sistema construido para integrar un periférico en la FPGA del Zynq-7000, haciendo uso de Vivado, y se desarrollan los drivers necesarios para utilizarlo mediante el sistema operativo. Para probar esta última parte se desarrolla un programa de espacio de usuario.
Resumo:
Los sistemas de videoconferencia y colaboración en tiempo real para múltiples usuarios permiten a sus usuarios comunicarse por medio de vídeo, audio y datos. Históricamente estos han sido sistemas caros de obtener y de mantener. El paso de las décadas ha limado estos problemas acercado el mundo de comunicación en tiempo real a un grupo mucho más amplio, llegando a usarse en diversos ámbitos como la educación o la medicina. En este sentido, el último gran salto evolutivo al que hemos asistido ha sido la transición de este tipo de aplicaciones hacia la Web. Varias tecnologías han permitido este viaje hacia el navegador. Las Aplicaciones Ricas de Internet (RIAs), que permiten crear aplicaciones Web interactivas huyendo del clásico esquema de petición y respuesta y llevando funcionalidades propias de las aplicaciones nativas a la Web. Por otro lado, la computación en la nube o Cloud Computing, con su modelo de pago por uso de recursos virtualizados, ha llevado a la creación de servicios que se adaptan mejor a la demanda, han habilitado este viaje hacia el navegador. No obstante, como cada cambio, este salto presenta una serie de retos para los sistemas de videoconferencia establecidos. Esta tesis doctoral propone un conjunto de arquitecturas, mecanismos y algoritmos para adaptar los sistemas de multiconferencia al entorno Web, teniendo en cuenta que este es accedido desde dispositivos diferentes y mediante redes de acceso variadas. Para ello se comienza por el estudio de los requisitos que debe cumplir un sistema de videoconferencia en la Web. Como resultado se diseña, implementa y desarrolla un servicio de videoconferencia que permite la colaboración avanzada entre múltiples usuarios mediante vídeo, audio y compartición de escritorio. Posteriormente, se plantea un sistema de comunicación entre una aplicación nativa y Web, proponiendo técnicas de adaptación entre los dos entornos que permiten la conversación de manera transparente para los usuarios. Estos sistemas permiten facilitar la transición hacia tecnologías Web. Como siguiente paso, se identificaron los principales problemas que existen para la comunicación multiusuario en dispositivos de tamaño reducido (teléfonos inteligentes) utilizando redes de acceso heterogéneas. Se propone un mecanismo, combinación de transcodificación y algoritmos de adaptación de calidad para superar estas limitaciones y permitir a los usuarios de este tipo de dispositivos participar en igualdad de condiciones. La aparición de WebRTC como tecnología disruptiva en este entorno, permitiendo nuevas posibilidades de comunicación en navegadores, motiva la segunda iteración de esta tesis. Aquí se presenta un nuevo esquema de adaptación a la demanda para servidores de videoconferencia diseñado para las necesidades del entorno Web y para aprovechar las características de Cloud Computing. Finalmente, esta tesis repasa las conclusiones obtenidas como fruto del trabajo llevado a cabo, reflejando la evolución de la videoconferencia Web desde sus inicios hasta nuestros días. ABSTRACT Multiuser Videoconferencing and real-time collaboration systems allow users to communicate using video, audio and data streams. These systems have been historically expensive to obtain and maintain. Over the last few decades, technological breakthroughs have mitigated those costs and popularized real time video communication, allowing its use in environments such as education or health. The last big evolutionary leap forward has been the transition of these types of applications towards theWeb. Several technologies have allowed this journey to theWeb browser. Firstly, Rich Internet Applications (RIAs) enable the creation of dynamic Web pages that defy the classical request-response interaction and provide an experience similar to their native counterparts. On the other hand, Cloud Computing brings the leasing of virtualized hardware resources in a pay-peruse model and, with it, better scalability in resource-demanding services. However, as with every change, this evolution imposes a set of challenges on existing videoconferencing solutions. This dissertation proposes a set of architectures, mechanisms and algorithms that aim to adapt multi-conferencing systems to the Web platform, taking into account the variety of devices and access networks that come with it. To this end, this thesis starts with a study concerning the requirements that must be met by new Web videoconferencing systems. The result of this study is the design, development and implementation of a new videoconferencing services that provides advanced collaboration to its user by providing video and audio communication as well as desktop sharing. After this, a new communication system between Web and native applications is presented. This system proposes adaptation mechanisms to bridge the two worlds providing a seamless integration transparent to users who can now access the powerful native application via an easy Web interface. The next step is to identify the main challenges posed by multi-conferencing on small devices (smartphones) with heterogeneous access networks. This dissertation proposes a mechanism that combines transcoding and adaptive quality algorithms to overcome those limitations. A second iteration in this dissertation is motivated by WebRTC. WebRTC appears as a disrupting technology by enabling new real-time communication possibilities in browsers. A new mechanism for flexible videoconferencing server scalability is presented. This mechanism aims to address the strong scalability requirements in the Web environment by taking advantage of Cloud Computing. Finally, the dissertation discusses the results obtained throughout the study, capturing the evolution of Web videoconferencing systems.
Resumo:
Los sistemas empotrados han sido concebidos tradicionalmente como sistemas de procesamiento específicos que realizan una tarea fija durante toda su vida útil. Para cumplir con requisitos estrictos de coste, tamaño y peso, el equipo de diseño debe optimizar su funcionamiento para condiciones muy específicas. Sin embargo, la demanda de mayor versatilidad, un funcionamiento más inteligente y, en definitiva, una mayor capacidad de procesamiento comenzaron a chocar con estas limitaciones, agravado por la incertidumbre asociada a entornos de operación cada vez más dinámicos donde comenzaban a ser desplegados progresivamente. Esto trajo como resultado una necesidad creciente de que los sistemas pudieran responder por si solos a eventos inesperados en tiempo diseño tales como: cambios en las características de los datos de entrada y el entorno del sistema en general; cambios en la propia plataforma de cómputo, por ejemplo debido a fallos o defectos de fabricación; y cambios en las propias especificaciones funcionales causados por unos objetivos del sistema dinámicos y cambiantes. Como consecuencia, la complejidad del sistema aumenta, pero a cambio se habilita progresivamente una capacidad de adaptación autónoma sin intervención humana a lo largo de la vida útil, permitiendo que tomen sus propias decisiones en tiempo de ejecución. Éstos sistemas se conocen, en general, como sistemas auto-adaptativos y tienen, entre otras características, las de auto-configuración, auto-optimización y auto-reparación. Típicamente, la parte soft de un sistema es mayoritariamente la única utilizada para proporcionar algunas capacidades de adaptación a un sistema. Sin embargo, la proporción rendimiento/potencia en dispositivos software como microprocesadores en muchas ocasiones no es adecuada para sistemas empotrados. En este escenario, el aumento resultante en la complejidad de las aplicaciones está siendo abordado parcialmente mediante un aumento en la complejidad de los dispositivos en forma de multi/many-cores; pero desafortunadamente, esto hace que el consumo de potencia también aumente. Además, la mejora en metodologías de diseño no ha sido acorde como para poder utilizar toda la capacidad de cómputo disponible proporcionada por los núcleos. Por todo ello, no se están satisfaciendo adecuadamente las demandas de cómputo que imponen las nuevas aplicaciones. La solución tradicional para mejorar la proporción rendimiento/potencia ha sido el cambio a unas especificaciones hardware, principalmente usando ASICs. Sin embargo, los costes de un ASIC son altamente prohibitivos excepto en algunos casos de producción en masa y además la naturaleza estática de su estructura complica la solución a las necesidades de adaptación. Los avances en tecnologías de fabricación han hecho que la FPGA, una vez lenta y pequeña, usada como glue logic en sistemas mayores, haya crecido hasta convertirse en un dispositivo de cómputo reconfigurable de gran potencia, con una cantidad enorme de recursos lógicos computacionales y cores hardware empotrados de procesamiento de señal y de propósito general. Sus capacidades de reconfiguración han permitido combinar la flexibilidad propia del software con el rendimiento del procesamiento en hardware, lo que tiene la potencialidad de provocar un cambio de paradigma en arquitectura de computadores, pues el hardware no puede ya ser considerado más como estático. El motivo es que como en el caso de las FPGAs basadas en tecnología SRAM, la reconfiguración parcial dinámica (DPR, Dynamic Partial Reconfiguration) es posible. Esto significa que se puede modificar (reconfigurar) un subconjunto de los recursos computacionales en tiempo de ejecución mientras el resto permanecen activos. Además, este proceso de reconfiguración puede ser ejecutado internamente por el propio dispositivo. El avance tecnológico en dispositivos hardware reconfigurables se encuentra recogido bajo el campo conocido como Computación Reconfigurable (RC, Reconfigurable Computing). Uno de los campos de aplicación más exóticos y menos convencionales que ha posibilitado la computación reconfigurable es el conocido como Hardware Evolutivo (EHW, Evolvable Hardware), en el cual se encuentra enmarcada esta tesis. La idea principal del concepto consiste en convertir hardware que es adaptable a través de reconfiguración en una entidad evolutiva sujeta a las fuerzas de un proceso evolutivo inspirado en el de las especies biológicas naturales, que guía la dirección del cambio. Es una aplicación más del campo de la Computación Evolutiva (EC, Evolutionary Computation), que comprende una serie de algoritmos de optimización global conocidos como Algoritmos Evolutivos (EA, Evolutionary Algorithms), y que son considerados como algoritmos universales de resolución de problemas. En analogía al proceso biológico de la evolución, en el hardware evolutivo el sujeto de la evolución es una población de circuitos que intenta adaptarse a su entorno mediante una adecuación progresiva generación tras generación. Los individuos pasan a ser configuraciones de circuitos en forma de bitstreams caracterizados por descripciones de circuitos reconfigurables. Seleccionando aquellos que se comportan mejor, es decir, que tienen una mejor adecuación (o fitness) después de ser evaluados, y usándolos como padres de la siguiente generación, el algoritmo evolutivo crea una nueva población hija usando operadores genéticos como la mutación y la recombinación. Según se van sucediendo generaciones, se espera que la población en conjunto se aproxime a la solución óptima al problema de encontrar una configuración del circuito adecuada que satisfaga las especificaciones. El estado de la tecnología de reconfiguración después de que la familia de FPGAs XC6200 de Xilinx fuera retirada y reemplazada por las familias Virtex a finales de los 90, supuso un gran obstáculo para el avance en hardware evolutivo; formatos de bitstream cerrados (no conocidos públicamente); dependencia de herramientas del fabricante con soporte limitado de DPR; una velocidad de reconfiguración lenta; y el hecho de que modificaciones aleatorias del bitstream pudieran resultar peligrosas para la integridad del dispositivo, son algunas de estas razones. Sin embargo, una propuesta a principios de los años 2000 permitió mantener la investigación en el campo mientras la tecnología de DPR continuaba madurando, el Circuito Virtual Reconfigurable (VRC, Virtual Reconfigurable Circuit). En esencia, un VRC en una FPGA es una capa virtual que actúa como un circuito reconfigurable de aplicación específica sobre la estructura nativa de la FPGA que reduce la complejidad del proceso reconfiguración y aumenta su velocidad (comparada con la reconfiguración nativa). Es un array de nodos computacionales especificados usando descripciones HDL estándar que define recursos reconfigurables ad-hoc: multiplexores de rutado y un conjunto de elementos de procesamiento configurables, cada uno de los cuales tiene implementadas todas las funciones requeridas, que pueden seleccionarse a través de multiplexores tal y como ocurre en una ALU de un microprocesador. Un registro grande actúa como memoria de configuración, por lo que la reconfiguración del VRC es muy rápida ya que tan sólo implica la escritura de este registro, el cual controla las señales de selección del conjunto de multiplexores. Sin embargo, esta capa virtual provoca: un incremento de área debido a la implementación simultánea de cada función en cada nodo del array más los multiplexores y un aumento del retardo debido a los multiplexores, reduciendo la frecuencia de funcionamiento máxima. La naturaleza del hardware evolutivo, capaz de optimizar su propio comportamiento computacional, le convierten en un buen candidato para avanzar en la investigación sobre sistemas auto-adaptativos. Combinar un sustrato de cómputo auto-reconfigurable capaz de ser modificado dinámicamente en tiempo de ejecución con un algoritmo empotrado que proporcione una dirección de cambio, puede ayudar a satisfacer los requisitos de adaptación autónoma de sistemas empotrados basados en FPGA. La propuesta principal de esta tesis está por tanto dirigida a contribuir a la auto-adaptación del hardware de procesamiento de sistemas empotrados basados en FPGA mediante hardware evolutivo. Esto se ha abordado considerando que el comportamiento computacional de un sistema puede ser modificado cambiando cualquiera de sus dos partes constitutivas: una estructura hard subyacente y un conjunto de parámetros soft. De esta distinción, se derivan dos lineas de trabajo. Por un lado, auto-adaptación paramétrica, y por otro auto-adaptación estructural. El objetivo perseguido en el caso de la auto-adaptación paramétrica es la implementación de técnicas de optimización evolutiva complejas en sistemas empotrados con recursos limitados para la adaptación paramétrica online de circuitos de procesamiento de señal. La aplicación seleccionada como prueba de concepto es la optimización para tipos muy específicos de imágenes de los coeficientes de los filtros de transformadas wavelet discretas (DWT, DiscreteWavelet Transform), orientada a la compresión de imágenes. Por tanto, el objetivo requerido de la evolución es una compresión adaptativa y más eficiente comparada con los procedimientos estándar. El principal reto radica en reducir la necesidad de recursos de supercomputación para el proceso de optimización propuesto en trabajos previos, de modo que se adecúe para la ejecución en sistemas empotrados. En cuanto a la auto-adaptación estructural, el objetivo de la tesis es la implementación de circuitos auto-adaptativos en sistemas evolutivos basados en FPGA mediante un uso eficiente de sus capacidades de reconfiguración nativas. En este caso, la prueba de concepto es la evolución de tareas de procesamiento de imagen tales como el filtrado de tipos desconocidos y cambiantes de ruido y la detección de bordes en la imagen. En general, el objetivo es la evolución en tiempo de ejecución de tareas de procesamiento de imagen desconocidas en tiempo de diseño (dentro de un cierto grado de complejidad). En este caso, el objetivo de la propuesta es la incorporación de DPR en EHW para evolucionar la arquitectura de un array sistólico adaptable mediante reconfiguración cuya capacidad de evolución no había sido estudiada previamente. Para conseguir los dos objetivos mencionados, esta tesis propone originalmente una plataforma evolutiva que integra un motor de adaptación (AE, Adaptation Engine), un motor de reconfiguración (RE, Reconfiguration Engine) y un motor computacional (CE, Computing Engine) adaptable. El el caso de adaptación paramétrica, la plataforma propuesta está caracterizada por: • un CE caracterizado por un núcleo de procesamiento hardware de DWT adaptable mediante registros reconfigurables que contienen los coeficientes de los filtros wavelet • un algoritmo evolutivo como AE que busca filtros wavelet candidatos a través de un proceso de optimización paramétrica desarrollado específicamente para sistemas caracterizados por recursos de procesamiento limitados • un nuevo operador de mutación simplificado para el algoritmo evolutivo utilizado, que junto con un mecanismo de evaluación rápida de filtros wavelet candidatos derivado de la literatura actual, asegura la viabilidad de la búsqueda evolutiva asociada a la adaptación de wavelets. En el caso de adaptación estructural, la plataforma propuesta toma la forma de: • un CE basado en una plantilla de array sistólico reconfigurable de 2 dimensiones compuesto de nodos de procesamiento reconfigurables • un algoritmo evolutivo como AE que busca configuraciones candidatas del array usando un conjunto de funcionalidades de procesamiento para los nodos disponible en una biblioteca accesible en tiempo de ejecución • un RE hardware que explota la capacidad de reconfiguración nativa de las FPGAs haciendo un uso eficiente de los recursos reconfigurables del dispositivo para cambiar el comportamiento del CE en tiempo de ejecución • una biblioteca de elementos de procesamiento reconfigurables caracterizada por bitstreams parciales independientes de la posición, usados como el conjunto de configuraciones disponibles para los nodos de procesamiento del array Las contribuciones principales de esta tesis se pueden resumir en la siguiente lista: • Una plataforma evolutiva basada en FPGA para la auto-adaptación paramétrica y estructural de sistemas empotrados compuesta por un motor computacional (CE), un motor de adaptación (AE) evolutivo y un motor de reconfiguración (RE). Esta plataforma se ha desarrollado y particularizado para los casos de auto-adaptación paramétrica y estructural. • En cuanto a la auto-adaptación paramétrica, las contribuciones principales son: – Un motor computacional adaptable mediante registros que permite la adaptación paramétrica de los coeficientes de una implementación hardware adaptativa de un núcleo de DWT. – Un motor de adaptación basado en un algoritmo evolutivo desarrollado específicamente para optimización numérica, aplicada a los coeficientes de filtros wavelet en sistemas empotrados con recursos limitados. – Un núcleo IP de DWT auto-adaptativo en tiempo de ejecución para sistemas empotrados que permite la optimización online del rendimiento de la transformada para compresión de imágenes en entornos específicos de despliegue, caracterizados por tipos diferentes de señal de entrada. – Un modelo software y una implementación hardware de una herramienta para la construcción evolutiva automática de transformadas wavelet específicas. • Por último, en cuanto a la auto-adaptación estructural, las contribuciones principales son: – Un motor computacional adaptable mediante reconfiguración nativa de FPGAs caracterizado por una plantilla de array sistólico en dos dimensiones de nodos de procesamiento reconfigurables. Es posible mapear diferentes tareas de cómputo en el array usando una biblioteca de elementos sencillos de procesamiento reconfigurables. – Definición de una biblioteca de elementos de procesamiento apropiada para la síntesis autónoma en tiempo de ejecución de diferentes tareas de procesamiento de imagen. – Incorporación eficiente de la reconfiguración parcial dinámica (DPR) en sistemas de hardware evolutivo, superando los principales inconvenientes de propuestas previas como los circuitos reconfigurables virtuales (VRCs). En este trabajo también se comparan originalmente los detalles de implementación de ambas propuestas. – Una plataforma tolerante a fallos, auto-curativa, que permite la recuperación funcional online en entornos peligrosos. La plataforma ha sido caracterizada desde una perspectiva de tolerancia a fallos: se proponen modelos de fallo a nivel de CLB y de elemento de procesamiento, y usando el motor de reconfiguración, se hace un análisis sistemático de fallos para un fallo en cada elemento de procesamiento y para dos fallos acumulados. – Una plataforma con calidad de filtrado dinámica que permite la adaptación online a tipos de ruido diferentes y diferentes comportamientos computacionales teniendo en cuenta los recursos de procesamiento disponibles. Por un lado, se evolucionan filtros con comportamientos no destructivos, que permiten esquemas de filtrado en cascada escalables; y por otro, también se evolucionan filtros escalables teniendo en cuenta requisitos computacionales de filtrado cambiantes dinámicamente. Este documento está organizado en cuatro partes y nueve capítulos. La primera parte contiene el capítulo 1, una introducción y motivación sobre este trabajo de tesis. A continuación, el marco de referencia en el que se enmarca esta tesis se analiza en la segunda parte: el capítulo 2 contiene una introducción a los conceptos de auto-adaptación y computación autonómica (autonomic computing) como un campo de investigación más general que el muy específico de este trabajo; el capítulo 3 introduce la computación evolutiva como la técnica para dirigir la adaptación; el capítulo 4 analiza las plataformas de computación reconfigurables como la tecnología para albergar hardware auto-adaptativo; y finalmente, el capítulo 5 define, clasifica y hace un sondeo del campo del hardware evolutivo. Seguidamente, la tercera parte de este trabajo contiene la propuesta, desarrollo y resultados obtenidos: mientras que el capítulo 6 contiene una declaración de los objetivos de la tesis y la descripción de la propuesta en su conjunto, los capítulos 7 y 8 abordan la auto-adaptación paramétrica y estructural, respectivamente. Finalmente, el capítulo 9 de la parte 4 concluye el trabajo y describe caminos de investigación futuros. ABSTRACT Embedded systems have traditionally been conceived to be specific-purpose computers with one, fixed computational task for their whole lifetime. Stringent requirements in terms of cost, size and weight forced designers to highly optimise their operation for very specific conditions. However, demands for versatility, more intelligent behaviour and, in summary, an increased computing capability began to clash with these limitations, intensified by the uncertainty associated to the more dynamic operating environments where they were progressively being deployed. This brought as a result an increasing need for systems to respond by themselves to unexpected events at design time, such as: changes in input data characteristics and system environment in general; changes in the computing platform itself, e.g., due to faults and fabrication defects; and changes in functional specifications caused by dynamically changing system objectives. As a consequence, systems complexity is increasing, but in turn, autonomous lifetime adaptation without human intervention is being progressively enabled, allowing them to take their own decisions at run-time. This type of systems is known, in general, as selfadaptive, and are able, among others, of self-configuration, self-optimisation and self-repair. Traditionally, the soft part of a system has mostly been so far the only place to provide systems with some degree of adaptation capabilities. However, the performance to power ratios of software driven devices like microprocessors are not adequate for embedded systems in many situations. In this scenario, the resulting rise in applications complexity is being partly addressed by rising devices complexity in the form of multi and many core devices; but sadly, this keeps on increasing power consumption. Besides, design methodologies have not been improved accordingly to completely leverage the available computational power from all these cores. Altogether, these factors make that the computing demands new applications pose are not being wholly satisfied. The traditional solution to improve performance to power ratios has been the switch to hardware driven specifications, mainly using ASICs. However, their costs are highly prohibitive except for some mass production cases and besidesthe static nature of its structure complicates the solution to the adaptation needs. The advancements in fabrication technologies have made that the once slow, small FPGA used as glue logic in bigger systems, had grown to be a very powerful, reconfigurable computing device with a vast amount of computational logic resources and embedded, hardened signal and general purpose processing cores. Its reconfiguration capabilities have enabled software-like flexibility to be combined with hardware-like computing performance, which has the potential to cause a paradigm shift in computer architecture since hardware cannot be considered as static anymore. This is so, since, as is the case with SRAMbased FPGAs, Dynamic Partial Reconfiguration (DPR) is possible. This means that subsets of the FPGA computational resources can now be changed (reconfigured) at run-time while the rest remains active. Besides, this reconfiguration process can be triggered internally by the device itself. This technological boost in reconfigurable hardware devices is actually covered under the field known as Reconfigurable Computing. One of the most exotic fields of application that Reconfigurable Computing has enabled is the known as Evolvable Hardware (EHW), in which this dissertation is framed. The main idea behind the concept is turning hardware that is adaptable through reconfiguration into an evolvable entity subject to the forces of an evolutionary process, inspired by that of natural, biological species, that guides the direction of change. It is yet another application of the field of Evolutionary Computation (EC), which comprises a set of global optimisation algorithms known as Evolutionary Algorithms (EAs), considered as universal problem solvers. In analogy to the biological process of evolution, in EHW the subject of evolution is a population of circuits that tries to get adapted to its surrounding environment by progressively getting better fitted to it generation after generation. Individuals become circuit configurations representing bitstreams that feature reconfigurable circuit descriptions. By selecting those that behave better, i.e., with a higher fitness value after being evaluated, and using them as parents of the following generation, the EA creates a new offspring population by using so called genetic operators like mutation and recombination. As generations succeed one another, the whole population is expected to approach to the optimum solution to the problem of finding an adequate circuit configuration that fulfils system objectives. The state of reconfiguration technology after Xilinx XC6200 FPGA family was discontinued and replaced by Virtex families in the late 90s, was a major obstacle for advancements in EHW; closed (non publicly known) bitstream formats; dependence on manufacturer tools with highly limiting support of DPR; slow speed of reconfiguration; and random bitstream modifications being potentially hazardous for device integrity, are some of these reasons. However, a proposal in the first 2000s allowed to keep investigating in this field while DPR technology kept maturing, the Virtual Reconfigurable Circuit (VRC). In essence, a VRC in an FPGA is a virtual layer acting as an application specific reconfigurable circuit on top of an FPGA fabric that reduces the complexity of the reconfiguration process and increases its speed (compared to native reconfiguration). It is an array of computational nodes specified using standard HDL descriptions that define ad-hoc reconfigurable resources; routing multiplexers and a set of configurable processing elements, each one containing all the required functions, which are selectable through functionality multiplexers as in microprocessor ALUs. A large register acts as configuration memory, so VRC reconfiguration is very fast given it only involves writing this register, which drives the selection signals of the set of multiplexers. However, large overheads are introduced by this virtual layer; an area overhead due to the simultaneous implementation of every function in every node of the array plus the multiplexers, and a delay overhead due to the multiplexers, which also reduces maximum frequency of operation. The very nature of Evolvable Hardware, able to optimise its own computational behaviour, makes it a good candidate to advance research in self-adaptive systems. Combining a selfreconfigurable computing substrate able to be dynamically changed at run-time with an embedded algorithm that provides a direction for change, can help fulfilling requirements for autonomous lifetime adaptation of FPGA-based embedded systems. The main proposal of this thesis is hence directed to contribute to autonomous self-adaptation of the underlying computational hardware of FPGA-based embedded systems by means of Evolvable Hardware. This is tackled by considering that the computational behaviour of a system can be modified by changing any of its two constituent parts: an underlying hard structure and a set of soft parameters. Two main lines of work derive from this distinction. On one side, parametric self-adaptation and, on the other side, structural self-adaptation. The goal pursued in the case of parametric self-adaptation is the implementation of complex evolutionary optimisation techniques in resource constrained embedded systems for online parameter adaptation of signal processing circuits. The application selected as proof of concept is the optimisation of Discrete Wavelet Transforms (DWT) filters coefficients for very specific types of images, oriented to image compression. Hence, adaptive and improved compression efficiency, as compared to standard techniques, is the required goal of evolution. The main quest lies in reducing the supercomputing resources reported in previous works for the optimisation process in order to make it suitable for embedded systems. Regarding structural self-adaptation, the thesis goal is the implementation of self-adaptive circuits in FPGA-based evolvable systems through an efficient use of native reconfiguration capabilities. In this case, evolution of image processing tasks such as filtering of unknown and changing types of noise and edge detection are the selected proofs of concept. In general, evolving unknown image processing behaviours (within a certain complexity range) at design time is the required goal. In this case, the mission of the proposal is the incorporation of DPR in EHW to evolve a systolic array architecture adaptable through reconfiguration whose evolvability had not been previously checked. In order to achieve the two stated goals, this thesis originally proposes an evolvable platform that integrates an Adaptation Engine (AE), a Reconfiguration Engine (RE) and an adaptable Computing Engine (CE). In the case of parametric adaptation, the proposed platform is characterised by: • a CE featuring a DWT hardware processing core adaptable through reconfigurable registers that holds wavelet filters coefficients • an evolutionary algorithm as AE that searches for candidate wavelet filters through a parametric optimisation process specifically developed for systems featured by scarce computing resources • a new, simplified mutation operator for the selected EA, that together with a fast evaluation mechanism of candidate wavelet filters derived from existing literature, assures the feasibility of the evolutionary search involved in wavelets adaptation In the case of structural adaptation, the platform proposal takes the form of: • a CE based on a reconfigurable 2D systolic array template composed of reconfigurable processing nodes • an evolutionary algorithm as AE that searches for candidate configurations of the array using a set of computational functionalities for the nodes available in a run time accessible library • a hardware RE that exploits native DPR capabilities of FPGAs and makes an efficient use of the available reconfigurable resources of the device to change the behaviour of the CE at run time • a library of reconfigurable processing elements featured by position-independent partial bitstreams used as the set of available configurations for the processing nodes of the array Main contributions of this thesis can be summarised in the following list. • An FPGA-based evolvable platform for parametric and structural self-adaptation of embedded systems composed of a Computing Engine, an evolutionary Adaptation Engine and a Reconfiguration Engine. This platform is further developed and tailored for both parametric and structural self-adaptation. • Regarding parametric self-adaptation, main contributions are: – A CE adaptable through reconfigurable registers that enables parametric adaptation of the coefficients of an adaptive hardware implementation of a DWT core. – An AE based on an Evolutionary Algorithm specifically developed for numerical optimisation applied to wavelet filter coefficients in resource constrained embedded systems. – A run-time self-adaptive DWT IP core for embedded systems that allows for online optimisation of transform performance for image compression for specific deployment environments characterised by different types of input signals. – A software model and hardware implementation of a tool for the automatic, evolutionary construction of custom wavelet transforms. • Lastly, regarding structural self-adaptation, main contributions are: – A CE adaptable through native FPGA fabric reconfiguration featured by a two dimensional systolic array template of reconfigurable processing nodes. Different processing behaviours can be automatically mapped in the array by using a library of simple reconfigurable processing elements. – Definition of a library of such processing elements suited for autonomous runtime synthesis of different image processing tasks. – Efficient incorporation of DPR in EHW systems, overcoming main drawbacks from the previous approach of virtual reconfigurable circuits. Implementation details for both approaches are also originally compared in this work. – A fault tolerant, self-healing platform that enables online functional recovery in hazardous environments. The platform has been characterised from a fault tolerance perspective: fault models at FPGA CLB level and processing elements level are proposed, and using the RE, a systematic fault analysis for one fault in every processing element and for two accumulated faults is done. – A dynamic filtering quality platform that permits on-line adaptation to different types of noise and different computing behaviours considering the available computing resources. On one side, non-destructive filters are evolved, enabling scalable cascaded filtering schemes; and on the other, size-scalable filters are also evolved considering dynamically changing computational filtering requirements. This dissertation is organized in four parts and nine chapters. First part contains chapter 1, the introduction to and motivation of this PhD work. Following, the reference framework in which this dissertation is framed is analysed in the second part: chapter 2 features an introduction to the notions of self-adaptation and autonomic computing as a more general research field to the very specific one of this work; chapter 3 introduces evolutionary computation as the technique to drive adaptation; chapter 4 analyses platforms for reconfigurable computing as the technology to hold self-adaptive hardware; and finally chapter 5 defines, classifies and surveys the field of Evolvable Hardware. Third part of the work follows, which contains the proposal, development and results obtained: while chapter 6 contains an statement of the thesis goals and the description of the proposal as a whole, chapters 7 and 8 address parametric and structural self-adaptation, respectively. Finally, chapter 9 in part 4 concludes the work and describes future research paths.
Resumo:
Esta tesis doctoral se enmarca dentro del campo de los sistemas embebidos reconfigurables, redes de sensores inalámbricas para aplicaciones de altas prestaciones, y computación distribuida. El documento se centra en el estudio de alternativas de procesamiento para sistemas embebidos autónomos distribuidos de altas prestaciones (por sus siglas en inglés, High-Performance Autonomous Distributed Systems (HPADS)), así como su evolución hacia el procesamiento de alta resolución. El estudio se ha llevado a cabo tanto a nivel de plataforma como a nivel de las arquitecturas de procesamiento dentro de la plataforma con el objetivo de optimizar aspectos tan relevantes como la eficiencia energética, la capacidad de cómputo y la tolerancia a fallos del sistema. Los HPADS son sistemas realimentados, normalmente formados por elementos distribuidos conectados o no en red, con cierta capacidad de adaptación, y con inteligencia suficiente para llevar a cabo labores de prognosis y/o autoevaluación. Esta clase de sistemas suele formar parte de sistemas más complejos llamados sistemas ciber-físicos (por sus siglas en inglés, Cyber-Physical Systems (CPSs)). Los CPSs cubren un espectro enorme de aplicaciones, yendo desde aplicaciones médicas, fabricación, o aplicaciones aeroespaciales, entre otras muchas. Para el diseño de este tipo de sistemas, aspectos tales como la confiabilidad, la definición de modelos de computación, o el uso de metodologías y/o herramientas que faciliten el incremento de la escalabilidad y de la gestión de la complejidad, son fundamentales. La primera parte de esta tesis doctoral se centra en el estudio de aquellas plataformas existentes en el estado del arte que por sus características pueden ser aplicables en el campo de los CPSs, así como en la propuesta de un nuevo diseño de plataforma de altas prestaciones que se ajuste mejor a los nuevos y más exigentes requisitos de las nuevas aplicaciones. Esta primera parte incluye descripción, implementación y validación de la plataforma propuesta, así como conclusiones sobre su usabilidad y sus limitaciones. Los principales objetivos para el diseño de la plataforma propuesta se enumeran a continuación: • Estudiar la viabilidad del uso de una FPGA basada en RAM como principal procesador de la plataforma en cuanto a consumo energético y capacidad de cómputo. • Propuesta de técnicas de gestión del consumo de energía en cada etapa del perfil de trabajo de la plataforma. •Propuestas para la inclusión de reconfiguración dinámica y parcial de la FPGA (por sus siglas en inglés, Dynamic Partial Reconfiguration (DPR)) de forma que sea posible cambiar ciertas partes del sistema en tiempo de ejecución y sin necesidad de interrumpir al resto de las partes. Evaluar su aplicabilidad en el caso de HPADS. Las nuevas aplicaciones y nuevos escenarios a los que se enfrentan los CPSs, imponen nuevos requisitos en cuanto al ancho de banda necesario para el procesamiento de los datos, así como en la adquisición y comunicación de los mismos, además de un claro incremento en la complejidad de los algoritmos empleados. Para poder cumplir con estos nuevos requisitos, las plataformas están migrando desde sistemas tradicionales uni-procesador de 8 bits, a sistemas híbridos hardware-software que incluyen varios procesadores, o varios procesadores y lógica programable. Entre estas nuevas arquitecturas, las FPGAs y los sistemas en chip (por sus siglas en inglés, System on Chip (SoC)) que incluyen procesadores embebidos y lógica programable, proporcionan soluciones con muy buenos resultados en cuanto a consumo energético, precio, capacidad de cómputo y flexibilidad. Estos buenos resultados son aún mejores cuando las aplicaciones tienen altos requisitos de cómputo y cuando las condiciones de trabajo son muy susceptibles de cambiar en tiempo real. La plataforma propuesta en esta tesis doctoral se ha denominado HiReCookie. La arquitectura incluye una FPGA basada en RAM como único procesador, así como un diseño compatible con la plataforma para redes de sensores inalámbricas desarrollada en el Centro de Electrónica Industrial de la Universidad Politécnica de Madrid (CEI-UPM) conocida como Cookies. Esta FPGA, modelo Spartan-6 LX150, era, en el momento de inicio de este trabajo, la mejor opción en cuanto a consumo y cantidad de recursos integrados, cuando además, permite el uso de reconfiguración dinámica y parcial. Es importante resaltar que aunque los valores de consumo son los mínimos para esta familia de componentes, la potencia instantánea consumida sigue siendo muy alta para aquellos sistemas que han de trabajar distribuidos, de forma autónoma, y en la mayoría de los casos alimentados por baterías. Por esta razón, es necesario incluir en el diseño estrategias de ahorro energético para incrementar la usabilidad y el tiempo de vida de la plataforma. La primera estrategia implementada consiste en dividir la plataforma en distintas islas de alimentación de forma que sólo aquellos elementos que sean estrictamente necesarios permanecerán alimentados, cuando el resto puede estar completamente apagado. De esta forma es posible combinar distintos modos de operación y así optimizar enormemente el consumo de energía. El hecho de apagar la FPGA para ahora energía durante los periodos de inactividad, supone la pérdida de la configuración, puesto que la memoria de configuración es una memoria volátil. Para reducir el impacto en el consumo y en el tiempo que supone la reconfiguración total de la plataforma una vez encendida, en este trabajo, se incluye una técnica para la compresión del archivo de configuración de la FPGA, de forma que se consiga una reducción del tiempo de configuración y por ende de la energía consumida. Aunque varios de los requisitos de diseño pueden satisfacerse con el diseño de la plataforma HiReCookie, es necesario seguir optimizando diversos parámetros tales como el consumo energético, la tolerancia a fallos y la capacidad de procesamiento. Esto sólo es posible explotando todas las posibilidades ofrecidas por la arquitectura de procesamiento en la FPGA. Por lo tanto, la segunda parte de esta tesis doctoral está centrada en el diseño de una arquitectura reconfigurable denominada ARTICo3 (Arquitectura Reconfigurable para el Tratamiento Inteligente de Cómputo, Confiabilidad y Consumo de energía) para la mejora de estos parámetros por medio de un uso dinámico de recursos. ARTICo3 es una arquitectura de procesamiento para FPGAs basadas en RAM, con comunicación tipo bus, preparada para dar soporte para la gestión dinámica de los recursos internos de la FPGA en tiempo de ejecución gracias a la inclusión de reconfiguración dinámica y parcial. Gracias a esta capacidad de reconfiguración parcial, es posible adaptar los niveles de capacidad de procesamiento, energía consumida o tolerancia a fallos para responder a las demandas de la aplicación, entorno, o métricas internas del dispositivo mediante la adaptación del número de recursos asignados para cada tarea. Durante esta segunda parte de la tesis se detallan el diseño de la arquitectura, su implementación en la plataforma HiReCookie, así como en otra familia de FPGAs, y su validación por medio de diferentes pruebas y demostraciones. Los principales objetivos que se plantean la arquitectura son los siguientes: • Proponer una metodología basada en un enfoque multi-hilo, como las propuestas por CUDA (por sus siglas en inglés, Compute Unified Device Architecture) u Open CL, en la cual distintos kernels, o unidades de ejecución, se ejecuten en un numero variable de aceleradores hardware sin necesidad de cambios en el código de aplicación. • Proponer un diseño y proporcionar una arquitectura en la que las condiciones de trabajo cambien de forma dinámica dependiendo bien de parámetros externos o bien de parámetros que indiquen el estado de la plataforma. Estos cambios en el punto de trabajo de la arquitectura serán posibles gracias a la reconfiguración dinámica y parcial de aceleradores hardware en tiempo real. • Explotar las posibilidades de procesamiento concurrente, incluso en una arquitectura basada en bus, por medio de la optimización de las transacciones en ráfaga de datos hacia los aceleradores. •Aprovechar las ventajas ofrecidas por la aceleración lograda por módulos puramente hardware para conseguir una mejor eficiencia energética. • Ser capaces de cambiar los niveles de redundancia de hardware de forma dinámica según las necesidades del sistema en tiempo real y sin cambios para el código de aplicación. • Proponer una capa de abstracción entre el código de aplicación y el uso dinámico de los recursos de la FPGA. El diseño en FPGAs permite la utilización de módulos hardware específicamente creados para una aplicación concreta. De esta forma es posible obtener rendimientos mucho mayores que en el caso de las arquitecturas de propósito general. Además, algunas FPGAs permiten la reconfiguración dinámica y parcial de ciertas partes de su lógica en tiempo de ejecución, lo cual dota al diseño de una gran flexibilidad. Los fabricantes de FPGAs ofrecen arquitecturas predefinidas con la posibilidad de añadir bloques prediseñados y poder formar sistemas en chip de una forma más o menos directa. Sin embargo, la forma en la que estos módulos hardware están organizados dentro de la arquitectura interna ya sea estática o dinámicamente, o la forma en la que la información se intercambia entre ellos, influye enormemente en la capacidad de cómputo y eficiencia energética del sistema. De la misma forma, la capacidad de cargar módulos hardware bajo demanda, permite añadir bloques redundantes que permitan aumentar el nivel de tolerancia a fallos de los sistemas. Sin embargo, la complejidad ligada al diseño de bloques hardware dedicados no debe ser subestimada. Es necesario tener en cuenta que el diseño de un bloque hardware no es sólo su propio diseño, sino también el diseño de sus interfaces, y en algunos casos de los drivers software para su manejo. Además, al añadir más bloques, el espacio de diseño se hace más complejo, y su programación más difícil. Aunque la mayoría de los fabricantes ofrecen interfaces predefinidas, IPs (por sus siglas en inglés, Intelectual Property) comerciales y plantillas para ayudar al diseño de los sistemas, para ser capaces de explotar las posibilidades reales del sistema, es necesario construir arquitecturas sobre las ya establecidas para facilitar el uso del paralelismo, la redundancia, y proporcionar un entorno que soporte la gestión dinámica de los recursos. Para proporcionar este tipo de soporte, ARTICo3 trabaja con un espacio de soluciones formado por tres ejes fundamentales: computación, consumo energético y confiabilidad. De esta forma, cada punto de trabajo se obtiene como una solución de compromiso entre estos tres parámetros. Mediante el uso de la reconfiguración dinámica y parcial y una mejora en la transmisión de los datos entre la memoria principal y los aceleradores, es posible dedicar un número variable de recursos en el tiempo para cada tarea, lo que hace que los recursos internos de la FPGA sean virtualmente ilimitados. Este variación en el tiempo del número de recursos por tarea se puede usar bien para incrementar el nivel de paralelismo, y por ende de aceleración, o bien para aumentar la redundancia, y por lo tanto el nivel de tolerancia a fallos. Al mismo tiempo, usar un numero óptimo de recursos para una tarea mejora el consumo energético ya que bien es posible disminuir la potencia instantánea consumida, o bien el tiempo de procesamiento. Con el objetivo de mantener los niveles de complejidad dentro de unos límites lógicos, es importante que los cambios realizados en el hardware sean totalmente transparentes para el código de aplicación. A este respecto, se incluyen distintos niveles de transparencia: • Transparencia a la escalabilidad: los recursos usados por una misma tarea pueden ser modificados sin que el código de aplicación sufra ningún cambio. • Transparencia al rendimiento: el sistema aumentara su rendimiento cuando la carga de trabajo aumente, sin cambios en el código de aplicación. • Transparencia a la replicación: es posible usar múltiples instancias de un mismo módulo bien para añadir redundancia o bien para incrementar la capacidad de procesamiento. Todo ello sin que el código de aplicación cambie. • Transparencia a la posición: la posición física de los módulos hardware es arbitraria para su direccionamiento desde el código de aplicación. • Transparencia a los fallos: si existe un fallo en un módulo hardware, gracias a la redundancia, el código de aplicación tomará directamente el resultado correcto. • Transparencia a la concurrencia: el hecho de que una tarea sea realizada por más o menos bloques es transparente para el código que la invoca. Por lo tanto, esta tesis doctoral contribuye en dos líneas diferentes. En primer lugar, con el diseño de la plataforma HiReCookie y en segundo lugar con el diseño de la arquitectura ARTICo3. Las principales contribuciones de esta tesis se resumen a continuación. • Arquitectura de la HiReCookie incluyendo: o Compatibilidad con la plataforma Cookies para incrementar las capacidades de esta. o División de la arquitectura en distintas islas de alimentación. o Implementación de los diversos modos de bajo consumo y políticas de despertado del nodo. o Creación de un archivo de configuración de la FPGA comprimido para reducir el tiempo y el consumo de la configuración inicial. • Diseño de la arquitectura reconfigurable para FPGAs basadas en RAM ARTICo3: o Modelo de computación y modos de ejecución inspirados en el modelo de CUDA pero basados en hardware reconfigurable con un número variable de bloques de hilos por cada unidad de ejecución. o Estructura para optimizar las transacciones de datos en ráfaga proporcionando datos en cascada o en paralelo a los distinto módulos incluyendo un proceso de votado por mayoría y operaciones de reducción. o Capa de abstracción entre el procesador principal que incluye el código de aplicación y los recursos asignados para las diferentes tareas. o Arquitectura de los módulos hardware reconfigurables para mantener la escalabilidad añadiendo una la interfaz para las nuevas funcionalidades con un simple acceso a una memoria RAM interna. o Caracterización online de las tareas para proporcionar información a un módulo de gestión de recursos para mejorar la operación en términos de energía y procesamiento cuando además se opera entre distintos nieles de tolerancia a fallos. El documento está dividido en dos partes principales formando un total de cinco capítulos. En primer lugar, después de motivar la necesidad de nuevas plataformas para cubrir las nuevas aplicaciones, se detalla el diseño de la plataforma HiReCookie, sus partes, las posibilidades para bajar el consumo energético y se muestran casos de uso de la plataforma así como pruebas de validación del diseño. La segunda parte del documento describe la arquitectura reconfigurable, su implementación en varias FPGAs, y pruebas de validación en términos de capacidad de procesamiento y consumo energético, incluyendo cómo estos aspectos se ven afectados por el nivel de tolerancia a fallos elegido. Los capítulos a lo largo del documento son los siguientes: El capítulo 1 analiza los principales objetivos, motivación y aspectos teóricos necesarios para seguir el resto del documento. El capítulo 2 está centrado en el diseño de la plataforma HiReCookie y sus posibilidades para disminuir el consumo de energía. El capítulo 3 describe la arquitectura reconfigurable ARTICo3. El capítulo 4 se centra en las pruebas de validación de la arquitectura usando la plataforma HiReCookie para la mayoría de los tests. Un ejemplo de aplicación es mostrado para analizar el funcionamiento de la arquitectura. El capítulo 5 concluye esta tesis doctoral comentando las conclusiones obtenidas, las contribuciones originales del trabajo y resultados y líneas futuras. ABSTRACT This PhD Thesis is framed within the field of dynamically reconfigurable embedded systems, advanced sensor networks and distributed computing. The document is centred on the study of processing solutions for high-performance autonomous distributed systems (HPADS) as well as their evolution towards High performance Computing (HPC) systems. The approach of the study is focused on both platform and processor levels to optimise critical aspects such as computing performance, energy efficiency and fault tolerance. HPADS are considered feedback systems, normally networked and/or distributed, with real-time adaptive and predictive functionality. These systems, as part of more complex systems known as Cyber-Physical Systems (CPSs), can be applied in a wide range of fields such as military, health care, manufacturing, aerospace, etc. For the design of HPADS, high levels of dependability, the definition of suitable models of computation, and the use of methodologies and tools to support scalability and complexity management, are required. The first part of the document studies the different possibilities at platform design level in the state of the art, together with description, development and validation tests of the platform proposed in this work to cope with the previously mentioned requirements. The main objectives targeted by this platform design are the following: • Study the feasibility of using SRAM-based FPGAs as the main processor of the platform in terms of energy consumption and performance for high demanding applications. • Analyse and propose energy management techniques to reduce energy consumption in every stage of the working profile of the platform. • Provide a solution with dynamic partial and wireless remote HW reconfiguration (DPR) to be able to change certain parts of the FPGA design at run time and on demand without interrupting the rest of the system. • Demonstrate the applicability of the platform in different test-bench applications. In order to select the best approach for the platform design in terms of processing alternatives, a study of the evolution of the state-of-the-art platforms is required to analyse how different architectures cope with new more demanding applications and scenarios: security, mixed-critical systems for aerospace, multimedia applications, or military environments, among others. In all these scenarios, important changes in the required processing bandwidth or the complexity of the algorithms used are provoking the migration of the platforms from single microprocessor architectures to multiprocessing and heterogeneous solutions with more instant power consumption but higher energy efficiency. Within these solutions, FPGAs and Systems on Chip including FPGA fabric and dedicated hard processors, offer a good trade of among flexibility, processing performance, energy consumption and price, when they are used in demanding applications where working conditions are very likely to vary over time and high complex algorithms are required. The platform architecture proposed in this PhD Thesis is called HiReCookie. It includes an SRAM-based FPGA as the main and only processing unit. The FPGA selected, the Xilinx Spartan-6 LX150, was at the beginning of this work the best choice in terms of amount of resources and power. Although, the power levels are the lowest of these kind of devices, they can be still very high for distributed systems that normally work powered by batteries. For that reason, it is necessary to include different energy saving possibilities to increase the usability of the platform. In order to reduce energy consumption, the platform architecture is divided into different power islands so that only those parts of the systems that are strictly needed are powered on, while the rest of the islands can be completely switched off. This allows a combination of different low power modes to decrease energy. In addition, one of the most important handicaps of SRAM-based FPGAs is that they are not alive at power up. Therefore, recovering the system from a switch-off state requires to reload the FPGA configuration from a non-volatile memory device. For that reason, this PhD Thesis also proposes a methodology to compress the FPGA configuration file in order to reduce time and energy during the initial configuration process. Although some of the requirements for the design of HPADS are already covered by the design of the HiReCookie platform, it is necessary to continue improving energy efficiency, computing performance and fault tolerance. This is only possible by exploiting all the opportunities provided by the processing architectures configured inside the FPGA. Therefore, the second part of the thesis details the design of the so called ARTICo3 FPGA architecture to enhance the already intrinsic capabilities of the FPGA. ARTICo3 is a DPR-capable bus-based virtual architecture for multiple HW acceleration in SRAM-based FPGAs. The architecture provides support for dynamic resource management in real time. In this way, by using DPR, it will be possible to change the levels of computing performance, energy consumption and fault tolerance on demand by increasing or decreasing the amount of resources used by the different tasks. Apart from the detailed design of the architecture and its implementation in different FPGA devices, different validation tests and comparisons are also shown. The main objectives targeted by this FPGA architecture are listed as follows: • Provide a method based on a multithread approach such as those offered by CUDA (Compute Unified Device Architecture) or OpenCL kernel executions, where kernels are executed in a variable number of HW accelerators without requiring application code changes. • Provide an architecture to dynamically adapt working points according to either self-measured or external parameters in terms of energy consumption, fault tolerance and computing performance. Taking advantage of DPR capabilities, the architecture must provide support for a dynamic use of resources in real time. • Exploit concurrent processing capabilities in a standard bus-based system by optimizing data transactions to and from HW accelerators. • Measure the advantage of HW acceleration as a technique to boost performance to improve processing times and save energy by reducing active times for distributed embedded systems. • Dynamically change the levels of HW redundancy to adapt fault tolerance in real time. • Provide HW abstraction from SW application design. FPGAs give the possibility of designing specific HW blocks for every required task to optimise performance while some of them include the possibility of including DPR. Apart from the possibilities provided by manufacturers, the way these HW modules are organised, addressed and multiplexed in area and time can improve computing performance and energy consumption. At the same time, fault tolerance and security techniques can also be dynamically included using DPR. However, the inherent complexity of designing new HW modules for every application is not negligible. It does not only consist of the HW description, but also the design of drivers and interfaces with the rest of the system, while the design space is widened and more complex to define and program. Even though the tools provided by the majority of manufacturers already include predefined bus interfaces, commercial IPs, and templates to ease application prototyping, it is necessary to improve these capabilities. By adding new architectures on top of them, it is possible to take advantage of parallelization and HW redundancy while providing a framework to ease the use of dynamic resource management. ARTICo3 works within a solution space where working points change at run time in a 3D space defined by three different axes: Computation, Consumption, and Fault Tolerance. Therefore, every working point is found as a trade-off solution among these three axes. By means of DPR, different accelerators can be multiplexed so that the amount of available resources for any application is virtually unlimited. Taking advantage of DPR capabilities and a novel way of transmitting data to the reconfigurable HW accelerators, it is possible to dedicate a dynamically-changing number of resources for a given task in order to either boost computing speed or adding HW redundancy and a voting process to increase fault-tolerance levels. At the same time, using an optimised amount of resources for a given task reduces energy consumption by reducing instant power or computing time. In order to keep level complexity under certain limits, it is important that HW changes are transparent for the application code. Therefore, different levels of transparency are targeted by the system: • Scalability transparency: a task must be able to expand its resources without changing the system structure or application algorithms. • Performance transparency: the system must reconfigure itself as load changes. • Replication transparency: multiple instances of the same task are loaded to increase reliability and performance. • Location transparency: resources are accessed with no knowledge of their location by the application code. • Failure transparency: task must be completed despite a failure in some components. • Concurrency transparency: different tasks will work in a concurrent way transparent to the application code. Therefore, as it can be seen, the Thesis is contributing in two different ways. First with the design of the HiReCookie platform and, second with the design of the ARTICo3 architecture. The main contributions of this PhD Thesis are then listed below: • Architecture of the HiReCookie platform including: o Compatibility of the processing layer for high performance applications with the Cookies Wireless Sensor Network platform for fast prototyping and implementation. o A division of the architecture in power islands. o All the different low-power modes. o The creation of the partial-initial bitstream together with the wake-up policies of the node. • The design of the reconfigurable architecture for SRAM FPGAs: ARTICo3: o A model of computation and execution modes inspired in CUDA but based on reconfigurable HW with a dynamic number of thread blocks per kernel. o A structure to optimise burst data transactions providing coalesced or parallel data to HW accelerators, parallel voting process and reduction operation. o The abstraction provided to the host processor with respect to the operation of the kernels in terms of the number of replicas, modes of operation, location in the reconfigurable area and addressing. o The architecture of the modules representing the thread blocks to make the system scalable by adding functional units only adding an access to a BRAM port. o The online characterization of the kernels to provide information to a scheduler or resource manager in terms of energy consumption and processing time when changing among different fault-tolerance levels, as well as if a kernel is expected to work in the memory-bounded or computing-bounded areas. The document of the Thesis is divided into two main parts with a total of five chapters. First, after motivating the need for new platforms to cover new more demanding applications, the design of the HiReCookie platform, its parts and several partial tests are detailed. The design of the platform alone does not cover all the needs of these applications. Therefore, the second part describes the architecture inside the FPGA, called ARTICo3, proposed in this PhD Thesis. The architecture and its implementation are tested in terms of energy consumption and computing performance showing different possibilities to improve fault tolerance and how this impact in energy and time of processing. Chapter 1 shows the main goals of this PhD Thesis and the technology background required to follow the rest of the document. Chapter 2 shows all the details about the design of the FPGA-based platform HiReCookie. Chapter 3 describes the ARTICo3 architecture. Chapter 4 is focused on the validation tests of the ARTICo3 architecture. An application for proof of concept is explained where typical kernels related to image processing and encryption algorithms are used. Further experimental analyses are performed using these kernels. Chapter 5 concludes the document analysing conclusions, comments about the contributions of the work, and some possible future lines for the work.