Systèmes à Microprocesseurs Cycle Ingénieur Troisième Année Polytech’Nice Sophi
Systèmes à Microprocesseurs Cycle Ingénieur Troisième Année Polytech’Nice Sophia - Département Electronique - Université de Nice Sophia Antipolis - S. Bilavarn - 1 - Polytech Nice Sophia - Dpt Ingénierie des Systèmes Electroniques - Université Côte d’Azur - S. Bilavarn - 1 - Sébastien Bilavarn Cycle Ingénieur Troisième Année Plan Ch1 – Représentation de l’information Ch2 – ARM Instruction Set Architecture Ch3 – Accès aux données Ch4 – Programmation structurée Ch5 – Cycle d’exécution Polytech’Nice Sophia - Département Electronique - Université de Nice Sophia Antipolis - S. Bilavarn - 2 - Polytech Nice Sophia - Dpt Ingénierie des Systèmes Electroniques - Université Côte d’Azur - S. Bilavarn - 2 - Ch5 – Cycle d’exécution Ch6 – Codage binaire Ch7 – Microcontrôleur ARM Cortex-M ARM Instruction Set Architecture Polytech’Nice Sophia - Département Electronique - Université de Nice Sophia Antipolis - S. Bilavarn - 3 - Polytech Nice Sophia - Dpt Ingénierie des Systèmes Electroniques - Université Côte d’Azur - S. Bilavarn - 3 - Caractéristiques du processeur Unité de traitement Jeu d’instruction Structure d’un programme assembleur Exemple Microprocesseur 16-bit MOV RA, #3 Polytech’Nice Sophia - Département Electronique - Université de Nice Sophia Antipolis - S. Bilavarn - 4 - Polytech Nice Sophia - Dpt Ingénierie des Systèmes Electroniques - Université Côte d’Azur - S. Bilavarn - 4 - MOV RA, #3 00000011 Architecture ARM7 TDMI Processeur 32-bit UAL 32-bit File de registres Registre à décalage Multiplieur 32x8 Polytech’Nice Sophia - Département Electronique - Université de Nice Sophia Antipolis - S. Bilavarn - 5 - Polytech Nice Sophia - Dpt Ingénierie des Systèmes Electroniques - Université Côte d’Azur - S. Bilavarn - 5 - Multiplieur 32x8 Instruction Set Architecture Architecture Structure Instructions Le fonctionnement est lié à l’architecture Le jeu d’instruction et son utilisation sont étroitement Polytech’Nice Sophia - Département Electronique - Université de Nice Sophia Antipolis - S. Bilavarn - 6 - Polytech Nice Sophia - Dpt Ingénierie des Systèmes Electroniques - Université Côte d’Azur - S. Bilavarn - 6 - Le jeu d’instruction et son utilisation sont étroitement liés à l’architecture. Certaines choses sont possibles et d’autre pas. La connaissance de l’architecture et du fonctionnement sont nécessaires pour écrire du code et pour son optimisation Caractéristiques générales Architecture load-store Les instructions ne traitent que des données en registre et placent les résultats en registre. Les seules opérations accédant à la mémoire sont celles qui copient une valeur mémoire vers un registre (load) et celles qui copient une valeur registre vers la mémoire (store). Format de codage fixe des instructions Toutes les instructions sont codées sur 32 bits. Format 3 adresses des instructions de traitement Polytech’Nice Sophia - Département Electronique - Université de Nice Sophia Antipolis - S. Bilavarn - 7 - Polytech Nice Sophia - Dpt Ingénierie des Systèmes Electroniques - Université Côte d’Azur - S. Bilavarn - 7 - Deux registres opérandes et un registre résultat, qui peuvent être spécifiés indépendamment. Exécution conditionnelle Chaque instruction peut s’exécuter conditionnellement Instructions spécifiques de transfert Instructions performantes de transfert multiples mémoire – registre UAL + shift Possibilité d’effectuer une opération Arithmétique ou Logique et un décalage en une instruction (1 cycle), la ou elles sont realisées par des instructions séparées sur la plupart des autres processeurs ARM Instruction Set Architecture Polytech’Nice Sophia - Département Electronique - Université de Nice Sophia Antipolis - S. Bilavarn - 8 - Polytech Nice Sophia - Dpt Ingénierie des Systèmes Electroniques - Université Côte d’Azur - S. Bilavarn - 8 - Caractéristiques du processeur Unité de traitement Jeu d’instruction Structure d’un programme assembleur Unité de traitement Unités fonctionnelles de l’UT: File de registres 16 registres pour permettre une manipulation souple des données et stockage des résultats de l’UAL Unité Arithmétique et Logique 2 opérandes : entrée A donnée provenant d’un registre, entrée B Séquenceur Décodeur Unité de traitement décal File de registres Reg addr. Unité de commande Signaux de contrôle Rd Rn Rm bus A bus B Polytech’Nice Sophia - Département Electronique - Université de Nice Sophia Antipolis - S. Bilavarn - 9 - Polytech Nice Sophia - Dpt Ingénierie des Systèmes Electroniques - Université Côte d’Azur - S. Bilavarn - 9 - provenant d’un registre, entrée B donnée reliée au décaleur Résultat de l’UAL: renvoyé dans un registre Registre à décalage Opérations de décalage (1 décalage à gauche = x2, 1 décalage à droite = /2) Opérations de rotation (décalage + ré- injection du bit perdu) Associé à l’entrée B de l’UAL pour réaliser une instruction UAL + shift en 1 cycle UAL décal mémoire Reg din Reg dout Signaux de contrôle Signaux de contrôle Reg inst A Organisation de l’unité de traitement File de registres Rd Rn Rm Rd select Rn select Rm select write enable Signaux de commande de l’unité de traitement: File de registres Rd, Rn, Rm select : sélection du registre cible dans la file des 16 registres write enable: activation de la file de registres UAL logic/arith+function: mode logique ou Polytech’Nice Sophia - Département Electronique - Université de Nice Sophia Antipolis - S. Bilavarn - 10 - Polytech Nice Sophia - Dpt Ingénierie des Systèmes Electroniques - Université Côte d’Azur - S. Bilavarn - 10 - UAL décal n z c v left/right shift/rot logic/arith amount logic/arith function Cin invB invA logic/arith+function: mode logique ou arthmétique, dans chaque mode choix de la fonction InvA, invB: inversion des opérandes A et B (not) Cin: injection du bit retenue C Indicateurs: indiquent l’état de l’UAL après une opération (ex: retenue C) Décaleur shift/rot: opération de décalage ou rotation logic/arith: opération logique ou arthmétique Amount: nombre de bits de décalage/rotation File de registres Rd r0 r1 r2 r3 r15 r4 r5 r6 r7 Rm Rm select Rd select Rn select Rn write_enable 32 32 32 4 4 4 File de registres Polytech’Nice Sophia - Département Electronique - Université de Nice Sophia Antipolis - S. Bilavarn - 11 - Polytech Nice Sophia - Dpt Ingénierie des Systèmes Electroniques - Université Côte d’Azur - S. Bilavarn - 11 - 16 registres utilisateurs r0, …, r15 Notation pour l’appel aux instructions: INST Rd, Rn, Rm Format 3 adresses (2 opérandes + résultat) Rn registre opérande 1, relié au port A (32 bits) Rm registre opérande 2, relié au port B (32 bits) par l’intermédiaire du décaleur → possibilité de rotation/décalage sur entrée B Rd registre de destination (32 bits) Select 4 bits pour le choix du registre parmi les 16 disponibles 4 File de registres Instructions de mouvements de données entre registres MOV (Move), MVN (Move not) MOV Rd, #literal MOV Rd, Rn MOV Rd, Rm, shift Mouvements de données entre registres, ou d’une constante vers registre, uniquement . Polytech’Nice Sophia - Département Electronique - Université de Nice Sophia Antipolis - S. Bilavarn - 12 - Polytech Nice Sophia - Dpt Ingénierie des Systèmes Electroniques - Université Côte d’Azur - S. Bilavarn - 12 - #literal: valeur immédiate (constante) shift: le deuxième opérande peut être sujet à un décalage Exemples MOV r3, #2 MOV r3, #2 @ r3 @ r3 ← ←2 MOV r3, r4 MOV r3, r4 @ r3 @ r3 ← ←r4 r4 MOV r3, r4, LSL #2 MOV r3, r4, LSL #2 @ r3 @ r3 ← ←r4<<2 r4<<2 UAL et registre à décalage Effectue des opérations arithmétiques et logiques (ADD, SUB, AND, OR, …) Associée au registre à décalage en entrée B Le registre d’état (SR) fournit des indications sur les résultats UAL Indicateurs sélection reg. d’état A B décal c z n v Polytech’Nice Sophia - Département Electronique - Université de Nice Sophia Antipolis - S. Bilavarn - 13 - Polytech Nice Sophia - Dpt Ingénierie des Systèmes Electroniques - Université Côte d’Azur - S. Bilavarn - 13 - Le registre d’état (SR) fournit des indications sur les résultats d’opération: C: Carry bit indicateur de dépassement pour une opération arithmétique (ou de décalage) Z: Zero bit indicateur de résultat nul de l’UAL N: Négatif bit indicateur de résultat négatif de l’UAL V: Débordement (oVerflow) bit indicateur de dépassement de capacité du résultat de l’UAL (modification du bit de signe) UAL et registre à décalage Exemple sur 4 bits : 1 0 1 0 + 1 0 0 1 = (1) 0 0 1 1 Résultat de l’UAL: 0 0 1 1 C = 1 Z = 0, le résultat est différent de 0 0 0 0 N = 0, 0 0 1 1 est un nombre positif car le uploads/Litterature/ ch2-arm-isa.pdf
Documents similaires
-
18
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 21, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.4056MB