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

  • 18
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager