Microchip, texas instrument, sont les leaders mondiaux du microcontrôleurs et ont régnés pendant longtemps sur les microcontrôleurs 8/16/32 bits.
Ceci étaient avant l’arrivé d’ARM sur le marché du microsystème 32 bits avec son architecture un peu différente des autres microcontrôleurs.
Comme on l’a dit précédement, ARM propose que des microcontrôleurs de 32 bits. Néanmois il y a différentes catégories de microcontrôleur 32 bits selon le besoin de votre projets.
Il y a trois catégories de microsystèmes ARM : Famille, embarqué et application.
Les microsystèmes 32 bits d’ARM ont une architecture type RISC. Ceci veut dire que le microsystème peut traiter des instructions 32 bits et 16 bits.
En effet, toute les instructions que l’on a besoin de faire n’ont pas besoin de toute la puissance d’un micrcocontroleur 32 bits. Il est donc parfois surpuissant par rapport à l’instruction demandé. Il est donc utile d’éxécuter ces instructions avec la partie 16 du micrôcontroleur afin d’économiser de l’énergie.
Ceci n’était pas possible avant avec les microsystèmes de microchip par exemple qui eux peuvent seulement faire des instructions 32 bits pour un microsystème et instructions 16 bits pour les microsystèmes 16 bits.
Ce qui a fait le succès, c’est el fait d’avoir deux jeux d’instructions dans un même microsystème. En effet, le microsystème 32 bits possède une architecture ARM 32 bits et un sous ensemble d’arm appelé thumb qui fait 16 bits.
Avantage de deux jeux d’instructions :
On va maintenant voir si le jeu d’instruction thumb a un impact sur les performances du microsystème par rapport
Ici on peut voir que pour des instructions 16 bits, le thumb est plus performant, avec un code plus petit que la même exécution en arm 32 bits.
Comme vous avez pu voir sur le schéma, il y a le thumb 2 qui est apparut. Celui-ci est une amélioration du jeu d’instruction thumb. D’après le schéma le thumb 2 est 25% plus rapide que le thumb et le programme est 26% plus petit que celui de l’ARM.
Finalement le thumb est un meilleur que l’arm et donc va peut peu à peu le remplacer. Vous pouvez voir sur l’image du dessous qu’à partir de la version 7 d’arm il n’y a plus d’arm 32 bit dans les processeurs embarquées mais seulement du thumb 2.
On va maintenant voir la différence entre les différentes révisions des révisions ARM :
Comme on peut voir sur l’image, les deux rectangles marquent la différence entre l’architecture ARM et le processeur ARM :
La différence entre le processeur ARM et une architecture ARM est que l’architecture possède un v dans sa référence.
Dans les carrés en gris en bas de l’image on peut voir les différents composants ajouté au processeur au fil des améliorations des versions d’architecture.
On peut notamment citer Jazelle, qui est un outils pour programmer directement en java sur le microprocesseur.
Une des révolutions des microcontrôleurs arm est qu’il puissent faire des systèmes en temps réel, c’est à dire installer des systèmes d’exploitation (Android, Linux..). Ceci est rendu possible grâce à deux composants : La Memory management unit et la mémoire cache.
La mémory management unit gère les translations d’adresses virtuel et adresse physique.
Le rôle de la MMU est de protéger les variables d’une tâche dans le cas ou une autre tâche, mal écrite ou plantée, essaye d’écrire dans un autre espace que celui qui lui été alloué, de la date (c’est à dire écraser les variables ne lui appartenant pas). On ne veut pas par exemple que word fasse planter firefox.
C’est une petite mémoire extrèmement rapide et très proche du cpu. Cette mémoire est devenu indispensable aujourd’hui et on va voir ses avantages :
La Mémoire cache est volatile, cela veut dire que quand l’ordinateur séteint la mémoire cache vide.
Les puces ARM ce sont imposé dans le monde des microsystèmes 32 bits. Ce sont des puces qui sont devenu indispensables si l’on souhaite faire du temps réels. On peut les retrouver dans des téléphones, les cartes raspberry pi…