ARM7-TDMI

Cet acronyme barbare ARM7TDMI-S est en fait la contraction de:

  • ARM7: Micro à cœur RISC 32 bits de la société ARM, à architecture Von Neumann où programme et données cohabitent dans le même espace mémoire.

  • T: Cela veut dire que le jeu d'instructions 32 bits du modèle ARM peut être réduit en jeu d'instructions 16 bits (modèle Thumb).

  • D: Debbuger intégré

  • M: Multiplicateur intégré étendu, résultat 64 bits

  • I : Embedded ICE (In Circuit Emulator)

  • S: Synthétisable, et donc utilisable dans d'autres composants, sans redesign du coeur.

Une des caractéristique de cette famille de microcontrôleurs à cœur ARM7 est donc qu'il s'agit d'une machine RISC 32 bits lorsqu'elle est en mode ARM, et d'une machine RISC 16 bits lorsqu'elle est en mode Thumb.

Quelle est l'intérêt de passer à l'un ou l'autre de ces deux modes ?

Il s'agit principalement de gagner en vitesse d'exécution de code ou de gagner en place mémoire.

Le mode Thumb permet d'obtenir un code d'une taille d'environ 65% de celui obtenu en mode ARM, avec des performances d'environ 160% d'un ARM 16 bits classique [voir Preliminary data sheet du LPC2106 sur le site NXP]. Cependant, avec une mémoire 32 bits, le code ARM sera environ 40% plus rapide que le Thumb, mais d'une taille beaucoup plus importante.

A l'execution, les instructions Thumb seront cependant décompressées et exécutées en mode ARM.

Le choix entre mode ARM ou Thumb peut être fait à la compilation, mais aussi en cours d'exécution par le programme lui-même. De ce fait, il est alors possible de mixer les deux modes: Mode Thumb de façon globale, et passage en mode ARM à la volée pour accélérer certaines parties de code.

Page suivante: Pipeline