Mémoire de maîtrise (2025)
|
Libre accès au plein texte de ce document Conditions d'utilisation: Tous droits réservés Télécharger (940kB) |
Résumé
L’évolution des architectures informatiques contemporaines s’inscrit dans un contexte où le ralentissement de la loi de Moore a renforcé l’adoption de systèmes hétérogènes combinant processeurs généralistes (CPU) et accélérateurs matériels tels que GPU, FPGA et ASIC. Si ces architectures permettent d’améliorer les performances pour des applications spécialisées, elles introduisent aussi une complexité accrue. Les outils classiques de débogage matériel ou logiciel s’avèrent insuffisants : les traceurs logiciels n’offrent qu’une vue partielle du comportement matériel, tandis que les analyseurs intégrés aux FPGA (tels que les ILA d’AMD/Xilinx) permettent seulement une observation locale, limitée en durée et en signaux. Ce mémoire propose une infrastructure complète, unifiée et robuste de traçage CPU–FPGA, permettant une observabilité fine des systèmes hétérogènes modernes et facilitant le diagnostic, l’optimisation et la compréhension des interactions logicielles-matérielles. L’infrastructure proposée comprend un mécanisme unifié de traçage matériel–logiciel, capable d’observer simultanément l’activité du FPGA et celle du CPU, d’aligner temporellement leurs événements et de permettre une analyse globale du système. Sur le plan matériel, la contribution majeure réside dans la conception d’un traceur FPGA générique et modulaire, construit autour : 1) Des sondes configurables détectant des signaux, bus AXI ou machines à états ; 2) Une chaîne de sondes inspirée de travaux antérieurs, agrégée en flux AXI-Stream unique ; 3) Un système de synchronisation multi-horloge ; et 4) Un mécanisme de transfert PCIe basé sur le sous-système XDMA. L’ensemble est généré automatiquement à l’aide de Chisel. Du côté logiciel, le mémoire détaille la réalisation d’un pilote noyau Linux dédié, exposant deux périphériques : un accès mémoire mappée pour configurer les sondes et insérer des marqueurs de synchronisation, et un flux événementiel continu pour récupérer les données brutes issues du FPGA. Un module de post-traitement convertit ces flux en Common Trace Format (CTF), permettant une compatibilité immédiate avec Trace Compass. Une évaluation expérimentale approfondie montre la capacité du système à supporter de très hauts débits via PCIe, à tracer en continu plusieurs domaines d’horloge, et à maintenir un taux de pertes minimal. Le mémoire analyse l’impact des profondeurs de FIFO, du débit du DMA, des rafales d’événements et des configurations multi-domaine. Les limites identifiées, telles que la mise à l’échelle et la gestion des rafales extrêmes, sont discutées, et plusieurs perspectives sont proposées, notamment l’intégration future de compresseurs de traces.
Abstract
The evolution of contemporary computing architectures is occurring in a context where the slowdown of Moore’s law has accelerated the adoption of heterogeneous systems combining general-purpose processors (CPUs) with hardware accelerators such as GPUs, FPGAs, and ASICs. While these architectures significantly improve performance for specialized applications, they also introduce additional complexity. Traditional hardware and software debugging tools prove insufficient: software tracers provide only a partial view of hardware behavior, while FPGA-integrated analyzers (such as AMD/Xilinx ILAs) offer only localized, short-duration observations, limited in scope and in the number of accessible signals. This thesis proposes a complete, unified, and robust CPU–FPGA tracing infrastructure that enables fine-grained observability of modern heterogeneous systems and facilitates debugging, performance optimization, and the understanding of hardware–software interactions. The proposed infrastructure provides a unified tracing mechanism capable of simultaneously observing FPGA and CPU activity, temporally aligning their events, and enabling a global analysis of system behavior. On the hardware side, the main contribution lies in the design of a generic and modular FPGA tracer built around: 1) Configurable probes capable of monitoring signals, AXI buses, or state machines; 2) A probe-chain inspired by prior work, aggregated into a single AXIStream flow; 3) Aa multi-clock synchronization mechanism; and 4) A PCIe transfer system based on the XDMA subsystem. The entire architecture is automatically generated using Chisel from a high level description. On the software side, the thesis details the implementation of a dedicated Linux kernel driver exposing two devices: a memory-mapped interface for configuring probes and inserting synchronization markers, and a continuous event-stream interface for retrieving raw data from the FPGA. A post-processing module converts these streams into the Common Trace Format (CTF), enabling immediate compatibility with Trace Compass. An extensive experimental evaluation demonstrates the system’s ability to sustain very high throughput over PCIe, to trace multiple clock domains continuously, and to maintain a minimal event-loss rate. The thesis analyzes the impact of FIFO depths, DMA bandwidth, event bursts, and multi-domain configurations. Identified limitations (such as scalability and the handling of extreme burst scenarios) are discussed, and several future directions are proposed, including the integration of trace-compression mechanisms.
| Département: | Département de génie informatique et génie logiciel |
|---|---|
| Programme: | Génie Informatique |
| Directeurs ou directrices: |
Tarek Ould-Bachir |
| URL de PolyPublie: | https://publications.polymtl.ca/71205/ |
| Université/École: | Polytechnique Montréal |
| Date du dépôt: | 23 mars 2026 13:52 |
| Dernière modification: | 23 mars 2026 16:39 |
| Citer en APA 7: | Deloumeau, N. (2025). Développement et caractérisation d'une solution de traçage pour systèmes hétérogènes CPU-FPGA [Mémoire de maîtrise, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/71205/ |
|---|---|
Statistiques
Total des téléchargements à partir de PolyPublie
Téléchargements par année
Provenance des téléchargements
