Les Cortex A15 arrivent dans vos tablettes : qu’est-ce qui change ?

ARM vient de publier un communiqué de presse annonçant la disponibilité d’une implémentation « clef en main » d’un CPU ((processeur)) Cortex A15. Il possède quatre cœurs cadencés à 2 Ghz et est basé sur le processus 28 HPM, soit 28nm « High Performance for Mobile », bientôt disponible chez TSMC.

ARM est une société qui conçoit des architectures de microprocesseurs à basse consommation. Elle ne les construit pas, ni ne donne les plans précis (au transistor près) des puces. Aux constructeurs de réaliser une implémentation détaillée du processeur, de le fabriquer ou de le faire fabriquer par des « fondeurs » professionnels. Souvent, bien d’autres composants sont adjoints au CPU (GPU ((processeur graphique)), Contrôleur, Modem…) pour fabriquer un véritable « System on Chip ((aussi appelé SoC, il s’agit d’un système complet comprenant le processeur, le processeur graphique, la mémoire RAM, etc.))», sur lequel sera basé un appareil complet : tablette, téléphone, décodeur TV etc.

Toutefois, ici, ARM met à disposition une « Hard Macro » de son Cortex A15 MP4. C’est-à-dire un plan précis du CPU, réalisable directement sur une chaîne de fabrication existante (ou à venir). C’est un élément de construction qui peut être accompagné d’autres morceaux, comme un GPU Mali (le processeur graphique utilisé par Samsung sur le Note et le Galaxy S2), par exemple. En assemblant les différentes « briques » proposées par ARM, un constructeur peut, en théorie, obtenir directement un circuit utilisable et prêt à être gravé. Un gain de temps appréciable et une grosse réduction de coût côté R&D pour le client.

Il est donc intéressant de se pencher sur cette « Hard Macro » car c’est un plan qui pourrait permettre de produire un processeur Cortex A15 avant la fin de l’année. Or, ce Cortex A15 MP4 est un véritable petit monstre.

Ce quadricœur, cadencé à 2 Ghz, est censé dépasser les 20 000 DMIPS ou « Dhrystone » MIPS. C’est-à-dire les 20 000 millions d’opérations sur des entiers par seconde. C’est… beaucoup, environ deux fois et demie les performances d’un Tegra 3. Pour donner un ordre d’idée, un Core 2 Duo d’Intel ((disponible sur les PCs de bureaux et les PCs portables)) cadencé à la même fréquence frôle les 19 000 MIPS, mais consomme largement plus.

Une performance remarquable pour un processeur mobile, lointain cousin des StrongARM, sortit en 1996 et équipant les mini « tablettes » de l’époque (comme le vénérable iPAQ sous Windows Mobile) qui donnait… 240 MIPS !

L’implémentation de la référence présentée par ARM est censée être aussi économe que la précédente génération en Cortex A9. On est donc en présence d’un CPU largement assez puissant pour équiper des ordinateurs portables de milieu de gamme tout en ayant l’autonomie des meilleures tablettes actuelles. Une bonne nouvelle pour les consommateurs et un souci potentiel pour Intel, qui même avec Ivy Bridge ne pourrait soutenir la comparaison.

l’Architecture Cortex

On peut profiter de cette actualité pour essayer de mieux comprendre ce qu’est un Cortex A15 et ce qui le différencie de son prédécesseur.

En effet, si on réfléchie sur les 20 000 DMIPS annoncés par ARM, on se rend compte que pour 4 cœurs et 2 Ghz on arrive à 2,5 MIPS / Mhz par cœur. C’est-à-dire que chaque cœur A15 pourrait exécuter 2,5 instructions par cycle d’horloge. Comment fait-il pour exécuter plus d’une instruction par cycle ? Et pourquoi 2,5 et pas 2 ou 3 ?

Pour le savoir, on va commencer par se pencher sur le prédécesseur du Cortex A15, la star actuelle du monde des tablettes et des smartphones : le Cortex A9.

ARM Cortex A9

Car que l’on ai une tablette Samsung, Archos, Apple, Asus, Acer etc., on est pratiquement sûr de posséder un CPU ARM Cortex A9.

Au centre des A5/A5X, OMAP 4, Exynos 4210 ou encore Tegra 2/Tegra 3 etc., il y a en effet cette architecture de processeur qui est, comme on le constate sur le diagramme ci-dessous, déjà assez évoluée.

Alors justement, commentons ce diagramme. Il est très instructif, car représentatif de la manière dont fonctionne la plupart des CPU actuels.

Le diagramme se lit de haut en bas. En haut à droite, on trouve la mémoire cache d’instruction. Comme tous les processeurs modernes, le Cortex possède de la mémoire cache. Il y en a deux types, dites L1 et L2. Ce sont des petites zones de mémoires de seulement 64 Ko pour la L1 et de 1 Mo pour la L2. Elles servent à « faire tampon » entre le processeur et la mémoire centrale : la RAM.

Cette dernière étant très lente par rapport au processeur, la mémoire cache sert à stocker les informations les plus souvent utilisées pour éviter au maximum de faire appel à elle. Plus la mémoire est rapide, plus elle est chère. Le cache L1, très rapide est donc minuscule. Le L2, plus lent, est à peine plus gros car dans un contexte mobile, il faut économiser au maximum les transistors.

Le « Front End »

Les instructions du programme sont stockées dans leur propre partie de la mémoire cache. Elles en sont extraites par une unité « Instruction Fetch » qui détermine quelles instructions le CPU doit aller chercher. Comme on va le voir, le CPU est à même d’exécuter jusqu’à deux instructions simultanées.

Pour cela, il faut que les instructions consécutives ne comportent pas de dépendances (c’est-à-dire que la seconde ne dépende pas du résultat de la première). Si c’est le cas, cette unité peut, dans une certaine mesure, réorganiser le flot d’instructions pour tenter de les éliminer. On dit que le processeur est « Out of Order ».

Les instructions chargées sont ensuite envoyées vers le décodage. On remarque immédiatement qu’il y a deux décodeurs. On dit que le processeur est superscalaire « 2 – issues ». Jusqu’à deux instructions simultanément peuvent ainsi être décodées et envoyées vers l’ « Instruction Queue » qui va ensuite les répartir vers les unités d’exécution qui conviennent.

l’ « Execution Engine »

Il y a ensuite deux chemins possibles:

  • Soit le calcul concerne des flottants (des nombres à virgule).
  • Soit il concerne des nombres entiers ou consiste en une opération logique.

Si vous êtes un calcul sur flottants, vous allez être exécuté par l’unité VFPv3 / NEON. Si VFP est dédiée aux calculs sur les nombres à virgule, NEON est capable d’exécuter des opérations sur des vecteurs (plusieurs nombres à la fois), à l’image du SSE sur les processeurs Intel.

Si vous êtes un calcul sur des nombres entiers, ou une instruction logique (comparaisons, tests, etc…), vous prenez le second chemin, plus complexe car comprenant plusieurs types d’unités différentes : AGU, MUL et deux ALU, dont les rôles peuvent être complémentaires.

  • Les ALU : « Arithmetic and Logic Unit » se chargent des calculs « simples » (addition, soustraction, shift…), de la logique (AND, XOR…), des comparaisons, etc.
  • Les AGU : « Adress Generation Unit» calculent les adresses mémoire. Lors du chargement de données de la RAM, d’un saut dans un programme, etc., il faut déterminer l’endroit précis où se trouve l’information dans le mémoire, ce qui peut requérir des calculs spécifiques et assez élaborés. Les AGU permettent d’effectuer ces calculs très fréquents en parallèle d’autres tâches, ce qui améliore l’efficacité du processeur.
  • L’unité MUL « Multiplication », se charge des multiplications et des divisions sur les nombres entiers.

On voit donc que le CPU ne peut pas forcément exécuter deux opérations simultanément. Si on a deux additions, une addition et une multiplication, ou encore une opération entière et une opération flottante : pas de problème.

Si par contre vous avez deux multiplications ou deux opérations sur flottants, elles devront être exécutées l’une après l’autre.

Superscalaire, « 2 – issues », « out of order », opérations vectorielles… Le Cortex A9 est donc un processeur déjà assez évolué. Qu’est-ce qui change avec la nouvelle génération du Cortex A15 ?

Le Cortex A15

Nouveau processeur, nouveau diagramme. Le schéma ci-dessous nous renseigne immédiatement sur les nouveautés du A15.

Des changements qui ne sautent pas forcément aux yeux au premier abord, les deux processeurs se ressemblent et partagent une même structure générale. Néanmoins, on remarque l’ajout d’un décodeur, d’une AGU et d’une unité VFP / NEON supplémentaires. Les capacités superscalaires du Cortex A15 s’en trouvent améliorées. Par exemple, deux calculs sur des nombres à virgule peuvent désormais s’effectuer simultanément, d’où un potentiel doublement des performances dans ce domaine, par exemple.

Surtout, les trois décodeurs permettent d’avoir jusqu’à trois instructions à répartir entre les différents « organes » du CPU. Dans certains cas, par exemple deux calculs entier et une génération d’adresse,  les trois instructions seront exécutées en parallèle, là où deux au maximum pouvaient l’être avec le Cortex A9. Le Cortex A15 est donc « 3 – issue ».

En moyenne, ARM considère que 2,5 exécutions sont exécutées par cycle d’horloge sur un A15, ce qui justifie les 20 000 DMIPS du Cortex A15 MP4 décrit plus haut.

Et par rapport à mon PC de course ? 

Si on devait comparer le Cortex A15 à un processeur Intel, le Pentium III serait sans doute le plus proche. Ci-dessous, le diagramme de l’architecture P6, qui est celle des Pentium Pro, Pentium 2, et Pentium III.

On constate que l’on a également trois décodeurs, mais ils ne sont pas tous identiques. Deux sont dévolus aux instructions simples (les plus courantes) et le troisième aux instructions complexes. On retrouve deux unités de calculs entiers et des AGU (les « load », « store » AGU) etc. Néanmoins, le Pentium III n’est pas multicoeur et n’a jamais dépassé le gigahertz.

Comparons maintenant le Cortex A15 à un processeur Intel moderne, de type Core i7. Ci-dessous, le schéma de l’architecture Nehalem.

Le processeur est plus complexe, il possède 4 décodeurs, un dispatcheur plus gros couplé à un mécanisme de réordonnancement plus efficace. Il supporte aussi le SMT (hyperthreading) et le Turbo Boost, ce qui le rend très adaptable à tout type de tâche plus ou moins parallélisées. On ne parle même pas des fonctions évoluées, comme le support de la virtualisation, le 64 bits et bien sûr, trois niveaux de cache bien plus gros que les processeurs mobiles.

À fréquence égale, un cœur Core i7 peut encore être presque deux fois plus rapide qu’un Cortex A15, mais au prix d’une consommation supérieure.

Les processeurs ARM ont donc encore une marge de progression en terme de performances, mais ils se complexifient significativement et réduisent de plus en plus l’écart avec les CPU « de PC ». Rappelons que le Cortex A15 MP4 présenté par ARM est au niveau d’un Core 2 Duo. De plus, il conserve ce qui fait la force de la famille ARM: l’économie d’énergie. Intel aura donc fort à faire pour préserver sa place de leader, car les processeurs ARM 64 bits pour serveurs arrivent…

 

Source

le 6 69
-

6 Comments

  1. Très bon article, très intéressant
    Quelques remarques:
     – le Cotex A15 comme le Core i7 supporte la virtualisation, une version 64 bit est prévue (pour 2013?)
    – le nombre de décodeurs et d’unités d’éxecution n’explique pas à lui seules les différences de performance: il faut prendre en compte l’exécution out of order, différente entre le Cortex A9, A15 et le Core i7, et surtout le système mémoire

  2. Le meilleur article qui explique le fonctionnement des CPU et les différences entre le A9 et le A15, BRAVO !!!
    PS : les Cortex A15 MP4 auront une version 64bits compatible win 8…(on peut alors mettre de la RAM plus rapide (1333 MHz par exemple) et plus volumineuse (+ de 4 Go)
    Pour moi, Intel vit ses dernières années si il ne prends pas d’avance conséquente…

  3. pensez vous que ce cortex A9 pour parvenir à de tels résultats en 28nm implique ncessairement un wafer sus SOI ou ces performances peuvent elles etre obtenues même sur du bulk ?

  4. Superbe article ou plutôt dossier car à chaque fois le domaine abordé est complexe et très bien expliqué!! Merci :D

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *