ARCHITECTURE DES SYSTEMES
Transcription
ARCHITECTURE DES SYSTEMES
ARCHITECTURE DES SYSTEMES (A MICROPROCESSEURS) R. Grisel -1 Références bibliographiques Architecture des ordinateurs G.BLANCHET B.DUPOUY Masson Architecture des ordinateurs J.L.HENNESSY D.A.PATTERSON Mc Graw-Hill Structure des ordinateurs ERNEST HIRSH SERGE WENDLIN Armand Colin Pentium et compagnie HAN.P. MESSMER Additson-Wesley Architecture de l'ordinateur ANDREW TANENBAUM Inter editions Distributed operating systems ANDREW TANENBAUM Printice Hall. Processeur et Coprocesseur ROBERT HUMMEL Dunod Le microprocesseur et son environnement, ROBERT DUBOIS Dunod R. Grisel -2 Historique Années 1940 : apparition du transistor Années 1950 : sortie du premier circuit intégré (Texas Instrument) Année 1968 : Création de INTEL (INTegrated Electronics) Année 1971 : Création du 4004 (processeur 4 bits) Année 1972 : Création du 8008 (processeur 8 bits) Année 1974 : Création du 8080 (processeur 8 bits) Année 1976 : Création du 8085 (processeur 8 bits) Année 1978 : Création du 8086 (processeur 16 bits) Année 1978 : Création du 8088 (processeur 8 bits) Année 1979 : Création du 80186 (processeur 16 bits) Année 1981 : Association Intel/IBM (micro-ordinateur PC) Année 1983 : Création du 80286 (processeur 16 bits) Année 1985 : Création du 80386 (processeur 32 bits) Année 1989 : Création du 80486 (processeur 32 bits) Année 1991 : Création du pentium (processeur 64 bits) Année 1994 : Création du pentium pro (processeur 64 bits) Actuel (Core 2 Duo 2,4 GHz) A suivre :s a venir : Architecture mixte, processeur asynchrone, VLIW, .. R. Grisel 2250 29000 100 M -3 Machine VON NEUMAN PRINCIPE Canal d'échange Processeur Mémoire CARACTERISTIQUES - Jeu d'instructions propre (défini lors de la construction de la machine). - Programme = suite de traitement, disponibles sur la machine considérée. - Programme et données peuvent être stockés dans la mémoire du système. - Certaines instructions autorisent des ruptures de séquence conditionnelles. R. Grisel -4 Architecture générale d ’un ordinateur Unité d'entrée BUS Processeur (UCT) BUS Unité de sortie BUS Mémoire R. Grisel -5 Architecture de l'ordinateur : vue externe Définition - Interface entre la machine physique et les logiciels - Structure et fonctionnalité vues par le programmeur en assembleur Informaticiens des systèmes - Compilateurs - Assembleurs - Interpréteurs Principaux éléments - Organisation de la mémoire - Type et structure des données (représentation et codage) - Format d'instructions - Modes d'adressage - Conditions d'exceptions et d'interruptions R. Grisel -6 Architecture de l'ordinateur : vue interne Définition - Structure et fonctionnalité des principaux composants - Manière dont sont organisés les différents composants Concepteurs et certains utilisateurs Architecture externe Architecture 1 Niveau registres Niveau portes logiques Niveau transistors Architecture n R. Grisel -7 Architecture de l'ordinateur : vue 'micro' Définition - Partie de l'architecture interne - Structure et fonctionnalité vues par le microprogrammeur - Interface entre le 'hardware' et le 'firmware' Microprogrammeurs : systèmes et applications Architecture externe Architecture 1 Architecture n Micro Architecture 1 R. Grisel -8 Eléments fonctionnels de base Eléments combinatoires - Multiplexeurs - Codeurs et décodeurs - Comparateurs Eléments séquentiels - Registres - bascules - registres à décalage - registres universels - Compteurs - synchrone ou asynchrones - binaires ou BCD Eléments arithmétiques et logiques - Additionneurs et soustracteurs - Multiplieurs et diviseurs - Opérateurs arithmétiques et logiques, …etc. Plus l'horloge R. Grisel -9 ARCHITECTURE GENERALE D’UN MICROPROCESSEUR R. Grisel - 10 Architecture d ’un microprocesseur Bus de données Registre N PC Registre 0 SP Accumulateur Indicateurs C V N H Z UAL Bus de commandes R-décalage Commande Bus d'adresses R. Grisel - 11 L ’unité arithmétique et logique ( UAL ) Effectue les opérations arithmétiques et logiques portant sur deux nombres au maximum ainsi que les opérations de décalage. Temporaire 1 ET, OU, XOR Additionneur Accumulateur Soustracteur Temporaire 2 R. Grisel Inverseurs - 12 L ’unité de commande - Assure le bon ordre du déroulement des séquences du programme, - Elabore les signaux de synchronisation, - Gère les ordres échangés par l’UAL, les entrées, les sorties, et la mémoire, - Assure la recherche en mémoire, le décodage et l’exécution des instructions. Câblée ou micro-programmée UAL E/S Bus de commande Unité de commande Bus de commande Mémoire R. Grisel - 13 L’accumulateur C’est un registre particulier placé à l’une des entrées de l’UAL. La plupart des instructions arithmétiques et logiques utilisent le contenu de l’accumulateur comme premier opérande. Il peut être référencé en entrée et en sortie. Opérande 2 Opérande 2 Accumulateur UAL R-décalage R. Grisel - 14 Les indicateurs d ’états Caractérisent les états de fonctionnement du microprocesseur. Ils interviennent en particulier pour les branchement conditionnels. C N H Z P C : retenue arithmétique N ou S : signe H ou AC : retenue intermédiaire Z : zéro P : Parité I : interruption R. Grisel I - - Remarque : La plupart des instructions exécutées par le processeur modifieront l’ensemble ou une partie des indicateurs d’état. Aussi, il est toujours important de se reporter au tableau fourni par le fabricant sur lequel figurent les bits d’état qui seront modifiés par les instructions. - 15 Les registres d ’adresses Ils sont destinés au stockage des adresses. Leurs caractéristiques essentielles est qu’ils sont connectés au bus des adresses. Tous les microprocesseur comportent au moins un compteur ordinal. La plupart d’entre eux contiennent plusieurs. MUX Registre d'index Pointeur de pile P-instruction MUX Registre d'adresse Bus de données Accumulateur UAL Bus d'adresse R. Grisel - 16 Les registres spéciaux : la pile C’est une structure LIFO implantée dans la mémoire RAM externe. Bus de données PUSH POP Pointeur de pile Base de la pile POP PUSH Fond de la pile Indicateur "pile pleine" R. Grisel - 17 Signaux portés par le bus de commande INT NMI INTA INTE READ CPU WRITE READY WAIT VD/VA HOLD HOLD A RES CLK HLT BA PO, RST SENSE R. Grisel Interruption Interruption non-masquable Interruption reconnue Validité de l'interruption Mémoire ou E/S A synchroniser avec la mémoire CPU en attente Données ou adresses valides Accès direct mémoire Maintien reconnu Reset Horloge Arrêt du CPU Bus disponible Mise en marche Entrée direct (série) - 18 Exécution d ’une instruction phases : Chaque instruction est exécutée en une séquence de trois - la phase Recherche (fetch), - la phase Décodage (decode), - la phase Exécution (execute). Auxquelles, il faut aussi ajouter : - la recherche des opérandes, - la mémorisation des résultats. R. Grisel - 19 Exécution d ’une instruction MPU n IR Mémoire données 0 n 0 INST Décodeur INST 2304 Lecture 2304 PC Décodeur +1 0 adresses R. Grisel - 20 Données MUX ACC R-I W Z B C D E H CONTROLEUR SEQUENCEUR R-TEMP ACT L UAL SP PC ETATS +/- 1 Adresse TAMPON DEC TAMPON Exemple : le 8080 de INTEL Commande R. Grisel - 21 Cycle machine du 8080 T1 T2 T3 T4 T5 Q1 Q2 SYNC L ’exécution d ’une instruction nécessite entre un et cinq cycle machines (accès mémoire). Chaque cycle machine correspond à trois, quatre ou cinq cycle horloge. R. Grisel - 22 Formats des instructions (codage horizontal) Code opérationnel Données /adresses Adresses Exemples : MOV r1, r2, ADI data , JMP addr R. Grisel - 23 Instruction à un octet MOV r1, r2 01DDDSSS Exemple MOV C, B Le code pour le registre B est 000, le code pour le registre C est 001. 01001000 R. Grisel - 24 Instruction à deux octets ADI data 1 1 0 0 0 1 1 0 data Exemple 55 est codée par ADI 55 01010101 11000110_01010101 R. Grisel - 25 Instruction à trois octets LDA addr 0 0 1 1 1 0 1 0 adresse Exemple Si adresse vaut LDA 1234 1234 00111010_00110100_00010010 Code de LDA faible fort R. Grisel - 26 Exécutions d ’instructions sur le 8080 T1 T2 T3 T4 T5 L ’exécution d ’une instruction nécessite entre un et cinq cycle machines (accès mémoire). Chaque cycle machine correspond à trois, quatre ou cinq cycle horloge. La phase de recherche de l ’instruction correspond aux états T1, T2 et T3 du cycle machine M1. T1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses. T2 : PC = PC +1 (& décodage et préparation de l ’instruction). T3 : Transfert de l ’instruction dans le registre d ’instruction. T4 : Décodage de l ’instruction. T5 : Fonction du type de l ’instruction. R. Grisel - 27 Durée d ’une instruction Un cycle machine T1 T2 T3 T4 XCHG 4 états T5 MOV r1,r2 5 états Deux cycles machine M1 T1 T2 M2 T3 T4 T1 T2 ADD r 6 états T3 7 états MOV r,M La durée d ’une instruction et par conséquent d ’un programme sera calculée par rapport au nombre total de cycle horloge. Avec une horloge de 50 ns, la durée d exécution de l ’instruction MOV r1,r2 sera de 0,25 µs. R. Grisel - 28 Exemple : MOV D,C Mnémonique T1 T2 T3 MOV r1,r2 01DDDSSS Envoi de PC PC = PC + 1 INST T4 IR (SSS) T5 TMP (TMP) DDD Code opérationnel T1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses. T2 : PC = PC +1 (& décodage et préparation de l ’instruction). T3 : Transfert de l ’instruction dans le registre d ’instruction. T4 : Décodage de l ’instruction et transfert de C vers TMP. T5 : Transfert de TMP vers D. Durée = 5 fois le cycle machine R. Grisel - 29 Exemple : ADD r (ici r = C) T1 de M1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses. T2 de M1 : PC = PC +1 (& décodage et préparation de l ’instruction). T3 de M1 : Transfert de l ’instruction dans le registre d ’instruction. T4 de M1 : Décodage de l ’instruction et transfert de C vers TMP et de A vers ACT. T5 de M1 : Ignoré (cet état n ’est pas comptabilisé !). T1 de M2 : Recherche de la prochaine instruction. T2 de M2 : PC = PC +1 et A = ACT + TMP Cette technique de chevauchement est utilisée partout ou cela est possible, afin d ’augmenter la vitesse apparente de traitement du microprocesseur. Il ne doit pas y avoir de conflit quant à l ’utilisation des bus ou autres parties du système. R. Grisel - 30 Technique de chevauchement M1 M2 Fin réelle Instruction N T1 T2 T3 Acquisition T4 Décodage Instruction N+1 T2 T1 Exécution T1 T2 Acquisition Durée = 4 fois le cycle machine et non 5 fois. Décodage Exécution M1 Chevauchement 20 % d ’amélioration R. Grisel - 31 Exemple : LDA addr T1 de M1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses. T2 de M1 : PC = PC +1 (& décodage et préparation de l ’instruction). T3 de M1 : Transfert de l ’instruction dans le registre d ’instruction. T4 de M1 : Décodage de l ’instruction. T1 de M2 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses. T2 de M2 : PC = PC +1 (& décodage et préparation de la donnée). T3 de M2 : Transfert du poids faible de l ’adresse dans le registre Z. T1 de M3 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses. T2 de M3 : PC = PC +1 (& décodage et préparation de la donnée). T3 de M3 : Transfert du poids fort de l ’adresse dans le registre W. T1 de M4 : Contenu du registre d ’adresse WZ dans le bus d ’adresses T2 de M4 : PC = PC +1 (& décodage et préparation de la donnée). T3 de M4 : Transfert de la donnée dans ll ’accumulateur. R. Grisel - 32 Exemple : JMP addr T1 de M1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses. T2 de M1 : PC = PC +1 (& décodage et préparation de l ’instruction). T3 de M1 : Transfert de l ’instruction dans le registre d ’instruction. T4 de M1 : Décodage de l ’instruction. T1 de M2 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses. T2 de M2 : PC = PC +1 (& décodage et préparation de la donnée). T3 de M2 : Transfert du poids faible de l ’adresse dans le registre Z. T1 de M3 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses. T2 de M3 : PC = PC +1 (& décodage et préparation de la donnée). T3 de M3 : Transfert du poids fort de l ’adresse dans le registre W. T1 de M1n+1 : Contenu du registre d ’adresse WZ dans le bus d ’adresses T2 de M1n+1 : PC = WZ +1 (& décodage et préparation de la donnée). R. Grisel - 33 Exercice 1 : CALL adresse T1 de M1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses. T2 de M1 : PC = PC +1 (& décodage et préparation de l ’instruction). T3 de M1 : Transfert de l ’instruction dans le registre d ’instruction. T4 de M1 : décodage de l ’instruction. T5 de M1 : SP = SP -1. T1 de M2 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses. T2 de M2 : PC = PC +1 (& décodage et préparation de la donnée). T3 de M2 : Transfert du poids faible de l ’adresse dans le registre Z. T1 de M3 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses. T2 de M3 : PC = PC +1 (& décodage et préparation de la donnée). T3 de M3 : Transfert du poids fort de l ’adresse dans le registre W. T1 de M4 : Contenu du registre SP dans le bus d ’adresses. T2 de M4 : SP = SP -1 (& décodage et préparation de la donnée). T3 de M4 : Transfert du poids fort du PC vers la pile. T1 de M5 : Contenu du registre SP dans le bus d ’adresses. T2 de M5 : (& décodage et préparation de la donnée). T3 de M5 : Transfert du poids faible du PC vers la pile. T1 de M1n+1 : Contenu du registre d ’adresse WZ dans le bus d ’adresses T2 de M1n+1 : PC = WZ +1 (& décodage et préparation de la donnée). R. Grisel - 34 Exercice 2 : RET T1 de M1 : Contenu du registre d ’adresse (PC) dans le bus d ’adresses. T2 de M1 : PC = PC +1 (& décodage et préparation de l ’instruction). T3 de M1 : Transfert de l ’instruction dans le registre d ’instruction. T4 de M1 : décodage de l ’instruction. T1 de M2 : Contenu du registre SP dans le bus d ’adresses. T2 de M2 : SP = SP +1 (& décodage et préparation de la donnée). T3 de M2 : Transfert de l ’octet de la pile vers Z. T1 de M3 : Contenu du registre SP dans le bus d ’adresses. T2 de M3 : SP = SP +1 (& décodage et préparation de la donnée). T3 de M3 : Transfert de l ’octet de la pile vers W. T1 de M1n+1 : Contenu du registre d ’adresse WZ dans le bus d ’adresses T2 de M1n+1 : PC = WZ +1 (& décodage et préparation de la donnée). R. Grisel - 35