INF1600: Architecture des micro-ordinateurs Architecture du microprocesseur Intro à l assembleur et boucle d exécution Responsable du cours : Giovanni Beltrame giovanni.beltrame@polymtl.ca Local: M-4109 Chargée de cours: Luiza Gheorghe luiza.gheorghe@polymlt.ca Génie informatique et génie logiciel 1 H2015
2 La micro-architecture de la machine de Von Neumann La séquence d opérations pour exécuter un programme 1) Récupérer les instructions de la mémoire 2) Décoder la représentation numérique des instructions 3) Charger les données de la mémoire ou des entrées vers l accumulateur 4) Exécuter l opération correspondante sur les données 5) Sauvegarder le résultat 6) Revenir à 1) et répéter Mémoire Entrées/Sorties L accumulateur est une petite mémoire proche du processeur Unité arithmetiquelogique (ALU) Accumulateur Unité de contrôle Processeur Génie informatique et génie logiciel 2 H2015
RTN et operateurs arithmétiques et logiques add (:=op=12) R[ra] R[rb] + R[rc] : sub (:=op=14) R[ra] R[rb] - R[rc] : neg (:=op=15) R[ra] - R[rc] : and (:=op=20) R[ra] R[rb] R[rc] : or (:=op=21) R[ra] R[rb] R[rc] : not (:=op=22) R[ra] R[rc] : Source: Heuring&Jordan Génie informatique et génie logiciel 3 H2015
Modes d adressage Registre R[t] R[a] Var temp Registre indirect R[t] M[R[a]] Pointeur Immédiate R[t] X Constante Indexée (déplacement) R[t] M[X+R[a]] Arrays Auto incrément R[t] M[R[a]]; R[a] R[a] + 1; Auto décrément R[a] R[a] - 1; R[t] M[R[a]]; Source: Heuring&Jordan Génie informatique et génie logiciel 4 H2015
Architecture 1 bus -1 bus 32 bits occupé par un registre a la fois - MA le CPU copie l adresse mémoire dans MA - MD les données sont lues de ou écrites dans MD - Le premier opérande ALU toujours en A, le résultat en C - Le deuxième opérande vient toujours du bus - L informations du bus va toujours en IR et MA - Un décodeur interprète l info envoyée au IR - MA communique l adresse a la mémoire et non au CPU Abstraite: (IR M[PC] : PC PC+4 ; instruction_execution) instruction_execution:=( add (:=op=12) R[ra] R[rb] + R[rc] : Concrète: Recherche d instruction MA PC : C PC+4 ; MD M[MA] : PC C ; IR MD ; Exécution d un instruction add A R[IR 21..17 ] ; C A + R[IR 16..12 ] ; R[IR 26..22 ] C ; Source: Heuring&Jordan Génie informatique et génie logiciel 5 H2015
Architecture 1 bus Informations sur l architecture: - ALU doit être capable d additionner 2 valeurs de 32 bits - ALU doit être capable d incrémenter l entrée B avec 4 - Pour lire la mémoire: l adresse se trouve en MA et les données sont mises en MD - Le premières 3 étapes (recherche d instructions) sont le mêmes pour toutes les instructions architecture un bus - Pour l addition donnée en exemple, la recherche de l instruction et l exécution prennent 6 cycles d horloge. Génie informatique et génie logiciel 6 H2015
7 Conversation avec périphérique Certains périphériques demandent de l attention Deux méthodes «d attente» Scrutation («polling»): aller voir souvent Interruption: aller voir lorsqu on «sonne» Étapes d un interruption Un circuit dédié reçoit les requêtes Le processeur arrête ce qu il fait pour les traiter Une routine est exécutée par le processeur Le processeur reprend où il était Attention Interruption n importe où Sections critiques: possible d empêcher les interruptions Génie informatique et génie logiciel 7 H2015
Boucle d exécution avec interruptions 7 Exécution directe du vecteur d interruption (comme sur AVR) (IE=interrupt enable ; ireq=interrupt request ; I_Num=interrupt number ; SP=stack pointer ; IPC=interrupt PC) boucle_execution := Rst (Rst 0: IE 0: PC 0; boucle_execution) : Rst (ireq IE) (IE 0 : sauver_pc : PC 21@0 # I_Num<7..0> # 3@0 ; boucle_execution): Rst (ireq IE) (IR M[PC] : PC PC+4; execute_instruction; boucle_execution) Pointeur vers routine (comme sur Intel x86) PC M[22@0 # I_Num<7..0> # 2@0] Sauver PC Pile: SP SP 4 ; M[SP] PC ; Reg.: IPC PC ; (+ instructions pour sauver IPC) Retour d interruption Pile: PC M[SP] ; SP SP + 4 ; IE 1; Reg.: PC IPC ; IE 1; (+ instructions pour restaurer IPC) Génie informatique et génie logiciel 8 H2015
Programme du cours 7/01/2016 Introduction 28/01/2016 Organisation interne du microprocesseur TP4 Lien entre C++ et assembleur TP0 Introduction aux outils TP2 Architecture du microprocesseur Hierarchie de mémoire 14/01/2016 Micro-ordinateur et périphériques Programmation en assembleur TP5 Mémoires TP1 Périphériques et architecture TP3 Programmation en assembleur 21/01/2016 Architecture d'un microprocesseur C++ et assembleur Théorie Travaux Pratiques Génie informatique et génie logiciel 9 H2015
Objectifs de la leçon 1 2 3 4 5 6 7 Dessiner la structure d'un banque de registres (composants et connexions) Décrire comment stabiliser les données en entrée pour un banque de registre Décrire la procédure de décodage d'une instruction Dessiner un circuit de contrôle pour un microprocesseur Décrire une structure possible d une unité arithmétique-logique Faire une liste de méthodes pour réduire la consommation d énergie dans un microprocesseur Décrire des mises-en œuvre possibles pour: décaleur, additionneur/soustracteur, operateurs logiques et MUX Génie informatique et génie logiciel 10 H2015
Agenda Registres 1 2 3 Contrôle 4 UAL 5 6 7 Génie informatique et génie logiciel 11 H2015
RT circuits numériques A Β Source: Heuring&Jordan Génie informatique et génie logiciel 12 H2015
Circuit: registre entrée écrire sortie d 0 D SET Q q 0 CLR Q r0 d 1 D SET Q q 1 CLR Q d n-1 D SET Q q n-1 r1 Envoyer un signal à un parmi m Décodeur avec activation (démux) Correct pour lecture add R1, R2, R3 sub R2, R4, R1 or R1, R6, R3 CLR Q m registres Génie informatique et génie logiciel 13 H2015
Circuit: registre Envoyer un signal à un parmi m Problème pour écriture: écrire au bon moment WAR écriture d une valeur sur une autre valeur toujours nécessaire; add R1, R2, R3 sub R2, R4, R1 or R1, R6, R3 WAW deux instructions qui s exécutent en parallèle veulent écrire en même temps dans le même registre add R1,R2,R3 sub R2,R4,R1 or R1,R6,R3 r0 r1 RAW une instruction doit lire les données écrites par une autre instruction add R1, R2, R3 sub R2, R4, R1 or R1, R6, R3 m registres Génie informatique et génie logiciel 14 H2015
Circuit: écrire registre Comment écrire juste au bon moment? Circuit possible: Permet à écrire de se stabiliser Tous les registres à écrire le seront au même moment (le délai d une bascule après le front d horloge) Maintenant décodeur fonctionne: Bits de l instruction en entrée au décodeur Circuit de contrôle dit à quel cycle l activer Génie informatique et génie logiciel 15 H2015
Circuit: sélection, banque de registre Supposons un jeu d instructions à 3 opérandes (abstract RTN): OP ra, rb, rc R[ra] R[rb] R[rc] (où est l opération) op := IR 31..27 : ra := IR 26..22 : rb := IR 21..17 : rc := IR 16..12 26..22 21..17 16..12 11..0 inutilisés 31..27 26..22 21..17 16..12 11..0 inutilisés 5 5 5 Activer écriture Décodeur 5 vers 32 Mulitplexeur 2 vers 1 Select b/c 32 5 Vers bascules pour écrire Décodeur 5 vers 32 Activer lecture 32 Vers portes trois-états Contrôle: 3 fils Génie informatique et génie logiciel 16 H2015
Agenda Registres 1 2 3 Contrôle 4 UAL 5 6 7 Génie informatique et génie logiciel 17 H2015
Source: Heuring&Jordan Génie informatique et génie logiciel 18 H2015
Contrôle RTN Concrète Séquence contrôle MA PC : C PC+4 ; Pc out, MA in, Inc4, C in MD M[MA] : PC C ; Read, MD in C out, PC in, Wait IR MD ; MD out, Ir in execution_instruction Wait sert a prévenir l avancement à l étape suivante avant que la mémoire «asserte» «Done» Génie informatique et génie logiciel 19 H2015
Circuit: contrôle avec microprogramme Machine à états avec une sortie par signal à contrôler Contrôle avec microprogramme: Une séquence d instructions pour contrôler des opérations complexes. Implémentation: -doit générer un ensemble de signaux de contrôle -les signaux de contrôle sont ON ou OFF -doit avoir un «word» de contrôle pour chaque micro- opération -ajoute une adresse a chaque cycle pour spécifier l instruction suivante (dépendant de conditions si branchement ou non) Source William Stallings Computer Organization and Architecture Génie informatique et génie logiciel 20 H2015
Séquenceur -Donne la commande de lecture -Le mot du Registre de contrôle d adresses est lu dans le Registre de contrôle de tampon -Charge la nouvelle adresse dans le tampon en considérant l adresse suivante (envoyée par le Registre de contrôle de tampon) et les flags Registre Control Tampon -Génère les signaux de contrôle et l adresse suivante Source William Stallings Computer Organization and Architecture Génie informatique et génie logiciel 21 H2015
Clk interrupt autre IR Opcode Séquenceur 2 PLA ou mem (donne l adr. de départ) n Source externe Incrémente Mux 4:1 n n PC k Mém de programme (chaque case contient les signaux m de contrôle d un cycle) m IR n Source: Heuring&Jordan Signaux de contrôle Génie informatique et génie logiciel 22 H2015
Agenda Registres 1 2 3 Contrôle 4 UAL 5 6 7 Génie informatique et génie logiciel 23 H2015
UAL Architecture du microprocesseur Source: Heuring&Jordan Génie informatique et génie logiciel 24 H2015
Circuit: UAL Unité arithmétique et logique (UAL ou «ALU») Plusieurs opérations possibles Mêmes entrées (souvent) Version possible: A B carry_in n n n 5 add/sub additionneur «shifter» n+1 n+1 Sélection d opération Multiplexeur (MUX) n+1 Mais gaspille de l énergie Génie informatique et génie logiciel 25 H2015
Énergie Architecture du microprocesseur Les transitions prennent de l énergie Plus si le fil est long / a beaucoup de connexions Les signaux constants prennent relativement peu d énergie «Gating» Couper la propagation de transitions Placer une porte «et» avec un 0 On peut couper: Données Contrôles Horloge Source: Kamaraju, Kishore, Tilak: Power optimized ALU Génie informatique et génie logiciel 26 H2015
Énergie Architecture du microprocesseur Couper l alimentation Ne pas alimenter les parties non utilisées Ajouter des transistors pour couper l alimentation de régions du circuit Instruction «halt» au lieu d une boucle infinie «Voltage scaling» et «frequency scaling» Génie informatique et génie logiciel 27 H2015
Circuit: UAL Un circuit par opération logique, puis un MUX? and, or, xor, not + MUX 4:1 Un circuit pour toutes opérations «bitwise» 16 possibilités d opérations de 2 entrées booléennes Donc, MUX 4:1 Table de vérité a b MUX 4:1 a b résultat Un circuit pour plus et un pour moins? A - B = A + (-B) En complément à deux: -B = not(b)+1 sub/add n n n additionneur n+1 Génie informatique et génie logiciel 28 H2015
Circuit: UAL Décaleur de N bits («Shifter») - Pour manipulation de bits extraire bits individuels dans mots - Multiplication et division puissances de 2 - A*4 = A<<2 - A/8 = A>>3 - A*5=(A<<2) + A - A << B (décaler A de B bits vers la gauche, 0 A < 2N, 0 B < N) - Décaleur logique: i.e. A<<3 11010110 -> 10110000 A>>3 11010110 -> 00011010 - Décaleur aritmetique: i.e. A<<3 11010110 -> 10110000 A>>3 initial) Circuit petit, mais lent: N décalages d un bit 11010110 -> 11111010 (le bit de signe du nombre Génie informatique et génie logiciel 29 H2015
Rapide: décaleur en barillet («barrel shifter») n = log 2 N étages, décalant de 2 i bits (pour i de 0 à n-1) Chaque étage contrôlé par un bit du nombre par lequel il faut décaler B n-1..0 A N-1..0 B 0 B 1 B 2 Décaler de 1 Décaler de 2 Décaler de 4 Génie informatique et génie logiciel 30 H2015
Agenda Registres 1 2 3 Contrôle 4 UAL 5 6 7 Génie informatique et génie logiciel 31 H2015
Registres IA32 Registres usage général Directement accessibles 31 0 EAX EBX ECX EDX ESI EDI EBP block pointer ESP stack pointer Registres select pointeurs qui identifient un segment dans la mémoire non utilisés dans INF1600 15 0 CS - code DS - data SS - stack ES - data FS - data GS - data Registres état et contrôle 31 0 EFLAGS plusieurs flag état, un flag ctrl EIP pointeur instructions - PC Génie informatique et génie logiciel 32 H2015
Architecture du microprocesseur Sommaire Von Neumann vs Harvard Instructions : Operations, opérandes Encodage Accès mémoire Adressage (puce vs programme) Alignement Composants Registre Bus Tri-state buffer Décodeur Unité arithmétique-logique (add/sub, décaleur, op. logique) Génie informatique et génie logiciel 33 H2015
Architecture du microprocesseur RTN Abstrait : QUOI fait une instruction Concret : COMMENT c'est fait Séquence de contrôle : une série de signaux RTN concret <=> Séquence de contrôle Imaginez un système de robinets et de tubes Registres = réservoirs, Tri-state = robinets, Bus = tubes UAL : changement de la composition chimique de l'eau Contrôle : ouverture/fermeture de robinets Génie informatique et génie logiciel 34 H2015
Mémoire PC A MA MD Unité arith. (UAL) C Architecture du microprocesseur IR R[0..31] Circuit de contrôle Clk interrupt autre Séquenceur k Incrémente Mux 4:1 n IR 2 Opcode PLA ou mem (donne l adr. de départ) n PC Mém de programme (chaque case contient les signaux m de contrôle d un cycle) n m IR Signaux de contrôle Source externe n Génie informatique et génie logiciel 35 H2015
Exercice Génie informatique et génie logiciel 36 H2015
Exercice Génie informatique et génie logiciel 37 H2015
Synthèse Génie informatique et génie logiciel 38 H2015
Génie informatique et génie logiciel 39 H2015