MICROPROCESSEURS
1) Définition :
Le microprocesseur, noté aussi M.P.U. (Microprocessor unit) ou encore C.P.U. (Central Processing
Unit) est un circuit intégré complexe appartenant à la famille des VLSI (Very large scale
intégration) capable d'effectuer séquentiellement et automatiquement des suites d'opérations
élémentaires. Il remplit deux fonctions essentielles :
1. Le traitement des données. On parle d'unité de traitement. Cette fonction est dédiée à l'Unité
Arithmétique Logique. Elle concerne la manipulation des données sous formes de transfert,
d’opérations arithmétiques, d’opérations logiques....
2. le contrôle du système. Cette fonction se traduit par des opérations de décodage et d'exécution
des ordres exprimés sous forme d'instruction.
2) Puissance d'un microprocesseur :
La notion de puissance est la capacité de traiter un grand nombre d'opérations par seconde sur de
grands nombres et en grande quantité. Intrinsèquement la puissance se joue donc sur les trois
critères suivants :
1. La longueur des mots : données et instructions (on parle de largeur du bus des données).
2. Le nombre d'octets que le microprocesseur peut adresser (on parle de largeur du bus des
adresses).
3. La vitesse d'exécution des instructions liée à la fréquence de fonctionnement de l'horloge
de synchronisation exprimée en MHz.
3) Architecture d’un microprocesseur :
A) Architecture interne
Un microprocesseur est construit autour de deux éléments principaux :
1. Une unité de commande.
2. Une unité de traitement.
A.1) L’unité de commande :
Elle permet de séquencer le déroulement des instructions. Elle effectue la recherche en mémoire de
l'instruction, le décodage de l’instruction codée sous forme binaire. Enfin elle pilote l’exécution de
l’instruction. Elle est constituée d’un compteur de programme, d’un registre d’instruction, d’un
décodeur d’instruction et d’un bloc logique de commande.
a. Le compteur de programme (PC: Programme Counter ou compteur ordinal : CO). Il
comporte un registre dont le contenu est initialisé avec l'adresse de la première instruction du
programme. Ce registre contient toujours l’adresse de la prochaine instruction à exécuter.
b. Le registre d'instruction et le décodeur d'instruction. Chacune des instructions à exécuter
est transférée depuis la mémoire dans le registre d’instruction puis est décodée par le décodeur
d’instruction.
c. Le bloc logique de commande (ou séquenceur). Il organise l'exécution des instructions au
rythme d’une horloge. Il élabore tous les signaux de synchronisation internes ou externes (bus
de commande) du microprocesseur en fonction de l’instruction qu’il a à exécuter.
d. Le registre d’adresse sert d’interface entre le bus des données internes et le bus d’adresse.
Son contenu pointe la zone mémoire utile au microprocesseur.
A.2) L’unité de traitement :
Elle regroupe les circuits qui assurent les traitements nécessaires à l'exécution des instructions
(accumulateurs, unité arithmétique et logique, registre d’état).
e. Les accumulateurs sont des registres de travail qui servent à stocker un opérande au début
d'une opération arithmétique et le résultat à la fin de l'opération.
f. L’Unité Arithmétique et Logique (UAL), ou ALU (Arithmetic and Logic Unit). C’est un
circuit complexe qui assure les fonctions logiques (ET, OU, Comparaison, Décalage, etc…)
ou arithmétique (Addition, soustraction…). Toute instruction qui modifie une donnée fait
toujours appel à l’ALU.
g. Le registre d'état est un registre pour lequel chacun de ses bits est un indicateur dont l'état
dépend du résultat de la dernière opération effectuée par l’UAL. On les appelle indicateur
d’état ou flag ou drapeaux. Dans un programme, le résultat du test de leur état conditionne
souvent le déroulement de la suite du programme. On peut citer par exemple les indicateurs
de retenue (carry : C), de débordement (overflow : OV ou V), de zéro (Z), ...
L’architecture interne d’un microprocesseur est ainsi donnée à la figure ci-dessous.
B) Architecture des systèmes à base de micro-processeur.
Le micro-processeur a besoin, pour fonctionner, d’un environnement minimum : celui-ci est au moins
composé du processeur lui-même (exécutant les tâches à accomplir) des mémoires ROM (contenant
le programme à exécuter) et RAM (stockant des données temporairement) ainsi que des interfaces
avec l’extérieur (clavier, lecteur de carte, écran, capteur, etc…).
L’ensemble des boîtiers dialogue par l’intermédiaire des bus (ensemble de fils implantés en circuit
imprimé), ce qui représente parfois un volume important et un coût élevé.
4) Introduction au jeu d'Instructions :
Le programme que doit exécuter un microprocesseur est une succession d'instructions
ordonnées (chaque instruction pouvant prend plusieurs octets) qui se trouve rangé dans une
zone mémoire, généralement à des adresses successives.
a) Durée d'une instruction :
L'exécution complète d'une instruction n'est pas instantanée. L'unité de mesure est la
période de l'horloge encore appelé "Cycle Machine". La durée d’une instruction dépend
de la complexité de l'instruction. Son expression est :
Tinstruction = n.Tcycle.
Où n est le nombre de cycle que peut prendre l’instruction.
b) Mode de fonctionnement d'une instruction.
Exécuter une instruction c'est réaliser le cycle extraction-exécution.
L’extraction consiste à lire les données en mémoire.
L’exécution consiste à traduire et à interpréter les données une fois traduite
Les instructions utilisent toutes une méthode particulière d’accéder aux informations
qu’elles manipulent. Ces méthodes sont appelées « modes d’adressage » et sous souvent
fournies dans les fiches techniques des microprocesseurs. Le code correspondant aux
modes d’adressage est appelé « le code mnémonique ».
La « pile » est la zone mémoire RAM gérée par des pointeurs qui permettent de transférer
rapidement des données dans des cases mémoires selon un protocole bien établi.
c) Architecture des instructions.
Actuellement l’architecture des microprocesseurs se composent de deux grandes familles :
1. L’architecture CISC (Complex Instruction Set Computer). Ce type de microprocesseur
possède un nombre important d’instructions. Chacune d’elles s’exécute en plusieurs périodes
d’horloges.
2. L’architecture RISC (Reduced Instruction Set Computer). Ces microprocesseurs possèdent
un nombre réduit d’instructions. Chacune d’elles s’exécute en une période d’horloge.
5) Les interruptions.
Une interruption est une rupture de séquence asynchrone, c’est-à-dire non synchronisée avec le
déroulement normal du programme. Nous pouvons ainsi dire, sans se tromper de beaucoup, qu’une
routine d’interruption est un sous-programme particulier, déclenché par l’apparition d’un événement
spécifique.
Voici donc comment cela fonctionne :
Le programme se déroule normalement.
L’événement survient.
Le programme achève l’instruction en cours de traitement.
Le programme saute à l’adresse de traitement de l’interruption.
Le programme traite l’interruption.
Le programme saute à l’instruction qui suit la dernière exécutée dans le programme
principal.
Il va bien sûr de soi que n’importe quel événement ne peut pas déclencher une interruption. Il faut
que 2 conditions principales soient remplies :
3. L’événement en question doit figurer dans la liste des événements susceptibles de provoquer
une interruption pour le processeur sur lequel on travaille.
4. L’utilisateur doit avoir autorisé l’interruption, c’est à dire doit avoir signalé que l’événement
en question devait générer une interruption.