Soutenance de thèse de Daniel LEZCANO

Amélioration de la gestion thermique sur architecture à base de processeur ARM


Titre anglais : Thermal Management improvements on ARM based architecture
Ecole Doctorale : EDMITT - Ecole Doctorale Mathématiques, Informatique et Télécommunications de Toulouse
Spécialité : Informatique et Télécommunications
Etablissement : Université de Toulouse
Unité de recherche : UMR 5505 - IRIT : Institut de Recherche en Informatique de Toulouse
Direction de thèse : Georges DA COSTA


Cette soutenance a eu lieu mercredi 27 novembre 2024 à 10h00
Adresse de la soutenance : Université Toulouse III - Paul Sabatier 118 route de Narbonne 31062 Toulouse cedex 09 - salle Salle des thèses

devant le jury composé de :
Georges DA COSTA   Professeur des universités   Université Toulouse III - Paul Sabatier   Directeur de thèse
Vania MARANGOZOVA   Professeure des universités   Université Grenoble Alpes   Rapporteur
Romain ROUVOY   Professeur des universités   Université de Lille   Rapporteur
Christine ROCHANGE   Professeure des universités   Université Toulouse III - Paul Sabatier   Président
Quentin PERRET   Ingénieur de recherche   Google   Examinateur


Résumé de la thèse en français :  

L'augmentation de la densité des composants sur les Socket-On-Chip ARM et la croissance de leur performance posent de réels défis sur le plan de la gestion thermique. Les mécanismes mis en œuvre jusqu'ici se focalisent sur la protection de zones thermiques prises en compte de manière individuelle. Cette approche simpliste a fait ses preuves depuis plusieurs années, mais montre aujourd'hui ses limites lorsqu'il faut exploiter les performances maximales du système sur une longue durée.
Conscients des problématiques liées aux phénomènes thermiques, les fabricants de SoC rajoutent de plus en plus de mécanismes de notification, de contrôles de température et de performance. Toutefois, ces nouvelles fonctionnalités ne sont pas encore complètement exploitées et démocratisées dans l'ensemble des plateformes embarquées.
L'objet de cette étude est de présenter les notions de gestion thermique qui existent aujourd'hui sur les systèmes d'exploitation à base de noyau Linux, d'en étudier les limitations et de proposer une approche globale qui va permettre une gestion thermique optimisée pour les systèmes embarqués complexes.
Cette approche, novatrice par son paradigme, propose une représentation hiérarchisée des composants sous la forme d'un arbre dont chaque noeud permet de lire la puissance consommée et de poser une limite de puissance. Un noeud parent donnera la somme de la puissance utilisée par ses fils ainsi que la limite de puissance totale. Il représentera donc un groupe de composants sur lequel le système pourra s'appuyer pour équilibrer les limites afin de respecter la contrainte de plus haut niveau. Cette répartition dynamique des budgets de puissance permettront un gain de performance tout en restant dans l'enveloppe thermique du système. Cette étude présente cet algorithme de répartition de charges.
Toutefois, la réalisation de ce mécanisme rencontre quelques difficultés liées au nombre limité de composants sur lesquels le noyau peut recevoir les informations tout en ayant un contrôle sur la puissance dissipée. À défaut d'avoir accès aux mécanismes des futures générations de SoC, l'étude propose d'étendre l'existant afin d'augmenter la nomenclature qui peut être utilisée.
À la périphérie de la gestion thermique, l'infrastructure de gestion de temps de repos des CPUs repose sur un mécanisme de prédiction des événements qui peut augmenter la température moyenne pendant des cycles de travail. En cas de mauvaises prédictions, le système va réaliser davantage d'opérations que nécessaire, provoquer une baisse de performance et une augmentation de la consommation d'énergie, donc de la puissance à dissiper. Après étude de l'existant, il est apparu que l'approche ne s'est pas adaptée aux évolutions des processeurs multicoeurs qui introduisent des interruptions inter-processeur et que les prédictions sont le plus souvent erronées. Un chapitre est consacré à un nouveau mécanisme qui sépare les sources de réveil des processeurs et prédit le prochain évènement pour chacune de ces sources prises individuellement.
Par ailleurs, le système peut modifier la performance des processeurs pour réduire la puissance dissipée. Ceux-ci sont regroupés par domaine de performance et la réduction de la performance d'un processeur impacte tout le groupe. Afin de permettre une réduction de la performance par CPU, un mécanisme d'injection de temps de repos a été réalisé. Il introduit, par un algorithme de hachage variable, un temps de repos forcé pendant lequel le CPU va s'endormir.
Dans le contexte de cette étude, un ensemble de contributions ont été apportées dans le noyau Linux. Elles sont aujourd'hui déployées et utilisées soit sur les plateformes embarquées à base de Linux, soit sur les plateformes mobiles au travers d'Android.

 
Résumé de la thèse en anglais:  

The increasing density of components on ARM System-on-Chip (SoC) and the growth in their performance pose real challenges in terms of thermal management. The mechanisms implemented so far have focused on protecting thermal zones considered individually. This simplistic approach has been effective for several years but now shows its limitations when attempting to exploit the system's maximum performance over a long period.
Aware of the issues related to thermal phenomena, SoC manufacturers are adding more and more mechanisms for notifications, temperature controls, and performance monitoring. However, these new features are not yet fully utilized or standardized across all embedded platforms.
The purpose of this study is to present the thermal management concepts that exist today in Linux kernel-based operating systems, analyze their limitations, and propose a comprehensive approach to enable optimized thermal management for complex embedded systems.
This approach, innovative in its paradigm, proposes a hierarchical representation of components in the form of a tree, where each node allows reading the power consumption and setting a power limit. A parent node will provide the sum of the power used by its children and the total power limit. It will therefore represent a group of components on which the system can rely to balance the limits to meet the higher-level constraint. This dynamic allocation of power budgets will lead to performance gains while staying within the system's thermal envelope. This study presents this load-balancing algorithm.
However, implementing this mechanism faces some challenges due to the limited number of components on which the kernel can receive information while having control over the dissipated power. In the absence of access to future-generation SoC mechanisms, the study proposes extending the existing system to increase the range of components that can be used.
At the periphery of thermal management, the CPU idle-time management infrastructure relies on an event prediction mechanism that can increase the average temperature during work cycles. In case of poor predictions, the system will perform more operations than necessary, resulting in reduced performance and increased energy consumption, and thus more power to dissipate. After studying the current system, it appeared that the approach has not adapted to the evolution of multicore processors, which introduce inter-processor interrupts, and predictions are often incorrect. A chapter is dedicated to a new mechanism that separates wake-up sources for processors and predicts the next event for each of these sources individually.
Additionally, the system can modify processor performance to reduce dissipated power. These processors are grouped by performance domain, and reducing the performance of one processor impacts the entire group. To enable performance reduction per CPU, a forced idle-time injection mechanism was created. It introduces, through a variable hashing algorithm, a forced idle period during which the CPU will sleep.
In the context of this study, a set of contributions has been made to the Linux kernel. These are now deployed and used either on Linux-based embedded platforms or on mobile platforms via Android.

Mots clés en français :cpufreq, cpuidle, dvfs, thermal, topologie, ordonnanceur,
Mots clés en anglais :   cpufreq, cpuidle, dvfs, thermal, topology, scheduler,