0% ont trouvé ce document utile (0 vote)
21 vues120 pages

Représentation des Nombres en Informatique

Le document traite de la représentation de l'information, en se concentrant sur les nombres entiers et réels. Il explique les systèmes de numération, la conversion entre différentes bases, ainsi que les méthodes de soustraction pour les nombres avec et sans signe. Les concepts de complément à β et à β-1 sont également abordés pour illustrer la manipulation des nombres en informatique.

Transféré par

florentkarlwandjikarl
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
21 vues120 pages

Représentation des Nombres en Informatique

Le document traite de la représentation de l'information, en se concentrant sur les nombres entiers et réels. Il explique les systèmes de numération, la conversion entre différentes bases, ainsi que les méthodes de soustraction pour les nombres avec et sans signe. Les concepts de complément à β et à β-1 sont également abordés pour illustrer la manipulation des nombres en informatique.

Transféré par

florentkarlwandjikarl
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours Microprocesseurs

MASTER I
FTIC
2

RAPPELS:
REPRÉSENTATION DE
L’INFORMATION

A. M. CHANA
RAPPELS:
REPRÉSENTATION DE
L’INFORMATION
3

➢R E P R É S E N T A T I O N N O M B R E E N T I E R

➢ REPRÉSENTATION NOMBRE
RÉEL

A. M. CHANA
RAPPELS:
REPRÉSENTATION DE
L’INFORMATION
4

Représentation Nombre entier


Objectifs

➢ Décrire la différence entre représentation entier sans signe et avec signe;


➢ Décrire et donner l’importance de la notion de représentation en complément à β et à β-1;
➢ Expliquer les étapes de soustraction de nombres négatifs;
➢ Appliquer le principe de soustraction nombre avec signe et déterminer les situations où
l’opération engendre un dépassement de capacité.

A. M. CHANA
Représentation nombres entiers
5

Notation par position

➢ Généralités
Le système le plus couramment utilisé est le système décimal
o Il utilise les chiffres de 0 à 9,
o c'est le système de référence.

Le nombre de chiffres utilisés dans un système s'appelle sa


base.
En particulier on a :
0 et 1 : base 2
0à7: base 8
0 à 9 et de A à F : base 16

A. M. CHANA
Rappels: représentation de l’information
6
Notation par position : Nombre entier
La notation par position représente un nombre sous la forme
d'une séquence de chiffres
Si b est la base, alors un nombre entier N en base b
s'exprime sous la forme :

Ou

La position d'un chiffre rappelle la puissance de la base qui


le multiplie.

La puissance croit à partir de zéro, de la droite vers la


En base 10
gauche.
152 = 1 x 102 + 5 x 101+ 2 x 100
A. M. CHANA
Représentation nombres entiers
7
Notation par position : Nombre Fractionnaire
Un nombre fractionnaire P, c'est-à-dire compris entre 0 et 1
s'exprime sous la forme suivante dans la base b:

Ou

La position d'un chiffre rappelle la puissance (négative) de


la base qui le multiplie.

La puissance décroit à partir de -1, de la gauche vers la


En base 10 droite.
0,152 = 1 x 10-1 + 5 x 10-2+ 2 x 10-3

A. M. CHANA
Représentation nombres entiers
8
Représentation des nombres dans les bases 2,8 et 16
Décimal Binaire Octal Hexadécimal
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
Binaire ou base 2 : chiffres 0 et 1
5 101 5 5
Octal ou base 8 : chiffres de 0 à 7 6 110 6 6
Hexadécimal ou base 16 : chiffres de 0 à 9 et lettres de A à F 7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

A. M. CHANA
Représentation nombres entiers
9
Conversion d’une base à une autre
➢ Partie entière et partie fractionnaire d’une base 𝜶 à une base 𝜷
1. Partie entière
ii. On procède par division successive : Si on divise N par β; on obtient le quotient Q et le reste c0.
Répéter ce processus avec Q à la place de N jusqu’à ce quotient devienne 0.

Le résultat ce sont les restes obtenus du dernier au premier.

A. M. CHANA
Représentation nombres entiers
10
Conversion d’une base à une autre
➢ Partie entière et partie fractionnaire d’une base 𝜶 à une base 𝜷

1. Partie fractionnaire
Exemple : Convertir le nombre décimal 0.125 en binaire

Chaque ci obtenu est la partie entière du produit yi*β,


avec y1 c’est nombre à convertir.

On recommence le processus avec la partie fractionnaire


de ce même produit jusqu’à ce que celle-ci devienne 0 ou
qu’on obtienne une séquence de répétions.

A. M. CHANA
Représentation nombres entiers
11
Conversion d’une base à une autre
➢ Partie entière et partie fractionnaire d’une base 𝜶 à une base 𝜷
1. Partie fractionnaire

Problème: quand arrêter le processus

A. M. CHANA
Représentation nombres entiers
12
Conversion d’une base à une autre
➢ Partie entière et partie fractionnaire d’une base 𝜶 à une base 𝜷
1. Partie fractionnaire
Problème: quand arrêter le processus pour avoir la même précision

A. M. CHANA
Conversion D’un base à l’autre
13

 Base 2 8
Faire des groupes de 3 bits et donner la représentation en base 8 ou pour chaque chiffre de base 8
donner la représentation binaire sur 3 bits.

 Base 216
Faire des groupes de 4 bits et donner la représentation en base 16 ou pour chaque chiffre de base 16
donner la représentation binaire sur 4 bits.

A. M. CHANA
Représentation nombres entiers
14
Représentation en complément
Pour toute base β on a Remarque : le nombre de bits de la
o le complément à β représentation est fixé avant de
o le complément à β-1 chercher le complément.

❖ Complément à β-1 ❖ Complément à β

Soit x un nombre à n bits, le complément β-1 Soit x un nombre à n bits, le complément β-1 de x est :
de x est : (βn-1)-x 𝛽𝑛 − 𝑥 = 𝛽𝑛 − 1 − 𝑥 + 1
L’opération revient à soustraire chaque chiffre
de x de (β-1) ✓ C’est le complément à (β-1) + 1
C’est-à-dire (β-1)-αi ou
✓ Parcourir le nombre de la droite vers la gauche en copiant tous
les zéros rencontrés avant la premier chiffre non nul qui sera
remplacé par son complément à β et reste par le complément à
(β-1)

A. M. CHANA
Représentation nombres entiers
15
Représentation en complément
Exemples ❖ Complément à β
❖ Complément à β-1
Complément à 2: : N=1010

Complément à 1 : N=1010
sur 4 bits N’= (24 - 1)-N
donc N’=(16-1 )-(1010)2= (15 ) - (1010)2
= (1111)2 – (1010)2 = 01012

Complément à 9 : N= 7294510
Complément à 10: N= 7294510
sur 5 bits N’= (105 - 1)-N
donc N’= (99999 )10 - (72945)10 27054 27055
= 2705410 + 1
A. M. CHANA
Représentation nombres entiers
16
Conversion d’une base à une autre
➢ Partie entière et partie fractionnaire d’une base 𝜶 à une base 𝜷

1. Partie entière
On a N = (anan-1…a1a0)α en base α , on veut avoir N = (CmCm-1…a1a0)β en base β

Il y a deux méthodes :
i. Connaître la table de conversion de chiffre entre les deux bases, connaître la table de
multiplication et d’addition dans la base β
écrit N dans sa base polynômiale qui est :
Exemple : convertir X = (2BAD)16 en base 10
N=a0+ (a1+ (a2+… (an-1+ an)))
On a X= D+16(A+16(B+16 *2))
puis on remplace tous les ai par la correspondance
en base β et évaluer l’expression =13+16(10+16(11+16 *2)) =(11181)10

A. M. CHANA
Soustraction en complément
17

Nombres sans signe: Principes


Remarque : le nombre de bits fixé est utilisé pour de la représentation du nombre, le signe n’est pas représenté.

❖ Complément à β ❖ Complément à β-1


Pour l’opération 𝑀 − 𝑁 on a l’opération suivante
𝑀 − 𝑁 = 𝑀 + β𝑛 − 𝑁 - On ajoute à M le complément à β-1 de N
- Ajouter à M le complément à r de N - S’il y a retenue, on ajoute la retenue à la somme
- Si la somme génère une retenue ( c.à.d. M>=N), il faut - S’il n’y a pas de retenue, le résultat est le
ignorer complément à β-1 de la somme en précédent du
- Si la somme ne génère pas de retenue, le résultat est signe -
obtenu en prenant le complément à β de la somme et en
précédant du signe -

A. M. CHANA
Soustraction en complément
18

Nombres sans signe: Principes

n le nombre se bits étant respectivement 5, 4, 7 et 5

❖ Complément à β-1
❖ Complément à β
1) 72532 – 03250 3) 1010100 – 1000011
1) 72532 – 03250 3) 1010100 – 100001 + 96749 + 0111100
+ 96750 + 0111101 1 69281 1 0010000
1 69282 1 0010001 + 1 + 1
69282 0010001
2) 1250 – 9456 4) 01001 – 11100
+ 0544 + 00100 2) 1250 – 9456 4) 01001 – 11100
1794 01101 + 0543 + 00011
résultat: -(8206) résultat : - (01101) 1793 01100
-(8206) -(10011)
A. M. CHANA
Soustraction en complément
19

nombres avec signe: Principes


On fixe au départ le nombre de chiffre qu’il faut pour représenter un nombre avec pour convention que le 1er
chiffre représente le signe pour la base 2. 0 pour + et 1 pour -
Il y a 3 types de représentation pour les nombres avec signe
- Signe + | |
- Complément à 1 avec signe Exemple : n=8 représentation de 5 et -5
- Complément à 2 avec signe
5 -5
Nombre de bits Signe suivi de 00000101 10000101
De façon générale, pour n bits (base 2) on peut valeur absolue
représenter les nombres compris entre Complément à 1 00000101 11111010
➢[-2n-1, 2n-1-1] en complément à 2, Complément à 2 00000101 11111011

➢[-(2n-1-1), 2n-1-1] en complément à 1 et signe + | |

A. M. CHANA
Soustraction en complément
20

nombres avec signe: Principes


❖ Complément à β

- On ajoute à M le complément à β de N, on ignore la retenue


- Si la retenue qui se propage dans la position signe est différente de celle qui se propage
hors de cette position, le résultat est mauvais
- Si les retenues sont identiques, le résultat est bon
On procède de la même façon mais on ajoute à la somme toute retenue
générée. Si rn #rn+1 le résultat est mauvais. i.e. on peut avoir
𝑟𝑛 = 0 𝑟𝑛 = 1
❖ Complément à β-1 ቐ 𝑒𝑡 𝑜𝑢
𝑟𝑛+1 = 1 𝑟𝑛+1 = 0
Lorsque rn#rn+1 il y a dépassement de mémoire parce que les résultats
de l’opération ne peuvent pas être représentés avec les n bits.
A. M. CHANA
Soustraction en complément
21

nombres avec signe: Principes


❖ Complément à 1
Effectuons les opérations suivantes sur 4 bits :

(1) -7 -7 (-7) en complément à 1 + (-7) en complément à 1

rn ≠ rn+1, le résultat est mauvais, dépassement de capacité

Remarque :
• Nous avons un débordement si la somme de deux nombres positifs donne un
nombre négatif.
• Ou la somme de deux nombres négatifs donne un Nombre positif
• Il n’y a jamais un débordement si les deux nombres sont de signes différents.

A. M. CHANA
Soustraction en complément
22

nombres avec signe: Principes


❖ Complément à 1

Effectuons les opérations suivantes sur 4 bits : (2) -4 -3

(-4) en complément à 1 + (-3) en complément à 1

r’n = rn+1 & rn = r’n+1

le résultat est correct


La retenue générée s’est propagée jusqu’à la position de
signe et a corrigé la résultat.

A. M. CHANA
Soustraction en complément
23

nombres avec signe: Principes


❖ Complément à 2
Effectuons les opérations suivantes sur 4 bits :
(1) -4 -3 (2) -7 -1

(-4) en complément à 2 + (-3) en complément à 2 (-7) en complément à 2 + (-1) en complément à 2

rn ≠ rn+1, le résultat est mauvais, dépassement de capacité rn = rn+1, le résultat est correct
A. M. CHANA
RAPPELS:
REPRÉSENTATION DE
L’INFORMATION
24

Représentation Nombre réel

Objectifs

➢ Identifier un nombre réel;


➢ Décrire le principe de représentation en machine des nombres réels;
➢ Donner la différence entre la représentation virgule fixe et virgule flottante;
➢ Expliquer le principe de la représentation biaisée;
➢ Appliquer la nome IEEE à la représentation d’un nombre.
➢ Enoncer le principe de l’arithmétique flottante

A. M. CHANA
Représentation des réels
25
 Virgule fixe : la position de la virgule est fixe
 Virgule flottante : la position de la virgule change
(dynamique)
Virgule Fixe:
Signe P.E P.F Valeur

Exemple : si n=3 et p=2


on va avoir les valeurs 0 000 00 + 0,0
suivantes 0 000 01 + 0,25
0 000 10 + 0,5
0 000 11 + 0,75
0 001 .00 + 1,0
. . . .
. . . .

A. M. CHANA
Représentation des réels: Virgule Flottante
26

𝑦 = ± 𝑓𝛽 𝑡 (𝑓 ≡ 𝑚𝑎𝑛𝑡𝑖𝑠𝑠𝑒, 𝛽 ≡ 𝑙𝑎 𝑏𝑎𝑠𝑒, 𝑡 ≡ 𝑙′𝑒𝑥𝑝𝑜𝑠𝑎𝑛𝑡)


1 1
La mantisse est comprise entre 𝛽 et 1. 𝛽 ≤ 𝑓 < 1, elle est normalisée c.a.d si
𝑓 = 0. 𝛼1 𝛼2 … 𝛼𝑛2 alors 𝛼1 ≠ 0 d’où on a pour 𝛼2 𝛼3 … . . 𝛼𝑛2 0 ≤ 𝛼𝑖 ≤ 𝛽 − 1
Pour 𝛼1 𝑜𝑛 𝑎 1 ≤ 𝛼𝑖 ≤ 𝛽 − 1
Si 𝛼𝑖 est égal à zéro alors 𝑓 = 0

A. M. CHANA
Représentation des réels: Virgule Flottante
27

L’exposant t est un entier relatif sous forme :


o Complément
o signe + | | ou
o spéciale dite biaisée.
Exemple : En considérant l’exposant sous forme signe +| |
Signe mantisse Exposant en CA2 Mantisse normalisée

1 bit 4bits 8 bits


•(0,015)8=(0,000001101)2= 0,1101 * 2-5
0 1 0 1 1 1 1 0 1 0 0 0 0

•- (15,01)8 = - (001101,000001)2= - 0,1101000001 * 24

1 0 1 0 0 1 1 0 1 0 0 0 0

A. M. CHANA
Représentation des réels: Virgule Flottante
28

Forme biaisée
 Biais = décalage et correspond à 2 (p -1)
P étant le nombre de bits pour représenter l’exposant

 Exposant Biaisé = Exposant réel + Biais ou encore N’= N + 2 (p -1)

A. M. CHANA
Représentation des réels: Virgule Flottante
29
Signe mantisse Exposant biaisé Mantisse normalisée

1 bit 4 bits 11 bits


Le biais ici c’est 24-1=8

•0,015)8=(0,000001101)2= 0,1101 * 2-5


Exposant Biaisé = -5 + 8 = +3 = ( 0011)2
0 0011 1 1 0 1 0 0 0 0 0 0 0

•- (15,01)8 = - (001101,000001)2= - 0,1101000001 * 24


Exposant Biaisé = 4 + 8 = +12 = ( 1100)2

1 1100 1. 1 0 1 0 0 0 0 0 1 0

A. M. CHANA
Représentation des réels: Virgule Flottante
30

Forme biaisée : Convention IEEE


 Nombre sur 32 bits simple précision: signe 1 bit,
exposant 8 bits mantisse 23 bits.

 Biais = décalage et correspond à 2 (p -1) -1=127

 Matisse normalisée, on ne représente pas le premier


bit.

A. M. CHANA
Représentation des réels: Virgule Flottante
31

Forme biaisée : Convention IEEE


 si l'exposant et la mantisse sont tous deux nuls, le nombre est ±0
 si l'exposant est égal à 2e – 1 et si la mantisse est nulle, le nombre est ±infini
 si l'exposant est égal à 2e − 1, mais que la mantisse n'est pas nulle, la valeur
n’est pas un nombre c’est un NaN

 NB : En simple précision, la représentation


00000000000000000000000 indique donc la valeur
1, 10000000000000000000000 qui est la valeur 1,5

A. M. CHANA
+

32

FONCTIONNEMENT DE
BASE DES
MICROPROCESSEURS

A. M. CHANA
Fonctionnement de base des Microprocesseurs
33

 Introduction

microprocesseur : circuit intégré complexe à grande capacité


d’intégration

➢ Nano-processeurs
➢ Microcontrôleur <> microprocesseur

A. M. CHANA
Fonctionnement de base des Microprocesseurs
34

 Introduction
Les applications des systèmes à microprocesseurs

➢ Ordinateur, PDA ➢ Distributeur automatique


➢ Console de jeux billets
➢ Calculatrice ➢ Robotique

➢ Télévision ➢ Lecteur carte à puce, code


barre
➢ Téléphone portable
➢ Automobile
Etc ……
A. M. CHANA
Architecture d'un système micro-programmé
35

A. M. CHANA
Eléments de base d’un microprocesseur
36

A. M. CHANA
Eléments de base d’un microprocesseur
37

 L’unité de commande

➢ le compteur de programme

➢ le registre d'instruction et le décodeur d'instruction

➢ Séquenceur

A. M. CHANA
Eléments de base d’un microprocesseur
38

 L’unité de traitement

➢ L’Unité Arithmétique et Logique (UAL)


➢ Le registre d'état
 carry : C
❖ Auxiliary-Carry : AC
❖ Sign : S
❖ overflow : OV ou V
❖ zéro (Z)
❖ parité (Parity : P)

➢ Les accumulateurs

A. M. CHANA
Eléments de base d’un microprocesseur
39

Synthèse :

A. M. CHANA
L’unité de traitement
40
Cycle d’exécution d’une instruction
➢ Phase 1: Recherche de l'instruction à traiter

A. M. CHANA
L’unité de traitement
41
Cycle d’exécution d’une instruction
➢ Phase 2 : Décodage de l’instruction et recherche de l'opérande

A. M. CHANA
L’unité de traitement
42
➢ Cycle d’exécution d’une instruction
Phase 3 : Exécution de l'instruction

A. M. CHANA
Performances d’un microprocesseur
43

La puissance d’un µp se caractérise par le nombre d’instructions traitées par seconde.


CPI : nombre moyen de cycles d’horloge pour l’exécution d’une instruction.

le MIPS (Millions d'Instructions Par Seconde) : représente la puissance de


traitement du µp .

𝒇𝐇
𝐌𝐈𝐏𝐒 = avec fH en Mhz ou Ghz
𝐂𝐏𝐈

Augmenter les performances d’un µp :

➢ augmenter la fréquence d'horloge (limitation matérielle) ou

➢ diminuer le CPI (choix d'un jeu d'instruction adapté).

A. M. CHANA
Le jeu d’instructions
44

 Les opérations, leur nombre et leur complexité


 Les types de données supportées par les opérations
 Les registres, leur nombre et la façon dont ils sont utilisés par les
opérations
 L’adressage, qui précise comment est faite la référence aux données.
 Le format de l’instruction (Taille, nombre, taille de champs).

A. M. CHANA
Le jeu d’instructions
45

➢ Type d’instruction

Les instructions d’un µp peuvent être classées en quatre groupes :

 Transfert de données : sauvegarder en mémoire, effectuer des


transferts de registre à registre, …

 Opérations arithmétiques : Addition, soustraction, division et


multiplication.

 Opérations logiques : Et, ou, non, Nand, comparaison, test…

 Contrôle de séquence : Branchement, test…

A. M. CHANA
Le jeu d’instructions
46

➢ Codage

Une instruction est composée de deux champs :


 Code instruction (OPcode) : Qui indique au processeur quelle
instruction réaliser.

 Le champ opérande qui contient la donnée ou la référence à


une donnée en mémoire (son adresse).

A. M. CHANA
Le jeu d’instructions
47

➢ Codage
Il existe trois types de codage d’instruction :

 Codage variable : permet tous les modes adressage, est


indiqué lorsqu’il y a beaucoup de mode d’adressage et
d’opérations.
 Codage fixe : combine l’opération et le mode d’adressage
dans le code-op. toutes les instructions ont la même taille.
 Codage hybride : combine les deux autres principes de
codage.

A. M. CHANA
Le jeu d’instructions
48
➢ Codage

A. M. CHANA
Le jeu d’instructions
49
➢ Codage
Le nombre instructions est lié au format du code instruction: un octet (8 bits)
permet de distinguer au maximum 256 instructions différentes.

Exemple : Le jeu d’instructions d’un processeur contient :


▪ 64 instructions à 3 opérandes de 16 bits chacune,
▪ 126 instructions à 2 opérandes
▪ 16 instructions sans opérande.

A. M. CHANA
Le jeu d’instructions
50
➢ Codage
Le nombre instructions est lié au format du code instruction: un octet (8 bits)
permet de distinguer au maximum 256 instructions différentes.

Exemple : Le jeu d’instructions d’un processeur contient :


▪ 64 instructions à 3 opérandes de 16 bits chacune,
▪ 126 instructions à 2 opérandes
▪ 16 instructions sans opérande.

Dans ce µp :
✓ Le code instruction tient sur ? bits,
✓ une instruction sur ? bits
✓ nombre d’instructions à 1 opérande est de ?

A. M. CHANA
Le chemin de données d’un processeur
51

Chemin de donnée du processeur DLX


A. M. CHANA
Notion d’architecture RISC et CISC
52

➢ CISC (Complex Instruction Set Computer)


➢ RISC (Reduced Instruction Set Computer)
Architecture RISC Architecture CISC

➢ instructions simples ne prenant ➢ instructions complexes prenant


qu’un seul cycle plusieurs cycles
➢ instructions au format fixe ➢ instructions au format variable
➢ décodeur simple (câblé)
➢ décodeur complexe (microcode)
➢ beaucoup de registres
➢ peu de registres
➢ seules les instructions LOAD et
STORE ont accès à la mémoire ➢ toutes les instructions sont
➢ peu de modes d’adressage susceptibles d’accéder à la mémoire
➢ compilateur complexe ➢ beaucoup de modes d’adressage
➢ compilateur simple

A. M. CHANA
Types de processeurs
53

➢ Les processeurs à usage général

➢ Les processeurs spécialisés :


✓ DSP (Digital Signal Processing)
✓ ASIP (Application Specific Instruction Set Processor).

➢ Le microcontrôleur : contiennent
✓ un processeur (CPU)
✓ de la RAM
✓ de la ROM
✓ des ports d’Entrée/Sorties (parallèles, séries, etc..).
✓ des fonctions spécifiques
• compteurs programmables pour effectuer des mesures de durées,
• des CAN voir des CNA pour s’insérer au sein de chaînes d’acquisition,
des interfaces pour réseaux de terrain, etc ...

A. M. CHANA
Types de processeurs
54

➢ Systèmes embraqués
✓ Système complexe qui intègre logiciel et matériel conçus ensemble afin de fournir des
fonctionnalités données.

✓ Contient généralement un ou plusieurs microprocesseurs destinés à exécuter un ensemble de


programmes définis lors de la conception et stockés dans des mémoires

✓ Système autonome et ne possédant pas des entrées/sorties standards tels qu'un clavier ou un
écran d'ordinateur

A. M. CHANA
Types de processeurs
55

Type de systèmes embarqués :

✓ Calcul général :
Jeux vidéo

✓ Contrôle de système en temps réel :


système de navigation aérien, de contrôle automobile

✓ Transmission d’information et commutation :


Téléphone, internet

✓ Traitement du signal
Radar, Sonar

A. M. CHANA
PRINCIPES D'ARCHITECTURE
DES MICROPROCESSEURS
Phases d'une instruction
57

les phases en fonction des catégories d'instructions.

A. M. CHANA
Timing des phases (cas simplifié)
58

A. M. CHANA
Architecture pipeline
59
➢ Principe

A. M. CHANA
Architecture pipeline
60

➢ Exemple de profondeur de pipeline

A. M. CHANA
Architecture pipeline
61
➢ Principe
L’exécution d’une instruction est décomposée en une
succession d’étapes.
✓ Le Pipeline égale
 Tcp = (Tcs) / (Nbre d’étages) + temps de stabilisation
 Tcs = temps de cycle en mode non pipeline (séquentiel) et

 le temps de stabilisation = temps de passage d’un étage à


l’autre.

✓ Pipeline inégale
 Tcp = Max (Ti) + Délai de stabilisation
 Ti = temps d’exécution de l’étage i

A. M. CHANA
Architecture pipeline
62
➢ Gain de performance
 n.k cycles d’horloge pour une exécution séquentielle.
 Avec un pipeline de k étages
k cycles d’horloge pour exécuter la première instruction
 n-1 cycles pour les n-1 instructions suivantes

Le gain obtenu est donc de :


n. k
G=
k + (n − 1)

Si n grand par rapport à k,


G= temps d’exécution séquentielle divisé par k.
A. M. CHANA
Architecture pipeline
63
Exemples :
 L’Athlon d’AMD comprend un pipeline de 11 étages.
 Les Pentium 2, 3 et 4 d’Intel comprennent respectivement un pipeline
de 12, 10 et 20 étages.

L’organisation matérielle

A. M. CHANA
Architecture pipeline
64
❖ Table de réservation
➢ A chaque colonne est associé un numéro de cycle
➢ A chaque ligne est associée une ressource matérielle
➢ A l’intersection de la colonne i et de la ligne j, un symbole est inséré si et
seulement si la ressource matérielle j est utilisée au cycle i.
Exemple de table de réservation élémentaire pour l'instruction I1

A. M. CHANA
Architecture pipeline
65
❖ Exemple d’exécution mode pipeline
 1 LDR #2, R3
 2 MUL R5, R6, R7
 3 LDI 8(R9), R12
 4 LDR #4, R10
 5 ADD R13, R14, R15

A. M. CHANA
Architecture pipeline
66
Dépendances ou Alées entre instructions
❖ Aléas structurels
❖ Aléas de contrôle
❖ Aléas de données
 I1 est avant I2 dans l’ordre d’exécution de référence,
 I1 et I2 utilisent une même donnée
Quatre cas sont possibles:

RAR: Read After Read RAW: Read After Write


I1 lit X; I1 écrit X;
I2 lit X I2 lit X

WAR: Write After Read WAW: Write After Write


I1 lit X; I1 écrit X;
I2 écrit X I2 écrit X

A. M. CHANA
Architecture pipeline
67
Dépendances de données entre instructions

 RAR (Consommateur/Consommateur)

I1 : ADD R1, R4, R7 (R7 <- R1 + R4)


I2 : LDR R9, R8 (R8 <- R9)
I3 : MUL R2, R4, R5 (R5 <- R2 * R4)
Dépendance RAR entre I1 et I3 car:
 I1 exécutée avant I3
 I1 et I3 utilisent toutes les deux en lecture le même registre R4

PAS DE CONTRAINTE D’ORDRE

 RAW (Producteur/Consommateur)
I1 : MUL R1, R4, R7 (R7 <- R1 * R4)
I2 : LDR R9, R8 (R8 <- R9)
I3 : SUB R2, R7, R11 (R11 <- R2 - R7)
Dépendance RAW entre I1 et I3 car:
 I1 exécutée avant I3
 I1 et I3 utilisent le même registre R7: I1 en écriture et I3 en lecture

CONTRAINTE D’ORDRE: R7 doit être écrit par I1 avant d’être lu par I3


A. M. CHANA
Architecture pipeline
68
Dépendances de données entre instructions
 WAR (Consommateur/Producteur)
I1 : ADD R1, R4, R7 (R7 <- R1 + R4)
I2 : MUL R9, R8, R10 (R10 <- R8*R9)
I3 : LDR R2, R4 (R4 <- R2)
Dépendance WAR entre I1 et I3 car:
 I1 exécutée avant I3
 I1 et I3 utilisent le même registre R4: I1 en lecture et I3 en écriture
CONTRAINTE D’ORDRE: R4 doit être lu par I1 avant d’être écrit par I3

 WAW (Producteur/Producteur)
I1 : ADD R1, R4, R7 (R7 <- R1 + R4)
I2 : MUL R9, R8, R10 (R10 <- R8 * R9)
I3 : ADD R2, R6, R7 (R7 <- R2 + R6)
Dépendance WAW entre I1 et I3 car:
 I1 exécutée avant I3
 I1 et I3 utilisent toutes les deux le même registre R7 et en écriture
CONTRAINTE D’ORDRE: R7 doit être écrit par I1 avant d’être écrit par I3
A. M. CHANA
Architecture pipeline
69
Correction
Dépendances entre instructions
➢ WAR et WAW
Renommage de registres
➢ RAW
La technique du by-pass (ou forwarding)

A. M. CHANA
Architecture pipeline
70

Exemple de traitement pipeliné :

Considérons
- un processeur non pipeliné avec un temps de cycle de 10 ns.
- Version pipelinée avec 5 étages de pipeline et un temps de stabilisation
de 1,5 ns.
Soit la séquence d’instructions suivantes à réaliser sur ce processeur.

ADD r1, r2, r3 (r1 = r2+r3)


SUB r4, r1, r5 (r4 = r1-r5)
MUL r6, r4, r3 (r6 = r4*r3)
DIV r7, r8, r1 (r7 = r8/r1)

Question: Donner le temps d’exécution en mode séquentiel et en mode


pipeliné de cette séquence d’instructions.

A. M. CHANA
Architecture pipeline
71
Exemple de traitement pipeliné :
Résolution :

 Temps en mode séquentiel : Ts = 4*10ns = 40ns


 Mode pipeliné :
 Détection de vraies dépendances (RAW)
 ADD et SUB avec r1
 SUB et MUL avec r4
 ADD et DIV avec r1

A. M. CHANA
Architecture pipeline
72
Exemple de traitement pipeliné :
Résolution :
 Diagramme d’exécution
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13

IF ADD SUB SUB SUB SUB MUL MUL MUL MUL DIV

ID ADD - - - SUB - - - MUL DIV

EX ADD - - - SUB - - MUL DIV

MEM ADD - - - SUB - - - MUL DIV

WB ADD - - - SUB - - - MUL DIV

 Temps de cycle = 10/5 + 1,5 = 3.5 ns


 Temps complet d’exécution en mode pipeliné
Tp = 3.5 * 14 = 49ns
Tp>Ts, on constate qu’en mode pipeliné on perd le temps.
A. M. CHANA
Architecture pipeline
73

Exercice: Appliquer à l'exemple précédent la méthode de Bypass


comme indiqué:
 le résultat est disponible après la phase MEM
 Le résultat est disponible après la phase EX
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11

IF ADD SUB SUB SUB MUL MUL MUL DIV

ID ADD - - SUB - - MUL DIV

EX AD - - SUB - - MUL DIV


D
MEM ADD - - SUB - - MUL DIV

WB ADD - - SUB - - MUL DIV

C0 C1 C2 C3 C4 C5 C6 C7 C8 C9

IF ADD SUB SUB MUL MUL DIV

ID ADD - SUB - MUL DIV

EX ADD - SUB - MUL DIV

MEM ADD - SUB - MUL DIV

WB ADD - SUB - MUL DIV

A. M. CHANA
Architecture pipeline
74
Dépendances de Contrôle entre instructions

Ce conflit est généralement lié aux instructions de contrôles, le calcul de la


condition et la détermination de l’adresse de l’instruction cible.
 La cible et la direction d'un branchement sont connues très tard dans le
pipeline. Au plus tôt :

➢ Cycle 7 sur le DEC 21264


➢ Cycle 11 sur l'Intel Pentium III
➢ Cycle 18 sur l’Intel Pentium 4

A. M. CHANA
Architecture pipeline
75
Dépendances de Contrôle entre instructions

 Deux solutions
➢ La réduction du délai de branchement
➢ la prédiction de branchement

A. M. CHANA
Architecture pipeline
76
Dépendances de Contrôle entre instructions
 Exemple
@i SUB R1, R1, 1 // R1 = R1 - 1
@i+1 BRZ R1, @label // si R1 == 0 alors on saute a l'adresse label
Déroulement:
(i) la valeur de R1 est mise à jour par SUB;
(ii) lue par l'instruction de branchement conditionnel BRZ et
(iii) utilisée pour décider si le saut doit être pris ou pas.
(iv) l'instruction sera soit l'instruction de l'adresse @i+2 si la condition est
fausse, soit l'instruction de l'adresse @label si la condition est vraie.

➢ la difficulté : indisponibilité de la condition au moment où l'on


doit décider de charger la prochaine instruction

A. M. CHANA
Architecture pipeline
77
Dépendances de Contrôle entre instructions
 Illustration

➢ SUB modifie R1
au cycle 5,

➢ BrZ sait au cycle 6,


si le saut doit être
exécuté ou non.

A. M. CHANA
Architecture pipeline
78
Dépendances de Contrôle entre instructions
 Solutions:
➢ Appliquer la technique du blocage du pipeline jusqu'à ce que l'opérande
source du branchement soit disponible.
✓ Conséquence, perte d’au moins 5 cycles.
✓ Solution pas envisageable compte tenu d’une nombre d’instructions de branchement dans les
codes
➢ Laisser le pipeline lire les instructions qui suivent le branchement et à les
annuler s'il le faut.
✓ La condition de branchement est vraie, il faut annuler toutes les instructions lancées.
✓ La solution technique mise en œuvre est l’invalidation des écritures des opérandes
destinations.
✓ Solution envisageable mais pas satisfaisante car engendre un coût de 5 cycles au
processeur.

A. M. CHANA
Architecture pipeline
79
Dépendances de Contrôle entre instructions
 Solutions:
➢ Prédiction de branchement

La solution technique pour éviter de perdre trop de cycles processeur,


consiste à tenter de prédire comportement du branchement avant même
que la condition ne soit connue (calculée).

A. M. CHANA
Architecture pipeline
80
Dépendances de Contrôle entre instructions
 Solutions:
➢ Prédiction
de branchement

A. M. CHANA
Architecture pipeline
81
Prédiction de branchement

➢ Après lecture d’une instruction de branchement, le


processeur va tenter de prédire son comportement.
➢ Le processeur va donc calculer une hypothèse concernant la
suite des instructions à exécuter.
➢ Il va donc décider de :

 prendre le branchement ;

OU

 ne pas prendre le branchement.

A. M. CHANA
Architecture pipeline
82
Prédiction de branchement
Calcul de l’hypothèse:
 L'hypothèse calculée est correcte, c'est-à-dire que le
processeur a décidé de continuer son exécution dans un
certain sens (il a décidé de se brancher ou de ne pas se
brancher), et ce choix se révèle le bon. Dans ce cas, le
processeur poursuit son exécution sans perte de cycle ;
 L'hypothèse calculée est fausse, c'est-à-dire que le processeur
a décidé de continuer son exécution dans un certain sens, et
ce choix se révèle incorrect. Dans ce cas, le processeur doit
éliminer les instructions qui sont entrées dans le pipeline et
réamorcer son pipeline avec la bonne branche du
programme.

A. M. CHANA
Architecture pipeline
83
Prédiction de branchement

Calcul de l’hypothèse:
Voilà simplement la technique de la prédiction de branchement
à mettre en œuvre et finalement, la problématique des
branchements conditionnels est alors ramenée à un problème
de calcul d'hypothèse sur le comportement de ces
branchements.

Question:

Comment prévoir le comportement d'un branchement ?

A. M. CHANA
Architecture pipeline
84
Prédiction de branchement
Deux éléments pour fonctionnement
➢ Tampon des branches cibles (BTB : Branch Target Buffer)
❖ Contient les adresses des branches du programme

➢ Table de l'historique des branchements (BHT : Branch History Table)


❖ Mémoriser l'historique des choix de branchements faits précédemment
pour faire des prédictions
❖ Fonctionnement dépend de l'algorithme utilisé

A. M. CHANA
Architecture pipeline
85
Prédiction de branchement
Exemple: prédicteur 2 bits

On stocke deux bits qui correspondent intuitivement à :

1) 1 bit « comportement habituel » pas de mis à jour faite dans les deux cas
suivants :
– si le branchement est pris et qu’il ait aussi été pris la fois précédente ;
– si le branchement n’est pas pris et qu’il n’ait pas non plus été pris la fois
précédente.

2) 1 bits « dernier comportement ». Mis en à jour après chaque


branchement.

A. M. CHANA
Architecture pipeline
86
Prédiction de branchement
Exemple: prédicteur 2 bits

➢ 00 : branchement jamais pris jusqu'à présent


➢ 01 : branchement parfois pris jusqu'à présent
➢ 10 : branchement souvent pris jusqu'à présent
➢ 11 : branchement toujours pris jusqu'à présent

A. M. CHANA
Architecture pipeline
87
Prédiction de branchement
Plusieurs prédicteurs ont été développés.
I. Prédictions de branchement statiques:
proposent une méthode globale à tous les branchements pour calculer l'hypothèse.

➢ Prédiction de branchement statique globale :


Consiste à fixer une méthode (pour le calcul de l'hypothèse) unique pour tous les
branchements conditionnels de l'application. Par exemple, à chaque fois que le
processeur se trouve face à une instruction de branchement conditionnel, celui-ci
pose comme hypothèse de prendre le branchement.

➢ Prédiction de branchement statique positionnable


le comportement des branchements peut être différent d'une application à l'autre,
ce mécanisme va permettre de positionner le sens de la prédiction. Par exemple,
pour l'application 1, le processeur peut avoir une hypothèse telle que les
branchements sont prédits pris, alors que pour une application 2, le processeur
peut avoir l'hypothèse inverse.
A. M. CHANA
Architecture pipeline
88
Prédiction de branchement
Plusieurs prédicteurs ont été développés.
I. Prédictions de branchement statiques:
proposent une méthode globale à tous les branchements pour calculer l'hypothèse.

➢ Prédiction de branchement statique tenant compte du sens du


branchement
La notion de sens des branchements permet de distinguer les branchements
arrières et les branchements avants :

✓ On parle de branchement arrière lorsque le processeur se branche à une


adresse inférieure de l'adresse du branchement en question. Les
instructions « For, tantque ou répéter »
✓ On parle de branchement avant lorsque le processeur se branche à une
adresse supérieure de l'adresse du branchement en question. Les
instructions « si »
A. M. CHANA
Architecture pipeline
89
Prédiction de branchement

I. Prédictions de branchement statiques:

➢ Prédiction de branchement statique tenant compte du sens du


branchement
Il a été montré que les branchements arrières ont plutôt tendance à être pris par le
processeur. En effet, les branchements conditionnels arrières résultent très souvent
de la compilation de boucles. Or la caractéristique principale d'une boucle est
évidemment que les instructions situées dans la boucle vont être exécuté plusieurs
fois.
Mov ecx, 1
Exemple: Boucle:
instructions
inc ecx;
comp ecx, valeur_finale Le comportement :
jle Boucle pris N fois, puis il sera non pris 1 fois

A. M. CHANA
Architecture pipeline
90
Prédiction de branchement

I. Prédictions de branchement statiques:

➢ Prédiction de branchement statique tenant compte du sens du


branchement

Pour ce qui est des branchements avants, ils sont typiquement issus de la
compilation d'un code ayant une structure si, alors, sinon telle que présentée dans
le code ci-dessous. Or, il a été montré, même si c'est moins évident, qu'ils ont plutôt
tendance à être non pris.

Sub eax, ecx,


Exemple: Jge l1
add eax,ebx
l1: inc ecx;

A. M. CHANA
Architecture pipeline
91
Prédiction de branchement

I. Prédictions de branchement dynamique:

proposent une méthode qui permet de changer l’hypothèse de branchement au


cours de l’exécution du programme. Le changement tient compte du comportement
précédent des branchements. Il faut donc conserver l’historique de chaque
branchement. On utilise pour cela la table d’historique de branchement qui utilisée
par le processeur pour calculer les hypothèses de branchement.

➢ Prédiction de branchement dynamique à 1 bit


Branchement
Branchement non pris
Branchement
pris
pris
NP P

Branchement non
pris

A. M. CHANA
Architecture pipeline
92
Prédiction de branchement

I. Prédictions de branchement dynamique:

➢ Prédiction de branchement dynamique à 2 bits


✓ P : branchement historiquement pris ;
✓ FP : branchement historiquement faiblement pris ;
✓ NP : branchement historiquement non pris ;
✓ FNP : branchement historiquement faiblement non pris ;

A. M. CHANA
Architecture pipeline
93
Prédiction de branchement
Exemple : i A B C B1 B2
for (i=0; i<N; i++)
0 2 3 6 NP P
{
if(A >= B) alors 1 -5 -5 0 P P
C=A/B; //Branchement B1 2 1 6 6 NP P
else
3 4 1 4 P P
C=A*B;
4 -6 2 -12 NP P
} //Branchement B2 5 NP

N=5; Comportement normale


A= 2, -5, 1, 4, -6;
B= 3, -5, 6, 1, 2;

A. M. CHANA
Architecture pipeline
i A B C B1 B2 94 i A B C B1 B2
0 2 3 6 NP P 0 2 3 6 NP P
1 -5 -5 0 P P 1 -5 -5 0 NP P
2 1 6 6 NP P 2 1 6 6 NP P
3 4 1 4 P P 3 4 1 4 NP P
4 -6 2 -12 NP P 4 -6 2 -12 NP P
5 NP NP
Comportement normal Prédicteur statique
i A B C B1 B2 i A B C B1 B2
0 2 3 6 NP P 0 2 3 6 NP P
1 -5 -5 0 NP P 1 -5 -5 0 NP P
2 1 6 6 P P 2 1 6 6 FNP P
3 4 1 4 NP P 3 4 1 4 NP P
4 -6 2 -12 P P 4 -6 2 -12 FNP P
5 P 5 P
A. M. CHANA Prédicteur dynamique 1 bit Prédicteur dynamique 2 bits
LA MEMOIRE
Introduction
96
Mémoire: un composant électronique permettant de stocker une
information sous forme binaire.

Trois types de mémoire


 Banc de registres
➢ peu d’entrées, temps d’accès court (< 1 cycle)
 Mémoire dynamique (DRAM)
➢ 1 transistor par bit grande densité d’intégration (16-64 Mbits)
➢ temps d’accès long: 50-100 ns

➢ utilisé comme mémoire principale

 Mémoire statique (SRAM)


➢ mémorisation par bouclage de 2 portes: 1-4 Mbits
➢ cher
➢ temps d’accès court: 5-10 ns
A. M. CHANA
Latence mémoire
97

La latence mémoire n’est pas seulement constituée par le temps


d’accès DRAM, il faut aussi ajouter:

➢ la translation d’adresse
➢ la traverser les broches du processeur et le bus externe
➢ le multiplexage si plusieurs bancs mémoires

A. M. CHANA
Hiérarchie mémoire
98
Les niveaux de hiérarchie mémoire

Principe de fonctionnement : les niveaux les plus hauts interceptent la


majeure partie des références mémoires. Exploitation Localité Spatiale
et temporelle
A. M. CHANA
Hiérarchie mémoire
99
Localité spatiale
Les données ou des instructions qui sont à des adresses proches ont
tendance à être accédées dans des temps rapprochés.
Impact sur les performances de la localité spatiale

Bonne localité spatiale Dégradation de la localité spatiale avec un pas


d'accès supérieur à 1.
subroutine reference(x,y,n,rep) subroutine TEST(x,y,n,pas,rep)
implicit none implicit none
integer n,rep integer n,pas,rep
real x(n),y(n) real x(pas*n),y(n)
integer i,j integer i,j

do i=1,rep do i=1,rep
do j = 1,n do j = 1,n
y(i) = y(i) + x(j) y(i) = y(i) +x(pas*j)
enddo enddo
enddo enddo

end end
A. M. CHANA
Hiérarchie mémoire
100

Localité Temporelle
Les données ou des instructions déjà accédées dans le passé sont souvent
réutilisées dans un futur proche.

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
101

Mémoire virtuelle pourquoi?


Lorsqu'un programme utilisateur est trop volumineux pour tenir en mémoire, le système
d'exploitation utilise un espace du disque qu'il nomme mémoire virtuelle pour le stockage.

Les intérêts du concept de mémoire virtuelle :

➢ L'espace physique de stockage (et notamment la hiérarchie des mémoires) est utilisé de
manière optimale.
➢ L'utilisateur est libéré des contraintes de stockage
➢ L'utilisateur a une vue logique de l'espace de stockage.

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
102

Problème à résoudre : Gestion et la correspondance adresse virtuelle


et adresse physique qui est l'adresse effective en mémoire.
A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
103

Organisation Mémoire virtuelle


Principe fondamental : dissociation
➢ adresse virtuelle référencée dans un processus en exécution
et
➢ adresse physique ou réelle utilisée en mémoire principale :

La correspondance entre l'adresse virtuelle et l'adresse


physique est effectuée par un "mapping" (Dynamic Address
Translation)

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
104

Organisation
Mémoire
virtuelle

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
105

Organisation Mémoire virtuelle

➢ Les transferts entre la mémoire principale et la mémoire secondaire nécessitent


une organisation de l'information en blocs ;

➢ Le système d'exploitation possède à tout moment la liste des blocs qui sont en
mémoire principale.

➢ Si les blocs ont une taille fixe, on les appelle des pages ;

➢ S'ils sont de taille variable, on les appelle des segments.

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
106

Structure d’une adresse virtuelle

Mécanisme général
du mapping

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
107

Pagination

➢ Les pages sont des blocs de taille fixe,

➢ adresse virtuelle est de la forme (p,d) où p = numéro de page en mémoire


virtuelle.

➢ Un élément de la table des pages sera de la forme (r, s, D, p') où


❖ r est le bit de résidence (0 si la page est en mémoire secondaire, 1 si la
page est chargée en mémoire principale),

❖ s est l'adresse en mémoire secondaire (si r=0),

❖ p' est le numéro de page en mémoire principale (si r=1),

❖ D correspond aux droits d'accès de la page (lecture, écriture,


exécution).
A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
108

Pagination

On peut distinguer trois types de mapping :

Mapping "direct" :
p est converti en p'
d'après la table des
pages.

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
109

Pagination

Mapping "associatif" : une


mémoire associative est
utilisée pour la table des
pages (accès par contenu et
non par
adresse) ce qui permet
d'augmenter la
vitesse de traitement.

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
110

Pagination

Mapping "direct-associatif"
: on essaie d'abord de
trouver p' avec la table
associative, sinon on utilise
la table générale.

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
111

Segmentation

➢ Un segment est un bloc de taille variable

➢ Une adresse virtuelle est de la forme (s,d) où s est le numéro de segment,

➢ Le mécanisme de mapping est assez similaire à celui de la pagination,

➢ Un élément de la table des segments sera de la forme (r, s, l, D, s') où


❖ r , s, D, s' ont la même signification que précédemment (en
remplaçant page par segment),
❖ l désigne la longueur du segment.

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
112

Segmentation

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
113

Système Mixte

Systèmes mêlant segmentation et pagination.

exemple : segment 1 = 4 pages ; segment 2 = 2 pages, etc...

Une adresse virtuelle est alors de la forme (s, p, d) où

❖ s est le numéro de segment,

❖ p le numéro de page dans le segment,

❖ d le numéro d'octet dans la page (déplacement).

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
114

Système Mixte

On essaie d'abord la recherche


avec la table associative, sinon
on utilise les tables segment-
pages.

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
115

Stratégies de remplacement

Pourquoi le remplacement de page?

Lorsque le système fonctionne,


✓ la mémoire principale contient des pages chargées ;
✓ au bout d'un moment, elle peut être saturée ;
✓ pour charger une nouvelle page, il faut en "écraser" une présente.

✓ En général, on remplace les pages qui ne sont plus utilisées,

✓ mais il est difficile de prédire qu'une page ne sera plus utilisée par la suite.

C'est pourquoi, un certain nombre de stratégies sont mises au point pour


s'approcher le plus du principe d'optimalité (remplacer la page qui ne sera plus
utilisées).

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
116

Stratégies de remplacement
LRU (Least Recently Use)
Remplacer la page la moins récemment utilisée.
Il faut estampiller chaque page avec une date chaque fois qu'elle est utilisée.
Le problème que l'on rencontre dans cette stratégie est celui des traitements faisant
intervenir des boucles de programme.

LFU (Least Frequently Use) est plus affinée que la précédente,


Remplacer la page la moins fréquemment
Ceci permet (théoriquement) de résoudre le problème des boucles.
Une page sera donc munie d'un compteur du nombre d'utilisations.
Bien évidemment, une page qui vient d'être chargée possède une probabilité
importante d'être remplacée.

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
117

Stratégies de remplacement

NUR (Not Used Recently) Stratégie très utilisée;

Une page qui n'a pas été utilisée (lue ou modifiée) récemment a peu de
chances de l'être ultérieurement.

2 bits sont affectés à chaque page : rb (bit de référence) et mb (bit de


modification

➢ rb = 0 si la page n'a pas été référencée et rb = 1 si la page a été


référencée

➢ mb = 0 si la page n'a pas été modifiée et mb = 1 si la page a été


modifiée

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
118

Stratégies de remplacement

NUR (Not Used Recently) Stratégie très utilisée;

Au départ, rb = mb = 0 ;

Chercher une page avec rb = 0 (page non


référencée)
Si on trouve alors
l'algorithme de remplacement est le Si mb = 0 (page non modifiée)
suivant : alors
Remplacer la page
sinon
Continuer la recherche
FinSi
sinon
Remplacer la page référencée
FinSi
A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
119

Stratégies de remplacement

NUR (Not Used Recently) Stratégie très utilisée;

Périodiquement, on remet rb à 0, ce qui signifie que, à un instant donné, il y a 4


catégories de pages :

rb = 0 et mb = 0 pages ayant une plus grande


rb = 0 et mb = 1 probabilité d'être remplacées

rb = 1 et mb = 0 pages ayant une probabilité


rb = 1 et mb = 1 plus faible d'être remplacées

A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
120

Stratégies de remplacement

FIFO
Chaque page qui vient d'être chargée est affectée d'une date (de
chargement). En se basant sur cette date, il est possible d'éliminer les pages
les plus anciennes. Telle est la stratégie FIFO (First In First Out).

A. M. CHANA

Vous aimerez peut-être aussi