SlideShare une entreprise Scribd logo
Introduction à l’architecture
ARM
GIF-1001 Ordinateurs: Structure et Applications, Hiver
2015
Aujourd’hui
• Rappel:
• TP1: dû mardi prochain
• atelier: TP1 + micro-instructions
• Processeurs ARM
• (très rapidement) Processeurs de la famille x86
Deux approches différentes
• Tandis qu’Intel produit des microprocesseurs 8086 et
80286, des employés d’une compagnie anglaise inspirés
par les travaux de l’heure travaillent à la conception d’un
ordinateur
• En 1985, la compagnie ACORN produit un premier
processeur qui résulte de ces travaux: le Acorn RISC
Machine (ARM)
• La complexité du ARM est réduite par choix et par faute de
moyens et le jeu d’instructions est simplifié.
• Alors que le 8086 gagne en popularité, ACORN et Apple
collaborent pour fonder la compagnie ARM ltd en 1990
• ARM et Intel feront évoluer leurs produits en parallèle dans
des marchés différents
ARM
• ARM Holdings:
• développe des architectures de micro-processeurs et des jeux
d’instructions
• ne construit aucun micro-processeur comme tel! La compagnie
licencie la technologie à d’autres qui l’implémentent à leur façon
en hardware.
• clients: Apple, Nvidia, Samsung, Texas Instruments, etc…
• Micro-processeurs ARM
• Supportent 32 et 64 bits
• L’architecture la plus utilisée au monde
• 10 milliards produits en 2013
• 98% de téléphones portables contiennent au moins 1 processeur ARM
Processeurs ARM
• Plusieurs versions de processeurs, utilisées partout!
• ARM7TDMI(-S): Nintendo DS, Lego NXT
• ARM946E-S: Canon 5D Mark ii (caméra)
• ARM1176JZ(F)-S: Raspberry Pi
• Cortex-A9: Apple iPhone 4S, iPad2
• Cortex-A15: Nexus 10
• Beaucoup d’autres!
• http://en.wikipedia.org/wiki/List_of_applications_of_ARM_cores
Architecture des ARM (32 bits)
• Architecture RISC pour laquelle tout
passe par des registres
• Registres
• 16 registres généraux
• PC = 32 bits
• CPSR (statut) = 32 bits
• Instructions de 32 bits
• Accès à 232 octets (4GB) de mémoire
• “Little ou Big endian” au choix
• Opère sur 8, 16 et 32 bits
Big vs Little Endian
• La taille minimum d’une donnée stockée en mémoire est
habituellement 1 octet
• Les données ayant plusieurs octets (integer, long, float)
peuvent être stockées de 2 façons:
• “Little endian”: l’octet le moins significatif est placé à la plus
petite adresse dans la mémoire
• Intel: x86
• “Big endian”: l’octet le moins significatif est placé à la plus
haute adresse dans la mémoire
• Motorola: 68000
Architecture des ARM (suite)
• Implémentation de petite taille qui favorise une
consommation réduite d’énergie
• Accès à la mémoire régit par le contenu des
registres et par les instructions
• Instructions qui combinent décalages et opérations
logiques et arithmétiques
• Possibilité d’impliquer plusieurs registres dans une
opération à l’aide d’une seule instruction
• Exécution conditionnelle possible pour la plupart des
instructions
ARM vu par le programmeur
• Différents modes (7) d’opération sont possibles dont le:
• User mode: mode normal d’opération
• Supervisor mode: mode protégé pour les systèmes
d’exploitation
• Privileged mode: mode privilégié pour certaines tâches des
systèmes d’exploitation
• Deux jeux d’instructions sont supportés:
• Les instructions ont toutes 32 bits sauf si le jeu d’instructions
Thumb est actif
• Les instructions du mode Thumb ont 16 bits pour économiser
de la mémoire au besoin
ARM vu par le programmeur
(suite)• Format de variables:
• Octets de 8 bits (Bytes)
• Mots de 32 bits (Words)
• Demi-mots de 16 bits (Halfwords)
• Mots doubles de 64 bits (Doublewords)
• Contenu possible des registres de 32 bits:
• Adresse de 32 bits
• Nombres entiers (signés ou non) de 32 bits
• Nombres entiers (signés ou non) de 8 ou 16 bits
• Deux nombres entiers de 16 bits par registre
• Quatre nombres entiers de 8 bits par registre
• Nombres sans signe de 64 bits utilisant 2 registres
Les registres
• 16 registres de 32 bits sont disponibles:
• R0 à R12: usage général
• R13 à R15: registres “spéciaux” (voir pages suivantes)
• Le “Current Program Status Register” (CPSR) est utilisé
pour mémoriser les résultats d’opération
Le registres spéciaux R13 à
R15• R13: Pointeur de pile (Stack Pointer ou SP)
• Indique où trouver des valeurs temporaires
• À ne pas utiliser pour autre chose que pour la pile!
• R14: Registre de liens (Link Register ou LR)
• Indique à partir d’où un appel de fonction a été fait
• Sa copie dans R15 permet de poursuivre l’exécution du programme
après celle d’une fonction
• R15: Compteur de programme (Program Counter ou PC)
• Indique où se trouve l’instruction en cours
• Changer son contenu permet de faire un “branchement” dans le
programme ou un retour de fonction
Piles (“stacks”)
• Structure de données très utilisée en informatique
• Inventée par Alan Turing (1946)
Alan Turing
Imitation Game
(cette fois-ci c’est vrai!)
Piles (“stacks”)
• Structure de données “LIFO”
• LIFO = Last In, First Out
• Deux opérations principales:
• PUSH: rajoute un élément sur “le dessus” la pile
• POP: enlève un élément du “dessus” de la pile
Piles (“stacks”)
• Exemples?
• Notation Polonaise Inverse dans les calculatrices
(“RPN”)
• Algorithme pour naviguer un labyrinthe
Le “Stack Pointer” R13
• Par convention, on définit un bloc de mémoire qu’on nomme “pile”
(stack)
• La pile est utilisée pour sauvegarder temporairement des valeurs de
travail
• exemples: variables locales, paramètres et valeurs de retour des fonctions
• Le Stack Pointer contient une adresse de la pile à laquelle on peut
écrire ou lire une valeur
• Comme changer la valeur de SP directement peut être dangereux
(il ne faut pas perdre la trace de la pile!), on procède plutôt en
l’augmentant (“push”) ou en la diminuant (“pop”) à l’aide
d’instructions dédiées
• Un usage hors-norme de SP ne peut que causer des problèmes si
on n’a pas le plein contrôle du programme
Appel de fonction simple (sans
paramètres)
• Mnémonique assembleur indique un appel de
fonction (ex: CALL maFonction)
• maFonction:
• INST 1 ; première instruction
• … ; liste d’instructions
• RET ; “return”, indique que la fonction est terminée
• Il suffirait de modifier le PC pour le mettre à
l’adresse correspondant aux instructions de
“maFonction”
• Cependant, que faire lorsque l’on parvient à RET?
Où doit-on revenir?
Le Link Register R14
• Un appel de fonction à l’aide d’instructions dédiées entraîne
un changement de la valeur du Program Counter
• Un retour de fonction ne peut se faire que si PC reprend sa
valeur d’avant l’appel de la fonction
• Par convention, le Link Register est utilisé pour sauvegarder
l’adresse de retour pendant l’exécution de la fonction
• Mettre la valeur de LR dans PC commande un retour de
fonction
• Utiliser LR à d’autres fins ne peut que causer des problèmes
si on n’a pas le plein contrôle du programme
• L’appel d’une fonction par une fonction commande une
gestion de LR qui se fait avec la pile par convention
Registres d’usage général
• Gestion des nombres signés ou non à 8, 16 ou 32
bits
• Les calculs sont faits à 32 bits et la gestion des
valeurs plus petites est logicielle
08 716 1524 2331
8 bits (byte)
16 bits (half-word )
32 bits (word )
Sélection du mode
Registre de statut (CPSR)
• Un registre de statut décrit l’état du processeur
Dépassement (overflow)
Retenue (carry/borrow )
Valeur nulle (zero)
Nombre négatif (negative )
Thumb actif
FIQ inactif
IRQ inactif
CPSR: Détection de
conditions• N: Détection de signe négatif
• 1 si résultat < 0, 0 autrement
• Z: Détection de zéro
• 1 si résultat = 0, 0 autrement
• Souvent utilisé pour détecter les égalités
• C: Détection de retenue (“carry)” ou d’emprunt (“borrow”)
• 1 si l’opération a impliqué une retenue
• Ex. retenue d’addition de nombres positifs
• V: Détection de dépassements (overflow)
• 1 si l’opération a impliqué un dépassement
• Ex. dépassement signé lors d’une addition
Registre de statut (CPSR)
(suite)• Plusieurs mode peuvent être définis
• Les instructions permises varient selon le mode en
cours
Les instructions du ARM
• Instructions de 32 bits sauf dans le mode Thumb où elles ont
toutes 16 bits
• Exécution des instructions conditionnelles dans tous les cas
• Possibilité d’affecter le contenu de plusieurs registres en une
seule opération
• Possibilité de combiner des opérations logiques et arithmétiques
en une seule instruction
Exemple d’instructions
Les jeux d’instructions ARM
(1/2)
• Plusieurs jeux d’instructions sont supportés en
fonction du processeur (il y a plusieurs processeurs
ARM: ARM7, ARM Cortex M0, ARM Cortex M3…):
• ARM: 32 bits, 58 instructions principales, accès
simultané à l’unité de calcul et à l’unité de décalage des
mots, 15 registres d’usage général
• Thumb: 16 bits (supporte aussi les instructions ARM sur
32 bits), 30 instructions principales, pas d’accès
simultané aux unités de calcul et de décalage, 8
registres d’usage général, pas d’accès direct au CPSR
Les jeux d’instructions ARM
(2/2)
• Thumb2
• Un mélange de Thumbs et d’ARM.
• Supporte des instructions Thumbs 16 bits et des
instructions ARM 32 bits.
• L’opcode à l’intérieur des 16 premiers bits détermine la
longueur de l’instruction.
• Jazelle
• 8 bits, instructions reconnues et traitées par une partie
du processeur conçue pour accélérer l’exécution du code
écrit en Java
Questions?
Architecture x86
Architecture Intel
• Le 8086 est représentatif des
principes qui orientent la conception
des processeurs Intel
• Registre de 16 bits
• Combinaison du contenu décalé
d’un registre de 16 bits à celui d’un
autre pour créer des adresses de
20 bits
• Gère 64k à la fois à l’aide des
concepts de segments et de pages
• Architecture CISC à instructions de
longueur variable
Registres et statut
• De la même manière que les instructions sont conçues
pour répondre aux besoins, les registres sont conçus en
fonction des instructions et des besoins
• Des registres de 8 bits pourront être combinés pour faire
des registres de 16 bits
Tiré du didacticiel de EMU8086
Les principaux registres
• AX: Registre accumulateur de 16 bits (AH et AL)
• BX: Registre d'adresses de base de 16 bits (BH et BL)
• CX: Registre compteur de 16 bits (CH et CL).
• DX: Registre de données de 16 bits (DH et DL).
• SI: Registre d'index source de 16 bits.
• DI: Registre d'index destination de 16 bits.
• BP: Registre pointeur de base de 16 bits.
• SP: Registre pointeur de pile de 16 bits.
• IP: Registre pointeur d’instructions de 16 bits
Le registre de statut
• Carry Flag (CF): indique s’il y a retenue ou pas
• Zero Flag (ZF): indique si l’opération a donné zéro
• Sign Flag (SF): indique si le résultat est négatif
• Overflow Flag (OF): indique s’il y a eu dépassement
• Parity Flag (PF): indique si le nombre de 1 est pair
• Auxiliary Flag (AF): indique s’il y a retenue sur 4bits
• Interrupt enable Flag (IF): indique si les interruptions sont
permises
• Direction Flag (DF): se rapporte à la façon de traiter les
chaînes de caractères dans certains cas
Les successeurs du 8086
• La compatibilité avec le matériel déjà existant a
toujours fait l’objet d’attentions chez Intel
• L’architecture des processeurs modernes reprend
donc plusieurs éléments du 8086
• Des ajouts ont été faits pour améliorer les
performances
• Les principes et concepts liés aux accumulateurs et
aux pages et segments de données demeurent en
vigueur
Sommaire
• L’architecture des processeurs ARM reprend les
principes qui s’appliquent aux RISC tandis que les
processeurs dérivés du 8086 d’Intel sont de type
CISC
• La tendance est d’opter pour la simplicité de
l’architecture, des registres et des jeux d’instructions
quand il est question de RISC tandis que le format
et la nature des registres des CISC sont d’une
complexité qui va de pair avec celles de leurs jeux
d’instructions
• La simplicité des RISC facilitera la mise en place de
solutions qui ne consomment pas beaucoup
d’énergie

Contenu connexe

Tendances

Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeurs
Sana Aroussi
 
Arduino cottenceau1112
Arduino cottenceau1112Arduino cottenceau1112
Arduino cottenceau1112
Hafid Moujane
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
TheCrazyMan
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
sunprass
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84
guest1e7b02
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
Sana Aroussi
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
Peronnin Eric
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
Karim Touati
 
Programmation En Langage Pl7 2
Programmation En Langage Pl7 2Programmation En Langage Pl7 2
Programmation En Langage Pl7 2
youri59490
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
Hajer Dahech
 
Assembleur
AssembleurAssembleur
Assembleur
sarah Benmerzouk
 
Cours asm (1)
Cours asm (1)Cours asm (1)
Cours asm (1)
sunprass
 
Microcontroleur
MicrocontroleurMicrocontroleur
Microcontroleur
Nic St Lawrence
 
Assembleur i8086
Assembleur i8086Assembleur i8086
Assembleur i8086
ahmedyes
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptions
Sana Aroussi
 
PréSentation Tsx37
PréSentation Tsx37PréSentation Tsx37
PréSentation Tsx37
youri59490
 

Tendances (20)

Chapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeursChapitre ii architecture interne des processeurs
Chapitre ii architecture interne des processeurs
 
Arduino cottenceau1112
Arduino cottenceau1112Arduino cottenceau1112
Arduino cottenceau1112
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 
Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84
 
Cours pics16 f877
Cours pics16 f877Cours pics16 f877
Cours pics16 f877
 
Microcontroleurs
MicrocontroleursMicrocontroleurs
Microcontroleurs
 
T ps dsp
T ps dspT ps dsp
T ps dsp
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
 
Microcontrôleur
MicrocontrôleurMicrocontrôleur
Microcontrôleur
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
 
Programmation En Langage Pl7 2
Programmation En Langage Pl7 2Programmation En Langage Pl7 2
Programmation En Langage Pl7 2
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
 
Assembleur
AssembleurAssembleur
Assembleur
 
Cours asm (1)
Cours asm (1)Cours asm (1)
Cours asm (1)
 
Microcontroleur
MicrocontroleurMicrocontroleur
Microcontroleur
 
Final
FinalFinal
Final
 
Assembleur i8086
Assembleur i8086Assembleur i8086
Assembleur i8086
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptions
 
PréSentation Tsx37
PréSentation Tsx37PréSentation Tsx37
PréSentation Tsx37
 

Similaire à 8. introduction a larchitecture arm

pic16f84-200306072553.pdf
pic16f84-200306072553.pdfpic16f84-200306072553.pdf
pic16f84-200306072553.pdf
Abdo Brahmi
 
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
josue25052001
 
003404788(1).pptx
003404788(1).pptx003404788(1).pptx
003404788(1).pptx
KamalZeghdar
 
Chapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptxChapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptx
FazaTabbana1
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------
NasriMohsen2
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptx
SihemNasri3
 
cours_AzabouMaha_GIINF_chap1-2020-2021.pptx
cours_AzabouMaha_GIINF_chap1-2020-2021.pptxcours_AzabouMaha_GIINF_chap1-2020-2021.pptx
cours_AzabouMaha_GIINF_chap1-2020-2021.pptx
GhorbelOmar2
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdf
AliRami3
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
Pôle Systematic Paris-Region
 
Ch9 miasm
Ch9 miasmCh9 miasm
Ch9 miasm
mickel iron
 
Architecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurArchitecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseur
Abdoulaye Dieng
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
mohamedsaidi212001
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
Abdo Brahmi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
Abdo Brahmi
 
Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655
Abdo Brahmi
 
Chapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdf
Chapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdfChapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdf
Chapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdf
AhmedJguirim
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
Alexandru Radovici
 

Similaire à 8. introduction a larchitecture arm (20)

pic16f84-200306072553.pdf
pic16f84-200306072553.pdfpic16f84-200306072553.pdf
pic16f84-200306072553.pdf
 
Coursdsp tdi
Coursdsp tdiCoursdsp tdi
Coursdsp tdi
 
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt
 
003404788(1).pptx
003404788(1).pptx003404788(1).pptx
003404788(1).pptx
 
Chapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptxChapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptx
 
dsp.ppt
dsp.pptdsp.ppt
dsp.ppt
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------
 
Cours Systemes embarques.pptx
Cours Systemes embarques.pptxCours Systemes embarques.pptx
Cours Systemes embarques.pptx
 
cours_AzabouMaha_GIINF_chap1-2020-2021.pptx
cours_AzabouMaha_GIINF_chap1-2020-2021.pptxcours_AzabouMaha_GIINF_chap1-2020-2021.pptx
cours_AzabouMaha_GIINF_chap1-2020-2021.pptx
 
Cours de PIC Généralités.pdf
Cours de PIC Généralités.pdfCours de PIC Généralités.pdf
Cours de PIC Généralités.pdf
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
 
Ch9 miasm
Ch9 miasmCh9 miasm
Ch9 miasm
 
Architecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseurArchitecture des ordinateurs : microprocesseur
Architecture des ordinateurs : microprocesseur
 
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDFDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
FDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
 
Sujet 6
Sujet 6Sujet 6
Sujet 6
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655
 
Chapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdf
Chapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdfChapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdf
Chapitrdfdfdfddddddddddddddddddddddddddddddddddddde3.pdf
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
 

Dernier

MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptxMARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
Martin M Flynn
 
Formation M2i - Attitude constructive : développer l'art de l'optimisme
Formation M2i - Attitude constructive : développer l'art de l'optimismeFormation M2i - Attitude constructive : développer l'art de l'optimisme
Formation M2i - Attitude constructive : développer l'art de l'optimisme
M2i Formation
 
1eT Revolutions Empire Revolution Empire
1eT Revolutions Empire Revolution Empire1eT Revolutions Empire Revolution Empire
1eT Revolutions Empire Revolution Empire
NadineHG
 
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
mcevapi3
 
La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...
La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...
La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...
Editions La Dondaine
 
Burkina Faso libraries newsletter for June 2024
Burkina Faso libraries newsletter for June 2024Burkina Faso libraries newsletter for June 2024
Burkina Faso libraries newsletter for June 2024
Friends of African Village Libraries
 
Zineb Mekouar.pptx Écrivaine marocaine
Zineb Mekouar.pptx   Écrivaine  marocaineZineb Mekouar.pptx   Écrivaine  marocaine
Zineb Mekouar.pptx Écrivaine marocaine
Txaruka
 
A2-Critiques-gastronomiques activités critiques
A2-Critiques-gastronomiques activités critiquesA2-Critiques-gastronomiques activités critiques
A2-Critiques-gastronomiques activités critiques
lebaobabbleu
 
A2-Faire-une-appreciation positive et/ou négative (A2)
A2-Faire-une-appreciation positive et/ou négative (A2)A2-Faire-une-appreciation positive et/ou négative (A2)
A2-Faire-une-appreciation positive et/ou négative (A2)
lebaobabbleu
 
Microbiologie: le monde microbien et les techniques de mise en évidence.
Microbiologie: le monde microbien et les techniques de mise en évidence.Microbiologie: le monde microbien et les techniques de mise en évidence.
Microbiologie: le monde microbien et les techniques de mise en évidence.
MahouwetinJacquesGBO
 
apprendre-a-programmer-avec-python-3.pdf
apprendre-a-programmer-avec-python-3.pdfapprendre-a-programmer-avec-python-3.pdf
apprendre-a-programmer-avec-python-3.pdf
kamouzou878
 
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
dokposeverin
 
MS-203 Microsoft 365 Messaging Study Guide to prepare the certification
MS-203 Microsoft 365 Messaging Study Guide to prepare the certificationMS-203 Microsoft 365 Messaging Study Guide to prepare the certification
MS-203 Microsoft 365 Messaging Study Guide to prepare the certification
OlivierLumeau1
 

Dernier (13)

MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptxMARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
MARTYRS DE HOLLANDE - La révolte hollandaise et les guerres de religion..pptx
 
Formation M2i - Attitude constructive : développer l'art de l'optimisme
Formation M2i - Attitude constructive : développer l'art de l'optimismeFormation M2i - Attitude constructive : développer l'art de l'optimisme
Formation M2i - Attitude constructive : développer l'art de l'optimisme
 
1eT Revolutions Empire Revolution Empire
1eT Revolutions Empire Revolution Empire1eT Revolutions Empire Revolution Empire
1eT Revolutions Empire Revolution Empire
 
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
[218_phot_d'Autriche-Hongrie_et_des_[...]Vaffier_Hubert_btv1b8594559c.pdf
 
La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...
La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...
La Révolution Bénédictine Casadéenne du Livradois-Forez: De Charlemagne à Fra...
 
Burkina Faso libraries newsletter for June 2024
Burkina Faso libraries newsletter for June 2024Burkina Faso libraries newsletter for June 2024
Burkina Faso libraries newsletter for June 2024
 
Zineb Mekouar.pptx Écrivaine marocaine
Zineb Mekouar.pptx   Écrivaine  marocaineZineb Mekouar.pptx   Écrivaine  marocaine
Zineb Mekouar.pptx Écrivaine marocaine
 
A2-Critiques-gastronomiques activités critiques
A2-Critiques-gastronomiques activités critiquesA2-Critiques-gastronomiques activités critiques
A2-Critiques-gastronomiques activités critiques
 
A2-Faire-une-appreciation positive et/ou négative (A2)
A2-Faire-une-appreciation positive et/ou négative (A2)A2-Faire-une-appreciation positive et/ou négative (A2)
A2-Faire-une-appreciation positive et/ou négative (A2)
 
Microbiologie: le monde microbien et les techniques de mise en évidence.
Microbiologie: le monde microbien et les techniques de mise en évidence.Microbiologie: le monde microbien et les techniques de mise en évidence.
Microbiologie: le monde microbien et les techniques de mise en évidence.
 
apprendre-a-programmer-avec-python-3.pdf
apprendre-a-programmer-avec-python-3.pdfapprendre-a-programmer-avec-python-3.pdf
apprendre-a-programmer-avec-python-3.pdf
 
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
Manuel-5.-Elevage-de-poisson-chat-africain-Clarias-gariepinus-en-bacs-hors-so...
 
MS-203 Microsoft 365 Messaging Study Guide to prepare the certification
MS-203 Microsoft 365 Messaging Study Guide to prepare the certificationMS-203 Microsoft 365 Messaging Study Guide to prepare the certification
MS-203 Microsoft 365 Messaging Study Guide to prepare the certification
 

8. introduction a larchitecture arm

  • 1. Introduction à l’architecture ARM GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015
  • 2. Aujourd’hui • Rappel: • TP1: dû mardi prochain • atelier: TP1 + micro-instructions • Processeurs ARM • (très rapidement) Processeurs de la famille x86
  • 3. Deux approches différentes • Tandis qu’Intel produit des microprocesseurs 8086 et 80286, des employés d’une compagnie anglaise inspirés par les travaux de l’heure travaillent à la conception d’un ordinateur • En 1985, la compagnie ACORN produit un premier processeur qui résulte de ces travaux: le Acorn RISC Machine (ARM) • La complexité du ARM est réduite par choix et par faute de moyens et le jeu d’instructions est simplifié. • Alors que le 8086 gagne en popularité, ACORN et Apple collaborent pour fonder la compagnie ARM ltd en 1990 • ARM et Intel feront évoluer leurs produits en parallèle dans des marchés différents
  • 4. ARM • ARM Holdings: • développe des architectures de micro-processeurs et des jeux d’instructions • ne construit aucun micro-processeur comme tel! La compagnie licencie la technologie à d’autres qui l’implémentent à leur façon en hardware. • clients: Apple, Nvidia, Samsung, Texas Instruments, etc… • Micro-processeurs ARM • Supportent 32 et 64 bits • L’architecture la plus utilisée au monde • 10 milliards produits en 2013 • 98% de téléphones portables contiennent au moins 1 processeur ARM
  • 5. Processeurs ARM • Plusieurs versions de processeurs, utilisées partout! • ARM7TDMI(-S): Nintendo DS, Lego NXT • ARM946E-S: Canon 5D Mark ii (caméra) • ARM1176JZ(F)-S: Raspberry Pi • Cortex-A9: Apple iPhone 4S, iPad2 • Cortex-A15: Nexus 10 • Beaucoup d’autres! • http://en.wikipedia.org/wiki/List_of_applications_of_ARM_cores
  • 6. Architecture des ARM (32 bits) • Architecture RISC pour laquelle tout passe par des registres • Registres • 16 registres généraux • PC = 32 bits • CPSR (statut) = 32 bits • Instructions de 32 bits • Accès à 232 octets (4GB) de mémoire • “Little ou Big endian” au choix • Opère sur 8, 16 et 32 bits
  • 7. Big vs Little Endian • La taille minimum d’une donnée stockée en mémoire est habituellement 1 octet • Les données ayant plusieurs octets (integer, long, float) peuvent être stockées de 2 façons: • “Little endian”: l’octet le moins significatif est placé à la plus petite adresse dans la mémoire • Intel: x86 • “Big endian”: l’octet le moins significatif est placé à la plus haute adresse dans la mémoire • Motorola: 68000
  • 8. Architecture des ARM (suite) • Implémentation de petite taille qui favorise une consommation réduite d’énergie • Accès à la mémoire régit par le contenu des registres et par les instructions • Instructions qui combinent décalages et opérations logiques et arithmétiques • Possibilité d’impliquer plusieurs registres dans une opération à l’aide d’une seule instruction • Exécution conditionnelle possible pour la plupart des instructions
  • 9. ARM vu par le programmeur • Différents modes (7) d’opération sont possibles dont le: • User mode: mode normal d’opération • Supervisor mode: mode protégé pour les systèmes d’exploitation • Privileged mode: mode privilégié pour certaines tâches des systèmes d’exploitation • Deux jeux d’instructions sont supportés: • Les instructions ont toutes 32 bits sauf si le jeu d’instructions Thumb est actif • Les instructions du mode Thumb ont 16 bits pour économiser de la mémoire au besoin
  • 10. ARM vu par le programmeur (suite)• Format de variables: • Octets de 8 bits (Bytes) • Mots de 32 bits (Words) • Demi-mots de 16 bits (Halfwords) • Mots doubles de 64 bits (Doublewords) • Contenu possible des registres de 32 bits: • Adresse de 32 bits • Nombres entiers (signés ou non) de 32 bits • Nombres entiers (signés ou non) de 8 ou 16 bits • Deux nombres entiers de 16 bits par registre • Quatre nombres entiers de 8 bits par registre • Nombres sans signe de 64 bits utilisant 2 registres
  • 11. Les registres • 16 registres de 32 bits sont disponibles: • R0 à R12: usage général • R13 à R15: registres “spéciaux” (voir pages suivantes) • Le “Current Program Status Register” (CPSR) est utilisé pour mémoriser les résultats d’opération
  • 12. Le registres spéciaux R13 à R15• R13: Pointeur de pile (Stack Pointer ou SP) • Indique où trouver des valeurs temporaires • À ne pas utiliser pour autre chose que pour la pile! • R14: Registre de liens (Link Register ou LR) • Indique à partir d’où un appel de fonction a été fait • Sa copie dans R15 permet de poursuivre l’exécution du programme après celle d’une fonction • R15: Compteur de programme (Program Counter ou PC) • Indique où se trouve l’instruction en cours • Changer son contenu permet de faire un “branchement” dans le programme ou un retour de fonction
  • 13. Piles (“stacks”) • Structure de données très utilisée en informatique • Inventée par Alan Turing (1946) Alan Turing Imitation Game (cette fois-ci c’est vrai!)
  • 14. Piles (“stacks”) • Structure de données “LIFO” • LIFO = Last In, First Out • Deux opérations principales: • PUSH: rajoute un élément sur “le dessus” la pile • POP: enlève un élément du “dessus” de la pile
  • 15. Piles (“stacks”) • Exemples? • Notation Polonaise Inverse dans les calculatrices (“RPN”) • Algorithme pour naviguer un labyrinthe
  • 16. Le “Stack Pointer” R13 • Par convention, on définit un bloc de mémoire qu’on nomme “pile” (stack) • La pile est utilisée pour sauvegarder temporairement des valeurs de travail • exemples: variables locales, paramètres et valeurs de retour des fonctions • Le Stack Pointer contient une adresse de la pile à laquelle on peut écrire ou lire une valeur • Comme changer la valeur de SP directement peut être dangereux (il ne faut pas perdre la trace de la pile!), on procède plutôt en l’augmentant (“push”) ou en la diminuant (“pop”) à l’aide d’instructions dédiées • Un usage hors-norme de SP ne peut que causer des problèmes si on n’a pas le plein contrôle du programme
  • 17. Appel de fonction simple (sans paramètres) • Mnémonique assembleur indique un appel de fonction (ex: CALL maFonction) • maFonction: • INST 1 ; première instruction • … ; liste d’instructions • RET ; “return”, indique que la fonction est terminée • Il suffirait de modifier le PC pour le mettre à l’adresse correspondant aux instructions de “maFonction” • Cependant, que faire lorsque l’on parvient à RET? Où doit-on revenir?
  • 18. Le Link Register R14 • Un appel de fonction à l’aide d’instructions dédiées entraîne un changement de la valeur du Program Counter • Un retour de fonction ne peut se faire que si PC reprend sa valeur d’avant l’appel de la fonction • Par convention, le Link Register est utilisé pour sauvegarder l’adresse de retour pendant l’exécution de la fonction • Mettre la valeur de LR dans PC commande un retour de fonction • Utiliser LR à d’autres fins ne peut que causer des problèmes si on n’a pas le plein contrôle du programme • L’appel d’une fonction par une fonction commande une gestion de LR qui se fait avec la pile par convention
  • 19. Registres d’usage général • Gestion des nombres signés ou non à 8, 16 ou 32 bits • Les calculs sont faits à 32 bits et la gestion des valeurs plus petites est logicielle 08 716 1524 2331 8 bits (byte) 16 bits (half-word ) 32 bits (word )
  • 20. Sélection du mode Registre de statut (CPSR) • Un registre de statut décrit l’état du processeur Dépassement (overflow) Retenue (carry/borrow ) Valeur nulle (zero) Nombre négatif (negative ) Thumb actif FIQ inactif IRQ inactif
  • 21. CPSR: Détection de conditions• N: Détection de signe négatif • 1 si résultat < 0, 0 autrement • Z: Détection de zéro • 1 si résultat = 0, 0 autrement • Souvent utilisé pour détecter les égalités • C: Détection de retenue (“carry)” ou d’emprunt (“borrow”) • 1 si l’opération a impliqué une retenue • Ex. retenue d’addition de nombres positifs • V: Détection de dépassements (overflow) • 1 si l’opération a impliqué un dépassement • Ex. dépassement signé lors d’une addition
  • 22. Registre de statut (CPSR) (suite)• Plusieurs mode peuvent être définis • Les instructions permises varient selon le mode en cours
  • 23. Les instructions du ARM • Instructions de 32 bits sauf dans le mode Thumb où elles ont toutes 16 bits • Exécution des instructions conditionnelles dans tous les cas • Possibilité d’affecter le contenu de plusieurs registres en une seule opération • Possibilité de combiner des opérations logiques et arithmétiques en une seule instruction Exemple d’instructions
  • 24. Les jeux d’instructions ARM (1/2) • Plusieurs jeux d’instructions sont supportés en fonction du processeur (il y a plusieurs processeurs ARM: ARM7, ARM Cortex M0, ARM Cortex M3…): • ARM: 32 bits, 58 instructions principales, accès simultané à l’unité de calcul et à l’unité de décalage des mots, 15 registres d’usage général • Thumb: 16 bits (supporte aussi les instructions ARM sur 32 bits), 30 instructions principales, pas d’accès simultané aux unités de calcul et de décalage, 8 registres d’usage général, pas d’accès direct au CPSR
  • 25. Les jeux d’instructions ARM (2/2) • Thumb2 • Un mélange de Thumbs et d’ARM. • Supporte des instructions Thumbs 16 bits et des instructions ARM 32 bits. • L’opcode à l’intérieur des 16 premiers bits détermine la longueur de l’instruction. • Jazelle • 8 bits, instructions reconnues et traitées par une partie du processeur conçue pour accélérer l’exécution du code écrit en Java
  • 28. Architecture Intel • Le 8086 est représentatif des principes qui orientent la conception des processeurs Intel • Registre de 16 bits • Combinaison du contenu décalé d’un registre de 16 bits à celui d’un autre pour créer des adresses de 20 bits • Gère 64k à la fois à l’aide des concepts de segments et de pages • Architecture CISC à instructions de longueur variable
  • 29. Registres et statut • De la même manière que les instructions sont conçues pour répondre aux besoins, les registres sont conçus en fonction des instructions et des besoins • Des registres de 8 bits pourront être combinés pour faire des registres de 16 bits Tiré du didacticiel de EMU8086
  • 30. Les principaux registres • AX: Registre accumulateur de 16 bits (AH et AL) • BX: Registre d'adresses de base de 16 bits (BH et BL) • CX: Registre compteur de 16 bits (CH et CL). • DX: Registre de données de 16 bits (DH et DL). • SI: Registre d'index source de 16 bits. • DI: Registre d'index destination de 16 bits. • BP: Registre pointeur de base de 16 bits. • SP: Registre pointeur de pile de 16 bits. • IP: Registre pointeur d’instructions de 16 bits
  • 31. Le registre de statut • Carry Flag (CF): indique s’il y a retenue ou pas • Zero Flag (ZF): indique si l’opération a donné zéro • Sign Flag (SF): indique si le résultat est négatif • Overflow Flag (OF): indique s’il y a eu dépassement • Parity Flag (PF): indique si le nombre de 1 est pair • Auxiliary Flag (AF): indique s’il y a retenue sur 4bits • Interrupt enable Flag (IF): indique si les interruptions sont permises • Direction Flag (DF): se rapporte à la façon de traiter les chaînes de caractères dans certains cas
  • 32. Les successeurs du 8086 • La compatibilité avec le matériel déjà existant a toujours fait l’objet d’attentions chez Intel • L’architecture des processeurs modernes reprend donc plusieurs éléments du 8086 • Des ajouts ont été faits pour améliorer les performances • Les principes et concepts liés aux accumulateurs et aux pages et segments de données demeurent en vigueur
  • 33. Sommaire • L’architecture des processeurs ARM reprend les principes qui s’appliquent aux RISC tandis que les processeurs dérivés du 8086 d’Intel sont de type CISC • La tendance est d’opter pour la simplicité de l’architecture, des registres et des jeux d’instructions quand il est question de RISC tandis que le format et la nature des registres des CISC sont d’une complexité qui va de pair avec celles de leurs jeux d’instructions • La simplicité des RISC facilitera la mise en place de solutions qui ne consomment pas beaucoup d’énergie

Notes de l'éditeur

  1. Pourquoi l’oeuf? différence entre 2 royaumes dans les “Voyages de Gulliver” de Jonathan Swift — 100 ans de guerre TABLEAU (p. 11)
  2. TABLEAU (p. 11)
  3. TABLEAU (p. 11)
  4. L’architecture Intel: le 8086 -Le 8086 a des registres de 16 bits et peut adresser 1Mo de mémoire (20 bits d’adresse). La mémoire est externe au CPU. -Le 8086 gère 4 segments de 64Ko. -Le 8086 a une architecture CISC. Chaque instruction du 8086 a une longueur qui lui est propre. -L’horloge du 8086 peut être 5, 8 ou 10MHz. Un cycle du CPU vaut 6 coups d’horloge. -Une instruction de CPU peut habituellement être exécutée par cycle (En fonction de l’instruction) -Le 8086 a 40broches. 20 broches servent de bus d’adresses et 16 broches servent de bus de données. -Afin de minimiser le nombre de broches, les 16 broches de données sont aussi des lignes d’adresse. -Lors d’une opération d’écriture ou de le lecture de la mémoire, les 16 broches communes (adresses et données) sont tour à tour des adresses, puis des données. -Les autres broches du 8086 servent au contrôle des bus (Interruptions, Read, Write, I/Os versus mémoire, etc.) ou à l’opération du 8086 (alimentation, horloge, reset).