Académique Documents
Professionnel Documents
Culture Documents
Introduction
Architectures des microprocesseurs
Microprocesseurs et assembleur Jeu d’instructions
Processeurs Intel x86
Processeur 8086
Architectures des microprocesseurs Caractéristiques
Segmentation de la mémoire
Exemple : Intel 8086
Organisation interne du 8086
Manel Abdelhedi
3 Chapitre 3 : Architecture du microprocesseur 8086 IA1 4 Chapitre 3 : Architecture du microprocesseur 8086 IA1
Architectures des microprocesseurs Architecture des microprocesseurs
Von Neumann/Harvard Von Neumann/Harvard
Séparation physique des mémoires
Un seul chemin d’accès à la mémoire. programme et données
Un bus de données programme.
Un bus de données (programme et données).
Un bus de données pour les données.
Un bus d’adresse (programme et données). Un bus d’adresse programme.
Un bus d’adresse pour les données.
Architecture des processeurs d’usage Meilleure utilisation du CPU :
général. chargement du programme et des
données en parallèle.
Exemple : Intel x86 Le gain en performance s’obtient
cependant au prix d’une complexité
accrue de structure.
Exemple : processeur de traitement de
signal (DSP), microcontrôleurs.
5 Chapitre 3 : Architecture du microprocesseur 8086 IA1 6 Chapitre 3 : Architecture du microprocesseur 8086 IA1
7 Chapitre 3 : Architecture du microprocesseur 8086 IA1 8 Chapitre 3 : Architecture du microprocesseur 8086 IA1
Jeu d’instructions (2/3) Jeu d’instructions (3/3)
CISC : Complex Instruction Set Computing RISC : Reduced Instruction Set Computing
Instructions nombreuses, complexes et de taille variable. Instructions limitées, simples et de taille fixe.
Le temps d’exécution peut prendre plusieurs cycles d’horloge. Une instruction effectue une seule opération élémentaire (micro-
Peu de registres. instruction) en un cycle d’horloge.
Compilateur simple. Nombre relativement important de registres.
Exemple : Intel 80x86, Motorola 68000,… Compilateur complexe.
À la fin des années 70, on remarque que 80% des cas, un Exemple : Sun SPARC, IBM PowerPC, ARM.
microprocesseur n’utilise que 20% de son jeu d’instructions.
9 Chapitre 3 : Architecture du microprocesseur 8086 IA1 10 Chapitre 3 : Architecture du microprocesseur 8086 IA1
11 Chapitre 3 : Architecture du microprocesseur 8086 IA1 12 Chapitre 3 : Architecture du microprocesseur 8086 IA1
Processeurs Intel x86 (2/3) Processeurs Intel x86 (2/3)
Le 80286 (1982) Le 80486 (1989)
Bus d’adresses de 24 bits (pouvant adresser jusqu’à 16Mo). Ajout de registres, UAL pour l’arithmétique flottante (FPU :
2 fois plus rapide que le 8086. Floating Point Unit).
13 Chapitre 3 : Architecture du microprocesseur 8086 IA1 14 Chapitre 3 : Architecture du microprocesseur 8086 IA1
15 Chapitre 3 : Architecture du microprocesseur 8086 IA1 16 Chapitre 3 : Architecture du microprocesseur 8086 IA1
Caractéristiques du Intel 8086 Plan du cours
Intel 8086 est un microprocesseur CISC 16 bits. Introduction
Sa puissance de calcul peut atteindre 0,75 MIPS (Million Architecture des microprocesseurs
d’instruction par seconde) pour la version 10 MHz.
Jeu d’instructions
Le nombre de transistors est de 29 000.
Processeurs Intel x86
8 registres généraux de 16 bits.
Processeur 8086
Bus d’adresse de 20 bits : 1 Mo de mémoire adressable. Caractéristiques
Problème : Bus d’adresse de 20 bits mais les registres du Segmentation de la mémoire
microprocesseur sont de 16 bits seulement.
Organisation interne du 8086
64 Ko de mémoire adressable.
Solution : Segmentation de la mémoire.
17 Chapitre 3 : Architecture du microprocesseur 8086 IA1 18 Chapitre 3 : Architecture du microprocesseur 8086 IA1
19 Chapitre 3 : Architecture du microprocesseur 8086 IA1 20 Chapitre 3 : Architecture du microprocesseur 8086 IA1
Segmentation de la mémoire Segmentation de la mémoire
L’adresse logique d’un mot mémoire est : segment:offset. L’adresse physique d’un mot mémoire à 20 bits est donnée par
Exemples Adresse à 20 bits = (16 x segment) + Offset
CS:IP : adresse de la prochaine instruction à exécuter.
DS:SI : adresse d’une donnée.
SS:SP : adresse du haut de la pile.
21 Chapitre 3 : Architecture du microprocesseur 8086 IA1 22 Chapitre 3 : Architecture du microprocesseur 8086 IA1
23 Chapitre 3 : Architecture du microprocesseur 8086 IA1 24 Chapitre 3 : Architecture du microprocesseur 8086 IA1
Organisation interne du 8086 (1/22) Organisation interne du 8086 (2/22)
Le 8086 est constitué de deux unités :
L’unité d’interface de bus (BIU : Bus Interface Unit) : recherche les
instructions en mémoire et les range dans une file d’attente.
25 Chapitre 3 : Architecture du microprocesseur 8086 IA1 26 Chapitre 3 : Architecture du microprocesseur 8086 IA1
27 Chapitre 3 : Architecture du microprocesseur 8086 IA1 28 Chapitre 3 : Architecture du microprocesseur 8086 IA1
Organisation interne du 8086 (5/22) Organisation interne du 8086 (6/22)
Fonctions de l’unité d’interface de bus (BIU) Fonctions de l’unité d’exécution (EU)
Elle cherche l’instruction à exécuter dans la mémoire. Elle extrait les codes des instructions à partir de la file d’attente
et les exécute.
Pendant le temps de décodage de l’instruction par l’EU, il pré-
recherche l’instruction suivante. Elle fournit les adresses des opérandes à l’BIU en nommant le
De cette façon cette instruction est “pré recherchée” et attend d’être segment concerné et en fournissant le déplacement dans ce
exécutée dans une file d’attente FIFO. segment.
Le 8086 peut avoir jusqu’à six octets d’instructions en file d’attente.
Elle calcule les adresses physiques sur 20 bits.
Elle réalise le transfert des données avec la mémoire.
29 Chapitre 3 : Architecture du microprocesseur 8086 IA1 30 Chapitre 3 : Architecture du microprocesseur 8086 IA1
31 Chapitre 3 : Architecture du microprocesseur 8086 IA1 32 Chapitre 3 : Architecture du microprocesseur 8086 IA1
Organisation interne du 8086 (9/22) Les registres du 8086 (2/14)
Les registres du 8086 (1/14) Les registres généraux
Les registres généraux participent aux opérations arithmétiques
et logiques ainsi qu’à l’adressage.
Ce sont des registres généraux (16 bits) mais ils peuvent être
utilisés pour des opérations particulières.
Exemple : AX = accumulateur, CX= compteur.
Tous les registres et les bus internes du 8086 sont structurés en Chaque demi‐registre
‐ peut être employé comme un registre de
16 bits. 8 bits.
Vu de l’utilisateur, le 8086 comprend 3 groupes de 4 registres 15 7 0
de 16 bits, un registre d’état de 9 bits et un compteur
programme de 16 bits non accessible par l’utilisateur.
33 Chapitre 3 : Architecture du microprocesseur 8086 IA1 34 Chapitre 3 : Architecture du microprocesseur 8086 IA1
35 Chapitre 3 : Architecture du microprocesseur 8086 IA1 36 Chapitre 3 : Architecture du microprocesseur 8086 IA1
Les registres du 8086 (5/14) Les registres du 8086 (6/14)
Les registres d’adressage (offset) Les registres d’adressage (offset)
Ces registres de 16 bits permettent l’adressage d’un opérande à SI : Registre d’index ou d’indice (source index)
l’intérieur d’un segment de 64 ko. Adressage comme registre d’index, (Par défaut, son offset est relatif à
SP : Pointeur de Pile DS).
Il est utilisé dans la manipulation des tableaux de données.
Utilisé pour l’accès à la pile.
Certaines instructions de déplacement de donnés l’utilisent comme index
Une pile sert souvent à manipuler et à sauvegarder temporairement de l’opérande source.
des données.
Usage général.
Le pointeur de pile contient l’adresse du sommet de la pile située
en mémoire.
DI : Registre d’index (destination index)
Adressage comme registre d’index, (par défaut, son offset est relatif à DS
Par défaut, son offset est relatif à SS.
ou ES).
BP : Pointeur de Base Certaines instructions de déplacement de donnés l’utilisent comme index
Utilisé pour adresser des données sur la pile. de l’opérande destination.
Par défaut, son offset est relatif à SS.
37 Chapitre 3 : Architecture du microprocesseur 8086 IA1 38 Chapitre 3 : Architecture du microprocesseur 8086 IA1
39 Chapitre 3 : Architecture du microprocesseur 8086 IA1 40 Chapitre 3 : Architecture du microprocesseur 8086 IA1
Les registres du 8086 (9/14) Les registres du 8086 (10/14)
Les registres de segments (3/3) Pointeur d’instruction (IP)
SS : Stack Segment Dans le 8086, le registre IP (Instruction Pointer, pointeur
Début de la pile. d’instruction).
La pile est une zone mémoire LIFO (Last In First Out) dans laquelle on Ce registre est mis à jour par le BIU afin qu’il pointe vers
stocke des variables temporaires (donnée ou adresse). l’adresse de l’instruction suivante.
Le haut de la pile est pointé par le registre SP (Stack Pointer).
Empiler une donnée : sauvegarder une donnée sur le sommet de la pile.
Dépiler une donnée : retirer une donnée du sommet de la pile.
ES : Extra Segment
Début d’un segment auxiliaire pour données
41 Chapitre 3 : Architecture du microprocesseur 8086 IA1 42 Chapitre 3 : Architecture du microprocesseur 8086 IA1
43 Chapitre 3 : Architecture du microprocesseur 8086 IA1 44 Chapitre 3 : Architecture du microprocesseur 8086 IA1
Les registres du 8086 (13/14) Les registres du 8086 (14/14)
Le registre d’état (Flags) (3/4) Le registre d’état (Flags) (4/4)
Z : (Zéro) indique que le résultat d’une opération arithmétique I : (Interruption) autorise ou non la reconnaissance des
ou logique est nul. Il est utilisé dans plusieurs instructions de sauts interruptions
conditionnels. I = 0 Interruptions autorisées
Lors d’une opération de soustraction (ou de comparaison), si ZF = 1 alors I = 1 Interruptions non autorisées
ceci indique que les deux opérandes étaient égaux. Sinon, ZF est mis à 0. D : (Direction) fixe la direction de l’auto‐inc/décrémentation
‐ de
S : (Signe) indique le signe du résultat. SI et DI lors des instruction de manipulation de chaînes.
SF=0 : positif, SF=1 : négatif. Ce flag sert lors de sauts conditionnels.
DF = 0 incrémentation des index.
DF = 1 décrémentation des index.
T : (Trap) met le CPU en mode pas à pas pour faciliter la O : ( Overflow) indique un dépassement de capacité quand on
recherche des défauts d’exécution. travaille avec des nombres signés. Comme par exemple si la
somme de 2 nombres positifs donne un nombre négatif ou
inversement. (40h + 40h = 80h et OF=1)
45 Chapitre 3 : Architecture du microprocesseur 8086 IA1 46 Chapitre 3 : Architecture du microprocesseur 8086 IA1