You are on page 1of 316

Architecture des Ordinateurs

Pr MOUGHIT Mohamed
m.moughit@gmail.com

Pr M MOUGHIT Architecture des ordinateurs 1


Introduction

Le Cours Architecture des Ordinateurs consiste


tudier:
 les principes de fonctionnement des
ordinateurs
 lorganisation interne des ordinateurs.

Pr M MOUGHIT Architecture des ordinateurs 2


Introduction
Les applications des systmes
microprocesseurs sont multiples et varies :
o Ordinateur, PDA
o console de jeux
o calculatrice
o tlvision
o tlphone portable
o distributeur automatique dargent
o robotique
o lecteur carte puce, code barre
o automobile
o instrumentation

Pr M MOUGHIT Architecture des ordinateurs 3


Introduction
 L'architecture d'un systme microprocesseur
reprsente lorganisation de ses diffrentes units et
de leurs interconnexions.

 Le choix d'une architecture est toujours le rsultat


d'un compromis :
o entre performances et cots
o entre efficacit et facilit de construction
o entre performances d'ensemble et facilit de
programmation

Pr M MOUGHIT Architecture des ordinateurs 4


Introduction
 Un systme microprocesseur peut traiter des
informations de types trs divers:
o textes,
o nombres,
o programmes,
o Images,
o sons, etc.

 Tous ces types de 'information sont stocks et


traits sous forme de squences de bits 0 ou 1.

Pr M MOUGHIT Architecture des ordinateurs 5


Introduction
 Lunit de linformation est le digit binaire 0 ou 1.
 Le codage dune information consiste tablir une
correspondance entre la reprsentation externe de
linformation et sa reprsentation interne dans la
machine sous sa forme binaire.

Pr M MOUGHIT Architecture des ordinateurs 6


Introduction
Les rgles de passages de l'information aux
squences binaires et l'inverse sont aujourd'hui
normalises afin de permettre un change l'chelle
mondiale de tout type de donnes.

Pr M MOUGHIT Architecture des ordinateurs 7


Reprsentation des nombres
 Un systme de numrotation est un ensemble
ordonn fini de B symboles qui servira
reprsenter un nombre quelconque N.
 Le nombre de symbole B est appel la base du
systme de numrotation

Pr M MOUGHIT Architecture des ordinateurs 8


Reprsentation des nombres
 Un nombre peut scrire sous forme :
o Polynomiale :
N=a0.B0 + a1.B1 + an-1.Bn-1 + an.Bn

o Symbolique:
N=(anan-1an-2....a1a0)B

 Les ai sont des entiers tels que 0 ai (B-1) et


sont appels les chiffres.
 Bi est le poids du chiffre ai

Pr M MOUGHIT Architecture des ordinateurs 9


Reprsentation des nombres
Exemples:
 En dcimal,
B=10, ai {0,1,2,.9}
 En binaire,
B=2 ; ai {0,1}
 En hexadcimal,
B=16, ai{0,1,2,.9,A,B,C,D,E ,F} ;
 En Octal
B=8, ai{0,1,2,.7} ;

Pr M MOUGHIT Architecture des ordinateurs 10


Reprsentation des nombres
 Pour obtenir la reprsentation dun nombre dans une base
prcise, il faut diviser par la valeur de la base.
Exemples
2865= 5*100+6*101+8*102+2*103
(1011)2 = 1.23 + 0.22 + 1.21 + 1.20 = 11 en dcimal.
23147)10=5A6BH

Pr M MOUGHIT Architecture des ordinateurs 11


Conversion binaire vers dcimal
Pour faire la conversion binaire en dcimal, Il suffit
d'appliquer l'criture polynomiale.
Exemple:
Soit le nombre binaire (11001101)2. Il est reprsent
en dcimal par:
N = 1.27 + 1.26 + 0.25 + 0.24 + 1.23 + 1.22 + 0.21 + 1.20
= 128 + 64 + 8 + 4 + 1 = 205.

Pr M MOUGHIT Architecture des ordinateurs 12


Conversion dcimal vers binaire
Pour convertir un nombre dcimal en binaire, Il suffit
dappliquer lalgorithme dEuclide comme dans
lexemple pour convertir le nombre

Pr M MOUGHIT Architecture des ordinateurs 13


Systme hexadcimal
 Un nombre hexadcimal peut se noter de 3 faons.
Par exemple le nombre 100 peut scrire :
$64
0x64
64H

 le nombre hexadcimal 1CFH vaut :


15.160 + 12.161 + 1.162 = 463)10

Pr M MOUGHIT Architecture des ordinateurs 14


Conversion dcimal vers hexadcimal
Pour raliser une conversion dcimal vers
lhexadcimal, Il suffit d'appliquer l'algorithme d'Euclide
en divisant successivement par 16.

Exemple: Lcriture du nombre N=1987 dans le systme


hexadcimal
1987=7C3H

Pr M MOUGHIT Architecture des ordinateurs 15


15
Conversion dcimal vers lOctal
 La conversion dune prsentation dcimale en une
reprsentation octale se fait par application de lalgorithme
dEuclide en faisant des division successives par 8.
Exemple:
123(10)=1111011(2)=173(8)=7B(16)

Pr M MOUGHIT Architecture des ordinateurs 16


Conversion hexadcimal vers binaire
Cette conversion est ralise en remplaant chaque
chiffre hexadcimal par son quivalent binaire sur 4
bits.

Exemple: le nombre N=7C3H s'crit en binaire


7C3H=011111000011(2)

Pr M MOUGHIT Architecture des ordinateurs 17


Conversion binaire vers hexadcimal
Cette conversion est ralise en regroupant les bits
du nombre binaire par 4 en partant de la droite, et
puis en remplaant chaque groupe par le chiffre
hexadcimal qui lui correspond.
Exemple: Soit convertir en hexadcimal le nombre
binaire suivant: (11011111110)2,

Pr M MOUGHIT Architecture des ordinateurs 18


Les Oprations arithmtiques
dans le systme binaire
Laddition binaire :
0+0=0
0+1=1 (1)
1+0=1
1+1=0
Laddition en binaire seffectue de la mme manire que
laddition dcimale selon (1)
Exemple:
1111011 x
11011010 y
1 1 1 1 1 0 1 0 0 Reste
1 0 1 0 1 0 1 0 1 Resultat z = x+y
Pr M MOUGHIT Architecture des ordinateurs 19
Les Oprations arithmtiques
dans le systme binaire
La Soustraction binaire :
0-0=0
0-1=1 (2)
1-0=1
1-1=0
La soustraction en binaire seffectue de la mme
manire que la soustraction dcimale selon (2)

Pr M MOUGHIT Architecture des ordinateurs 20


Les Oprations arithmtiques
dans le systme binaire
La Soustraction binaire :
Exemple:

1 1 0 1 1 0 1 0 input x
1 1 1 1 0 1 1 input y
1 0 1 1 1 11 rsultat z = xy

Pr M MOUGHIT Architecture des ordinateurs 21


Les Oprations arithmtiques
dans le systme binaire
La Multiplication binaire :
Elle se fait de la mme manire que dans le systme
dcimale
0x0=0
0x1=0
1x0=0
1x1=1

Pr M MOUGHIT Architecture des ordinateurs 22


Les Oprations arithmtiques
dans le systme binaire
La Multiplication binaire :
Exemple:

Pr M MOUGHIT Architecture des ordinateurs 23


Les Oprations arithmtiques
dans le systme binaire
La Division binaire :
La division binaire seffectue exactement comme
dans le systme dcimal, le quotient est soit 0 ou
1 selon que le diviseur est plus grand ou plus petit
que le dividende

Exercice: 10111011 / 110=11111

Pr M MOUGHIT Architecture des ordinateurs 24


Les Oprations arithmtiques
dans le systme binaire
Complment B dun nombre
Le complment B dun nombre N est le
complment de ce nombre la puissance de B qui lui
est juste suprieure
Exemple :
dans la base B=10, le complment de N=145 est :
1000-145=855
dans la base B=2 , Le complment de N=10100 est
100000-10100= 01100

Pr M MOUGHIT Architecture des ordinateurs 25


Les Oprations arithmtiques
dans le systme binaire
Complment B dun nombre
Remarque :
Le complment B dun nombre peut tre obtenu en
complment B le premier chiffre non nul en partant
de la droite vers la gauche, les autres sont complts
B-1.

Pr M MOUGHIT Architecture des ordinateurs 26


Les Nombres signs
Reprsentation sign -valeur absolue (SVA)

 Dans Cette reprsentation, le bit de gauche est un


bit de signe, il est gal 0 si le nombre est positif,
1 si le nombre est ngatif.
 Les autres bits servent coder la valeur absolue du
nombre.

Pr M MOUGHIT Architecture des ordinateurs 27


Reprsentation sign -valeur absolue (SVA)
Exemple:
On se propose de reprsenter le nombre -100 en SVA sur 8 bits
La valeur absolue sera donc prsente sur 7 bits et le signe est
prsent par le bit de plus fort poids.
|-100|=100=(1100100)2
Bit de signe gal 1 car le nombre considr est gatif.
Donc -100 = (11100100)2
Si l'on voulait reprsenter 100 en SVA, la seule diffrence serait le
bit de signe qui est gal 0 car 100 est positif, d'o
100 = (01100100)2

Pr M MOUGHIT Architecture des ordinateurs 28


Reprsentation sign -valeur absolue (SVA)

 En SVA le nombre zro possde deux


reprsentations, (00000000)2 et (10000000)2.
 Pour passer d'un nombre son oppos, il suffit de
changer le bit de signe.
 Si on adopte un format de 8 bits, l'intervalle des
nombres reprsentables va de 127=(11111111)SVA
127=(01111111)SVA.

Pr M MOUGHIT Architecture des ordinateurs 29


Reprsentation en complment deux

 les nombres ngatifs sont reprsents en


dterminant le complment 2 de leur valeur
absolue.
 Les nombres positifs sont reprsents de faon
normale.
 Le bit de gauche est un bit de signe. il vaut 0 pour
les nombres positifs et 1 pour les nombres ngatifs.

Pr M MOUGHIT Architecture des ordinateurs 30


Reprsentation en complment deux

La reprsentation de -100 en complment 2 se fait de la


manire suivante:
1) on inverse tous les bits du nombre 100 (valeur absolue de
-100)
2) on ajoute 1.
Ainsi: -100 = (10011011)2 + 1 =(10011100)C2.

Pr M MOUGHIT Architecture des ordinateurs 31


Les Nombres signs: Reprsentation par excdent

Une autre faon de reprsenter les nombres signs consiste


ajouter un excdent fixe de manire n'avoir travailler qu'avec
des nombres positifs.
Exemple:
Reprsentation par excdent 127 sur 8 bits.
Soit reprsenter le nombre 100.
On ajoute l'excdent 100+ 127= 227
Ensuite on passe en binaire, d'o le code(11100011)2
Pour reprsenter -100 on ajoute l'excdent: -100 + 127 = 27
On passe en binaire ce qui donne (00011111)2.

Pr M MOUGHIT Architecture des ordinateurs 32


Les Nombres Fractionnaires
un nombre fractionnaire s'crit en base 2:
N = an.2n + an-1.2n-1 + .+ a1.21 + a0.20 + a-12-1+a-22-2+
= (anan-1 . a1a0 , a-1a-2)2
La virgule, comme dans le systme dcimal, spare les
parties entire et fractionnaire.
1101,101=1.23+1.22+0.21+1.20+1.2-1+0.2-2+1.2-3
=13,625
Pour convertir un nombre dcimal virgule en nombre binaire on
procde en deux temps:
1) la partie entire est traite normalement
2) la partie fractionnaire est convertie par multiplications successives par
deux

Pr M MOUGHIT Architecture des ordinateurs 33


Les Nombres Fractionnaires

Exemple:

conversion en binaire du nombre N=12,1875


partie entire: 12= (1100)2
partie fractionnaire:
0.1875*2=0.375 cela donne le chiffre a-1=0
0.375*2=0.75 cela donne le chiffre a-2=0
0.75*2=1.5 cela donne le chiffre a-3=1 et on continue avec
la partie fractionnaire
0.5*2=1 d'o a-4=1
Finalement on a 12.1875 = (1100,0011)2.

Pr M MOUGHIT Architecture des ordinateurs 34


Les Nombres en virgule flottante
Cette reprsentation s'inspire de la notation scientifique des
nombres rels. Un nombre x s'crit:
x = m.10e
m est appele la mantisse et l'entier e l'exposant.
en gnral, dans une base B on a:
x = m.Be
Un nombre rel est reprsent par le couple de valeurs (m,e).
exemple :
soit N=32.5
on peut crire N de plusieurs manires:
32.5*100 325*10-1 3250*10-2 3.25*101 0.325*102

Pr M MOUGHIT Architecture des ordinateurs 35


Les Nombres en virgule flottante

 Pour que la reprsentation soit unique, on impose la


mantisse la condition: 100 < |m| < 101 soit 1 < |m| < 10.
 Dans cette condition seule l'criture N = 3.25*101 est valable.
 Pour une reprsentation machine, il faut fixer la taille de la
mantisse et celle de l'exposant.
 La virgule flottante n'a pas une place fixe, tout dpendant de l'ordre de
grandeur du nombre

Pr M MOUGHIT Architecture des ordinateurs 36


Le standard IEEE 754

 Ce standard a t tabli par le comit 754 de l'IEEE


 Le standard IEEE dfinit les formats de reprsentation des
nombres en virgule flottante:
Simple prcision sur 32 bits (1 bit de signe , 8 bits pour
l'exposant et 23 bits pour la mantisse)
Double prcision sur 64 bits (1 bit de signe , 11 bits pour
l'exposant et 52 bits pour la mantisse)

Pr M MOUGHIT Architecture des ordinateurs 37


Le standard IEEE 754

L'exposant est sur 8 bits par excdent 127 pour la simple


prcision
Lexposant est sur 11 bits par excdent 1023 pour la double
prcision.
La mantisse est normalise par la relation 1< |m| < 2
La mantisse s'crit toujours sous la forme 1, donc elle possde
un bit dont on sait qu'il est un et par la suite ce n'est pas la
peine de le reprsenter. Il suffit de noter implicitement sa
prsence, on parle de pseudo-mantisse

Pr M MOUGHIT Architecture des ordinateurs 38


Le standard IEEE 754
Exemple: soit reprsenter en IEEE754 simple prcision le
nombre:
N=12.1875 = (1100,0011)2.
La premire tape est la normalisation de la mantisse afin de raliser la
condition:
1< |m| < 2
on a N=12.1875 = (1100,0011)2=(1,1000011)2*23
on en dduit m=1,1000011 et e=3
N>0 donc le bit de signe est 0.
e est reprsent en ajoutant l'excdent : 3+127=130=(10000010)2
les 23 bits de la mantisse sont obtenus en supprimant le bit cach et en
conservant 23 bits droite de la virgule, d'o:
N = (0 10000010 10000110000000000000000)IEEE.

Pr M MOUGHIT Architecture des ordinateurs 39


Les Codes
Dfinition
Les codes sont des combinaisons de bits permettant de
reprsenter sous forme binaire des informations quelconques
Le code binaire naturel
Cest lquivalent binaire du nombre
Pour une reprsentation sur 4 bit, les nombres sont cods par:
0 0000
1 0001
2 0010
.
15 1111
Pr M MOUGHIT Architecture des ordinateurs 40
Les Codes
Le code binaire cod dcimal (BCD)
 Code de 4 bit utilis pour code les chiffre de 0 9
 Il utilise lquivalent binaire sur 4 bits
 Il se confond avec le code binaire naturel de 0 9
 Exemple:
12 est reprsent en BCD par: 00010010
 Laddition des nombres en BCD ncessite lajout de 6 selon
quil ya une retenue ou pas
7+4= 11)10
0111
0100
1011
0110
00010001

Pr M MOUGHIT Architecture des ordinateurs 41


Les Codes
Le code binaire cod dcimal (BCD)
Exemple 2:
Soit calculer en BCD 65+73
65=01100101 (BCD)
73=01110011(BCD)

01100101
+
01110011
+
01100000
=
000100111000 soit la reprsentation de 138

Pr M MOUGHIT Architecture des ordinateurs 42


Les Codes
Le code BCD Excess 3
 Cest un code de 4 bits
 Il code les chiffre par leur quivalent binaire augment de 3.
 Pour laddition de deux nombres cods, on ajoute ou retranche 3 selon
quil y a une retenue ou pas
 Exemple: calcul de 7+4

7=1010 )BX3 et 4 =0111)BX3


1010
0111
00010001
00110011
01000100

Pr M MOUGHIT Architecture des ordinateurs 43


Les Codes
Le code Gray ou code binaire rflchi
 Cest un code de mme densit que le code binaire pur (avec n bit, on
code 2n Nombre)
 Cest un code non pondr
 Cest code dans le quel on passe dun nombre son suivant en
modifiant un seul bit.
 La conversion dun nombre binaire naturel en binaire rflchi est faite
selon la rgle suivante:
Chaque bit du nombre convertir est transcrit tel quil
est ou remplac par son quivalent selon quil est
prcd par un 0 ou 1 dans le reprsentation en binaire
naturel en partant de la droite vers la gauche.
 Exemple:
11(10)=1011(BN)=1110(BR)
Pr M MOUGHIT Architecture des ordinateurs 44
Les Codes
Le code Gray ou code binaire rflchi
 La conversion dun nombre binaire rflchi en binaire naturel consiste
:
Chaque bit du nombre convertir est transcrit tel quil est ou
remplac par son quivalent selon quil est prcd par un 0 ou
1 en sa nouvelle reprsentation en binaire naturel en partant de
la gauche vers la droite.

 Exemple:
12 (10)=1010(BR)=1100(BN)

Pr M MOUGHIT Architecture des ordinateurs 45


lments dalgbre de boole
Dfinition
 Lalgbre de Boole est un ensemble de variable deux tats
quon appelle variable boolennes
 Les variables boolennes ont la valeur de vrit 1 ou 0 (vraie
ou faux)
 Lensemble boolen est muni des opration NON, ET, OU,
OUBIEN (OU exclusif)

Pr M MOUGHIT Architecture des ordinateurs 46


lments dalgbre de boole
Opration NON (complmentation)
 Cest une opration une seule variable

Table de vrit de lopration NON

x Non(x)
0 1
1 0

Pr M MOUGHIT Architecture des ordinateurs 47


lments dalgbre de boole
Opration ET (produit boolen)
 Cest une opration deux variables

Table de vrit de lopration ET

x y x et y
0 0 0
0 1 0
1 0 0
1 1 1

Pr M MOUGHIT Architecture des ordinateurs 48


lments dalgbre de boole
Opration OU (addition boolenne)
 Cest une opration deux variables

Table de vrit de lopration OU

x y x ou y
0 0 0
0 1 1
1 0 1
1 1 1

Pr M MOUGHIT Architecture des ordinateurs 49


lments dalgbre de boole
Proprits de Base

Pr M MOUGHIT Architecture des ordinateurs 50


lments dalgbre de boole
x y z y.z x+(y.z) x+y x+z (x+y).(
x+z)
0 0 0 0 0 0 0 0
0 0 1 0 0 0 1 0
0 1 0 0 0 1 0 0
0 1 1 1 1 1 1 1
1 0 0 0 1 1 1 1
1 0 1 0 1 1 1 1
1 1 0 0 1 1 1 1
1 1 1 1 1 1 1 1
Pr M MOUGHIT Architecture des ordinateurs 51
51
lments dalgbre de boole
Involution

lment neutre

Pr M MOUGHIT Architecture des ordinateurs 52


lments dalgbre de boole
Complmentation

Thorme de Morgan
La ngation dun produit de variable est gale la somme
des ngations des termes du produit
La ngation dune somme de variable est gale au produit
des ngations des variables

Pr M MOUGHIT Architecture des ordinateurs 53


lments dalgbre de boole
Proprit dabsorption

Proprit du concensus

Pr M MOUGHIT Architecture des ordinateurs 54


lments dalgbre de boole

Dautres Proprits

Pr M MOUGHIT Architecture des ordinateurs 55


Les Fonctions logiques
Dfinition:
On appelle fonction logique de n variables logiques

Une application qui fait correspondre toute combinaison


binaire Un lment y {0,1}

Pr M MOUGHIT Architecture des ordinateurs 56


Les Fonctions logiques
Fonctions Particulires:
Fonction NON: Fonction une seule variable
f(x)=x
La fonction NON est assure par le circuit 7404 de la
technologie TTL

Pr M MOUGHIT Architecture des ordinateurs 57


Les Fonctions logiques
Fonctions Particulires:
Fonction ET (AND): Fonction deux variables
f(x,y)=x.y
La fonction ET est assure par le circuit 7408 en
technologie TTL

Format canonique de AND

CI 7408
Pr M MOUGHIT Architecture des ordinateurs 58
Les Fonctions logiques
Fonctions Particulires:
Fonction OU (OR): Fonction deux variables
f(x,y)=x+y
La fonction ET est assure par le circuit 7432 en
technologie TTL

Format canonique de OR CI 7432

Pr M MOUGHIT Architecture des ordinateurs 59


Les Fonctions logiques
Fonctions Particulires:
Fonction NAND: Fonction deux variables,
complmentaire de la fonction AND
f(x,y)=x.y
La fonction NAND est assure par le circuit 7400 en
technologie TTL

Format canonique de NAND


CI 7400

Pr M MOUGHIT Architecture des ordinateurs 60


Les Fonctions logiques
Fonctions Particulires:
Fonction NOR: Fonction deux variables,
complmentaire de la fonction OR
f(x,y)=x+y
La fonction NOR est assure par le circuit 7402 en
technologie TTL

Format canonique de NOR

Pr M MOUGHIT Architecture des ordinateurs 61


Les Fonctions logiques
Les diffrentes reprsentations dune fonction logique
Reprsentation par table de vrit:
 Cest une reprsentation 2n entres dans le cas
dune fonction n variables
 Les entres correspondent aux diffrentes
combinaisons des n variables
 Les combinaisons sont ordonnes selon le code
binaire naturel

Pr M MOUGHIT Architecture des ordinateurs 62


Les Fonctions logiques
Les diffrentes reprsentations dune fonction logique
Reprsentation par table de veitch:
 Cette table deux entres, une entre colonne de p
variable et une entre ligne q variable
 N=p+q est le nombre de variable dont dpend la
fonction
 Les variables colonnes et lignes sont ordonnes selon le
code binaire naturel
 Exemple: Fonction majoritaire 3 variables
x/yz 00 01 10 11
0 0 0 0 1
1 0 1 1 1
Pr M MOUGHIT Architecture des ordinateurs 63
Les Fonctions logiques
Les diffrentes reprsentations dune fonction logique
Reprsentation par table de Karnaugh:
 Cette table deux entres, une entre colonne de p
variable et une entre ligne q variable
 N=p+q est le nombre de variable dont dpend la
fonction
 Les variables colonnes et lignes sont ordonnes selon le
code binaire rflchi
 Exemple: Fonction majoritaire 3 variables
x/yz 00 01 11 10
0 0 0 1 0
1 0 1 1 1

Pr M MOUGHIT Architecture des ordinateurs 64


Les Fonctions logiques
Les diffrentes reprsentations dune fonction logique
Reprsentation par table de Karnaugh:
 Dans une table de karnaugh, deux cases adjacentes
correspondent deux combinaisons adjacentes du
vecteur dentre.
 Deux combinaisons adjacentes ne diffrent que par
ltat dune seule variable.

Pr M MOUGHIT Architecture des ordinateurs 65


Les Fonctions logiques
Les diffrentes reprsentations dune fonction logique
Reprsentation numrique dune fonction logique
 On remplace les diffrents combinaisons binaires des
vecteurs dentres par leur quivalent dcimal
 La fonction sera reprsent par deux runions R1 et R0
 R1 est la runion de toute les combinaisons pour
lesquelles la fonction prend la valeur 1
 R0 est la runion de toute les combinaisons pour
lesquelles la fonction prend la valeur 0
Exemple:
Pour la fonction majoritaire,
Maj(x,y,z)=R1(3,5,6,7)
Maj(x,y,z)=R0(0,1,2,4)
Pr M MOUGHIT Architecture des ordinateurs 66
Les Fonctions logiques
Les diffrentes reprsentations dune fonction logique
Reprsentation algbrique dune fonction logique
Cas dune fonction une seule variable

Cas dune fonction deux variables

Pr M MOUGHIT Architecture des ordinateurs 67


Les Fonctions logiques
Les diffrentes reprsentations dune fonction logique
Reprsentation algbrique dune fonction logique
Exemples:
Soit la fonction f(x) dfini par la table de vrit:

x1 x0 f(x)
0 0 1
0 1 0
1 0 0
1 1 1

Pr M MOUGHIT Architecture des ordinateurs 68


Les Fonctions logiques
Les diffrentes reprsentations dune fonction logique
Reprsentation algbrique dune fonction logique
Cas dune fonction n variables

F peut tre reprsente par la forme canonique


(dual de lexpression prcdente)

Pr M MOUGHIT Architecture des ordinateurs 69


Simplification des Fonctions logiques

Objectif
Le but de ce chapitre est lobtention de
lexpression algbrique minimale dune fonction
logique afin de la raliser avec un nombre rduit
de porte logique

Pr M MOUGHIT Architecture des ordinateurs 70


Simplification des Fonctions logiques
Simplification algbrique

Elle Consiste utiliser les diffrentes proprits de


base de lalgbre de Boole pour aboutir lexpression
algbrique la plus simple.

Exemple: Simplification de la fonction majoritaire

Pr M MOUGHIT Architecture des ordinateurs 71


Simplification des Fonctions logiques
Simplification laide de la table de karnaugh

 La proprit dadjacence offerte par la table de karnaugh


permet de trouver lexpression minimale dune fonction
logique
 La simplification par la table de karnaugh est bas sur la
proprit dadjacence:

P est le produit de (n-1) variable pour une fonction de n variables

Pr M MOUGHIT Architecture des ordinateurs 72


Simplification des Fonctions logiques
Simplification laide de la table de karnaugh

 La simplification consiste concevoir tous les points


vrais de la fonction par le minimum de groupement de
maximum de 1. Lexpression minimale est alors la somme
de tous les lments obtenus partir des diffrents
groupements quappelle les composants premiers de la
fonction logique.
 On distingue les composants premiers principaux et les
fonctions premiers secondaires

Pr M MOUGHIT Architecture des ordinateurs 73


Simplification des Fonctions logiques
Simplification laide de la table de karnaugh

 Un Composant premier principale est obtenu partir


dun groupement qui contient au moins un 1 qui
nappartient aucun autre groupement
 Un composant premier secondaire est obtenu partir
dun groupement dont tous les 1 appartiennent dautre
groupement
 Lexpression minimale dune fonction logique est
obtenue par la somme de tous les groupements
principaux et tous les groupements secondaires
ncessaires
Pr M MOUGHIT Architecture des ordinateurs 74
Simplification des Fonctions logiques
Simplification laide de la table de karnaugh

 On peut obtenir une expression minimale sous forme de


produit de somme en dveloppant par rapport aux 0
adjacents.
 La mthode de karnaugh perd son intrt en dpassant 4
variables
 La mthode karnaugh est non systmatique, elle est
plutt visuelle.

Pr M MOUGHIT Architecture des ordinateurs 75


Exemples:

Pr M MOUGHIT Architecture des ordinateurs 76


Exemples:

Simplifier la fonction
1- F1(x)=R1(0,1,2,7,5,8,9,10,13)+R0(3,4,12,15)
2- F2(x)=R1(0,1,2,7,5,8,9,10,13)+R-(3,4,12,15)

Pr M MOUGHIT Architecture des ordinateurs 77


78
Simplification des Fonctions logiques
Simplification par la mthode Quine-McCluskey

 Cette mthode est galement base sur la proprit


dadjacence

 QMC consiste chercher les composants premiers de la


fonction logique

Pr M MOUGHIT Architecture des ordinateurs 79


Simplification des Fonctions logiques
Simplification par la mthode Quine-McCluskey

 QMC est une mthode systmatique programmable


 La complexit de QMC est indpendante du nombre de
variable

Pr M MOUGHIT Architecture des ordinateurs 80


Simplification des Fonctions logiques
Simplification par la mthode Quine-McCluskey

 Demande de la premire forme canonique de la fonction


 On groupe les termes de cette forme canonique en
groupement comportant le mme nombre de variable
non complments
 Groupe 0 contient simplement le terme 0, 0 variable non
complmente
 Groupe 1 contient une variable non complment {1,2,
4,8, 16,}
 Groupe 2 contient deux variable non complmentes {3,
5, 6, 9 .}
Pr M MOUGHIT Architecture des ordinateurs 81
Simplification des Fonctions logiques
Simplification par la mthode Quine-McCluskey
 La recherche des composants premiers est faite en
respectant les rgles suivantes
1- Une combinaison ne peut tre rductible quavec une
autre combinaison place dans le groupe voisin
2- Une combinaison nest rductible avec une autre dun
groupement voisin que si elle ne diffre que par ltat
dune seule variable
3- deux combinaisons rductibles seront marques car elles
ne peuvent pas tre des composantes premiers
4- Cette recherche de composantes premiers se fait en
plusieurs tapes. Chaque tape opre sur les termes
obtenus ltape prcdente
Pr M MOUGHIT Architecture des ordinateurs 82
Simplification des Fonctions logiques
Simplification par la mthode Quine-McCluskey
 Exemple: f=R1(3,4,6,7,8,11,12,15)

Pr M MOUGHIT Architecture des ordinateurs 83


Simplification des Fonctions logiques
Simplification par la mthode Quine-McCluskey

 Exemple: f=R1(3,4,6,7,8,11,12,15)

Pr M MOUGHIT Architecture des ordinateurs 84


Synthse des circuits combinatoires
Circuit additionneur complet: CI 7483

A
A=a0a1..an-1
A+B
B A=b0b1..bn-1

Circuit lmentaires
ai
Si=ai+bi
bi
ci
Si=aibi ci-1
Ci=aibi+ci-1(ai+bi)

ci-1

Pr M MOUGHIT Architecture des ordinateurs 85


Synthse des circuits combinatoires
Circuit soustracteur complet:

A
A=a0a1..an-1
A-B
B A=b0b1..bn-1

Circuit lmentaires
ai
Si=ai-bi
bi
ci
Si=aibi ci-1
Ci=aibi+ci-1(ai+bi)

ci-1

Pr M MOUGHIT Architecture des ordinateurs 86


Synthse des circuits combinatoires
Circuit Codeur dcimal en binaire naturel
E0 A0
A1
A2
E9 A3

Circuit dcodeur 3 lignes en 8 lignes


A0 E0
A1
A2
E7

Pr M MOUGHIT Architecture des ordinateurs 87


Synthse des circuits combinatoires
Circuit Transcodeur DCB en 7 segments
a a
A
b
f g b
B
C
e c
D g

Exemple: Pour le nombre 3=0011, les segments a,b,c,d,g sont allums


d

Pr M MOUGHIT Architecture des ordinateurs 88


Synthse des circuits combinatoires
Circuit Multiplexeur
 Un circuit multiplexeur est un circuit qui permet de
slectionner une entre parmi N afin de la
transmettre en sortie.
 La slection de lentre se fait par lintermdiaire
dun ensemble de n bits appels bit dadresse
 Avec n on peut slectionner 2n entres
e0
e1
S
N=2n
eN-1

n bits dadresse 89
Pr M MOUGHIT
Synthse des circuits combinatoires
Exemple: Multiplexeur 1 parmi 8

Table de vrit
A2 A1 A0 S
0 0 0 E0
0 0 1 E1
0 1 0 E2
0 1 1 E3
1 0 0 E4
1 0 1 E5
1 1 0 E6
1 1 1 E7
Pr M MOUGHIT Architecture des ordinateurs 90
Synthse des circuits combinatoires
Circuit comparateur binaire

A In
Eg
Sup
B

Comparateur 3 bits
A=a2a1a0, B=b2b1b0

Pr M MOUGHIT Architecture des ordinateurs 91


Logique squentielle
Introduction
Dans la logique combinatoire, la sortie ne
change que si lentre change
Dans la logique squentielle la sortie dpend
aussi du temps
On peut avoir dans la logique squentielle, deux
sorties diffrentes pour la mme entre
Le systme squentiel prsente une volution
temporelle aprs lapplication de lentre
La variable temporelle est matrialis par
lintroductions de certaines variables auxiliaires
appeles variables internes

Pr M MOUGHIT Architecture des ordinateurs 92


Logique squentielle

Exemple
On considre un systme dont la sortie change aux
front montant de lentre.

Donc pour une entre, on peut avoir deux sorties


diffrentes

Pr M MOUGHIT Architecture des ordinateurs 93


Logique squentielle
Reprsentation dun systme squentiel
Un systme squentiel peut tre reprsent par la
figure suivante:

Pr M MOUGHIT Architecture des ordinateurs 94


Logique squentielle
Les diffrents systmes squentiels
systmes squentiels synchrones (SSS)
Pour les SSS lvolution dans le temps est contrl
par une horloge externe.
Le SSS passe dun tat un autre sur les fronts
montant ou descendant de lhorloge
Ltat des entres doit rester constant pendant toute
la dure ncessaire de la rponse du systme

Pr M MOUGHIT Architecture des ordinateurs 95


Logique squentielle
Les diffrents systmes squentiels
systmes squentiels asynchrones (SSA)
Un SSA est un systme qui volue de lui-mme. Ds
lapparition du vecteur dentre le systme voluera de
ltat stable initial un autre tat stable
Entre deux tats stables peuvent apparatre une
succession dtat transitoire du systme

Pr M MOUGHIT Architecture des ordinateurs 96


Logique squentielle

Analyse des systmes squentiels asynchrones

Lanalyse dun systme SSA consiste le ramener son


systme combinatoire avec :

Entre le vecteur

Sortie le vecteur

Pr M MOUGHIT Architecture des ordinateurs 97


Logique squentielle

Analyse des systmes squentiels asynchrones


Une analyse SSA consiste
ouvrir toutes les boucles formant S
dterminer un ensemble minimale des variables
intrieurs du systme

Pr M MOUGHIT Architecture des ordinateurs 98


Logique squentielle

Analyse des systmes squentiels asynchrones


Recherche des variables intrieures

La recherches des variables intrieures est lie la


recherche des boucles fondamentales
Une boucle est dite fondamentale si aucun sous
ensemble doprateur de cette boucle ne constitue dj
une boucle.
Lensemble des sommets qui permettent douvrir toutes
les boucles fondamentales est dit ensemble essentiel

Pr M MOUGHIT Architecture des ordinateurs 99


Logique squentielle

Analyse des systmes squentiels asynchrones


exemple

2
1
5 S

3
4

Boucles fondamentales: (1,2), (2,3), (1,4,5)


Boucles non fondamentales: (1,2,3), (1,2,3,5)
Pr M MOUGHIT Architecture des ordinateurs 100
Logique squentielle
tat Stable dun systme
tat pour lequel les sorties du systme restent inchanges, les
combinaisons des entres tant fixes

Graphe de fluence
Cest la reprsentation graphique associ la reprsentation
de la table de fluence. On associe chaque tat stable un
sommet et un arc pour les transitions entre les tats stables.

Pr M MOUGHIT Architecture des ordinateurs 101


Logique squentielle

Graphe de fluence
Un tat peut tre reprsent graphiquement comme suit:

Pr M MOUGHIT Architecture des ordinateurs 102


Logique squentielle

Graphe de fluence
Exemple: dplacement de chariot

Le chariot est initialement au repos la position A. Si On


appuie sur le bouton poussoir M, le chariot quitte A, arrive en
B et revient en A et sarrte. On suppose que on na pas le
droit dappuyer plus quune fois sur M

Pr M MOUGHIT Architecture des ordinateurs 103


Logique squentielle

Graphe de fluence
Exemple: dplacement de chariot

Pr M MOUGHIT Architecture des ordinateurs 104


Logique squentielle

Table de fluence

Pr M MOUGHIT Architecture des ordinateurs 105


Logique squentielle

Table de phase dun SSA


Dans la table des phases dduite de la table de fluence
on distinguera les tats stables du systme. On
donnera arbitrairement un numro chaque tat
stable.

MAB
000 001 011 010 110 111 101 100 GD
Q1 1 2 00
Q2 4 5 3 2 7 01
Q3 6 5 1 10

Pr M MOUGHIT Architecture des ordinateurs 106


Logique squentielle

Exemple 1
Un moteur lectrique aliment par lintermdiaire dun
contacteur C de test est actionn par deux bouton MA.
- Une impulsion sur M provoque la mise sous tension du
moteur
-Une impulsion sur A provoque larrt du moteur
-Une action simultane sur M et A provoque larrt du
moteur
M
C
SSA
A

Pr M MOUGHIT Architecture des ordinateurs 107


Logique squentielle

Variable dentre MA
10

00 1/0 2/1

11

5/0

00
3/1
01
4/0

Pr M MOUGHIT Architecture des ordinateurs 108


Logique squentielle

MA 00 01 11 10 S
1 1 4 - 2 0
2 3 - 5 2 1

3 3 4 - 2 1
4 1 4 5 - 0
5 - 4 5 2 0

Pr M MOUGHIT Architecture des ordinateurs 109


Logique squentielle

Synthse du systme squentiel par la mthode de Huffman


o Cest une mthode de synthse structur base sur
5 tapes
o Etape 1: Diagramme de transition dtat
 Dans cette tape on traduit le cahier de charge en un
diagramme dit Transition dtat o on dnombre tous les
tats stables du systme.
 La construction de ce diagramme dmarre dun tat
stable ralisable et on tablit toutes les transitions
possibles en respectant la rgle dadjacence
 On tablit aussi la traduction tabulaire du diagramme de
transition.

Pr M MOUGHIT Architecture des ordinateurs 110


Logique squentielle

Synthse du systme squentiel par la mthode de Huffman


o Etape 2: Etats quivalents
 On cherche les tats quivalents partir de la table des
phases primitives pour viter les redondances
 Deux tats stables sont quivalents si
Les mmes combinaisons dentre conduisent aux
mmes combinaisons de variable de sortie.
Et si toutes les transitions que lon peut raliser partir
de ces tats stables conduisent des tats stables
identiques ou quivalents
o Etape 3: Table des phases rduite
o Etape 4: Choix des variables internes et leur codage
o Etape 5: Detrmination des excitations secondaires
Pr M MOUGHIT Architecture des ordinateurs 111
Logique squentielle

Recherche de la table des phases rduites


oLa table des phases reduites sobtient partir de la table
des phases primitive sans tats equivalents par
fusionnement de ligne
oDeux lignes de table de phases primitives sont
fusionnables si elles sont compatibles colonne par
colonne cest--dire elles ne contiennent pas des tats
stables diffrents sur la mme colonne
oLa recherche des lignes fusionnable se fera en
comparant une ligne avec toutes les lignes qui la
suivent.

Pr M MOUGHIT Architecture des ordinateurs 112


Logique squentielle

Recherche de la table des phases rduites


o les lignes fusionables peuvent contenir dans une mme
colonnes:
Un tat stable et un tat transitoire de mme
numro
Deux tats transitoires de mme numro
Un tat stable et un tat non spcifi
Deux tats non spcifis

Pr M MOUGHIT Architecture des ordinateurs 113


Logique squentielle
Recherche de la table des phases rduites
o On ordonne cette recherche en associant un polygone de
fusionnement la table des phases primitive
o Ce polygone possde autant de sommet que les tats stables
o Deux lignes fusionables sur la table seront relis par un trait
continu sur le polygone de fusionnement
o Le trait est plein si les deux sommets ont la mme sortie
o Le trait est en pointill si les sommets ont des sorties
diffrentes.
o Lexamen de polygone de fusionnement permet de trouver la
plus grande fusion possible entre les lignes.
o N lignes de polygone sont fusionnabes en une seule ligne si
elles constituent un polygone de n ct comportant toutes ses
diagonales
114
Pr M MOUGHIT
Architecture des ordinateurs
Logique squentielle
Choix des variables internes et codage des lignes
o Le nombre de variable interne ncessaire la synthse
du SSA dpend du nombre de ligne de la table des
phases rduites
o si le nombre de ligne est N tel que 2p-1N 2p alors le
nombre de variables choisir est p

Pr M MOUGHIT Architecture des ordinateurs 115


Logique squentielle
Codage des lignes de la table des phases rduites
o Le codage des lignes doit se faire en respectant la
rgle dadjacence afin dviter les courses.
o On affecte chaque ligne de la table un tat interne qi
o On analyse la table colonne par colonne afin de
dnombrer toutes les transitions qui doivent
seffectuer dun tat transitoire un tat stable
o Si dans une colonne, on a plus dune transition pour
un mme tat stable, on cre des chemins
dadjacence utilisant un ou plusieurs tats
intermdiaires

Pr M MOUGHIT Architecture des ordinateurs 116


Logique squentielle
Dfinition de cycle
Dans lvolution temporelle dun SSA, le systme peut
partir dun tat stable initiale ne pas aboutir un
autre tat stable, mais parcourir priodiquement une
succession dtat transitoire. On dit que le SSA dcrit
un cycle
Il faut viter les cycles dans la synthse des SSA
ab 00 01 11 10

00 00 01

01 00

11

10

Pr M MOUGHIT Architecture des ordinateurs 117


Logique squentielle
Dfinition de course
Une situation ncessitant la variation de plus d'une variable
secondaire est appele une course.
Si l'tat final que le systme atteint ne dpend pas de l'ordre dans
lequel les variables changent, alors la course est non critique,
dans le cas contraire la course est critique.

Pr M MOUGHIT Architecture des ordinateurs 118


Logique squentielle
Exemple de course
y1y2
00

11
00 10
01
00
Course non critique
Si le systme est dans l'tat y1y2=11 et que les entres passent de 00 01. On
dsire
par consquent aller vers l'tat stable 00. Si y1 change plus vite que y2, le circuit
ira dans l'tat 01 et atteindra finalement l'tat stable 00.
Par contre, si y2 change plus vite que y1, le systme ira vers l'tat stable 10 et s'y
maintiendra. Nous avons une course critique et le fonctionnement du systme sera
incorrect. On parle dune course critique.

Pr M MOUGHIT Architecture des ordinateurs 119


Logique squentielle
Exemple de synthse
MA 00 01 11 10 S
1 1 4 - 2 0 12
13
2 3 - 5 1
2 14
15
3 3 4 - 2 1
4 1 4 5 - 0
5 - 4 5 2 0

Pr M MOUGHIT Architecture des ordinateurs 120


Logique squentielle
Table des phases rduite

MA 00 01 11 10 S
1,4,5 1 1 1 2 0
2,3 2 1 1 2
1

Dtermination des tables dexcitations secondaires


MA 00 01 11 10 S
0 0 0 0 1 0

1 1 0 0 1 1
121
Logique squentielle
Exemple de synthse
Etats quivalents
2
1 3

10

9
4

5
7
6

Pr M MOUGHIT Architecture des ordinateurs 122


Logique squentielle
Exemple de synthse
Etats quivalents Choix de variable
2
1 3
Choix 1 Choix 2 Choix 3
10
1,2 1,2 1,2
3,5, 6,7 3,6,8,10 3,4,9
9 4,9 4,9 5,6,7
4
8,10 7,5 8,10

5
7
6

Pr M MOUGHIT Architecture des ordinateurs 123


Logique squentielle
On fait par exemple le choix 1 des variables

Choix 1 Choix 2 Choix 3


Codage par adjacence
1,2 1,2 1,2 Le codage des lignes de la
3,5, 6,7 3,6,8,10 3,4,9 table des phases rduite doit
4,9 4,9 5,6,7 se faire en respectant la rgle
8,10 7,5 8,10 dadjacence afin dviter les
courses.
Table des phases rduite

Pr M MOUGHIT Architecture des ordinateurs 124


Logique squentielle
Codage par adjacence

Pour appliquer la mthode de codage par adjacence on


procde par lanalyse de la table des phases rduite
colonne par colonne afin de dnombrer toute les transitions
qui doivent seffectuer dun tat transitoire un tat stable.

Pr M MOUGHIT Architecture des ordinateurs 125


Logique squentielle
Exemple 2
On veut faire la synthse dun systme squentiel asynchrone
deux entres a et b et une sortie s.
S est telle que: s=b si a=1 si non s doit conserver ltat quelle
avait.
Exemple 3
On dsire faire la synthse dun SSA 2 entres x0,x1 et
une sortie X
Les entres x0,x1 doivent permettre la mise 1 de X, la
mise 0 de X et la conservation de ltat X
x0= 0 et x1=1 implique X=1 x0= 1 et x1=0 implique X=0
x0= 0 et x1=0 implique X(n)=x(n-1)
Pr M MOUGHIT Architecture des ordinateurs 126
Logique squentielle
Exemple 3
On dsire faire la synthse dun SSA 2 entres x0,x1 et
une sortie X
Les entres x0,x1 doivent permettre la mise 1 de X, la
mise 0 de X et la conservation de ltat X

x0= 0 et x1=1 implique X=1 x0= 1 et x1=0 implique X=0


x0= 0 et x1=0 implique X(n)=x(n-1)
x0 =1et x1=1 implique selon les cas plusieurs tats:
1er Cas: X(n)=X(n-1) Bascule sans priorit
2me Cas: X(n)=X(n-1) Bascule JK asynchrone
3me Cas: X=1 Bascule enclenchement
4me Cas: X=0 Bascule dclenchement prioritaire
Pr M MOUGHIT Architecture des ordinateurs 127
Logique squentielle
5me cas:
x0=1 et x1=1 interdit
x0= 0 et x1=1 implique X=1
x0= 1 et x1=0 implique X=0
x0=x1=0 tat mmoire

R S Qn+1
0 0 Qn
0 1 1
1 0 0
1 1 interdit

Pr M MOUGHIT Architecture des ordinateurs 128


Logique squentielle
5me cas:
x0=0 et x1=1 implique X=1
x0= 1 et x1=0 implique X=0
x0= 0 et x1=0 interdit
x0=x1=1 tat mmoire

R S Qn+1
0 0 Interdit
0 1 1
1 0 0
1 1 Qn

Pr M MOUGHIT Architecture des ordinateurs 129


Logique squentielle
Les Mmoires binaires synchrones

o La synchronisation se fait laide dune horloge CK

Si CK vaut 0 la bascule est en tat mmoire.


Si CK vaut 1 la bascule est sous contrle de ses entres

Pr M MOUGHIT Architecture des ordinateurs 130


Logique squentielle
Les Bascules RS synchrones

R Q
CK RS
S
Q

Pr M MOUGHIT Architecture des ordinateurs 131


Logique squentielle
Les Bascules RS Matre esclave
o La bascule matre esclave prend en considration ltat des
entres S et R sans changement de ltat de sa sortie.
o Quand CK passe 0 lesclave souvre pour transmettre letat
dfinitif.
o La prise en compte des entres se fait par le matre lorsque
CK est 1.
o Lesclave est ferm toute variation

Pr M MOUGHIT Architecture des ordinateurs 132


Logique squentielle
Les Bascules D
o La bascule D est une drive de la bascule RS.
o Elle transfre en sortie, en concidence avec une impulsion
dhorloge Ck linformation prsente sur lentre

Pr M MOUGHIT Architecture des ordinateurs 133


Logique squentielle
Les Bascules D

Pr M MOUGHIT Architecture des ordinateurs 134


Logique squentielle
Synthse par utilisation des bascules binaires
o Dans cette synthse on attribue chaque variable interne
une bascule
o La sortie des bascules doit respecter la table des
excitations secondaires obtenus
o On utilise des bascules synchronises pour la synthse des
SSA

Pr M MOUGHIT Architecture des ordinateurs 135


Logique squentielle

Synthse par utilisation des bascules JK


Soit le systme SSA suivant:
Y1Y2
e1e2 00 01 11 10
y1y2
00 00
01 00 -

01 - 01
11 11

11 - 11 10 11

10 00 10 10 11

Pr M MOUGHIT Architecture des ordinateurs 136


Logique squentielle
Synthse par utilisation des bascules RS

Exemple
La table de vrit dune RS est:

y Y R S

0 0 - 0

0 1 0 1

1 0 1 0

1 1 0 -

Pr M MOUGHIT Architecture des ordinateurs 137


Logique squentielle
Synthse par utilisation des bascules RS
Exemple y1
R1S1

e1e2 00 01 11 10
y1y2 R1=e1e2
S1=e1y2
00 -0 -0 -0 -

01 - -0 01 01

11 - 0- 0- 0-

10 10 0- 0- 0-
Pr M MOUGHIT Architecture des ordinateurs 138
Logique squentielle
Synthse par utilisation des bascules RS
Exemple y2
R1S1
e1e2 00 01 11 10
y1y2
R1=y1e1e2
00 -0 01 -0 -
S1=y1e1e2+e1e2

01 - 0- 0- 0-

11 - 0- 10 0-

10 -0 -0 -0 01

Pr M MOUGHIT Architecture des ordinateurs 139


Synthse par utilisation des bascules RS
e1 e2
R
Q
B1
S
Q

Q
B2
Q
Logique squentielle
Synthse par utilisation des bascules JK
Table de vrit de la bascule JK
Y y Y j k
JK 00 01 11 10
y 0 0 0 -
0 0 0 1 1 0 1 1 -
1 0 - 1
1 1 0 0 1
1 1 - 0

Pr M MOUGHIT Architecture des ordinateurs 141


Compteurs binaires

o Les compteurs binaires sont des circuits


squentiels permettant un comptage en binaire
gnralement naturel au rythme dun signal de
comptage gnralement une horloge
o Le comptage se fait sur un certain nombre de bits
o Pour N bits on aura un comptage de 0 2N-1
o Un compteur binaire est dit modulo N, sil compte
de 0 N-1 et retourne 0

Pr M MOUGHIT Architecture des ordinateurs 142


Compteurs binaires

Les compteurs binaires asynchrones


o Ces compteurs sont constitus par des bascules JK
matre-esclave
o Le signal dhorloge est appliqu la premire horloge
o Les autres bascules ont pour signal de compteur la
sortie de la bascule qui les prcde
o Pour un compteur modulo N=2p nous aurons besoin
de p bascules jk

Pr M MOUGHIT Architecture des ordinateurs 143


Compteurs binaires

Les compteurs binaires asynchrones

Pr M MOUGHIT Architecture des ordinateurs 144


Compteurs binaires

Les compteurs binaires asynchrones modulo N=2P

Pr M MOUGHIT Architecture des ordinateurs 145


Compteurs binaires

Les compteurs binaires asynchrones modulo N=2P

Pr M MOUGHIT Architecture des ordinateurs 146


Compteurs binaires

o Un compteur modulo 8 peut tre ralis par 3 bascules JK


o Les sorties Q0, Q1 et Q2 fournissent des signaux
priodiques de frquences respectivement 2, 4, 8 fois plus
faibles

Pr M MOUGHIT Architecture des ordinateurs 147


Compteurs binaires

Les compteurs binaires asynchrones modulo N2P


o Les bascules utiliss pour ces compteurs, sont des
bascules JK maitres esclaves possdant en plus
des entres j, k deux entres asynchrone Pr et Cr
permettant respectivement le forage 1 et le
forage 0 de la bascule
o Les entres Pr et Cr sont indpendants de lhorloge
contrairement aux entres J,K
o Cr et Pr sont actif ltat bas

Pr M MOUGHIT Architecture des ordinateurs 148


Compteurs binaires
Exemple de compteur modulo 10

Cest un compteur de 0 9 se remets aprs la 10me


impulsion
Q0 Q1 Q2 Q3

1 1 1 1
CK
1 1 1 1

Cr Cr Cr Cr

Pr M MOUGHIT Architecture des ordinateurs 149


Compteurs binaires

Les compteurs binaires Synchrones


Contrairement aux compteurs asynchrones qui ne reoivent
le signal dhorloge uniquement sur la premire bascule, les
compteurs synchrones

Ck

Pr M MOUGHIT Architecture des ordinateurs 150


Compteurs binaires

Les compteurs binaires Synchrones


Les bascules JK doivent tre prdispos laide des entre
JK pour passer au nombre suivant
Exemple: compteur modulo 10 synchrone

Ck

Pr M MOUGHIT Architecture des ordinateurs 151


Compteurs binaires

Les compteurs binaires Synchrones


QN,1QN,0 QN+1,3
00 01 11 10
QN,3QN,2

00 0 0 0 0

01 0 0 1 0

11 - - - -

10 1 0 - -

Pr M MOUGHIT Architecture des ordinateurs 152


Compteurs binaires

Les compteurs binaires Synchrones


QN,1QN,0 J3 K3
00 01 11 10
QN,3QN,2
J3=Q2Q1Q0
00 0- 0- 0- 0-
K3=Q0
01 0- 0- 1- 0-

11 - - - -

10 -0 -1 - -

Pr M MOUGHIT Architecture des ordinateurs 153


Compteurs binaires

Les compteurs binaires Synchrones


QN,1QN,0 QN+1,2
00 01 11 10
QN,3QN,2

00 0 0 1 0

01 1 1 0 1

11 - - - -

10 0 0 - -

Pr M MOUGHIT Architecture des ordinateurs 154


Compteurs binaires

Les compteurs binaires Synchrones


QN,1QN,0 J2K2
00 01 11 10
QN,3QN,2

00 0- 0- 1- 0- J2=K2=Q1Q0

01 -0 -0 -1 -0

11 - - - -

10 0- 0- - -

Pr M MOUGHIT Architecture des ordinateurs 155


Compteurs binaires

Les compteurs binaires Synchrones


QN,1QN,0 QN+1,1
00 01 11 10
QN,3QN,2

00 0 1 0 1

01 0 1 0 1

11 - - - -

10 0 0 - -

Pr M MOUGHIT Architecture des ordinateurs 156


Compteurs binaires

Les compteurs binaires Synchrones


QN,1QN,0 J1K1
00 01 11 10
QN,3QN,2

00 0- 1- -1 -0 K1=Q0

J1=Q3.Q0
01 0- 1- -1 -0

11 - - - -

10 0- 0- - -

Pr M MOUGHIT Architecture des ordinateurs 157


Compteurs binaires

Les compteurs binaires Synchrones


QN,1QN,0 QN+1,0
00 01 11 10
QN,3QN,2

00 1 0 0 1

01 1 0 0 1

11 - - - -

10 1 0 - -

Pr M MOUGHIT Architecture des ordinateurs 158


Compteurs binaires

Les compteurs binaires Synchrones


QN,1QN,0 J0K0
00 01 11 10
QN,3QN,2

00 1- -1 -1 1- J0=k0=1

01 1- -1 -1 1-

11 - - - -

10 1- -1 - -

Pr M MOUGHIT Architecture des ordinateurs 159


Les compteurs binaires Synchrones

Q1 Q2 Q3
Q0
1
Ck

Pr M MOUGHIT Architecture des ordinateurs 160


Compteurs binaires
Les compteurs binaires Synchrones
Les compteurs synchrones sont plus rapides que les
compteurs asynchrones du fait que le signal dhorloge arrive
sur toutes les bascules contrairement aux compteurs
asynchrones qui reoivent limpulsion que sur la premire
bascule et pour que la bascule N-1 rpondent, il faut que
toutes les autres bascules prcdents aient rpondu.

Pr M MOUGHIT Architecture des ordinateurs 161


Compteurs binaires
Les dcompteurs
o Un dcompteur est un systme squentiel capable de se
dcrmenter dune unit binaire chaque impulsion dhorloge
o Ils sont obtenues partir des compteurs en prenant comme
sortie les sorties complmentaires des bascules.
Exemple: Dcompteur 7 0

1 Q0

Ck
1

Q0 Q1 Q2

Pr M MOUGHIT Architecture des ordinateurs 162


Les Registres

Dfinition dun registre


Un registre est ensemble de bascules servant de mmoire
temporaire dun mot binaire

Registre dcalage
o Les registres dcalage sont constitus par un certain
nombre de bascule mise en cascade.
o Le chargement des registres dcalage se fait de deux
manires:
Entre parallle
Entre srie

Pr M MOUGHIT Architecture des ordinateurs 163


Les Registres
Entre parallle:
Linformation mmoriser est prsente sur n fils

Entre srie:
o Lorsque linformation comporte un nombre important de
bit, on procde un chargement en srie.
o Le chargement se fait par lentre successive des n
bits.
o A chaque nouvelle entre un dcalage est ncessaire
pour ne pas perdre les valeurs prcdemment charges
o Le dcalage se fait au rythme de lhorloge
Pr M MOUGHIT Architecture des ordinateurs 164
Les Registres

Exemple: Registre dcalage sur 4 bits


4 bascules RS matre esclave utiliser en cascade

Pr M MOUGHIT Architecture des ordinateurs 165


Les Registres

Exemple: Registre dcalage sur 4 bits

Pr M MOUGHIT Architecture des ordinateurs 166


Les Registres

Exemple: Registre dcalage sur 4 bits


o Linformation srie Es prsente sur lentre se trouvait
mmoris en parallle sur la sortie des bascules
D0,D1, D2, D3.
o Un tel registre permet une conversion srie- parallle
o La sortie de la bascule D3 a reproduit exactement
lentre Es aprs un retard de 4 top dhorloge

Pr M MOUGHIT Architecture des ordinateurs 167


Les Registres
Registre dcalage droite

E sera sur Qn aprs n fronts actifs de lhorloge

Pr M MOUGHIT Architecture des ordinateurs 168


Les Registres
Registre dcalage gauche

E sera sur Q1 aprs n fronts actifs de lhorloge

Pr M MOUGHIT Architecture des ordinateurs 169


Les Registres
Registre dcalage circulaire
o Cest un registre qui effectue un dcalage vers la gauche
en rpercutant la sortie de la dernire bascule vers
lentre de la dernire bascule.

Pr M MOUGHIT Architecture des ordinateurs 170


Les Registres
Applications
o Mmorisation temporaire dune information
o Conversion parallle srie
o Conversion srie parallle
o Ligne retard: permet de retarder un train binaire de n
priodes
o Multiplication et division par 2n

Pr M MOUGHIT Architecture des ordinateurs 171


Systmes microprocesseurs
Microprocesseur
o Un processeur est un ensemble matriel destin, dans
un ordinateur ou une autre machine interprter et
excuter des traitements.
o Un processeur peut tre gnraliste et constituer le
processeur central d'un ordinateur (par exemple, le
Pentium)
o ou spcialis dans des tches particulires ; par
exemple, un processeur DSP (Digital Signal Processor)
est spcialis dans le traitement des signaux
numriques.

Pr M MOUGHIT Architecture des ordinateurs 172


Systmes microprocesseurs
Microprocesseur
o Le processeur central peut tre vu comme le cerveau
(c'est la partie la plus "intelligente") ou comme le coeur
(qui pompe des instructions et expulse des donnes,) de
l'ordinateur ;
Il est aussi appel :
o UCT (Unit Centrale de Traitement) ou CPU (Central
Processing Unit) dans un gros systme,

Pr M MOUGHIT Architecture des ordinateurs 173


Systmes microprocesseurs

o Le CPU remplit les fonctions suivantes :


Dcodage et excution des instructions contenues
dans les programmes, en passant par un stockage
intermdiaire dans des registres.
Lecture/criture des donnes en mmoire.
Commande des autres lments de l'ordinateur,
contrle des oprations d'entre/sortie (clavier,
souris,...), et gestion des units de stockage et des
priphriques

Dcodage Microprocesseur
+excution Commande
priphrique
Lecture et
criture Mmoire

Pr M MOUGHIT Architecture des ordinateurs 174


Systmes microprocesseurs

o STRUCTURE EXTERNE D'UN


MICROPROCESSEUR
Vu de l'extrieur, un microprocesseur
se prsente sous la forme d'un
botier comprenant un certains
nombre de broches.

Pr M MOUGHIT Architecture des ordinateurs 175


Systmes microprocesseurs
o STRUCTURE EXTERNE D'UN MICROPROCESSEUR

Les broches permettent au processeur de communiquer


avec les composants de la carte mre.
Chaque broche est gnralement ddie une tche
unique, par exemple ...
alimentation,
bus de donnes et d'adresses,
gestion du bus (demande/autorisation d'accs au
bus par un circuit extrieur, signal de lecture/criture
d'une donne mmoire ou d'entre/sortie,...),
contrle du processeur (horloge, initialisation,
interruption,...).

Pr M MOUGHIT Architecture des ordinateurs 176


Microprocesseur
ARCHITECTURE INTERNE DU PROCESSEUR
PROCESSEUR
Un processeur est
constitu au minimum :
UNITE DE
d'une unit de COMMANDE
REGISTRES UNITE ARITHMETIQUE
ET LOGIQUE
commande qui
coordonne le
fonctionnement,
BUS INTERNE
d'une unit
arithmtique et logique
qui effectue les
traitements, INTERFACE AUX BUS
des registres qui
permettent un stockage
local. BUS (EXTERNE) DE L'UNITE
CENTRALE

Pr M MOUGHIT Architecture des ordinateurs 177


Systmes microprocesseurs

REGISTRES
Un registre est une petite mmoire spcialise (interne
au processeur) offrant la possibilit de garder en
mmoire dans le processeur lui-mme un certain
nombre d'informations, afin d'effectuer des traitements
complexes sans avoir attendre un transfert d'octets
depuis la mmoire centrale. Les transferts de donnes
entre les registres passent par le bus de donnes interne
au processeur, ce qui les rend trs rapides par rapport
aux accs la mmoire centrale qui transitent par le bus
externe

Pr M MOUGHIT Architecture des ordinateurs 178


Systmes microprocesseurs

UNITE DE COMMANDE (UC) ET UNITE


ARITHMETIQUE ET LOGIQUE (UAL)

Pr M MOUGHIT Architecture des ordinateurs 179


Systmes microprocesseurs
Unit de commande (UC ou unit de contrle)
L'UC est un organe charg de coordonner le fonctionnement des
mmoires, de l'UAL et des organes d'accs pour assurer l'excution
des instructions successives d'un programme. Elle comporte :

 Un registre appel compteur ordinal qui tient jour les adresses


mmoire des instructions successives excuter ; il est command
par les impulsions d'horloge.
 Un registre d'instruction qui mmorise l'instruction en cours
d'excution.
 Un dcodeur d'instruction qui reconnait l'instruction contenue dans le
registre instruction (il indique au squenceur la squence de micro-
commandes raliser pour excuter l'instruction).
 Un squenceur qui fournit la suite de micro-commandes (chargement,
dcalage,...) ncessaires au droulement de l'instruction. Les micro-
commandes sont dlivres suivant le rythme de l'horloge interne.

Pr M MOUGHIT Architecture des ordinateurs 180


Systmes microprocesseurs

Unit Aritmtique et logique (UAL) est un


organe dans lequel est effectivement ralis le
traitement des donnes :
Oprations arithmtiques : addition, soustraction,
dcalage droite/gauche, incrmentation,
dcrmentation.
Oprations logiques : ET boolen, OU boolen,
complmentation, OU exclusif.
 Positionnement d'indicateurs du registre d'tat

Pr M MOUGHIT Architecture des ordinateurs 181


Systmes microprocesseurs

PRINCIPE SIMPLIFIE D'EXECUTION


D'UNE INSTRUCTION

Pr M MOUGHIT Architecture des ordinateurs 182


Systmes microprocesseurs

EXECUTION D'UNE INSTRUCTION PORTANT SUR UN


OPERANDE MEMOIRE
Une instruction processeur est en gnral compose
de deux parties :
o le code opration qui indique la nature de
l'opration effectuer,
o oprande qui est la quantit sur laquelle
l'opration doit tre effectue.

Pr M MOUGHIT Architecture des ordinateurs 183


Systmes microprocesseurs
Phase de lexcution dune instruction
1re phase : recherche et dcodage de l'instruction
(cette premire phase est valable pour tout type
d'instruction).

Pr M MOUGHIT Architecture des ordinateurs 184


Systmes microprocesseurs

1. Le contenu du compteur ordinal (adresse de


l'instruction excuter) est envoy dans le registre
d'adresse. Un signal de lecture est envoy la
mmoire via le bus de commande.
2. L'instruction lue est envoye dans le registre de
donnes, puis transfre dans le registre
d'instruction. L'UC dcode l'instruction et envoie un
ordre de prparation l'UAL. Le compteur ordinal
est incrment afin de pointer sur l'instruction
suivante

Pr M MOUGHIT Architecture des ordinateurs 185


2me Phase : excution de l'instruction.

3-L'adresse de la zone (contenue dans le registre


d'instruction) est envoye dans le registre adresse (l'UC
recherche l'oprande de l'instruction).
4- L'UC dclenche le transfert des donnes traiter vers
l'UAL (registre donne) qui effectue le traitement. Le
rsultat est inscrit dans l'accumulateur. L'UC range le
rsultat en mmoire centrale l'adresse contenue dans le
registre d'instruction (en passant par les registres adresse
et donne).

Pr M MOUGHIT Architecture des ordinateurs 186


ARCHITECTURES EVOLUEES dun
Microprocesseur

ARCHITECTURES CISC ET RISC


CISC (Complex Instructions Set Computer)=
processeur jeu d'instructions classique tels
que ceux utiliss sur les micro-ordinateurs
(Intel 386, Motorola 68030,...).
RISC (Reduced Instructions Set Computer)

Pr M MOUGHIT Architecture des ordinateurs 187


Architecture CISC
o Il s'agit de processeurs complexes comportant
beaucoup d'instructions
o Le jeu d'instructions de ces processeurs est le plus
complet possible ce qui implique une complexit du
microcode et des programmes pas forcment trs
performants (une instruction complexe peut tre plus
lente que son quivalent en succession d'instructions
simples), le temps d'excution d'une instruction allant de
2 12 cycles. De plus, la plupart des instructions
microcodes ne sont pas, ou peu, utilises ;
o les instructions gnres par les compilateurs sont,
dans 50% 70% des cas, du type LOAD, CALL et
BRANCH.
Pr M MOUGHIT Architecture des ordinateurs 188
Architecture RISC
o RISC (Reduced Instructions Set Computer) = processeur
jeu rduit d'instructions
o Il s'agit de processeurs utilisant:
une logique cble (pas de microcode),
un grand nombre de registres (plusieurs centaines)
des pipelines (commencement de l'excution d'une
instruction avant mme que la prcdente ne soit
acheve).
o Le jeu d'instructions est rduit une cinquantaine avec
peu d'instructions avec rfrence mmoire, excution de
la plupart des instructions en un seul cycle machine, des
instructions courtes (un seul accs mmoire permet alors
de charger plusieurs instructions) et de formats homognes
(afin de simplifier et d'acclrer le dcodage).
Pr M MOUGHIT Architecture des ordinateurs 190
ARCHITECTURE PIPELINE

o Une architecture pipeline consiste segmenter


les units qui accomplissent ces tches afin de
pouvoir commencer une nouvelle instruction
alors que la prcdente n'est pas termine (c'est
le travail la chane du processeur).
o Une 1re instruction peut en tre au stade de
l'excution, pendant qu'une 2me en est au
dcodage et qu'une 3me est en cours de
chargement.

Pr M MOUGHIT Architecture des ordinateurs 191


Pipelining
Le pipelinage est une technique qui consiste excuter
plusieurs instructions simultanment:
Pendant quune instruction est cherche en mmoire (fetch), le
CPU avec pipeline peut dcoder une autre instruction, excuter
une troisime instruction et crire le rsultat dune quatrime
instruction
Plus le processus de Fetch et Execute est dcoup en petites
tches individuelles, plus dinstructions peuvent tre excutes
simultanment.
Pour quun pipeline fonctionne, il faut que chaque tape du Fetch et
Execute sexcute lintrieur dun temps fini (habituellement un
cycle dhorloge).
Le pipelinage permet une acclration substantielle de lexcution
des programmes. Toutefois, cette technique fait surgir plusieurs
problmes. Par exemples: il ne faut pas excuter une instruction
avant que toutes les donnes requises pour cette instructions ne
soient prsentes; les noncs conditionnels rompent la squence
des instructions; lors dune interruption il faut attendre que la pipeline
se vide, etc
Habituellement, plusieurs instructions sont charges dans CPU en
Pr avance.
M MOUGHIT Architecture des ordinateurs 192
Pipelining
o Le pipelinage permet une acclration substantielle de
lexcution des programmes. T
o Le pipelinage fait surgir plusieurs problmes. Par
exemples:
il ne faut pas excuter une instruction avant que toutes les
donnes requises pour cette instructions ne soient prsentes; l
es noncs conditionnels rompent la squence des instructions;
lors dune interruption il faut attendre que la pipeline se vide,
etc
o Habituellement, plusieurs instructions sont charges
dans CPU en avance.

Pr M MOUGHIT Architecture des ordinateurs 193


Pipelining

Pr M MOUGHIT Architecture des ordinateurs 194


ARCHITECTURE SUPERSCALAIRE
o Un processeur superscalaire incorpore plusieurs Unit de
Traitement (ALU).
o A chaque cycle d'horloge, le processeur peut donc excuter
autant d'instructions qu'il contient d'ALU.
o Cette architecture permet d'excuter plusieurs instructions
par cycle

Pr M MOUGHIT Architecture des ordinateurs 195


Scalaire et Superscalaire
o Un CPU scalaire
excute 1 instruction
par cycle dhorloge
grce sa pipeline.
o Un CPU superscalaire
peut excuter plus
dune instructions par
seconde grce
plusieurs pipelines en
parallle.

Pr M MOUGHIT Architecture des ordinateurs 196


Structure de processeur
Il existe deux types fondamentaux de structures:
Von Neumann et Harvard

Architecture Harvard

Pr M MOUGHIT Architecture des ordinateurs 197


larchitecture Von Neumann
o Dans larchitecture Von Neumann, le programme excuter
est spar du microprocesseur. Il est dans une mmoire
indpendante. Cette mmoire peut aussi contenir des
donnes.
o Lunit de contrle et dexcution est le cur de lordinateur.
Elle va chercher les instructions excuter dans la mmoire,
puis elle les excute. Les tches arithmtiques sont donne
lunit de calcul appele ALU (Arithmetical Logical Unit). Par
ailleurs, un ensemble de composantes sert dinterface entre
le microprocesseur et lusager.

Pr M MOUGHIT Architecture des ordinateurs 198


Architecture Von Neumann
Exemple de code:
Dans architecture
harvard
R2=R2+&imm*r1
Dans architecture
harvard

Mov &imm, R3
mul R1, R3
Add R3, R1

Donc nous avons 3


instructions, et plus de
cycles dhorloges
Pr M MOUGHIT Architecture des ordinateurs 199
Architecture Harvard
o Dans larchitecture Harvard les donnes et les
instructions sont spares dans la mmoire
o Bus pour accder aux donnes diffrent du bus
dinstruction
o Espace dadresses pour les instructions diffrent
de lespace dadresses pour les donnes
o Donnes et instructions peuvent tre dans
diffrents supports
o Peut lire donnes et instructions simultanment

Pr M MOUGHIT Architecture des ordinateurs 200


L Architecture Harvard

Pr M MOUGHIT Architecture des ordinateurs 201


Jeux dinstructions
o Chaque instruction excute par un CPU a un opcode
en binaire et une longueur prdtermine.
o Chaque instruction possde un mnmonique en
assembleur.

Exemple de jeu dinstruction

Pr M MOUGHIT Architecture des ordinateurs 202


La mmoire en gnral

o Une adresse permet de


dterminer lemplacement
de la mmoire lue.
o Il se retrouve un
octet(byte) ou plusieurs
octets chaque adresse
(1 byte dans lexemple).

Pr M MOUGHIT Architecture des ordinateurs 203


Les mmoires
o Les mmoires qui perdent leur contenu lorsquelles perdent leur
alimentation sont dites volatiles. Les autres mmoires sont non-
volatiles.
o Les mmoires RAM (Random Access Memory) sont volatiles.
o Les mmoires qui ncessitent un rafrachissement de leur
donnes sont dites dynamiques. Si les donnes dune mmoire
dynamique ne sont pas lues rgulirement, elles seffacent.
o Les mmoires statiques fonctionnent sans tre rafrachisses
o Les mmoires qui ne scrivent quune seule fois sont dites
ROM (Read Only Memory) ou OTP (One Time Programming).
o Les mmoires qui peuvent seffacer (et tre rcrite) laide
dune procdure spciale ont des noms qui leurs sont propres.
Flash et EEPROM seffacent lectriquement mais avec une
opration spciale, UVPROM ncessite de lultra-violet...
o Les noms sont donns aux mmoires en fonction de ces
caractristiques. Par exemple, SRAM est de la RAM statique.
Pr M MOUGHIT Architecture des ordinateurs 204
Les mmoires

Il y a plusieurs autres types et noms pour les mmoires qui ne sont pas dans la table
ci-dessus. Par exemple, on retrouvera:
SDRAM (Synchronous dynamic random access memory) qui a des
caractristiques similaires DRAM.
DDR (Double Data Rate) qui est un type de SDRAM, mais deux fois plus rapide.
DDR2 est deux fois plus rapide que DDR!
NVRWM (Non-Volatile Read Write Memory) qui dsigne une mmoire comme
EEPROM ou Flash
Pr M MOUGHIT
Architecture des ordinateurs 205
La mmoire dun ordinateur

Front Side BUS

Pr M MOUGHIT Architecture des ordinateurs 206


La hirarchie de la mmoire

Pour un processeur 2GHz, la priode dhorloge est 1/(2GHz) = 0.5ns

Pr M MOUGHIT Architecture des ordinateurs 207


Les caches
o Une cache est une mmoire daccs trs rapide place en
tampon entre une unit rapide et une mmoire lente afin
dacclrer les accs mmoire.
o La taille de la cache est dtermine par la diffrence de vitesse
entre lunit rapide et la mmoire lente
o La cache contient les dernires donnes/instructions utilises
par le CPU.
o Les caches contiennent des blocs de donnes plutt que des
donnes individuelles. Selon le principe de localit, il y a de
fortes chances que deux instructions qui se suivent soient dans
le mme bloc.
o Lorsquil veut une donne, le CPU cherche dabord dans les
caches. Si le CPU ne trouve pas les donnes dans les caches ,
il cherche dans la mmoire. Sil les trouve, il les copie dans les
caches. Les donnes adjacentes sont galement transfres
dans la cache.
o Le hit ratio est la probabilit de retrouver une donne dans la
mmoire cache.
La cache L1
o La cache L1 est habituellement lintrieur mme du CPU,
imbrique dans larchitecture mme du processeur.
o La cache L1 a une taille rduite( 128 ko),
o La cache L1 est divise en 2: une partie pour les donnes et
et une autre pour les programmes
o La cache L1 est trs utilise.

Pr M MOUGHIT Architecture des ordinateurs 209


Les caches L2 et L3
o Les ordinateurs modernes ont au moins deux niveaux de
cache et souvent trois.
o La cache L2 est plus grosse que la cache L1 (256ko
2Mo).
o Les caches L2 et L3 sont habituellement lextrieur du
CPU (mais de plus en plus lintrieur). Indpendantes
de larchitecture du microprocesseur lorsqu lextrieur.
o Habituellement pas de diffrence entre les donnes et
les instructions. Cependant, une tendance pour des
caches o les instructions sont spares des donnes
apparat dans les ordinateurs super scalaires (pouvant
excuter plusieurs instructions simultanment)
o Les caches L2, L3 sont moins rapides que L1 mais
environ 10 fois plus rapide que la mmoire.

Pr M MOUGHIT Architecture des ordinateurs 210


La mmoire virtuelle
o Le concept de mmoire virtuelle dsigne le fait que
chaque application se voit allouer un espace
dadressage virtuelle couvrant une capacit bien plus
grande que la taille physique de la mmoire centrale.
o Un gestionnaire de mmoire (MMU : Memory
Management Unit) effectue la conversion des adresses
virtuelles (connues par l'application) en adresses
physiques.
o Quand la RAM est sur le point dtre sature, le
gestionnaire de mmoire transfert des donnes depuis la
mmoire centrale vers un fichier dchange sur disque.
Lorsque ces donnes sont requises par une application,
elles sont rintgres la mmoire centrale. Ce systme
d'aller-retour entre mmoire centrale et disque est appel
swapping et est ralis par allocation dynamique

Pr M MOUGHIT Architecture des ordinateurs 211


Les interruptions
o Les interruptions ont des priorits et des
numros.
o Lors dune interruption, les activits courantes
du CPU sont temporairement suspendues. La
routine de linterruption est excute, puis les
activits du CPU continuent.
o Une interruption peut interrompre une autre
interruption si elle est de priorit plus leve.

Pr M MOUGHIT Architecture des ordinateurs 212


Les interruptions
Une Interruption du programme peut tre issue de
deux type dvnements:
ovnement asynchrone produit par
lenvironnement extrieur au CPU (Interruption
matriel), donc des instants alatoires
ovnement synchrone produit par lexcution
de certains instructions (Interruption logiciel)
donc des instants connus du programmeur

Pr M MOUGHIT Architecture des ordinateurs 213


Gestion des interruptions sur microprocesseur

BUT Des interruptions


Mettre au courant le processeur de lapparition dun
vnement extrieur attendu.
La prise en compte dune interruption provoque larrt du
programme en cours et lexcution de la procdure lie
linterruption.

Exemple:
Le dpassement dun seuil de temprature provoque la
gnration dun signal logique vers le CPU: ce dernier
excute alors la procdure logicielle dactivation de
lorgane rfrigrant

Pr M MOUGHIT Architecture des ordinateurs 214


Systmes de Gestion dinterruption
Systme de gestion non hirarchis
Toutes les interruptions ont la mme priorit
Systme de gestion hirarchis
Les interruptions moins prioritaires ninterrompe pas lexcution
des interruptions les plus prioritaires
Condition de prise en compte dune interruption
Interruption non masquable:
Doit toujours tre trait
Interruption masquable:
Peut tre ignor par le processeur

Pr M MOUGHIT Architecture des ordinateurs 215


Types dInterruption: Matriel- Logiciel

Interruption
Electronique
(Interruption
Asynchrone) Procdure
Interruption

IT ADR
INT
service
i

Interruption Table des


vecteurs
Logiciel Appel dInterruption
(Interruption IT
synchrone)

Pr M MOUGHIT Architecture des ordinateurs 216


Types dInterruption: Matriel- Logiciel

Interruption Matriel
Le concepteur prvoit des traitements logiciels correspondants
des interruptions lectroniques
Interruption Logiciel
Ce sont des procdures excuter suite lapparition des
vnements internes au programme ( Erreur, division par
zro, appel dun service d E/S)

Pr M MOUGHIT Architecture des ordinateurs 217


Types dInterruption: Matriel- Logiciel

Interruption Matriel
Le concepteur prvoit des traitements logiciels correspondants
des interruptions lectroniques
Interruption Logiciel
Ce sont des procdures excuter suite lapparition des
vnements internes au programme ( Erreur, division par
zro, appel dun service d E/S)

Pr M MOUGHIT Architecture des ordinateurs 218


Exemples dInterruption

Pr M MOUGHIT Architecture des ordinateurs 219


Exemples dInterruption

Pr M MOUGHIT Architecture des ordinateurs 220


Exemples dInterruption

Pr M MOUGHIT Architecture des ordinateurs 221


Exemples dInterruption

Pr M MOUGHIT Architecture des ordinateurs 222


Excution dune Interruption
Programme Procdures
 Ds larrive dun signal IT, si celui-ci principale dinterruption
nest pas masqu, le CPU excute IT s
un programme spcifique: Le
service IT.
 Lorsque le service IT se termine, le
CPU reprend lexcution du RTI
programme
 Ladresse du retour dans ce PC de
retour
programme est sauvegarde SP
automatiquement dans la pile lors de Contexte
larrive de linterruption
 Le retour dinterruption effectue la
restauration du compteur de
programme avec ladresse du point
de retour rcupre dans la pile

Pr M MOUGHIT Architecture des ordinateurs 223


Les entres /Sorties
Input/Output

o Les I/Os sont beaucoup plus lents que le microprocesseur.


o Des bus (donnes, adresse et contrle) avec des horloges
plus lentes que celle du CPU sont drivs du bus externe
du CPU. Des modules font le lien entre les deux bus.
o Les I/Os sont adresss comme la mmoire mais avec des
registres diffrents (Par exemples, Memory Read est
remplac par I/O Read et le MAR est remplac par IOAR).

Pr M MOUGHIT Architecture des ordinateurs 224


Accs aux I/Os
o Il est possible daccder par des instructions
prprogramme (IN, OUT).
o IN: Une requte est faite au priphrique via le module
de I/O. Lorsque la rponse est reue, elle est mise dans
un registre et le CPU est avis.
o OUT: La requte dcriture est transfre au module de
I/O qui la transfre au priphrique.
o Les interruptions sont produites par les I/Os afin de
requrir une action du CPU.

Pr M MOUGHIT Architecture des ordinateurs 225


Types de Gestion des entres/sorties

Les diffrents types de gestions des E/S sont


o Par scrutation des E/S (Polling)
le CPU demande toutes les pripheriques, tour de rle, si
elles ont des nouvelles donnes disponibles
Scrutation logiciel
Scrutation cabl
o Par interruption directe
o Par interruption et scrutation des E/S
o Par accs direct mmoire (DMA)

Pr M MOUGHIT Architecture des ordinateurs 226


Gestion des entres/sorties: Polling

A des points dtermins du programme, Le CPU examine


dans chacun des botiers E/S ltat dun indicateur
dinterruption refltant loccurrence dun vnement
extrieur.
vnement vnement
Bus
donnes

Indicateur 1 Indicateur 2 Indicateur n

CPU

Bus
adresse
E/S1 E/S2 E/Sn

Pr M MOUGHIT Architecture des ordinateurs 227


Scrutation

Lire Indit 1

Oui
Indit1=1
Traitement IT1

Lire Indit 2

Indit2=1 Oui

Traitement IT2

Lire Indit n

Oui
Indit n=1
Traitement ITn

Pr M MOUGHIT RTS
Architecture des ordinateurs 228
Transmission de la priorit par Daisy Chain
Linconvnient de la scrutation par logiciel (Polling) est la
dgradation du temps implique par le test successif des
indicateurs dvnement dans la prise en compte dune
interruption.
Une scrutation cble est dfinie de manire ce que les
diverses sources dinterruptions sarbitrent elles mmes.
Le principe utilis est la transmission de la priorit suivant un
cblage ordonn des sources dinterruptions cest le principe de
Daisy Chain ou cascading ou chainage en marquerite

Pr M MOUGHIT Architecture des ordinateurs 229


Gestion des entres/sorties:Interruption directe
Une ligne directe existe entre lvnement et lentre
dinterruption IRQ du CPU

IRQ
Evnement
CPU

E/S

Pr M MOUGHIT Architecture des ordinateurs 230


Gestion des entres/sorties :
Interruption et scrutation
Plusieurs sources dinterruption partagent la mme
entre dinterruption.
Lors de linterruption, le CPU est prvenu mais il doit
tester les sources possibles dinterruption afin de
connatre celle qui est active.

Pr M MOUGHIT Architecture des ordinateurs 231


Accs directe la mmoire (DMA)
o Pour acclrer les transferts, on peut permettre au priphrique
de devenir matre du bus et daccder directement la
mmoire, ce qui est particulirement avantageux lors des
transferts de grands blocs.
o Pour implmenter la DMA , l'interface du priphrique doit
contenir un contrleur DMA, un circuit capable de grer les
transferts de donnes.
o Le contrleur DMA contient deux registres:
le registre d'adresse IOAR
IOAR stocke l'adresse du prochain mot transfrer. Il est incrment
aprs chaque transfert
 le dcompteur DC.
DC stocke le nombre de mots restant transfrer. Il est dcrment aprs
chaque transfert.

Pr M MOUGHIT Architecture des ordinateurs 232


Accs directe la mmoire (DMA)

 Deux lignes de contrle ddies


DMA_REQ
DMA_ACK
Ces deux lignes relient le processeur et le contrleur

Pr M MOUGHIT Architecture des ordinateurs 233


DMA - Implmentation
L'accs direct la mmoire se droule ainsi:
Le CPU charge IOAR et DC.
Quand le contrleur DMA est prt, il active la ligne DMA_REQ. Le
CPU donne le contrle du bus au contrleur DMA et active
DMA_ACK.
Le priphrique et la mmoire changent les donnes. DC est
dcrment et IOAR incrment aprs chaque transfert.
Si DC est gal 0, le contrleur DMA relche la ligne DMA_REQ.
Le CPU reprend le contrle du bus et relche DMA_ACK.
bus de contrle
bus dadresses
bus de
donnes
dcodeur interface
mmoire dadresse I/O

CPU DMA_REQ
DMA_ACK
IOAR DC in out command status

priphrique 234
Direct Memory Access (DMA)
o Le contrleur de DMA permet certains priphriques ayant
de larges quantits de donnes transfrer de communiquer
directement avec la mmoire, sans passer par le CPU.
o Le contrleur de DMA doit sassurer que le CPU ne sadresse
pas la mmoire lorsquil transfert des donnes. De plus, il
doit interfacer avec la mmoire de la mme faon que le
CPU.
o Le contrleur DMA prend le contrle du bus externe
(donnes, adresse et contrle) lorsquun transfert de donnes
par DMA survient.

Pr M MOUGHIT Architecture des ordinateurs 235


Assembleur, Compilateurs et
diteur de liens

Pr M MOUGHIT Architecture des ordinateurs 236


Assembleur
Dfinition
Lassembleur est un code permettant dcrire les
instructions du microprocesseur en mnmoniques
plutt quen binaire (code machine). Lassembleur est
traduite en code machine par un assembleur.
But principal
Faciliter lcriture de programmes pour un
microprocesseur donn.
Buts secondaires
Faciliter la cration et la gestion de variables.
Faciliter la cration et la gestion de boucles et
dnoncs conditionnels.
Faciliter la cration et la gestion de fonctions.
Pr M MOUGHIT Architecture des ordinateurs 237
Assembleur
Niveau dabstraction et portabilit
Lassembleur est trs prs du code machine. Une
instruction dassembleur correspond habituellement
une instruction machine.
Un programme en assembleur est indissociable du
microprocesseur pour lequel il a t construit
Exemples dassembleur:
Il existe habituellement un assembleur pour chaque
famille de microprocesseur

Pr M MOUGHIT Architecture des ordinateurs 238


Compilateur et langage de haut niveau

Dfinition
Un langage de haut niveau est constitu de chane de caractre
interprte par un compilateur afin de gnrer de lassembleur et, du
langage machine.
But principal
Faciliter lcriture de programmes et rendre les programmes disponibles
pour tous les microprocesseurs pour lesquels il existe un compilateur.
Buts secondaires
Faciliter la cration et la gestion de variables.
Faciliter la cration et la gestion de boucles et dnoncs conditionnels.
Faciliter la cration et la gestion de fonctions.

Pr M MOUGHIT Architecture des ordinateurs 239


Compilateur et langage de haut niveau
Niveau dabstraction et portabilit
Les langages de haut niveau sont relativement
indpendant du matriel. Le compilateur de transforme
habituellement une instruction de haut niveau en
plusieurs instructions dassembleur.
Un programme en langage de haut niveau peut tre
utilis sur tous les microprocesseurs pour lesquels il
existe un compilateur.
Exemples: Fortran, Pascal, Basic, C, C++

Pr M MOUGHIT Architecture des ordinateurs 240


diteur de liens ( Linker)
Dfinition
Le linker rassemble toutes les fonctions dun programme afin de cr
lexcutable. Il place ces diffrentes partie du programme en mmoire.
But principal
Relier plusieurs segments de code machine afin de constituer un
programme.
Buts secondaires
Dterminer les emplacements en mmoire de chaque composante du
programme.
Faire un lien entre toutes les fonctions et les appels de fonctions.
Faire un lien entre tous les fichiers du programme!
Niveau dabstraction et portabilit
Que ce soit pour un assembleur ou un compilateur, il existe toujours un
linker qui les accompagne

Pr M MOUGHIT Architecture des ordinateurs 241


Langage interprt
Dfinition
Un langage interprt nest pas transform en code machine. Il sagit de
fichiers textes qui sont traduits par un programme (habituellement
nomm un engine) qui agit en fonction du contenu des fichiers.
But principal
Permettre davoir des programmes (lire fichiers textes) totalement
indpendants de la plateforme utilise.
Buts secondaires
Faciliter la cration et la gestion de variables.
Faciliter la cration et la gestion de boucles et dnoncs conditionnels.
Faciliter la cration et la gestion de fonctions.
Niveau dabstraction et portabilit
Presque compltement indpendant du matriel.
Trs haut niveau dabstraction
Exemples: HTML, Java, Matlab, Labview

Pr M MOUGHIT Architecture des ordinateurs 242


Comparaisons (assembleur, haut
niveau, interprt)
Un programme en assembleur sexcutera trs
rapidement. Un langage interprt sera trs lent et un
programme en langage de haut niveau se situera entre
les 2 (plus prs de lassembleur)
Un programme en assembleur sera trs petit. Un
programme en langage de haut niveau sera beaucoup
plus important. La taille des programmes interprt
dpend largement de la puissance de linterprteur,
Accder au matriel est trs facile en assembleur,
faisable avec un langage de haut niveau, mais peut
tre ardu avec un langage interprt.
Programmer en langage de haut niveau ou en langage
interprt prend un temps similaire. Programmer en
assembleur est ternel

Pr M MOUGHIT Architecture des ordinateurs 243


Le 6809

Pr M MOUGHIT Architecture des ordinateurs 244


Architecture Externes du 6809 Motorola

Pr M MOUGHIT Architecture des ordinateurs 245


Architecture Externes du 6809 Motorola
o Le 6809 est un circuit intgr de 40 broches
A- Signaux detat de 6809
1- BA: Bus avalible (Bus disponibles)
Ces signaux sont tous programms en sortie;
Si BA=1 le microproc indique quil est dconnect de ses
bus (Etat haute impdance). Les bus sont alors disponibles
pour dautre utilisation qui demande un DMA.
Le signal BA peut tre considr comme une rponse au
systme qui demande laccs directe la mmoire
2- VMA( valid memory address)( broche 5)
Lorsque VMA passe 1 le microproc indique que
linformation binaire sur le bus adresse est une veritable
adresse dont il faut tenir compte
Pr M MOUGHIT Architecture des ordinateurs 246
Architecture Externes du 6809 Motorola
A- Signaux detat de 6809
3- R/W (read write)
Par lintermdiaire de ce signal le microprocesseur indique
au circuit qui lentoure sil est en phase de lecture ou
ecriture (R/W=1: lecture, R/W=0 ecriture)
Si R/W= 1, le bus de donnes est programm en entre
Si R/W =0 le bus de donnes est programm en sortie

Pr M MOUGHIT Architecture des ordinateurs 247


Architecture Externes du 6809 Motorola
B- Signaux de commande du p 6809
1- Halt: actif ltat bas
En front descendant sur cette broche, le p termine
linstruction en cours et met ses bus de donnes et
dadresses et la commande R/W ltat haute impdance.
Le BA passe 1.
Pendant larrt de P toutes les demandes dinterruption
sont masqus
2- MRDY (Memory Ready) (broche 36)
Ce signal extrieur permet de valider les buffers de sorties
de bus de donnes. Cest la data bus enable

Pr M MOUGHIT Architecture des ordinateurs 248


Architecture Externes du 6809 Motorola
B- Signaux de commande du mp 6809
3- TSC: three state control: contrle de ltat haut
Ce signal constitue la commande de ltat haute impdance.
Quand ce signal est ltat haut, les bus adresses, bus de de
donnes et R/w sont letat haut. Donc mme action que halt
sauf que MP suspend linstruction en cours
4-RESET:
Active letat bas. Permet une initialisation du processeur.
Linitialisation du MP, se fait par un programme dinitialisation
cre sur la ROM. Ladresse de dbut de ce programme se
trouve sur les deux cases mmoire FFFE et FFFF
5-IRQ (Interupt Request)
Par lintermdiaire de ce signal, lenvironnement du MP peut
demander une interruption. Ce sont des interruption
masquable
Architecture Externes du 6809 Motorola
B- Signaux de commande du mp 6809
6-NMI(Interruption non masquable)
Par lintermdiaire de ce signal, lenvironnement du MP peut
demander une interruption. Ce sont des interruption non
masquable
Organisation interne
Le MP 6809 possde les registres suivants:
1. Le Registre PC (compteur de programme ou compteur
ordinal), Cest un registre de 16 bit qui sincrmente
automatiquement dune unit
2. Le SP (stack pointer) sont des registres 16 bits pour
adresser la mmoire
3. X: registre dindex 16 bits. Il contient une adresse appel
adresse de rfrence utilis dans le mode dadressage
index.
4. Les registres A, B sont deux registres 8 bits appels
accumulateurs. Ils ne peuvent contenir que des donnes
5. Registre dtat: Cest registre de 8 bits
1 1 H I N Z V C
Organisation interne
Bit Z: indique que le rsultat dune opration est nulle (Z=1)
N=1: rsultat ngatif)
H=1 Half carry
C=1 carry
Bit I: masque dinterruption
Si I=1 le MP ignore linterruption
Les modes dadressage du 6809
Le MP 6809 possde 6 modes dadressage
1-Ladressage implicite
Le code dopration contient toutes les informations
ncessaire la ralisation de linstruction
Exemple (A)+(B)------ B
ABA (mnmonique correspondante)
INX: incrmenter X
Les modes dadressage du 6809
2- Mode adressage immdiat
Le code opration est suivi par la donnes sur laquel il va
oprer.
LDA #$10
Le symbole # signifie immdiat dans la syntaxe assembleur

LDA # $80
Les modes dadressage du 6809
3- Adressage tendu: Le code opration est suivi par une
adresse
LDA $00F0 correspond (00F0)---- A

LDA $15CD
Les modes dadressage du 6809
4-Ladressage direct
Le code dopration est suivi par une adresse sur 8 bits. Ces 8
bits sont la partie basse de ladresse.

LDA $42
Les modes dadressage du 6809
5- Mode dadressage Index
Dans ce mode dadressage , ladresse est calcul en ajoutant
le contenu de registre dindex avec un dcalage donn
immdiatement aprs le code dopration
Les modes dadressage du 6809
6- Adressage relatif
Ce mode dadressage nest pas utilis que par les instruction
de branchement. Ladresse dans ce mode est calcule partir
de ladresse courante et un dplacement qui peut tre ngatif
Le 8086

Tir de: i8086_microprocessor.pdf


Pr M MOUGHIT Architecture des ordinateurs 259
Le 8086
o Le 8086 a des registres de 16 bits et peut adresser 1Mo
de mmoire (20 bits dadresse). La mmoire est externe
au CPU.
o Le 8086 gre 4 segments de 64Ko.
o Le 8086 a une architecture CISC.
o Chaque instruction du 8086 a une longueur qui lui est
propre.
o Lhorloge du 8086 peut tre 5, 8 ou 10MHz.
o Un cycle du CPU vaut 6 coups dhorloge.
o Une instruction de CPU peut habituellement tre
excute par cycle (En fonction de linstruction).

Pr M MOUGHIT Architecture des ordinateurs 260


Le 8086
o Le 8086 a 40pins. 20 pins servent de bus dadresses et
16 pins servent de bus de donnes.
o Afin de minimiser le nombre de pins, les 16 pins de
donnes sont aussi des lignes dadresse. Lors dune
opration dcriture ou de le lecture de la mmoire, les
16 pins communes (adresses et donnes) sont tour
tour des adresses, puis des donnes.
o Les autres PINs du 8086 servent au contrle des PINs
(Interruptions, Read, Write, I/Os versus mmoire, etc.)
o Le 8086 est divis en plusieurs bloc fonctionnels
le Bus Interface Unit,
des registres, un ALU,
une unit de contrle et dexcution des instructions.

Pr M MOUGHIT Architecture des ordinateurs 261


Architecture externe du microprocesseur 8086

Pr M MOUGHIT Architecture des ordinateurs 262


Schma fonctionnel du microprocesseur 8086
Schma fonctionnel du microprocesseur 8086
CLK
o Entre du signal horloge qui cadence le fonctionnement
du microprocesseur.
o Le CLK provient dun gnrateur dhorloge 8284
Schma fonctionnel du microprocesseur 8086

MN/MX :
entre de choix du mode de fonctionnement du microproc :
mode minimum (MN/MX = 1) :
le 8086 fonctionne de manire autonome, il gnre lui-mme
Les signaux de commande (RD, WR, ...) ;
mode maximum (MN/MX = 0) :
ces signaux de commande sont produits par un
contrleur de bus, le 8288. Ce mode permet de raliser des
systmes multiprocesseurs.
Schma fonctionnel du microprocesseur 8086
Reset
o Entre de remise Zro du microprocesseur.
o Lorsque lentre Reset est mise ltat haut pendant au
mois 4 priodes dhorloge, le microprocesseur est
rinitialis
Ready
o Entre de synchronisation avec la mmoire.
o Ce signal provient du gnrateur dhorloge

TEST :
entre de mise en attente du microprocesseur dun vnement
extrieur.
Schma fonctionnel du microprocesseur 8086

INTR :
Entre de demande dinterruption normale,
NMI(Non Maskable Interrupt) :
Entre de demande dinterruption non masquable. Cest une
Interruption prioritaire.
INTA : Interrupt Acknowledge,
indique que le microprocesseur accepte linterruption.
HOLD et HLDA :
signaux de demande daccord daccs direct la mmoire
(DMA).
Schma fonctionnel du microprocesseur 8086
S0 S7 :
signaux dtat indiquant le type dopration en cours sur le bus.
S2 S1 S0 caractristiques
S A0 Octet transfr
7 0 0 0 Acquittement dinterruption
0 0 Les deux octets (mot 0 0 1 Lecture I/O
complet) 0 1 0 Ecriture I/O
0 1
Octet de poids fort 0 1 1 Halt
1 0
1 0 0 Accs code
1 1 Octet faible
1 0 1 Lecture Mmoire
Aucun octet
1 1 0 Ecriture memoire
1 1 1 Passif
Schma fonctionnel du microprocesseur 8086

A16/S3 A19/S6 :
4 bits de poids fort du bus dadresses, multiplexs avec 4 bits
dtat.
AD0 AD15 :
16 bits de poids faible du bus dadresses, multiplexs avec 16
bits de donnes. Le bus A/D est multiplex (multiplexage
temporel) do la ncessit dun dmultiplexage pour obtenir
sparment les bus dadresses et de donnes :
Schma fonctionnel du microprocesseur 8086

RD : Read, signal de lecture dune donne.


WR : Write, signal dcriture dune donne.
M/IO : Memory/Input-Output, indique si le 8086 adresse la
mmoire (M/IO = 1) ou les entres/sorties (M/IO = 0).
DEN : Data Enable, indique que des donnes sont en train de
circuler sur le bus A/D (quivalent de ALE pour les donnes).
DT/R : Data Transmit/Receive, indique le sens de transfert des
donnes :
DT/R = 1 : donnes mises par le microprocesseur (criture) ;
DT/R = 0 : donnes reues par le microprocesseur (lecture).
1 cycle de bus
BHE: Bus High Enable, signal de lecture de loctet de poids fort
du bus de donnes.
Schma fonctionnel du microprocesseur 8086
Chronogramme du bus A/D :
Le 8086
Le 8086 a deux modes doprations dtermin par le
voltage prsent la pin MN/MX*: minimum et maximum.
Ces modes dterminent la fonction de plusieurs pins du
8086.
Pour aller lire ou crire la mmoire, le CPU:
Met une adresse valide sur le bus dadresse
Active la ligne ALE pour dire que ladresse est valide
Change le rle des lignes dadresse pour leur donner le rle de
lignes de donnes (Dsactiver ALE, rendre le bus de donnes
flottant en lecture, mettre DEN* LOW)
Met les donnes sur le bus de donne pour lcriture.
Active les lignes de lecture ou dcriture.
Lit les donnes au besoin.
Change le rle des lignes de donnes pour leur donner le rle de
lignes dadresse.

Pr M MOUGHIT Architecture des ordinateurs 272


Schma fonctionnel du microprocesseur 8086
Registres et drapeaux

Tir du didacticiel de EMU8086

Pr M MOUGHIT Architecture des ordinateurs 274


Les registres
AX: Registre accumulateur 16 bits ( compos de deux registres 8 bits,
AH et AL).
BX: Registre d'adresses de base 16 bits (compos de deux registres 8
bits, BH et BL).
CX: Registre compteur 16 bits (compos de deux registres 8 bits, CH et
CL).
DX: Registre de donnes 16 bits (compos de deux registres 8 bits, DH
et DL).
SI: Registre d'index source 16 bits.
DI: Registre d'index destination 16 bits.
BP: Registre pointeur de base 16 bits.
SP: Registre pointeur de pile 16 bits.
IP: Instruction pointeur 16 bits.

Pr M MOUGHIT Architecture des ordinateurs 275


Les drapeaux
Les drapeaux sont tous contenus dans un unique registre de status.
Carry Flag (CF) Ce flag est 1 lorsquil y a une retenue (carry) dans une
addition -ou un emprunt (borrow) lors dun soustraction- sur le bit le plus
significatif.
Zero Flag (ZF) - Ce flag est 1 lorsque le rsultat est zro.
Sign Flag (SF) - Ce flag est 1 lorsque le rsultat est ngatif.
Overflow Flag (OF) - Ce flag est 1 lorsqu'un dbordement a lieu.
Parity Flag (PF) - Ce flag est 1 lorsque le rsultat est un nombre pair de bits.
Mme si le rsultat est un Word (mot), uniquement les 8 bits de poids faible sont
analyss !
Auxiliary Flag (AF) - Ce flag est 1 lorsqu'un dbordement non sign a lieu sur
les 4 bits de poids faible.
Interrupt enable Flag (IF) - Lorsque ce flag est 1, le processeur ragit aux
interruptions des dispositifs externes.
Direction Flag (DF) - Ce flag est utilis par quelques instructions pour traiter les
chanes de donnes. Lorsque ce drapeau est plac 0, la chane est traite octet
par octet en incrmentant, lorsque ce drapeau est plac 1, la chane est traite
octet par octet en dcrmentant.

Pr M MOUGHIT Architecture des ordinateurs 276


Mmoire et registres segments
Le 8086 a 20 lignes dadresses et
peut donc accder une mmoire
de 2^20 adresses, soit 1Mo ou
FFFFh.
Chaque case de mmoire contient 1
byte.
Comme les registres nont que 16
bits, un registre seul ne peut
accder qu 64Ko de mmoire.
Les registres segments permettent
daccder toutes les adresses de
la mmoire.
Il y a 4 segments: un segment de
code (le programme), 2 segments
de donnes (les variables) et 1
segment pour la pile.
Pr M MOUGHIT Architecture des ordinateurs 277
Mmoire et registres segments
Les 4 registres segments sont: CS (Code Seg.), DS (Data
Seg.), ES (Extra Data Seg.) et SS (Stack Seg.).
Les registres de segment ont 16 bits.
Le segment de code contient le programme, ceux de data,
les donnes, et celui de Stack, la pile. Il est cependant
possible dutiliser les registres de segments dautres fins
Les segments peuvent tre superposs (overlap).
moins de modifier les registres segments lintrieur
mme dun programme, la taille maximum dun
programme est 4*64k = 256k. Un programme o tous les
registres segments ont la mme valeur fait 64k (.com).

Pr M MOUGHIT Architecture des ordinateurs 278


Les registres segments et associations
Chaque registre segment doit tre associ un ou plusieurs registres
afin de former une adresse physique relle. La table suivante donne ces
associations:

Une adresse physique est exprime sous la forme aaaa:bbbb en


hexadcimal o aaaa est le segment et bbbb est loffset (ou adresse
virtuelle!?!). La valeur de ladresse physique sur 20 bits est aaaa0h+bbbb
ou encore aaaa*16+bbbb.
Supposons par exemple que CS vaille 1111h et que IP vaille AAAAh.
Alors, ladresse de linstruction de programme pointe par IP (celle qui
sera excute) est 11110+ 0AAAAh = 1BBBAh.
Pour les instructions affectant la pile (PUSH, POP, CALL, RET, etc.),
SS:SP est utilis. SS:BP est ladresse de base de la pile.
DS:BX est utilis avec linstruction MOV (qui quivaut une affectation)
pour chercher des donnes en mmoire.
DS:SI et ES:SI sont habituellement utiliss pour travailler sur des
tableaux ou des chanes de caractres.
Pr M MOUGHIT Architecture des ordinateurs 279
Les modes dadressage (MOV)

Un mode dadressage est une instruction offerte par un


microprocesseur afin de transfrer de linformation dun
emplacement mmoire un autre emplacement. Cest
une opration daffectation souvent reprsente en
assembleur par linstruction MOV.
Pour le 8086, linstruction MOV dst,src signifie mettre le
contenu de src (la source) dans dst (la destination). On
dit que dst et src quils sont des oprandes.
Src et dst peuvent tre certains registres, des adresses
(variables) ou des constantes (immdiate en anglais, dst
ne peut pas tre une constante!).
Le 8086 supporte des transferts de bytes ou de mots (1
word = 2 bytes) dans certains cas. Src et dst doivent
toujours avoir la mme taille.
Pr M MOUGHIT Architecture des ordinateurs 280
Les modes dadressage
MOV REG, mmoire Direct addressing mode, base adressing mode, etc.
MOV mmoire, REG
MOV REG, REG Register Mode
MOV mmoire, immdiate
MOV REG, immdiate Immediate Mode
REG : AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP.
mmoire : BYTE PTR [BX], WORD PTR [BX], [BX+SI+7], variable, etc.
immdiate : 5, -24, 3Fh, 10001101b, etc.

MOV SREG, mmoire


MOV mmoire, SREG
MOV REG, SREG
MOV SREG, REG
SREG : DS, ES, SS, source seulement : CS.
REG : AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP.
mmoire : b. [BX], w. [BX], [BX+SI+7], variable, etc.
Remarques:
- L'instruction MOV ne peut pas changer les valeurs des registres CS et IP.
- MOV mmoire, mmoire nexiste pas.
Pr M MOUGHIT Architecture des ordinateurs 281
Variables
Une variable est un nom donn une adresse de mmoire. Il nexiste pas
dinstruction pour crer ou manipuler des variables. Il nexiste que des
instructions pour manipuler la mmoire.
Les variables sont des crations du langage assembleur afin de faciliter la
cration dun programme: Il est plus facile de retenir un nom quune adresse
de mmoire!!!
Avec les assembleurs de 8086, la syntaxe pour dclarer une variable est:
nom DB valeur pour dclarer une variable dun byte dont la valeur initiale est
valeur et le nom est nom.
nom DW valeur pour dclarer une variable dun mot.
Linstruction DB sert un insrer un byte dans la mmoire du 8086.
Ladresse de ce byte est ladresse de la variable. DW insre 2 bytes Il est
possible, si lon connat les opcodes et les oprandes des instructions du
8086 dcrire un programme avec des DB!
Lassembleur soccupera de remplacer tous les noms des variables par les
adresses correspondant ces nom.
Linstruction LEA permet daller chercher ladresse dune variable. OFFSET
aussi, voir le didacticiel de EMU8086.

Note: Changer la valeur de DS peut crer de jolis problmes avec les variables.

Pr M MOUGHIT Architecture des ordinateurs 282


Tableaux
Les tableaux peuvent tre vus comme des chanes de variables.
Une chane texte est un exemple de tableau d'octets, chaque
caractre est prsent comme un lment de code ASCII (0 255).
Voici quelques exemples de dfinition d'un tableau :
a DB 48h, 65h, 6Ch, 6Ch, 6Fh, 00h
b DB 'Hello', 0
b est la copie exacte d'une range, lorsque le compilateur voit une
chane entoure par des guillemets, il la convertit automatiquement
en un ensemble d'octets.
Si vous devez dclarer un grand tableau, vous pouvez utiliser
l'oprateur DUP.
Par exemple :
c DB 5 DUP(9)
La dclaration sans DUP :
c DB 9, 9, 9, 9, 9

Pr MTir
MOUGHIT
du didacticiel de EMU8086 Architecture des ordinateurs 283
Constantes
La directive assembleur EQU permet de
dclarer des constantes (comme un
#define en C). Exemple: MyConst EQU
12h.
Lors de lassemblage, tous les MyConst de
lexemple ci-dessous seraient remplacs
par 12h

Pr M MOUGHIT Architecture des ordinateurs 284


Instructions arithmtiques et logiques, principe

Les instructions arithmtiques et logiques sont des


opration mathmatiques (+, -, *, /) ou boolennes
(AND, XOR, NOT, ROL, ROR) opre sur des bits. Les
nombres sont exprimes en notation complment 2.
Les instructions arithmtiques et logiques changent
presque toujours les valeurs de certains drapeaux (en
fonction de linstruction).
Le rsultat de lopration est habituellement plac dans
le premier oprande: ADD A,B vaut A = A + B.
Plusieurs registres ne peuvent tre utiliss pour des
oprations arithmtiques et seuls AX,BX,CX et DX
peuvent tre utiliss directement pour les oprations
avec des bytes.

Pr M MOUGHIT Architecture des ordinateurs 285


ADD, SUB, CMP, AND, TEST, OR, XOR
2 oprandes:
REG, mmoire
mmoire, REG
REG, REG
mmoire, immdiat
REG, immdiat
REG = AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP.

Ces instructions affectent les flags suivants : CF, ZF, SF, OF, PF, AF.

ADD - Ajoute le deuxime oprande au premier.


SUB - Soustrait le deuxime oprande au premier.
CMP - Soustrait le deuxime oprande au premier pour les flags
uniquement.
AND - Compare par un ET logique tous les bits des deux oprandes.
TEST - Idem AND mais pour les flags uniquement.
OR - Effectue un OU logique entre tous les bits des deux oprandes.
XOR - Effectue un OU exclusif logique entre tous les bits des deux
oprandes.
PrduMdidacticiel
Tir MOUGHIT Architecture
de EMU8086. Modifi par Etienne Tremblay des ordinateurs 286
Exemple doprations sur des bits

Supposons que lon veille mettre le bit 3


(2^3) de AX 0, mais laisser le reste du
registre intact:
AND AL, F7h
Supposons que lon veille mettre le bit 3
(2^4) de AX 1, mais laisser le reste du
registre intact:
OR AL, 08h

Pr M MOUGHIT Architecture des ordinateurs 287


MUL, IMUL, DIV, IDIV
1 seul oprande = REG ou mmoire
REG : AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP.
Les instructions MUL et IMUL affectent uniquement les flags CF et OF :
lorsque le rsultat est plus grand que la taille de l'oprande ces flags sont
placs 1, lorsque la taille de l'oprante est ajuste ces flags sont placs
0.
Pour DIV et IDIV les flags ne sont pas dfinis.
MUL - Multiplication non signe :
byte : AX = AL * oprande.
word : (DX AX) = AX * oprande.
IMUL - Multiplication signe :
byte : AX = AL * oprande.
word: (DX AX) = AX * oprande.
DIV - Division non signe :
byte : AL = AX / oprande; AH = reste (modulo)
word : AX = (DX AX) / oprande; DX = reste (modulo)
IDIV - Division signe :
byte : AL = AX / oprande; AH = reste (modulo)
word : AX = (DX AX) / oprande; DX = reste (modulo)
Pr M MOUGHIT Architecture des ordinateurs
Tir du didacticiel de EMU8086. Modifi par Etienne Tremblay
288
Note sur les multiplications et divisions
En base deux, les multiplications et les divisions par des multiples de 2
peuvent (devraient!!!) se faire avec RCL et RCR (Rotate Left/Right with
Carry), SAL et SAR (arithmetic left/right shift), ou ROL et ROR (ROtate
Left/Right).
Schma de RCL, RCR, SAL, SAR, ROL et ROR pour une rotation de 1 bit:

Pr M MOUGHIT Architecture des ordinateurs 289


INC, DEC, NOT, NEG
Un oprande = REG ou mmoire
REG : AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP,
SP.
Les instructions INC, DEC affectent les flags suivants : ZF, SF, OF,
PF, AF.
L'instruction NOT n'affecte aucun flag.
L'instruction NEG affecte les flags suivants : CF, ZF, SF, OF, PF,
AF.

INC Ajoute 1 l'oprande.


DEC Soustrait 1 l'oprande.
NOT - Inverse chaque bit de l'oprande.
NEG - Effectue un complment 2 sur l'oprande ngative. En fait,
inverse chaque bit de l'oprande et lui ajoute 1.

Note: Si vous navez quun seul byte de 0 255, la meilleur faon


dajouter 256 est dajouter 255, puis dajouter 1
Pr M MOUGHIT Architecture des ordinateurs 290
Tir du didacticiel de EMU8086. Modifi par Etienne Tremblay
Annexe: Binaire de linstruction MOV du 8086
Thorie :

Le 8086 a un jeu dinstruction relativement simple (par rapport aux jeux dinstructions modernes!). Il est capable deffectuer toutes les
oprations de bases dun microprocesseur (sur des entiers 16 bits ou 8 bits), mais il ne gre pas de nombres flottants, il ne peut contrler
quune quantit limite de ressource (mmoires et I/Os) et sa vitesse dexcution est plutt lente.
la fin de la datasheet propose sur le site web du cours (il y en a plusieurs disponibles sur internet!!!), vous retrouverez chaque
instruction disponible pour le 8086. Ces instructions font habituellement 1 byte et elles sont habituellement simples interprter partir
du binaire. Toutefois, linstruction MOV, la plus complexe, est difficile interprter selon les donnes disponibles. Voici donc un exemple
de bits reprsentant cette instruction. Dans lexemple, qui suit, le contenu de la mmoire ladresse 0102h est mis dans le registre BX.

Instruction MOV BX,[0102h], crite en binaire:


1000 1011 0001 1110 0000 0010 0000 0001b

Premier byte (1000 1011): Selon la datasheet, l'opcode de l'instruction MOV, pour tranfrer une donne de la mmoire un registre, ou
vice versa, est 1000 10. Ensuite, vous avez les champs d et w. Comme l'indique la dernire page de la datasheet, il faut mettre d
(direction) 1 pour envoyer vers le registre. Par ailleurs, mettre le champs w (word/mot sur 16bits ou variable sur 8bits) 1 indique qu'il
faut transfrer 16 bits.

Deuxime byte (00 011 110): Selon la datasheet, vous avez les champs MOD (00), REG (011) et r/m (110). Le champs MOD dit s'il faut
faire un MOV de registre registre ou de registre mmoire. Il dit galement s'il faut additionner les contenus de certains registres au
dplacement (une adresse de mmoire est dfinie par un dplacement l'intrieur d'un segment; l'instruction MOV peut tre trs
complexe: par exemple MOV AX, [BX + SI + 1234h]). Le champs r/m dfinit les registes entrant dans le calcul de l'adresse/dplacement.
Dans notre cas, MOD est 00 et r/m est 110 afin que le dplacement soit dcrit par les deux bytes suivant en mmoire seulement (voir
l'astrisque dans la datasheet: *except if mod = 00 and r/m = 110, then EA = disp-high;disp-low). REG est 011 pour indiquer que la
destination du MOV est BX (voir la table pour REG la dernire page de la datasheet).

Troisime et quatrime byte (00000010 00000001): Ces deux bytes dcrivent le dplacement (DISP follows 2nd byte of instruction
(before data if required)). Comme on fonctionne en little endian, le byte le moins significatif du dplacement (0102h) est plac en mmoire
le premier.

Pr M MOUGHIT Architecture des ordinateurs 291


noncs conditionnels et sauts, principe
Linstruction JMP Address. Permet de mettre IP la valeur de Address. JMP
permet un saut lintrieur du code segment.
Comme les adresses des instructions sont difficiles retenir et quelles
peuvent changer lorsque le programme change, des labels ont t invents.
Un label est une tiquette remplaant ladresse dune instruction.
Linstruction JMP excute un saut inconditionnel. Les instructions JZ, JC, JS
changeront la valeur de IP si les drapeaux ont la valeur appropris. Si les
drapeaux nont pas la bonne valeur, linstruction est ignore et la prochaine
instruction est excute. Par exemple, JZ MonLabel fera excut
linstruction indique par MonLabel si le drapeau Zro est 1.
Linstruction CMP A,B a le mme effet quune soustraction sur les drapeaux,
mais elle ne change pas la valeur de A. Cette instruction est utile pour crer
des noncs conditionnels du genre if(A != B). Ce dernier exemple ce
traduirait par CMP A,B suivit de JNZ CodeAExecuterSiVrai.
La plupart des instructions de saut nutilisent quun drapeau. Cependant,
certaines comparaisons (<,>) requirent des tests sur 2 drapeaux (Zro et
(Overflow OU Carry)). Dans ces cas, il faut choisir linstruction utilise en
fonction des signes des lments compars. Voir JG, JLE, JA

Pr M MOUGHIT Architecture des ordinateurs 292


Instructions de saut
JZ Saut si zro. JNZ
JE Saut si gal. ZF = 1 JNE
JC Saut si Retenue (infrieur). JNC
JB Saut si infrieur. JNB
JNAE Saut si ni suprieur ni gal. CF = 1 JAE
JS Saut si signe ngatif. SF = 1 JNS
JO Saut si dbordement. OF = 1 JNO
JPE Saut si parit paire.
JP Saut si parit. PF = 1 JPO
JNZ Saut si pas zro. JZ
JNE Saut si diffrent. ZF = 0 JE
JNC Saut si pas de retenue. JC
JNB Saut si pas infrieur. JB
JAE Saut si suprieur ou gal. CF = 0 JNAE
JNS Saut si aucun signe (positif). SF = 0 JS
JNO Saut si pas de dbordement. OF = 0 JO
JPO Saut si parit impaire. JPE
Pr M MOUGHIT Architecture des ordinateurs 293
JNP Saut si pas de parit. PF = 0 JP
Exemple de boucle
Le code qui suit est un exemple de calcul de factoriel (Le nombre doit tre
entre 0 et 8! = 40320 afin dviter un Overflow. Le nombre est dans CX au
dbut et la rsultat est dans AX la fin. Les registres BX et DX sont
modifis par le programme.

Pr M MOUGHIT Architecture des ordinateurs 294


Macros
Une macro est une srie dinstruction prdfinies.
Lors du pr assemblage, le code contenu dans la macro est copi tous
les endroits o apparaissent la macro alors que le code dune procdure
nest habituellement qu un seul endroit de la mmoire.
Il est possible de voir une macro comme une constante, mais pour du
code: lors du pr assemblage, les constantes sont remplaces par leur
valeurs et les macros sont remplaces par des instructions.
Les macros servent viter de rcrire plusieurs fois du code qui revient
souvent dans le programme mais pour lequel on ne veut pas faire de
procdure afin de gagner du temps de calcul (viter lappel de la
procdure , le passage de paramtres,, etc.). Comme le code contenu
dans une macro est copi pour toutes les instances de la macro, un
programme avec des macros sera habituellement plus gros quun
programme avec des procdures.
Linstruction pour dfinir une macro est:
nom MACRO [paramtres,...]
<instructions>
ENDM

Pr M MOUGHIT Architecture des ordinateurs 295


Exemple de macro
Le programme qui suit met dabord 1, 2 et 3 dans AX,BX et CX
respectivement. Ensuite, il met 4, 5 et DX dans AX,BX et CX
respectivement.

MyMacro MACRO p1, p2, p3


MOV AX, p1
MOV BX, p2
MOV CX, p3
ENDM

ORG 100h
MyMacro 1, 2, 3
MyMacro 4, 5, DX
RET

Pr M MOUGHIT Architecture des ordinateurs 296


Instructions dI/Os (IN, OUT)
Le 8086 peut accder 64Ko dadresse dI/O (1 registre = 16bits!!!) .
Le processus pour accder aux I/Os est le mme lintrieur du PC que
pour accder la mmoire: les mmes lignes dadresse sont utilises (du
moins 16 sur 20), les mmes lignes de donnes sont utilises et les lignes
de lecture/criture servent dans les deux cas. Une ligne additionnelle M/IO*
sert dterminer si la mmoire ou des I/O sont adresss.
Pour accder un priphrique, les instructions IN et OUT sont utilises. IN
et OUT ont deux oprandes (adresse de I/O port- et destination/source.
Adresse peut tre une valeur immdiate de 8bits ou le registre DX (16bits).
Notez que lopcode de IN ou de OUT na quun seul paramtre (le port choisi) ou
aucun. AX ou AL est toujours utilis comme source ou destination. Lorsque lon
veut spcifier un port avec un registre, DX est automatiquement choisi. En raison
de son implmentation dans le 8086, seuls AX et DX peuvent tre utiliss avec IN
et OUT.
Exemples:
IN dst, adresse
IN AL, 10 ;Met dans AL les 8 bits donns par lI/O ladresse 10d.
IN AX, DX ;Met dans AX les 16 bits donns par lI/O ladresse
pointe par DX
OUT adresse, src
OUT 4, AX ;Met les 16 bits de AX dans lI/O ladresse 4.
OUT DX, AL ;Met les 8 bits de AL dans lI/O ladresse pointe par DX.
Pr M MOUGHIT Architecture des ordinateurs 297
Instructions de linker
(ORG, #MAKE_XYZ #, )

#MAKE_COM# , #MAKE_BIN# , #MAKE_BOOT# et #MAKE_EXE# sont


des directives propres EMU8086 qui spcifient le type de programme
produire (cela dtermine les valeurs de CS, DS, ES et SS par exemple).
La directive ORG spcifie la premire adresse de code utilis.
Plusieurs directives dassembleur existent afin de gr les emplacements
des donnes et du code. Ces instructions permettent galement des
constantes, des macros, mettre du code en option (genre #define, #ifdef,
#endif).

Pr M MOUGHIT Architecture des ordinateurs 298


Les interruptions du 8086
Une interruption interrompt lexcution squentielle des instructions par le
CPU. Lors dune interruption, lexcution du programme principal est
suspendue. Linterruption est excute, puis le programme principal est
continu.
Les sauts conditionnels ou inconditionnels ainsi que les appels de sous-routines
ne sont pas des interruptions.
Il existe 2 catgories dinterruptions: les interruptions matrielles et les
interruptions logicielles. Les interruptions matrielles surviennent lorsque les
lignes RST, NMI ou INTR du 8086 sont actives. Les interruptions logicielles
surviennent lorsque linstruction INT apparat ou lors dexceptions logicielles
(exemples: dbordement de pile (stack overflow), division par zro).
Toutes les interruptions ont un numro de 0 255d, sauf reset. Certains
numros sont fixs par le matriel, dautres par les concepteurs du 8086 et
finalement il en reste de disponibles pour le programmeur.
Les interruptions ont des priorits. Elles sont, du plus prioritaire au moins
prioritaire: Reset, Exceptions, INT, NMI et INTR. lintrieur dune de ces
catgories, lINT avec le numro le plus bas est habituellement la plus
prioritaire. Une interruption de haute priorit peut interrompre une
interruption de priorit infrieure. Une interruption de basse priorit ne peut
pas interrompre une interruption de priorit gale ou suprieure.
Linterruption Reset est la plus prioritaire.

Pr M MOUGHIT Architecture des ordinateurs 299


Interruptions vectorise
La table des vecteurs dinterruption contient ladresse des instructions excuter
lorsquun interruption survient. Pour chaque interruption, la table contient 4 bytes
dinformation: CS et IP. La taille de la table des vecteurs dinterruption est donc
256ints * 4bytes = 1Ko.
La table des vecteurs dinterruption commence ladresse 00000h et elle finit
ladresse 003FFh. Ne pas mettre de segments cet endroit!!!

-Lorsquune interruption survient, le numro de


linterruption permet de trouver lemplacement
des instructions excuter. Le numro de
linterruption est multipli par 4 afin de trouver
ladresse du CS et du IP rechercher (IP est
ladresse infrieure, suivi de CS). Puis un JMP
CS:IP est fait. CS:IP est un vecteur vers le
code excuter afin de rpondre linterruption.
- Exemple: Si le contenu de la mmoire, partir de
ladresse 00000h est 00h, 01h, 02h, 03h, 04h, 05h,
06h, 07h, 08h, etc... et que linterruption 1 survient,
alors la routine ladresse 0706:0504 sera
excute.
- Reset est la seule interruption sans numro.
Pour reset, CS:IP = FFFF0H.

Pr M MOUGHIT Architecture des ordinateurs 300


Squence dvnements aprs
une interruption
Lors dune interruption logicielle ou matrielle, les vnements suivants se
produisent:
Le 8086 termine linstruction en cours.
Le drapeau IF est test si linterruption provient de la ligne dinterruption
matrielle (INTR). Si le drapeau est 0, linterruption est ignore.
Si une autre interruption de priorit suprieure ou gale est en cours,
linterruption est ignore.
Trois registres sont mis sur la pile (PUSH) dans lordre qui suit: les
drapeaux, CS actuel, puis IP actuel. Le drapeau IF est mis 0 aprs le
PUSH des flags.
Un JMP est excut avec ladresse CS:IP trouve dans la table des
vecteurs dinterruption partir du numro de linterruption.
La routine de service de linterruption (ISR ou Interrupt Service Routine)
est excute.
Thoriquement, la dernire instruction de lISR est IRET (Interrupt
RETurn). Un IRET est quivalent trois POP dans cet ordre: IP, CS et
drapeaux.
Pr M MOUGHIT Architecture des ordinateurs 301
Interruptions Internes (Exceptions)
Les interruptions internes sont des interruptions qui
peuvent se produire sans que linstruction INT soit
prsente. Il sagit dexceptions qui surviennent quand un
vnement logiciel spcial arrive (division par zro par
exemple)
Linterruption 0 survient lorsque le diviseur de DIV ou
IDIV est 0.
Linterruption 4 survient lorsque le drapeau Overflow est
1 et que linstruction INTO est excute.
Les interruptions 1 et 3 servent pour du debug de
programme.

Note: Comme pou toutes les interruptions, les interruptions


internes dsactivent les interruptions matrielles.

Pr M MOUGHIT Architecture des ordinateurs 302


Interruptions matrielle

Pr M MOUGHIT Architecture des ordinateurs 303


Interruptions matrielles
Le 8086 a trois pins pour les interruptions matrielles: RESET, NMI et INTR.
La ligne RESET cre un reset du CPU si est HIGH pendant au moins 4
cycles dhorloge.
La ligne NMI (Non Maskable Interrupt) dclenche linterruption 2 lorsquelle
passe de LOW HIGH. Linterruption NMI nest pas dsactiv lorsque IF est
0, contrairement aux interruptions sur INTR, do son nom. Une utilisation
typique de NMI est la dtection de coupure de lalimentation lectrique.
La ligne INTR sert toutes les autres interruptions matrielles du 8086. Une
interruption est se produit lorsque la ligne est Vcc.
tant donn que le 8086 nutilise quune ligne pour la plupart des
interruptions matrielles (INTR), un PIC (Programmable Interrupt Controler)
servait initialement a multiplexer 8 interruptions pour nen former quune
seule. Comme 8 interruptions sest rvl rapidement insuffisant, un autre
PIC a t ajout. Afin de respecter le design dj en place, linterruption
matrielle 2 a t re-dirige (voir plus loin). Le 8086 supporte donc 16
interruptions matrielles (nommes IRQ0 IRQ15).
De nos jours, les PICs sont inclus dans le chipset.
chaque interruption matrielle correspond un numro dinterruption qui nest
pas gal au numro dinterruption matriel. Par exemple, IRQ0 est lINT 08. La
page suivante donne une correspondance typique entre les IRQ et les
priphriques du PC.

Pr M MOUGHIT Architecture des ordinateurs 304


Interruptions matrielles

Pr M MOUGHIT Architecture des ordinateurs 305


Interruptions matrielles
La squence dvnements suivante se produit lorsquun priphrique
produit une interruption:
Le PIC reoit et traite linterruption
Un registre interne du PIC permet au programmeur du 8086 de
masquer (dsactiver) certaines interruptions
Le PIC met linterruption dans un buffer
Le PIC regarde les priorits des interruptions et dtermine si
linterruption matrielle courante est la plus prioritaires
La ligne INTR est active par le PIC pour dire au 8086 quil y a
interruption
Un pulse de 0Vdc provenant du 8086 apparat sur la ligne INTA pour
signaler au PIC que linterruption est reue (Acknowledged). La ligne
INTR est dsactive aprs le pulse.
Un deuxime pulse de 0Vdc provenant du 8086 demande au PIC de
mettre le numro de linterruption sur le bus de donne.
Le PIC met le numro de lINT sur le bus de donne: il ne met pas le
numro de lIRQ.
Le 8086 excute la routine de service de linterruption
Le 8086 envoit un EOI (End Of Interrupt) pour dire au PIC que
linterruption est termine.
Pr M MOUGHIT Architecture des ordinateurs 306
Interruptions matrielles
Linsertion dun deuxime PIC sur la ligne IRQ2 du premier PIC a
plusieurs consquences dcoulant surtout dun dsir de conserver la
compatibilit avec les designs nayant quun seul PIC:
Les priphriques connectes sur IRQ2 ont t connects sur IRQ9 (re-
direction). Comme le vecteur dinterruption de IRQ9 nest pas le mme
que celui de IRQ2, il faut que IRQ9 appelle le vecteur dinterruption de
IRQ2 pour les designs avec un seul PIC.
Dsactiver lIRQ2 lintrieur du PIC principal dsactive les IRQ8
IRQ15.
Les interruptions matrielles 8 15 sont plus prioritaires que les
interruptions matrielles 3 7.
Les routines de service dinterruptions matrielles IRQ8 IRQ15 doivent
grer deux PICs (cest--dire en voyer 2 End Of Interrupt).

Pr M MOUGHIT Architecture des ordinateurs 307


Interruptions Logicielles
Les interruptions logicielles sont utilises pour excuter des tches
logicielles ayant priorit sur le programme principal.
Une interruption logicielle sappelle avec linstruction INT # o # est le
numro de linterruption.
Chaque interruption peut avoir des sous-fonctions. Pour spcifier une sous-
fonction, il faut placer dans un registre prdtermin le numro de la sous-
fonction voulu avant d'appeler l'interruption (le registre est souvent AH). La
sous-routine de service de linterruption testera la valeur du registre
prdtermin et aiguillera la sous-routine en consquence.
Voici quelques exemples tirs de EMU8086:
INT 20h - Quitte le systme d'exploitation.
INT 21h / AH=09h - Sortie d'une chane de caractres depuis DS:DX.
INT 21h / AH=0Ah - Entre d'une chane de caractres vers DS:DX, le premier
octet indique la taille du buffer, le deuxime octet indique le nombre de
caractres rellement lus.
INT 21h / AH=4Ch - Quitte le systme d'exploitation.
INT 21h / AH=01h - lit un caractre sur l'entre standard, avec cho, le rsultat
est stock dans AL.
INT 21h / AH=02h - crit un caractre vers la sortie standard, DL = le caractre
crire, aprs excution, AL = DL.

Pr M MOUGHIT Architecture des ordinateurs 308


Table rsume des interruptions

Pr M MOUGHIT Architecture des ordinateurs 309


Tir de: http://www.beyondlogic.org/interrupts/interupt.htm
Dtournement des Interruptions
Lors du dmarrage du PC, la table des vecteurs dinterruption est charges
avec des valeurs par dfaut.
Pour dtourner une interruption, il suffit de changer la table des vecteurs
dinterruptions. Changer le CS et lIP ladresse 4*(# de lINT dtourner)
permet de changer le code excut lorsque linterruption se produira.
En temps normal, la nouvelle ISR appellera lancienne ISR sous certaines
conditions. Pour cette raison, sauvegarder le CS et lIP de linstruction que
lon remplace est une pratique recommande (habituellement la sauvegarde
se fait dans des variables dclare cet effet).
Le fichier DetourneInt21h.asm est un exemple de programme dtournant
une interruption.

Pr M MOUGHIT Architecture des ordinateurs 310


Directives dassembleur

Plusieurs directives, et mme parfois un fichier texte, disent lassembleur


et au compilateur o et comment placer le code, la pile et les donnes en
mmoire. Ces directives ne produisent pas de code machine, contrairement
aux instructions.
Habituellement, un fichier liste (dont lextension est presque toujours lst) est
gnr par le linker: il donne lemplacement prcis de toutes les
labels/variables/instructions en mmoire. Pour EMU 8086 lquivalent de ce
fichier a lextension .com.symbol.
Les directives sont des symboles rservs: vous ne pouvez pas nommer
une variable, une procdure, une macro, un constante ou un label (jen ai
peut-tre oubli ) avec le mme nom quune directive.
Les directives permettent de dicter les valeurs initiales des registres
segments, dcrire plus aisment la squence de code (PROC, ENDP),
modifier le code avant compilation (ex: IFDEF ou EQU), crer des variables
(DB, DW), grer les programmes sur plusieurs fichiers (voire en plusieurs
langages), etc.

Pr M MOUGHIT Architecture des ordinateurs 311


Directives pour placer les segments
Lors du chargement dun programme, lentte du programme du au
systme dexploitation (lire DOS) quelle valeur doit avoir CS:IP. Les autres
segments doivent tres initialiss par le programme (exemple: MOV
AX,MonSegmentDonnes suivi de MOV DS,AX).
Les directives segment ends permet de nommer des segments sans faire
le lien avec les registres segments.
segname segment [paramtres]
Code ou variables dans le segment
Ends
La directive assume aide lassembleur. Elle fait le lien entre les segments
dclars et les registres CS,DS, ES et SS.
assume DS:segname
Exemple:
MonSegmentData segment
MaVar DB 7
ends

mov DS,AX ;AX contient MonSegmentData
assume DS:MonSegmentData ;Directive pour dire lassembleur o est MaVar
MOV AX, MaVar
Heureusement, MASM et EMU8086 ont une disposition de segments par
dfaut. Il faut un programme de plus de 64Ko de code ou de donne pour
Pr tre forc de manipuler lesArchitecture
M MOUGHIT segments des ordinateurs 312
Directives pour changer le code avant
compilation
Les directives if, else, endif et autres du mme genre (ife, ifdef, etc.).
Permettent dassembler du code si et seulement si certaines conditions sont
rencontres. Par exemple:
Processor = 80386 ;Set to 8086 for 8086-only code
...
if Processor eq 80386
shl ax, 4
else ;Must be 8086 processor.
mov cl, 4
shl ax, cl
Endif
NOTE: Il est utile de rendre une partie de code optionnelle si lenvironnement
logiciel ou matriel du code peut changer. Par exemple, si on veut utiliser le
mme code sur deux microprocesseurs diffrents ou avec deux systmes
dexploitation diffrents.
Les directives MACRO, EQU permettent de changer le code avant quil ne
soit assembl. MACRO ajoute remplace un nom de macro par une
squence dinstruction et EQU remplace un nom de constante par une
valeur pr dtermine (voir prcdemment).
Pr M MOUGHIT Architecture des ordinateurs 313
Directives pour les programmes sur
plusieurs fichiers
La directive include Filename (Filaneme doit contenir une extension) inclut
tout le contenu du fichier Filename dans le fichier o la directive et place,
lemplacement du include.
La directive public rend une variable ou une procdure disponible un autre
fichier (la directive extern doit tre utilise). Exemple: public MaVar, Mafonc
La directive extern dit au linker quune variable ou une fonction est dclare
publique lintrieur dun autre fichier

Pr M MOUGHIT Architecture des ordinateurs 314


Directives pour les programmes en
Assembleur et en dautres langages
De manire gnrale, les procdures et les variables provenant dautres
langages sont dclares/fournies laide des directives public et extern.
Il faut respecter une syntaxe trs prcise pour les paramtres des fonctions
ou les types de variables. Cette syntaxe dpend de lassembleur et du
langage utilis en conjonction avec lassembleur

Pr M MOUGHIT Architecture des ordinateurs 315


Les registres :
Petites zones mmoires pour mmoriser des infos. fin dy accder plus
rapidement que si on allait les rechercher en mc
Les registres gnraux :
AX, BX, CX et DX sont usage gnral et servent stocker temporairement une
info. De 16bits.
Chacun de ces registres est divisible en deux registres de 8bits une partie haute
(AH) et une partie base (AL)
AX (accumulateur) : instructions dI/O et certaines op. Arithm.
BX (registre de base) : peut tre utilis comme registre dadressage lors de
ladressage direct la mmoire.
CX (compteur) : compteur de boucles
DX : contient les adresses des ports pour les instructions I/O
Les registres dindex et pointeurs :
SI et DI peuvent tre utiliss comme reg. Gn. De donnes Mais le plus souvent
sont utiliss avec les instructions spcialises de manipulation des chanes de
caractres et aussi comme reg. Dadressage (index).
SP et BP accdent aux donnes de la pile (SS : SP = sommet de la pile et BP
accde des donnes dans la pile)
IP pointer dinstruction CS : IP = ladresse de linstruction suivante
Les registres de segments :
Pr M MOUGHIT Architecture des ordinateurs 316
CS, DS, ES et SS font partie du BIU il les utilise pour calculer lad. Phys.
Le registre des indicateurs :