Comment fonctionne les microsystèmes ARM ? Quelles ont leurs différences avec ceux de Microchip ?

Introduction

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.

La famille ARM

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.

 

  • La famille Classic : Ne sont plus vendu, ils sont vieillissant. La famile classic ne possède qu’un mode running et pas de mode SLEEP ni IDLE ce qui ne corresponds plus à la demande aujourd’hui car la plupart des microprocesseurs sont embarqué et donc sur batterie et la famille classic consomme trop pour cela.
  • La famille Embarqué : Il possède en plus différent mode de fonctionnement : Running, IDLE et SLEEP. Contrairement à la famille classic qui ne possède que du Running. Le ration perfomance/ consommation est optimisé car dédié à l’embarqué. Les cortex R peut faire du realTime.
  • La famille Application : Orienté  multimédia : box internet, chrome cast… 

Quelle est la différence entre les microsystèmes ARM et les autres ?

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.

 

Les deux jeux d'instructions

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 peut exécuter différente instruction et mieux optimiser la puissance par rapport à la consommation.
  • Une instruction en 16 bits prends moins de place en mémoire que celle de 32 bits.
  • Le switch entre les deux d’instructions n’est pas pénalisant en terme de performance.

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.

Le thumb 2

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.

Les architectures ARM

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 :

  • Processeur ARM :  corresponds au processeur qui est vendu par ARM. Chaque Processeur est relié à une version d’architecture ARM .
  • Architecture ARM : corresponds à la version à laquelle est sortie le processeur. Cette version est souvent lié à des fonctionnalités en plus par rapport à la version précédente.

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.

Les systèmes temps réel sur ARM

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.

  • Memory management unit

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.

  • La mémoire cache

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 :

  • Elle gardes les accès mémoires récents s’ils sont utilisé plusieurs fois dans un court labs de temps par le cpu afin de gagner du temps plutôt qu’aller chercher l’information dans la RAM qui est plus loin. On mettra dans la ram des informations que l’on va chercher un peu moins souvent.
  • Cette mémoire est le même type que celle de la ram, donc très rapide. Ce qui la rends encore plus rapide que la RAM c’est qu’elle se trouve très proche du cpu et donc peut de chemin à parcourir.
  • Le cache est en lien direct avec le cpu, donc cela réduit les besoins en bande passante du bus.
  • Comme on obtient les informations plus rapidement, le cpu a besoinde moins travailler longtemps pour une même tâche et donc cela réduit la consommation globale.

La Mémoire cache est volatile, cela veut dire que quand l’ordinateur séteint la mémoire cache vide.

Conclusion

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…