View
112
Download
7
Category
Preview:
Citation preview
Cours DESS SMC
Université de Cergy-Pontoise
Fonctionnement des Unités de Traitement
Cours DESS« Systèmes Multimédia
Communicants »
François Verdierwww-etis.ensea.fr/~verdier/
Université de Cergy-Pontoise Laboratoire ETIS - UMR CNRS 8051
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
2
Cours DESS SMC
Université de Cergy-Pontoise
Contexte
• La conception d’objets intelligents repose sur une architecture de traitement de l’information associant (au moins) : – un (des) (micro)processeur(s) : ARM, MIPS, PPC, DSP..., – des unités de calcul dédiées (ASIPs),– des périphériques d’entrée/sortie de données : Télécom,
capteurs..,– des blocs matériels spécifiques (MPEG, Viterbi, FFT...).
• Les contraintes des applications sont fortes :– Degré d’intégration maximum,– Très grands débits,– Temps-réel,
• La performance d’une application repose sur l’optimisation de chacun des sous-ensembles et passe principalement par une adéquation fine entre le(s) processeur(s) et le contexte.
ADEQUATION APPLICATION/ARCHITECTUREADEQUATION APPLICATION/ARCHITECTURE
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
3
Cours DESS SMC
Université de Cergy-Pontoise
Comprendre le fonctionnement dynamique des unités de traitement (processeurs, micro-processeurs, micro-contrôleurs, DSP)
Comprendre la difficulté que représente l’optimisation de code pour ces unités de traitement
Aborder l’architecture interne et la programmation (en assembleur) des processeurs DSP : exemple du processeur Analog Devices SHARC
Objectifs du cours
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
4
Cours DESS SMC
Université de Cergy-Pontoise
Plan1) Fonctionnement des Processeurs
– Structure d’un processeur (rappel)– La programmation en assembleur– Le jeu d’instruction d’un processeur– Les cycles et les modes d’adressage– 68000 / MIPS R3000
2) Les processeurs de Traitement du Signal– Performance des processeurs– Spécificités des DSP– Architecture du DSP SHARC– Programmation des DSP
Cours DESS SMC
Université de Cergy-Pontoise
1) Fonctionnement des Processeurs
StructureProgrammation
InstructionsCycles
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
6
Cours DESS SMC
Université de Cergy-Pontoise
1.1) Structure des processeurs (rappels ?)
• Le processeur est l’organe central d’un système de traitement de l’information. Il est chargé de l’exécution des programmes (les instructions) et de la manipulation des données. Son rôle principal est d’effectuer des calculs (entiers/flottants) sur des données (stockées en mémoire/venant d’un canal de communication). Sa structure se décompose généralement en plusieurs unités spécifiques :– Les registres internes (banc(s) de registres),– Le(s) unité(s) de calcul (entiers / flottants),– L’unité de contrôle (recherche et décodage des instructions),– L’unité d’adressage (recherche des données),
– L’unité de gestion des mémoires cache,– L’unité de gestion des interruptions,– L ’unité de gestion de la mémoire virtuelle,– ...
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
7
Cours DESS SMC
Université de Cergy-Pontoise
@Unité(s)de calcul
Registres
Unité de décodage
Unitéd’adressage
Unité d’exécution
données
Architecture de base d’un processeur(architecture Von Neumann)
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
8
Cours DESS SMC
Université de Cergy-Pontoise
@Unité(s)de calcul
Registres
Unité de décodage
Unitéd’adressage
Unité d’exécution
données
gestiondes
caches
mémoirecache
données
mémoirecache
instructions
MMUmémoire(s)centrale(s)
gestion des interruptions
Architecture étendue d’un processeur
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
9
Cours DESS SMC
Université de Cergy-Pontoise@
Unité(s)de calcul
Registres
Unité de décodage
Unitéd’adressage
Unité d’exécution
données
gestiondes
caches
mémoirecache
données
mémoirecache
instructions
MMUmémoire(s)centrale(s)
gestion des interruptions interface(s)
de buscanal
de comm.
IP
bus spécifiqueI/O
IPIP
Architecture d’un système sur puce (SoC)
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
10
Cours DESS SMC
Université de Cergy-Pontoise
1.2) Les systèmes de traitement de l’information
• Les processeurs sont au cœur des systèmes intelligents de traitement de l’information ou de communication.
• Les performances des systèmes bâtis autour des processeurs dépendent en grande partie des performances des processeurs eux-mêmes.
• Les performances des processeurs dépendent de facteurs incluant :– dimensionnement du système (mémoires, bus, entrées/sorties),– adéquation des langages et des outils de compilation,– adéquation de l’architecture interne du processeur vis-à-vis des
applications envisagées : choix du type de processeur !– performances du jeu d’instructions (??),
– optimisation de la programmation (??),
Maîtrise de l’architecture du processeur et de sa programmation
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
11
Cours DESS SMC
Université de Cergy-Pontoise
1.3) La programmation des processeurs
Un ordinateur (ou tout autre structure à base de micro-processeur) exécute des programmes qui sont des suites d’ordres élémentaires (les instructions).
Le langage constitue la grammaire suivant laquelle sont écrites les instructions d’un programme. Plus le langage est évolué, plus la sémantique des programme est complexe.
Il existe de nombreux langages, adaptés aux différents formalismes de résolution des problèmes :
• langage C, C++, Fortran, Lisp, Cobol, Java, Pascal, Basic...
Tous ces langages nécessitent d’être compilés (interprétés) en un langage élémentaire compréhensible par le processeur : le langage assembleur
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
12
Cours DESS SMC
Université de Cergy-Pontoise
Compilateur
Assembleur
Programme en langagede haut niveau
Programme en langageassembleur
Programme encode machine
La programmation d’une machine de traitement nécessite une série d’étapes de traduction avant l’exécution d’un programme par la machine.
Les instructions du plus bas niveau (instructions élémentaires) sont codées en binaire et sont les seules que la machine peut interpréter et exécuter.
Elles font référence à la structure interne de l’unité de traitement et constituent le jeu d’instruction de la machine.
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
13
Cours DESS SMC
Université de Cergy-Pontoise
int a,b;scanf(« %d »,&b);a = sqrt(b);printf(« %d »,a);
Langage C
debut: bsr $3520 ldaa $1000 bsr $2024 pusha
Langageassembleur
CompilateurC
Bibliothèquede fonctions
Assembleur. . .$40 $37 $F0 $35$20 $32 $10 $00$F0 $20 $24 $3B. . .
Code machine
Micro
Complexité
Taille du programme
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
14
Cours DESS SMC
Université de Cergy-Pontoise
1.4) Le Jeu d’instructions Assembleur
Les instructions du langage assembleur d’une unité de traitement se classent généralement en différentes catégories. Le nombre et la taille de ces catégories permettent de distinguer la famille architecturale d’un processeur :
• Nombreuses catégories et/ou beaucoup d’instructions par catégories = processeur de type CISC (Complex Instruction Set Computer) = architecture complexe• Peu de catégories et peu d’instructions par catégories = processeur RISC (Reduced Instruction Set Computer) = architecture simplifiée
Exemples de catégories :• instructions de chargement / déchargement de registres• instructions arithmétiques• instructions de rupture de séquence (tests, boucles)• instructions d’appel / retour de procédures• instructions de gestion du processeur• instructions spécifiques CISC (MMX)• ...
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
15
Cours DESS SMC
Université de Cergy-Pontoise
Jeu d’instruction du 80286 (Intel) :
• instructions de transfert de données (16)
• instructions de chaînes de données (10)
• instructions arithmétiques (20)
• instructions logiques (13)
• instructions de rupture de séquence (11)
• instructions de contrôle du processeur (28)
• instructions de haut niveau (3)
Jeu d’instruction du 80386 (Intel) :
• instructions de transfert de données (11)
• instructions de contrôle des registres de segment (5)
• instructions de contrôle des indicateurs (14)
• instructions de chaînes de données (10)
• instructions arithmétiques (24)
• instructions logiques (21)
• instructions de rupture de séquence (12)
• instructions de contrôle du processeur (6)
• instructions de contrôle de protection (15)
• instructions de haut niveau (2)
Jeu d’instruction du 68HC16 (Motorola CPU16) :
• instructions de transfert de données (18)
• instructions arithmétiques (49)
• instructions logiques (66)
• instructions de rupture de séquence (11)
• instructions de gestion de l’adressage (49)
• instructions de gestion de la pile (16)
• instructions de gestion du code condition (6)
• instructions DSP (16)
• instructions de contrôle du processeur (6)
Jeu d’instruction du MIPS R3000 :
• instructions de transfert de données (3 + 2)
• instructions arithmétiques (7 + 12)
• instructions logiques (6)
• instructions de rupture de séquence (9)
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
16
Cours DESS SMC
Université de Cergy-Pontoise
Jeu d’instruction du PPC405 (IBM) :
• instructions de transfert de données (38)
• instructions arithmétiques (50)
• instructions logiques (24)
• instructions de rupture de séquence (6)
• instructions du registre de condition (12)
• instructions de contrôle du processeur (12)
• instructions de gestion du processeur (18)
• instructions de synchronisation (5)
Jeu d’instruction du 68000 (Motorola) :
• instructions de transfert de données (10)
• instructions arithmétiques (18)
• instructions logiques (16)
• instructions de rupture de séquence (9)
• instruction du registre de code condition (5)
• instructions de contrôle du processeur (11)
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
17
Cours DESS SMC
Université de Cergy-Pontoise
Modèle de programmation d’un processeur
@Unité(s)de calcul
Registres
Unité de décodage
Unitéd’adressage
Unité d’exécution
données
R0R1...R7
PC
registres d’usagegénéral
compteur ordinal
ALU
RI registre d’instruction
3 opérandes : Ra,Rb,Rc4 opérations :add, sub, or, and
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
18
Cours DESS SMC
Université de Cergy-Pontoise
/* exemple en C */
int a,b;
a = 2;
b = 12;
a = a + b;
...
/* code assembleur */
/* a:R0 b:R1 */
load R0,2;
load R1,12;
add R0,R0,R1;
compilateur
Exemple (simple)
Le rôle du compilateur consiste principalement,ici, à effectuer une allocation des variables
du programme (a et b) aux registres disponiblesdans le processeur et à traduire les opérations
arithmétiques en instructions assembleur.
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
19
Cours DESS SMC
Université de Cergy-Pontoise
/* exemple en C */
int a,b;
a = 2;
b = 12;
a = a + b;
...
/* code assembleur */
/* a:R0 b:R1 */
load R0,2;
load R1,12;
add R0,R0,R1;
compilateur
assembleur
load R0 2load R1 12add R0 R0 R1
Les instructions en code machinecomportent des « champs » fixes
contenant les informations nécessairesà la recherche des opérandes et à
l’exécution de l’instruction
Exemple (simple)
champ du registre destinationchamp du registre source n°1champ du registre source n°2
champ de la valeur immédiate
champ du code opération
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
20
Cours DESS SMC
Université de Cergy-Pontoise
/* exemple en C */
int a,b;
a = 2;
b = 12;
a = a + b;
/* code assembleur */
/* a:R0 b:R1 */
load R0,2;
load R1,12;
add R0,R0,R1;
compilateur
assembleur
0000 0000000 0010110 000 000 001
Chaque champ est codé en binaire
0000001000001100
Exemple (simple)
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
21
Cours DESS SMC
Université de Cergy-Pontoise
RI
unité de décodage
banc de registresALU unité d’adressage
R0R1 PC
Exécution du programme
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
22
Cours DESS SMC
Université de Cergy-Pontoise
load R0,2
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
23
Cours DESS SMC
Université de Cergy-Pontoise
RI
unité de décodage
banc de registresALU unité d’adressage
R0R1 PC
load R0, 2
Phase de recherche de l’instruction (I-Fetch)
PC+1
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
24
Cours DESS SMC
Université de Cergy-Pontoise
load R0, 2
unité de décodage
banc de registresALU unité d’adressage
R0R1 PC+1
Phase de décodage de l’instruction (Decode)
?
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
25
Cours DESS SMC
Université de Cergy-Pontoise
load R0, 2
unité de décodage
banc de registresALU unité d’adressage
R0R1 PC+1
Phase d’exécution de l’instruction (Execute)
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
26
Cours DESS SMC
Université de Cergy-Pontoise
add R0,R0,R1
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
27
Cours DESS SMC
Université de Cergy-Pontoise
RI
unité de décodage
banc de registresALU unité d’adressage
R0R1 PC
add R0, R0, R1
Phase de recherche de l’instruction (I-Fetch)
PC+1
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
28
Cours DESS SMC
Université de Cergy-Pontoise
add R0, R0, R1
unité de décodage
banc de registresALU unité d’adressage
R0R1 PC+1
Phase de décodage de l’instruction (Decode)
?
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
29
Cours DESS SMC
Université de Cergy-Pontoise
add R0, R0, R1
unité de décodage
banc de registresALU unité d’adressage
R0R1add PC+1
Phase d’exécution de l’instruction (Execute)
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
30
Cours DESS SMC
Université de Cergy-Pontoise
/* exemple en C */
int Tab[100];
a = Tab[0];
b = 12;
Tab[12] = a + b;
/* code assembleur */
/* a:R0 b:R1 Tab:R2 */
load R2,Tab;
load R0,(R2);
load R1,12;
add R3,R0,R1;
store (R2),R3;
compilateur
Cas des accès en mémoire
Le compilateur doit effectuer une allocation d’espace mémoireaux structures de données (statiques) utilisées dans le programme.
En fonction des cas (espaces mémoire dédiés, mémoires multiples), le code compilé peut être différent.
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
31
Cours DESS SMC
Université de Cergy-Pontoise
load R0,(R2)
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
32
Cours DESS SMC
Université de Cergy-Pontoise
RI
unité de décodage
banc de registresALU unité d’adressage
R0R1 PC
load R0, (R2)
Phase de recherche de l’instruction (I-Fetch)
PC+1R2
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
33
Cours DESS SMC
Université de Cergy-Pontoise
load R0, (R2)
unité de décodage
banc de registresALU unité d’adressage
R0R1 PC+1
Phase de décodage de l’instruction (Decode)
?
R2
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
34
Cours DESS SMC
Université de Cergy-Pontoise
load R0, (R2)
unité de décodage
banc de registresALU unité d’adressage
R0R1 PC+1
Phase d’exécution de l’instruction (Execute)
R2
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
35
Cours DESS SMC
Université de Cergy-Pontoise
load R0, (R2)
unité de décodage
banc de registresALU unité d’adressage
R0R1 PC+1
Phase d’écriture du résultat (ReadBack)
R2
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
36
Cours DESS SMC
Université de Cergy-Pontoise
store (R2),R3
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
37
Cours DESS SMC
Université de Cergy-Pontoise
RI
unité de décodage
banc de registresALU unité d’adressage
R3PC
store (R2), R3
Phase de recherche de l’instruction (I-Fetch)
PC+1R2
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
38
Cours DESS SMC
Université de Cergy-Pontoise
store (R2), R3
unité de décodage
banc de registresALU unité d’adressage
PC+1
Phase de décodage de l’instruction (Decode)
?
R3
R2
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
39
Cours DESS SMC
Université de Cergy-Pontoise
store (R2), R0
unité de décodage
banc de registresALU unité d’adressage
PC+1
Phase d’exécution de l’instruction (Execute)
R3
R2
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
40
Cours DESS SMC
Université de Cergy-Pontoise
/* exemple en C */
int a,b,c;
if (a!=b)
c = 12;
/* code assembleur */
/* a:R0 b:R1 c:R2 */
test: beq R0,R1,suite;
load R2,12;
suite:
compilateur
Cas des branchements conditionnels
Ici, le compilateur introduit des « étiquettes » dans le programmepermettant de localiser les suites d’instructions exécutées de manièreconditionnelle. De plus, le compilateur traduit le code en remplaçant
la condition : (a!=b) devient beq (branch if equal)
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
41
Cours DESS SMC
Université de Cergy-Pontoise
RI
unité de décodage
banc de registresALU unité d’adressage
R0R1 PC
beq R0,R1,etiq
Phase de recherche de l’instruction (I-Fetch)
PC+1R2
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
42
Cours DESS SMC
Université de Cergy-Pontoise
beq R0,R1,etiq
unité de décodage
banc de registresALU unité d’adressage
R0R1 PC+1
Phase de décodage de l’instruction (Decode)
?
R2 etiq
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
43
Cours DESS SMC
Université de Cergy-Pontoise
beq R0,R1,etiq
unité de décodage
banc de registresALU unité d’adressage
R0R1sub etiq
Phase d’exécution de l’instruction (Execute)
R2 etiqsi la conditionest vraie
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
44
Cours DESS SMC
Université de Cergy-Pontoise
1.5) Les cycles du processeur• L’exécution d’une instruction par un processeur
nécessite généralement plusieurs étapes (les cycles du processeur) :– Recherche de l’instruction en mémoire (I-Fetch)– Décodage de l’instruction (Decode)– Recherche des opérandes en mémoire (D-Fetch)– Exécution de l’opération (Execute)– Ecriture du résultat (Store)
• Dans les architectures complexes (CISC) le nombre de cycle peut être très variable en fonction des instructions. Le format des instructions peut également être très variable.
• Dans les machines RISC, on standardise au maximum les cycles des instructions. Les instructions sont toutes codées selon le même format.
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
45
Cours DESS SMC
Université de Cergy-Pontoise
I-Fetch
Decode
D-Fetch
Execute
Store
Lecture de l’instruction en mémoire, mise à jour du compteur ordinal (incrémentation)
Exemple : add [reg3],reg1,reg2
Interprétation de l’instruction
Accès aux deux registres de source (reg1 et reg2)
Addition des registres dans l’UAL
Ecriture du résultat en mémoire
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
46
Cours DESS SMC
Université de Cergy-Pontoise
I-Fetch
Decode
D-Fetch
Execute
Lecture de l’instruction en mémoire, mise à jour du compteur ordinal (incrémentation)
Exemple : ld reg2,[reg1]
Interprétation de l’instruction, calcul de l’adresse de l’opérande
Lecture de la mémoire
Chargement du registre reg2
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
47
Cours DESS SMC
Université de Cergy-Pontoise
I-Fetch
Decode
Execute
Lecture de l’instruction en mémoire, mise à jour du compteur ordinal (incrémentation)
Exemple : beq reg1,reg2,etiquette
Interprétation de l’instruction, calcul de l’adresse de branchement
Chargement du compteur ordinal
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
48
Cours DESS SMC
Université de Cergy-Pontoise
Calcul des performances : CPI (Clock Per Instr.)
Cycles des instructions du processeur RISC MIPS :
• instructions de chargement : 5 cycles
• instructions d’écriture : 4 cycles
• instructions arithmétiques : 4 cycles
• branchement et sauts : 3 cycles
Fréquence des instructions
(source GCC [Patterson, Hennessy]):
• chargement : 22%
• écriture : 11%
• arithmétiques : 49%
• branchements : 16%
• sauts : 2%
033,4
#
#
#
#
CPI
CPInsinstructio
nsinstructioCPI
nsinstructio
CPInsinstructioCPI
typetype
typetype
©Molecular ExpressionTM
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
49
Cours DESS SMC
Université de Cergy-Pontoise
1.6) Les modes d’adressage
Les modes d’adressage constituent les différentes manières dont le processeur peut localiser les opérandes des instructions. Les choix architecturaux de la structure du processeur influencent les modes d’adressages possibles.La diversité des modes d’adressage influence la structure (et la performance) du processeur.
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
50
Cours DESS SMC
Université de Cergy-Pontoise
1.7) Etude de cas
• Processeur Motorola 68000 (1979) :– Architecture CISC 16/32 bits– 8 registres de données (8/16/32 bits)– 8 registres d’adresses (16/32 bits)– Bus de données 16 bits– Bus d’adresses 24 bits
• Processeur MIPS R3000 (1988) :– Architecture RISC 32 bits (load/store)– 32 registres généraux 32 bits– pipeline 5 étages
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
51
Cours DESS SMC
Université de Cergy-Pontoise
68000 - Modèle de programmation31 16 15 8 7 0 D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
A3
A4
A5
A6
A7
PC
ETAT
USP
SSP
8 registresde données
7 registresd'adresses
Pointeurs de pile
Compteurprogramme
• 14 modes d’adressage,
• 57 instructions,
• Modes «Superviseur» / «Utilisateur»
• 7 niveaux d’interruptions auto-vectorisées
• 191 interruptions non-vectorisées
• Instructions à deux opérandes (source, destination)
31 16 15 8 7 0
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
52
Cours DESS SMC
Université de Cergy-Pontoise
68000 - Modes d’adressage
• Le mode d’adressage absolu (court et long)
• L’adressage direct (registres de données, d’adresse, d’état)
• L’adressage immédiat (simple et rapide)
• L’adressage indirect de registres (simple, postincrémenté, prédécrémenté, avec déplacement et indexé avec déplacement)
• L’adressage relatif au compteur de programme (avec déplacement et indexé)
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
53
Cours DESS SMC
Université de Cergy-Pontoise
Le mode d’adressage absolu (court ou long) références mémoire
NOT.L $2000
• L’adresse est un mot de 16 bits
1 octet parmi 64 Ko• L’adresse physique est
l’extension du mot de 16 bits sur 32 bits
• Adressage absolu court
NOT.B $10FE00
• L’adresse est indiquée sur 24 (32) bits
1 octet parmi 16 Mo• Adressage absolu long
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
54
Cours DESS SMC
Université de Cergy-Pontoise
Le mode d’adressage direct de registres
NOT.L D0• adressage direct d’un registre de données
MOVE.L $10FF00, A4• adressage direct d’un registre d’adresses
ANDI #$0040, SR• adressage direct du registre d’état
(instructions privilégiées)
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
55
Cours DESS SMC
Université de Cergy-Pontoise
Le mode d’adressage immédiat (simple et rapide)
MOVE.W #$FED0 , D2
• L’opérande est codée dans l’instruction
• L’opérande est une valeur sur 16 bits
• Adressage immédiat simple
MOVEQ #$17 , D1
• L’opérande est codée sur 8 bits
• Adressage immédiat rapide
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
56
Cours DESS SMC
Université de Cergy-Pontoise
Le mode d’adressage indirect de registres (1)
MOVE.W (A0) , D2
• L’opérande est contenue à une adresse précisée par un registre : le registre se comporte comme un pointeur
• Adressage indirect simple
ADD.L D4, (A1)+
• Le registre qui contient l’adresse de l’opérande est incrémenté après l’opération (de 1 pour un octet, 2 pour un mot et 4 pour un mot long)
• Adressage indirect avec postincrémentation
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
57
Cours DESS SMC
Université de Cergy-Pontoise
Le mode d’adressage indirect de registres (2)
AND.W D0, -(A6)
• Le registre est décrémenté avant l’opération (de 1 pour un octet, 2 pour un mot et 4 pour un mot long)
• Adressage indirect avec prédécrémentation
MOVE.W $300(A0) , $1000
• L’adresse de l’opérande est le contenu d’un registre ajouté à un déplacement
• Adressage indirect avec déplacement
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
58
Cours DESS SMC
Université de Cergy-Pontoise
Le mode d’adressage indirect de registres (3)
MOVE.B 2(A1, D0) , $2000
• L’adresse de l’opérande est la somme du contenu du registre d’adresses, du registre d’index et d’un déplacement
• Adressage indirect indexé avec déplacement
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
59
Cours DESS SMC
Université de Cergy-Pontoise
Le mode d’adressage relatif au PC
MOVE.B LABEL , D1
• L’adresse de l’opérande est calculée en fonction de la localisation du programme
• Adressage relatif au PC
MOVE.B LABEL(A0) , D1
• Le déplacement relatif est ajouté à un index
• Adressage indexé relatif au PC
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
60
Cours DESS SMC
Université de Cergy-Pontoise
MIPS R3000 - Modèle de programmation
31 16 15 8 7 0 R0
PC
ETAT
32 registresgénéraux
Compteurprogramme
• 4 modes d’adressage
• gestion des co-processeurs
• pipeline 5 niveaux
• formats d’instruction fixes (32 bits)
31 16 15 8 7 0
R1
R2
R3
R4
..
..
..
..
R25
R26
R27
R28
R29
R30
R31
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
61
Cours DESS SMC
Université de Cergy-Pontoise
R3000 - Modes d’adressage
• Le mode d’adressage par référence de registres
• L’adressage indexé
• L’adressage immédiat
• L’adressage relatif au compteur de programme (avec déplacement)
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
62
Cours DESS SMC
Université de Cergy-Pontoise
Le mode d’adressage par référence de registres
ADD %reg1, %reg2, %reg3
• Les opérandes sont les contenus des registres
• Adressage par référence de registres
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
63
Cours DESS SMC
Université de Cergy-Pontoise
Le mode d’adressage indexé
ADD %reg1, 100(%reg2)
• L’adresse de l’opérande est la somme du contenu d’un registre et d’un déplacement (codé sur 16 bits)
• Adressage indexé (avec déplacement)
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
64
Cours DESS SMC
Université de Cergy-Pontoise
Le mode d’adressage immédiat
ADD %reg1, %reg2, 5
• L’opérande est une valeur constante (16 bits) codée dans l’instruction
• Adressage immédiat
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
65
Cours DESS SMC
Université de Cergy-Pontoise
Le mode d’adressage relatif au compteur de programme
BEQ %reg1, %reg2, 1000
• L’adresse du saut est calculée à partir de la valeur du compteur ordinal : PC + 4 + déplacement (16 bits)
• Adressage relatif au PC
J 2000
• L’adresse du saut est l’adresse fournie en paramètre
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
66
Cours DESS SMC
Université de Cergy-Pontoise
Conclusion• Il existe de très nombreux processeurs sur le marché ayant des architectures internes très variées.
• La programmation efficace de chacun de ces processeurs dépend de l’architecture du processeur, de son jeu d’instruction, de ses modes d’adressages etc..
• Les philosophies CISC, RISC, superscalaires, VLIW, imposent des modes de programmation radicalement différents et s’adaptent à des contextes applicatifs souvent très différents.
• La construction moderne de systèmes intelligents, embarqués, intégrés ne repose plus aujourd’hui sur la programmation d’une machine « standard » mais plutôt sur la construction d’une architecture ad hoc (SoCs) : la plupart des processeurs sont disponibles sous forme de cœurs « paramétrables » qu’il convient de choisir judicieusement...
Les (micro)processeurs sont nos amis, il faut bien les connaître pour bien les apprécier !
Fonctionnement des UnitéFonctionnement des Unités de Traitement - 1) Fonctis de Traitement - 1) Fonctionnement des Processeursonnement des Processeurs
67
Cours DESS SMC
Université de Cergy-Pontoise@
Unité(s)de calcul
Registres
Unité de décodage
Unitéd’adressage
Unité d’exécution
données
gestiondes
caches
mémoirecache
données
mémoirecache
instructions
MMUmémoire(s)centrale(s)
gestion des interruptions interface(s)
de buscanal
de comm.
IP
bus spécifiqueI/O
IPIP
Recommended