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 :
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 . (83FFh = 8400h - 1)
EEPROM 8ko, adresse base 8400h = 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 = 65535d = FFFFh.











