Objectif • Comprendre à l ’aide d ’un exemple simple le déroulement des instructions au niveau microprogramme Les microprogrammes • Le cycle de base • Un exemple complet • L ’exécution Cycle de base Recherche de l’instruction Pointage vers l’instruction suivante Exécution de l’instruction Réalisation du contrôleur LCO PSR LEC LMM CRI CRA PSR LEC LMM CEA +1 PSR EDA ECR EMM Entrées venant du champ de code-op du registre instruction Sorties de contrôle du chemin de données CRA PSR LEC LMM CEA Registre d’état État suivant Cycle de base Recherche de l’instruction Pointage vers l’instruction suivante Exécution de l’instruction L’adresse de l’instruction à exécuter est dans le compteur ordinal L’adresse est mise dans le registre d’adresse de la mémoire L’instruction passe de la mémoire au registre instruction par l’intermédiaire du registre mot Le fonctionnement Recherche de l’instruction LCO PSR LEC LMM CRI CRA PSR LEC LMM CEA +1 Pointage vers l’instruction suivante Exécution de l’instruction PSR EDA ECR EMM XXXX CRA PSR LEC LMM CEA 2 LCO PSR LEC LMM CRI Cycle de base Recherche de l’instruction Pointage vers l’instruction suivante Exécution de l’instruction Le compteur ordinal est incrémenté de 1 pour pointer sur l’adresse de l’instruction suivante. Remarque : Pour une instruction conditionnelle (Si Alors Sinon), le compteur ordinal n’est pas incrémenté, il est chargé avec l’adresse de l’instruction à exécuter. Le fonctionnement Recherche de l’instruction LCO PSR LEC LMM CRI CRA PSR LEC LMM CEA +1 Pointage vers l’instruction suivante PSR EDA ECR EMM Exécution de l’instruction COP=C6 CRA PSR LEC LMM CEA 4 Inc Cycle de base Recherche de l’instruction Pointage vers l’instruction suivante Exécution de l’instruction La partie code de l’opération (ce que doit faire l’instruction) du registre instruction est décodée. Le contrôleur envoie les signaux de contrôle pour piloter le chemin de données. Les données se propagent à travers le chemin de données. Il est nécessaire de mettre au point,une méthodologie de synchronisation, pour définir à quel moment les signaux peuvent être lus et écrits. Le fonctionnement Recherche de l’instruction LCO PSR LEC LMM CRI CRA PSR LEC LMM CEA +1 Pointage vers l’instruction suivante Exécution de l’instruction COP=C6 PSR EDA ECR EMM CRA PSR LEC LMM CEA 0 CAD PSR LEC LMM CEA CRA EDA Cycle de base Recherche de l’instruction Pointage vers l’instruction suivante Exécution de l’instruction Et on recommence Le fonctionnement LCO PSR LEC LMM CRI +1 PSR EDA ECR EMM XXXX CRA PSR LEC LMM CEA CRA PSR LEC LMM CEA 2 LCO PSR LEC LMM CRI Un exemple complet ? { int a=8, b=4, c; c=a+b; } Compilateur LD A,(F800h) ADD A,(F810h) st (F820h),A Hiérarchie de traduction Assembleur 08 04 -3AF800 C6F810 32F820 F800 F810 Chargeur F820 en Mémoire FB00 FB01 FB02 08 04 -3AF800 C6F810 32F820 L’architecture Compteur Ordinal LCO CC O Accumulateur Bus d’adresses PSR CRA Registre adresse 1 U.A.L. CAD H CEB EDA LEC Registre mot Registre Instruction CEA CRI Bus de données ECR LMM EMM Charger le programme FB00 1 LCO CC O Accumulateur Bus d’adresses PSR CRA Données F800 08 F810 04 F820 00 Instructions FB00 3A F8 00 FB01 C6 F8 10 FB02 32 F8 20 Registre adresse Compteur Ordinal U.A.L. CAD H CEB EDA LEC Registre mot Registre Instruction CEA CRI Bus de données ECR LMM EMM Extraction de l ’instruction Compteur Ordinal 1 FB00 LCO Mémoire centrale CC O Accumulateur Bus d’adresses PSR CRA FB00 Unité Centrale Données F800 F810 F820 Instructions FB00 FB01 FB02 +1 08 04 00 3A F8 00 C6 F8 10 32 F8 20 U.A.L. CAD H CEB EDA 3A CEA F8 00 CRI Bus de données LEC ECR 3A F8 00 Registre Instruction LMM Registre mot EMM Le compteur ordinal est incrémenté Compteur Ordinal +1 FB01 LCO Mémoire centrale CC O Accumulateur Bus d’adresses PSR CRA FB00 Unité Centrale Données F800 F810 F820 Instructions FB00 FB01 FB02 +1 08 04 00 3A F8 00 C6 F8 10 32 F8 20 U.A.L. CAD H CEB 3A EDA CEA F8 00 CRI Bus de données LEC ECR 3A F8 00 Registre Instruction LMM Registre mot EMM Le chargement : les signaux à piloter Compteur Ordinal LCO Mémoire centrale CC O Accumulateur 08 1 FB01 Bus d’adresses PSR CRA FB00 Unité Centrale Données F800 F810 F820 Instructions FB00 FB01 FB02 +1 08 04 00 3A F8 00 C6 F8 10 32 F8 20 U.A.L. CAD H CEB 3A EDA CEA F8 00 CRI Bus de données LEC ECR 08 Registre Instruction LMM Registre mot EMM Extraction de l ’instruction Compteur Ordinal LCO Mémoire centrale CC O Accumulateur 08 1 FB01 Bus d’adresses PSR CRA FB01 Unité Centrale Données F800 F810 F820 Instructions FB00 FB01 FB02 +1 08 04 00 3A F8 00 C6 F8 10 32 F8 20 U.A.L. CAD H CEB C6 EDA CEA F8 10 CRI Bus de données LEC ECR C6 F8 10 Registre Instruction LMM Registre mot EMM ² Compteur Ordinal FB02 LCO +1 Mémoire centrale CC O Accumulateur Bus d’adresses PSR CRA FB00 Unité Centrale Données F800 F810 F820 Instructions FB00 FB01 FB02 +1 08 04 00 3A F8 00 C6 F8 10 32 F8 20 U.A.L. CAD H CEB C6 EDA CEA F8 00 CRI Bus de données LEC ECR 3A F8 00 Registre Instruction LMM Registre mot EMM Exécution Compteur Ordinal LCO Mémoire centrale CC O Accumulateur 12 1 FB02 Bus d’adresses PSR CRA F810 Unité Centrale Données F800 F810 F820 Instructions FB00 FB01 FB02 +1 08 04 00 3A F8 00 C6 F8 10 32 F8 20 U.A.L. 08 04 CAD H CEB C6 EDA CEA F810 CRI Bus de données LEC ECR 04 Registre Instruction LMM Registre mot EMM Extraction de l ’instruction Compteur Ordinal 1 FB02 LCO CC O Accumulateur Bus d’adresses 12 Mémoire centrale PSR CRA FB02 Unité Centrale Données F800 F810 F820 Instructions FB00 FB01 FB02 +1 08 04 00 3A F8 00 C6 F8 10 32 F8 20 U.A.L. CAD H CEB EDA 32 CEA F8 20 CRI Bus de données LEC ECR 32 F8 20 Registre Instruction LMM Registre mot EMM Le compteur ordinal est incrémenté Compteur Ordinal 1 FB03 LCO CC O Accumulateur Bus d’adresses 12 Mémoire centrale PSR CRA FB02 Unité Centrale Données F800 F810 F820 Instructions FB00 FB01 FB02 +1 08 04 00 3A F8 00 C6 F8 10 32 F8 20 U.A.L. CAD H CEB EDA 32 CEA F8 20 CRI Bus de données LEC ECR 32 F8 20 Registre Instruction LMM Registre mot EMM Exécution Compteur Ordinal LCO Mémoire centrale CC O Accumulateur 12 1 FB03 Bus d’adresses PSR CRA F820 Unité Centrale Données F800 F810 F820 Instructions FB00 FB01 FB02 +1 08 04 12 3A F8 00 C6 F8 10 32 F8 20 U.A.L. CAD H CEB 32 EDA CEA F820 CRI Bus de données LEC ECR 12 Registre Instruction LMM Registre mot EMM Le programme est terminé Compteur Ordinal 1 FB03 LCO Mémoire centrale CC O Accumulateur Bus d’adresses PSR CRA F800 Unité Centrale Données F800 F810 F820 Instructions FB00 FB01 FB02 Contrôleur 08 04 12 3A F8 00 C6 F8 10 32 F8 20 U.A.L. CAD H CEB EDA LEC Registre mot Registre Instruction CEA CRI Bus de données ECR LMM EMM Simulateur • sinus.xls • sinussimulation.xls • cacher.xls La micro-programmation Commande 1 Phase i Phase i+1 Commande 2 0 1 Adresse suivante 0 0 1 1 0 Adresse suivante 0 1 1 0 0 1 1 1 Chargement RA Mémoire de micro-programme Micro-commande Chargement drapeaux Adresse de la microinstruction suivante Compteur Commandes Commande n Adresse Décodeur Registre instruction