L’une des caractéristiques les plus importantes (et évidentes) de l’informatique mobile est que les appareils mobiles utilisent des batteries plutôt que d’être branché sur l’alimentation secteur. Cela signifie que chaque partie d’un système mobile doit être à l’écoute de sauver autant de pouvoir que possible encore, tout en offrant les meilleures performances disponibles. Normalement, ces deux exigences (efficacité et de performance) sont en contradiction avec l’autre. Plus le rendement est élevé, plus la consommation d’énergie et la chaleur générée. Sur le bureau de c’est pas tant d’un problème que les ordinateurs sont connectés au réseau électrique et disposent de ventilateurs de refroidissement massifs. Quoi qu’il en est pas le cas sur mobile.
Il existe une relation directe entre la quantité d’énergie utilisée par un processeur et sa fréquence d’horloge. En un mot les plus rapides de tous les transistors (portes) sont activés dans la puce plus la puissance est utilisée. La fréquence à laquelle les portes sont commutées est commandée par la fréquence d’horloge. Vous pouvez peut-être penser que ce proche de régime moteur dans une voiture, plus les tours le plus de carburant consommé.
Ce que cela signifie est que par l’abaissement de la fréquence d’horloge de la consommation d’énergie est également abaissée, et qui est vital pour l’informatique mobile et en particulier pour les smartphones. Il existe une fonction dans Android (via le noyau Linux) qui permet à la fréquence d’horloge du processeur de faire varier, revue à la baisse lorsque le téléphone est pas utilisé beaucoup et rampe en cas de besoin.
Il se trouve que, lorsque la fréquence d’horloge est inférieure à la puce n’a pas besoin d’autant de volts pour exécuter. Donc, il existe une corrélation entre la fréquence d’horloge et les volts nécessaires. Par conséquent, ces deux peuvent être ajustées en tandem. Chaque fois que la fréquence d’horloge est modifié, la tension peut être modifié ainsi. les modifier ensemble est connu comme tension dynamique et de mise à l’échelle de fréquence ou DVFS pour faire court.
Qu’est-ce que cela signifie pour les utilisateurs?
Le plus grand avantage pour les utilisateurs de smartphones est la vie de la batterie. Depuis le CPU ne fonctionne pas à pleine puissance tout le temps, cela signifie que pendant que vous lisez une page Web ou méditant votre prochain déménagement dans un jeu alors la fréquence du processeur peut être réduite pour économiser l’énergie. Une fois que l’application a besoin de plus de performance, puis la fréquence du CPU (avec la tension) sera porté à gérer les nouvelles demandes. Toutefois, cela ne montrer une faiblesse de DVFS, il est réactif. La fréquence est augmentée en réaction à la demande pour plus de performance. Cela signifie qu’il ya toujours un léger retard entre le moment où la performance supplémentaire est nécessaire au moment où il est livré. Heureusement que le retard est presque imperceptibles, cependant développeurs utilisant des outils de profilage peut le voir, mais plus à ce sujet dans la section ci-dessous. Pour contourner ce retard, Android a un petit truc, chaque fois que l’écran est touché la fréquence du CPU d’un ou plusieurs noyaux est renforcé en prévision d’une activité de l’interface utilisateur.
Si vous voulez voir DVFS en action alors vous pouvez télécharger une application comme CPU Z. Dans l’onglet SoC vous pouvez voir de nombreuses informations sur le processeur de votre appareil, y compris la marque, le modèle et le nombre de cœurs. Aussi repris quelques données de vitesse d’horloge. Chaque noyau est listé en plus de sa fréquence actuelle. Si vous regardez attentivement, vous verrez que chaque noyau a une vitesse d’horloge de changer. Si certaines de ces noyaux sont arrêtés et les autres sont en cours d’exécution à faible vitesse (comme 300 MHz ou similaire) puis touchez l’écran pour voir comment les noyaux réagissent.
Il y a encore une chose à noter, la mise à l’échelle gouverneur. Il est un composant du noyau Linux qui contrôle la mise à l’échelle DVFS. Il est appelé le gouverneur de mise à l’échelle. Le gouverneur par défaut est appelé “interactive”. Il est en effet le gouverneur interactif qui rampes jusqu’à la fréquence du processeur lorsque l’écran est touché. Si vous avez ancré votre téléphone, il est possible de changer le gouverneur en utilisant des programmes comme Kernel Adiutor (ROOT ) ou root Booster.
Il y a beaucoup d’informations (et parfois, désinformation) sur le changement de gouverneur pour obtenir des résultats très différents des performances / de la batterie de votre appareil. Si ce genre d’intérêts chose vous alors vous pourriez avoir du plaisir à jouer avec les réglages du régulateur, mais vous ne pouvez changer le gouverneur si vous avez un accès root. Il est également utile de rappeler que les équipementiers smartphones passent beaucoup de temps et de renforcement de l’argent téléphones avec les plus hauts niveaux de performance possible tout en maintenant une autonomie raisonnable. Si peaufiner le gouverneur effectivement produit de meilleurs résultats, alors vous pouvez être sûr que les constructeurs feraient.
Qu’est-ce que cela signifie pour les développeurs?
je l’ai mentionné que la mise à l’échelle de l’unité centrale est réactif et non proactif. Cela signifie qu’il peut y avoir un décalage en sortant d’un état de basse fréquence de l’ordre de 20 ms. Si vous utilisez le système Android Trace (Systrace) pour le profilage de vos applications puis vous pouvez parfois voir que la première image ne peut rendre dans le cadre de 16 ms de temps nécessaire pour 60 images par seconde. Il n’y a pas beaucoup que vous pouvez faire à ce sujet en tant que développeur, mais en sachant que cela est le comportement attendu vous arrêter de courir après votre queue si vous voyez un cadre chuté à la sortie d’une faible fréquence de CPU.
Colt McAnlis a une brève vidéo sur “CPU Scaling de fréquence” sur Android. Dans la vidéo, il explique comment DVFS est l’un de ceux dures réalités de développement mobile que vous ne pouvez pas contrôler, mais peut avoir un impact sur votre application.
Il est plus …
Au cours des dernières années, il y a eu aussi un certain nombre de d’autres progrès pour aider à améliorer l’efficacité de la batterie tout en augmentant les performances. Le plus important de ce qui est probablement Multi-Processing hétérogène (HMP) tel qu’il est utilisé dans le système big.LITTLE d’ARM. Dans un robot HMP ne sont pas tous les noyaux sont égaux (donc hétérogène). Dans un processeur 64 bits moderne, cela signifierait qu’un cluster de cœurs Cortex-A57 ou Cortex-A72 serait utilisé en conjonction avec un cluster de cœurs Cortex-A53. Le A72 est un noyau de haute performance, tandis que l’A53 a une plus grande efficacité énergétique.
Ce que cela signifie est que, lorsque la charge de travail devient deux beaucoup pour les noyaux Little (Cortex-A53 dans cet exemple), puis les grands noyaux (Cortex-A72) prendre la relève. Si DVFS est semblable aux tours d’un moteur de voiture, le big.LITTLE est comme le changement de vitesse.
j’ai écrit sur et benchmarkée processeurs big.LITTLE assez largement, si vous voulez en savoir plus sur HMP alors je peux suggérer, les articles suivants:
Les premières implémentations de la partie logicielle pour big.LITTLE utilisé le système DVFS pour déclencher un interrupteur de la petite noyaux aux grands coeurs. Depuis, les choses sont devenues plus complexes et ARM travaille actuellement sur un programmateur conscience-énergie pour Android qui permettra au noyau Linux de choisir qui noyaux terme les tâches qui reposent non seulement sur les évaluations du système DVFS mais aussi de la https://www.androidauthority.com/arms-intelligent-power-allocation-536244/ répartition intelligente de l’alimentation (IPA) algorithmes et de CPU ralenti. Il y a plus de détails dans mon article Energy-Aware Planification Android.
Alors ligne de fond, la fréquence du processeur échelle est bonne, elle permet d’économiser la batterie. Lorsqu’il est couplé avec big.LITTLE, IPA et l’ordonnancement courant d’énergie alors les économies de la batterie sont encore plus grandes.
Autorité Android