Introduction A Larchitecture ARM
Introduction A Larchitecture ARM
Introduction A Larchitecture ARM
• Micro-processeurs ARM
• Supportent 32 et 64 bits
• ARM1176JZ(F)-S: Raspberry Pi
• Cortex-A15: Nexus 10
• Beaucoup d’autres!
• http://en.wikipedia.org/wiki/List_of_applications_of_ARM_cores
Architecture des ARM (32 bits)
• Dans le cours: ARM7TDMI (architecture 32 bits
populaire)
• Registres de 32 bits
• Instructions de 32 bits
• Adresses de 32 bits
PC+4
Registres généraux
16 accessibles
« à la fois »
signaux de contrôle
Circuit de décodage
Circuit de calcul
(ALU)
MDR IR
Dans la série «Vous n’avez rien à faire ce weekend?»
http://www.megaprocessor.com
3 Affaires à Retenir Mentalement™ (ARM)
• Organisation de la mémoire
• Instructions et PC
• Registres
ARM™ #1: Organisation de la mémoire
TP1
ARM
• Taille des emplacements en • Taille des emplacements en
mémoire: 16 bits mémoire: 8 bits
0x0 78 56 34 12
0x4
ou
0x0 12 34 56 78
0x4
Big vs Little Endian
• La taille minimum d’une donnée stockée en
mémoire est habituellement 1 octet
0x4
0x4
ARM™ #2: Instructions et PC
• Combien d’adresses mémoire a-t-on besoin pour stocker une
instruction?
• chaque octet possède une adresse
• L’adresse de la prochaine
instruction à être lue
Décodage
• Donc, lors de l’exécution d’une
instruction, PC indique
l’adresse de deux instructions
plus loin! Exécution
Pipeline ARM
• Le pipeline ARM est divisé en 3
Adresse Instruction
0xC …
8 bits (byte)
16 bits (half-word )
32 bits (word )
Le registre “Program Counter” R15
• Le contenu du PC indique à quel endroit de la mémoire se trouve la prochaine
exécution que le processeur doit lire
• 2 considérations importantes:
• après chaque exécution, de combien doit-on incrémenter PC?
• PC = PC + 4
Sélection du mode
• Z: Détection de zéro
• 1 si résultat = 0, 0 autrement
• 10 + 8 = ?
• 0b1010 + 0b1000 = 0b1 0010
• Nous avons besoin d’un 5e bit pour que le résultat soit
valide, c’est le bit « carry »!
Retenue (« carry ») avec nombres signés
• -2 + 2 = ?
• 0b1110 + 0b0010 = 0b1 0000
• Le résultat est valide sur 4 bits, mais un 5e bit est activé: il y
a « carry »!
• Instructions et PC
• PC = PC+4
• Registres
• 16 registres généraux