INSTRUCTIONS_SET - Kasimashi/Systemes-embarques GitHub Wiki

ARM Instruction Set Architectures

Historique_ARM

ARM Assembly instruction sets

Les processeurs ARM suportent principalement 4 différents jeux d'instructions : Thumb, Thumb-2, ARM32, et ARM64.

  • Le jeu d'instruction ARM64 est une suite d'instructions codé sur 64 bits. Sont seulements utilisés dans des applications bureautique et les serveurs.
  • Le jeu d'instruction ARM32 est une suite d'instructions codé sur 32 bits. Il donne plus de flexibilité que le jeux d'instruction Thumb, car il possèdes plus d'opérandes et de plus de registres qui sont codés sur 32 bits. Les instructions ARM32 tournent plus rapidement que le jeux Thumb parce qu'une instruction ARM éffectue les instructions plus rapidement. Le déavantage de ce code est la densité du code qui augmente.
  • Le jeu d'instruction Thumb est une suite d'instructions codé sur 16 bits. Il permet de priviliger une densité de code imoortante (parce que ses instructions sont sur 16 bits). Ceci limite les possiblités et réduit le nombre des instructions. Cela est bénéfique en terme de taille, de coût mais aussi de longévité des batteries.
  • Le jeu d'instruction Thumb-2 est une suite d'instruction qui peuvent être coté sur 16 ou sur 32 bits. Ce jeux est un compromis entre ARM32 et Thumb, il permet de trouver le meilleur compromis entre densité et performance de code.

Le choix du jeu d'instruction se base sur un compromis entre la densité du code et la performance. La densité du code messure le taille du binaire en finalité. Un code dense signifie une taille de binaire plus basse (moins de bytes). Une densité de code importante est parfois préféré dans les systèmes embarqués car moins de mémoire est nécéssaire pour encoder le binaire. Cela a pour effet de réduire le cout et la consommation énergétique.

Ainsi le jeu d'instruction 16 bits Thumb décroit la taille du programme. Lorsque le jeu d'instruction ARM améliore la fléxibilité d'encodage. Il inclus alors plus d'opérande et améliorre les performances du système. Le jeu d'instruction Thumb-2 lui qui est un mélange des deux jeux d'instructions permet de trouver un bon compris entre l'utilisation des instructions 16 bits et 32 bits. Ce qui permet de trouver le bon compromis entre la taille du code et les performances.

Cortex-M-Instruction-SET

Instruction Encoding and Decoding

ARM possède plusieurs jeux d'instructions possibles.

Le jeu d'instruction Arm

ARM Instruction Set Encoding

Le jeu d'instruction Thumb

Thumb Instruction Set Encoding

⚠️ **GitHub.com Fallback** ⚠️