52
Micro Programmation Page 6 1 Licence d’Informatique MARSEILLE-LUMINY 6. Micro Programmation 6.1. Du câblage à la microprogrammation. 6.2. Les constituants physiques d’une machine 6.3. Notion de transfert 6.4. Notion de micro-programmation 6.5. Relations entre programme et micro-programme 6.1. Du câblage à la micro programmation. Après la réalisation en 1949 des premiers calculateurs à programme enregistré, Maurice Wilkes a redéfini la méthode de conception en faisant les constations suivantes : Entrées/sorties faciles (les télétypes électro -mécaniques provenaient des stocks des compagnies de téléphone et de l'armée). Chemin de données répétitifs. Contrôle non répétitif. Partant de ces constatations, une simplification du contrôle des machines était envisageable en intégrant un ordinateur miniature relié à deux tables dans l'unité de contrôle La première table devait contrôler le chemin de données. La seconde définissait le flux de contrôle au niveau microscopique. Wikles appela son invention micro-programmation et ajouta à tous les éléments constitutifs le préfixe micro (micro-instruction, micro-programme, micro-code, micro-compteur ordinal ...), pour désigner tous les éléments liés à cette structure, et, pour éviter toute confusion, il fit précéder du préfixe macro tout ce qui était utilisé pour décrire le niveau supérieur ( macro-instruction, macro-programme, macro-code, macro-compteur ordinal ...) Actuellement la tendance est à la simplification des jeux d’instructions des machines (RISC) et les ordinateurs micro-programmés (CISC) sont moins diffusées. Toutefois, il faut remarquer que la programmation en assembleur RISC se rapproche davantage de la conception de microprogramme que de l’écriture de programme en langage d’assemblage. En outre, la conception de circuits à la demande fait davantage appel à l’utilisation de systèmes en tranches pour lesquels l’utilisation du micro-contrôle est indispensable.

6.1. Du câblage à la micro programmation. - dil.univ-mrs.frguizol/Polys/Micro.pdf · Micro Programmation Page 6 1 Licence d’Informatique MARSEILLE-LUMINY 6. Micro Programmation

  • Upload
    dinhnga

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Micro Programmation Page 6 1

Licence d’InformatiqueMARSEILLE-LUMINY

6. Micro Programmation

6.1. Du câblage à la microprogrammation.6.2. Les constituants physiques d’une machine6.3. Notion de transfert6.4. Notion de micro-programmation6.5. Relations entre programme et micro-programme

6.1. Du câblage à la micro programmation.

Après la réalisation en 1949 des premiers calculateurs à programme enregistré,Maurice Wilkes a redéfini la méthode de conception en faisant les constationssuivantes :

Entrées/sorties faciles (les télétypes électro -mécaniques provenaientdes stocks des compagnies de téléphone et de l'armée).

Chemin de données répétitifs. Contrôle non répétitif.

Partant de ces constatations, une simplification du contrôle des machines étaitenvisageable en intégrant un ordinateur miniature relié à deux tables dansl'unité de contrôle La première table devait contrôler le chemin de données. Laseconde définissait le flux de contrôle au niveau microscopique.

Wikles appela son invention micro-programmation et ajouta à tous leséléments constitutifs le préfixe micro (micro-instruction, micro-programme,micro-code, micro-compteur ordinal ...), pour désigner tous les éléments liés àcette structure, et, pour éviter toute confusion, il fit précéder du préfixe macrotout ce qui était utilisé pour décrire le niveau supérieur ( macro-instruction,macro-programme, macro-code, macro-compteur ordinal ...)

Actuellement la tendance est à la simplification des jeux d’instructions desmachines (RISC) et les ordinateurs micro-programmés (CISC) sont moinsdiffusées. Toutefois, il faut remarquer que la programmation en assembleurRISC se rapproche davantage de la conception de microprogramme que del’écriture de programme en langage d’assemblage.

En outre, la conception de circuits à la demande fait davantage appel àl’utilisation de systèmes en tranches pour lesquels l’utilisation du micro-contrôleest indispensable.

Page 6 2 Jacques Guizol & Christian Aperghis

6.2. Les constituants physiques d’une machine

Une machine est avant tout constituée de systèmes physiques réalisant desfonctions précises (stockage et transformation de l’information). que nous allonsdétailler.

Le registre permettra un stockage temporaire de l’information. Sa représenta-tion schématique est donnée en figure 6.2.1

Ecriture

Entrée

Sortie

Validation

Figure 6.2.1 : Représentation schématique d’un registre.

Stocker une information dans un registre (figure 6.2.2) c’est :

• Afficher l'information sur l'entrée.• Actionner la commande d'écriture.

Figure 6.2.2 : Diagramme de temps d’un stockage d’information.

Accéder à une information préalablement stockée dans un registre c’est validerle passage de cette information à travers les barrières de sortie (figure 6.2.3).

Figure 6.2.3 : Schéma type d’un registre

Pour simplifier, on pourrait considérer la sortie comme un ensemble d’isolateursque l’on fermerait pour laisser passer l’information ou que l’on ouvrirait pourisoler les sorties du registre de son environnement (figure 6.2.4).

Micro Programmation Page 6 3

Figure 6.2.4 : Modèle de fonctionnement d’un registre.

Figure 6.2.5 : Diagramme de la validation des sorties.

6.2.1. Les liaisons.

Définitions : On regroupera sous cette appellation les bus et les opérateurs, c’est à dire tout ce quipermet de transporter et de transformer l’information.Un traitement est une étape intermédiaire entre une lecture et une écriture, cettenotion couvre toutes les opérations de la plus élémentaire (identité) à la plus évoluée(opération entre deux opérateurs).

Exemples :

Traitement 1 : ☞ Prendre le contenu d'un registre A.☞ Le recopier dans le registre B.

Traitement 2 : ☞ Prendre le contenu d'un registre A.☞ Prendre le contenu d'un registre B.☞ Additionner les deux valeurs.☞ Recopier le résultat dans le registre C.

6.2.1.1. Principes de base.Toutes les liaisons se font par l'intermédiaire de bus, en passant éventuellementpar des opérateurs plus ou moins évolués.

Généralement, il existe un opérateur central qui est une boite à opérations etqui permettra d’effectuer toutes les opérations arithmétiques et logiques.

6.2.1.2. Les micro-instructions.Les micro-instructions permettront de définir tous les signaux de contrôle pourassurer le cheminement de données. Elles ont de plus la possibilité de détermi-ner conditionnellement l'instruction à exécuter à l'étape suivante.

Le terme même de micro-programmation suggère le fait que, une fois conçuesles structures définissant le chemin de données et la mémoire de support, latâche consiste essentiellement à mettre en place des ordres de transfert. Il s’agit

Page 6 4 Jacques Guizol & Christian Aperghis

en fait de réaliser un interpréteur pour le jeu d'instructions de la machine, cequi permet, dans certaines limites, de modifier la logique de la machine sanstoucher à la structure du chemin de données.

Toute manipulation susceptible d’être effectuée se résume à (figure 6.2.6)

Prendre une information d’origine. Lui faire subir une transformation. La stocker dans une destination.

Figure 6.2.6 : Le chemin de l’information.

6.2.2. Machine réelle, machine virtuelle.

Déf in i t ion : On appellera machine réelle l’ensemble d'éléments physiques constitutifs de lamachine, abstraction faite de toute implantation de microprogramme.On appellera machine virtuelle la vision de la machine qui est donné à unutilisateur à travers le micro-programme.

Figure 6.2.7 : Relation entre machine réelle et virtuelle.

Globalement, il faut considérer que :

☞ La machine réelle exécute des micro-instructions dont la durée estrigoureusement constante et égale à un cycle.

☞ La machine virtuelle exécute des instructions dont la durée estvariable en fonction de la complexité des opérations.

6.2.3. Emulation d'une instruction.

La description claire des diverses opérations élémentaires qui doivent êtreenchaînées lors de l’exécution d’une instruction se fait par l’intermédiaire d’unlangage de description de transferts.

Ce langage permet de définir pour chaque mouvement d’information :

① Le ou les opérateurs impliqués.② L’opération à effectuer.③ La destination du résultat.

Sa syntaxe répond aux règles suivantes :

① Un objet est désigné par son nom.② Le contenu d’un objet est représenté en mettant entre parenthèses le

nom de l’objet.

Micro Programmation Page 6 5

Ainsi, le transfert de l’information contenue dans le registre A vers le registre Bs’exprimera sous la forme : (A) → B

Nous allons définir au moyen d’exemples les diverses possibilités offertes par cetoutil de description. Soit la machine réelle décrite en figure 6.2.9.

Figure 6.2.9 : Description d’une machine réelle.

On constate sur la description de cette machine que l’ensemble des transfertsentre registres s’effectue par l’intermédiaire du bus B.

L’affectation des registres est la suivante :

A : Accumulateur (registre utilisé pour mémoriser le résultat de toutesles opérations).

Y : Registre d’index (Il contiendra le déplacement relatif a un adressageindexé).

CoH CoB : Parties hautes et basses du compteur ordinal. La partie hautepermet d’adresser une page et la partie basse permet d’adres-ser un mot dans la page.

Travail : Registre mis à la disposition du micro programme pour stockerdes résultats intermédiaires.

T : Registre tampon de sortie de la boite à opérations.

Soit à écrire l’ensemble des transferts élémentaires à réaliser pour effectuer uneopération de chargement indirect indexé de l’accumulateur. L’instruction quenous pouvons écrire LDA ((Adresse),Y) en langage d’assemblage sera codéecomme indiqué en figure 6.2.10.

Figure 6.2.10 : Codage de l’instruction de chargement indirect indexé.

La partie adresse de l’instruction permet d’obtenir une adresse (indirection) àcette adresse, on ajoute le contenu du registre Y (indexation) le résultat donnantl’adresse réelle de la donnée à l’intérieur de la page courante. En langagetransfert, cette opération peut globalement se décrire sous la forme :(Mem((Adresse)+(Y))) → A.

Page 6 6 Jacques Guizol & Christian Aperghis

Sa décomposition en transferts élémentaires est la suivante :

Transfert Commentaire(Mem(CoH CoB)) → Ri Transférer dans un registre spécifique (le registre instruction) le code

opération de l’instruction afin d’en permettre le décodage. Cette fonction seraétudiée ultérieurement.

(CoB) + 1 → CoB Incrémenter le compteur ordinal (partie basse car on doit rester dans la pagecourante) afin de pouvoir accéder à la partie adresse de l’instruction.

(Mem(CoH CoB)) → T Transférer dans le registre tampon (T) le contenu de l’emplacement mémoirepointé par le compteur ordinal (la partie adresse).

(T) → A Transférer dans le registre A le contenu du registre tampon (T). Le registre Acontient maintenant la partie adresse de l’instruction, représentant l’adressede la base de l’opérande (car il s’agit d’un adressage indirect indexé).

(Mem(A)) + (Y) → T Afin d’obtenir l’adresse de l’opérande, on ajoute au contenu del’emplacement mémoire dont l’adresse est dans le registre A (indirection) lecontenu du registre Y (indexation). Le résultat de cette opération seratransféré dans le registre T.

(Mem(T)) → A L’adresse définitive de la donnée sera obtenue en utilisant le contenu duregistre T (adresse de l’opérande dans la page).

(CoB) + 1 → CoB On incrémente la partie basse du compteur ordinal afin de pointer sur lecode opération de l’instruction suivante et recommencer le processus.

Autre exemple, soit à écrire l’ensemble des transferts élémentaires à réaliserpour effectuer une opération de saut absolu dans la machine, c’est à dire unchangement de page. L’adresse de destination sera obtenue au moyen d’uneindirection. L’instruction que nous pouvons écrire SAUT (Adresse) en langaged’assemblage sera codée de la même manière que la précédente (figure 6.2.10).

Son fonctionnement sera le suivant : à l’adresse spécifiée dans la page couranteon récupérera deux emplacements successifs de mémoire permettant d’obtenirsuccessivement la partie haute puis la partie basse du nouveau compteurordinal.

En langage transfert, cette opération peut globalement se décrire sous la forme :(Mem(Adresse,Adresse+1) → CoH,CoB. Sa décomposition en transfertsélémentaires est la suivante :

Transfert Commentaire(Mem(CoH CoB)) → Ri Transférer dans un registre spécifique (le registre instruction) le code

opération de l’instruction afin d’en permettre le décodage. Cette fonctionsera étudiée ultérieurement.

(CoB) + 1 → CoB Incrémenter le compteur ordinal (partie basse car on doit rester dans lapage courante) afin de pouvoir accéder à la partie adresse de l’instruction.

(Mem(CoH CoB)) → T Transférer dans le registre tampon (T) le contenu de l’emplacementmémoire pointé par le compteur ordinal (la partie adresse). T contientmaintenant l’adresse de l’emplacement mémoire dans lequel on varécupérer la partie haute du nouveau compteur ordinal.

(Mem(T)) → Travail La partie haute du futur compteur ordinal est momentanément stockéedans le registre travail.

(T) + 1 → T Afin d’obtenir l’adresse de la partie basse du futur compteur ordinal, ondoit incrémenter le contenu du registre T. Cette opération sera selon toutelogique effectuée par l’intermédiaire de la boite à opérations.

(Mem(T)) → CoB L’adresse de la partie basse du futur compteur ordinal est obtenue enutilisant le contenu du registre T. Cette valeur peut être directementstockée dans son registre de destination (CoB).

(Travail) → CoH Il ne reste plus maintenant, pour parachever l’opération, qu’à transférer lapartie haute du compteur ordinal qui a été momentanément stockée dansle registre Travail .

Micro Programmation Page 6 7

6.2.4. Interprétation d'une instruction.

L’interprétation d’une instruction par le micro programme suit ainsi un cyclebien défini. qui est représenté en figure 6.2.11.

Mise soustension dela machine

Routinespécifiqueémulant

l'instruction A

Routinespécifiqueémulant

l'instruction B

Routinespécifiqueémulant

l'instruction X

EtatInitial

Obtention duCode opération parl'intermédiaire duCompteur ordinal

Incrémentationdu compteur ordinal

(Co) + 1 → Co

Décodage duCode opération etgénération d'une

adresse

Le décodage du code opération permet de déterminer l'adressede la routine spécifique permettant l'émulation de l'instruction.

Figure 6.2.11 : Interprétation d’une instruction.

6.3. Notion de transfert.

Soit à réaliser le transfert de l'information contenue dans un registre R1 vers unautre registre R2 en effectuant une opération de complémentation. La machineréelle qui permettra cette opération est représentée en figure 6.3.1.

On précise que les registres sont opaques et que la prise en compte de l’infor-mation présente sur l’entrée se produit à l’apparition du front descendant.

Page 6 8 Jacques Guizol & Christian Aperghis

R2Comp

Validation

Ecriture R1

Ecriture R2 C

Bus A

Bus B

R1

Figure 6.3.1 : Machine réelle permettant un transfert.

La barrière de validation sera activée par un niveau haut.

☞ Si la commande Validation est à un niveau haut alors la valeurprésente dans le registre circulera sur le bus A.

☞ Si la commande Validation est à un niveau bas alors la sortie duregistre sera physiquement isolée du bus A.

Pour ce qui est de la fonction de complémentation :

☞ Si la commande C est à un niveau haut alors la valeur présente ensortie sera égale au complément de la valeur présente sur l’entrée.

☞ Si la commande C est à un niveau bas alors la valeur présente ensortie sera égale à la valeur présente sur l’entrée.

Détail des opérations à effectuer :

① Valider la sortie du registre R1 (Contrôle).② Commander la complémentation (Contrôle).③ Valider l'écriture du registre R2. (Commande).

A cause du fonctionnement des composants mis en jeu et afin que le transfert sedéroule conformément aux spécifications il est nécessaire que :

① Le signal de validation soit actif pendant toute la durée de l’opération,puis devienne inactif dès le transfert effectué.

② De même pour le signal de complémentation.③ En fin d’opération un front de descente se présente sur l’entrée

écriture du registre R2

Le signal que l’on présentera sur chacun des composants sera un événement(figure 6.3.2) chaque élément de la structure ne tenant compte que de la portionqui lui est destinée.

Validation

Complémentation

Ecriture

Temps d'éxécutiondu transfert

Portions du signalreconnues par

chaque composant

}

Registre source

Opérateur

Registre destination

Figure 6.3.2 : Les composantes du signal.

Micro Programmation Page 6 9

6.3.1. Le fonctionnement.

Le montage sera donc celui représenté en figure 6.3.3,

R2Comp

Validation

Ecriture R1

Ecriture R2C

Bus A

Bus B

R1

Signal

Figure 6.3.3 : Liaison des éléments de la machine au signal de commande.

On distingue quatre composantes dans le signal de commande.

① Un niveau bas.② Un front de montée.③ Un niveau haut.④ Un front de descente.

Chacune de ces composantes aura une action spécifique sur chacun deséléments auquel elle est distribuée.

☞ Le niveau bas.Conformément à ce qui a été dit, ce niveau déconnecte physiquement la sortiedu registre R1 du bus A. De ce fait, la sortie du complémenteur présente àl’entrée du registre R2, par l’intermédiaire du bus B, une valeur quelconque(figure 6.3.4).

R2Validation

Ecriture R1

Ecriture R2C

Bus A

Bus BSignal

R1Comp

Figure 6.3.4 : État de la machine sur un état bas du signal.

☞ Le front de montée.Aucun élément de la structure n’est commandé par ce front. Toutefois, ce frontpermet au signal de passer d’un niveau bas à un niveau haut. (figure 6.3.5).

R2Validation

Ecriture R1

Ecriture R2

C

Bus A

Bus BSignal

R1Comp

Figure 6.3.5 : État de la machine à l’apparition d’un front montant.

Page 6 10 Jacques Guizol & Christian Aperghis

☞ Le niveau haut.C’est sur cette partie du signal que tout va se mettre en place. Dans un premiertemps, ce niveau valide la sortie du registre R1. L’information présente dans ceregistre transite sur le bus A et se présente à l’entrée du complémenteur. Lafonction de complémentation est activée car la commande de cet élément est elleaussi à un niveau haut. L’information qui se présente sur l’entrée du registre R2par l’intermédiaire du bus B représente donc le complément de l’informationprésente dans le registre R1 (figure 6.3.6).

R2Validation

Ecriture R1

Ecriture R2C

Bus A

Bus BSignal

R1Comp

Figure 6.3.6 : État de la machine sur un état haut du signal.

☞ Le front de descente.Cette partie du signal indique au registre R2 qu’il doit prendre en comptel’information qui lui est présentée sur son entrée afin de la mémoriser.Simultanément, ce front en ramenant le signal au niveau bas permet deramener la machine dans l’état initial. Les constantes de temps inhérentes aucircuit autorisent cette simultanéité sans préjudice pour l’information (figure6.3.7).

R2Validation

Ecriture R1

Ecriture R2C

Bus A

Bus BSignal

R1Comp

Figure 6.3.7 : État de la machine lorsque se présente le front de descente et pendant le Δt que dure la constante de temps.

6.3.2. Diagramme de temps.

Il est alors possible afin de bien mettre en évidence les opérations qui se dérou-lent de présenter l’opération sous forme de diagramme de temps (figure 6.3.9).

R2Comp

Validation

Ecriture R1

Ecriture R2C

Bus A

Bus B

R1

Signal

S2

S1

Figure 6.3.8 : Points d’apparition des signaux d’information.

Micro Programmation Page 6 11

Signal decommande

S1

S2

❹ ❺❻❼❶ ❷ ❸

EcritureRegistre R2

Figure 6.3.9 : Diagramme de temps du transfert.

❶ Le front montant du signal permet de présenter un niveau haut surtous les composants auquel il est relié.

❷ Après un temps de retard et de stabilisation dûs aux constantes detemps, l’information parvient à l’entrée du circuit de complémentation.

❸ La traversée de ce circuit nécessite un délai avant que le résultat ne seprésente en sortie. Le système est alors dans un état stable, seul unchangement d’état du signal de commande peut le faire changerd’état.

❹ Le front de descente du signal est le changement d’état attendu, ildéclenche l’écriture dans le registre R2.

❺ Après un délai dû à la technologie, l’information présente sur l’entréedu registre R2 est prise en compte et l’écriture est déclenchée.

❻ Le front de descente ayant ramené le signal à un niveau bas, lavalidation de l’information en sortie du registre R1 a été inactivée. Laprésence de constantes de temps a toutefois permis à l’information dese maintenir sur le bus jusqu’en ce point.

❼ De manière identique, le font de descente ayant ramené le signal à unniveau bas, la sortie du complémenteur est modifiée. La présence deconstantes de temps permet là aussi de maintenir l’information.

6.3.3. Convergence et Divergence.

Un transfert peut mettre en cause une où plusieurs sources et concerner une ouplusieurs destinations.

➥ Dans le cas où les sources sont multiples et la destination unique ondit que la structure est convergente (figure 6.3.10).

➥ Dans le cas où la source est unique et les destinations multiples ondit que la structure est divergente (figure 6.3.12).

➥ Dans le cas où les sources et les destinations sont multiples onparlera de structure universelle (figure 6.3.14).

Chacune de ces trois structures implique des conditions spécifiques de sélectionet de commande.

6.3.3.1. Structure convergente.Dans le cas d’une structure convergente, les sources étant multiples, il estimportant, dans un premier temps, de déterminer quelle sera celle qui fourniral’information.

Page 6 12 Jacques Guizol & Christian Aperghis

Mode opératoire :

❶ Sélectionner l'origine en ouvrant la porte correspondante.❷ Prise en compte de l'information en actionnant la commande

d'écriture.

Sélection

Ecriture}

Sel 1

Sel 2

Sel n

Ecriture

S2

Sn

S1

Dest.

Figure 6.3.10 : Représentation d’une structure convergente.

Remarque importante : Il est interdit de sélectionner simultanément plusieurs portes devalidation , c'est à dire d'avoir des origines multiples.Chemin des données :

Sélection

Ecriture}

Sel 1

Sel 2

Sel n

Ecriture

S2

Sn

S1

Dest.

Figure 6.3.11 : Chemin des données dans une structure convergente.

La finalité de l’opération nécessitant l’action simultanée d’une sélection et d’uneécriture, il est impératif que les données soient stables au moment de l’écriture.

6.3.3.2. Structure Divergente.Dans le cas d’une structure divergente, la source est unique. De ce fait, il n’estpas nécessaire de procéder à une sélection, l’information étant présente demanière permanente sur le bus. La seule opération consiste à déterminer quellesera la destination afin d’activer le signal d’écriture correspondant.

Micro Programmation Page 6 13

Mode opératoire :

❶ Déterminer une destination parmi toutes celles possibles.❷ Actionner le signal d’écriture correspondant.

Dest 2

Dest n

Dest 1Ecriture}

Ecriture 2

Ecriture 1

Ecriture n

Source

Figure 6.3.12 : Représentation d’une structure divergente.

Remarque: Il est possible, dans cette structure, de commander simultanément plusieurs écritures,c’est à dire, de prendre en compte l’information issue de la source dans plusieurs destinations enparallèle.Mode opératoire :

Prise en compte de l'information en actionnant la commande d'écriture.

Dest 2

Dest n

Dest 1Ecriture}

Ecriture 2

Ecriture 1

Ecriture n

Source Non destinataire

Figure 6.3.13 : Chemin des données dans une structure divergente.

6.3.3.3. Structure simultanément convergente et divergente.Cette structure, la plus générale, est une superposition des deux précédentes.Les sources étant multiples, il est important dans un premier temps dedéterminer quelle sera celle qui fournira l’information. Les destinations étantelles aussi multiples, il est impératif d’en sélectionner une en actionnant lacommande d’écriture correspondante.

Mode opératoire :

❶ Sélectionner l'origine en ouvrant la porte correspondante.❷ Déterminer une destination parmi celles possibles❸ Actionner le signal d’écriture correspondant.

Page 6 14 Jacques Guizol & Christian Aperghis

Ecriture 2

Ecriture 1

Ecriture p

Sélection

EcritureSel 1

Sel 2

Sel n

S1

S2

Sn Dest p

Dest 2

Dest 1

Figure 6.3.14 : Représentation d’une structure simultanément convergente et divergente.

☞ Les restrictions énoncées pour la structure convergente de même que les possibilités vues pour lastructure divergente sont applicables ici. En conséquence, il sera interdit de sélectionnersimultanément plusieurs barrières de validation, mais, à contrario, les destinations peuvent êtremultiples ; plusieurs commandes d’écriture pourront être actionnées parallèlement.

Ecriture 2

Ecriture 1

Ecriture p

Sélection

EcritureSel 1

Sel 2

Sel n

S1

S2

Sn Dest p

Dest 2

Dest 1

Non destinataire

Figure 6.3.15 : Chemin des données dans une structure universelle.

La finalité de l’opération nécessitant l’action simultanée d’une sélection et d’uneécriture, il est impératif que les données soient stables au moment de l’écriture.

6.3.4. Les voies de transfert dans une machine.

Il est possible de considérer une machine comme un assemblage de structuresélémentaires synchronisées s’échangeant des informations spécifiques, cetensemble de structures pouvant se décomposer en quatre grandes familles.

Définition : On appellera bus tout chemin sur lequel circule de l’information.Par extension, un bus sera une structure de liaison reliant entre eux les organesde stockage par l'intermédiaire d’opérateurs de traitement. Le nombre de bus,donc de liaisons, existant dans une structure de transfert de base, déterminerala complexité des opérations liées à cette structure.

Définition : On appellera espace de travail l’ensemble des organes de stockage (Registres,mémoire locale, mémoire etc. ....)

Micro Programmation Page 6 15

Espacede

Travail

Figure 6.3.16 : Représentation de l’espace de travail

Définition : On appellera opérateur de traitement. un système combinatoire effectuant uneopération arithmétique ou logique unaire ou binaire et fournissant un résultat.

Figure 6.3.17 : Représentation de l’opérateur.

6.3.4.1. Machine 3 bus.Dans ce type de machine (figure 6.3.18), lors d’une opération, les trois valeurspeuvent être spécifiées simultanément. Une opération complète se fait en uncycle.

Figure 6.3.18 : Représentation schématique d’une machine 3 Bus.

Il est indispensable de préciser :

L’emplacement où sera trouvé le premier opérande. L’emplacement où sera trouvé le second opérande. L’emplacement où sera rangé le résultat.

Busconvergent(sélection)

Opérateur

Busdivergent(écriture)

Busconvergent(sélection)

Figure 6.3.19 : Les transferts dans une machine 3 Bus.

Page 6 16 Jacques Guizol & Christian Aperghis

Au niveau des opérateurs de sélection, une machine 3 bus se présentera commeindiqué en figure 6.3.19.

Ainsi par exemple, pour effectuer l’opération : (A) + (B) - (D) + (E) → F, il seraindispensable de réaliser les transferts suivants :

❶ (A)+(B) → F❷ (F)-(D) → F❸ (F)+(C) → F

6.3.4.2. Machine 2 bus.Dans ce type de machine, lors d’une opération, deux des valeurs seront explici-tement spécifiées, l’une doit donc être implicite.

Il existe de ce fait deux variantes :

Dans la première, la valeur implicite sera l’un des opérandes (figure 6.3.20).

Figure 6.3.20 : Machine 2 bus Variante 1

Au niveau des opérateurs de sélection, une machine 2 bus se présentera commeindiqué en figure 6.3.21.

Figure 6.3.21 : Les transferts dans une machine 2 Bus première variante.

Il est indispensable de préciser :

L’emplacement où sera trouvé l’opérande explicite. L’emplacement où sera rangé le résultat.

Ainsi par exemple, pour effectuer l’opération : (A) + (B) - (D) + (E) → F, il seraindispensable de réaliser les transferts suivants :

Micro Programmation Page 6 17

❶ (A) → Tamp❷ (B)+(Tamp) → F❸ (F) → Tamp❹ (Tamp)-(D) → F❺ (F) → Tamp❻ (Tamp)+(E) → F

Dans la seconde variante, la valeur implicite sera le résultat (figure 6.3.22).

Bus 1

Bus 2

Espacede

TravailOpérateur

Tamp

Figure 6.3.22 : Machine 2 bus Variante 2

Il est indispensable de préciser :

L’emplacement où sera trouvé le premier opérande. L’emplacement où sera trouvé le second opérande.

Au niveau des opérateurs de sélection, une machine 2 bus se présentera commeindiqué en figure 6.3.23.

Figure 6.3.23 : Les transferts dans une machine 2 Bus seconde variante.

Ce type de structure permet une meilleuregestion des calculs en chaîne. Ainsi poureffectuer l’opération (A) + (B) - (D) + (E) → F, ilsera indispensable de réaliser les transfertssuivants :

❶ (A) → Tamp❷ (B)+(Tamp) → Tamp❸ (Tamp)-(D) → Tamp❹ (Tamp)+(E) → Tamp❺ Tamp → F

Page 6 18 Jacques Guizol & Christian Aperghis

6.3.4.3. Machine 1 bus.Dans ce type de machine, lors d’une opération, seule une des trois valeurs seraexplicitement spécifiée. Deux doivent donc être implicites.

Ainsi que dans le modèle précédent deux variantes sont envisageables.

Dans la première la valeur explicite sera le résultat, les deux opérandes serontdonc implicites. (figure 6.3.24).

Bus

Espacede

TravailOpérateur

Tamp1 Tamp2

Figure 6.3.24 : Machine 1 bus, première variante.

Seul doit être précisé lors d’un transfert l’emplacement ou doit être rangé lerésultat. Ainsi pour effectuer l’opération (A) + (B) - (D) + (E) -> F, il seraindispensable de réaliser les transferts suivants :

❶ (A) → Tamp1❷ (B) → Tamp2❸ (Tamp1)+(Tamp2) → Tamp1❹ (D) → Tamp2❺ (Tamp1)-(Tamp2) → Tamp1❻ (C) → Tamp2❼ (Tamp1)+(Tamp2) → Tamp1

Au niveau des opérateurs de sélection, la première forme de machine 1 bus seprésentera comme indiqué en figure 6.3.25.

Opérandesimplicites

Busuniversel Tamp1 Tamp2

Opérateur

Figure 6.3.25 : Les transferts dans une machine 1 Bus première variante.

Dans la seconde variante (figure 6.3.26), la valeur explicite sera l’un desopérateurs, l’un des opérandes et le résultat seront donc implicites.

Micro Programmation Page 6 19

Bus

Espacede

TravailOpérateur

Tamp1

Result

Figure 6.3.26 : Machine 1 bus, seconde variante.

Seul doit être précisé lors d’un transfert l’emplacement ou de l’un desopérandes. Ainsi pour effectuer l’opération (A) + (B) - (D) + (E) -> F, il seraindispensable de réaliser les transferts suivants :

❶ (A) → Tamp❷ (B)+(Tamp) → Result❸ (D) → Tamp❹ (Result)-(Tamp) → Result❺ (E) → Tamp❻ (Result)+(Tamp) → Result❼ (Result) → F

Au niveau des opérateurs de sélection, la première forme de machine 1 bus seprésentera comme indiqué en figure 6.3.27.

Figure 6.3.27 : Les transferts dans une machine 1 Bus seconde variante.

Page 6 20 Jacques Guizol & Christian Aperghis

6.3.5. Un exemple d’organisation a bus unique.

Considérons la machine un bus représentée en figure 6.3.28

RegistreInstruction

Mémoire

Décodeurd'adresse

Opérande etinstruction

Compteurordinal

AdresseMémoire

DonnéeMémoire

Z

Bus universel

Reg 0 Reg 1 Reg n YOpérat.

A

B

Figure 6.3.28 :Un exemple de machine à bus unique.

La structure de contrôle de cette machine est précisée en figure 6.3.29.

Figure 6.3.29 : Structure de contrôle du bus d’une machine à bus unique.

Soit par exemple à réaliser l’opération : (R0) + (R1) →R1. Cette opération, ainsique nous l’avons évoqué, se déroulera en trois cycles successifs.

Premier cycle

Dans ce cycle (figure 6.3.30), le contenu du registre R0 sera transféré dans leregistre Y, c’est à dire que lors de l’opération arithmétique qui suivra il seraconsidéré comme un opérateur implicite. Pour réaliser ce transfert, la portecontrôlant la sortie du registre R0 est fermée ; l’information peut donc sepropager le long du bus et, par l’intermédiaire de la porte donnant accès auregistre Y qui a elle aussi été fermée, se présenter sur l’entrée du registre danslequel elle sera prise en compte.

Micro Programmation Page 6 21

Décodeurd'adresse

Opérande etinstruction

YOpérat.

A

B

Bus universel

Reg 1 Reg n Z

X

RegistreInstruction

Mémoire

Compteurordinal

Reg 0

AdresseMémoire

DonnéeMémoire

Figure 6.3.30 : Premier cycle (R0) → Y.

Deuxième cycle (figure 6.3.31)

Décodeurd'adresse

Opérande etinstruction

Y

Bus universel

Reg 1 Reg n Z

X

RegistreInstruction

Mémoire

Compteurordinal

Reg 0Opérat.

A

B

AdresseMémoire

DonnéeMémoire

Figure 6.3.31 : Deuxième cycle (R1) + (Y) → Z.

Ce cycle va réaliser l’opération arithmétique entre le contenu du registre R1(explicite) et le registre Y (implicite) le résultat étant automatiquement stockédans le registre Z (implicite). Pour réaliser cette opération, la porte contrôlant lasortie du registre R1 est fermée, l’information peut donc se propager le long dubus et se présenter sur l’entrée B de l’opérateur. Parallèlement, la valeur Y seprésentant sur l’entrée A, l’opération voulue (+) peut être commandée. Lerésultat se présente sur l’entrée du registre Z car la porte contrôlant l’accès à ceregistre a été commandée. En fin de cycle un signal d’écriture concrétisera laprise en compte de l’information.

Page 6 22 Jacques Guizol & Christian Aperghis

Troisième cycle (figure 6.3.32)

Décodeurd'adresse

Opérande etinstruction

Y

Bus universel

Reg 1 Reg n

X

RegistreInstruction

Mémoire

Compteurordinal

Reg 0Opérat.

A

B

Z

AdresseMémoire

DonnéeMémoire

Figure 6.3.32 : Troisième cycle (Z) → R1.

Ce cycle va concrétiser l’opération, c’est à dire ranger le résultat stocké dans leregistre Z (implicite) dans sa destination finale. Pour réaliser cette opération, laporte contrôlant la sortie du registre Z est fermée, l’information peut donc sepropager le long du bus et se présenter par l’intermédiaire de la porte decontrôle sur l’entrée du registre R1. Le signal d’écriture qui se présentera en finde cycle permettra la prise en compte de cette information dans le registre R2.

6.3.6. Signaux et commandes.Principes de base :

☞ Une machine comporte des voies de communication appellées “bus“.☞ Les informations circulent sur les bus.☞ Les informations sont contrôlées par des barrières commandées par

des signaux de sélection.☞ Une commande appropriée déterminera le moment ou un élément

séquentiel devra changer d'état.☞ Cette commande peut agir sur un état, ou plus généralement, sur une

transition (un front).☞ Si un élément nécessite l'action simultanée d'une commande de

sélection et d'une commande de transition, alors la sélection doit êtreparfaitement stable pendant la transition.

6.4. Notion de micro programmation.

La micro programmation, c'est l’enchaînement de transferts élémentairesd'information. Un transfert élémentaire nécessite trois actions :

❶ Lecture du ou des opérandes en sélectionnant leur chemin parouverture des barrières appropriées.

❷ Détermination d'un chemin à l'intérieur de la boite à opérations, c'està dire choix d'une opération parmi toutes celles disponibles.

❸ Écriture du résultat dans la partie appropriée de l'espace de travail.

Micro Programmation Page 6 23

Les deux premières opérations sont réalisées par des commandes de sélection.La troisième opération est une transition. Nous allons éclairer ces notions eneffectuant des séries de transferts sur des machines élémentaires que nousdécrirons au fur et à mesure.

La première est présentée en figure 6.4.1.

Figure 6.4.1 : Carte machine.

Les commandes disponibles sur cette machine sont les suivantes :

Écriture dans les registres (Transitions).E-R0 : Écriture dans le registre 0E-R1 : Écriture dans le registre 1E-R2 : Écriture dans le registre 2

Sélection d'information (Etats).Sel-R0 : Validation de la liaison de R0 sur le bus B.Sel-R1 : Validation de la liaison de R1 sur le bus A.Sel-R2 : Validation de la liaison de R2 sur le bus A.Sel-K : Validation de la liaison clavier sur le bus B.

Commandes portant sur la boite à opération (Etats).

A → C : Transfert vers le bus C de l'information présente sur A.B → C : Transfert vers le bus C de l'information présente sur B.A + B : Transfert vers le bus C de l'information obtenue en additionnant

l'information présente sur A et l'information présente sur B.A - B : Transfert vers le bus C de l'information obtenue en retranchant

l'information présente sur B à l'information présente sur A.

Définition de l'opération à effectuer.

On désire déterminer la suite des opérations (transferts) à effectuer pour réaliserle traitement suivant :

Lire une première valeur sur le clavier et stocker cette informationdans un registre.

Lire une seconde valeur sur le clavier et stocker cette informationdans un registre.

Effectuer la somme des deux informations ainsi obtenues et stockercette nouvelle information dans un troisième registre.

Il est évident que le système a été simplifié à l’extrême, ainsi nous considérons leclavier comme un périphérique qui a toujours une information valide à fournir,ce qui nous permet de lire la donnée en question sans se poser de problèmes.

La structure de la machine (figure 6.4.1) impose quelques contraintes, ainsipour effectuer une opération arithmétique entre deux valeurs, l’une doit

Page 6 24 Jacques Guizol & Christian Aperghis

impérativement être rangée dans le registre R0 alors que l’autre peutindifféremment être rangée dans R1 ou R2..

Prenons les conventions suivantes :

☞ Première valeur → R0☞ Seconde valeur → R1☞ Résultat → R2

❦ Le premier transfert à réaliser consiste à transférer l’information de l’organed’entrée vers sa destination, le registre R0 (Figure 6.4.2).

Il s’écrit en langage transfert :  (Clavier) → R0 

Figure 6.4.2 : Chemin de données pour le premier transfert.

Pour réaliser ce transfert, il est nécessaire de positionner les sélectionssuivantes :

Sel-K afin de valider l’information qui sort du clavier et la présenterpar l’intermédiaire du bus B sur une entrée de la boite à opérations.

B → C afin que l’information qui se présente sur l’entrée B de la boiteà opérations la traverse sans modifications et transite via le bus Cvers l’entrée des registres de la machine.Cet état de chose sera maintenu un certain temps afin quel’information ait le temps de se stabiliser.

E-R0 Lorsque l’information est stabilisée, il est nécessaire pourconcrétiser le transfert de l’écrire dans le registre auquel elle estdestinée, soit dans le cas qui nous intéresse R0.

Le transfert que nous venons de réaliser peut s’écrire :

Sel-K • B → C • E-R0

❦ Le second transfert à réaliser consiste à transférer l’information de l’organed’entrée vers sa destination, le registre R1 (figure 6.4.3).

Il s’écrit en langage transfert :  (Clavier) → R1 

En fait, c’est une copie quasi conforme du premier, seule change la destinationfinale de l’information.

Micro Programmation Page 6 25

Figure 6.4.3 : Chemin de données pour le second transfert.

Pour réaliser ce transfert, il est nécessaire de positionner les sélectionssuivantes :

Sel-K : Valide l’information qui sort du clavier et la présente parl’intermédiaire du bus B sur une entrée de la boite à opérations.

B → C : Permet à l’information qui se présente sur l’entrée B de laboite à opérations de la traverser sans modifications et de seprésenter via le bus C sur l’entrée des registres de la machine.

E-R1 : Lorsque l’information est stabilisée, l’écriture dans le registreauquel elle est destinée, soit dans le cas qui nous intéresse R1permet la concrétisation du transfert.

Le transfert que nous venons de réaliser peut s’écrire :

Sel-K • B → C • E-R1

❦ Le troisième et dernier transfert consiste à additionner le contenu du registre R0au contenu du registre R1 et de transférer la valeur ainsi obtenue dans leregistre R2 (figure 6.4.4).

Il s’écrit en langage transfert :  (R0) + (R1) → R2 

Figure 6.4.4 : Chemin de données pour le troisième transfert.

Pour réaliser ce transfert, il est nécessaire de positionner les sélectionssuivantes :

Sel-R0 : Valide l’information qui sort du registre R0 et la présentepar l’intermédiaire du bus B sur une entrée de la boite à opérations.

Sel-R1 : Valide l’information qui sort du registre R1 et la présentepar l’intermédiaire du bus B sur l’autre entrée de la boite àopérations.

Page 6 26 Jacques Guizol & Christian Aperghis

A + B : Permet d’ajouter l’information qui se présente sur l’entrée Bde la boite à opérations à celle qui se présente sur l’entrée A lerésultat sera distribué via le bus C sur l’entrée des registres de lamachine.

E-R2 : Lorsque l’information est stabilisée, l’écriture dans le registreauquel elle est destinée, soit dans le cas qui nous intéresse R2concrétise le transfert.

Le transfert que nous venons de réaliser peut s’écrire :

Sel-R0 • Sel-R1 • A + B • E-R2

❦ En conclusion, l'opération a été décomposée en trois transferts élémentaires :

Sel-K • B -> C • E-R0

Sel-K • B -> C • E-R1

Sel-R0 • Sel-R1 • A + B • E-R2

… dont la durée de chacun est appelée 'Cycle de base'.

Définition : ☛ Le cycle de base est la durée de l'opération la plus élémentaire que l'on peut effectuer sur une machine donnée.

☛ La durée de ce cycle de base est déterminée par l'horloge de la machine.☛ Cette durée doit être suffisante pour permettre à l'information de parcourir la

totalité du chemin qui lui est imparti.

6.4.1. Les signaux

1 Période = 1 Cycle 1 Période = 1 Cycle

Figure 6.4.5 : Horloge et cycle

Ainsi que nous l'avons dit, deux types de signaux cohabitent lors d’un transfert :

☞ Une sélection (un état) qui doit rester stable pendant un tempssuffisant.

☞ Une transition représentative de la fin du cycle permet la prise encompte des informations qui auront été élaborées pendant la phase desélection.

La caractéristique principale des machines micro programmées est que tous lesdéplacements nécessitent le même temps d'exécution (1 cycle) quelle que soitl'opération mise en jeu.

Micro Programmation Page 6 27

Déf in i t ions Chaque opération évoluée (instruction d’assemblage) que la machine est supposéeexécuter se décompose en un nombre fini et ordonné de micro-instructions.

Nous dirons que chaque micro-opération de l'ensemble fini des séquences quicorrespond à l'exécution d'un jeu d'opérations de l'ordinateur définit un état de lamachine micro-programmée.

La machine micro-programmée reste dans un état donné pendant toute la durée d'uncycle d'horloge et change d'état à la fin du cycle.

6.4.2. L'ABC de la micro-programmation.

L'implantation matérielle ne se préoccupe pas de la manière dont sont regrou-pées les lignes de contrôle dans une micro-instruction, toutefois, afin de simpli-fier la lecture, les lignes de contrôle réalisant des fonctions voisines serontdisposées côte à côte. Les groupements de lignes de contrôle seront appeléschamps.

6.4.2.1. Opérations combinées.Supposons qu’avec la machine représentée en figure 6.4.6, nous désirionseffectuer les transferts suivants :

  (R3) + (R1) ,(R2) → R1,→ R0

Figure 6.4.6 : Carte machine1

Sur la structure proposée, ce transfert nécessite deux cycles successifs. Premiercycle (figure 6.4.7), transfert de l’information obtenue en additionnant lecontenu de R3 et le contenu de R1, vers le registre R1. Soit : (R3) + (R1) → R1

A B

C

E-R3

Sel-R2

E-R2R2

B. O. P.

A→C

B→C

A - B

A + B

Sel-R3

E-R1R1

Sel-R0

E-R0R0R3

Sel-R1

Figure 6.4.7 : Chemin de données pour le premier transfert.

Sel-R1 • Sel-R3 • A + B • E-R1

Page 6 28 Jacques Guizol & Christian Aperghis

Second cycle (fig. 6.4.8), transfert du contenu du registre R2 dans le registre R0.

Soit : (R2) → R0

Figure 6.4.8 :Chemin de données pour le second transfert.

Sel-R2 • A -> C • E-R0

Considérons maintenant la machine de la figure 6.4.9.

Figure 6.4.9 : Carte machine2

Cette machine se distingue de la précédente représentée en figure 48 par l’ajoutd'un bus Z. Ce bus est caractéristique d’une machine 1 bus, en effet, tous lesregistres de la machine peuvent être source et destination de cette structure.

En fait, la machine ainsi obtenue peut être considérée comme la superpositionde deux machines de base :

une machine 3 bus (A,B,C)une machine 1 bus (Z)

Cet état de choses implique un certain nombre de contraintes :☛ Chaque registre a deux sélections de sortie au lieu d'une.☛ En entrée des registres, alors qu’il n'y avait pas de sélection, on a

maintenant une structure convergente qui implique un choix.Par contre on fait apparaître une nouvelle possibilité :

☛ Si aucune liaison permanente n'existe ou n’est validée entre les bus ily a possibilité de procéder à des transferts simultanés.

Ainsi, l’opération : (R3) + (R1) → R1 ; (R2) → R0 qui comporte deux transfertsindépendants peut se réaliser sur la nouvelle structure en un seul cycle (figure

Micro Programmation Page 6 29

6.4.10), en utilisant l’une des machines (la machine 1 bus) pour effectuer letransfert (R2) → R0, et l’autre machine (la machine 3 bus) pour réaliser letransfert (R3) + (R1) → R1.

Figure 6.4.10 : Chemins de données pour deux transferts simultanés

R3-A : Valide l’information qui sort du registre R3 et la présente parl’intermédiaire du bus A sur une des entrées de la boite à opérations.

R2-Z : Valide l’information qui sort du registre R2 et la présente parl’intermédiaire du bus Z sur les sélections d’entrée des registres de lamachine.

R1-B : Valide l’information qui sort du registre R1 et la présente parl’intermédiaire du bus B sur l’autre entrée de la boite à opérations.

A + B : Permet d’effectuer la somme des informations présentes surles entrées et de présenter le résultat par l’intermédiaire du bus Csur les sélections d’entrée des registres de la machine.

C-R1 : Permet de présenter sur l’entrée du registre R1 l’informationprésente sur le bus C.

Z-R3 : Permet de présenter sur l’entrée du registre R3 l’informationprésente sur le bus Z.

E-R1 : Concrétise le transfert (R3) + (R1) → R1 en écrivant lerésultat dans le registre approprié.

E-R0 : Concrétise le transfert (R2) → R0 en écrivant le résultat dansle registre approprié.

Ce qui nous donne en fin de compte le transfert suivant :

R3-A • R2-Z • R1-B • A + B • C-R1 • Z-R3 • E-R1 • E-R3

6.4.2.2. Écriture mémoire.Pour travailler sur une mémoire d’une machine, il est impératif avant deprocéder à l’accès proprement dit, de disposer de l’adresse de l’élémentconcerné.

Cette information peut être stockée dans un registre spécifique (le registreadresse mémoire). Dans ces conditions, toute manipulation d’information de ouvers la mémoire doit impérativement être précédé d’un cycle de chargement duregistre d’adresse.

Ainsi, la machine de la figure 6.4.11 a été construite selon ce principe.

Page 6 30 Jacques Guizol & Christian Aperghis

Figure 6.4.11 : Lien avec la mémoire

Écriture d’une information en mémoire.

Soit à réaliser le transfert (R2) → Mem(R1), c’est à dire que l’on désire transférerà l’emplacement mémoire dont l’adresse est spécifiée par l’information contenuedans le registre R1, la valeur contenue dans le registre R2.

Ce transfert nécessitera deux cycles :

Premier cycle (figure 6.4.12) transfert de l’adresse mémoire dans le registreapproprié (R1) → RAdr

Figure 6.4.12 : Chemin de donnée pour le transfert de l’adresse.

Sel-R1 • A → C • E-RAdr

Second cycle (figure 6.4.13) transfert de la donnée à l’emplacement mémoiredont l’adresse est stockée dans le registre d’adresse.

A B

C

E-R1 E-R2R.Adr

Sel-Mem

B. O. P. B→C

A + B

A - B

Mémoire

E-R.Adr

A→C

Sel-R1

R1 R2

Sel-R2

E-Mem

Figure 6.4.13 : Chemin de donnée en écriture mémoire.

Micro Programmation Page 6 31

Sel-R2 • A → C • E-Mem

Lecture d’une information contenue en mémoire.

Soit à réaliser le transfert (Mem(R1)) → R2 (figure 6.4.14), c’est à dire que l’ondésire lire l’emplacement mémoire dont l’adresse est spécifiée par l’informationcontenue dans le registre R1 et ranger la valeur ainsi obtenue dans le registreR2. Ce transfert nécessitera deux cycles :

Premier cycle : transfert de l’adresse mémoire dans le registre approprié, soit,(R1) → Radr. Ce cycle est tout à fait similaire à celui qui précédait l’écriture(figure 6.4.12).

Sel-R1 • A → C • E-RAdr

Second cycle (figure 6.4.14) transfert du contenu de l’emplacement mémoiredont l’adresse est stockée dans le registre d’’adresse vers sa destination finaleR2.

Figure 6.4.14 : Chemin de donnée en lecture mémoire.

Sel-Mem • B → C • E-R2

6.4.2.3. Les recouvrements.Pour réaliser ce type de transfert en un seul cycle, il est indispensable dedisposer et donc de traiter simultanément deux informations différentes :

• L’adresse de l’emplacement mémoire considéré.• l’information en provenance ou à destination de la mémoire.

Donc…

☞ afin que deux informations différentes transitent simultanément aucours du même cycle il est nécessaire de disposer de 2 bus différents.

☞ afin que la donnée puisse se présenter et être traitée, il est indispen-sable que l’information relative à l’adresse l’ait précédée.

La solution consiste à présenter, au cours du même cycle, l'adresse et ladonnée…

☛ l'adresse au début du cycle et pendant la majeure partie du cycle ;☛ la donnée au cours de la seconde partie du cycle et seulement à ce

moment là.

Pour parvenir à ce résultat, le cycle de la machine sera décomposée en deuxdemi cycles Φ1 et Φ2 (figure 6.4.15).

☞ Le début de la phase Φ1 initialisera le traitement des adresses.☞ Le début de la phase Φ2 initialisera le traitement des données.

Page 6 32 Jacques Guizol & Christian Aperghis

Figure 6.4.15 : Décomposition d'un cycle en deux demi cycles (horloge biphasée).

A titre d’exemple, la figure 6.4.16 présente la structure de l’horloge du I80386.

Figure 6.4.16 : Horloge du I80386.

Une machine a horloge biphasée (figure 6.4.17) se devra donc de comporter unbus spécifiquement destiné à faire transiter les adresses, qui sera validé par laphase Φ1 et des bus généraux destinés à transporter les données, qui serontvalidés par la phase Φ2. En aucun cas, ces deux types de bus ne pourrontcommuniquer au cours d’un transfert.

Figure 6.4.17 : Machine à horloge biphasée.

Micro Programmation Page 6 33

Écriture Mémoire

Soit à réaliser le transfert déjà évoqué (R2) → Mem(R1) le chemin de données dece transfert est indique en figure 6.4.18.

Figure 6.4.18 : Chemin des données lors d’une écriture mémoire.

Ad-R1 Valide l’information qui sort du registre R1 et la présente parl’intermédiaire du bus d’adresse sur l’entrée appropriée de lamémoire. Cette validation commence au début du cycle d’horloge.

Sel-R2 Valide l’information qui sort du registre R2 et la présente parl’intermédiaire du bus A sur l’entrée de la boite à opérations. Cettevalidation ne sera effective que pendant la phase Φ2 du cycle.

A → C Permet à l’information qui se présente sur l’entrée A de la boiteà opérations de la traverser sans modifications et de se présenter viale bus C sur l’entrée des registres de la mémoire. Cette validation nesera effective que pendant la phase Φ2 du cycle.

E-Mem Ecrit à l’emplacement mémoire spécifié par l’intermédiaire dubus adresse l’information présente sur le bus C.

Adr-R1 • Sel-R2 • A → C • E-Mem

Lecture Mémoire

Soit à réaliser le transfert déjà évoqué (Mem(R1)) → R2. Le chemin de donnéesde ce transfert est indique en figure 6.4.19.

Figure 6.4.19 ; Chemin des données lors d’une lecture mémoire.

Page 6 34 Jacques Guizol & Christian Aperghis

Ad-R1 : Valide l’information qui sort du registre R1 et la présente parl’intermédiaire du bus d’adresse sur l’entrée appropriée de lamémoire. Cette validation commence au début du cycle d’horloge.

Sel-Mem : Valide l’information qui sort de l’emplacement mémoirespécifié par l’intermédiaire du bus adresse et la présente parl’intermédiaire du bus A sur l’entrée de la boite à opérations. Cettevalidation ne sera effective que pendant la phase Φ2 du cycle.

A → C : Permet à l’information qui se présente sur l’entrée A de laboite à opérations de la traverser sans modifications et de seprésenter via le bus C sur l’entrée des registres de la mémoire. Cettevalidation ne sera effective que pendant la phase Φ2 du cycle.

E-R2 : Concrétise le transfert en écrivant l’information dans leregistre auquel elle est destinée.

Adr-R1 • Sel-Mem • B → C • E-R2

6.5. Relations entre programme et micro-programme.

Le micro-programme

❐ Kwx êgvmx tev pi gsrgitxiyvhi pe qeglmri zmvxyippi

❐ Kwx wmxyê ir qêqsmvi hiqmgvs7tvskveqqexmsr

❐ Isrwmhëvi pi tvskveqqihi pƒywekiv gsqqi yrperkeki mrxivtvêxê

Le programme

❐ Kwx êgvmx tev yrywekiv8

❐ Kwx wmxyê irqêqsmvi zmzi

❐ Sêperki mrwxvyg7xmsrw ix hsrrêiw

❐ Kwx ir pmfvi eggëw.

Figure 6.5.1 : Principales différences programme/micro-programme

☞ Il est impossible au programme usager d'accéder de quelque façon que ce soit à la mémoire demicro-programmation.

6.5.1. Les diverses structures constituant une machine.

Les relations entre les divers constituants d’une machine peuvent être résumésdans le schéma général de la figure 6.5.2.

Micro Programmation Page 6 35

Figure 6.5.2 : Les relations entre les éléments d’une machine.

Définitions : L’enchaînement représente le mécanisme qui va générer une adresse représentantl’adresse de la micro instruction qui devra être exécutée au cycle qui suit. Cette adressepourra être implicite, explicite, calculée ou conditionnelle.La mémoire micro instruction est l’endroit ou est stocké le micro programme.Cette mémoire est contrôlée par un registre adresse micro programme ou microcompteur ordinal qui contient en permanence l’adresse de la micro instruction en coursd’exécution.La machine réelle représente comme nous l’avons déjà spécifié l’ensemble deséléments physiques constitutifs de la machine.

Ces divers éléments sont reliés par des bus spécifiques que nous détailleronsplus loin. Ce sont :

BA-µI Le bus adresse micro-instruction.

TR1-µI Le bus permettant à une micro instruction de transmettreune information relative à un déplacement.

TR2-µI Le bus transférant vers la machine réelle l’ensemble dessignaux (sélection ou écriture) qui lui sont destinés.

TR-Cond Transfert d'une condition d’enchaînement de la machineréelle vers l’enchaînement afin de procéder à des branchementsconditionnels..

TR-Adr Le bus permettant le transfert d'une adresse calculée versl’enchaînement d’une adresse calculée par la machine réelle. Parexemple pour effectuer un décodage.

Sortie Bus de données émises vers l'extérieur.

Entrée Bus de données reçues de l’extérieur.

Les mécanismes mis en jeu sur ces diverses structures correspondent à desmodèles simplifiés. Ils seront explicités comme tel par la suite. Bien évidement,sur un système complexe divers mécanismes cohabiteront pour donner toute sapuissance à l’ensemble.

6.5.1.1. Le bus adresse micro-instruction.C’est le bus (BAµI) qui va transférer vers le micro compteur ordinal l’adresse dela micro instruction qui devra être exécutée au cycle suivant.(figure 6.5.3).

Au cours du cycle, par une série d’opérations que nous détaillerons ultérieure-ment, une adresse est générée par le mécanisme d’enchaînement. Cette adresseest présentée à l’entrée du micro compteur ordinal (registre adresse microinstruction). Elle sera prise en compte par le registre en fin de cycle, le frontdescendant de Φ2 provoquant l’écriture. Par là même, une nouvelle adresse estprésentée à la mémoire de micro programmation, donc de nouvelles commandestransitent en sortie de la mémoire.

Page 6 36 Jacques Guizol & Christian Aperghis

Figure 6.5.3 : Fonctionnement du bus adresse micro instruction

Ce mécanisme se reproduisant à chaque cycle l’enchaînement des microinstructions est ainsi assuré.

6.5.1.2. Le bus de commandes.C’est sur ce bus (Tr2µI) que va transiter la totalité des commandes à destinationde la machine réelle (figure 6.5.4).

La mémoire microprogrammation, adressée par le micro compteur ordinal,présente en sortie d’informations les diverses commandes (sélection ou écriture)à destination des composants de la machine réelle. Ainsi que nous le verronsultérieurement certaines de ces commandes peuvent être asservies à une phased’horloge afin de n’être actives que pendant la phase considérée.

Figure 6.5.4 : Fonctionnement du bus de commandes

Au changement de cycle, c’est à dire à chaque nouvelle écriture du microcompteur ordinal, une nouvelle micro instruction se présente et donc denouvelles commandes.

6.5.1.3. Séquencement explicite.Le bus (TR1µI) utilisé pour transférer vers le mécanisme d’enchaînement unepartie de la micro instruction permettra donc le chaînage (figure 6.5.5).

Les micro instructions peuvent être chaînées, ainsi la micro instruction cou-rante contient l’adresse de la micro instruction suivante. Dans ces conditions, lapartie de la mémoire de micro programmation qui correspond à la valeur enquestion sera dirigée vers le séquenceur qui la retransmettra à son tour vers leregistre adresse micro instruction.

Micro Programmation Page 6 37

Enchaînement

B A µIRegistre adresseMicro instruction

Φ2

Machine réelleΦ1-Φ2

TR2 µI

MémoireMicro instruction

TR1 µI

Figure 6.5.5 : Bus d’enchaînement des micro-instructions

Cette adresse présentée au cours du cycle courant sera prise en compte en finde Φ2 rendant effectif le branchement.

6.5.1.4. Transfert d'une condition d’enchaînement.C’est par ce bus (TrCond) que transiteront les bits de statut générés par lesopérations arithmétiques effectuées par l’opérateur de la machine réelle.

Figure 6.5.6 : Bus de transfert de condition d’enchaînement (sélection d’adresse)

Ce mécanisme permet, entre autres, lorsque deux adresses ont été générées d’ensélectionner une (figure 6.5.6).

Il peut aussi entrer comme une constante dans la génération d’une adresse(figure 6.5.7). Il est alors possible de réaliser facilement des aiguillages à ndestinations.

Page 6 38 Jacques Guizol & Christian Aperghis

Figure 6.5.7 : Bus de transfert de condition d’enchaînement (calcul d’adresse)

6.5.1.5. Transfert d'une adresse calculée.Ce bus (Tr Adr) permettra de transmettre au mécanisme d’enchaînement uneadresse fabriquée de toute pièces par la machine réelle (figure 6.5.8).

Figure 6.5.8 : Bus de transfert d’adresses

C’est entre autre, comme nous le verrons ultérieurement, ce mécanisme qui serautilisé pour procéder au décodage d’un code opération.

6.5.1.6. Entrées / Sorties.Ce sont les bus standards (figure 6.5.9) permettant la liaison entre le mondeextérieur et la machine réelle.

Micro Programmation Page 6 39

Figure 6.5.9 : Bus des entrées-sorties.

6.5.2. Le calcul d'adresse.

Comme nous l’avons vu précédemment, c’est le mécanisme qui va permettre degénérer une adresse à partir d’éléments pris à divers emplacements de lamachine (figure 6.5.10) transportés au système d’enchaînement par les bus :

TR1-mI (Transfert de tout ou partie de la micro-instruction).

TR-Cond (Transfert d'une condition d’enchaînement).

TR-Adr (Transfert d'une adresse calculée).

et dont le résultat sera acheminé vers le système d’adressage de la mémoiremicro instruction par le bus :

BA-mI (Bus adresse micro-instruction).

Figure 6.5.10 : Bus susceptibles d’être utilisés dans la réalisation d’un enchaînement

Le but de ce type de calcul est de générer à partir d’un noyau des valeursnumériques représentatives d ’adresses. Nous allons voir quelques exemples decalcul d’adresse.

Page 6 40 Jacques Guizol & Christian Aperghis

6.5.2.1. Addition modulo n.

Figure 6.5.11 :

6.5.2.2. Concaténation.

Figure 6.5.12 :

6.5.2.3. Troncature droite

Figure 6.5.13 : Adressage par troncature droite

La troncature droite (Figure 6.5.13) est en fait une opération de divisionentière, elle permet de faire pointer n valeurs consécutives vers un mêmeemplacement.

Micro Programmation Page 6 41

6.5.2.4. Troncature gauche

Elément0n-1

0n-i-1Mémoire

n-1

n-i-1n-i

Adresse0…0

Figure 6.5.14 : Adressage par troncature gauche

Par contre, la troncature gauche(figure 6.5.14) correspond à une opération demodulo, elle permet à n valeurs distantes de (2^k)-1 de pointer vers le mêmeemplacement.

6.5.2.5. Inversions et barrières.Ce sont des opérateurs qui permettront de manipuler certaines parties del’information.

S = 0 si HB

S = E si HB S = 0+Eb si HB

S = Eh+0 si HB

Eh Eb

SbSh S

E

BHX

Eh EbE

SbSh S

S = Eb+Eh si X

S = Eh+Eb si X

Figure 6.5.15 : Deux types de barrières

6.5.2.6. Applications.Soit a procéder au décodage des codes opérations représentés en figure 6.5.16.

Figure 6.5.16 : Un exemple de codes opérations

Page 6 42 Jacques Guizol & Christian Aperghis

Chaque code opération est constitué de deux parties, la première représentativede l’opération elle même, la seconde précisant le type d’adressage.

Il existe plusieurs solutions pour effectuer le décodage de ce jeu d’instructions.D’un point de vue général, le problème consiste à décoder la foncion à réaliser, àeffectuer un adressage et à associer les deux.

Figure 6.5.17 : Schéma général du mécanisme d’accès au séquencement.

Une opération élémentaire pour conduire ce décodage consiste à récupérer lecode opération concerné et à y concaténer une valeur constante pour constituerune adresse selon le modèle de la figure 6.5.18.

Figure 6.5.18 : Passage d’une instruction machine à son micro programme (séquencement)

Dans ces conditions, à chaque code opération correspond une adresse à laquellesera trouvé la séquence de micro-code permettant l’émulation de l’opérationconcernée.

6.5.2.6. Opérations combinées.La technique précédente n’utilise pas les possibilités offertes par la structure decodage qui a été choisie pour la construction des opérations, en effet, ledécoupage du code opération en ‘Opération’-’type d’adressage’ permet undécodage séparé de chaque entité.

Ainsi par exemple, il est possible dans un premier temps de décoder le typed’adressage afin de déterminer l’adresse réelle de l’opérande.

Micro Programmation Page 6 43

Par exemple ce décodage peut s’effectuer en inversant les parties hautes etbasses puis en masquant la partie base de la valeur ainsi obtenue selon leschéma da la figure 6.5.19.

Ainsi, les trois types d’adressage généreront trois adresses auxquelles ontrouvera les micro instructions constituant la méthode d’accès à l’adresse réellede l’opérande contenu dans l’instruction machine.

Figure 6.5.19 : Accès aux micro instructions opérant l’adressage précisé dans l’instruction machine

Dans le même ordre d’idée, une série d’opérations (figure 6.5.20) comportant uncroisement des parties hautes et basses suivi d’un masque et d’uneconcaténation permet de générer les adresses correspondant aux opérationsconcernées.

Figure 6.5.20 : Opérations combinées pour l’accès au micro code des opérations.

6.5.3. Enchaînement des micro instructions.

Les micro instructions doivent s’enchaîner les unes à la suite des autres pourque l’ensemble du micro programme puisse se dérouler.

Il existe plusieurs principes de base qui peuvent être combinés entre eux pour

Page 6 44 Jacques Guizol & Christian Aperghis

que cet enchaînement soit effectif.

6.5.3.1. Enchaînement impliciteLa notion d’enchaînement implicite des micro instructions implique un calculsimple (incrémentation) pour passer systématiquement d’une adresse à lasuivante.

Ceci est rendu possible par un simple circuit combinatoire (un incrémenteur)qui permettra de déterminer l’adresse suivante selon le schéma de principe de lafigure 6.5.21.

Figure 6.5.21 : Enchaînement implicite des micro instructions.

L’opération effectuée est dans ces conditions ( Reg µI) + 1 → Reg µI

6.5.3.2. Enchaînement expliciteDans ces conditions, l’adresse de la micro instruction suivante est contenuedans le corps de la micro instruction présente. Ce type d’enchaînementcorrespond à la notion de rupture de séquence de la programmationconventionnelle.

Il existe deux façons différentes de spécifier l’adresse :

☞ Absolue.

☞ Relative.

Adresse absolue.

Dans ces conditions l’adresse précisée est celle de la micro instruction àexécuter, il n’est nécessaire de procéder à aucun calcul. Le champ concernée estsimplement redirigé vers le micro compteur ordinal selon le schéma de la figure6.5.22.

Figure 6.5.22 : Chaînage absolu des micro instructions.

L’opération effectuée est : ( Enchaînement) → Reg µI

Micro Programmation Page 6 45

Adresse relative.

Si l’adresse est donnée en relatif, un calcul d’adresse doit être effectué pourgénérer l’adresse réelle à partir de l’adresse courante (contenue dans le microcompteur ordinal) et le déplacement (positif ou négatif) contenu dans le champenchaînement de la micro instruction.

Un exemple d’implantation de cette technique est donné en figure 6.5.23.

Figure 6.5.23 : Chaînage relatif des micro instructions.

L’opération effectuée est : (Reg µI) + ( Déplacement) → Reg µI

6.5.3.3. Enchaînement explicite conditionnelIl est de plus possible d’ajouter au calcul d’adressage la notion de condition.

Par exemple, la figure 6.5.24 propose un principe de séquenceur à chaînagerelatif comportant la notion de condition.

Figure 6.5.24 : Enchaînement conditionnel

Un multiplexeur permet de sélectionner une condition parmi celles positionnéespar les opérations de la machine. Cette condition, une fois sélectionnée, estprésentée sur l’entrée report de l’opérateur effectuant le calcul de l’adresse.

Dans ces conditions, le système peut générer deux adresses en fonction de l’étatde l’indicateur sélectionné :

Page 6 46 Jacques Guizol & Christian Aperghis

Si l’indicateur est positionné à 0, la condition est considérée commefausse, alors le calcul effectué est (Reg µI) + ( Déplacement) → Reg µI

Si l’indicateur est positionné à 1, la condition est considérée commevraie, alors le calcul effectué est (Reg µI) + ( Déplacement) + 1 → Reg µI.

6.5.4. Un exemple de séquenceur.

Si nous regroupons les divers principes présentés ci-dessus, nous pouvonsimaginer un séquenceur offrant un certain nombre de possibilités de contrôle del’adresse.

Par exemple, considérons la figure 6.5.25.

Figure 6.5.25 : Un exemple de séquenceur

Le séquencement comporte trois champs que nous allons détailler.

☞ Le type d’enchaînement.

Ce champ va spécifier le mode de calcul de l’adresse.

0 : (Adresse) → Micro compteur ordinal 1 : (Micro compteur ordinal) + 1 → Micro compteur ordinal 2 : (Registre Tampon) → Micro compteur ordinal 3 : Si condition vérifiée

alors (Micro compteur ordinal) + 1 → Micro compteur ordinalsinon (Adresse) → Micro compteur ordinal

☞ La condition d’enchaînement.

Si l’enchaînement est de type 3 (conditionnel) alors ce champ indiquera quelledoit être le condition retenue pour effectuer le test, il sera inutilisé pour tous lesautres enchaînements.

☞ La valeur du déplacement

Si l’enchaînement est de type 0 (chaînage) ou 3 (conditionnel) alors ce champdevra indiquer le déplacement. Il sera inutilisé pour tous les autresenchaînements.

Micro Programmation Page 6 47

La réalisation d’une telle structure est particulièrement simple (figure 6.5.26).

Figure 6.5.26 : Réalisation du séquenceur.

Les fonctions combinatoires pour A, B et C sont :

C = TE1.TE0

B = TE1.TE0 + TE1.TE0 .CE

C = TE1.TE0

6.5.4.1. Le Séquencement incrémental.Dans ces conditions, un séquencement de type incrémental se présenteracomme indiqué en figure 6.5.27.

Figure 6.5.27 : Modèle de fonctionnement du séquencement incrémental.

Page 6 48 Jacques Guizol & Christian Aperghis

6.5.4.2. Le séquencement inconditionnel.Le séquencement inconditionnel correspond en fait à un branchement, sonfonctionnement est décrit figure 6.5.28.

Figure 6.5.28 : Modèle de fonctionnement du séquencement inconditionnel.

6.5.4.3. Le séquencement conditionnel.Prenons par exemple le cas d’un séquencement conditionnel pour lequel lacondition serait que le résultat de la dernière opération soit nul. Sonfonctionnement est décrit figure 6.5.29.

Figure 6.5.29 : Modèle de fonctionnement du séquencement conditionnel.

6.5.5. Structuration de la Micro-programmation.

Bien que globalement une micro instruction se doive, en fin de compte, defournir des commandes à la machines réelle, structurellement, elle peut seprésenter sous deux formes totalement différentes qui sont :

☞ La micro programmation horizontale.☞ La micro programmation verticale.

Micro Programmation Page 6 49

6.5.5.1. La micro programmation horizontale.Principe :

Les micro-instructions sont codées en champs regroupant des commandesmutuellement exclusives.

On distinguera deux types principaux de champs :☞ Les opérandes

Origine Type d'opération Destination Mémoire Entrées / Sorties

☞ L’enchaînement

Le schéma de principe de la micro programmation horizontale est présenté enfigure 6.5.30.

Figure 6.5.30 : Schéma de principe de la micro programmation horizontale.

Dans ce type de structure, chaque signal attaché à un champ particulier estasservi à la phase d’horloge à laquelle sont assujettis l’ensemble des signauxqui le constituent (figure 6.5.31).

Figure 6.5.31 :Relations entre les éléments en micro programmation horizontale.

Page 6 50 Jacques Guizol & Christian Aperghis

Le fonctionnement général peut ainsi être présenté sous la forme d’undiagramme de temps (figure 6.5.32).

µI n µI n+1 µI n+2 µI n+3 µI n+4 µI n+5

Φ1

Φ2

µ Co µCon+2

µCon+3

µCon+4

µCon+5

µCon+6

µCon+1

µI n+2 µI n+3 µI n+4 µI n+5µI n+1Champ α

Cdes α

Champ β µI n+2 µI n+3 µI n+4 µI n+5µI n+1

Cdes β

Champet Cdes ω µI n+2 µI n+3 µI n+4 µI n+5µI n+1

Figure 6.5.32 : Diagramme de fonctionnement de la programmation horizontale.

6.5.5.2. La micro programmation verticale.Il y a en fait deux champs principaux :

☞ La définition du traitement à effectuer.☞ L'indication sur la manière de découper et d’interpréter le champ précédent.

Ce type de structure dont l'aspect général n'est pas sans rappeler la program-mation (assembleur) a comme conséquences :

L’enchaînement implicite (et en général séquentiel) des micro-instructions.

La restriction du nombre de champs (et donc une grande compacitéde la commande) en ne définissant que ceux qui sont utilisés pourl'opération concernée.

L'obligation de disposer d'une classe de micro-instructions spécifi-ques pour les ruptures de séquence.

Le schéma de principe de la micro programmation verticale est présenté enfigure 6.5.33.

Micro Programmation Page 6 51

Figure 6.5.33 : Schéma de principe de la micro programmation verticale.

Dans ce type de structure, ce sont les signaux qui sont répartis sur lesasservissements liés aux différentes phases d’horloge (figure 6.5.34).

Page 6 52 Jacques Guizol & Christian Aperghis

Décodeur1/n

Code Op. Champs Enchaînement

Mémoire deMicroprogrammation

Adresse

Conditions

Décodeur1/n

Décodeur1/n

Valid

Valid

CdesDécodeur

1/n

Valid

µ COΦ2

Commandesactives en Φ1

Commandesactives en Φ2

Commandesactives en Φ1 et Φ2

Cdes

Commandesactives en Φ1

Commandesactives en Φ2

Commandesactives en Φ1 et Φ2

Cdes

Commandesactives en Φ1

Commandesactives en Φ2

Commandesactives en Φ1 et Φ2

Φ1

Φ2

Figure 6.5.34 : Relations entre les éléments en micro programmation verticale.