Table of Contents
Présentation
Les appareils mobiles modernes comptent sur des processeurs super-basiques pour fournir les performances nécessaires aux applications exigeantes, de la diffusion vidéo à la diffusion de vidéos en passant par la réalité augmentée, en passant par le jeu en temps réel et l'apprentissage des machines. Ces processeurs atteignent leur vitesse en exécutant plusieurs instructions par cycle d'horloge, en tirant parti de pipelines profonds, de l'exécution hors-commande et de techniques spéculatives. Pourtant, cette complexité architecturale coûte cher : la consommation d'énergie augmente fortement avec chaque unité fonctionnelle ajoutée et la fréquence d'horloge supérieure.
Comprendre les processeurs superscalaires
Un processeur superscalaire contient plusieurs unités d'exécution (par exemple, ALU entier, unités flottantes, unités de chargement/stockage) et peut envoyer plus d'une instruction par cycle. Pour ce faire, il utilise une logique complexe pour l'instruction de récupération, de décodage, de renommation de registre et de vérification de dépendance.
- Instruction fetch et décode:[ Lire plusieurs instructions du cache d'instructions et les décode pour identifier leurs besoins en ressources.
- Enregistrer le nom:[ Élimine les fausses dépendances de données (écriture après lecture, écriture après écriture) en mapper les registres architecturaux à un plus grand ensemble de registres physiques.
- Stations de réservation et tampon de réordre :[ Suivez les instructions en vol, surveillez la disponibilité des opérations et assurez-vous que les résultats sont engagés dans l'ordre du programme.
- Usages fonctionnels multiples:[ Activer l'exécution parallèle d'instructions indépendantes.
Le parallélisme extrait par ces mécanismes stimule directement le débit, mais chaque unité fonctionnelle supplémentaire et la logique de contrôle qui les gère augmentent le nombre de transistors qui changent chaque cycle, augmentant ainsi la consommation dynamique de puissance. De plus, la puissance de fuite, qui domine aux plus petits nœuds de processus, augmente avec le nombre total de transistors indépendamment de l'activité.
Les défis de la consommation d'énergie dans les appareils mobiles
Les appareils mobiles présentent un ensemble unique de contraintes qui rendent la gestion de l'énergie des processeurs super-calaires particulièrement difficile:
- Capacité de la batterie limitée: Les smartphones et les tablettes ont généralement des batteries de la gamme 3000-5000 mAh. Un processeur qui tire même quelques watts pendant une charge lourde peut vider la batterie en quelques heures.
- Contraintes thermiques :[ L'excès de chaleur entraîne un étranglement (réduction des performances) pour empêcher la température de la peau de dépasser les limites de confort et de sécurité. La chaleur accélère également la dégradation de la batterie et peut endommager d'autres composants.
- L'expérience utilisateur exige:[ Les utilisateurs s'attendent à une réactivité instantanée pour les éclats d'activité (p. ex. lancement d'applications, rendu de pages Web) tout en exigeant de longues périodes de veille. Le processeur doit pouvoir passer à des performances élevées brièvement et revenir rapidement à un état de ralenti de faible puissance.
- Écaillage technologique du processus:[ Lorsque les transistors se rétrécissent, les courants de fuite statique augmentent, ce qui rend plus difficile le maintien de la faible puissance pendant les périodes de ralenti.
- Variabilité de la charge de travail : Les charges de travail mobiles sont très hétérogènes : un processeur peut exécuter un décodeur vidéo, un fil d'interface utilisateur, une tâche de synchronisation de fond et une tâche de traitement de capteur simultanément.
Ces défis exigent une approche multiforme qui combine les innovations architecturales, les techniques de circuit et le contrôle intelligent des temps d'exécution.
Stratégies clés de gestion de l'énergie
Voltage dynamique et calibrage de fréquence (DVFS)
Le DVFS est la technique de gestion de la puissance la plus largement déployée dans les processeurs mobiles modernes. Le principe est simple : réduire la tension d'alimentation et la fréquence des horloges lorsque la charge de travail ne nécessite pas de performance maximale, ce qui réduit la puissance dynamique (qui s'évalue comme V2 f) et, dans une moindre mesure, la puissance de fuite (qui dépend de la tension).
Les implémentations avancées DVFS utilisent des algorithmes prédictifs pour prévoir les changements de charge de travail. Par exemple, un régulateur de l'OS peut augmenter la fréquence juste avant qu'un utilisateur touche l'écran, en fonction des modèles historiques.
Une approche DVFS mobile notable est par-core DVFS, où chaque cœur d'un processeur superscalaire multi-cœur peut fonctionner à une tension et une fréquence différentes. Cela permet un contrôle par-cœur fin: un noyau manipulant une charge légère peut fonctionner à un faible OPP tandis qu'un autre noyau traite une tâche intensive par calcul à un OPP plus élevé. Cependant, par-cœur DVFS nécessite des régulateurs de la tension supplémentaires sur-puce et des îles de tension, ce qui augmente la complexité de la zone et de la conception.
Gâteau électrique
Le gage de puissance réduit le courant de fuite en débranchant les unités fonctionnelles de ralenti ou les carottes entières de la tension d'alimentation. Un transistor de sommeil (ou en-tête/pied) est inséré dans le réseau de distribution de puissance; lorsque l'unité n'est pas nécessaire, le transistor est désactivé, créant un rail d'alimentation virtuel qui isole le bloc. Le défi clé est la latence de réveil: restaurer le rail de puissance à une tension stable et réinitialiser l'état prend des dizaines à des centaines de nanosecondes.
Dans les processeurs mobiles superscalaires, le ginging est souvent appliqué au niveau du cœur (par exemple, en éteignant un gros noyau entier dans une configuration grand.LETTLE) ou à une granularité plus fine au sein d'un noyau. Par exemple, une unité de point flottant partagée peut être alimentée lorsque seulement des instructions entières sont en cours d'exécution.
Référence externe: Papier IEEE sur les techniques de gavage électrique
Régalage de l'horloge
Dans un processeur super-scallaire, de nombreuses unités fonctionnelles, telles que le prédicteur de branche, la logique de renommer et la file d'attente, ne sont actives que dans certaines conditions. En gérant le signal de l'horloge, l'activité de commutation dans ces blocs est éliminée, sa puissance de sauvegarde proportionnelle à la capacité et à la fréquence de l'arbre d'horloge. Les outils de synthèse modernes insèrent automatiquement des cellules de gage d'horloge dans la liste nette, mais une conception micro-architecturale prudente peut maximiser les possibilités. Par exemple, l'horloge vers le tampon de réordre peut être fermée pour les entrées déjà engagées, et la file d'attente peut être fermée pour les entrées qui attendent une opération de longue durée.
Le ging de l'horloge est souvent combiné avec le ging de puissance pour un effet maximum : le ging de l'horloge est appliqué d'abord pour éliminer la puissance dynamique, puis le ging de puissance éteint le bloc si la période de ralenti est assez longue pour justifier les frais généraux.
Schéma d'instruction adaptative et logique des enjeux
La logique de problème dans un processeur super-scalaire est un grand consommateur de puissance parce qu'il doit réveiller des instructions dépendantes, sélectionner des instructions prêtes et les envoyer à des unités fonctionnelles chaque cycle. Pour réduire la puissance, les processeurs peuvent utiliser des fenêtres de problème de taille adaptative. Lorsque la charge de travail a peu de parallélisme de niveau d'instruction, une fenêtre plus petite suffit, permettant au processeur de désactiver des parties de la logique de réveil et de sélection.
Hiérarchie de la mémoire Optimisations
Le sous-système mémoire – y compris les caches L1, les caches L2 et le tampon de l'apparence de traduction (TLB) – représente une grande fraction (souvent 30 à 40 %) de la puissance totale du processeur. Les processeurs Superscalar nécessitent des caches multiportés pour supporter plusieurs charges et magasins par cycle, ce qui augmente à la fois la puissance dynamique et la puissance de fuite.
- Prévision de la vitesse et mise en réseau :[ Au lieu d'accéder à toutes les façons d'un cache associé à un ensemble, un prédicteur identifie la façon la plus probable, réduisant l'énergie par accès.
- Caches de filtre:[ Un petit cache de premier niveau de faible puissance (p. ex. cache L0) peut filtrer les accès au cache L1 plus grand, économisant de l'énergie lorsque les données se trouvent dans la mémoire plus petite.
- Les architectures de cache non uniformes (NUCA):[ Dans les processeurs mobiles multi-cœurs, les banques de cache distribuées avec différentes latences d'accès et caractéristiques de puissance permettent au planificateur de placer les données fréquemment accessibles dans la banque la plus proche.
- Sous-blocage et pouvoir de balise/données : Les lignes de cache sont divisées en sous-blocs; les sous-blocs inutilisés peuvent être alimentés. On peut accéder aux tableaux d'étiquettes pour déterminer les hits du cache avant de n'activer le tableau de données que lorsque cela est nécessaire.
Informatique hétérogénique et grandes architectures LittLE
L'une des stratégies de gestion de la puissance les plus réussies pour les processeurs mobiles super-calaires est l'utilisation d'architectures multi-cœurs hétérogènes, comme ARM=s big.LETTLE (DynamIQ).Cette approche associe un ou plusieurs cœurs haute performance - -big=s (par exemple, la série Cortex-X) avec plusieurs cœurs écoénergétiques --LETTLE=s (par exemple, Cortex-A55). Les gros cœurs sont optimisés pour des performances de pointe, avec des pipelines super-calaires larges, une exécution en dehors de l'ordre profond et de grands caches – mais ils consomment une puissance significative.
Le gestionnaire de puissance (souvent le programmeur OS ou un firmware dédié) migre les fils entre les types de cœurs en fonction des caractéristiques de la charge de travail. Les tâches légères (par exemple, synchronisation de fond, sondage de capteur) sont exécutées sur les cœurs LITTLE, tandis que les tâches exigeantes (par exemple, encodage vidéo, moteur de jeu) sont assignées à de gros cœurs. La migration globale des tâches permet à l'ensemble du processeur de fonctionner dans une enveloppe de faible puissance pendant la majeure partie de la journée tout en étant capable de fournir des éclats de haute performance lorsque nécessaire.
Référence externe: ARM grande architecture.LETTLE
Gestion de l'énergie au niveau du logiciel
Les techniques de gestion de l'énergie matérielle sont les plus efficaces lorsqu'elles sont complétées par le contrôle logiciel.
- Les politiques de planificateurs du processeur:[ Les planificateurs modernes (p. ex., Linux CFS avec planning énergétique) utilisent des données de modèle énergétique par tâche pour prendre des décisions d'attribution. Ils peuvent regrouper les tâches sur un sous-ensemble de cœurs pour permettre aux autres cœurs de rester alimentés ou de les répartir afin de réduire le besoin de calibrage de fréquence.
- Les cadres de gestion de puissance dynamique:[ Android=s powerHAL[ et cpuidle[ permettent la coopération du matériel et du logiciel: le noyau peut placer un noyau dans un état de ralenti profond (power-gated) quand il n'est pas nécessaire, et un moniteur matériel peut le réveiller en l'interrompant.
- Les compilateurs peuvent générer du code qui améliore le parallélisme de niveau d'instruction (réduire le nombre de cycles requis et ainsi permettre des fréquences inférieures) et qui réduit les accès à la mémoire (en favorisant la réutilisation des registres et en utilisant le pré-traitement). Certains compilateurs insèrent également des conseils qui guident le contrôleur de puissance du processeur, comme indiquer qu'une boucle est liée au calcul et devrait utiliser des performances élevées, ou qu'une section de code est tolérante à la la latence.
- Saisine de niveau d'application: Les applications peuvent utiliser des API OS pour donner des conseils sur leurs exigences de performance. Par exemple, un lecteur vidéo peut signaler qu'il s'attend à un niveau de performance stable pour une lecture en douceur, permettant au gestionnaire de puissance d'éviter les changements de fréquence agressifs qui causent des jitter.
Orientations futures en matière de gestion du pouvoir
La prochaine décennie verra la gestion de l'énergie dans les processeurs mobiles superscalaires devenir encore plus intelligente et adaptative.
Contrôleurs de puissance basés sur l'apprentissage automatique
Les modèles d'apprentissage automatique – particulièrement les réseaux d'apprentissage de renforcement et de mémoire à court terme (LSTM) – peuvent apprendre la relation complexe entre le comportement de la charge de travail, la température et les états de puissance. De tels modèles ont été démontrés pour surperformer les gouverneurs heuristiques de 15-30% en efficacité énergétique pour les charges de travail réelles mobiles. Cependant, les modèles eux-mêmes consomment de l'énergie et doivent être optimisés pour l'inférence sur les appareils.
Informatique quasi seuil (NTC)
Les processeurs d'exploitation à une tension d'alimentation proche de la tension seuil du transistor peuvent réduire considérablement la puissance dynamique et statique (jusqu'à 10x). Cependant, NTC souffre d'une vitesse de circuit réduite et d'une sensibilité accrue à la variabilité. Les processeurs Superscalar conçus pour NTC doivent utiliser des circuits spécialisés pour détecter et corriger les erreurs de synchronisation, et peuvent devoir réduire la profondeur de pipeline ou la largeur de la sortie.
Intégration 3D et conditionnement avancé
L'intégration 3D permet également une alimentation plus fine en plaçant les régulateurs de tension plus près de la charge. Les futurs processeurs mobiles peuvent intégrer une matrice séparée pour la régulation de tension, permettant ainsi une DVFS par cœur avec des pertes parasitaires minimes.
Calcul approximatif
Pour de nombreuses applications mobiles (p. ex. traitement d'images, audio, fusion de capteurs), un calcul parfaitement précis n'est pas nécessaire. Des techniques informatiques approximatives, comme la réduction de la précision de l'arithmétique fixe ou l'autorisation d'erreurs occasionnelles dans la prévision de branche, peuvent réduire de façon significative la consommation d'énergie.
Gestion globale et collaborative de l'énergie
Comme les appareils mobiles intègrent plusieurs processeurs (CPU, GPU, NPU, DSP), un gestionnaire de puissance de niveau système qui coordonne tous les composants peut réaliser de meilleures économies d'énergie que la gestion par IP. Les techniques comme -race to ifby , (tâches complètes aussi rapidement que possible et puis entrer dans un état de faible puissance) nécessitent la collaboration entre le matériel et le logiciel pour minimiser la puissance de ralenti.
Conclusion
Les processeurs superscalaires sont devenus la pierre angulaire des performances de l'informatique mobile, mais leur appétit vorace en matière de puissance exige une gestion prudente. Les stratégies discutées – DVDFS, power-gating, watch gating, logique de problème adaptatif, optimisations de la hiérarchie de la mémoire, architectures hétérogènes et coopération logicielle – ont permis aujourd'hui aux smartphones de fournir des performances de bureau dans un facteur de forme de la taille de la paume. Pourtant, la voie à suivre n'est pas statique.