jeudi 5 décembre 2013

M.Rhila

Structure matérielle des systèmes à 
microprocesseur


Les structures matérielles des systèmes de traitement de l’information sont pratiquement toutes organisées autour d’architectures à base de microprocesseur.
Le microprocesseur est né en 1972 du développement de la technologie des semi-conducteurs
Le principal intérêt du microprocesseur est sa polyvalence : Il suffit simplement de changer le programme pour réaliser des tâches différentes . C’est un gros avantage par rapport à la technologie « câblée », donc figée : pour changer un cycle dans une chaine de production à technologie câblée, il fallait changer la (ou les) carte(s) électronique(s) !
Gain au niveau du coût, de la maintenance (plus fiable car moins de composants = moins de risques de pannes ) de l’évolutivité, gain de temps énorme au niveau de la conception des systèmes (c’est plus rapide de faire un programme que de concevoir des cartes électroniques …)

Le 21ème siècle est l’ère du numérique (informatique, robotique, domotique) grâce aux microprocesseurs ! 


  • Structure d’un système à microprocesseur :





















Le système à microprocesseur est constitué de plusieurs éléments montés sur une carte de circuit imprimé :
àle processeur exécute les opérations logiques ou arithmétiques qui permettent de
calculer les données de sorties à partir des données d’entrées,
àla mémoire stocke le programme, ainsi que toutes les données nécessaires au
traitement,
àles bus sont les liaisons électriques qui véhiculent les informations entre les différents
composants du système électronique.
Bus de données :  c’est sur ces lignes  que circulent les données du programme . Exemple sur un bus de données de 8bits = 8 fils on fera ciculer qu’un octet à la fois . Il est BI-DIRECTIONNEL

Bus d’adresse :
Il est parcouru par des informations qui permettent de localiser le ou les boîtiers concernéspar l’échange d’information. On parle alors de l’adresse de l’information. Il est UNIDIRECTIONNEL  (le microprocesseur impose sa valeur), il transporte une
adresse produite par le microprocesseur. Cette adresse spécifie l’origine ou la destination
des données qui transitent.
Pour un bus de 16 bits, le microprocesseur peut accéder à 2^16 = 65 535 adresses
différentes.
Un seul composant (ROM,RAM …)est sélectionné ( par son adresse) à la fois. Le décodage du bus
d’adresse permet de valider le composant sélectionné. (Rôle du décodeur d’adresse)
Bus de contrôle :
C’est un ensemble de lignes « relativement indépendantes » qui permettent de :
- synchroniser le système : Horloge
- réaliser l’initialisation de l’unité centrale (Reset)
- contrôler les échanges (lecture, écriture)
- provoquer des exécutions de programmes particuliers (interruptions)

àl’interface d’entrées et sorties, parallèle ou série, permet de communiquer avec les
périphériques extérieurs au système,
àl’horloge à quartz donne la cadence, par des impulsions électriques qui
synchronisent le système.

Voici l’architecture d’un (petit) microprocesseur (famille motorola 68XX) :





















Le microprocesseur est composé :
D’une unité arithmétique et logique qui effectue les opérations  (UAL) : addition, soustraction, opérations logique (OU, ET, NON , OU exclusif)
Des registres et accumulateurs qui permettent de stocker les données
D’une unité de contrôle qui lit séquentiellement les instructions et génère les signaux de commande.
Un microprocesseur est toujours associée à de la mémoire  avec qui il communique grâce au bus d’adresse et de données. C’est dans la mémoire que se trouve le programme à exécuter.

Le microprocesseur vient chercher ses « instruction » dans une « mémoire programme » où le programme est rangé sous forme d’une suite d’instructions codées en binaire. Les instructions qu’il doit exécuter sont élémentaires :

-lire ou écrire dans la mémoire de données,
-lire des entrées, écrire des sorties,
-tester des états logiques,
-effectuer des opérations logiques de base ( ET, OU, NON, OU exclusif)
-effectuer les principales opérations arithmétiques (+, -, ., /)
-transfert des données
Le microprocesseur travaille sur des mots binaires, toutes les informations sont codées en binaire. Généralement les mots ont une longueur de 8,16, 32 bits.
Exemple d’instructions en langage assembleur pour microcontrôleur 68HC11 :

LDAA $1000           ‘ Charger le contenu de l’adresse $1000  dans l’accumulateur A
ADDA #2                ‘ A = A+2
STAA $1001          ‘  Stocker A dans case mémoire adresse  $1001
JSR affichage        ‘ Aller au sous programme « affichage »


Les registres internes :

Les registres peuvent être plus ou moins nombreux dans le microprocesseur
Un grand nombre de registres permet un maximum du traitement des données à l’intérieur
de l’unité centrale. On évite ainsi de nombreux accès du processeur à la mémoire externe pour stocker et lire des données intermédiaires de calcul. Le temps de traitement se trouve ainsi accéléré. (note : dans les processeurs type « pentium » on trouve ce qu’on appelle de la mémoire « cache » qui travaille à la même vitesse que le processeur et sert de tampon entre la mémoire externe  et les registres internes)
Un minimum de registres internes est indispensable au fonctionnement de l’unité centrale et est nécessaire à la programmation :





















Le registre indicateur CC contient des indications sur le résultat après chaque traitement de l’unité arithmétique et logique. Il est modifié automatiquement par l’unité arithmétique et
logique quand elle effectue une opération.


- Le bit de zéro Z est mis à un quand le résultat de l’opération est zéro,
- Le bit négatif N est mis à un quand le résultat de l’opération est négatif,
- Le bit de retenue C est mis à un quand le résultat ne peut tenir dans l’accumulateur de
sortie A (débordement)
- Le bit V (overflow) mis à 1 si dépassement de la capacité de codage
- Le bit I : masque d’interruption
- Le bit H : Half Carry : demi retenue : retenue sur la somme des bits 3.

Le compteur ordinal PC est le registre qui pointe dans la mémoire l’adresse de la prochaine
instruction à traiter par l’unité de commande.
Le pointeur de pile SP est le registre qui pointe l’adresse du dernier élément de la pile. La
pile est utilisée pour stocker des données intermédiaires ou l’adresse de retour des sous
programmes.
Le registre d’index X est un registre qui pointe l’adresse en cours de lecture dans une table
de données.

Note : Les registres CC, PC et SP sont totalement transparent pour le programmeur. Exemple, programme de décomptage  :
                         LDAA  $F000        ‘ charge A avec le contenu de l’adresse $F000
    DEBUT :      DECA                     ‘ Décrémente l’accumulateur A (A = A-1)
                         BNE  DEBUT        ‘ Branche à DEBUT si résultat opération précédente <>0  (en fait, l’instruction BNE teste le bit Z  )



Organisation de l’espace mémoire adressable:

     Voici un exemple d’organisation mémoire (les adresses sont données en HEXADECIMALE)
















Correction :


RAM 32k, adresse 400h = 1024d .    1024+32*1024= 33792d  soit 8400h . La RAM va donc de 400 à 83FF . (83FF
h = 8400h - 1)

EEPROM 8ko, adresse base 8400
h = 33792d .    33792 + 8*1024 = 41984d soit A400 en hexa. L’eeprom occupe donc les adresses 8400h à A3FF  (A3FF = A400-1)

Espace non utilisé : 23ko  car : FFFF – A400 = 5BFF et (5BFF + 1) = 23552 octets soit 23ko (23552/1024 = 23)

Le bus d’adresse doit être de 16 bits car 2^16-1 = 65535
d = FFFFh.








Aucun commentaire:

Enregistrer un commentaire