11
Le processeurLe processeur
22
Le processeurLe processeur
Evolution du processeurEvolution du processeur
Fonctionnement pipeFonctionnement pipe--lineline
Processeur RISCProcesseur RISC
Superscalaire Superscalaire – SuperpipelineSuperpipeline
Extensions multimédiaExtensions multimédia
Processeur vectorielProcesseur vectoriel
33
La technologieLa technologie
Deux critères permettent de Deux critères permettent de
caractériser le processeur:caractériser le processeur:
La fréquence d'horlogeLa fréquence d'horloge
Le nombre de cycles par instructionLe nombre de cycles par instruction
44
Les différents typesLes différents types
CISC CISC : Complex Instruction Set : Complex Instruction Set
ComputerComputer
RISCRISC : Reduce Instruction Set : Reduce Instruction Set
ComputerComputer
Superscalar RISCSuperscalar RISC: Plusieurs : Plusieurs
instructions au même cycleinstructions au même cycle
55
Autres types...Autres types...
VLIWVLIW : Very Long Instruction Word: : Very Long Instruction Word:
Un ensemble d'instructions par cycle. Un ensemble d'instructions par cycle.
Une instruction au plus par groupe Une instruction au plus par groupe
d’instructions.d’instructions.
SuperpipelinedSuperpipelined : Utilisation d'une : Utilisation d'une
horloge multiphase. Plusieurs horloge multiphase. Plusieurs
instructions dans le même étage de instructions dans le même étage de
pipelinepipeline 66
RépartitionRépartition
5 10 20 100 500 1000 2000
0.1
0.2
0.5
1
2.0
5.0
10
20 CPI
MHz
CISC
RISC
VLIW
Superpipeline
Superscalaire
Vecteur
Processeurs
du futur
77
Le fonctionnement Le fonctionnement
pipelinepipeline
88
Système pipelineSystème pipeline
Superposition dans le temps Superposition dans le temps
Augmentation des performances Augmentation des performances
Parallélisme temporelParallélisme temporel
99
DécompositionDécomposition
Division d'une tâche en sous tâchesDivision d'une tâche en sous tâches
1 unité logique / sous tâche1 unité logique / sous tâche
Les sorties d'une unité sont Les sorties d'une unité sont
connectées aux entrées de la connectées aux entrées de la
suivantesuivante
Les données entrent par le premier Les données entrent par le premier
étage et sortent par le dernier.étage et sortent par le dernier.
1010
Principe du pipelinePrincipe du pipeline
Unit 1 Unit 2 Unit 3 Unit 4 Unit 5 Unit 6
T T
TT
TT
TT
TT
T
T T T T
TTT
T T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
1111111111
222222222
33333333
4444444
555555
66666
6
5
4
3
2
1
5
4
3
2
1
4
3
2
1
2
21
1
1
3
6
5
4
3
2
6
5
4
3
6
5
4
6
5
8
7
10
98
7
98
7
7
temps
Unit
1111
DéfinitionsDéfinitions
Latence du pipelineLatence du pipeline : temps (en cycles ) : temps (en cycles )
entre deux instructions consécutivesentre deux instructions consécutives
Débit du pipelineDébit du pipeline : Nombre d'instructions : Nombre d'instructions
exécutées par cycle, on appelle aussi le exécutées par cycle, on appelle aussi le
degré d'un processeur superscalairedegré d'un processeur superscalaire
Conflit sur ressourceConflit sur ressource : Deux ou plus : Deux ou plus
instructions demandent l'utilisation de la instructions demandent l'utilisation de la
même unité au même instantmême unité au même instant
1212
Transfert des données Transfert des données
pipelinepipeline
Modèle Asynchrone:Modèle Asynchrone:
Mécanisme de "handshacking" entre Mécanisme de "handshacking" entre
chaque couple d'unitéschaque couple d'unités
Etage i Etage i + 1
DATA
Ready
ACK
1313
Modèle SynchroneModèle Synchrone
Horloge contrôle le transfert des données Horloge contrôle le transfert des données
entre 2 unités entre 2 unités
Pipe d'instructionsPipe d'instructions
Pipe arithmétiquePipe arithmétique
Etage
i
DATA Etage
i+1
DATA Etage
i+2
DATA Etage
i+3
Horloge 1414
ConstructionConstruction
Utilisation de latchUtilisation de latch
Sans latch (CRAY)Sans latch (CRAY)
On parle de Maximum Rate pipeOn parle de Maximum Rate pipe--lineline
Horloge
Latch
1515
SpeedSpeed--upup
Sur un pipe nSur un pipe n--étages, il faut: étages, il faut:
n cycles pour obtenir le 1n cycles pour obtenir le 1erer sultat résultat
pour spour s--1 résultats, il faut ensuite s1 résultats, il faut ensuite s--1 cycles. 1 cycles.
Soit n+sSoit n+s--1 cycles pour s résultats1 cycles pour s résultats
(sur un processeur scalaire, il faut ns cycles)(sur un processeur scalaire, il faut ns cycles)
Le SpeedLe Speed--up est égal àup est égal à
S =S = TTscalscal /T/Tpipepipe = = nsns
n+sn+s--11
S S n quand s n quand s ++
1616
Pipeline d'instructions:Pipeline d'instructions:
Fetch / Execute 2 unités séparées Fetch / Execute 2 unités séparées
On réalise les deux phases en même On réalise les deux phases en même
temps sur des instructions différentes.temps sur des instructions différentes.
Il suffit de connaître la prochaine Il suffit de connaître la prochaine
instruction: instruction: instruction prefetchinstruction prefetch
Phase de
Chargement Phase d'
exécution
1717
Pipeline 2 étagesPipeline 2 étages
Fetch
Execute
Fetch
Execute
Temps d’exécution constant
Temps d’exécution variable 1818
Augmentation du Augmentation du
parallélismeparallélisme
L'instruction prefetch permet au plus L'instruction prefetch permet au plus
de doubler la vitesse du processeur.de doubler la vitesse du processeur.
Exécution souvent plus long que le Exécution souvent plus long que le
chargement.chargement.
La recherche de parallélisme La recherche de parallélisme
nécessite un découpage plus finnécessite un découpage plus fin
Souvent en 4 ou 5 étapes Souvent en 4 ou 5 étapes
successivessuccessives
1919
5 étages5 étages
Fetch/ Decode/ Fetch OP/ Execute/ Store Fetch/ Decode/ Fetch OP/ Execute/ Store
1 IFIF IDID FOFO EXEX SOSO
2 IFIF IDID FOFO EXEX SOSO
3 IFIF IDID FOFO EXEX SOSO
4 IFIF IDID FOFO EXEX SOSO
5 IFIF IDID FOFO EXEX SOSO
5 actions
en parallèle 2020
Exemple le MIPS
Fetch/ Decode/ Execute/ Memory/ Register
1 IFIF IDID EXEX MEMMEM REGREG
2 IFIF IDID EXEX MEMMEM REGREG
3 IFIF IDID EXEX MEMMEM REGREG
4 IFIF IDID EXEX MEMMEM REGREG
5 IFIF IDID EXEX MEMMEM REGREG
5 actions
en parallèle
ID : Decode + fetch operands
Mem : write back cache + mem
Reg : store ALU into register
2121
Le pipeLe pipe--line du 80486line du 80486
FetchFetch: : Instructions depuis le cache ou la mémoire Instructions depuis le cache ou la mémoire
vers 2 buffers de prefetch. Chaque buffer contient en vers 2 buffers de prefetch. Chaque buffer contient en
moyenne 5 instructions. Remplissage dès que moyenne 5 instructions. Remplissage dès que
possible des buffers.possible des buffers.
Decode stage 1Decode stage 1: Décode le code opération et les : Décode le code opération et les
modes d’adressagemodes d’adressage
Decode stage 2Decode stage 2: Génère les signaux pour l’ALU. : Génère les signaux pour l’ALU.
Réalise les adressages plus complexesRéalise les adressages plus complexes
ExecuteExecute: Opérations ALU, Accès cache, registres: Opérations ALU, Accès cache, registres
Write BackWrite Back: Maj des flags, écriture des résultats sur : Maj des flags, écriture des résultats sur
le cache et le buffer de l’interface du Busle cache et le buffer de l’interface du Bus 2222
Efficacité
Soit tile temps de traversée de
l'étage i.
Le temps d'exécution d'une
instruction est: instinst 
Le délai entre 2 instructions
successives est MaxMax
est appelé cycle du pipeline
2323
Rupture de pipelineRupture de pipeline
Instructions de branchement Instructions de branchement
Data dépendanceData dépendance
Défauts de cacheDéfauts de cache
Conflits hardware (mémoire)Conflits hardware (mémoire)
2424
Instructions de BranchementInstructions de Branchement
Lors de l'exécution d'un JUMPLors de l'exécution d'un JUMP
La prochaine instruction est la La prochaine instruction est la
suivante suivante
OKOK
Ce n'est pas la suivante Ce n'est pas la suivante
Vidage du pipeVidage du pipe--lineline
Remplissage du pipe avec les Remplissage du pipe avec les
bonnes instructionsbonnes instructions
2525
Réduction de la vitesseRéduction de la vitesse
10 à 20% des instructions sont des 10 à 20% des instructions sont des
JUMP JUMP
réduction de la vitesse globaleréduction de la vitesse globale
Boucle TantQue, ExitBoucle TantQue, Exit
xxxxx
Abandon
EX
2626
Réduction des ruptures Réduction des ruptures
4 techniques pour réduire les ruptures 4 techniques pour réduire les ruptures
de pipelinede pipeline
Buffer d'instructionsBuffer d'instructions
Loop bufferLoop buffer
Table de branchementTable de branchement
Branchement retardéBranchement retardé
2727
Buffer d'instructionsBuffer d'instructions
FIFO d'instructionsFIFO d'instructions : assure un flux : assure un flux
constantconstant
On utilise 2 FIFOsOn utilise 2 FIFOs
Une pour les instructions suivant le Une pour les instructions suivant le
JUMPJUMP
Une pour les instructions à Une pour les instructions à
l'adresse du JUMPl'adresse du JUMP
2828
Multiple preMultiple pre--fetchfetch
On charge les 2 FIFOs après un On charge les 2 FIFOs après un
JUMPJUMP
Après le JUMP, on choisit Après le JUMP, on choisit
l'instruction dans l'une des 2 FIFOsl'instruction dans l'une des 2 FIFOs
Si plusieurs JUMP pris en compte, il Si plusieurs JUMP pris en compte, il
faut plusieurs FIFO (2faut plusieurs FIFO (2nn = n JUMP)= n JUMP)
Augmente les conflits d’accès Augmente les conflits d’accès
mémoiremémoire
2929
Double FIFODouble FIFO
Mémoire
Fetch FIFO . . .
Séquentiel
Non séquentiel
3030
Loop BufferLoop Buffer
Petite mémoire rapide contrôlée par l’unité Petite mémoire rapide contrôlée par l’unité
de chargement des instructionsde chargement des instructions
Contient les N instructions les plus Contient les N instructions les plus
récemment chargées.récemment chargées.
Fonctionnement comme un cache Fonctionnement comme un cache
d’instructions mais en séquenced’instructions mais en séquence
A chaque fetch on recherche d’abord A chaque fetch on recherche d’abord
l’instruction dans le loop bufferl’instruction dans le loop buffer
1 / 27 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !