TP 6. Instruction de saut Présentation: Dans un système à microprocesseur c'est le microprocesseur qui est toujours maitre des bus, c'est donc lui qui impose l'adresse de lecture ou d'écriture, et qui gère le (s) signal permettant de préciser le mode lecture ou écriture. En première approximation le microprocesseur lit une case mémoire, interprète le contenu comme une instruction et l exécute, puis il lit la case mémoire suivante ceci sans fin. Cependant on comprend qu'un programme qui se déroule de cette façon a très vite atteint la dernière case de la mémoire: Par exemple avec 2 Go de mémoire et une vitesse de 100MHz, la mémoire est entièrement lue en 20 secondes et le programme est terminé! En réalité un programme est construit avec de nombreuses boucles: faire suite d instructions tant que touche Q non actionnée (l action sur la touche provoque la fin de la boucle) ou encore: faire rien tant qu'aucune touche clavier n'est actionnée... et avec des sauts (des aiguillages): si touche actionnée == touche A, aller à tel endroit du programme si touche == S aller à tel autre endroit...... Les adresses mémoire sont générées par un compteur : le compteur programme (PC). Il est nécessaire de disposer d'instructions qui vont modifier le déroulement linéaire du programme c'est-à-dire modifier le contenu du compteur PC. Le compteur qui indique l'adresse de l'instruction actuelle est le compteur programme = program counter: PC Objectifs du TP:. étude de la génération des adresses par le micro processeur: compteur programme (PC). réalisation de l'instruction de saut IUT1 GRENOBLE RT Architecture des systèmes informatique TP 2014/2015 p.1/6
1. Présentation de la carte «compteur PC + RAM» H da 4 M 22V10 adresses /H 5 leds RAM R/W (0 pour écrire et 1 pour lire) 74LS244 données Buffer tri état t leds La carte utilisée dans le TP précédent comporte quelques signaux supplémentaires et nous utiliserons les formats complets disponibles. Les différences avec le câblage effectué dans les TP précédents:. les formats: bits pour les données: 4 bits pour le code 4 bits pour l'opérande 4 bits code 4 bits opérande INSTRUCTION SUR BITS 5 bits pour les adresses. le GAL 22V10 qui est sur la carte génère l'adresse utilisée pour la RAM. La valeur générée dépend du signal M: M=0 simple compteur qui s'incrémente au front de H,: PC+ = (PC-) +1 en Abel: PC := PC+ 1; M=1 PC+= dale signal M est fourni par l'unité de calcul qui indique si l'instruction en cours est une instruction de saut, la valeur sur da indique alors l'adresse du saut (cette valeur est l'opérande, la donnée). (le programme de ce PAL est dans adresse_tp9.jed, source: adresse_tp9.abl, disponibles sur le serveur) IUT1 GRENOBLE RT Architecture des systèmes informatique TP 2014/2015 p.2/6
Visualisation adresses Le «1» repère la broche «1» du circuit H = horloge (CK) Da: Adresses (retour du circuit UL+ACCU) M, signal actif pour les sauts Données (inters) Données en sorties RAM (et tri état) Visualisation des données en sorties RAM (et tri état) ne pas oublier d'alimenter le circuit (+5V; GND) /H est la sortie inversée de H 2. Vérification du fonctionnement de la carte: essai du compteur PC: positionner M à 0 faire des fronts sur CK => les adresses doivent s'incrémenter essai du saut: relier les entrées da à des inters mettre M à 1 faire un front sur CK => l'adresse doit prendre la valeur de da essai de la RAM et du tri-état: écriture: relier R/W à 0 pour être en mode écriture relier inters pour les données (on peut décabler da pour avoir suffisamment d inters) positionner M à 0 pour que les adresses s'incrémentent à chaque front sur CK les leds de données doivent s'éclairer selon le code en entrée de données (écriture) lecture: positionner après quelques écritures R/W à 1 relire aux adresses précédemment écrites IUT1 GRENOBLE RT Architecture des systèmes informatique TP 2014/2015 p.3/6
3. Circuit UC+ACCU: Réalisation avec un GAL22V10B. Schéma de principe: /CK M GAL 22V10B Data ACCU 4 leds de visualisation 4 rappel sur la constitution interne: X BUS DE DONNEES: Data Y C Unité de calcul R Clock = /CK Registre accumulateur ACCU Le principe est le même que précédemment, seuls les formats ont changé et un nouveau signal est généré (M). 4 bits pour l'opérande (poids forts des données)(éventuellement l'adresse du saut) 4 bits pour le code de l'instruction (une instruction de plus: SAUT à une adresse) Le (nouveau) signal «M» permet de détecter l'instruction de saut et d'en informer le circuit générateur d'adresse. Donc: lorsque le code instruction est celui du saut il faut faire R=X (c'est-à-dire l'adresse du saut) ET mettre M=1 les codes sont les suivants : 0 pour LOAD 1 pour OU 2 pour ET 3 pour OUEX 4 pour JUMP Le fichier permettant la programmation de ce PAL est disponible sur le serveur: uc_tp9.jed (source: uc_tp9.abl) 4. Essais «unité de calcul» + carte: Le principe de câblage est le suivant: H (BP) données da Carte «compteur PC + RAM» /H D0 à D3 D4 à D7 GAL UC + ACCU M ACCU IUT1 GRENOBLE RT Architecture des systèmes informatique TP 2014/2015 p.4/6
REMARQUE: les signaux /H et D0 à D7 sont placés de telle façon sur le connecteur de la carte et le GAL qu'il est possible d'obtenir la liaison directement (voir annexes du TP) programmer la RAM pour qu'elle contienne le programme suivant: code instruction (pour la RAM) 0. load 0 1. load 5 2. ou 6 3. ouex 15 4. jump 12 5. load 0 6. load 15 7. load 0. load 10 9. ouex 15 10. ouex 15 11. jump 0 12. jump quel est l'ordre attendu d'exécution des instructions (indiquer la succession des numéros des instructions réalisées) Quelles seront alors les valeurs successives de l'accumulateur? (pour vérifier la bonne exécution) Câbler sans oublier les leds de visualisation de l'accumulateur. Exécuter le programme en mode «pas à pas» en actionnant un BP relié à CK. Exécuter le programme sans interruption en reliant CK au signal d'horloge de 1 Hz du banc de câblage. 5. Conclusion La structure matérielle mise en oeuvre dans ce TP peut permettre, par une évolution de la description pour le GAL, de fournir au système les instructions: d'écriture en mémoire: en pouvant renvoyer la sortie de l ACCU vers les données. Instruction WRITE_ACCU_ADRESSE de lecture dans la mémoire: afin d accéder au contenu d une case mémoire. Instruction «READ_ADRESSE_ACCU» IUT1 GRENOBLE RT Architecture des systèmes informatique TP 2014/2015 p.5/6
+---------\ /---------+ \ / ----- clock 1 24 Vcc d0 2 23 M d1 3 22 d2 4 21 circuit UC + ACCU d3 5 20 d4 6 19 d5 7 1 d6 17 accu0 d7 9 16 accu1 10 15 accu2 11 14 accu3 GND 12 13 +---------\ /---------+ \ / ----- ck 1 24 Vcc da0 2 23 A0 da1 3 22 A1 da2 4 21 A2 circuit pour la carte PC + RAM da3 5 20 A3 M 6 19 A4 7 1 ckout 17 9 16 10 15 11 14 GND 12 13 `--------------------------- IUT1 GRENOBLE RT Architecture des systèmes informatique TP 2014/2015 p.6/6