Analyse et optimisation des puces de téléphone mobile des moyens d'évaluation de la performance de la bande passante

Gang Mu

(Ju noyau (Zhuhai) Ltd, Guangdong Zhuhai 519085)

: La bande passante mobile débit la performance est un indicateur important de l'impact global de la performance des téléphones mobiles, presque tous les logiciels d'évaluation de téléphone tiers a un indicateur de ces tests individuels. Mais ces tests sont fondamentalement il y a des problèmes, il ne reflète pas entièrement la vraie bande passante, le débit des performances du téléphone. Les articles du point de vue matériel analyse approfondie de l'impact de la mise en uvre des CPU, des modules Cache, DDR pour les logiciels de test de bande passante, combinée avec le plus couramment utilisé CPU série ARM pour faire une comparaison. Enfin, la nouvelle bande passante débit des méthodes d'évaluation des performances.

: La bande passante, les données débit; Cache; DDR

: TP368.1 Code du document: ADOI: 10,19358 / j.issn.1674-7720.2017.09.024

Format de référence : Mou analyser juste et optimiser les moyens d'évaluation des performances de largeur de bande à puce de téléphonie mobile [J] ses applications, 2017,36 (9): 81-84.

0 introduction

Avec la prolifération rapide des téléphones intelligents, les livraisons mondiales 2015 ont atteint 14 millions d'unités. Plus de la moitié qui font partie du système de téléphonie mobile Android, son système d'exploitation de base est fondamentalement la même, mais ont des plates-formes matérielles sur. évaluation de téléphone de la performance du matériel est devenu le centre de l'industrie ainsi que l'intérêt pour l'utilisateur [1]. Par conséquent, l'évaluation tiers des logiciels de téléphonie mobile est né. Le logiciel d'évaluation est souvent une performance matérielle compliquée dans le numéro un clair, de sorte que les consommateurs de la manière la plus intuitive pour comprendre le niveau de performance d'un téléphone cellulaire. En raison de sa simplicité et intuitif à utiliser, non seulement les téléphones mobiles consommateurs finaux utilisent souvent comme une sélection du combiné de référence, de nombreux fabricants utilisent également ces programmes comme base pour le logiciel d'évaluation de la puce de téléphone mobile sélectionner.

puces de contrôleur de téléphonie mobile modernes sont des systèmes multi-core, la puissance de calcul est en croissance, mais pour améliorer les performances de la mémoire a été limitée [2]. Par conséquent, les performances de la mémoire devient souvent un goulot d'étranglement dans les performances du système, il est particulièrement important de bande passante mémoire de test des performances débit. Cet article analysera certaines des limites actuelles du logiciel de test de performance de bande passante, d'explorer les facteurs qui influent sur la performance de la bande passante tester une combinaison de conception matérielle, le test final de la direction de l'optimisation des performances de la bande passante.

limitations de bande passante de test 1CPU

Téléphone puce principale est un SoC complexe (System on Chip), et plusieurs périphériques maître peut accéder à la DDR (mémoire), la complexité des contrôleurs de DDR sont devenus plus sophistiqués, il peut coordonner tous les principaux équipements d'accès d'équilibrage. Mais en plus de la CPU, l'autre tiers utilisateur du dispositif maître est pratique directement contrôlé par le logiciel, tel qu'un module codec vidéo, ces modules nécessitent des pilotes spécialisés pour le contrôle, et le pilote est fourni par le fabricant de matériel, un tiers les utilisateurs ne comprennent pas les détails. Donc, en général est l'utilisation de l'accès à la vitesse du processeur statistique DDR pour évaluer la bande passante totale débit puce de performance. Cela pose un problème, vous pouvez exécuter au programme de test CPU pleine vitesse nécessite une bande passante inférieure à la bande passante théorique de DDR peut fournir, la bande passante débit performance est limitée par la capacité de lire et les commandes d'écriture émises CPU, plutôt que limitée à la DDR .

Par exemple, afin de rendre la simulation CPU ARM cortexA9, l'interface de CPU pour un accès de mémoire suspendue au-dessus d'un modèle de DDR 32-bit (il y a une réponse immédiate à une demande d'accès, aucun retard), la fréquence du processeur de 1008 MHz, les données mesurées de copie la largeur de bande est de 2140 Mo / s. Et le téléphone sera généralement disposé 540 MHz 32 bits DDR, la bande passante théorique de fournir 4320 Mo / s, bien au-dessus Cortex-A9 débit de bande passante et les performances de la bande passante obtenue dans ce cas, seul le test de l'accès à la mémoire CPU la performance, plutôt que la performance globale de la bande passante de la DDR.

L'impact 2Cache test de débit de bande passante

Maintenant, le logiciel d'évaluation des performances de débit de bande passante utilise l'accès vitesse CPU statistiques DDR pour évaluer la bande passante totale débit puces de performance, qui doivent prendre en compte l'impact de la CPU Cache.

Pour un accès rapide aux données, le processeur à plusieurs noyaux moderne comprend typiquement un cache privé (L1 Cache) et une mémoire cache partagée final (L2) [3]. L1 Taille du cache est habituellement des dizaines de Ko, L2 Cache a généralement des centaines de Ko à plusieurs MB. l'accès du processeur aux données via le cache puis DDR. CACHE permettent d'obtenir différents comportements peuvent entraîner des différences énormes dans la quantité d'accès CPU au DDR.

Actuellement la quasi-totalité puce principale de téléphone mobile utilise la famille ARM Cortex CPU, suite à la plus CPU série cortex ARM populaire (A5, A7, A9, A53) d'analyser l'impact des différentes CPU de configuration des performances d'accès mémoire cache.

Écrire 2.1 paires d'adresses consécutives

vitesse du processeur de l'adresse d'écriture continue est un indice important qui reflète la performance de la bande passante du logiciel d'exploitation memset correspondant, écrit en langage C comme suit:

int * dst;

pour (int i = 0; i < compter; i ++)

* Dst = valeur

En fait, en raison de la présence de cache, la valeur est écrite directement à la DDR. Pour ARM cortexA5 et CPU cortexA9, le processus comme indiqué sur la figure.

données cache L1 généralement configuré pour écrire de nouveau + écriture allouer. Cependant, processeur ARM pour toutes les séries cache L1 sont optimisés: détecter en continu trois fois l'adresse de ligne de cache d'opérations d'écriture, qui passe automatiquement en écriture par écriture + pas allouer. On peut voir que seules les trois premières lignes du cache (0x1000000 ~ 0x1000040) des données lues à partir du DDR dans les données figure L1 Cache, les données sont écrites directement à l'arrière du cache L2.

CortexA5 et cortexA9 de cache L2 encore écrire en arrière + écriture allouer. Mais pas semblable au cache L1 passe automatiquement en écriture à + comme mécanisme d'écriture n'allouer. Par conséquent, chaque fois que des données sont écrites dans le cache L2, devrait être affecté à lire la taille d'une adresse de ligne cache correspondant aux données de la DDR L2 Cache, puis faire une bonne Cache opération d'écriture en ligne à partir des données L1 distribution Cache. Mais en fait les données L1 Taille du cache chaque fois qu'une opération d'écriture à la ligne Cache L2 Cache est que l'ensemble de la ligne de cache sont réécrites, afin qu'ils ne se soucient pas ce que la ligne DDR cache correspondant aux données d'adresse est en place. Ici L2 Cache directement affecté à une ligne Cache pour contenir les données L1 cache en écriture sur les données, ne vont pas lire DDR.

Et le cas ARM cortexA7 cortexA53 il y a différentes, comme le montre la figure 2.

CortexA7 cortexA53 et les données L1 Cache mécanisme similaire au précédent, mais les différentes implémentations de cache L2. Il est également un dos d'écriture + écriture allouer, mais il existe des mécanismes de détection automatique 127 Détecte adresses consécutives Cache opération d'écriture de ligne peut faire basculer automatiquement une écriture à + écriture sans affecter. 2, les données après l'adresse 0x1002000 directement écrit dans le DDR.

Selon l'analyse ci-dessus, les données relatives à l'opération d'écriture du processeur vers l'extérieur, à moins d'une certaine taille, ne fonctionne pas réellement DDR, mais en fonctionnement L2 Cache. Le tableau 1 est une comparaison des deux téléphones memset les performances du processeur à la même fréquence, ils sont utilisés ARM cortexA7 CPU et cortexA9.

Comme on peut le voir à partir des données de la table, lorsque la taille est inférieure à 10 Ko, le rendement cortexA9 est meilleure que cortexA7, cette fois, est l'accès au cache L2, les performances du processeur est déterminée par la capacité d'instructions d'émission et la capacité de pipeline d'exécution d'ordre ces capacités sont plus fortes que cortexA9 cortexA7. Dans le 10 KB < taille < Lorsque 100 KB, cortexA9 plus évident que cortexA7 bonne performance, parce que le cortexA7 a commencé à écrire directement au processus de DDR, tandis que l'accès cortexA9 encore L2 Cache. taille >  Lorsque 100 Ko, la performance cortexA9 progressivement cortexA7 feu vert, car à ce cortexA9 temps a également commencé à avoir accès à l'opération DDR, plus la taille représentait l'accès DDR, et enfin presque entièrement une visite à la DDR . A cette performance est principalement déterminée par les performances de la DDR.

2.2 adresses consécutives opération de lecture

La CPU lit la vitesse des adresses continues est un indice important qui reflète la performance de la bande passante, peut être utilisé dans le langage C comme suit:

int * src;

pour (int i = 0; i < compter; i ++)

value = * (src + i);

Cortex-A9 cortexA5 et la non-exclusive L2 mode de cache, à savoir L1 miss, DDR relues de la ligne cache seront stockés dans le cache L2. 3.

CortexA7 cortexA53 et le mode Cache L2 est exclusif, à savoir L1 miss, DDR relues de la ligne cache ne sont pas stockées dans le cache L2. Seulement lorsque la réécrite de la brosse ligne Cache L1 déposera à la L2 Cache. 4.

Plus de deux implémentations ont des avantages et des inconvénients. Ce faisant test de performance de lecture répétée, si la quantité de données est plus petite que les données L1 Taille du cache, le mode exclusif et une performance en mode non exclusif considérablement. Lorsque la quantité de données dans la taille des données cache L1 et L2 est inférieure à la taille du cache, une meilleure performance du mode non exclusif. Lorsque les données est supérieure à L2 Taille du cache, les performances du mode exclusif était un peu mieux, sauf s'il y a d'autres opérations de lecture à des opérations d'écriture, l'avantage exclusif de performances en mode est encore plus évidente, car l'opération de lecture prend moins dans ce mode de cache L2 , l'utilisation peut être affecté à d'autres opérations.

2.3 Performance Data Copy

copie des données est le comportement le plus d'accès à la mémoire commune des tests de logiciels CPU, les performances de la bande passante est la méthode de test le plus couramment utilisé. Contient des données copiées à partir de l'adresse source d'une donnée opération de lecture et une opération d'écriture de données à l'adresse cible. En général, les adresses de données sont continues. Discutées dans les deux adresses d'écriture et de lecture consécutifs opérations, ces deux propriétés qui précède détermine aussi sensiblement les performances de la copie des données.

De plus, les processus de DDR contrôleur lecture et d'écriture des données de remplacement seront également affecter les performances de la copie.

lignes d'adresse DDR en banque, ligne et colonne. Une banque ne peut être ouvert simultanément dans une rangée, mais dans une autre banque de la ligne peut être ouvert simultanément. Pour profiter de cette fonctionnalité pour optimiser l'efficacité de l'accès DDR, banque, ligne et adresse de colonne correspondant à un mode d'adresse physique sera conçu avec une variété de manière cartographique [4]. La figure 5 est un agencement d'adresses de téléphone mobile.

Supposons que pour la copie des données l'adresse source 0x100000 (correspondant à row2, BANK0), l'adresse de destination est 0x200000 (correspondant à row4, BANK0), qui correspondent à différentes lignes de la même banque. Lire un ensemble de données à partir de l'adresse source de taille cacheline, besoin d'ouvrir bank0_row2 DDR, et les données de CPU est écrit à l'adresse cible ce groupe, vous devez fermer bank0_row2, puis bank0_row4 ouvert. Dans cette lecture alternative et un processus écrit, il est proche d'une rangée de DDR et opération d'ouverture prend plus de temps.

La même copie des données fait encore si, ne pas éteindre l'bank0_row2 si l'adresse de destination dans 0x201000 (correspondant à bank1_row4), ne pas écrire à bank1_row4 directement ouvrir. Depuis la ligne et les adresses source et destination ne sont pas proches, lisez et opérations d'écriture ne doivent pas faire la ligne arrière de l'opération d'ouverture, ce qui améliore grandement les performances de la copie des données. Le tableau 2 est un téléphone mobile (en utilisant le processeur Cortex-A9) les données de test de performance à l'adresse de destination de copie des conditions différentes.

On peut voir simplement changer l'adresse de destination pour faire des copies des données de performance des adresses consécutives il y a une grande différence entre l'éviter d'adresse de lecture de la collision de copie des données des performances peut être améliorée de 31%.

Tests d'optimisation de la performance de la bande passante direction 3

Une analyse antérieure des limites actuelles des tests de performance de la bande passante de téléphonie mobile, associé au matériel conçu pour explorer les facteurs qui affectent les tests de performance de bande passante. Sur la base de ces facteurs peuvent encore être optimisés pour améliorer le mode de test de performance de la bande passante des aspects suivants:

(1) une pluralité de dispositifs maîtres accéder simultanément à la DDR, DDR possible d'atteindre une limite de bande passante. Téléphone puce principale en plus de CPU, la demande de bande passante est le plus grand GPU [5], alors que le GPU peut généralement par le fonctionnement du logiciel openGL supérieur. Des modes de réalisation de GPU peuvent être mesurées au moyen d'une pluralité de couches superposées d'opération, cette opération est faible demande pour la capacité de calcul du processeur graphique, besoins en bande passante. Dans le test, de sorte que l'exécution des données à forte intensité de CPU l'opération de copie, tandis que le GPU ne couches superposées, à la fois le temps d'achèvement réel est donné score d'évaluation de la performance de la bande passante.

(2) copier des données, un test de performance du processeur, la quantité de données est beaucoup plus grande que la taille du cache L2 ne pas affecter le cache. En plus des données continues copier l'adresse, mais augmentent également les données lues adresses discontinues de test de performance, afin de ne pas affecter la fonction de la prélecture CPU, plus refléter de manière réaliste un délai unique de la DDR. Le code C est le suivant:

int * src;

pour (int i = 0; i < compter; i + = STRIDE)

value = * (src + i);

Notez que la valeur est supérieure à deux la taille de ligne de cache STRIDE, afin de ne pas déclencher l'opération de prélecture de la ligne de cache en continu. Copier les données lisent les données de performance et une adresse de liaison discontinues adresses consécutives évaluées et notées.

(3) Effet des adresses différentes d'une étude approfondie sur les données de performance de copie, de copie de données à plusieurs reprises des opérations effectuées, chaque fois qu'un changement des données d'adresse de cible de compensation, tels que le code C suivant:

int * src, * dst;

for (int j = 0; j < loop_count; j ++)

pour (int i = 0; i < compter; i ++)

* (Dst + i + j * 0x1000) = * (src + i);

4 Conclusion

bande passante tiers débit logiciel de test de performances fournit non seulement les moyens pour les consommateurs finaux de comparer les performances des téléphones mobiles, mais fournit également une base fiable pour les fabricants de téléphones mobiles pour programmer la puce sélectionner, même les éditeurs de logiciels de conception de puces les plus en amont utiliseront également ces tests pour guider l'architecture de puce elle conçoit. L'optimisation de la bande passante débit tester les performances dans le présent document peut être plus pleinement et évaluer équitablement les performances réelles des puces de téléphonie mobile, pour accélérer la convergence des problèmes de performance de conception de puces, avec de bons résultats.

références

[1] Yang Yijun, Huang Daqing .Android outil de test de téléphone de performance automatisée de recherche et développement [J] Applications informatiques, 2012,32 (2): 554-556.

[2] WULF W A, S MCKEE A. frapper la paroi de la mémoire: implications de l'évidence [J] SIGARCH Comput Archit Nouvelles, 1995,23 (1): 20-24 ....

[3] haute Ke, Chen Li Cheng, Fan Dongrui, telles que l'allocation des ressources mémoire et de recherche de gestion [J] systèmes multicurs partagés Journal des ordinateurs, 2015,38 (5): 1021-1031.

[4] SHAO J, DAVIS B T. Le mappage d'adresses SDRAM bitreversal [J] Dans LUNETTES '05. Actes de l'Atelier 2005 sur les logiciels et compilateurs pour les systèmes embarqués, ACM, 2005: 62-71.

[5] architectures hétérogènes liées à l'examen technique Xuxin Hai, Lin Yu, Fei Wei YI .CPUGPGPU [J] génie informatique et de la Science, 2009, 8 (4): 74-76.

L'intérieur est très sec? Cela pourrait être un humidificateur frais
Précédent
Vague de froid est venu vite, plus de vêtements maintenant
Prochain
« Pacific Rim 2 » exposition première bande-annonce de l'équipe! Conduire la nouvelle génération d'armure et monstre âme brûlante imprudemment
Un procédé amélioré pour des mesures de haute précision du niveau à ultrasons
Il est la finale du drame de cette année
« Assassiner sur l'Orient Express » affiches de caractère publié Depp a conduit la carte gamme ultra-luxe Division
Qui vaincra le « virus de chantage »? La sécurité des données est un énorme milliards de valeur de marché!
OPPO c. Tencent concurrence déloyale, les concessionnaires ont reçu l'ordre d'interdire le téléphone cellulaire OPPO
Basée sur la charge moteur 3D tâche stratégie de planification d'équilibrage
« Agents de carte Trump 2 » rupture box-office mondial de 250 millions de dollars net-citoyens: beau gentleman aussi se battre
Shanghai Square Enix le restaurant prochain thème est "Dragon Quest X"
moi Cinéma | 2017 le dernier, écrièrent!
Sur la base de compensation d'extrapolation des coûts filtre FIR avec une structure améliorée
2,6 milliards! films box-office Haute Jour d'innovation 8 jours 5 les centaines de millions