Académique Documents
Professionnel Documents
Culture Documents
Wafer
Un microprocesseur est constitué d’un morceau de silicium dopé.
C’est donc un ensemble de millions de transistors.
z Wafer : Galette de plusieurs processeurs
z 1 processeur : quelques millimètres carrés
L’architecture interne
Unité commande/traitement
8 8
OV =Overflow Flag
C = Carry Flag
C0
Sélection de C1 Z = Zero Flag
l’opération C2 S = Sign Flag
C3
UAL Flag = « drapeau »
P = Parity Flag Registre d’état
Résultat
L’architecture interne
L’unité de traitement (4)
L’architecture interne
Architecture complète
Rappels: le fonctionnement basique
d’une opération de calcul
1
2
CPU Mémoire
4
Mémoire
Programme
CPU BUS
&
données
z Un seul chemin d'accès à la mémoire
z Un bus de données (programme et données),
z Un bus d’adresse (programme et données)
Mémoire
programme
CPU
Mémoire
donnée
Université de Savoie
Le traitement des instructions
Phase 2 : Décodage et recherche de l’opérande
z L'unité de commande transforme l'instruction en une suite de
commandes élémentaires nécessaires au traitement de l'instruction.
z Si l'instruction nécessite une donnée en provenance de la mémoire,
l'unité de commande récupère sa valeur sur le bus de données.
z L’opérande est stocké dans le registre de données.
Université de Savoie
Le traitement des instructions
Phase 3 : Exécution de l’instruction
z Le séquenceur réalise l'instruction.
z Les drapeaux sont positionnés (registre d'état).
z L'unité de commande positionne le PC pour l'instruction suivante.
Université de Savoie
Le traitement des instructions
Les architectures RISC et CISC (1)
z L’ architecture CISC
(Complex Instruction Set Computer)
z L’architecture RISC
(Reduced Instruction Set Computer)
Le traitement des instructions
Les architectures RISC et CISC (2)
Les modes d’adressages
z Adressage immédiat
z Adressage direct
z Adressage indirect
Les modes d’adressages
Immédiat
Exemple : ADDA #4
ALU
Mémoire
Adresses Contenu
0x00 0………………..
110 1101
Accumulateur
0x01 0………………..
100 0101
0………………..
010 1111
Compteur Ordinal adrs 1 1 0ADDA
1 0101
adrs + 2 …………………
1………………..
010 1101
…………………
0011 1000
1…………………
100 0101
1…………………
010 1001
………………….
0111 1010
Les modes d’adressages
Direct
Accumulateur
0x01 0………………..
100 0101
0………………..
010 1111
Compteur Ordinal adrs 1 1 0ADDA
1 0101
adrs + 2 …………………
1010 1101
adresseX 0xxxx
0 1 1 xxxx
1000
1…………………
100 0101
1…………………
010 1001
………………….
0111 1010
Les modes d’adressages
Indirect
Accumulateur
0x01 0………………..
100 0101
0………………..
010 1111
Compteur Ordinal adrs 1 1 0ADDA
1 0101
adrs + 2 …………………
1010 1101
@adresseX 0 adresseX
011 1000
1…………………
100 0101
adresseX 1 0 1 0 xxxxxx
xxxxx 1001
………………….
0111 1010
Exemple d’exécution
Directives
d’assemblage
Valeurs des .TITLE Bruit_HP ; Titre du programme
.PROC I8085 ; Processeur utilisé
symboles
.START OSCIL ; Adresse début programme
.00 3E MOVE ,A
MOVE #HPOFF,A
Adresses .01 00 #HPOFF
.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
Définition d’un pipeline
Comparaison (1)
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 unités
matérielles du DSP sont en activités
Les étages d’un pipeline
Comparaison avec et sans pipeline
Etage
Description Partie hardware utilisée
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
Program
54x &
Données
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
Les étages d’un pipeline
Solution par l’organisation 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
Types de pipelining
Séquentiel : Pipeline simple
Pas de pipeline (plupart des DSP)
(ex: Motorola 56000)
t t
t t
Les étages d’un pipeline
Remarques sur les performances
Program
54x &
P1 F1 D1 A1 R1 X1 Données
P2 F2 D2 A2 R2 X2
P3 F3 D3 A3 R3 X3
P4 -- -- -- F4 D4 A4 R4 X4
-- -- -- P5 F5 D5 A5 R5 X5
-- --
Université de Savoie
-- P6 F6 D6 A6 56
R6
Les aléas dans le pipeline
Aléas de données (1)
z Remarques :
z Le compilateur n'est pas toujours en mesure de détecter les aléas (par
exemple, si les aléas concernent des pointeurs).
z Le nombre d'instructions à intercaler dépend de la structure (nombre
d'étages) du pipeline.
z La complexité du compilateur en est fortement augmentée.
Les aléas dans le pipeline
Aléas de données (4)
Chargement
Chargement
La fréquence élevée d'aléas de données peut (instruction)
(instruction)
justifier l'introduction de matériel supplémentaire. On
peut par exemple introduire une connexion directe
entre la sortie de l'étage d'exécution et l'étage de Décodage
Décodage
chargement des opérandes. Ceci permet au résultat
d'une instruction d'être un opérande de l'instruction
suivante. Chargement
Chargement
(opérandes)
(opérandes)
Ci contre un pipeline pouvant réaliser cette solution.
Exécution
Exécution
Rangement
Rangement
(opérandes)
(opérandes)
Les aléas dans le pipeline
Aléas de contrôle (1)
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
Les aléas dans le pipeline
Résumé
z Évolution
z Localité spatiale :
z Tendance à accéder aux données qui sont
proches de celles récemment utilisées
z Localité temporelle :
z Tendance à réutiliser des données
récemment utilisées
Objectifs et principes du cache
Principe de localité (2)
Temps
Objectifs et principes du cache
Principe de localité (3)
cache
X blocs
Processeur
Mémoire
y blocs
Contrôleur
centrale
Adresses
Même packaging
Objectifs et principes du cache
Placement des données dans le cache
X4
X7
Unité
de X1 Mémoire
Calcul Centrale
(UC) X8
X3
Objectifs et principes du cache
Principe général (2)
z L’UC veut faire référence à un bloc X2 dans le cache
z Extraction de X2 de la mémoire centrale
X4
X7
Unité
de X1 Mémoire
Calcul X2
Centrale
(UC) X8
X3
Objectifs et principes du cache
Principe général (3)
z Il y a eu transfert d’un nouveau bloc (X2) de la
mémoire centrale, dans la mémoire cache.
X4 X4
X7 X7
Avant Après
X1 X1
X2
X8 X8
X3 X3
Objectifs et principes du cache
Bloc ou ligne de cache (1)
Bits 31 … … … 5 4 3 2 1 0
1 bloc 8 octets
X8
Numéro de bloc Emplacement de X3
l’octet dans le bloc
Objectifs et principes du cache
Étiquettes
z Un bit de validité :
z Il permet de savoir si les données du bloc sont obsolètes
ou pas.
Où placer un bloc?
Différentes organisations de cache
Où placer une ligne de la mémoire principale dans le cache?
Complètement Cache associatif par
Cache à correspondance
associatif ensemble de bloc
direct
0 (12 mod 2)
Bloc 0 1 2 3 4 5 6 7 : 4 (12 mod 8)
BlocBloc
no. 01234567 Bloc 01 23 45 6 7
no. no.
Bloc 1111111111222222222233
no. 01234567890123456789012345678901
Cache associatif
z Le numéro de bloc est utilisé comme étiquette.
Les étiquettes sont stockées dans un
répertoire en même temps que les données
z Un bloc peut être placé n’importe où dans la
mémoire cache.
Etiquette
00 01 10 11
Étiquette V Données
Répertoire d’étiquette
Cache à correspondance directe
z Dans le cache à accès direct, le champ
« numéro de bloc » est scindé en deux parties :
l’étiquette et l’index. L’étiquette et les données
correspondantes sont toujours enregistrées dans
la rangée donnée par le champ index.
Numéro de bloc
Cache à correspondance directe
z L’index donne directement la position dans le cache
Nbre bits d'index
Nbr ligne de cache = 2
Étiquette index
00000010000011000010 0000000100 00
00 01 10 11
Étiquette V Données
000
004
…
…
3FF
Cache associatif par ensemble de blocs
Numéro de bloc
Université de Savoie
Cache associatif par ensemble de blocs
11111111
Les étiquettes en fonction du type de caches
z Cache associatif
Etiquette Adresse d’octet
31 ... ... ... ... … … … … … … … … … … … … 2 10
00 01 10 11
000 Étiquette V Données
Comparateur
20 bits
004
3FF
Bus de données
Quel bloc remplacé lors d’un défaut ?
z Remplacement aléatoire :
z Simplicité de l'algorithme
X2 X2
Gestion des écritures (2)
z write-through : La donnée est écrite à la fois dans le
cache et dans la mémoire principale. La mémoire
principale et le cache ont à tout moment une valeur
identique
z write-back : L'information n'est écrite dans la mémoire
principale que lorsque la ligne disparaît du cache.
Cette technique est la plus répandue car elle permet
d'éviter de nombreuses écritures mémoires inutiles.
Pour ne pas avoir à écrire des informations qui n'ont
pas été modifiées (et ainsi éviter d'encombrer
inutilement le bus), chaque ligne de la mémoire cache
est pourvue d'un bit dirty. Lorsque la ligne est modifiée
dans le cache, ce bit est positionné à 1, indiquant qu'il
faudra réécrire la donnée dans la mémoire principale.
Les interruptions
Problématique & définition
z Un système informatique n’est utile que s’il
communique avec l’extérieur. L’objectif est de pouvoir
prendre connaissance du fait que le périphérique sollicite
le processeur. Cette sollicitation arrive de façon
totalement asynchrone.
z Interruption
z Demande à l’initiative du périphérique
z Prise en compte rapide de l’évènement
z Implémentation : Interruption asynchrone d’un programme
puis retour au même endroit à la fin du traitement
Les interruptions
Schéma
Programme
principal
Registres
x Pile
xx
Programme
d’interruption
Les interruptions
Arrivée d’une interruption
Programme
principal
Registres
x Pile
Addr Prog
xx
Programme
d’interruption
Les interruptions
Arrivée d’une interruption : Sauvegarde contexte
Programme
principal
Registres
x
x xx Pile
Addr Prog
xx
Programme
d’interruption
Les interruptions
Fin d’une interruption : Restitution contexte
Programme
principal
Registres
x
x
xx Pile
Addr Prog
xx
Programme
d’interruption
Les interruptions
Fin d’une interruption
Programme
principal
Registres
x Pile
Addr Prog
xx
Programme
d’interruption
Les interruptions
Retour au programme principal
Programme
principal
Registres
x Pile
xx
Programme
d’interruption
Définitions et problématiques
Pourquoi les accès DMA?
Le système doit récupérer des données en
provenance de ces périphériques externes.
Plusieurs méthodes sont possibles :
z Une méthode par scrutation (polling) permet
d’interroger régulièrement les périphériques afin de
savoir si une nouvelle donnée est présente.
z Une méthode par interruption permet au
périphérique lui-même de faire signe au processeur
de sa présence.
z Une méthode par Accès Direct à la Mémoire (DMA)
permet de gérer le transfert de façon autonome.
Définitions et problématiques
(Source : Wikipédia)
Définitions et problématiques
Utilisations
z Carte graphique
z Carte son
z Disque dur
z Lecteur CD…
z Mode DMA
La technique du DMA (Direct Memory Access)
permet de désengorger le processeur en permettant
à chacun des périphériques d'accéder directement à
la mémoire.
Les méthodes d’accès directs
Mode PIO
Des commandes gérées directement par le processeur permette
la gestion du transfert. Toutefois, de gros transferts de données
peuvent rapidement imposer une grosse charge de travail au
processeur et ralentir l'ensemble du système. Il existe 5 modes
PIO définissant le taux de transfert maximal.
Les vitesses de transfert (mode DMA ou Ultra DMA restent donc toujours
en étroite relation avec l’architecture utilisée (ATA, Serial ATA, …)
Les méthodes d’accès directs
Les canaux DMA