Professional Documents
Culture Documents
Sylvain MONTAGNY
sylvain.montagny@univ-savoie.fr
Btiment chablais, bureau 13
04 79 75 86 86
zCours : 12 h en 8 sances
z Chapitre 1 : Rappels gnraux sur les processeurs
Universit de Savoie 2
Prsentation TD
z TD : 15 h en 10 sances
z TD 1 : Rappels sur les architectures
microprocesseurs
z TD 2 : Pipeline
z TD 3 : Mmoires Caches
z TD 4 : Les interruptions
Universit de Savoie 3
Prsentation TP
z TP : 16 h en 4 sances
z TP 1 : Simulation de mmoire cache et pipeline
Universit de Savoie 4
Chapitre 1 : Rappel gnraux sur les
processeurs
Universit de Savoie 5
Larchitecture interne
Wafer
Un microprocesseur est constitu dun morceau de silicium dop.
Cest donc un ensemble de millions de transistors.
z Wafer : Galette de plusieurs processeurs
z 1 processeur : quelques millimtres carrs
Universit de Savoie 6
Larchitecture interne
Unit commande/traitement
Universit de Savoie 7
Larchitecture interne
Schma
Universit de Savoie 8
Larchitecture interne
Lunit de commande (1)
Universit de Savoie 9
Larchitecture interne
Lunit de commande (2)
2. Le registre d'instruction et le dcodeur d'instruction :
Chacune des instructions excuter est transfr depuis
la mmoire dans le registre instruction puis est dcode
par le dcodeur dinstruction.
Universit de Savoie 10
Larchitecture interne
Lunit de commande (3)
Universit de Savoie 11
Larchitecture interne
Lunit de traitement (1)
Elle regroupe les circuits qui assurent les traitements ncessaires
l'excution des instructions
Universit de Savoie 12
Larchitecture interne
Lunit de traitement (2)
3. Le registre d'tat est gnralement compos de 8
bits considrer individuellement. Chacun de ces
bits est un indicateur dont l'tat dpend du rsultat
de la dernire opration effectue par lUAL. On les
appelle indicateur dtat ou flag ou drapeaux. Dans
un programme le rsultat du test de leur tat
conditionne souvent le droulement de la suite du
programme. On peut citer par exemple les
indicateurs de :
z Retenue (carry : C)
z Dbordement (overflow : OV ou V)
z Zro (Z)
z ...
Universit de Savoie 13
Larchitecture interne
LUnit de traitement (3)
8 8
OV =Overflow Flag
C = Carry Flag
C0
Slection de C1 Z = Zero Flag
lopration C2 S = Sign Flag
C3
UAL Flag = drapeau
P = Parity Flag Registre dtat
Rsultat
Universit de Savoie 14
Larchitecture interne
Lunit de traitement (4)
Universit de Savoie 15
Larchitecture interne
Architecture complte
Universit de Savoie 16
Rappels: le fonctionnement basique
dune opration de calcul
1
2
CPU Mmoire
4
Universit de Savoie 17
Larchitecture
Von Neuman
Mmoire
Programme
CPU BUS
&
donnes
z Un seul chemin d'accs la mmoire
z Un bus de donnes (programme et donnes),
z Un bus dadresse (programme et donnes)
z Architecture des processeurs dusage gnral
z Goulot d'tranglement pour l'accs la mmoire
Universit de Savoie 18
Larchitecture
Harvard
Mmoire
programme
CPU
Mmoire
donne
z Sparation des mmoires programme et donnes
z Un bus de donnes programme,
z Un bus de donnes pour les donnes,
z Un bus dadresse programme,
z Un bus dadresse pour les donnes.
z Meilleure utilisation du CPU :
z Chargement du programme et des donnes en parallle
19
Larchitecture
Harvard : Cas des microcontrleurs PIC
Universit de Savoie 20
Chapitre 1 : Rappel gnraux sur les
processeurs
Universit de Savoie 21
Le traitement des instructions
Organisation dune instruction
Le microprocesseur ne comprend quun certain
nombre dinstructions qui sont codes en binaire. Une
instruction est compose de deux lments :
z Le code opration : Cest un code binaire qui correspond laction
effectuer par le processeur
z Le champ oprande : Donne ou bien adresse de la donne.
Universit de Savoie 22
Le traitement des instructions
Exemple dinstruction
z Instruction Addition :
Accumulateur = Accumulateur + Oprande
Correspond linstruction ADD A,#2
Universit de Savoie 23
Le traitement des instructions
Phase 1 : Recherche de linstruction en mmoire
z La valeur du PC est place sur le bus d'adresse par l'unit de
commande qui met un ordre de lecture.
z Aprs le temps d'accs la mmoire, le contenu de la case
mmoire slectionne est disponible sur le bus des donnes.
z L'instruction est stocke dans le registre dinstruction du processeur.
Universit de Savoie 24
Le traitement des instructions
Phase 2 : Dcodage et recherche de loprande
z L'unit de commande transforme l'instruction en une suite de
commandes lmentaires ncessaires au traitement de l'instruction.
z Si l'instruction ncessite une donne en provenance de la mmoire,
l'unit de commande rcupre sa valeur sur le bus de donnes.
z Loprande est stock dans le registre de donnes.
Universit de Savoie 25
Le traitement des instructions
Phase 3 : Excution de linstruction
z Le squenceur ralise l'instruction.
z Les drapeaux sont positionns (registre d'tat).
z L'unit de commande positionne le PC pour l'instruction suivante.
Universit de Savoie 26
Le traitement des instructions
Les architectures RISC et CISC (1)
z L architecture CISC
(Complex Instruction Set Computer)
z Larchitecture RISC
(Reduced Instruction Set Computer)
Universit de Savoie 27
Le traitement des instructions
Les architectures RISC et CISC (2)
Universit de Savoie 28
Chapitre 1 : Rappels gnraux sur les
processeurs
Universit de Savoie 29
Les modes dadressages
z Adressage immdiat
z Adressage direct
z Adressage indirect
Universit de Savoie 30
Les modes dadressages
Immdiat
Exemple : ADDA #4
ALU
Mmoire
M
Adresses Contenu
0x00 0..
110 1101
Accumulateur
0x01 0..
100 0101
0..
010 1111
0011 1000
1
100 0101
1
010 1001
.
0111 1010
Universit de Savoie 31
Les modes dadressages
Direct
Accumulateur
0x01 0..
100 0101
0..
010 1111
adresseX 0xxxx
0 1 1 xxxx
1000
1
100 0101
1
010 1001
.
0111 1010
Universit de Savoie 32
Les modes dadressages
Indirect
Accumulateur
0x01 0..
100 0101
0..
010 1111
@adresseX 0 adresseX
011 1000
1
100 0101
adresseX 1 0 1 0 xxxxxx
xxxxx 1001
.
0111 1010
Universit de Savoie 33
Les modes dadressages
Universit de Savoie 34
Chapitre 1 : Rappel gnraux sur les
processeurs
Universit de Savoie 35
Exemple dexcution
Directives
dassemblage
Valeurs des .TITLE Bruit_HP ; Titre du programme
.PROC I8085 ; Processeur utilis
symboles
.START OSCIL ; Adresse dbut programme
.02 D3 MOVE A,
MOVE A,$HP
.03 40 $HP
.04 3E MOVE ,A
MOVE #HPON,A
.05 01 #HPON
.06 D3 MOVE A,
MOVE A,$HP
.07 40 $HP
.08 C3 JUMP
0A 00 OSCIL
37
Exemple dexcution
Continue.
c le c le cle c le
u u u u
re
bo e bo e bo e bo
i m m m
i i i
1 2 3 4
Universit de Savoie 38
Chapitre 2 : Le pipeline
Universit de Savoie 39
Dfinition dun pipeline
Comparaison (1)
Universit de Savoie 43
Chapitre 2 : Le pipeline
Universit de Savoie 44
Les tages dun pipeline
P (Prefecth) - Generate program address = Incrmentation du compteur ordinal
F (Fetch) - Get Opcode = Lecture du code de linstruction en mmoire
D (Decode) - Decode instruction = Dcodage de linstruction
A (Access) - Generate read address = Calcul des adresses des oprandes
= Calcul de ladresse du rsultat
R (Read) - Read operands = Lecture des oprandes en mmoire
X ( Execute) = Excution de linstruction
= Ecriture du rsultat ladresse calcule
P F D A R X
P F D A R X
P F D A R X
P F D A R X
P F D A R X
P F D A R X
Full Pipeline : Toutes les units
matrielles du DSP sont en activits
Les tages dun pipeline
Comparaison avec et sans pipeline
Universit de Savoie 46
Les tages dun pipeline
Utilisation des ressources par le pipeline
Etage
Description Partie hardware utilise
pipeline
P Generate program address PC
F Get Opcode Program memory
D Decode instruction Decoder
A Generate read address ARs, ARAU
Read Operand Data memory
R
Generate write address ARs, ARAU
Execute instruction MAC, ALU
X
Write result Data Memory
47
7
Les tages dun pipeline
Les retards
z Le pipeline atteint son plein rendement une
fois quil est rempli
z Un retard peut se produire
z Sil existe un conflit de ressources (retard ponctuel)
z accs la mmoire
z utilisation des bus
z En cas de rupture de squence (vidange du
pipeline)
z branchement non prvu
z appel de sous-programme
z interruption
Universit de Savoie 48
Les tages dun pipeline
Exemple de rupture
Program
54x &
Donnes
P1 F1 D1 A1 R1 X1
P2 F2 D2 A2 R2 X2
P3 F3 D3 A3 R3 X3
P4 -- -- -- F4 D4 A4 R4 X4
-- -- -- P5 F5 D5 A5 R5 X5
-- -- -- P6 F6 D6 A6 R6
Universit de Savoie 49
Les tages dun pipeline
Solution par lorganisation du code
54x 54x
P or D
D P
P1 F1 D1 A1 R1 X1
P2 F2 D2 A2 R2 X2
P3 F3 D3 A3 R3 X3
P4 F4 D4 A4 R4 X4
P5 F5 D5 A5 R5 X5
P6 F6 D6 A6 R6 X6
NO CONFLICT 50
Types de pipelining
Squentiel : Pipeline simple
Pas de pipeline (plupart des DSP)
(ex: Motorola 56000)
t t
t t
Universit de Savoie 51
Les tages dun pipeline
Remarques sur les performances
Universit de Savoie 52
Les tages dun pipeline
Exemple de profondeur
Universit de Savoie 53
Chapitre 2 : Le pipeline
Universit de Savoie 54
Alas d'un pipeline
Les types dalas
Universit de Savoie 55
Les alas dans le pipeline
Alas de structures
Program
54x &
P1 F1 D1 A1 R1 X1 Donnes
P2 F2 D2 A2 R2 X2
P3 F3 D3 A3 R3 X3
P4 -- -- -- F4 D4 A4 R4 X4
-- -- -- P5 F5 D5 A5 R5 X5
-- de Savoie--
Universit-- P6 F6 D6 A6 56 R6
Les alas dans le pipeline
Alas de donnes (1)
Universit de Savoie 57
Les alas dans le pipeline
Alas de donnes (2)
Universit de Savoie 58
Les alas dans le pipeline
Alas de donnes (3)
z Remarques :
z Le compilateur n'est pas toujours en mesure de dtecter les alas (par
exemple, si les alas concernent des pointeurs).
z Le nombre d'instructions intercaler dpend de la structure (nombre
d'tages) du pipeline.
z La complexit du compilateur en est fortement augmente.
59
Les alas dans le pipeline
Alas de donnes (4)
Chargement
Chargement
La frquence leve d'alas de donnes peut (instruction)
(instruction)
justifier l'introduction de matriel supplmentaire. On
peut par exemple introduire une connexion directe
entre la sortie de l'tage d'excution et l'tage de Dcodage
Dcodage
chargement des oprandes. Ceci permet au rsultat
d'une instruction d'tre un oprande de l'instruction
suivante. Chargement
Chargement
(oprandes)
(oprandes)
Ci contre un pipeline pouvant raliser cette solution.
Excution
Excution
Rangement
Rangement
(oprandes)
(oprandes)
Universit de Savoie
Les alas dans le pipeline
Alas de contrle (1)
Universit de Savoie 61
Les alas dans le pipeline
Alas de contrle (2)
Universit de Savoie 62
Les alas dans le pipeline
Alas de contrle (3)
Solution statique :
z Les sauts en arrire (boucles) sont plus souvent pris
que pas pris. En effet, une boucle est souvent raliser
avec plus que 2 itrations.
=>On peut donc faire une prdiction selon la direction:
z si le saut est en arrire, il est pris,
z s'il est en avant, il n'est pas pris.
Universit de Savoie 63
Les alas dans le pipeline
Alas de contrle (4)
Solution dynamique
z Pour raliser une prdiction dynamique le processeur mmorise le
comportement du programme lors de l'excution des sauts. chaque
excution d'un branchement dans un programme, le processeur
mmorise si le saut tait pris ou pas pris dans un tampon de prdiction
de branchement. Sur la base du comportement pass du programme
pour un branchement donn, le processeur prdit son comportement
pour l'excution suivante du mme saut.
z Par rapport la prdiction statique, la prdiction dynamique est plus
performante, mais ncessite une quantit trs importante de logique de
contrle.
CK
INST 1 P F D A R X
INST 2 P F D A R X INTERRUPTION
INST 3 P F D A R X
INST 4 P F D A R X
Universit de Savoie 65
Les alas dans le pipeline
Rsum
Universit de Savoie 66
Chapitre 3 : Les mmoires caches
Universit de Savoie 67
Objectifs et principes du cache
Universit de Savoie 68
Objectifs et principes du cache
Vitesse des mmoires et des processeurs (1)
z volution
Universit de Savoie 69
Objectifs et principes du cache
Vitesse des mmoires et des processeurs (2)
Universit de Savoie 70
Objectifs et principes du cache
Principe de localit (1)
z Localit spatiale :
z Tendance accder aux donnes qui sont
proches de celles rcemment utilises
z Localit temporelle :
z Tendance rutiliser des donnes
rcemment utilises
Universit de Savoie 71
Objectifs et principes du cache
Principe de localit (2)
Temps 72
Objectifs et principes du cache
Principe de localit (3)
Universit de Savoie 73
Objectifs et principes du cache
Analogie
z Homme = Unit de calcul
z Le bureau = Mmoire cache
z La bibliothque = Mmoire centrale
Universit de Savoie 74
Objectifs et principes du cache
Unit
Unit Mmoire
Mmoire Mmoire
Mmoire
de
de Cache Centrale
Cache Centrale
calcul
calcul
Universit de Savoie 75
Objectifs et principes du cache
Organisation mmoire
z La mmoire cache possde x blocs
z La mmoire centrale possde y blocs
z y >> x
cache X blocs
Processeur
Mmoire
y blocs
Contrleur
centrale
Adresses
Mme packaging 76
Objectifs et principes du cache
Placement des donnes dans le cache
Universit de Savoie 77
Objectifs et principes du cache
Principe gnral (1)
z LUC veut faire rfrence un bloc X2 dans le cache
z Recherche de X2 dans le cache
z => Dfaut de cache
X4
X7
Unit
Unit
de
de X1 Mmoire
Mmoire
Calcul Centrale
Centrale
Calcul
(UC)
(UC) X8
X3
78
Objectifs et principes du cache
Principe gnral (2)
z LUC veut faire rfrence un bloc X2 dans le cache
z Extraction de X2 de la mmoire centrale
X4
X7
Unit
Unit
de
de X1 Mmoire
Mmoire
Calcul Centrale
Centrale
Calcul X2
(UC)
(UC) X8
X3
79
Objectifs et principes du cache
Principe gnral (3)
z Il y a eu transfert dun nouveau bloc (X2) de la
mmoire centrale, dans la mmoire cache.
X4 X4
X7 X7
Avant Aprs
X1 X1
X2
X8 X8
X3 X3
Universit de Savoie 80
Objectifs et principes du cache
Bloc ou ligne de cache (1)
Universit de Savoie 82
Objectifs et principes du cache
Bloc ou ligne de cache (2)
z Ladresse fournie par le processeur peut tre
scinde en deux parties : le n de bloc et
ladresse dans le bloc.
Bits 31 5 4 3 2 1 0
1 bloc 8 octets
X8
Numro de bloc Emplacement de X3
loctet dans le bloc
Universit de Savoie 83
Objectifs et principes du cache
tiquettes
z Un bit de validit :
z Il permet de savoir si les donnes du bloc sont obsoltes
ou pas.
Universit de Savoie 84
Chapitre 4 : Les mmoires caches
Universit de Savoie 85
O placer un bloc?
Diffrentes organisations de cache
O placer une ligne de la mmoire principale dans le cache?
Compltement Cache correspondance Cache associatif par
associatif direct ensemble de bloc
Bloc 0 1 2 3 4 5 6 7 Bloc : 4 (12 mod 8) 0 (12 mod 2)
Bloc 0 1 2 3 4 5 6 7 Bloc 01 23 45 6 7
no.
no. no.
Bloc 1111111111222222222233
no. 01234567890123456789012345678901
86
Cache associatif
z Le numro de bloc est utilis comme tiquette.
Les tiquettes sont stockes dans un
rpertoire en mme temps que les donnes
z Un bloc peut tre plac nimporte o dans la
mmoire cache.
Etiquette
00 01 10 11
tiquette V Donnes
Rpertoire dtiquette
88
Cache correspondance directe
z Dans le cache accs direct, le champ
numro de bloc est scind en deux parties :
ltiquette et lindex. Ltiquette et les donnes
correspondantes sont toujours enregistres dans
la range donne par le champ index.
Numro de bloc
Universit de Savoie 89
Cache correspondance directe
z Lindex donne directement la position dans le cache
Nbr ligne de cache = 2 Nbre bits d'index
tiquette index
00000010000011000010 0000000100 00
00 01 10 11
tiquette V Donnes
000
004
3FF
90
Cache associatif par ensemble de blocs
Numro de bloc
Universit de Savoie 91
Cache associatif par ensemble de blocs
11111111
92
Les tiquettes en fonction du type de caches
z Cache associatif
Etiquette Adresse doctet
Universit de Savoie 94
Comment un bloc est-il trouv?
Recherche dun bloc dans le cache
z Quand une donne est place dans le cache, le
numro de bloc de ladresse fournie par le processeur
est plac dans le champ tiquette de la range o la
donne est place.
95
Comment un bloc est-il trouv?
Cas du Cache associatif
00 01 10 11
000 tiquette V Donnes
Comparateur
20 bits
004
3FF
Universit de Savoie 98
Quel bloc remplac lors dun dfaut ?
z Remplacement alatoire :
z Simplicit de l'algorithme
Universit de Savoie 99
Chapitre 4 : Les mmoires caches
X2 X2
101
Gestion des critures (2)
z write-through : La donne est crite la fois dans le
cache et dans la mmoire principale. La mmoire
principale et le cache ont tout moment une valeur
identique
z write-back : L'information n'est crite dans la mmoire
principale que lorsque la ligne disparat du cache.
Cette technique est la plus rpandue car elle permet
d'viter de nombreuses critures mmoires inutiles.
Pour ne pas avoir crire des informations qui n'ont
pas t modifies (et ainsi viter d'encombrer
inutilement le bus), chaque ligne de la mmoire cache
est pourvue d'un bit dirty. Lorsque la ligne est modifie
dans le cache, ce bit est positionn 1, indiquant qu'il
faudra rcrire la donne dans la mmoire principale.
Universit de Savoie 102
Chapitre 3 : Les interruptions
z Interruption
z Demande linitiative du priphrique
z Prise en compte rapide de lvnement
z Implmentation : Interruption asynchrone dun programme
puis retour au mme endroit la fin du traitement
113
Les interruptions
Rle de la pile
z Elle va servir :
z sauvegarder le contexte lenvironnement
(adresse du programme et valeur des registres au
moment de linterruption).
z restituer le contexte la fin de linterruption
Programme
principal
Registres
x Pile
xx
Programme
dinterruption
115
Les interruptions
Arrive dune interruption
Programme
principal
Registres
x Pile
Addr Prog
xx
Programme
dinterruption
116
Les interruptions
Arrive dune interruption : Sauvegarde contexte
Programme
principal
Registres
x
x xx Pile
Addr Prog
xx
Programme
dinterruption
117
Les interruptions
Fin dune interruption : Restitution contexte
Programme
principal
Registres
x
x
xx Pile
Addr Prog
xx
Programme
dinterruption
118
Les interruptions
Fin dune interruption
Programme
principal
Registres
x Pile
Addr Prog
xx
Programme
dinterruption
119
Les interruptions
Retour au programme principal
Programme
principal
Registres
x Pile
xx
Programme
dinterruption
120
Chapitre 4 : Les accs DMA
(Source : Wikipdia)
z Carte graphique
z Carte son
z Disque dur
z Lecteur CD
z Mode DMA
La technique du DMA (Direct Memory Access)
permet de dsengorger le processeur en permettant
chacun des priphriques d'accder directement
la mmoire.
Les vitesses de transfert (mode DMA ou Ultra DMA restent donc toujours
en troite relation avec larchitecture utilise (ATA, Serial ATA, )
139
Etude dun systme (2)
Polling (scrutation)
Ces fonctions font parties des librairies de la carte (Board Support Library)
>> Voir C:\CCStudio_v3.1\docs\hlp\C5416DSK.HLP
z Ces fonctions font parties des librairies de la carte (Chip Support Library)
z >> Voir aide > IRQ functions
DMA