<  Retour au portail Polytechnique Montréal

Traçage de systèmes embarqués hétérogènes

Thomas Bertauld

Mémoire de maîtrise (2016)

[img]
Affichage préliminaire
Télécharger (1MB)
Citer ce document: Bertauld, T. (2016). Traçage de systèmes embarqués hétérogènes (Mémoire de maîtrise, École Polytechnique de Montréal). Tiré de https://publications.polymtl.ca/2244/
Afficher le résumé Cacher le résumé

Résumé

RÉSUMÉ Pouvoir analyser et comprendre les interactions entre les composants d’un système embarqué hétérogène est essentiel pour détecter les fautes, trouver la cause de latences et optimiser les ressources. Bien souvent, des solutions propriétaires d’analyse sont directement fournies par les distributeurs. Cependant, ces solutions sont souvent incomplètes ou insuffisantes : elles nécessitent parfois de mettre le système en pause, ne sont pas adaptées pour plus d’une dizaine de processeurs analysés ou induisent des baisses de performance trop importantes. Le traçage est une technique répandue qui consiste à enregistrer des évènements, associés à des estampilles de temps, à certains points de l’application. Tracer un système permet d’obtenir toutes les informations imaginables, avec une granularité de l’ordre de la nanoseconde. Cela permet entre autres d’effectuer des débogages complets et de diagnostiquer les problèmes de performance, que ce soit sur une machine isolée ou dans un système distribué. Néanmoins, si le traçage est très utilisé dans les systèmes « classiques », il n’en reste pas moins marginal pour les systèmes embarqués, qui offrent souvent des caractéristiques techniques bien différentes. L’objectif de ce travail est de montrer comment il est possible de surmonter les difficultés techniques introduites par les systèmes embarqués hétérogènes (processeurs spécialisés, absence de système d’exploitation, peu de mémoire disponible, architectures exotiques…) pour produire une solution de traçage universelle sur de tels systèmes. Nous espérons ainsi démontrer que toute plateforme hétérogène embarquée peut être tracée avec les mêmes outils et dans le même format, généralisant ainsi le traçage de ces systèmes et facilitant par le fait même le travail des développeurs. Nous montrons ainsi comment l’utilisation de barectf, un outil python produisant du code C destiné à générer des points de trace CTF dans des applications tournant sans système d’exploitation (bare-metal), permet de tracer virtuellement n’importe quelle plateforme. La carte Parallella et le système sur puce Keystone 2 de TI seront nos deux modèles d’expérimentation. Nous verrons ensuite comment la synchronisation de traces peut être généralisée à de telles plates-formes pour permettre l’analyse de traces provenant d’un environnement multi-coeurs hétérogène. Finalement, nous démontrerons à travers un cas d’étude que les méthodes et solutions proposées sont valides, fonctionnent et permettent bien de répondre aux besoins spécifiques de ces plates-formes, leur apportant une solution de traçage générique, portable et efficace.----------ABSTRACT Being able to analyze and understand interactions between all the components of a heterogeneous embedded system is mandatory to detect bugs, find the causes of latencies and optimize the resources. Proprietary solutions are often directly shipped by the producing companies. However, such solutions are rarely sufficient: they sometime require the system to be paused, are not suitable for more than a few cores and might impact the overall performances. Tracing is a well-known technic which goal is to record timestamp-matched events. Tracing a system allows a deep understanding of the system as a whole and brings information at a nanosecond rate. This allows, among other things, to debug complete systems and diagnose performances issues, on a single machine as well as on a distributed system. Nevertheless, even if tracing is well-used in classical systems, it is still marginal on embedded systems, which are often a lot different. The goal of this work is to show how it is possible to overcome the difficulties induced by heterogeneous embedded systems (specialized processors, no operating system, few available memory, exotic architectures…) and to have a generic tracing solution for such devices. We hope to demonstrate that every heterogeneous embedded platform can be traced with the same tools and the same output format, thus generalizing the tracing solutions on those devices and easing the developers’ work. To do so, we show how barectf, a python tool generating C code providing CTF tracepoints on devices with no operating system (bare-metal), allow the tracing of virtually any platform. The Parallella board and the System-on-Chip Keystone 2 from TI will be our two experimenting devices. We will then see how traces synchronization can be generalized on such platforms and allow traces analysis on many-cores heterogeneous environments. Finally, we will demonstrate through a use-case that the proposed solutions and methods are valid and are well-suited for those platforms, thus bringing a generic, portable and efficient tracing solution.

Document en libre accès dans PolyPublie
Département: Département de génie informatique et génie logiciel
Directeur de mémoire/thèse: Michel Dagenais
Date du dépôt: 22 mars 2017 14:08
Dernière modification: 01 sept. 2017 17:32
Adresse URL de PolyPublie: https://publications.polymtl.ca/2244/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel