Cours Des Microprocesseurs

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 101

1èr CI

2020/2021
Les microprocesseurs

Pr MOHAMED HAMLICH
Microprocesseurs
Plan de la première partie du cours
• Définitions et caractéristiques
• Historique et évolution
• Structure interne du processeur
• Etapes d’exécution d’une instruction
• Architectures CISC et RISC
CISC
RISC

 Architectures superscalaires
 VLIW
 Evolution des architectures
• Pipeline
• Parallélisme
2
• Mesure des performances d’un up
Pr MOHAMED HAMLICH
Le microprocesseur (CPU) Définition:
Extrait les instructions de la mémoire et les exécute.
Cycle de base:
1. Extraire
2. Décoder
3. Exécuter
4. Stockage
Plusieurs registres généraux de 8,16, 32 ou 64 bits.
Trois registres spéciaux:
• Compteur ordinal (PC: Program Counter): il contient l’adresse de la prochaine
instruction à exécuter,
• Pointeur de pile (SP: Stack Pointer): il contient l’adresse de la prochaine case
libre dans la pile
• Mot d’état (PSW): Registre d’état: il contient des indicateurs: des flags

ZF CF SF OF
3

Pr MOHAMED HAMLICH
Le microprocesseur
Définition:
En entrée :
1) Il dispose d ’une adresse dans la mémoire ;
2) Il charge le contenu de cette adresse et le
considère comme étant une instruction ;
Mémoire
3) Ensuite, il charge le contenu de l ’adresse contenant le
suivante, et il recommence. Adresse
programme
2000H I1
En sortie : I2
1) Il donne le résultat de la première instruction ; I3

2) Il donne le résultat de la deuxième instruction


; Ik
Ik+1
3) ... 2xxxH Ik+2

Pr MOHAMED HAMLICH
Microprocesseur (CPU)
Définition:
• Exécute les instructions machines placées en mémoire
centrale (cerveau de l'ordinateur)

• Contient 2 composants essentiels :


 l'unité de contrôle ou de commande : exécute les instructions
machines
 l'unité arithmétique et logique (UAL) : exécute les opérations
élémentaires nécessaire à l’exécution des instructions machines
 qui communiquent entre eux par un bus interne et avec le monde
extérieur par les bus de données, d’adresses et de contrôle

Fabricants : Intel, Motorola, Zilog, Western Design Center, National


Semiconductor Corporation, Harris Semiconductors, Data General,
AMD, Hewlett-Packard, IBM

5
Pr MOHAMED HAMLICH
Microprocesseur
Définition:
• Circuit électronique cadencé au rythme d'une horloge interne
Cristal de quartz soumis à un courant électrique : envoie des impulsions

 La fréquence d'horloge (cycle) = nombre d'impulsions par seconde


 à chaque top d’horloge : exécution d’une action (instruction)
 les cycles se comptent en millions d'instructions par seconde (MHz) ou en
milliards d'instructions par seconde (GHz)
 4.77 MHz en 1981, 25 MHz en 1992, 400 MHz en 1998, 2GHz en 2002, …

• Le premier microprocesseur (Intel 4004) a été inventé en 1971


 unité de calcul 4 bits cadencé à 108 kHz
 résultat de l’intégration d’environ 2300 transistors

• Depuis, la puissance des microprocesseurs augmente


exponentiellement (Loi de Moore)
• 1 KHZ=1000hz, 1MHz=1000000Hz, 1GHz=10^9Hz 6
Caractéristiques du µP
Le format des données La taille de l ’espace adressable
= Nombre de bit du bus de donnée = Nombre de bit du bus d ’adresse
•8bits •16 bits = 65.536 adresses
•16bits •32 bits = 4.294.967.296 adresses
•32bits

La puissance de traitement
S’exprime en MIPS
(Millions d’Instructions Par Seconde)

Le jeu d ’instructions

La puissance consommée •Etendu (CISC)


• Réduit (RISC)
•Pd (w) fonction de la vitesse
•Pd (w) fonction de la tension 7
6
Pr MOHAMED HAMLICH
Historique et évolution
Générations et Performances
• Performances : MIPS
• Première génération • Millions of Instructions Per
• tubes à vide 1945-1955
Second
• Quelques chiffres :
• Deuxième génération
• Intel 8080, 1974, 0.02 mips
• transistors 1955-1965
• Intel 8086, 1978, 0.2 mips
• Troisième génération
• Intel 80286, 1982, 1 mips
• circuits intégrés 1965-1980
• Intel 486 DX/66, 1992, 20 mips
• Quatrième génération • Intel Pentium 60, 1994, 100 mips
• LSI, VLSI (Very) Large Scale • Intel Pentium Pro, 1996, 300
Integration 1980... mips
• Dec Alpha 21164, 1995, 1200
mips

Pr MOHAMED HAMLICH
Historique et évolution
Le premier microprocesseur (Intel 4004) a été inventé
en 1971. Il s'agissait d'une unité de calcul de 4 bits,
cadencé à 108 kHz. Depuis, la puissance des
microprocesseurs augmente exponentiellement.

Pr MOHAMED HAMLICH
Historique et évolution

10

Pr MOHAMED HAMLICH
Historique et évolution

11

Pr MOHAMED HAMLICH
•Date : l’année de commercialisation du microprocesseur.
•Nom : le nom du microprocesseur.
•Nombre de transistors : le nombre de transistors contenus dans le
microprocesseur.
•Finesse de gravure (nm) : la largeur minimale possible
(en nanomètres) du canal des transistors.
•Fréquence de l’horloge : la fréquence du signal d'horloge interne qui
cadence le microprocesseur.
 MHz = million(s) de cycles par seconde.
 GHz = milliard(s) de cycles par seconde.

•Largeur des données : le premier nombre indique le nombre de bits


sur lequel une opération est faite. Le second nombre indique le
nombre de bits transférés à la fois entre la mémoire et le
microprocesseur.

•MIPS : le nombre de millions d’instructions, sur des entiers,


effectuées par le microprocesseur en une seconde.
12

Pr MOHAMED HAMLICH
STRUCTURE INTERNE DU
PROCESSEUR
Un processeur est constitué au minimum :
d'une unité de commande qui coordonne le

fonctionnement,
d'une unité arithmétique et logique qui effectue les

traitements,
des registres qui permettent un stockage local.

13

Pr MOHAMED HAMLICH
PROCESSEUR

UNITE DE COMMANDE REGISTRES UNITE ARITHMETIQUE


ET LOGIQUE

BUS INTERNE

INTERFACE AUX BUS

BUS (EXTERNE) DE L'UNITE CENTRALE 14

Pr MOHAMED HAMLICH
STRUCTURE INTERNE
1) Unité de contrôle : lit les données, les décode puis les envoie à
l'unité d'exécution
 2 registres pour la manipulation des instructions :
 compteur ordinal : à chaque instant contient l’@ de la prochaine
instruction à exécuter (IE)
 registre d’instruction : contient l'instruction à exécuter
 Décodeur : circuits d’identification de IE
 Séquenceur : exécution de la séquence de microcommandes de IE
 rythmé par l’horloge du microprocesseur
 pour son fonctionnement, il utilise les registres de l’UAL
 Registre d’@ connecté au bus d’@ pour sélectionner un mot mémoire
 Registre de données pour l’échange d’informations entre la mémoire
centrale et le processeur
15
Pr MOHAMED HAMLICH
STRUCTURE INTERNE
2) Unité d'exécution : accomplit les tâches venant de
l'unité de contrôle :
 Registres : rapides (de 8, 16, 32 ou 64 bits), contiennent :
 une adresse d’un mot mémoire
 le contenu d’un mot mémoire (donnée)

 UAL : exécution de tous les calculs élémentaires


 calcul arithmétique et opérations logiques
 utilise des registres (données sur lesquelles portent les
opérations)

 Unité de virgule flottante (FPU) : calculs complexes


non entiers
16
Pr MOHAMED HAMLICH
17

Pr MOHAMED HAMLICH
STRUCTURE INTERNE

Microprocesseur

UNITE DE TRAITEMENT UNITE DE CONTROLE


Interface BD
de données

Interface Interface BA
de controle d’adresse

BC 18

Pr MOHAMED HAMLICH
Etape 0 : un registre appelé Compteur Ordinal contient l’adresse
de la première instruction à exécuter

Microprocesseur

UNITE DE TRAITEMENT UNITE DE CONTROLE


Interface BD
de données

Compteur
ordinal

Interface Interface BA
de controle d’adresse

BC 19

Pr MOHAMED HAMLICH
Etape 1 : la lecture de l’instruction I1 consiste à transférer le contenu
de la mémoire correspondante dans le registre d’instructions

Microprocesseur

UNITE DE TRAITEMENT UNITE DE CONTROLE


BD interne Interface BD
de données

Registre
d’instruction

Compteur
ordinal

Interface Interface BA
de controle d’adresse

BC 20

Pr MOHAMED HAMLICH
Etape 2 : l’analyse (décodage) du premier octet permet au microprocesseur de connaître le
nombre d’octets que comporte l’instruction ainsi que l’opération élémentaire a exécuter

Microprocesseur

UNITE DE TRAITEMENT UNITE DE CONTROLE


BD interne Interface BD
de données

Registre
d’instruction

Décodeur Compteur
de ordinal
fonctions

Interface Interface BA
de controle d’adresse

BC 21

Pr MOHAMED HAMLICH
Etape 3 : le microprocesseur effectue le traitement
correspondant (unité de traitement)

Microprocesseur

UNITE DE TRAITEMENT UNITE DE CONTROLE


BD interne Interface BD
de données

Registre Registre
Accu A Accu B
d'état d’instruction

Décodeur Compteur
de ordinal
UAL fonctions

Interface Interface BA
de controle d’adresse

BC 22

Pr MOHAMED HAMLICH
L'unité de traitement
• L’UAL (Unité Arithmétique et

BD interne Logique)
• deux registres de travail
contenant une donnée ou un
Registre
Accu A Accu B résultat : accumulateurs A et B
d'état

• un registre d'état comportant


des indicateurs mémorisant la
UAL façon dont s’est effectuée
l’opération élémentaire (ex :
retenue C, zéro Z)

23

Pr MOHAMED HAMLICH
EXECUTION D'UNE INSTRUCTION
PORTANT SUR UN OPERANDE MEMOIRE

Une instruction processeur est en général composée de


deux parties :

• le code opération qui indique la nature de l'opération à

effectuer, et

• l'adresse de la donnée (ou opérande) qui est la quantité

sur laquelle l'opération doit être effectuée.

24

Pr MOHAMED HAMLICH
1ère phase : recherche et décodage de l'instruction (cette
première phase est valable pour tout type d'instruction).
PROCESSEUR MEMOIRE

programme
UNITE DE COMMANDE code
BUS
compteur ordinal registre adresse
ADRESSE
adresse instruction adresse inst. instruction
1
registre instruction registre donnée

code opération adresse donnée instruction


2
données
BUS
DONNEE
donnée
UAL

accumulateur

25

Pr MOHAMED HAMLICH
2ème partie : exécution de l'instruction

PROCESSEUR MEMOIRE

programme
UNITE DE COMMANDE code
BUS
compteur ordinal registre adresse
ADRESSE
adresse adresse donnée instruction
3
registre instruction

code opération adresse donnée


données

instruction décodée
donnée
UAL
accumulateur registre donnée

donnée, puis résultat donnée


4
BUS
DONNEE
26

Pr MOHAMED HAMLICH
Fréquence d’horloge

• La fréquence de l’horloge détermine la durée d’un


cycle
• Chaque opération utilise un certain nombre de cycles
• La fréquence d’horloge n’est pas le seul critère de
performance
• La fréquence d’horloge est fonction de :
• La technologie des semi-conducteurs
• Les circuits
• …

27

Pr MOHAMED HAMLICH
ARCHITECTURES CISC ET RISC
• Constat: grande majorité des instructions disponibles sont très
peu utilisées
• Deux types d’architectures différentes:

• CISC (Complex instruction Set Computer): modes d’adressage


complexe + plusieurs instructions possibles + nombre de cycles
par instruction différent → Pentium

• RISC (Reduced Instruction Set Computer): peu de modes


d’adressage + peu d’instructions possibles + nombre de cycles
par instruction constant (ou presque) → PowerPC.

• Actuellement peu de frontière entre les deux …?

28

Pr MOHAMED HAMLICH
ARCHITECTURES CISC ET RISC
• CISC (Complex Instructions Set Computer)= processeur à jeu
d'instructions classique tels que ceux utilisés sur les micro-
ordinateurs (Intel 386, Motorola 68030,...). Il s'agit de processeurs
complexes comportant beaucoup d'instructions (plusieurs
centaines). Certaines instructions sont complexes avec une grande
variété de formats.
• Dans les années 1970, après la naissance des premiers
microprocesseurs, les accès mémoires étaient relativement lents et
le processeur disposait de plusieurs cycles d'horloge (au moins 8 pour
le 68000) pour aller chercher, décoder et exécuter l'instruction. Ce
nombre de cycles permettait d'effectuer des calculs micro-séquencés
qui donnait lieu à des instructions très compliquées mais peu souvent
utilisées, ce qui justifie le nom de ce type de processeur : "Complex
Instruction Set computer". 29

Pr MOHAMED HAMLICH
30

Pr MOHAMED HAMLICH
• RISC (Reduced Instructions Set Computer) = processeur à jeu réduit
d'instructions tels que ceux utilisés sur les stations de travail (Alpha
de DEC, Power d'IBM, Sparc de Sun, PA8000 de HP, R8000 de
Mips,...).
• Utiliser des registres, de la mémoire locale rapide ou « cache »
pour éviter d'attendre.
• Paralléliser les instructions : techniques pipeline
• Instructions simples au format fixe
• 2 instructions pour l’accès à la mémoire : LOAD et STORE
• Le jeu d'instructions est réduit à une cinquantaine avec peu
d'instructions avec référence mémoire, exécution de la plupart des
instructions en un seul cycle machine, des instructions courtes
• Dans les années 80, cette approche devint possible grâce aux
progrès technologiques . Le gain en performance doit tendre vers «
une instruction en 1 cycle d’horloge ».
31

Pr MOHAMED HAMLICH
CISC et RISC
Processeurs CISC (‘Complex Instruction Set Computer'),
comme les processeurs Intel : lenteur de la mémoire =>
intérêt d’avoir des opérations complexes très spécialisées =>
moins nombreuses et moins d’accès aux données.

Mais 80% des programmes générés par les compilateurs font appel
a seulement 20% des instructions machine.
D'ou l'idée de l'architecture RISC de réduire le jeu d'instructions a
ces 20% d'instructions les plus utilisées, en cherchant a les optimiser
au maximum avec des séquenceurs câblés.

CISC RISC
jeu d'instructions large jeu d'instructions réduit
instructions complexes instructions simples
instructions de tailles différentes instructions de mêmes tailles
instructions de durées différentes instructions de mêmes durées
séquenceur micro-programmé séquenceur câblé

Richesse du langage machine Efficacité du langage machine 32


Pr MOHAMED HAMLICH
CISC et RISC

La famille CISC (Complex Instruction Set Computer)


(Pentium, famille 8051)
•Jeu d’instructions très complet
•Parfois plusieurs cycles machine par instruction
•Structure du circuit complexe, donc plus chère

La famille RISC (Reduced Instruction Set Computer)


(PowerPC de Motorola, famille PIC)
•Jeu d’instructions limité
•Une instruction par cycle machine
•Structure du circuit plus simple, donc moins chère
33

Pr MOHAMED HAMLICH
Processeur superscalaire

On dispose de plusieurs unités d’exécutions


(ex. arithmétique entière, en point flottant et logique).

Deux ou plusieurs opérations sont traité à la fois 34

Pr MOHAMED HAMLICH
Architectures Superscalaires
•n unités d’exécution
•n instructions délivrées par cycle
•ordonnancement dynamique en matériel!!

Cette technique vise à mettre en


parallèle plusieurs processeurs
en parallèle . Cette technique
"superscalaire" repose sur une
unité interne d'ordonnancement
dynamique des instructions de
façon à profiter pleinement du
parallélisme.
Pr MOHAMED HAMLICH 35

Pr MOHAMED HAMLICH
Architecture Superscalaire
• Multiplie les unités fonctionnelles

• Gestion des instructions


• Statique (in-order): exécutées dans l’ordre du code machine
• Dynamique (out-of-order):le hardware modifie l’ordre des
instructions pour favoriser le parallélisme (faible nombre
d’instructions)
• Exécution spéculative: exécution avant que le contrôle des
dépendances soient effectués
Out-of-order et speculative instruction tendent à améliorer le
parallélisme d’instruction

36

Pr MOHAMED HAMLICH
Architecture VLIW
•Une seule unité de contrôle, une instruction très longue par cycle. Une autre
technique consiste à disposer d'unités d'exécution en parallèle mais d'agencer les
instructions respectives au niveau du compilateur de telle sorte qu'une longue
instruction correspondant à plusieurs instructions concaténées soit présentée au
processeur. Cet agencement statique à la compilation permet en théorie
d'atteindre des performances élevées par rapport aux techniques "superscalaires".
Cependant l'écriture de tels compilateurs demeure très difficile et les résultats
restent perfectibles, à moins d'utiliser des fonctions optimisées écrites en langage
machine.

37

Pr MOHAMED HAMLICH
Évolutions des architectures
(années 90)
• Adressage 64 bits

• Optimisations:

• Branchement conditionnel – exécution conditionnelle

• De l’utilisation des caches: hardware prefetching

• Faster integer and floating-point operations

• Réduction du coût des branchements par l’utilisation de «


dynamic hardware prediction »

•…

38

Pr MOHAMED HAMLICH
Comment faire des processeurs plus rapides?

• Augmenter la fréquence d’horloge (limites techniques, solution


coûteuse)
• Permettre l’exécution simultanée de plusieurs instructions
• Exécution en parallèle (duplication de composants hardware,
coûteux)
• Pipelining (pas de duplication de composants hardware

• Améliorer les accès mémoire


• Mémoire hiérarchique
• Optimisation des accès

39

Pr MOHAMED HAMLICH
Qu’est ce que le software Pipelining?

• Parallélisme d’instructions

• Une opération s’exécute en plusieurs étapes indépendantes par


des éléments différents du processeur
• Le pipelining consiste à exécuter simultanément des étapes
différentes d’ opérations différentes
• Exemple: opération s’effectuant en 5 étapes

Charge Charge les


Décode Exécute Ecriture
l’instruction opérandes

40

Pr MOHAMED HAMLICH
Software Pipelining (suite)
3 instructions simultanées dans le pipe

Charge Charge
l’instruction
Décode opérandes Exécute Ecriture

Charge Charge
l’instruction
Décode opérandes Exécute Ecriture

Charge Charge
l’instruction
Décode opérandes Exécute Ecriture

3 instructions en parallèle en 7 cycles (15 cycles en séquentiel)


41

Pr MOHAMED HAMLICH
RCH DEC EXE STK

RCH DEC EXE STK


RCH DEC EXE STK

RCH DEC EXE STK

Pr MOHAMED HAMLICH 42
Pipeline

Le processeur possède des unités séparées pour


l’extraction, le décodage et l’exécution.

Différentes étapes de différentes instructions peuvent


être traitées en parallèle.

43

Pr MOHAMED HAMLICH
Pipeline

Le traitement d'une instruction nécessite plusieurs phases, par


exemple :
CH chargement (lecture) de l'instruction
DC décodage de l'instruction (et sélection des registres et/ou des
adresses d'entrée/sortie)
EX exécution proprement dit
SV sauvegarde (écriture) du résultat en mémoire

Une architecture pipeline consiste à segmenter les unités qui


accomplissent ces tâches afin de pouvoir commencer une nouvelle
instruction alors que la précédente n'est pas terminée (c'est le
travail à la chaîne du processeur).
44

Pr MOHAMED HAMLICH
cycles 1 2 3 4 5 6 7 8
instructions
1 CH DC EX SV
2 CH DC EX SV
3 CH DC EX SV
4 CH DC EX SV
5 CH DC EX SV

45

Pr MOHAMED HAMLICH
Architecture 64 bits: Motivations
• Des applications nécessitant des ressources accrues

• Data Base, Data mining,…


• Calcul scientifique, simulation, grid computing
• Multi-média:son, vidéo

• Calcul en flottants plus efficace en 64 bits

• Capacité d’adressage accrue:

2 32  4GB
2 64  1800TB (théorique)

Pr MOHAMED HAMLICH
Les performances d ’un
micro-processeur

• Elles dépendent bien sûr de la vitesse de l ’horloge de


l ’ordinateur ;

• Mais elles dépendent aussi :


1. du pipeline ;
2. du cache.

Ce sont ces deux derniers critères les plus importants !

47

Pr MOHAMED HAMLICH
Le cache
• L’accès à la mémoire vive est lent, et celui au disque est encore plus
lent ;
• Pour éviter d ’accéder à la mémoire vive (RAM) ou au disque dur, on
utilise un cache.

Le cache est de la mémoire très rapide située à côté de l ’unité de


traitement du processeur. C’est de la mémoire à l’intérieur du
processeur. Rapidité
C Bus Bus
a d’ad d’adress
Bu
ress
c e
h Cache es
UP de RAM DD
e l2 Bus de
do
donnée
nn
L s
ée
1 s
Capacité 48

Pr MOHAMED HAMLICH
Avantage et inconvénients

Avantage :
La mémoire cache permet au processeur de ne pas
être ralenti par la mémoire extérieure (RAM, disque
dur,…)
Inconvénients :
La mémoire cache est chère, et elle occupe de la place
sur le micro-processeur.

49

Pr MOHAMED HAMLICH
Le parallélisme

Le parallélisme consiste à exécuter simultanément, sur


des processeurs différents, des instructions relatives à un
même programme. Cela se traduit par le découpage d'un
programme en plusieurs processus traités en parallèle
afin de gagner en temps d'exécution.

50

Pr MOHAMED HAMLICH
Carte mère bi-processeurs / double coeurs
Le parallélisme
• Implémenter des architectures d'électroniques numériques et les
algorithmes spécialisés pour celles-ci  traiter des infos de manière
simultanées

• But : effectuer le plus grand nombre d'opérations dans le plus petit


temps possible
 les opérations doivent être faites en parallèle (simultanément
au sein de plusieurs unités de traitement)
 tâche à effectuer  décomposée en de multiples sous-tâches
qui sont exécutées en même temps

Pr MOHAMED HAMLICH
51
Processeur multi-coeurs

52

Pr MOHAMED HAMLICH
Carte mère multi-processeurs

• Capable d’en accueillir 2, 4, 8 ou plus (plusieurs sockets)

• Deux manières de gérer 2 processeurs sur une carte :


 asymétrique : chaque processeur se voit attribuer une tâche
différente. N’accélère pas les traitements, mais permet de confier
une tâche à un processeur pendant que l’autre est occupé à une
tâche différente.
 symétrique (SMP : Symmetric MultiProcessing) : chaque tâche
répartie symétriquement entre les deux processeurs

• Linux : 1er à gérer les architectures bi-processeur.


• Consomment beaucoup d'énergie et dégagent beaucoup de chaleur
 limitant lorsque les processeurs sont étroitement confinés ou en
très grand nombre
Pr MOHAMED HAMLICH
53
Carte mère à 2 processeurs

Pr MOHAMED HAMLICH
54
Carte mère double cœurs / bi-processeurs

Processeur dual core : équipé de deux cœurs (unités de calcul qui


travaillent en parallèle) sur une même puce :
 Processeurs standard : puissance aujourd'hui limitée (de
l'ordre de 3,2 GHz : difficile à dépasser sans hausse du coût de
fabrication)
 Double cœur : puissance de l'ordre du double du processeur de
référence (architecture parallèle : augmente le nombre
d’opérations exécutées simultanément en un cycle d’horloge)
Différence majeure entre double cœur et biprocesseurs :
 double cœur : un seul processeur à 2 cœurs + un système de
mise en commun
 biprocesseurs : deux processeurs distincts (plus encombrants)

Pr MOHAMED HAMLICH
55
Avantages des multi-cœurs
Avantages par rapport au mono-cœur : calculs en parallèle
 puissance de calcul supérieure avec une fréquence d’horloge
(nb cycles/s) moins élevée
 consomme moins d’énergie électrique

 réduit la quantité de chaleur dissipée par effet Joule (comme


pour les systèmes multiprocesseurs)
 microprocesseur + efficace en traitement multitâche :
répartition des opérations entre les cœurs de processeurs, plutôt
qu’en alternance sur un seul processeur
Les premiers exemplaires de processeurs multi-cœurs d’Intel et
d’AMD sont arrivés sur le marché des ordinateurs personnels en
2005.
Pr MOHAMED HAMLICH
56
Avantages des multi-cœurs (2)

+ favorisent un véritable fonctionnement multitâche


 mono-cœurs : fonctionnement multitâche peut dépasser les
capacités de l'UC (baisse des performances car mise en attente
des opérations à traiter)
 multi-cœurs : chaque cœur dispose de sa propre mémoire
cache (suffisamment de ressources pour traiter en parallèle les
tâches les plus exigeantes en calculs)

+ améliore l'efficacité du système


+ augmente les performances applicatives des ordinateurs
 applications gourmandes comme les jeux vidéo

Pr MOHAMED HAMLICH
57
Inconvénients des multi-coeurs
- programmes repensés pour exploiter pleinement les
caractéristiques de ces processeurs
 sinon ils ne peuvent utiliser qu’un des cœurs (baisse de
performance)
 2006 - très peu de logiciels géraient le bi-cœurs (sauf sous
Linux): pas conçus pour tirer le maximum de cette technologie
 OS peuvent diviser par eux-mêmes les calculs effectués par les
logiciels qu’ils exécutent
 quadri-cœurs remplacent les bi-cœurs, car ils ne demandent
quasiment pas de modification logicielle.

Pr MOHAMED HAMLICH
58
Multi-processeurs et multi-cœurs
• Exemple : machine dotée de deux processeurs (de fréquence 2,8
GHz) et de quatre cœurs
 la fréquence de calcul vaut 2,8 GHz (elle est propre au processeur
et non pas à chaque cœur)
 seule la puissance du processeur (exprimée en FLO/s ou FLOPS :
« opérations à virgule flottante par seconde ») sera multiplié par le
nombre de cœurs.

Par exemple : un processeur dual-core cadencé à 1 GHz et dont la


puissance de chaque cœur vaut 10 GFlops
la puissance total du processeur dual-core vaudra :
10 GFlops + 10 GFlops = 20 GFlops

Pr MOHAMED HAMLICH
59
Mesure de performances
Pour mesurer la performance d'un ordinateur, on utilise deux unités
mesure :

Le MIPS (millions d'instruction par seconde), traduit le nombre


d'opérations sur les nombre entiers qu'un ordinateur peut effectuer
en 1 seconde.
1 MIPS = 1 millions d'instruction par seconde.
Performance MIPS = NI / (106 * temps d'exécution du programme)
NI= le nombre d'instructions du programme test.
Le MFLOPS (Millions Instructions floating point Opération), traduit
le nombre d'opérations sur les nombres réels qu'un ordinateur peut
effectuer en 1 seconde.
Performance MFLOP = NI / (106 * Temps d'exécution du
programme sur les nombres réels)
60

Pr MOHAMED HAMLICH
Mesure de performance
CPI = Nombre de cycles d'horloge par
instruction
Temps d' exécutionUC  Nombre de cycles UC  Temps de cycle pour un programme
ou
Nombre de cycles UC pour un programme
Temps d' exécutionUC 
Fréquenced'horloge
Nombre de cycles UC pour un programme
CPI 
Nombre d' instructions
Nombre d' instruction  CPI
Temps UC  Nombre d' instructions  CPI  Temps cycle d' horloge 
Fréquenced' horloge

Temps d'exécution du programme est égal à :


(CPI * NI) / fréquence du processeur

La performance MIPS peut alors s'exprimer de la façon suivante :


Performance MIPS = fréquence du processeur / (106 * CPI)
61

Pr MOHAMED HAMLICH
Exemple : Un ordinateur exécute un programme comportant 250
instructions de 3 types :
100 instructions de type 1
100 instructions de type 2
50 instructions de type 3

Le nombre de cycles par instruction de type 1 est 1,5


Le nombre de cycles par instruction de type 2 est 1
Le nombre de cycles par instruction de type 3 est 1,75
La fréquence de l'ordinateur est de 3,5 Ghz.
Calculer la performance MIPS.

62

Pr MOHAMED HAMLICH
Le nombre de cycles par instruction de type 1 est 1,5
Le nombre de cycles par instruction de type 2 est 1
Le nombre de cycles par instruction de type 3 est 1,75
La fréquence de l'ordinateur est de 3,5 Ghz.
Calculer la performance MIPS.

T = temps d'exéc global


= 100*1,5*Tc + 100*1*Tc + 50*1,75*Tc
Tc = 1/(3,5*109) s
T = (150+100+87,5)/(3,5*109) = 337,5/3,5*10-9 s
Performance = 250/((337,5/(3,5*109))*106) = ?? MIPS

63

Pr MOHAMED HAMLICH
La loi d’Amdahl
tempsd'exécutionancien
accélérationglobale  1
tempsd'exécutionnouveau fractionaméliorée
(1 fractionaméliorée)
accélérationaméliorée

exercice
Considérons un dispositif d’amélioration dix fois plus rapide que la
machine originelle mais que l’on ne peut utiliser que 40% du temps.
Quelle est l’accélération totale obtenue en intégrant ce dispositif ?
64

Pr MOHAMED HAMLICH
La loi d’Amdahl

Fraction améliorée = 0,4


Accélération améliorée = 10
Accélération globale =
1 1,56
0,6 0,4
10

65

Pr MOHAMED HAMLICH
Un programme est exécuté en 600 cycles d’horloges avec CPI=1.5
1) Donner le nombre d’instructions du programme
2) Sachant que F= 1,5Ghz, calculer le temps d’exécution.
3) En déduire le MIPS

1) CPI= NC/NI, NI=NC/CPI=600/1,5=400


2) TE=NC/F=600/1,5*10^9
=400ns=0,4us
3)MIPS=1,5*10^9/(10^6*1,5)=1000

Pr MOHAMED HAMLICH 66
 Les systèmes numériques complexes tels que les calculateurs
doivent traiter des nombres, des chaînes de caractères
alphanumériques, des instructions.
 A cette fin, ces informations sont représentées à l’aide de l’élément
binaire, noté eb ou bit (binary digit).
 L’objectif de ce chapitre est de rappeler les notions fondamentales
du codage de l’information utilisé par les systèmes numériques.67

Pr MOHAMED HAMLICH
Représentation polynomiale d’un nombre

 De
manière générale tout nombre N exprimé dans une base b peut se
décomposer sous la forme polynomiale suivante :

avec
• S est le signe du nombre
• ai est le symbole de rang i, ai ∈N et 0 ≤ ai < b
• an est le symbole de poids le plus fort (MSB :
Most Significant Bit si b = 2), et a−m est le symbole de
poids le plus faible (LSB : Least Significant Bit si b = 2)
68

Pr MOHAMED HAMLICH
Bases de numération usuelles et
représentation des nombres positifs.
Conversions entre bases de numération
Les bases de numération les plus utilisées sont la base décimale (b =
10), la base binaire (b = 2), et les bases dérivées de la base binaire :
base octale (b = 8) et base hexadécimale (b = 16).

La numération binaire utilise les 2 bits 0 et 1, la numération octale


utilise 8 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, et la numération hexadécimale
utilise 16 symboles : 0, 1, 2, ..., 9, A, B, C, D, E, F (les symboles A à F
ont pour équivalents décimaux les nombres 10 à 15).

69

Pr MOHAMED HAMLICH
Base b vers base 10
 Pour convertirun nombre d’une base b vers la base décimale, on utilise
la méthode dite des additions qui consiste à utiliser la représentation
du nombre sous forme polynomiale (équation 1).
Exemple 1 : conversion du nombre binaire entier

70

Pr MOHAMED HAMLICH
Exemple 2 : conversion du nombre binaire fractionnaire

71

Pr MOHAMED HAMLICH
Exemple 3 : conversion du nombre octal entier

72

Pr MOHAMED HAMLICH
Exemple 4 : conversion du nombre hexadécimal fractionnaire:

N. B. : La méthode des additions requiert la connaissance des


puissances successives de la base de départ.

73

Pr MOHAMED HAMLICH
Base 10 vers base b

Nombres entiers:

• Pour effectuer une conversion d’un entier décimal dans une autre

base on applique la méthode des divisions successives : on


effectue des divisions successives du nombre par cette base, les
restes successifs forment alors le nombre converti.

74

Pr MOHAMED HAMLICH
75

Pr MOHAMED HAMLICH
76

Pr MOHAMED HAMLICH
Nombres fractionnaires

• Pour convertir un nombre fractionnaire de la base 10 vers une

autre base, il faut procéder en deux étapes.

• La partie entière du nombre est convertie comme indiqué

précédemment ; la partie fractionnaire du nombre est convertie


par multiplications successives : on multiplie successivement la
partie fractionnaire par la base cible, en retenant les parties
entières qui apparaissent au fur et à mesure.

77

Pr MOHAMED HAMLICH
78

Pr MOHAMED HAMLICH
79

Pr MOHAMED HAMLICH
• Il est visible sur les deux exemples précédents que la conversion peut

ne pas se terminer et que l’on obtient, en s’arrêtant à un nombre fini


de positions une approximation de la représentation du nombre.

80

Pr MOHAMED HAMLICH
BASE 2 VERS BASE 8 OU 16

• On groupe par blocs de 3 bits et on remplace chaque bloc par son

équivalent octale:

• Pour la partie entière, le regroupement part du bit de poids le plus

faible, et pour la partie fractionnaire, du bit de poids le plus fort (de la


virgule).

• Lorsqu’un groupe est incomplet, on le complète avec des 0.

81

Pr MOHAMED HAMLICH
82

Pr MOHAMED HAMLICH
83

Pr MOHAMED HAMLICH
• Pour la conversion inverse, il suffit de développer chaque symbole de
la représentation dans la base B sur n bits.

84

Pr MOHAMED HAMLICH
Représentation binaire des nombres
signés

• Les systèmes numériques doivent être capables de traiter des

nombres positifs et négatifs.

• L’utilisation d’une représentation signée suppose l’utilisation d’un

format (nombre de bits) fixé au préalable.

85

Pr MOHAMED HAMLICH
Représentation en complément à 2
• Le complément à 2 est le mode de représentation le plus utilisé en
arithmétique binaire et donc dans les ordinateurs pour coder les
nombres entiers.
• Dans cette représentation, les nombres positifs se représentent par
leur valeur binaire naturelle.
• Par exemple +6 est représenté par 0000 0110 sur un format de 8 bits.
• La représentation des nombres négatifs s’obtient comme suit
• On part de la représentation binaire naturelle de l’opposé
arithmétique du nombre à coder (nombre positif),
• On calcule son complément à 1 (CA1) ou complément restreint.
Celui-ci est obtenu en inversant tous ses bits,
• On en déduit son complément à 2 (CA2) ou complément vrai en
ajoutant 1 au niveau du LSB.
86

Pr MOHAMED HAMLICH
87

Pr MOHAMED HAMLICH
88

Pr MOHAMED HAMLICH
Nombres à virgule flottante

• Principe de la notation scientifique

• Permet de représenter:

• Des nombres entiers de très grande valeur

• Des nombres réels, possédant une partie entière et une

partie fractionnaire
(ex.: 23,5618)

11 - 89

Pr MOHAMED HAMLICH
90

Pr MOHAMED HAMLICH
91

Pr MOHAMED HAMLICH
• 12,75)10= (?)ieee754
• 12)10=1100)2
• 0,75x2=1,5
• 0,5x2=1
• 12,75)10=(1100,11)2=(1,10011)x2^3
• Exposant: 3+127=130=(10000010)2
• Pseudomantisse:(10011000000000000000000)
• 12,75)10=(0 10000010 10011000000000000000000)IEEE754

Pr MOHAMED HAMLICH 92
Codage en virgule flottante
• On utilise l’écriture semi-logarithmique suivante :

93

Pr MOHAMED HAMLICH
Nombres à virgule flottante

• Composition:

• Mantisse: grandeur normalisée du nombre réel.

• Exposant: puissance de 10

• Exemple:

241506800  0,2415068109



94

Pr MOHAMED HAMLICH
Nombres à virgule flottante
32 bits

S Exposant (E) Mantisse fractionnaire (F)


1 8 23

• Norme ANSI/IEEE 754-1985


• Précision:
• Simple: 32 bits
• Double: 64 bits
• Étendue: 80 bits

• Composition:
• Mantisse: 24 bits (1 le + significatif pas compté)
• Exposant: polarisé (127 est ajouté à l’exposant réel)

1011010010001 1,011010010001 212


95

Pr MOHAMED HAMLICH
1011010010001 1,011010010001 212

32 bits

 0 10001011 01101001000100000000000
S E F

96

Pr MOHAMED HAMLICH
97

Pr MOHAMED HAMLICH
98

Pr MOHAMED HAMLICH
Code ASCII

(American Standard Code for International Interchange).

Norme universelle pour la transmission de données.


• ASCII normal: 128 caractères sur 7 bits;

• ASCII étendu: 256 caractères sur 8 bits.

Norme ISO Latin 1

99

Pr MOHAMED HAMLICH
Code Unicode (ISO 8859-1)

Le code ASCII est limité à 256 caractères.

Pour dépasser cette limite, une nouvelle norme sur 16 bits fut
créée.

Donc, plus de 65 000 caractères disponibles:


• Japonais, Grec, Russe, Hébreux, Arabe, Coréen, ...

100

Pr MOHAMED HAMLICH
Table des caractères ASCII

101

Pr MOHAMED HAMLICH

Vous aimerez peut-être aussi