330 likes | 503 Views
Architecture Fondamentale des Microprocesseurs. Institut Supérieur d’Electronique du Nord 41 Boulevard Vauban - 59046 Lille Cedex - France. Canaux de communication (bus). Architecture d’un ordinateur. Unité centrale. Mémoire centrale. Contrôleurs d’entrée/sortie ou interface.
E N D
Architecture Fondamentale des Microprocesseurs Institut Supérieur d’Electronique du Nord 41 Boulevard Vauban - 59046 Lille Cedex - France Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Canaux de communication (bus) Architecture d’un ordinateur Unité centrale Mémoire centrale Contrôleurs d’entrée/sortie ou interface Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
instruction Les types d’architecture : SISD • Une instruction manipule une seule donnée(Single Instruction Single Data) Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
instruction Les types d’architecture : SIMD • Une instruction manipule un ensemble de données (Single Instruction Multiple Data) :machine tableau Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Instruction 1 Instruction 2 Instruction 2 Instruction 3 Instruction 3 Instruction 4 Instruction 4 Instruction 5 Les types d’architecture : MISD • Un ensemble d’instructions manipule une seule donnée (Multiple Instruction Single Data) :machine vectorielle ou pipeline Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
SIMD SISD MISD SISD Les types d’architecture : MIMD • Un ensemble d’instructions manipule un ensemble de données (Multiple Instruction Multiple Data) : machine multi-processeurs Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Architecture de Von Neuman • Machine de Von Neuman (1945) • programme : suite d’instructions codées en binaire et mémorisées en mémoire centrale • données : codées en binaire et mémorisées en mémoire centrale • les instructions sont exécutées séquentiellement par l’unité centrale • une instruction manipule une seule donnée (SISD) Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Mémoire centrale : rôle et fonctions • Rôle : mémorisation des instructions et des données • code binaire (algèbre de Boole) • 0 : absence de courant • 1 : présence de courant • Fonctions d’accès : • écriture : mémorisation d’une information • lecture : récupération d’une information préalablement enregistrée Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Mémoire centrale : constituants • Cellule mémoire : circuit électronique chargé de mémoriser un seul bit d’information • Mémoire centrale : • construire un mot à partir d’un ensemble de cellules • construire un ensemble de mots • créer un mécanisme d’accès à un mot dans l’ensemble des mots : adressage Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
2006 FF Entier signé sur 16 bits (valeur -2) 2005 FE 2004 2003 B9 2002 0E 2001 77 Flottant IEEE sur 32 bits (valeur -1,2345.10-4) 2000 92 Mémoire centrale : vision logique • Vision logique : • tableau de mots plus ou moins grand • mécanisme d’adressage : chaque mot est repéré par son emplacement (adresse) dans le tableau (indice) Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Unité centrale : composition • L’unité centrale (CPU - Central Processing Unit) regroupe 5 blocs fonctionnels : • l’unité de contrôle • l’unité arithmétique et logique • les registres généraux • les registres spécialisés • l’interfaçage avec l’extérieur Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
l 8085 int e Bus de communication interne Registre B Registre C Accumulateur Registre d’instruction Registre D Registre E UAL Décodeur d’instructions et séquenceur Registre H Registre L Pointeur de pile SP Compteur ordinal PC Indicateurs Unité de contrôle Registre d’adresse Registre de donnée Horloge Bus de contrôle Bus d’adresse Bus de donnée Interruptions Unité de contrôle Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Unité de contrôle • Elle contrôle la totalité du fonctionnement de l’unité centrale • lecture, décodage, et exécution des instructions • lecture et écriture des données en mémoire centrale • lecture et écriture des registres • contrôle de l’unité arithmétique et logique • contrôle de l’interface avec l’extérieur : • bus d’adresse et de donnée • fonctions d’accès à la mémoire centrale • interruptions, ... Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
compilateur assembleur ... cmp i,#0 bne label move #1,i label: move #2,j ... ... 1000 3E332000 1004 2A100B 1007 3F332001 100B 3F332102 ... Programme • Un programme écrit en langage évolué (C) n’est pas compréhensible directement par la machine (i.e. par l’unité de contrôle) ... if (i == 0) { i = 1 ; } j = 2 ; ... Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
mnémonique code opération (opcode) ... cmp i,#0 bne label move #1,i label: move #2,j ... ... 1000 3E 332000 1004 2A 100B 1007 3F 332001 100B 3F 332102 ... étiquette opérande(s) adresse opérande(s) Instructions Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
l 8085 int e Bus de communication interne Registre B Registre C Accumulateur Registre d’instruction Registre D Registre E UAL Décodeur d’instructions et séquenceur Registre H Registre L Pointeur de pile SP Compteur ordinal PC Indicateurs Unité de contrôle Registre d’adresse Registre de donnée Horloge Bus de contrôle Bus d’adresse Bus de donnée Interruptions Exécution d’un programme Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
0B 1006 10 1005 2A 1004 1004 PC 00 1003 20 1002 33 1001 3E 1000 Exécution d’un programme • Le compteur ordinal (PC ou Program Counter) • registre spécialisé • contient à tout moment l’adresse de l’instruction qui va être exécutée Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
l 8085 int e Bus de communication interne Registre B Registre C Accumulateur Registre d’instruction Registre D Registre E UAL Décodeur d’instructions et séquenceur Registre H Registre L Pointeur de pile SP Compteur ordinal PC Indicateurs Unité de contrôle Registre d’adresse Registre de donnée Horloge Bus de contrôle Bus d’adresse Bus de donnée Interruptions Unité arithmétique et logique (ALU) Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Unité arithmétique et logique (ALU) • Rôle : calcul d’opérations élémentaires • opérations arithmétiques • addition, soustraction, multiplication, division • changement de signe • opérations logiques • et, ou, ou exclusif, inversion • décalage, rotation • Traite des mots de taille fixe (1, 2, 4 octets) • Génère les indicateurs • caractérisation du dernier résultat produit par l’ALU Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
l 8085 int e Bus de communication interne Registre B Registre C Accumulateur Registre d’instruction Registre D Registre E UAL Décodeur d’instructions et séquenceur Registre H Registre L Pointeur de pile SP Compteur ordinal PC Indicateurs Unité de contrôle Registre d’adresse Registre de donnée Horloge Bus de contrôle Bus d’adresse Bus de donnée Interruptions Registres Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Registres • Registres généraux • opérandes pour l’unité arithmétique et logique • résultats des calculs (accumulateur) • en nombre variable (2 à plusieurs dizaines) • taille = taille des mots traités par l’ALU • Registres spécialisés • compteur ordinal (Program Counter - PC) • registre d’état (Status Register - SR) • pointeur de pile (Stack Pointer - SP) Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
3322 PC 1004 1000 1007 ???? 3321 04 04 04 04 (variable i) 04 SR (indicateur Z) 3320 10 02 10 10 (variable j) 100F ? 0 0 0 3319 02 0 Exemple d’exécution ... if (i == 0) { i = 1 ; } j = 2 ; ... ... cmp i,#0 bne label move #1,i label: move #2,j ... ... 1000 3E332100 1004 2A100B 1007 3F332101 100B 3F332002 100F ... Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Modes d’adressage des opérandes • Permettent de localiser précisément les opérandes d’une instruction • immédiat (constante) • registre (donnée « anonyme ») • direct (donnée « variable ») en mémoire centrale • indirect (pointeur sur ...) en mémoire centrale via un registre • autres suivant la puissance du CPU : • indirect avec déplacement (8086, 68000) • pré/post indexé (68000) • facteur d’échelle (80386) Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
immédiat (constante) 0 6666 1111 R1 3046 registre R2 4444 2222 R2 3044 2222 3333 3042 R3 4444 0000 3040 R4 direct / absolu [3044] Modes d’adressage (1) 33 3E Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
1111 R1 3044 R2 3333 R3 6666 3046 indirect via registre [R2] 4444 R4 4444 3044 2222 3042 0000 3040 R1 1111 R2 3044 6666 3046 indirect via registre avec déplacement [R2-2] R3 3333 4444 3044 R4 4444 2222 3042 0000 3040 Modes d’adressage (2) Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
1111 1111 R1 2222 2222 R2 3333 3333 2222 FFFC R3 4444 4444 R4 2002 2000 1FFE 1FFC Jeu d’instructions (1) déplacement MOV destination,source MOV R3,R2 MOV [2000],-4 Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
1111 R1 2222 R2 BBBB 5555 3333 R3 4444 R4 R1 1111 R2 3044 6666 3046 R3 3333 4444 3044 R4 4444 2222 3042 0000 3040 Jeu d’instructions (2) opérations ADD destination,source ADD R3,R2 NOT destination NOT [R2] Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Jeu d’instructions (3) • Saut inconditionnel - JMP adresse • le compteur ordinal (PC) est remplacé par l’adresse spécifiée par l’instruction • l’exécution du programme reprend à partir de la nouvelle valeur du compteur ordinal • Saut conditionnel - JNZ adresse • la condition porte sur la valeur d’un ou de plusieurs indicateurs de l’UAL (registre d’état) • le compteur ordinal (PC) est remplacé par l’adresse spécifiée par l’instruction si et seulement si la condition est vérifiée Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Sous-programme • Vision logique : 2 composants • une pile mémorisée en mémoire centrale • le pointeur de sommet de pile (Stack Pointer - SP) • Appel d’un sous-programme : CALL adresse • SP SP - k // création d’un nouveau sommet • [SP] PC // sauvegarde de l’adresse de retour • PC adresse // saut au sous-programme • Retour d’un sous-programme : RETURN • PC [SP] // restauration de l’adresse de retour • SP SP + k // destruction du sommet Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
201 100 102 101 101 200 3 2 3 4 PC 1004 3 3 3 3 3 3 3 3 3 1002 SP 101 101 101 101 101 101 101 1000 pile (k = 2) 1002 1002 1000 1000 1002 1004 1002 1000 1004 1004 Exemple d’exécution 1 ... 2 CALL 100 3 ... 99 ... 100 CALL 200 101 RETURN 102 ... 199 ... 200 RETURN 201 ... Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002
Capteur Interruptions • Définition : • arrivée d’un événement extérieur à l’unité centrale • Action : • appel forcé d’un sous-programme d’interruption, indépendant du programme en cours d ’exécution Unité centrale Programme en cours Programme en cours Programme en cours Appel du 18 Architecture Fondamentale des Microprocesseurs - Laurent ALLAIN - Juillet 2002