Up close and personal: comment le Galaxy S6 Samsung utilise son processeur OCTA-core

Samsung Galaxy S6 Edge-4Il ya quelques semaines, je faisais des recherches sur la façon dont les applications Android tirer parti des processeurs multi-core. Plus précisément, je regardais de démystifier le mythe que Les applications Android utilisent un seul cœur de CPU. Mes conclusions essentiellement mis fin à ce conte de fées particulier, mais il ya d'autres maisons en pain d'épice dans les bois qui doivent abattre!

Une mise en garde de cette recherche est que je ne l'avais pas encore eu la chance de courir mes tests sur une configuration Cortex-A53 / A57 Cortex-que mon appareil de test OCTA-core Qualcomm Snapdragon avait une 615, qui a un 1.7GHz quad-core pôle ARM Cortex A53 et A53 un cluster 1.0GHz quad-core. Cependant, je l'ai maintenant eu l'occasion de faire quelques tests sur un Galaxy S6 et son Samsung Exynos processeur 7420!

Résumer

Donc, pour récapituler brièvement ce que cela est tout au sujet. Smartphone ont processeurs multi-core. D'abord, il était dual-core, puis quad-core et nous avons maintenant 6 et 8 processeurs mobiles de base. Ceci est également vrai dans l'espace de bureau, mais il ya une grande différence entre les processeurs Core 6 et 8 de bureau d'Intel et d'AMD et les processeurs 6 et 8 core basé sur l'architecture ARM - la plupart des processeurs basés ARM avec plus de 4 cœurs utiliser au moins deux conceptions de base différentes.

Cet arrangement est connu comme big.LITTLE, où les grands cœurs de processeur Cortex-A57 () sont combinées avec des cœurs de processeur Little (Cortex-A53).

L'Exynos 7420 est un processeur à base ARM qui utilise un système connu sous le nom hétérogène Multi-Processing (HMP), ce qui signifie que tous les noyaux sont égaux (donc, hétérogène). Le processeur de la Galaxy S6 dispose d'un groupe de noyaux Cortex-A57 et une grappe de cœurs Cortex-A53. Le A57 est un noyau de haute performance, tandis que l'A53 a une plus grande efficacité énergétique. Cet arrangement est connu comme big.LITTLE, où les "grands" cœurs de processeur Cortex-A57 () sont combinées avec des cœurs de processeur «petit» (Cortex-A53). Ceci est très différent pour les processeurs de bureau 6 ou 8 fondamentales que nous voyons d'Intel et AMD, que sur la consommation d'énergie de bureau est pas aussi critique que ce soit sur mobile.

Une fois que vous avez une configuration multi-core, la question se pose, peut utiliser les applications Android toutes ces noyaux de manière efficace? Au cœur de Linux (le noyau de l'OS utilisé par Android) est un programmateur qui détermine combien de temps CPU est donné à chaque application et sur lequel core CPU elle se déroulera. Pour utiliser pleinement les processeurs multi-core, les applications Android doivent être multi-thread, mais Android est en soi un multi-processus, OS multi-tâches.

Une des tâches au niveau du système dans l'architecture de Android est le SurfaceFlinger. Il est une partie essentielle de la façon dont les applications graphiques envoie à l'affichage. Il est une tâche distincte qui doit être prévu et donné une tranche de temps CPU. Ce que cela signifie est que certaines opérations graphiques besoin d'un autre processus à exécuter avant qu'ils sont complets.

Parce que des processus comme le SurfaceFlinger, avantages Android de processeurs multi-core sans une application spécifique être réellement multi-thread par la conception. Aussi parce qu'il ya beaucoup de choses qui se passent toujours en arrière-plan, comme la synchronisation et les widgets, puis Android comme son ensemble bénéficie de l'aide d'un processeur multi-core.

Pour une explication beaucoup plus complète de multi-tâches, la planification et le multi-threading s'il vous plaît lire Réalité ou fiction: les applications Android utilisent un seul cœur de CPU.

Voici un couple des graphiques clés de mon étude précédente, qui montrent clairement que Android est capable d'utiliser plus d'un cœur de processeur:

Chrome - noyaux actifs sur un téléphone OCTA-core.

Chrome - noyaux actifs sur un téléphone OCTA-core.

Chrome - utilisation de base sur l'OCTA-core téléphone.

Chrome - utilisation de base sur l'OCTA-core téléphone.

Les deux graphiques montrent le nombre de cœurs utilisés, et le pourcentage d'utilisation de base, tout en utilisant Chrome sur un smartphone avec un OCTA-core Snapdragon 615.

Comme vous pouvez le voir, sept noyaux sont constamment utilisées avec la flambée occasionnelle à 8, et quelques fois quand il plonge à 6 et 4 cœurs. Vous noterez également qu'il ya deux ou trois noyaux qui courent plus que les autres, mais tous les noyaux sont utilisés d'une manière ou une autre.

Ce que nous voyons est la façon dont l'architecture big.LITTLE est en mesure d'échanger les discussions d'un noyau à l'autre en fonction de la charge. Rappelez-vous, les noyaux supplémentaires sont ici pour l'efficacité énergétique, pas la performance.

Samsung Galaxy S6

Les graphiques ci-dessus sont pour un dispositif avec un Qualcomm Snapdragon 615, qui a un 1.7GHz ARM Cortex A53 pôle quad-core 1.0GHz et un cluster A53 quad-core. Bien que les deux groupes de noyaux sont différents, l'un est cadencé à 1,7 GHz et l'autre à 1 GHz, la différence entre les deux est principalement juste vitesse d'horloge.

L'Exynos 7420 utilisée dans le Galaxy S6 utilise quatre cœurs ARM Cortex-A57 cadencé à 2.1GHz, et quatre cœurs Cortex-A53 cadencé à 1.5GHz. Ceci est une configuration tout à fait différente de celle du Snapdragon 615. Ici, il ya deux architectures de base de CPU distinctement différents utilisés ensemble. Par exemple, le Cortex-A57 utilise un pipeline out-of-order, tandis que le Cortex-A53 dispose d'un pipeline dans l'ordre. Il ya bien sûr beaucoup d'autres différences architecturales entre les deux conceptions de base.

L'Exynos 7420 utilisée dans le Galaxy S6 utilise quatre cœurs ARM Cortex-A57 cadencé à 2.1GHz, et quatre cœurs Cortex-A53 cadencé à 1.5GHz.

Il est également intéressant de noter que la vitesse de l'horloge max pour les noyaux Cortex-A53 est cadencé à 1,5 GHz, presque aussi élevé que le plus grand des grappes Cortex-A53 dans le Snapdragon 615. Ce que cela signifie est que les caractéristiques globales de performance seront très différentes sur le Exynos 7420. Lorsque le Snapdragon 615 peut avoir favorisé la grande grappe (Cortex-A53 @ 1.7GHz) pour certaines charges de travail, l'Exynos 7420 pourrait favoriser le petit amas (Cortex-A53 @ 1.5GHz) car il est presque aussi puissant que le grand cluster dans le Snapdragon 615.

Chrome

Commençons donc en comparant la façon dont le Galaxy S6 Samsung utilise Chrome. Pour effectuer le test, je l'ouvris le site de l'Autorité Android Chrome et alors commencé à la navigation. J'y suis resté seulement sur le site Autorité Android, mais je ne passais pas de temps à lire les pages que chargés, car cela aurait abouti à aucune utilisation de CPU. Cependant, je attendu jusqu'à ce que la page a été chargé et rendu, puis je suis passé à la page suivante.

Chrome - noyaux actifs sur un Galaxy Samsung S6

Chrome - noyaux actifs sur un Galaxy Samsung S6.

Le graphique ci-dessus montre comment de nombreux noyaux sont utilisés par Android et Chrome. La ligne de base semble être autour de 5 noyaux et il culmine souvent à 8 cœurs. Il ne montre pas combien le noyau est utilisé (qui vient dans un moment), mais il montre si le noyau est utilisé à tous.

L'utilisation de la base sur un Galaxy Samsung S6 - Chrome

L'utilisation de la base sur un Galaxy Samsung S6 - Chrome.

Le graphique ci-dessus montre combien chaque noyau a été utilisé. Ceci est un graphe moyenne-out (comme le vrai est un grimoire effrayant de lignes). Cela signifie que les usages des pics sont montrées comme étant moins. Par exemple, le pic sur ce graphique est un peu plus de 95%, mais les données brutes montre que certains des noyaux frappé 100% plusieurs fois pendant l'essai. Toutefois, il nous donne toujours une bonne représentation de ce qui se passait.

Chrome - profil d'utilisation de base sur un Galaxy Samsung S6.

Chrome - profil d'utilisation de base sur un Galaxy Samsung S6.

Sur l'Exynos 7420 (et sur les Snapdragon 615) conducteurs 1 à 4 sont les noyaux Little (les cores Cortex-A53) et des noyaux de 5 à 8 sont les grands noyaux (les cœurs Cortex-A57). Le graphique ci-dessus montre que l'Exynos 7420 privilégie les petits noyaux et en laissant les noyaux BIG ralenti autant que possible. En fait, les petits noyaux sont presque jamais ralenti étaient que les grands noyaux sont inactifs entre 30% à 50% du temps. La raison pour cela est important est parce que les grands noyaux utilisent plus de batterie. Donc, si les plus économes en énergie PETITS noyaux sont à la tâche, puis ils sont utilisés et les grands noyaux peuvent dormir.

Toutefois, lorsque la charge de travail devient difficile les grands noyaux sont appelés à l'action, qui est pourquoi l'utilisation max pour les gros noyaux est à 100%. Il y avait des moments où ils ont été utilisés à 100% et d'autres fois où il y avait ralenti, permettant les petits cœurs pour faire le travail.

Chrome - Big vs PEU utilisation sur Samsung Galaxy S6

Chrome - Big vs PEU utilisation sur Samsung Galaxy S6

Le graphique ci-dessus montre plus clairement. La ligne verte montre l'utilisation de base PEU combinée, tandis que la ligne bleue montre la grande utilisation combinée de base. Comme vous pouvez le voir les petits noyaux sont utilisés tout le temps, en fait, l'utilisation de la base PEU plonge qu'occasionnellement en dessous de la grande utilisation de base. Toutefois, les grands noyaux pic car ils sont utilisés de plus en plongeon quand ils sont moins utilisés, seulement entrée en jeu en cas de besoin.

La charge de travail est artificielle en ce sens que je ne cesse de lire toutes les pages et, dès que la page a été chargée je suis passé à la page suivante. Toutefois, les prochains graphiques montrent ce qui se passe si je chargeais une page, lisez certaines d'entre elles, défile un peu, lire un peu plus, enfin je cliqué sur un nouveau lien et commencé le processus à nouveau. Au cours de 1 minute, je chargeais trois pages. Ceux-ci peuvent être clairement vus ici:

Lire avec Chrome - Big vs PEU utilisation sur Samsung Galaxy S6

Lire avec Chrome - Big vs PEU utilisation sur Samsung Galaxy S6

Remarquez les trois pics de grande utilisation de base que je chargeais une page et les pointes à l'utilisation de base peu que je défile en bas de page et de nouveaux éléments ont été rendus et affichée.

Gmail et YouTube

Google déploie beaucoup de ses applications Android clés via le Play Store, et d'ailleurs Chrome, d'autres applications Google les plus populaires sont YouTube et Gmail. Le client de messagerie de Google est un bon exemple d'une application qui utilise les éléments de l'interface utilisateur d'Android. Il n'y a pas de sprites, pas de graphiques 3D, pas de vidéo à rendre, juste une interface utilisateur Android. Je procède à un essai d'utilisation générale où je défile de haut en bas dans la boîte de réception, cherché des e-mails, répondu à un courriel et a écrit un nouvel e-mail - en d'autres termes, je utilisé l'application comme il était prévu.

S6-real-gmail-core-utilisation

Gmail - utilisation de base sur un Galaxy Samsung S6.

Comme on peut s'y attendre, un client de messagerie ne va pas insister sur un processeur comme le Exynos 7420. Comme vous pouvez le voir sur le graphique, l'utilisation globale du CPU est assez faible. Il ya quelques pointes, mais en moyenne, les noyaux d'utilisation est inférieure à 30 pour cent. Le planificateur utilise principalement les petits noyaux Cortex-A53 et les grands noyaux sont au repos pour environ 70 pour cent du temps.

Vous pouvez voir comment les petits noyaux sont utilisés plus souvent que les grands noyaux de ce graphique:

Gmail - Big vs PEU utilisation sur Samsung Galaxy S6.

Gmail - Big vs PEU utilisation sur Samsung Galaxy S6.

YouTube est différent de Gmail dans ce alors qu'il a des éléments d'interface, il doit également faire beaucoup de décodage vidéo. La plupart des travaux de la vidéo ne sera pas traité par la CPU, de sorte que son travail est principalement l'interface utilisateur et le réseautage ainsi que la coordination générale.

Le grand vs petit graphique est assez révélatrice ici:

YouTube - Big vs PEU utilisation sur Samsung Galaxy S6.

YouTube - Big vs PEU utilisation sur Samsung Galaxy S6.

Les grands noyaux sont guère utilisées à tous et l'efficacité énergétique (mais la performance inférieure) noyaux sont utilisés pour déplacer des données, et de gérer les connexions réseau, etc.

Gaming

Les jeux sont une tout autre catégorie d'application. Ils sont GPU souvent intensive et pas nécessairement liée au CPU. Je l'ai testé une gamme de jeux, y compris Epic Citadel, Jurassic mondiale, Subway Surfer, Crossy Road, parfait Dude 2, et Solitaire.



En commençant par Epic Citadel, l'application de démonstration pour l'Unreal Engine 3, ce que je découvre est que de nouveau les petits noyaux sont utilisés constamment et les grands noyaux sont utilisés comme support, si nécessaire. En moyenne, les petits noyaux sont en cours d'exécution à environ 30 à 40 pour cent l'utilisation tandis que les grands noyaux sont utilisés à moins de 10 pour cent. Les grands noyaux sont inactifs pendant environ 40 pour cent du temps, cependant, lorsqu'ils sont utilisés, ils peuvent culminer à l'utilisation de plus de 90 pour cent.

Epic Citadel - noyau profil d'utilisation sur Samsung Galaxy S6.

Epic Citadel - noyau profil d'utilisation sur Samsung Galaxy S6.

Le graphique ci-dessus sont pour le jeu réel (c.-à promener le monde virtuel Epic Citadel utilisant le sur les contrôles de l'écran). Cependant Epic Citadelle dispose également d'un mode «Visite guidée» qui fonce automatiquement autour de diverses parties de la carte. L'utilisation graphique de base pour le mode visite guidée est légèrement différente de la version de jeu réel de jeu:

Epic Citadel Guided Tour Mode - utilisation de base sur Samsung Galaxy S6.

Epic Citadel Guided Tour Mode - utilisation de base sur Samsung Galaxy S6.

Comme vous pouvez le voir, le mode Visite guidée a plusieurs pointes d'activité du processeur, dont la version de jeu de jeu réel ne fonctionne pas. Cela souligne la différence entre les charges de travail du monde réel et des charges artificielles. Cependant, dans ce cas particulier, le profil global d'utilisation est pas beaucoup changé:

Epic Citadel Guided Tour Mode - noyau profil d'utilisation sur Samsung Galaxy S6.

Epic Citadel Guided Tour Mode - noyau profil d'utilisation sur Samsung Galaxy S6.

Voici les graphiques pour Solitaire, Jurassic mondiale, Subway Surfer, Crossy Road, et Mec Parfait 2:

Comme on peut s'y attendre Solitaire ne pas utiliser beaucoup de temps CPU, et il est intéressant utilise Jurassic World le plus. Il est également intéressant de regarder le grand contre petit graphique pour Mec Parfait 2, il montre un scénario de manuel près du lieu où les petits noyaux accélérateur vers le bas, tandis que les grands noyaux montée en puissance. Voici le même graphique avec ces grands pics de base mis en évidence:

Mec Parfait 2: grand vs PEU (avec des reflets)

Mec Parfait 2: grand vs PEU (avec des reflets)

Bouts

Je ai deux autres ensembles de graphiques pour compléter notre image. Le premier est un instantané de l'appareil en cas d'inactivité, l'écran est éteint. Comme vous pouvez le voir il ya encore une certaine activité, cela est parce que le programme qui recueille les données lui-même utilise le CPU. Dans une sorte de manière quantique physique-esque, l'acte de l'observation modifie le résultat! Qu'est-ce que cela ne nous donne est une base de référence:

L'autre série de graphiques est la charge de travail artificiel créé par des repères, dans ce cas AnTuTu:

Même un regard superficiel montre que les charges de travail générés par AnTuTu sont rien comme les charges de travail du monde réel. Les graphiques nous montrent aussi qu'il est possible d'obtenir le Galaxy Samsung S6 max-out ses huit cœurs de processeur, mais il est complètement artificielle! Pour plus d'informations sur les dangers de voir repères Méfiez-vous des repères, comment savoir ce qu'il faut chercher.

Je dois aussi lister quelques mises en garde ici. La première chose à souligner est que ces tests ne sont pas comparer les performances du téléphone. Mes tests ne montre comment l'Exynos 7420 exécute des applications différentes. Il ne regarde pas les avantages ou les inconvénients de l'exécution de parties d'une application sur deux noyaux à 25% d'utilisation, plutôt que sur un noyau à 50%, et ainsi de suite.

Deuxièmement, l'intervalle de balayage de ces statistiques est d'environ un six de seconde (soit environ 160 millisecondes). Si un noyau affiche son utilisation est de 25% en ce que 160 millisecondes et rapporte un autre noyau son utilisation est de 25% alors les graphes montrera les deux cœurs fonctionnant simultanément à 25%. Toutefois, il est possible que le premier noyau a couru à 25% d'utilisation pendant 80 millisecondes, puis le second noyau a couru à 25% d'utilisation pour 80 millisecondes. Cela signifie que les noyaux ont été utilisés successivement et non simultanément. Au moment où ma configuration de test ne me permet pas de plus grande résolution.

Sur les téléphones dotés de processeurs Qualcomm Snapdragon il est possible de désactiver les cœurs de processeur en utilisant la fonction CPU hotplug de Linux. Cependant, pour ce faire, vous avez besoin de tuer le processus de «mpdecision 'sinon les noyaux vont revenir de nouveau en ligne lorsque le processus de« mpdecision' exécute. Il est également possible de désactiver les noyaux individuels sur le Exynos 7420 mais je ne peux pas trouver l'équivalent de 'mpdecision' ce qui signifie que chaque fois que je désactive un noyau Obtenir réactivé après seulement quelques secondes. Le résultat est que je suis incapable de tester la charge de travail, la performance et la vie de la batterie avec les différents cœurs désactivés (ie avec tous les grands cœurs désactivés, ou avec tous les petits noyaux désactivé).

Qu'est-ce que tout cela veut dire?

L'idée derrière hétérogène Multi-Processing (HMP) est qu'il ya des jeux de noyaux de CPU avec des niveaux d'efficacité énergétique différents. Les noyaux avec la meilleure efficacité énergétique ne proposent pas de la plus haute performance. Les choix de l'ordonnanceur qui noyaux sont le meilleur pour chaque charge de travail, ce processus de prise de décision se produit plusieurs fois par seconde et les noyaux du CPU sont activées et désactivées en conséquence. En outre la fréquence des cœurs de processeur est commandé, ils ont accéléré et étranglé en fonction de la charge de travail. Cela signifie que le planificateur peut choisir entre les cœurs avec des caractéristiques de performances et de contrôler la vitesse de chaque noyau, ce qui lui donne une pléthore de choix.

Le comportement par défaut d'un processeur big.LITTLE est d'utiliser ses petits noyaux.

En termes de vie de la batterie, plus la fréquence d'un processeur plus la puissance qu'elle va utiliser. Il ya quelques équations mathématiques intelligentes qui montrent, mais la ligne de fond est la suivante: les processeurs multi-core sont plus de puissance efficace qu'un processeur simple core cadencé à des fréquences plus élevées, ou en termes techniques processeurs multi-core avoir de meilleures performances par mW.

Qu'est-ce que le test ci-dessus montre que le comportement par défaut d'un processeur big.LITTLE est d'utiliser ses petits noyaux. Ces noyaux sont en cours d'exécution à des fréquences d'horloge inférieures (par rapport aux grands cœurs) et ont une conception plus efficace de l'énergie (mais à la perte de performances haut de gamme). Lorsque l'Exynos 7420 doit effectuer du travail supplémentaire alors les grands noyaux sont activés. La raison à cela est non seulement la performance (du point de vue de l'utilisateur), mais il ya des économies d'énergie que l'on trouve quand un noyau CPU peut effectuer son travail rapide et puis retourner au ralenti.

Il est également évident que, à aucun moment l'Exynos 7420 est invitée à travailler trop dur. Jurassic World pousse le processeur plus difficile que toutes les autres applications ou des jeux, mais même elle laisse encore les grands cœurs inactifs de plus de 50 pour cent du temps.

Cela soulève deux questions intéressantes. Tout d'abord, les décideurs doivent être à la recherche de processeurs à d'autres combinaisons HMP, autre que seulement 4 + 4. Il est intéressant que le LG utilise un processeur G4 hexa-core plutôt que d'un processeur OCTA-core. Le Snapdragon 808 dans le G4 LG utilise deux cœurs Cortex-A57 et A53 quatre noyaux. Deuxièmement, l'efficacité de la puissance et les performances du GPU ne devraient pas être sous-estimés lors de la recherche à la conception globale d'un processeur. Serait-ce que d'un processeur plus puissant et plus bas avec un GPU plus puissant est meilleure combinaison?

Quelles sont vos pensées sur hétérogène Multi-Processing, big.LITTLE, processeurs OCTA-core, les processeurs hexa-core, et l'Exynos 7420? S'il vous plaît laissez-moi savoir dans les commentaires ci-dessous.




» » Up close and personal: comment le Galaxy S6 Samsung utilise son processeur OCTA-core