Représentation des Nombres en Informatique
Représentation des Nombres en Informatique
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
A. M. CHANA
Représentation nombres entiers
5
➢ 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.
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
Ou
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.
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
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
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 216
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.
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
A. M. CHANA
Soustraction en complément
18
❖ 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
A. M. CHANA
Soustraction en complément
20
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
A. M. CHANA
Soustraction en complément
23
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
Objectifs
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
A. M. CHANA
Représentation des réels: Virgule Flottante
26
A. M. CHANA
Représentation des réels: Virgule Flottante
27
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
A. M. CHANA
Représentation des réels: Virgule Flottante
29
Signe mantisse Exposant biaisé Mantisse normalisée
1 1100 1. 1 0 1 0 0 0 0 0 1 0
A. M. CHANA
Représentation des réels: Virgule Flottante
30
A. M. CHANA
Représentation des réels: Virgule Flottante
31
A. M. CHANA
+
32
FONCTIONNEMENT DE
BASE DES
MICROPROCESSEURS
A. M. CHANA
Fonctionnement de base des Microprocesseurs
33
Introduction
➢ Nano-processeurs
➢ Microcontrôleur <> microprocesseur
A. M. CHANA
Fonctionnement de base des Microprocesseurs
34
Introduction
Les applications des systèmes à microprocesseurs
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
➢ Séquenceur
A. M. CHANA
Eléments de base d’un microprocesseur
38
L’unité de traitement
➢ 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
𝒇𝐇
𝐌𝐈𝐏𝐒 = avec fH en Mhz ou Ghz
𝐂𝐏𝐈
A. M. CHANA
Le jeu d’instructions
44
A. M. CHANA
Le jeu d’instructions
45
➢ Type d’instruction
A. M. CHANA
Le jeu d’instructions
46
➢ Codage
A. M. CHANA
Le jeu d’instructions
47
➢ Codage
Il existe trois types de codage d’instruction :
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.
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.
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
A. M. CHANA
Types de processeurs
53
➢ 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.
✓ 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
✓ Calcul général :
Jeux vidéo
✓ Traitement du signal
Radar, Sonar
A. M. CHANA
PRINCIPES D'ARCHITECTURE
DES MICROPROCESSEURS
Phases d'une instruction
57
A. M. CHANA
Timing des phases (cas simplifié)
58
A. M. CHANA
Architecture pipeline
59
➢ Principe
A. M. CHANA
Architecture pipeline
60
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
✓ 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
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:
A. M. CHANA
Architecture pipeline
67
Dépendances de données entre instructions
RAR (Consommateur/Consommateur)
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
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
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.
A. M. CHANA
Architecture pipeline
71
Exemple de traitement pipeliné :
Résolution :
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
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9
A. M. CHANA
Architecture pipeline
74
Dépendances de Contrôle entre instructions
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.
A. M. CHANA
Architecture pipeline
77
Dépendances de Contrôle entre instructions
Illustration
➢ SUB modifie R1
au cycle 5,
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
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
prendre le branchement ;
OU
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:
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
A. M. CHANA
Architecture pipeline
85
Prédiction de branchement
Exemple: prédicteur 2 bits
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.
A. M. CHANA
Architecture pipeline
86
Prédiction de branchement
Exemple: prédicteur 2 bits
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.
A. M. CHANA
Architecture pipeline
90
Prédiction de 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.
A. M. CHANA
Architecture pipeline
91
Prédiction de branchement
Branchement non
pris
A. M. CHANA
Architecture pipeline
92
Prédiction de branchement
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
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.
➢ 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
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
➢ 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
A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
104
Organisation
Mémoire
virtuelle
A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
105
➢ 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 ;
A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
106
Mécanisme général
du mapping
A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
107
Pagination
Pagination
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
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
A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
112
Segmentation
A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
113
Système Mixte
A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
114
Système Mixte
A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
115
Stratégies de remplacement
✓ mais il est difficile de prédire qu'une page ne sera plus utilisée par la suite.
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.
A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
117
Stratégies de remplacement
Une page qui n'a pas été utilisée (lue ou modifiée) récemment a peu de
chances de l'être ultérieurement.
A. M. CHANA
Mémoire Physique & Mémoire
virtuelle
118
Stratégies de remplacement
Au départ, rb = mb = 0 ;
Stratégies de remplacement
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