67
Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier www-etis.ensea.fr/~verdier/ Université de Cergy-Pontoise Laboratoire ETIS -

Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

Embed Size (px)

Citation preview

Page 1: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 2: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 3: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 4: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 5: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

Cours DESS SMC

Université de Cergy-Pontoise

1) Fonctionnement des Processeurs

StructureProgrammation

InstructionsCycles

Page 6: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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,– ...

Page 7: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

Page 8: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 9: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

Page 10: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 11: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 12: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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.

Page 13: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 14: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)• ...

Page 15: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

Page 16: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

Page 17: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 18: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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.

Page 19: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 20: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

Page 21: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 22: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 23: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 24: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

?

Page 25: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

Page 26: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 27: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 28: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

?

Page 29: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

Page 30: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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.

Page 31: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

Page 32: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 33: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 34: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 35: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 36: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 37: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 38: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 39: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 40: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

Page 41: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 42: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 43: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 44: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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.

Page 45: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 46: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 47: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 48: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 49: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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.

Page 50: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 51: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 52: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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é)

Page 53: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 54: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

Page 55: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 56: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 57: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 58: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 59: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 60: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 61: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

Page 62: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 63: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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)

Page 64: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 65: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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

Page 66: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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 !

Page 67: Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement Cours DESS « Systèmes Multimédia Communicants » François Verdier verdier

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