Intel Atom : le processeur économe

1 : Introduction 2 : Intel et la diminution de la consommation 3 : Atom Z500 et SCH (Poulsbo) 4 : Atom N200 et i945 6 : Atom : caches et FSB 7 : La gestion de la consommation : tests et théorie 8 : Atom contre Pentium E et Sempron 9 : Atom contre C7 et Celeron-M 10 : Overclocking et 3D 11 : Conclusion

Atom : in-order et HyperThreading

L’Atom utilise une nouvelle architecture mais avec d’anciennes technologies. C’est le premier x86 in-order chez Intel depuis le Pentium, en 1993 : tous les autres processeurs Intel (depuis le P6) utilisent une architecture out-of-order.

In-order : c’est quoi ?

En simplifiant, on peut considérer que le processeur reçoit les instructions une à une et les place dans son pipeline, avant de les exécuter. Dans une architecture in-order, les instructions sont exécutées dans l’ordre d’arrivée alors qu’une architecture out-of-order est capable de changer l’ordre dans le pipeline. L’avantage ? Limiter les pertes. Si par exemple on se retrouve avec une instruction de calcul simple, un accès mémoire quelconque puis un autre calcul simple, une architecture in-order va effectuer les trois opérations l’une après l’autre alors qu’en OoO le processeur pourra effectuer les deux calculs en même temps et ensuite l’accès mémoire, avec un gain de temps évident. Assez étonnamment, alors que les architectures in-order ont généralement un pipeline court, l’Atom a un pipeline de 16 étages, ce qui peut le pénaliser dans certains cas.

L’HyperThreading

L’HyperThreading est une technologie apparue avec le Pentium 4 : elle permettait de traiter deux threads de façon simultanée en utilisant les parties non utilisées du pipeline. Sans être aussi efficace que deux véritables cores, la technologie permet de faire croire à un OS que le CPU peut traiter deux threads simultanément et augmenter les performances globales de la machine. Sur l’Atom et son long pipeline couplé à une architecture in-order, l’HyperThreading est très efficace et cette technologie permet d’augmenter significativement les performances sans grever le TDP : Intel parle d’une augmentation de seulement 10 % de la consommation.

Le core d’exécution

Pour le reste, l’Atom est équipé de deux ALU (les unités capable d’effectuer les calculs en entier) et deux unités dédiés aux calculs en virgule flottante (très importantes dans les jeux, par exemple). La première ALU gère les opérations de décalage, alors que la seconde gère les sauts. Notons que les opérations de multiplication et d’addition, même en entier, sont dérivées automatiquement vers les unités FPU. La première unité FPU est simple et se limite à un additionneur alors que la seconde gère les instructions SIMD et les multiplications/divisions. Notons que la première branche est utilisée en conjonction avec la seconde pour les calculs en 128 bits (les deux branches étant en 64 bits).

Intel a optimisé les instructions de base

Si on prend le nombre de cycles nécessaire pour effectuer des instructions, on se rend compte d’une chose : certaines instructions sont rapides et d’autres sont (très) lentes. Un mov ou un add s’effectue par exemple en 1 cycle, comme sur un Core 2 Duo, alors qu’une multiplication (imul) prendra 5 cycles contre seulement 3 sur l’architecture Core. Plus gênant, une division flottante en 32 bits prend par exemple 31 cycles contre seulement 17 (soit presque deux fois moins) sur un Core 2 Duo. En pratique, et Intel l’avoue bien volontiers, l’Atom est optimisé pour exécuter rapidement les instructions de base et ce processeur néglige en partie les performances dans les instructions complexes. Ces données peuvent être vérifiées simplement avec Everest (par exemple) qui intègre un outil qui permet de mesurer les latences des instructions.

Sommaire :

  1. Introduction
  2. Intel et la diminution de la consommation
  3. Atom Z500 et SCH (Poulsbo)
  4. Atom N200 et i945
  5. Atom : in-order et HyperThreading
  6. Atom : caches et FSB
  7. La gestion de la consommation : tests et théorie
  8. Atom contre Pentium E et Sempron
  9. Atom contre C7 et Celeron-M
  10. Overclocking et 3D
  11. Conclusion