La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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/

Présentations similaires


Présentation au sujet: "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/"— Transcription de la présentation:

1 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-PontoiseLaboratoire ETIS - UMR CNRS 8051

2 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 2 Contexte La conception dobjets intelligents repose sur une architecture de traitement de linformation 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 dentré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é dintégration maximum, –Très grands débits, –Temps-réel, La performance dune application repose sur loptimisation de chacun des sous-ensembles et passe principalement par une adéquation fine entre le(s) processeur(s) et le contexte. ADEQUATION APPLICATION/ARCHITECTURE

3 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 3 Comprendre le fonctionnement dynamique des unités de traitement (processeurs, micro-processeurs, micro-contrôleurs, DSP) Comprendre la difficulté que représente loptimisation de code pour ces unités de traitement Aborder larchitecture interne et la programmation (en assembleur) des processeurs DSP : exemple du processeur Analog Devices SHARC Objectifs du cours

4 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 4 Plan 1) Fonctionnement des Processeurs –Structure dun processeur (rappel) –La programmation en assembleur –Le jeu dinstruction dun processeur –Les cycles et les modes dadressage –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

5 Cours DESS SMC Université de Cergy-Pontoise 1) Fonctionnement des Processeurs Structure Programmation Instructions Cycles

6 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 6 1.1) Structure des processeurs (rappels ?) Le processeur est lorgane central dun système de traitement de linformation. Il est chargé de lexécution des programmes (les instructions ) et de la manipulation des données. Son rôle principal est deffectuer des calculs (entiers/flottants) sur des données (stockées en mémoire/venant dun 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), –Lunité de contrôle (recherche et décodage des instructions), –Lunité dadressage (recherche des données), – Lunité de gestion des mémoires cache, – Lunité de gestion des interruptions, – L unité de gestion de la mémoire virtuelle, –...

7 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs Unité(s) de calcul Registres Unité de décodage Unité dadressage Unité dexécution données Architecture de base dun processeur (architecture Von Neumann)

8 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs Unité(s) de calcul Registres Unité de décodage Unité dadressage Unité dexécution données gestion des caches mémoire cache données mémoire cache instructions MMU mémoire(s) centrale(s) gestion des interruptions Architecture étendue dun processeur

9 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs Unité(s) de calcul Registres Unité de décodage Unité dadressage Unité dexécution données gestion des caches mémoire cache données mémoire cache instructions MMU mémoire(s) centrale(s) gestion des interruptions interface(s) de bus canal de comm. IP bus spécifique I/O IP Architecture dun système sur puce (SoC)

10 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs ) Les systèmes de traitement de linformation Les processeurs sont au cœur des systèmes intelligents de traitement de linformation 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 larchitecture interne du processeur vis-à-vis des applications envisagées : choix du type de processeur ! –performances du jeu dinstructions ( ?? ), –optimisation de la programmation ( ?? ), Maîtrise de larchitecture du processeur et de sa programmation

11 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs ) La programmation des processeurs Un ordinateur (ou tout autre structure à base de micro-processeur) exécute des programmes qui sont des suites dordres élémentaires (les instructions). Le langage constitue la grammaire suivant laquelle sont écrites les instructions dun 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

12 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 12 Compilateur Assembleur Programme en langage de haut niveau Programme en langage assembleur Programme en code machine La programmation dune machine de traitement nécessite une série détapes de traduction avant lexécution dun 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 lunité de traitement et constituent le jeu dinstruction de la machine.

13 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 13 int a,b; scanf(« %d »,&b); a = sqrt(b); printf(« %d »,a); Langage C debut: bsr$3520 ldaa$1000 bsr$2024 pusha Langage assembleur Compilateur C Bibliothèque de fonctions Assembleur... $40 $37 $F0 $35 $20 $32 $10 $00 $F0 $20 $24 $3B... Code machine Micro Complexité Taille du programme

14 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs ) Le Jeu dinstructions Assembleur Les instructions du langage assembleur dune 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 dun processeur : Nombreuses catégories et/ou beaucoup dinstructions par catégories = processeur de type CISC (Complex Instruction Set Computer) = architecture complexe Peu de catégories et peu dinstructions 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 dappel / retour de procédures instructions de gestion du processeur instructions spécifiques CISC (MMX)...

15 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 15 Jeu dinstruction du (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 dinstruction du (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 dinstruction 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 ladressage (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 dinstruction 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)

16 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 16 Jeu dinstruction 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 dinstruction du (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)

17 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 17 Modèle de programmation dun Unité(s) de calcul Registres Unité de décodage Unité dadressage Unité dexécution données R0 R1... R7 PC registres dusage général compteur ordinal ALU RI registre dinstruction 3 opérandes : Ra,Rb,Rc 4 opérations : add, sub, or, and

18 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 18 /* exemple en C */ int a,b; a = 2; b = 12; a = a + b;... /* code assembleur */ /* a:R0 b:R1 */ loadR0,2; load R1,12; addR0,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 disponibles dans le processeur et à traduire les opérations arithmétiques en instructions assembleur.

19 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 19 /* exemple en C */ int a,b; a = 2; b = 12; a = a + b;... /* code assembleur */ /* a:R0 b:R1 */ loadR0,2; load R1,12; addR0,R0,R1; compilateur assembleur loadR02 loadR112 addR0 R1 Les instructions en code machine comportent des « champs » fixes contenant les informations nécessaires à la recherche des opérandes et à lexécution de linstruction Exemple (simple) champ du registre destination champ du registre source n°1 champ du registre source n°2 champ de la valeur immédiate champ du code opération

20 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 20 /* exemple en C */ int a,b; a = 2; b = 12; a = a + b; /* code assembleur */ /* a:R0 b:R1 */ loadR0,2; load R1,12; addR0,R0,R1; compilateur assembleur Chaque champ est codé en binaire Exemple (simple)

21 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 21 RI unité de décodage banc de registresALUunité dadressage R0 R1PC Exécution du programme

22 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 22 loadR0,2

23 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 23 RI unité de décodage banc de registresALUunité dadressage R0 R1PC load R0, 2 Phase de recherche de linstruction (I-Fetch) PC+1

24 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 24 loadR0, 2 unité de décodage banc de registresALUunité dadressage R0 R1PC+1 Phase de décodage de linstruction (Decode) ?

25 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 25 loadR0, 2 unité de décodage banc de registresALUunité dadressage R0 R1PC+1 Phase dexécution de linstruction (Execute)

26 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 26 addR0,R0,R1

27 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 27 RI unité de décodage banc de registresALUunité dadressage R0 R1PC addR0, R0, R1 Phase de recherche de linstruction (I-Fetch) PC+1

28 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 28 addR0, R0, R1 unité de décodage banc de registresALUunité dadressage R0 R1PC+1 Phase de décodage de linstruction (Decode) ?

29 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 29 addR0, R0, R1 unité de décodage banc de registresALUunité dadressage R0 R1 add PC+1 Phase dexécution de linstruction (Execute)

30 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 30 /* 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; loadR0,(R2); load R1,12; addR3,R0,R1; store(R2),R3; compilateur Cas des accès en mémoire Le compilateur doit effectuer une allocation despace mémoire aux 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.

31 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 31 loadR0,(R2)

32 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 32 RI unité de décodage banc de registresALUunité dadressage R0 R1PC loadR0, (R2) Phase de recherche de linstruction (I-Fetch) PC+1 R2

33 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 33 loadR0, (R2) unité de décodage banc de registresALUunité dadressage R0 R1PC+1 Phase de décodage de linstruction (Decode) ? R2

34 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 34 loadR0, (R2) unité de décodage banc de registresALUunité dadressage R0 R1PC+1 Phase dexécution de linstruction (Execute) R2

35 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 35 loadR0, (R2) unité de décodage banc de registresALUunité dadressage R0 R1PC+1 Phase décriture du résultat (ReadBack) R2

36 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 36 store(R2),R3

37 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 37 RI unité de décodage banc de registresALUunité dadressage R3 PC store(R2), R3 Phase de recherche de linstruction (I-Fetch) PC+1 R2

38 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 38 store(R2), R3 unité de décodage banc de registresALUunité dadressage PC+1 Phase de décodage de linstruction (Decode) ? R3 R2

39 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 39 store(R2), R0 unité de décodage banc de registresALUunité dadressage PC+1 Phase dexécution de linstruction (Execute) R3 R2

40 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 40 /* exemple en C */ int a,b,c; if (a!=b) c = 12; /* code assembleur */ /* a:R0 b:R1 c:R2*/ test:beqR0,R1,suite; loadR2,12; suite: compilateur Cas des branchements conditionnels Ici, le compilateur introduit des « étiquettes » dans le programme permettant de localiser les suites dinstructions exécutées de manière conditionnelle. De plus, le compilateur traduit le code en remplaçant la condition : (a!=b) devient beq (branch if equal)

41 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 41 RI unité de décodage banc de registresALUunité dadressage R0 R1PC beqR0,R1,etiq Phase de recherche de linstruction (I-Fetch) PC+1 R2

42 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 42 beqR0,R1,etiq unité de décodage banc de registresALUunité dadressage R0 R1PC+1 Phase de décodage de linstruction (Decode) ? R2 etiq

43 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 43 beqR0,R1,etiq unité de décodage banc de registresALUunité dadressage R0 R1 sub etiq Phase dexécution de linstruction (Execute) R2 etiq si la condition est vraie

44 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs ) Les cycles du processeur Lexécution dune instruction par un processeur nécessite généralement plusieurs étapes (les cycles du processeur) : –Recherche de linstruction en mémoire (I-Fetch) –Décodage de linstruction (Decode) –Recherche des opérandes en mémoire (D-Fetch) –Exécution de lopé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.

45 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 45 I-Fetch Decode D-Fetch Execute Store Lecture de linstruction en mémoire, mise à jour du compteur ordinal (incrémentation) Exemple : add [reg3],reg1,reg2 Interprétation de linstruction Accès aux deux registres de source (reg1 et reg2) Addition des registres dans lUAL Ecriture du résultat en mémoire

46 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 46 I-Fetch Decode D-Fetch Execute Lecture de linstruction en mémoire, mise à jour du compteur ordinal (incrémentation) Exemple : ld reg2,[reg1] Interprétation de linstruction, calcul de ladresse de lopérande Lecture de la mémoire Chargement du registre reg2

47 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 47 I-Fetch Decode Execute Lecture de linstruction en mémoire, mise à jour du compteur ordinal (incrémentation) Exemple : beqreg1,reg2,etiquette Interprétation de linstruction, calcul de ladresse de branchement Chargement du compteur ordinal

48 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 48 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% ©Molecular Expression TM

49 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs ) Les modes dadressage Les modes dadressage 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 dadressages possibles. La diversité des modes dadressage influence la structure (et la performance) du processeur.

50 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs ) Etude de cas Processeur Motorola (1979) : –Architecture CISC 16/32 bits –8 registres de données (8/16/32 bits) –8 registres dadresses (16/32 bits) –Bus de données 16 bits –Bus dadresses 24 bits Processeur MIPS R3000 (1988) : –Architecture RISC 32 bits (load/store) –32 registres généraux 32 bits –pipeline 5 étages

51 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs Modèle de programmation D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4 A5 A6 A7 PC ETAT USP SSP 8 registres de données 7 registres d'adresses Pointeurs de pile Compteur programme 14 modes dadressage, 57 instructions, Modes «Superviseur» / «Utilisateur» 7 niveaux dinterruptions auto-vectorisées 191 interruptions non-vectorisées Instructions à deux opérandes (source, destination)

52 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs Modes dadressage Le mode dadressage absolu (court et long) Ladressage direct (registres de données, dadresse, détat) Ladressage immédiat (simple et rapide) Ladressage indirect de registres (simple, postincrémenté, prédécrémenté, avec déplacement et indexé avec déplacement) Ladressage relatif au compteur de programme (avec déplacement et indexé)

53 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 53 Le mode dadressage absolu (court ou long) références mémoire NOT.L $2000 Ladresse est un mot de 16 bits 1 octet parmi 64 Ko Ladresse physique est lextension du mot de 16 bits sur 32 bits Adressage absolu court NOT.B $10FE00 Ladresse est indiquée sur 24 (32) bits 1 octet parmi 16 Mo Adressage absolu long

54 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 54 Le mode dadressage direct de registres NOT.L D0 adressage direct dun registre de données MOVE.L $10FF00, A4 adressage direct dun registre dadresses ANDI #$0040, SR adressage direct du registre détat (instructions privilégiées)

55 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 55 Le mode dadressage immédiat (simple et rapide) MOVE.W #$FED0, D2 Lopérande est codée dans linstruction Lopérande est une valeur sur 16 bits Adressage immédiat simple MOVEQ #$17, D1 Lopérande est codée sur 8 bits Adressage immédiat rapide

56 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 56 Le mode dadressage indirect de registres (1) MOVE.W (A0), D2 Lopé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 ladresse de lopérande est incrémenté après lopération (de 1 pour un octet, 2 pour un mot et 4 pour un mot long) Adressage indirect avec postincrémentation

57 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 57 Le mode dadressage indirect de registres (2) AND.W D0, -(A6) Le registre est décrémenté avant lopé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 Ladresse de lopérande est le contenu dun registre ajouté à un déplacement Adressage indirect avec déplacement

58 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 58 Le mode dadressage indirect de registres (3) MOVE.B 2(A1, D0), $2000 Ladresse de lopérande est la somme du contenu du registre dadresses, du registre dindex et dun déplacement Adressage indirect indexé avec déplacement

59 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 59 Le mode dadressage relatif au PC MOVE.B LABEL, D1 Ladresse de lopé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

60 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 60 MIPS R Modèle de programmation R0 PC ETAT 32 registres généraux Compteur programme 4 modes dadressage gestion des co-processeurs pipeline 5 niveaux formats dinstruction fixes (32 bits) R1 R2 R3 R4.. R25 R26 R27 R28 R29 R30 R31

61 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 61 R Modes dadressage Le mode dadressage par référence de registres Ladressage indexé Ladressage immédiat Ladressage relatif au compteur de programme (avec déplacement)

62 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 62 Le mode dadressage 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

63 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 63 Le mode dadressage indexé ADD%reg1, 100(%reg2) Ladresse de lopérande est la somme du contenu dun registre et dun déplacement (codé sur 16 bits) Adressage indexé (avec déplacement)

64 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 64 Le mode dadressage immédiat ADD%reg1, %reg2, 5 Lopérande est une valeur constante (16 bits) codée dans linstruction Adressage immédiat

65 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 65 Le mode dadressage relatif au compteur de programme BEQ%reg1, %reg2, 1000 Ladresse du saut est calculée à partir de la valeur du compteur ordinal : PC déplacement (16 bits) Adressage relatif au PC J2000 Ladresse du saut est ladresse fournie en paramètre

66 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs 66 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 larchitecture du processeur, de son jeu dinstruction, de ses modes dadressages etc.. Les philosophies CISC, RISC, superscalaires, VLIW, imposent des modes de programmation radicalement différents et sadaptent à des contextes applicatifs souvent très différents. La construction moderne de systèmes intelligents, embarqués, intégrés ne repose plus aujourdhui sur la programmation dune machine « standard » mais plutôt sur la construction dune architecture ad hoc (SoCs) : la plupart des processeurs sont disponibles sous forme de cœurs « paramétrables » quil convient de choisir judicieusement... Les (micro)processeurs sont nos amis, il faut bien les connaître pour bien les apprécier !

67 Cours DESS SMC Université de Cergy-Pontoise Fonctionnement des Unités de Traitement - 1) Fonctionnement des Processeurs Unité(s) de calcul Registres Unité de décodage Unité dadressage Unité dexécution données gestion des caches mémoire cache données mémoire cache instructions MMU mémoire(s) centrale(s) gestion des interruptions interface(s) de bus canal de comm. IP bus spécifique I/O IP


Télécharger ppt "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/"

Présentations similaires


Annonces Google