(1) Génération du microcode à placer en ROM.
Le microprogramme qui vous est fourni est donné dans le fichier microcode.muc (à récupérer
sur mandelbrot dans le répertoire /home/p/pierrlau/ALM/TP_Procesim).
La commande :
masm microcode.muc
vous permet de produire le microcode associé.
Attention, le fichier produit s'appelle sortie.mob, renommez-le en microcode.mob.
(2) Chargement des codes en mémoires.
Par un click sur l'icône de disquette à côté de la ROM, charger dans la ROM le code qui a été
placé dans microcode.mob.
Par un click sur l'icône de disquette à côté de la RAM, charger dans la RAM le petit pro-
gramme exemple qui vous est fourni dans le fichier exemple_noit.ob (également à récupérer
sur mandelbrot dans le répertoire /home/p/pierrlau/ALM/TP_Procesim).
Vérifier que les contenus des mémoires ont bien été mis à jour.
(3) Observation et analyse de la simulation.
Chaque click sur le bouton Horloge simule un top d'horloge. A chaque étape, vous pouvez
suivre à la fois les déplacements en mémoires, et les mouvements réalisés dans le
processeur (voir la coloration verte des chemins activés).
Cliquer sur le bouton Horloge jusqu'à ce que la valeur contenue dans PC soit 0x40.
Quelle est la micro-instruction exécutée au top d'horloge suivant ?
Lors de la micro-instruction suivante (read), où se trouve-t-on dans la RAM ? Pourquoi ?
Quelle est l'instruction concernée ?
Suivre toute la phase de fetch et noter précisément, pour chaque micro-instruction, les actions
réalisées dans le processeur : quels bits de la micro-instruction en cours sont utiles à son
interprétation et pourquoi, quels registres et bus sont utilisés, quels registres sont chargés,
avec quelles valeurs, quelles opérations de l'UAL sont réalisées,…
A la fin de la phase de fetch, quels sont les contenus des registres IR et mk2 ? Quel est donc
le code de l'instruction qui va maintenant s'exécuter ? Expliquer ce code, par rapport aux
formats d'instructions vus au TD8.
NB. Noter que vous pouvez recommencer à tout moment si nécessaire, grâce au bouton
Reset.
Question 4. Faites avancer l'exécution jusqu'à la fin de cette instruction.
Combien de micro-instructions nécessite-t-elle ?
Quelle est la dernière étiquette à laquelle nous nous sommes branchés dans le microcode ?
Quelle est la dernière micro-instruction qui y est exécutée avant de retourner à l'étape de fetch
de l'instruction suivante ? A quoi sert cette micro-instruction ?
Quel résultat observez-vous ?
Quelle est l'adresse de l'instruction suivante ?
Quel est le code de cette instruction ? Où et quand le voit-on apparaître ?
Faites avancer l'exécution jusqu'à la fin de cette instruction.
Combien de micro-instructions nécessite-t-elle ?
Quelle est la dernière étiquette à laquelle nous nous sommes branchés dans le microcode ?
Quelle est la dernière micro-instruction qui y est exécutée avant de retourner à l'étape de fetch
de l'instruction suivante ? A quoi sert cette micro-instruction ?
Quel résultat observez-vous ?
Quelle est l'adresse de l'instruction suivante ?