AMSI 2001/2002 Joëlle Delacroix EXERCICES DIRIGES 5, 6 et 7 MODES D'ADRESSAGES EXECUTION DES INSTRUCTIONS MACHINES Rappels de cours A. Notion d'instructions, modes d'adressages Le langage de programmation d'une machine est un ensemble d'instructions permettant de spécifier à la machines les opérations à exécuter pour résoudre un problème donné. Il existe différents niveaux de langages. Au niveau de la machine physique se trouve le langage dit langage machine, seul exécutable par la machine. Les instructions du langage machine sont des mots binaires. Le schéma ci-dessous résume les différents niveaux de langages existants sur une machine : - le langage de haut niveau (C, ada, Cobol, etc…) est indépendant de la machine physique et ne peut pas être directement exécuté par celle-ci. le langage d'assemblage est dépendant de la machine. Il est équivalent au langage machine à la différence près que les chaines binaires de l'instruction machine sont remplacées par des chaines mnémoniques. le langage machine est composé des instructions directement exécutées par le processeur. Indépendant matériel Langage haut niveau I := 1; J := 3; I = J + I; COMPILATEUR Langage assemblage LOAD Im R0 1 LOAD Im R1 3 ADD Rg2 R0 R1 Dépendant matériel ASSEMBLEUR Langage machine 1 00000000000011110000000000000001 00000000000010100000000000000011 0010111100000001 AMSI 2001/2002 Joëlle Delacroix On se réfère à la documentation MAP32 pour étudier le format des instructions et les différents types d'instructions. B. Principe de l'exécution d'une instruction Bus externe (commande, données, adresse) RAD RDO CO RI Décodeur Mémoire Processeur UAL H Séquenceur Unité d ’exécution Unité de commande Le traitement d'une instruction par le processeur se décompose en deux étapes : - le cycle de recherche : recherche de l'instruction pointée par le CO - le cycle d'exécution : recherche des opérandes en mémoire centrale et exécution de l'instruction A.1. Le cycle de recherche - lecture de l'instruction suivante (phase de fetch = f(architecture du processeur)) : transfert de CO dans RAD, lecture, transfert de RDO dans RI, incrémentation de CO A.2. Le cycle d'exécution - recherche des opérandes en mémoire centrale (phase de décodage = f(mode d'adressage)) - exécution de l'instruction (phase d'exécution = f(code opération) Les circuits de commande et de séquencement sont pilotés par une horloge à quartz. Le quartz est externe au processeur; en revanche, les circuits d'horloge peuvent être internes ou externes au processeur. 2 AMSI 2001/2002 Joëlle Delacroix Registres UAL Registres UAL Séquenceur Horloge Décodeur Horloge Décodeur Séquenceur Quartz Quartz Une horloge à 50 Mhz fournit une période d'horloge ou microcycle ou cycle machine de 1/50000000 = 20 ns. Les cycles de recherche et d'exécution forment le cycle d'instruction. Ce cycle d'instruction s'étend sur plusieurs cycles machine. 1 2 3 4 5 6 7 8 9 10 11 H Cycle recherche Cycle exécution Cycle recherche Cycle instruction C. Les micro commandes Pour permettre le transfert des données entre les différentes entités connectées sur les bus du processeur, des barrières en entrée et en sortie doivent être implantées. Ces barrières sont symbolisées par un rond sur les connexions aux bus sur les schémas des processeurs qui suivent. Exemple sur le premier schéma de processeur : registre R1 connecté aux Bus A et B. Les barrières en entrée et en sortie du registre R1 sont contrôlées par les barrières nombusR1En et nombusR1Sor. Quand nombusR1En est activée, la donnée disponible sur le bus nombus est chargée dans R1. Quand nombusR1Sor est activée, la donnée disponible dans R1 est placée sur le 3 AMSI 2001/2002 Joëlle Delacroix bus nombus. Quand nombusR1Sor est désactivée, le bus peut être utilisé pour véhiculer des données à partir d'autres registres. Exemple : Transférer le contenu de R1 dans le registre R4 AR1Sor, CAB (liaison entre bus qui quand elle est activée, permet le transfert de données du bus A vers le bus B) BR4En On ne donne ici que les microcommandes activées, les autres étant par défaut non activées. L'ensemble des microcommandes activées sur un cycle horloge forme une microinstruction. L'ensemble des microinstructions constitue le microprogramme exécuté par l'unité de commande. On compte pour les microcommandes - les activations de porte - les signaux de commandes liés au bus externe (LEC, ECR notamment) - les commandes de sélection (S) sur les UALs Exercices Exercice 1. Manipulation des modes d’adressages A l'issue de l'exécution du code assembleur suivant et compte tenu de l'état initial de la mémoire et des registres du processeur, la case mémoire d'adresse (1000)16 a pour contenu la valeur 'a'? 199810 ? 10016 ? Adresse (base16) 1000 1001 1002 1003 2000 2010 Contenu a b 2000 d 3000 305 Registre Rsp RIX LOAD D R0 (1002)16 LOAD Im R1 (1002)10 PUSH D (1000)10 ADD Rg2 R0 R1 NEG Rg1 R1 ADD I R1 (1002)16 STORE Ix R1 (900) 16 4 Contenu 500 100 AMSI 2001/2002 Joëlle Delacroix Exercice 2. Code Assembleur Expliquez ce que fait le programme assembleur qui vous est donné sachant que la machine est sur 32 bits et travaille en complément à 2 pour la représentation des nombres signés. Les chiffres sont exprimés en base 10. La case mémoire d’adresse 1000 contient la valeur 2147483640 Programme 1 0 4 LOAD D R1 1000 8 ADD Im R1 1 12 JMPO D 20 16 JMP D 8 20 LOAD Im RB 0 24 STORE B R1 0 Exercice 3. Exécution d'instructions machine ARCHITECTURE 1 BUS - Tous les registres sont de 32 bits, - les instructions sont de format 32 bits - Le compteur ordinal donne l' adresse du 1er octet de l' instruction - le temps de cycle mémoire = un temps cycle horloge - On appellera LEC et ECR les commandes lecture et écriture en mémoire(RAD registre adresses mémoire et RDO registre de données). INCO permet l'incrémentation du CO. Z UAL Y R6 R0 RDO RAD CO RI Donnez le chronogramme d'exécution de l'instruction ADD direct R3 champ2 ARCHITECTURE 2 BUS On exécute sur l'architecture de processeur suivant plusieurs instructions avec des modes d'adressage différents : ADD Im R2 valeur : addition de R2 et de l'opérande valeur obtenu par adressage immédiat et stockage du résultat dans R2 LOAD I R3 champ2 : chargement de R3 avec un opérande obtenu par adressage indirect. 5 AMSI 2001/2002 Joëlle Delacroix AND basé R1 champ2 : Et logique entre le registre R1 et un opérande obtenu par adressage basé et stockage du résultat dans R1 STORE Ix R5 champ2 : écriture à une adresse mémoire obtenue par adressage indexé du contenu de R5 L'opération de lecture et d'écriture mémoire demande 1 cycle horloge. Tous les registres sont sur 32 bits. Les mots mémoire sont également sur 32 bits. ARCHITECTURE DU PROCESSEUR EXECUTIONS D’INSTRUCTIONS RO bus A 32 fils R1 bus B 32 fils R2 R3 R4 R5 R11 RDO RAD RI cop m champ2 Rsp CO RB RIX UAL @ S Y Mémoire S UAL 32 bits i o z s c PSW ARCHITECTURE 3 BUS -Tous les registres sont de 32 bits, - les instructions sont sur 32 bits -Le compteur ordinal donne l' adresse du 1er octet de l' instruction 6 AMSI 2001/2002 Joëlle Delacroix - le temps de cycle mémoire = un temps cycle horloge - On appellera LEC et ECR les commandes lecture et écriture en mémoire(RAD registre d adresses mémoire et RDO registre de données). ). INCO permet l'incrémentation du CO - le passage d'un bus à l'autre se fait par l'intermédiaire d'un NOP sur l'UAL qui transfère le contenu du tampon A sur le bus C sans modification. Donnez le chronogramme d'exécution de l'instruction ADD direct R3 champ2 et ADD reg R1 R2 R.I bus A bus B tampon A R0 R15 RDO PSW CO tampon B UAL RAD m é b m u o s i r e bus C 7