Les processeurs arm sont une famille concurente des bien connus Intel et AMD. Leur mode de fonctionnement est différent, la société Arm ltd est en charge du développement des architectures mais un grand nombre de fabriquants possèdent des licences et les implémentent.
Pour ne citer que les plus connus :
- Atmel (serie AT91)
- Samsung (series S3xxxx / S5xxxx)
- Qualcomm (serie SnapDragon)
- Texas Instrument (serie OMAP)
- Nvidia (serie Tegra)
- Freescale (serie i.MX)
Les processeurs ARM sont de type RISC (Reduced Instruction Set Computer) et possédaient jusqu'à maintenant un espace d'adressage de 32 bits seulement, alors qu'Intel et AMD produisent des processeurs x86 64 bits pour le grand public depuis plus de 10 ans.
Leur principale caractéristique est leur grand rapport puissance / consommation. Ils sont pour cela incontournables dans le monde de l'informatique embarqué. Arm ltd tente depuis peu de pénétrer le marché des serveurs, la dernière annonce en date ayant été faite par HP.
Le 27 octobre 2011, Arm ltd annonce le jeu d'instructions 64 bits ARM nommé A64, compatible avec les instructions 32 bits, au travers de sa nouvelle génération de processeurs : ARMv8.
Profitons-en pour faire un tour rapide (non exhaustif) des familles de processeurs ARM.
- ARMv1 : premier prototype (1985)
- ARMv2 : premier produit commercial (1987)
- ARMv4T : Arrivé MMU + thumb
- ARMv5TE : arrivé fonctionnalitées DSP
- ARM11 : arrivé de l'unité de calculs flottants
- Cortex-A5 (ARMv7-A) : processeurs d'applications premier de la famille ARMv7
- Cortex-A9 (ARMv7-A) : ajout du support multicore (MPCore)
- ARMv8 : Jeu d'instructions 64 bits (2011)
Cette annonce du passage en 64 bits est couplée à celle de Applied Micro qui a présenté lors du ARM techcon la première implémentation du ARMv8 : le X-Gene. Ce type de processeur n'est à priori pas orienté systèmes embarqués (avec ses 128 coeurs cadencés à 3GHz), mais de nouvelles implémentations devraient voir le jour en 2012, pour une commercialisation courant 2014...
Le jeu d'instructions ARMv8 est entièrement rétrocompatible avec celui ARMv7. Il reste en taille fixe et à 32 bits par instruction. Les changements introduits par le passage en 64 bits sont globalement circonscrits aux seules parties le nécessitant. Par exemple :
- Les General Purpose Registers sont bien entendus étendus à 64 bits.
- Passage à 31 General Purpose Registers.
- Un modèle d'exceptions entièrement revu.
- L'espace d'adressage passe à 64 bits.
- Les modules de cryptographie hardware sont améliorés.
- Le thumb2 et simd restent équivalent à l'architecture 32 bits.
En clair, un processeur ARMv8 avec un OS 64 bits sera capable de faire fonctionner des applications 32 bits en parallèle avec des applications 64 bits sans soucis.
Arm ltd précise bien que cela ne signifie pas la fin de l'architecture 32 bits. Celle ci pourra même bénéficier de certaines améliorations de l'architecture 64 bits.
Les périphériques embarqués devenant de plus en plus gourmands (et donc puissants), l'avenir nous dira comment cette nouvelle gamme de processeurs pourra suivre, voir même influencer le marché.