Vous êtes sur la page 1sur 12

Plan du cours

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

2 Chapitre 3 : Architecture du microprocesseur 8086 IA1

Introduction Plan du cours


Un microprocesseur est un circuit intégré complexe. Introduction
Il résulte de l’intégration d’une unité de commande et une unité Architectures des microprocesseurs
de traitement.
Jeu d’instructions
Il est capable d’interpréter et d’exécuter les instructions d’un
Processeurs Intel x86
programme.
Processeur 8086
Son domaine d’application est donc presque illimité.
Caractéristiques
Segmentation de la mémoire
Organisation interne du 8086

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

Plan du cours Jeu d’instructions (1/3)


Introduction Chaque microprocesseur possède un certain nombre limité
Architectures des microprocesseurs d’instructions qu’il peut exécuter.
Ces instructions s’appellent jeu d’instructions.
Jeu d’instructions
Le nombre d’instructions varie typiquement entre 50 et 250.
Processeurs Intel x86
On distingue 2 grandes catégories de processeurs, qui se
Processeur 8086
distinguent par la conception de leurs jeux d’instructions.
Caractéristiques
Segmentation de la mémoire
Organisation interne du 8086

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

Plan du cours Processeurs Intel x86 (1/3)


Introduction Date du processeur 8086 en 1978.
Architectures des microprocesseurs Bus de données de 16 bits.
Bus d’adresses de 20 bits (pouvant adresser jusqu’à 1Mo).
Jeu d’instructions
8 registres généraux de 16 bits.
Processeurs Intel x86
Processeur 8086
Trop peu de registres et de taille trop petite.
Caractéristiques
Evolution de cette architecture avec les nouvelles gammes de
Segmentation de la mémoire processeurs Intel.
Organisation interne du 8086

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).

Le 80586 : Pentium (1993)


Le 80386 (1985) Premier processeur Intel à deux pipelines.
Architecture IA-32 (Intel Architecture 32).
Passage au 32 bit : 8 registres généraux 32 bits. L’Itanium (2002)
Bus d’adresses de 32 bits (pouvant adresser jusqu’à 4Go). Premier processeur de la famille IA-64.

13 Chapitre 3 : Architecture du microprocesseur 8086 IA1 14 Chapitre 3 : Architecture du microprocesseur 8086 IA1

Processeurs Intel x86 (3/3) Plan du cours


La famille x86 regroupe les µ-processeurs compatibles avec le Introduction

jeu d’instructions de Intel 8086. Architecture des microprocesseurs


Jeu d’instructions
Processeurs Intel x86
Processeur Intel 8086
Caractéristiques
Segmentation de la mémoire
Organisation interne du 8086

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

Segmentation de la mémoire Segmentation de la mémoire


Pour avoir des adresses mémoire sur 20 bits avec des registres Registres segments du 8086
de 16 bits. CS « Code Segment » : Segment du code source.
On combine 2 registres. DS « Data Segment » : Segment des données.
Le premier donne l’adresse de base d’un segment. SS « Stack Segment » : Segment de la pile.
Le second donne le déplacement (offset) dans ce segment. ES « Extra Segment » : Segment supplémentaire.
Segments : la mémoire est décomposée en plusieurs blocs
(zone mémoire) de 64 Ko appelés segments.

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

Segmentation de la mémoire Plan du cours


Exemple: Introduction
Registre CS = 1000 h Architecture des microprocesseurs
Registre IP = 0414 h Jeu d’instructions
Donc: Processeurs Intel x86
Adresse à 20 bits = (16 x 1000 h) + IP Processeur 8086
10000 h (décalé de 4 bits à gauche) + 0414 h Caractéristiques
Ce qui donne: Segmentation de la mémoire

10414 H Organisation interne du 8086

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.

L’unité d’exécution ( EU : Execution Unit) : exécute les instructions


contenues dans la file d’attente.

Les deux unités fonctionnent simultanément, d’où une


accélération du processus d’exécution d’un programme.

25 Chapitre 3 : Architecture du microprocesseur 8086 IA1 26 Chapitre 3 : Architecture du microprocesseur 8086 IA1

Organisation interne du 8086 (3/22) Organisation interne du 8086 (4/22)


L’unité d’exécution comporte :
L’UAL.
Les registres généraux (AX, BX, CX, DX).
Les registres d’adressage (SP, BP, SI, DI).
Le registre d’état (Flags).
Le séquenceur d’instructions.
L’unité d’interface de bus (UIB) comporte
Une file d’attente d’instructions gérée en FIFO.
Les registres de segments (CS, DS, SS, ES).
Le pointeur d’instruction (IP).

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

Organisation interne du 8086 (7/22) Organisation interne du 8086 (8/22)


Pipeline (1/2) Pipeline (2/2)
Avec les µP intel 8086, les unités EU et BIU travaillent Pour µP 8086, il existe 2 stages de pipeline : fetch et exécute.
simultanément. Pour des µP plus puissants, il y’a plusieurs niveaux de pipeline.
BIU la mémoire et les périphériques
EU exécute les instructions recherchées précédemment.
BIU possède une file d’attente qui permet de stocker jusqu’à
six octets d’instructions.
Le µP 8086 fonctionne selon le principe de pipeline ce qui
permet d’améliorer son efficacité.

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

Les registres du 8086 (3/14) Les registres du 8086 (4/14)


Les registres généraux Les registres généraux
AX : Accumulateur CX : Comptage et calcul
Usage général. Usage général.
Obligatoire pour la multiplication et la division. Utilisé par certaines instructions comme compteur de répétition.
BX : Base DX : Data
Usage général Usage général.
Adressage, (contient une adresse de décalage (offset) par rapport à Dans la multiplication et la division 16 bits, il sert comme
une adresse de référence (segment de données DS)) extension au registre AX pour contenir un nombre 32 bits.

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

Les registres du 8086 (7/14) Les registres du 8086 (8/14)


Les registres de segments (1/3) Les registres de segments (2/3)
Le 8086 a quatre registres segments de 16 bits. Chaque CS : Code Segment
segment de mémoire ne peut excéder les 216 octets (64 Ko). Définit le début de la mémoire programme. Les adresses des différentes
Ces registres sont chargés de sélectionner les différents instructions du programme sont relatives à CS.
segments de la mémoire en pointant sur le début de chacun DS : Data Segment
d’entre eux.
Début de la mémoire de données dans laquelle sont stockées toutes les
Ces registres sont combinés avec les registres d’offset pour données traitées par le programme.
former les adresses. Une case mémoire est repérée par une
adresse de la forme RS:RO.
On place le registre segment au début d’une zone mémoire de
de 64Ko, ensuite on fait varier le registre d’offset qui précise
l’adresse relative par rapport à cette position.

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

Les registres du 8086 (11/14) Les registres du 8086 (12/14)


Le registre d’état (Flags) (1/4) Le registre d’état (Flags) (2/4)
Le 8086 a six bits qui reflètent les résultats d’une opération C : (Carry) indique le dépassement de capacité de 1 sur une
arithmétique ou logique et 3 bits participent au contrôle du opération 8 bits ou 16 bits. Ce flag peut être utilisé par des
processeur. instructions de saut conditionnel, des calculs arithmétique.
CF = 1 s’il y a une retenue après l’addition ou la soustraction du bit de
poids fort des opérandes.
P : (Parité) indique que le nombre de 1 est un nombre pair. Ce
flag est utilisé avec certains sauts conditionnels.
A : (Auxiliary Carry : Demie retenue) indique une retenue sur les
4 bits de poids faible. Par exemple quand la somme des bits de
poids faible dépasse F (15) AF=1.

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

Vous aimerez peut-être aussi