Vous êtes sur la page 1sur 52

Licence dInformatique MARSEILLE-LUMINY

6. Micro Programmation

6.1. 6.2. 6.3. 6.4. 6.5.

Du cblage la microprogrammation. Les constituants physiques dune machine Notion de transfert Notion de micro-programmation Relations entre programme et micro-programme

6.1. Du cblage la micro programmation.


Aprs la ralisation en 1949 des premiers calculateurs programme enregistr, Maurice Wilkes a redfini la mthode de conception en faisant les constations suivantes :

! ! !

Entres/sorties faciles (les tltypes lectro -mcaniques provenaient des stocks des compagnies de tlphone et de l'arme). Chemin de donnes rptitifs. Contrle non rptitif.

Partant de ces constatations, une simplification du contrle des machines tait envisageable en intgrant un ordinateur miniature reli deux tables dans l'unit de contrle La premire table devait contrler le chemin de donnes. La seconde dfinissait le flux de contrle au niveau microscopique. Wikles appela son invention micro-programmation et ajouta tous les lments constitutifs le prfixe micro (micro-instruction, micro-programme, micro-code, micro-compteur ordinal ...), pour dsigner tous les lments lis cette structure, et, pour viter toute confusion, il fit prcder du prfixe macro tout ce qui tait utilis pour dcrire le niveau suprieur ( macro-instruction, macro-programme, macro-code, macro-compteur ordinal ...) Actuellement la tendance est la simplification des jeux dinstructions des machines (RISC) et les ordinateurs micro-programms (CISC) sont moins diffuses. Toutefois, il faut remarquer que la programmation en assembleur RISC se rapproche davantage de la conception de microprogramme que de lcriture de programme en langage dassemblage. En outre, la conception de circuits la demande fait davantage appel lutilisation de systmes en tranches pour lesquels lutilisation du micro-contrle est indispensable.

Micro Programmation

Page 6 1

6.2. Les constituants physiques dune machine


Une machine est avant tout constitue de systmes physiques ralisant des fonctions prcises (stockage et transformation de linformation). que nous allons dtailler. Le registre permettra un stockage temporaire de linformation. Sa reprsentation schmatique est donne en figure 6.2.1

Sortie Ecriture Validation Entre


Figure 6.2.1 : Reprsentation schmatique dun registre.

Stocker une information dans un registre (figure 6.2.2) cest : Afficher l'information sur l'entre. Actionner la commande d'criture.

Figure 6.2.2 : Diagramme de temps dun stockage dinformation.

Accder une information pralablement stocke dans un registre cest valider le passage de cette information travers les barrires de sortie (figure 6.2.3).

Figure 6.2.3 : Schma type dun registre

Pour simplifier, on pourrait considrer la sortie comme un ensemble disolateurs que lon fermerait pour laisser passer linformation ou que lon ouvrirait pour isoler les sorties du registre de son environnement (figure 6.2.4).

Page 6 2

Jacques Guizol & Christian Aperghis

Figure 6.2.4 : Modle de fonctionnement dun registre.

Figure 6.2.5 : Diagramme de la validation des sorties.

6.2.1. Les liaisons.


Dfinitions : On regroupera sous cette appellation les bus et les oprateurs, cest dire tout ce qui permet de transporter et de transformer linformation. Un traitement est une tape intermdiaire entre une lecture et une criture, cette notion couvre toutes les oprations de la plus lmentaire (identit) la plus volue (opration entre deux oprateurs).
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 rsultat dans le registre C.

6.2.1.1. Principes de base.


Toutes les liaisons se font par l'intermdiaire de bus, en passant ventuellement par des oprateurs plus ou moins volus. Gnralement, il existe un oprateur central qui est une boite oprations et qui permettra deffectuer toutes les oprations arithmtiques et logiques.

6.2.1.2. Les micro-instructions.


Les micro-instructions permettront de dfinir tous les signaux de contrle pour assurer le cheminement de donnes. Elles ont de plus la possibilit de dterminer conditionnellement l'instruction excuter l'tape suivante. Le terme mme de micro-programmation suggre le fait que, une fois conues les structures dfinissant le chemin de donnes et la mmoire de support, la tche consiste essentiellement mettre en place des ordres de transfert. Il sagit
Micro Programmation

Page 6 3

en fait de raliser un interprteur pour le jeu d'instructions de la machine, ce qui permet, dans certaines limites, de modifier la logique de la machine sans toucher la structure du chemin de donnes. Toute manipulation susceptible dtre effectue se rsume (figure 6.2.6)

! ! !

Prendre une information dorigine. Lui faire subir une transformation. La stocker dans une destination.

Figure 6.2.6 : Le chemin de linformation.

6.2.2. Machine relle, machine virtuelle.


Dfinition : On appellera machine relle lensemble d'lments physiques constitutifs de la machine, abstraction faite de toute implantation de microprogramme. On appellera machine virtuelle la vision de la machine qui est donn un utilisateur travers le micro-programme.

Figure 6.2.7 : Relation entre machine relle et virtuelle.

Globalement, il faut considrer que :

! La machine relle excute des micro-instructions dont la dure est

rigoureusement constante et gale un cycle. ! La machine virtuelle excute des instructions dont la dure est variable en fonction de la complexit des oprations.

6.2.3. Emulation d'une instruction.


La description claire des diverses oprations lmentaires qui doivent tre enchanes lors de lexcution dune instruction se fait par lintermdiaire dun langage de description de transferts. Ce langage permet de dfinir pour chaque mouvement dinformation :

" Le ou les oprateurs impliqus. # Lopration effectuer. $ La destination du rsultat.


Sa syntaxe rpond aux rgles suivantes :

" Un objet est dsign par son nom. # Le contenu dun objet est reprsent en mettant entre parenthses le
nom de lobjet.
Page 6 4
Jacques Guizol & Christian Aperghis

Ainsi, le transfert de linformation contenue dans le registre A vers le registre B sexprimera sous la forme : (A) ! B Nous allons dfinir au moyen dexemples les diverses possibilits offertes par cet outil de description. Soit la machine relle dcrite en figure 6.2.9.

Figure 6.2.9 : Description dune machine relle.

On constate sur la description de cette machine que lensemble des transferts entre registres seffectue par lintermdiaire du bus B. Laffectation des registres est la suivante : A : Accumulateur (registre utilis pour mmoriser le rsultat de toutes les oprations). Y : Registre dindex (Il contiendra le dplacement relatif a un adressage index). CoH CoB : Parties hautes et basses du compteur ordinal. La partie haute permet dadresser une page et la partie basse permet dadresser un mot dans la page. Travail : Registre mis la disposition du micro programme pour stocker des rsultats intermdiaires. T : Registre tampon de sortie de la boite oprations. Soit crire lensemble des transferts lmentaires raliser pour effectuer une opration de chargement indirect index de laccumulateur. Linstruction que nous pouvons crire LDA ((Adresse),Y) en langage dassemblage sera code comme indiqu en figure 6.2.10.

Figure 6.2.10 : Codage de linstruction de chargement indirect index.

La partie adresse de linstruction permet dobtenir une adresse (indirection) cette adresse, on ajoute le contenu du registre Y (indexation) le rsultat donnant ladresse relle de la donne lintrieur de la page courante. En langage transfert, cette opration peut globalement se dcrire sous la forme : (Mem((Adresse)+(Y))) ! A.

Micro Programmation

Page 6 5

Sa dcomposition en transferts lmentaires est la suivante :

Transfert

Commentaire
opration de linstruction afin den permettre le dcodage. Cette fonction sera tudie ultrieurement. Incrmenter le compteur ordinal (partie basse car on doit rester dans la page courante) afin de pouvoir accder la partie adresse de linstruction. Transfrer dans le registre tampon (T) le contenu de lemplacement mmoire point par le compteur ordinal (la partie adresse). Transfrer dans le registre A le contenu du registre tampon (T). Le registre A contient maintenant la partie adresse de linstruction, reprsentant ladresse de la base de loprande (car il sagit dun adressage indirect index). Afin dobtenir ladresse de loprande, on ajoute au contenu de lemplacement mmoire dont ladresse est dans le registre A (indirection) le contenu du registre Y (indexation). Le rsultat de cette opration sera transfr dans le registre T. Ladresse dfinitive de la donne sera obtenue en utilisant le contenu du registre T (adresse de loprande dans la page). On incrmente la partie basse du compteur ordinal afin de pointer sur le code opration de linstruction suivante et recommencer le processus.

(Mem(CoH CoB)) ! Ri Transfrer dans un registre spcifique (le registre instruction) le code (CoB) + 1 ! CoB (Mem(CoH CoB)) ! T (T) ! A (Mem(A)) + (Y) ! T

(Mem(T)) ! A (CoB) + 1 ! CoB

Autre exemple, soit crire lensemble des transferts lmentaires raliser pour effectuer une opration de saut absolu dans la machine, cest dire un changement de page. Ladresse de destination sera obtenue au moyen dune indirection. Linstruction que nous pouvons crire SAUT (Adresse) en langage dassemblage sera code de la mme manire que la prcdente (figure 6.2.10). Son fonctionnement sera le suivant : ladresse spcifie dans la page courante on rcuprera deux emplacements successifs de mmoire permettant dobtenir successivement la partie haute puis la partie basse du nouveau compteur ordinal. En langage transfert, cette opration peut globalement se dcrire sous la forme : (Mem(Adresse,Adresse+1) ! CoH,CoB. Sa dcomposition en transferts lmentaires est la suivante :

Transfert
(Mem(CoH CoB)) ! Ri (CoB) + 1 ! CoB (Mem(CoH CoB)) ! T

Commentaire
Transfrer dans un registre spcifique (le registre instruction) le code opration de linstruction afin den permettre le dcodage. Cette fonction sera tudie ultrieurement. Incrmenter le compteur ordinal (partie basse car on doit rester dans la page courante) afin de pouvoir accder la partie adresse de linstruction. Transfrer dans le registre tampon (T) le contenu de lemplacement mmoire point par le compteur ordinal (la partie adresse). T contient maintenant ladresse de lemplacement mmoire dans lequel on va rcuprer la partie haute du nouveau compteur ordinal. La partie haute du futur compteur ordinal est momentanment stocke dans le registre travail. Afin dobtenir ladresse de la partie basse du futur compteur ordinal, on doit incrmenter le contenu du registre T. Cette opration sera selon toute logique effectue par lintermdiaire de la boite oprations. Ladresse de la partie basse du futur compteur ordinal est obtenue en utilisant le contenu du registre T. Cette valeur peut tre directement stocke dans son registre de destination (CoB). Il ne reste plus maintenant, pour parachever lopration, qu transfrer la partie haute du compteur ordinal qui a t momentanment stocke dans le registre Travail .

(Mem(T)) ! Travail (T) + 1 ! T (Mem(T)) ! CoB (Travail) ! CoH

Page 6 6

Jacques Guizol & Christian Aperghis

6.2.4. Interprtation d'une instruction.


Linterprtation dune instruction par le micro programme suit ainsi un cycle bien dfini. qui est reprsent en figure 6.2.11. Mise sous tension de la machine

Etat Initial

Obtention du Code opration par l'intermdiaire du Compteur ordinal

Incrmentation du compteur ordinal (Co) + 1 ! Co

Dcodage du Code opration et gnration d'une adresse

Le dcodage du code opration permet de dterminer l'adresse de la routine spcifique permettant l'mulation de l'instruction.

Routine spcifique mulant l'instruction A

Routine spcifique mulant l'instruction B

Routine spcifique mulant l'instruction X

Figure 6.2.11 : Interprtation dune instruction.

6.3. Notion de transfert.


Soit raliser le transfert de l'information contenue dans un registre R1 vers un autre registre R2 en effectuant une opration de complmentation. La machine relle qui permettra cette opration est reprsente en figure 6.3.1. On prcise que les registres sont opaques et que la prise en compte de linformation prsente sur lentre se produit lapparition du front descendant.

Micro Programmation

Page 6 7

Bus A

Ecriture R2

R2

Validation

Comp

R1

Ecriture R1

Bus B
Figure 6.3.1 : Machine relle permettant un transfert.

La barrire de validation sera active par un niveau haut.

! Si la commande Validation est un niveau haut alors la valeur

prsente dans le registre circulera sur le bus A. ! Si la commande Validation est un niveau bas alors la sortie du registre sera physiquement isole du bus A. Pour ce qui est de la fonction de complmentation :

! Si la commande C est un niveau haut alors la valeur prsente en

sortie sera gale au complment de la valeur prsente sur lentre. ! Si la commande C est un niveau bas alors la valeur prsente en sortie sera gale la valeur prsente sur lentre.

Dtail des oprations effectuer :

" Valider la sortie du registre R1 (Contrle). # Commander la complmentation (Contrle). $ Valider l'criture du registre R2. (Commande).
A cause du fonctionnement des composants mis en jeu et afin que le transfert se droule conformment aux spcifications il est ncessaire que :

" Le signal de validation soit actif pendant toute la dure de lopration,

puis devienne inactif ds le transfert effectu. # De mme pour le signal de complmentation. $ En fin dopration un front de descente se prsente sur lentre criture du registre R2 Le signal que lon prsentera sur chacun des composants sera un vnement (figure 6.3.2) chaque lment de la structure ne tenant compte que de la portion qui lui est destine.
Registre source

Validation
Oprateur

Complmentation

Portions du signal reconnues par chaque composant

Ecriture

}
Temps d'xcution du transfert

Registre destination

Figure 6.3.2 : Les composantes du signal.

Page 6 8

Jacques Guizol & Christian Aperghis

6.3.1. Le fonctionnement.
Le montage sera donc celui reprsent en figure 6.3.3,
Bus A Ecriture R2 Validation

R2

Comp

R1

Ecriture R1

Signal

Bus B

Figure 6.3.3 : Liaison des lments de la machine au signal de commande.

On distingue quatre composantes dans le signal de commande.

" # $ %

Un Un Un Un

niveau bas. front de monte. niveau haut. front de descente.

Chacune de ces composantes aura une action spcifique sur chacun des lments auquel elle est distribue.

! Le niveau bas.
Conformment ce qui a t dit, ce niveau dconnecte physiquement la sortie du registre R1 du bus A. De ce fait, la sortie du complmenteur prsente lentre du registre R2, par lintermdiaire du bus B, une valeur quelconque (figure 6.3.4).
Bus A Ecriture R2 Validation

R2

Comp

R1

Ecriture R1

Signal

Bus B

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

! Le front de monte.
Aucun lment de la structure nest command par ce front. Toutefois, ce front permet au signal de passer dun niveau bas un niveau haut. (figure 6.3.5).
Bus A Ecriture R2 Validation

R2

Comp

R1

Ecriture R1

Signal

Bus B
Figure 6.3.5 : tat de la machine lapparition dun front montant.

Micro Programmation

Page 6 9

! Le niveau haut.
Cest sur cette partie du signal que tout va se mettre en place. Dans un premier temps, ce niveau valide la sortie du registre R1. Linformation prsente dans ce registre transite sur le bus A et se prsente lentre du complmenteur. La fonction de complmentation est active car la commande de cet lment est elle aussi un niveau haut. Linformation qui se prsente sur lentre du registre R2 par lintermdiaire du bus B reprsente donc le complment de linformation prsente dans le registre R1 (figure 6.3.6).
Bus A Ecriture R2 Validation

R2

Comp

R1

Ecriture R1

Signal

Bus B

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 quil doit prendre en compte linformation qui lui est prsente sur son entre afin de la mmoriser. Simultanment, ce front en ramenant le signal au niveau bas permet de ramener la machine dans ltat initial. Les constantes de temps inhrentes au circuit autorisent cette simultanit sans prjudice pour linformation (figure 6.3.7).
Bus A Ecriture R2 Validation

R2

Comp

R1

Ecriture R1

Signal

Bus B

Figure 6.3.7 : tat de la machine lorsque se prsente 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 oprations qui se droulent de prsenter lopration sous forme de diagramme de temps (figure 6.3.9).
S1
Ecriture R2 Bus A Validation

R2

Comp

R1
S2

Ecriture R1

Signal

Bus B
Figure 6.3.8 : Points dapparition des signaux dinformation.

Page 6 10

Jacques Guizol & Christian Aperghis

Signal de commande

S1

S2

Ecriture Registre R 2

&

'

! "# $

Figure 6.3.9 : Diagramme de temps du transfert.

& Le front montant du signal permet de prsenter un niveau haut sur ' (

) * +

tous les composants auquel il est reli. Aprs un temps de retard et de stabilisation ds aux constantes de temps, linformation parvient lentre du circuit de complmentation. La traverse de ce circuit ncessite un dlai avant que le rsultat ne se prsente en sortie. Le systme est alors dans un tat stable, seul un changement dtat du signal de commande peut le faire changer dtat. Le front de descente du signal est le changement dtat attendu, il dclenche lcriture dans le registre R2. Aprs un dlai d la technologie, linformation prsente sur lentre du registre R2 est prise en compte et lcriture est dclenche. Le front de descente ayant ramen le signal un niveau bas, la validation de linformation en sortie du registre R1 a t inactive. La prsence de constantes de temps a toutefois permis linformation de se maintenir sur le bus jusquen ce point. De manire identique, le font de descente ayant ramen le signal un niveau bas, la sortie du complmenteur est modifie. La prsence de constantes de temps permet l aussi de maintenir linformation.

6.3.3. Convergence et Divergence.


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

- Dans le cas o les sources sont multiples et la destination unique on

dit que la structure est convergente (figure 6.3.10). - Dans le cas o la source est unique et les destinations multiples on dit que la structure est divergente (figure 6.3.12). - Dans le cas o les sources et les destinations sont multiples on parlera de structure universelle (figure 6.3.14). Chacune de ces trois structures implique des conditions spcifiques de slection et de commande.

6.3.3.1. Structure convergente.


Dans le cas dune structure convergente, les sources tant multiples, il est important, dans un premier temps, de dterminer quelle sera celle qui fournira linformation.
Micro Programmation

Page 6 11

Mode opratoire :

& Slectionner l'origine en ouvrant la porte correspondante. ' Prise en compte de l'information en actionnant la commande
d'criture.

Sel 1
Slection

S1 Sel 2 S2

} Ecriture
Dest. Sel n
Ecriture

Sn

Figure 6.3.10 : Reprsentation dune structure convergente.

Remarque importante : Il est interdit de slectionner simultanment plusieurs portes de validation , c'est dire d'avoir des origines multiples.

Chemin des donnes :

Sel 1
Slection

S1 Sel 2 S2

} Ecriture
Dest. Sel n
Ecriture

Sn
Figure 6.3.11 : Chemin des donnes dans une structure convergente.

La finalit de lopration ncessitant laction simultane dune slection et dune criture, il est impratif que les donnes soient stables au moment de lcriture.

6.3.3.2. Structure Divergente.


Dans le cas dune structure divergente, la source est unique. De ce fait, il nest pas ncessaire de procder une slection, linformation tant prsente de manire permanente sur le bus. La seule opration consiste dterminer quelle sera la destination afin dactiver le signal dcriture correspondant.

Page 6 12

Jacques Guizol & Christian Aperghis

Mode opratoire :

& Dterminer une destination parmi toutes celles possibles. ' Actionner le signal dcriture correspondant.

} Ecriture
Dest 1 Dest 2 Source
Ecriture 1 Ecriture 2

Dest n

Ecriture n

Figure 6.3.12 : Reprsentation dune structure divergente.

Remarque: Il est possible, dans cette structure, de commander simultanment plusieurs critures, cest dire, de prendre en compte linformation issue de la source dans plusieurs destinations en parallle.

Mode opratoire :
Prise en compte de l'information en actionnant la commande d'criture.

} Ecriture
Dest 1 Dest 2 Source
Non destinataire

Ecriture 1

Ecriture 2

Dest n

Ecriture n

Figure 6.3.13 : Chemin des donnes dans une structure divergente.

6.3.3.3. Structure simultanment convergente et divergente.


Cette structure, la plus gnrale, est une superposition des deux prcdentes. Les sources tant multiples, il est important dans un premier temps de dterminer quelle sera celle qui fournira linformation. Les destinations tant elles aussi multiples, il est impratif den slectionner une en actionnant la commande dcriture correspondante.

Mode opratoire :

& Slectionner l'origine en ouvrant la porte correspondante. ' Dterminer une destination parmi celles possibles ( Actionner le signal dcriture correspondant.
Micro Programmation

Page 6 13

Sel 1 S1 Sel 2 S2

Slection Ecriture

Dest 1 Dest 2

Ecriture 1

Ecriture 2

Sel n Sn Dest p
Ecriture p

Figure 6.3.14 : Reprsentation dune structure simultanment convergente et divergente.

Les restrictions nonces pour la structure convergente de mme que les possibilits vues pour la structure divergente sont applicables ici. En consquence, il sera interdit de slectionner simultanment plusieurs barrires de validation, mais, contrario, les destinations peuvent tre multiples ; plusieurs commandes dcriture pourront tre actionnes paralllement.

Sel 1 S1 Sel 2 S2

Slection Ecriture

Dest 1 Dest 2
Non destinataire

Ecriture 1

Ecriture 2

Sel n Sn Dest p
Ecriture p

Figure 6.3.15 : Chemin des donnes dans une structure universelle.

La finalit de lopration ncessitant laction simultane dune slection et dune criture, il est impratif que les donnes soient stables au moment de lcriture.

6.3.4. Les voies de transfert dans une machine.


Il est possible de considrer une machine comme un assemblage de structures lmentaires synchronises schangeant des informations spcifiques, cet ensemble de structures pouvant se dcomposer en quatre grandes familles.

Dfinition :

On appellera bus tout chemin sur lequel circule de linformation.

Par extension, un bus sera une structure de liaison reliant entre eux les organes de stockage par l'intermdiaire doprateurs de traitement. Le nombre de bus, donc de liaisons, existant dans une structure de transfert de base, dterminera la complexit des oprations lies cette structure.

Dfinition :

On appellera espace de travail lensemble des organes de stockage (Registres, mmoire locale, mmoire etc. ....)
Jacques Guizol & Christian Aperghis

Page 6 14

Espace de Travail

Figure 6.3.16 : Reprsentation de lespace de travail

Dfinition :

On appellera oprateur de traitement. un systme combinatoire effectuant une opration arithmtique ou logique unaire ou binaire et fournissant un rsultat.

Figure 6.3.17 : Reprsentation de loprateur.

6.3.4.1. Machine 3 bus.


Dans ce type de machine (figure 6.3.18), lors dune opration, les trois valeurs peuvent tre spcifies simultanment. Une opration complte se fait en un cycle.

Figure 6.3.18 : Reprsentation schmatique dune machine 3 Bus.

Il est indispensable de prciser :

! ! !
Bus convergent (slection)

Lemplacement o sera trouv le premier oprande. Lemplacement o sera trouv le second oprande. Lemplacement o sera rang le rsultat.
Bus convergent (slection)

Oprateur
Bus divergent (criture)

Figure 6.3.19 : Les transferts dans une machine 3 Bus.


Micro Programmation

Page 6 15

Au niveau des oprateurs de slection, une machine 3 bus se prsentera comme indiqu en figure 6.3.19. Ainsi par exemple, pour effectuer lopration : (A) + (B) - (D) + (E) ! F, il sera indispensable de raliser 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 dune opration, deux des valeurs seront explicitement spcifies, lune doit donc tre implicite. Il existe de ce fait deux variantes : Dans la premire, la valeur implicite sera lun des oprandes (figure 6.3.20).

Figure 6.3.20 : Machine 2 bus Variante 1

Au niveau des oprateurs de slection, une machine 2 bus se prsentera comme indiqu en figure 6.3.21.

Figure 6.3.21 : Les transferts dans une machine 2 Bus premire variante.

Il est indispensable de prciser :

! !

Lemplacement o sera trouv loprande explicite. Lemplacement o sera rang le rsultat.

Ainsi par exemple, pour effectuer lopration : (A) + (B) - (D) + (E) ! F, il sera indispensable de raliser les transferts suivants :

Page 6 16

Jacques Guizol & Christian Aperghis

& (A) . Tamp ' (B)+(Tamp) . F ( (F) . Tamp ) (Tamp)-(D) . F * (F) . Tamp + (Tamp)+(E) . F
Dans la seconde variante, la valeur implicite sera le rsultat (figure 6.3.22).
Bus 1

Espace de Travail

Oprateur

Tamp

Bus 2
Figure 6.3.22 : Machine 2 bus Variante 2

Il est indispensable de prciser :

! !

Lemplacement o sera trouv le premier oprande. Lemplacement o sera trouv le second oprande.

Au niveau des oprateurs de slection, une machine 2 bus se prsentera comme indiqu en figure 6.3.23.

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

Ce type de structure permet une meilleure gestion des calculs en chane. Ainsi pour effectuer lopration (A) + (B) - (D) + (E) ! F, il sera indispensable de raliser les transferts suivants :

& (A) ' (B)+(Tamp) ( (Tamp)-(D) ) (Tamp)+(E) * Tamp

. . . . .

Tamp Tamp Tamp Tamp F

Micro Programmation

Page 6 17

6.3.4.3. Machine 1 bus.


Dans ce type de machine, lors dune opration, seule une des trois valeurs sera explicitement spcifie. Deux doivent donc tre implicites. Ainsi que dans le modle prcdent deux variantes sont envisageables. Dans la premire la valeur explicite sera le rsultat, les deux oprandes seront donc implicites. (figure 6.3.24).

Tamp1

Tamp2

Espace de Travail Oprateur

Bus
Figure 6.3.24 : Machine 1 bus, premire variante.

Seul doit tre prcis lors dun transfert lemplacement ou doit tre rang le rsultat. Ainsi pour effectuer lopration (A) + (B) - (D) + (E) -> F, il sera indispensable de raliser les transferts suivants :

& (A) . Tamp1 ' (B) . Tamp2 ( (Tamp1)+(Tamp2) . Tamp1 ) (D) . Tamp2 * (Tamp1)-(Tamp2) . Tamp1 + (C) . Tamp2 , (Tamp1)+(Tamp2) . Tamp1
Au niveau des oprateurs de slection, la premire forme de machine 1 bus se prsentera comme indiqu en figure 6.3.25.
Oprandes implicites Bus universel

Tamp1

Tamp2

Oprateur

Figure 6.3.25 : Les transferts dans une machine 1 Bus premire variante.

Dans la seconde variante (figure 6.3.26), la valeur explicite sera lun des oprateurs, lun des oprandes et le rsultat seront donc implicites.
Page 6 18
Jacques Guizol & Christian Aperghis

Tamp1

Espace de Travail Oprateur

Bus

Result

Figure 6.3.26 : Machine 1 bus, seconde variante.

Seul doit tre prcis lors dun transfert lemplacement ou de lun des oprandes. Ainsi pour effectuer lopration (A) + (B) - (D) + (E) -> F, il sera indispensable de raliser les transferts suivants :

& ' ( ) * + ,

(A) (B)+(Tamp) (D) (Result)-(Tamp) (E) (Result)+(Tamp) (Result)

. . . . . . .

Tamp Result Tamp Result Tamp Result F

Au niveau des oprateurs de slection, la premire forme de machine 1 bus se prsentera comme indiqu en figure 6.3.27.

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

Micro Programmation

Page 6 19

6.3.5. Un exemple dorganisation a bus unique.


Considrons la machine un bus reprsente en figure 6.3.28 Mmoire

Dcodeur d'adresse Oprande et instruction

Registre Instruction

Compteur ordinal

Adresse Mmoire

Donne Mmoire

Bus universel
B

Reg 0

Reg 1

Reg n

Oprat. Z

Figure 6.3.28 :Un exemple de machine bus unique.

La structure de contrle de cette machine est prcise en figure 6.3.29.

Figure 6.3.29 : Structure de contrle du bus dune machine bus unique.

Soit par exemple raliser lopration : (R0) + (R1) ! R1. Cette opration, ainsi que nous lavons voqu, se droulera en trois cycles successifs. Premier cycle Dans ce cycle (figure 6.3.30), le contenu du registre R0 sera transfr dans le registre Y, cest dire que lors de lopration arithmtique qui suivra il sera considr comme un oprateur implicite. Pour raliser ce transfert, la porte contrlant la sortie du registre R0 est ferme ; linformation peut donc se propager le long du bus et, par lintermdiaire de la porte donnant accs au registre Y qui a elle aussi t ferme, se prsenter sur lentre du registre dans lequel elle sera prise en compte.

Page 6 20

Jacques Guizol & Christian Aperghis

Mmoire

Dcodeur d'adresse Oprande et instruction

Registre Instruction

Compteur ordinal

Adresse Mmoire

Donne Mmoire

Bus universel

Oprat. Z

Reg 0

Reg 1

Reg n

X
Figure 6.3.30 : Premier cycle (R0) ! Y.

Deuxime cycle (figure 6.3.31) Mmoire

Dcodeur d'adresse Oprande et instruction

Registre Instruction

Compteur ordinal

Adresse Mmoire

Donne Mmoire

Bus universel

Oprat. Z

Reg 0

Reg 1

Reg n

X
Figure 6.3.31 : Deuxime cycle (R1) + (Y) ! Z.

Ce cycle va raliser lopration arithmtique entre le contenu du registre R1 (explicite) et le registre Y (implicite) le rsultat tant automatiquement stock dans le registre Z (implicite). Pour raliser cette opration, la porte contrlant la sortie du registre R1 est ferme, linformation peut donc se propager le long du bus et se prsenter sur lentre B de loprateur. Paralllement, la valeur Y se prsentant sur lentre A, lopration voulue (+) peut tre commande. Le rsultat se prsente sur lentre du registre Z car la porte contrlant laccs ce registre a t commande. En fin de cycle un signal dcriture concrtisera la prise en compte de linformation.
Page 6 21

Micro Programmation

Troisime cycle (figure 6.3.32) Mmoire

Dcodeur d'adresse Oprande et instruction

Registre Instruction

Compteur ordinal

Adresse Mmoire

Donne Mmoire

Bus universel

Oprat. Z

Reg 0

Reg 1

Reg n

X
Figure 6.3.32 : Troisime cycle (Z) ! R1.

Ce cycle va concrtiser lopration, cest dire ranger le rsultat stock dans le registre Z (implicite) dans sa destination finale. Pour raliser cette opration, la porte contrlant la sortie du registre Z est ferme, linformation peut donc se propager le long du bus et se prsenter par lintermdiaire de la porte de contrle sur lentre du registre R1. Le signal dcriture qui se prsentera en fin de 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 appelles bus. ! Les informations circulent sur les bus. ! Les informations sont contrles par des barrires commandes par
des signaux de slection .

! Une commande approprie dterminera le moment ou un lment


squentiel devra changer d'tat.

! Cette commande peut agir sur un tat, ou plus gnralement, sur une

transition (un front). ! Si un lment ncessite l'action simultane d'une commande de slection et d'une commande de transition, alors la slection doit tre parfaitement stable pendant la transition.

6.4. Notion de micro programmation.


La micro!programmation, c'est lenchanement de transferts lmentaires d'information. Un transfert lmentaire ncessite trois actions :

& Lecture du ou des oprandes en slectionnant leur chemin par

ouverture des barrires appropries. ' Dtermination d'un chemin l'intrieur de la boite oprations, c'est dire choix d'une opration parmi toutes celles disponibles. ( criture du rsultat dans la partie approprie de l'espace de travail.
Page 6 22
Jacques Guizol & Christian Aperghis

Les deux premires oprations sont ralises par des commandes de slection. La troisime opration est une transition. Nous allons clairer ces notions en effectuant des sries de transferts sur des machines lmentaires que nous dcrirons au fur et mesure. La premire est prsente 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 : E-R1 : E-R2 : criture dans le registre 0 criture dans le registre 1 criture dans le registre 2 liaison liaison liaison liaison de R0 sur le bus B. de R1 sur le bus A. de R2 sur le bus A. clavier sur le bus B.

Slection d'information (Etats).


Sel-R0 : Validation de la Sel-R1 : Validation de la Sel-R2 : Validation de la Sel-K : Validation de la

Commandes portant sur la boite opration (Etats). A ! C : Transfert vers le bus C de l'information prsente sur A. B ! C : Transfert vers le bus C de l'information prsente sur B. A + B : Transfert vers le bus C de l'information obtenue en additionnant l'information prsente sur A et l'information prsente sur B. A - B : Transfert vers le bus C de l'information obtenue en retranchant l'information prsente sur B l'information prsente sur A.

Dfinition de l'opration effectuer.


On dsire dterminer la suite des oprations (transferts) effectuer pour raliser le traitement suivant :

! ! !

Lire une premire valeur sur le clavier et stocker cette information dans un registre. Lire une seconde valeur sur le clavier et stocker cette information dans un registre. Effectuer la somme des deux informations ainsi obtenues et stocker cette nouvelle information dans un troisime registre.

Il est vident que le systme a t simplifi lextrme, ainsi nous considrons le clavier comme un priphrique qui a toujours une information valide fournir, ce qui nous permet de lire la donne en question sans se poser de problmes. La structure de la machine (figure 6.4.1) impose quelques contraintes, ainsi pour effectuer une opration arithmtique entre deux valeurs, lune doit
Micro Programmation

Page 6 23

imprativement tre range dans le registre R0 alors que lautre peut indiffremment tre range dans R1 ou R2.. Prenons les conventions suivantes :

! Premire valeur ! R0 ! Seconde valeur ! R1 ! Rsultat ! R2

Le premier transfert raliser consiste transfrer linformation de lorgane dentre vers sa destination, le registre R0 (Figure 6.4.2). Il scrit en langage transfert : !(Clavier)!! !R0!

Figure 6.4.2 : Chemin de donnes pour le premier transfert.

Pour raliser ce transfert, il est ncessaire de positionner les slections suivantes :

! !

Sel-K afin de valider linformation qui sort du clavier et la prsenter par lintermdiaire du bus B sur une entre de la boite oprations. B ! C afin que linformation qui se prsente sur lentre B de la boite oprations la traverse sans modifications et transite via le bus C vers lentre des registres de la machine. Cet tat de chose sera maintenu un certain temps afin que linformation ait le temps de se stabiliser. E-R0 Lorsque linformation est stabilise, il est ncessaire pour concrtiser le transfert de lcrire dans le registre auquel elle est destine, soit dans le cas qui nous intresse R0.

Le transfert que nous venons de raliser peut scrire : Sel-K B ! C E-R0

Le second transfert raliser consiste transfrer linformation de lorgane dentre vers sa destination, le registre R1 (figure 6.4.3). Il scrit en langage transfert : !(Clavier)!! !R1! En fait, cest une copie quasi conforme du premier, seule change la destination finale de linformation.

Page 6 24

Jacques Guizol & Christian Aperghis

Figure 6.4.3 : Chemin de donnes pour le second transfert.

Pour raliser ce transfert, il est ncessaire de positionner les slections suivantes :

! ! !

Sel-K : Valide linformation qui sort du clavier et la prsente par lintermdiaire du bus B sur une entre de la boite oprations. B ! C : Permet linformation qui se prsente sur lentre B de la boite oprations de la traverser sans modifications et de se prsenter via le bus C sur lentre des registres de la machine. E-R1 : Lorsque linformation est stabilise, lcriture dans le registre auquel elle est destine, soit dans le cas qui nous intresse R1 permet la concrtisation du transfert.

Le transfert que nous venons de raliser peut scrire : Sel-K B ! C E-R1

Le troisime et dernier transfert consiste additionner le contenu du registre R0 au contenu du registre R1 et de transfrer la valeur ainsi obtenue dans le registre R2 (figure 6.4.4). Il scrit en langage transfert : !(R0)!+!(R1)!!!R2!

Figure 6.4.4 : Chemin de donnes pour le troisime transfert.

Pour raliser ce transfert, il est ncessaire de positionner les slections suivantes :

! !

Sel-R0 : Valide linformation qui sort du registre R0 et la prsente par lintermdiaire du bus B sur une entre de la boite oprations. Sel-R1 : Valide linformation qui sort du registre R1 et la prsente par lintermdiaire du bus B sur lautre entre de la boite oprations.
Page 6 25

Micro Programmation

! !

A + B : Permet dajouter linformation qui se prsente sur lentre B de la boite oprations celle qui se prsente sur lentre A le rsultat sera distribu via le bus C sur lentre des registres de la machine. E-R2 : Lorsque linformation est stabilise, lcriture dans le registre auquel elle est destine, soit dans le cas qui nous intresse R2 concrtise le transfert.

Le transfert que nous venons de raliser peut scrire : Sel-R0 Sel-R1 A + B E-R2

En conclusion, l'opration a t dcompose en trois transferts lmentaires : Sel-K B -> C E-R0 Sel-K B -> C E-R1 Sel-R0 Sel-R1 A + B E-R2 dont la dure de chacun est appele 'Cycle de base '.

Dfinition :

0 Le cycle de base est la dure de l'opration la plus lmentaire que l'on peut effectuer sur une machine donne. 0 La dure de ce cycle de base est dtermine par l'horloge de la machine. 0 Cette dure doit tre suffisante pour permettre l'information de parcourir la totalit du chemin qui lui est imparti.

6.4.1. Les signaux

1 Priode = 1 Cycle

1 Priode = 1 Cycle

Figure 6.4.5 : Horloge et cycle

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

! Une slection (un tat) qui doit rester stable pendant un temps
suffisant. ! Une transition reprsentative de la fin du cycle permet la prise en compte des informations qui auront t labores pendant la phase de slection.

La caractristique principale des machines micro programmes est que tous les dplacements ncessitent le mme temps d'excution (1 cycle) quelle que soit l'opration mise en jeu.

Page 6 26

Jacques Guizol & Christian Aperghis

Dfinitions

Chaque opration volue (instruction dassemblage) que la machine est suppose excuter se dcompose en un nombre fini et ordonn de micro-instructions. Nous dirons que chaque micro-opration de l'ensemble fini des squences qui correspond l'excution d'un jeu d'oprations de l'ordinateur dfinit un tat de la machine micro-programme. La machine micro-programme reste dans un tat donn pendant toute la dure d'un cycle d'horloge et change d'tat la fin du cycle.

6.4.2. L'ABC de la micro-programmation.


L'implantation matrielle ne se proccupe pas de la manire dont sont regroupes les lignes de contrle dans une micro-instruction, toutefois, afin de simplifier la lecture, les lignes de contrle ralisant des fonctions voisines seront disposes cte cte. Les groupements de lignes de contrle seront appels champs.

6.4.2.1. Oprations combines.


Supposons quavec la machine reprsente en figure 6.4.6, nous dsirions effectuer les transferts suivants : ! (R3)!+!(R1)!,(R2)!!!R1,!!R0

Figure 6.4.6 : Carte machine1

Sur la structure propose, ce transfert ncessite deux cycles successifs. Premier cycle (figure 6.4.7), transfert de linformation obtenue en additionnant le contenu de R3 et le contenu de R1, vers le registre R1. Soit : (R3)!+!(R1)!! !R1

A
Sel-R3 Sel-R2

B
Sel-R0 A!C Sel-R1

R3

E-R3

R2

E-R2

B. O. P.

B!C A+B A-B

R0

E-R0

R1

E-R1

C
Figure 6.4.7 : Chemin de donnes pour le premier transfert.

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


Micro Programmation

Page 6 27

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 donnes pour le second transfert.

Sel-R2 A -> C E-R0 Considrons maintenant la machine de la figure 6.4.9.

Figure 6.4.9 : Carte machine2

Cette machine se distingue de la prcdente reprsente en figure 48 par lajout d'un bus Z. Ce bus est caractristique dune machine 1 bus, en effet, tous les registres de la machine peuvent tre source et destination de cette structure. En fait, la machine ainsi obtenue peut tre considre comme la superposition de 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 : 0 Chaque registre a deux slections de sortie au lieu d'une. 0 En entre des registres, alors quil n'y avait pas de slection, on a maintenant une structure convergente qui implique un choix. Par contre on fait apparatre une nouvelle possibilit : 0 Si aucune liaison permanente n'existe ou nest valide entre les bus il y a possibilit de procder des transferts simultans. Ainsi, lopration : (R3) + (R1) ! R1 ; (R2) ! R0 qui comporte deux transferts indpendants peut se raliser sur la nouvelle structure en un seul cycle (figure
Page 6 28
Jacques Guizol & Christian Aperghis

6.4.10), en utilisant lune des machines (la machine 1 bus) pour effectuer le transfert (R2) ! R0, et lautre machine (la machine 3 bus) pour raliser le transfert (R3) + (R1) ! R1.

Figure 6.4.10 : Chemins de donnes pour deux transferts simultans

! ! ! ! ! ! ! !

R3-A : Valide linformation qui sort du registre R3 et la prsente par lintermdiaire du bus A sur une des entres de la boite oprations. R2-Z : Valide linformation qui sort du registre R2 et la prsente par lintermdiaire du bus Z sur les slections dentre des registres de la machine. R1-B : Valide linformation qui sort du registre R1 et la prsente par lintermdiaire du bus B sur lautre entre de la boite oprations. A + B : Permet deffectuer la somme des informations prsentes sur les entres et de prsenter le rsultat par lintermdiaire du bus C sur les slections dentre des registres de la machine. C-R1 : Permet de prsenter sur lentre du registre R1 linformation prsente sur le bus C. Z-R3 : Permet de prsenter sur lentre du registre R3 linformation prsente sur le bus Z. E-R1 : Concrtise le transfert (R3) + (R1) ! R1 en crivant le rsultat dans le registre appropri. E-R0 : Concrtise le transfert (R2) ! R0 en crivant le rsultat dans le registre appropri. R3-A R2-Z R1-B A + B C-R1 Z-R3 E-R1 E-R3

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

6.4.2.2. criture mmoire.


Pour travailler sur une mmoire dune machine, il est impratif avant de procder laccs proprement dit, de disposer de ladresse de llment concern. Cette information peut tre stocke dans un registre spcifique (le registre adresse mmoire). Dans ces conditions, toute manipulation dinformation de ou vers la mmoire doit imprativement tre prcd dun cycle de chargement du registre dadresse. Ainsi, la machine de la figure 6.4.11 a t construite selon ce principe.

Micro Programmation

Page 6 29

Figure 6.4.11 : Lien avec la mmoire

criture dune information en mmoire.


Soit raliser le transfert (R2) ! Mem(R1), cest dire que lon dsire transfrer lemplacement mmoire dont ladresse est spcifie par linformation contenue dans le registre R1, la valeur contenue dans le registre R2. Ce transfert ncessitera deux cycles : Premier cycle (figure 6.4.12) transfert de ladresse mmoire dans le registre appropri (R1)!!!RAdr

Figure 6.4.12 : Chemin de donne pour le transfert de ladresse.

Sel-R1 A ! C E-RAdr Second cycle (figure 6.4.13) transfert de la donne lemplacement mmoire dont ladresse est stocke dans le registre dadresse.

A
Sel-R1 Sel-R2

B
Sel-Mem A!C Mmoire

R1

E-R1

R2

E-R2

B. O. P.

B!C A+B A-B

R.Adr

E-R.Adr

E-Mem

C
Figure 6.4.13 : Chemin de donne en criture mmoire.

Page 6 30

Jacques Guizol & Christian Aperghis

Sel-R2 A ! C E-Mem

Lecture dune information contenue en mmoire.


Soit raliser le transfert (Mem(R1)) ! R2 (figure 6.4.14), cest dire que lon dsire lire lemplacement mmoire dont ladresse est spcifie par linformation contenue dans le registre R1 et ranger la valeur ainsi obtenue dans le registre R2. Ce transfert ncessitera deux cycles : Premier cycle : transfert de ladresse mmoire dans le registre appropri, soit, (R1) ! Radr. Ce cycle est tout fait similaire celui qui prcdait lcriture (figure 6.4.12). Sel-R1 A ! C E-RAdr Second cycle (figure 6.4.14) transfert du contenu de lemplacement mmoire dont ladresse est stocke dans le registre dadresse vers sa destination finale R2.

Figure 6.4.14 : Chemin de donne en lecture mmoire.

Sel-Mem B ! C E-R2

6.4.2.3. Les recouvrements.


Pour raliser ce type de transfert en un seul cycle, il est indispensable de disposer et donc de traiter simultanment deux informations diffrentes :


Donc

Ladresse de lemplacement mmoire considr. linformation en provenance ou destination de la mmoire.

! afin que deux informations diffrentes transitent simultanment au

cours du mme cycle il est ncessaire de disposer de 2 bus diffrents. ! afin que la donne puisse se prsenter et tre traite, il est indispensable que linformation relative ladresse lait prcde. La solution consiste prsenter, au cours du mme cycle, l'adresse et la donne

0 l'adresse au dbut du cycle et pendant la majeure partie du cycle ; 0 la donne au cours de la seconde partie du cycle et seulement ce
moment l. Pour parvenir ce rsultat, le cycle de la machine sera dcompose en deux demi cycles #1 et #2 (figure 6.4.15).

! Le dbut de la phase #1 initialisera le traitement des adresses. ! Le dbut de la phase #2 initialisera le traitement des donnes.
Micro Programmation

Page 6 31

Figure 6.4.15 : Dcomposition d'un cycle en deux demi cycles (horloge biphase).

A titre dexemple, la figure 6.4.16 prsente la structure de lhorloge du I80386.

Figure 6.4.16 : Horloge du I80386.

Une machine a horloge biphase (figure 6.4.17) se devra donc de comporter un bus spcifiquement destin faire transiter les adresses, qui sera valid par la phase #1 et des bus gnraux destins transporter les donnes, qui seront valids par la phase # 2. En aucun cas, ces deux types de bus ne pourront communiquer au cours dun transfert.

Figure 6.4.17 : Machine horloge biphase.

Page 6 32

Jacques Guizol & Christian Aperghis

criture Mmoire
Soit raliser le transfert dj voqu (R2) ! Mem(R1) le chemin de donnes de ce transfert est indique en figure 6.4.18.

Figure 6.4.18 : Chemin des donnes lors dune criture mmoire.

! ! ! !

Ad-R1 Valide linformation qui sort du registre R1 et la prsente par lintermdiaire du bus dadresse sur lentre approprie de la mmoire. Cette validation commence au dbut du cycle dhorloge. Sel-R2 Valide linformation qui sort du registre R2 et la prsente par lintermdiaire du bus A sur lentre de la boite oprations. Cette validation ne sera effective que pendant la phase #2 du cycle. A ! C Permet linformation qui se prsente sur lentre A de la boite oprations de la traverser sans modifications et de se prsenter via le bus C sur lentre des registres de la mmoire. Cette validation ne sera effective que pendant la phase #2 du cycle. E-Mem Ecrit lemplacement mmoire spcifi par lintermdiaire du bus adresse linformation prsente sur le bus C. Adr-R1 Sel-R2 A ! C E-Mem

Lecture Mmoire
Soit raliser le transfert dj voqu (Mem(R1)) ! R2. Le chemin de donnes de ce transfert est indique en figure 6.4.19.

Figure 6.4.19 ; Chemin des donnes lors dune lecture mmoire.

Micro Programmation

Page 6 33

! ! ! !

Ad-R1 : Valide linformation qui sort du registre R1 et la prsente par lintermdiaire du bus dadresse sur lentre approprie de la mmoire. Cette validation commence au dbut du cycle dhorloge. Sel-Mem : Valide linformation qui sort de lemplacement mmoire spcifi par lintermdiaire du bus adresse et la prsente par lintermdiaire du bus A sur lentre de la boite oprations. Cette validation ne sera effective que pendant la phase #2 du cycle. A ! C : Permet linformation qui se prsente sur lentre A de la boite oprations de la traverser sans modifications et de se prsenter via le bus C sur lentre des registres de la mmoire. Cette validation ne sera effective que pendant la phase #2 du cycle. E-R2 : Concrtise le transfert en crivant linformation dans le registre auquel elle est destine. Adr-R1 Sel-Mem B ! C E-R2

6.5. Relations entre programme et micro-programme.

Le programme
!

Kwx gvmx tev yr ywekiv8 Kwx wmxy ir qqsmvi zmzi Sperki mrwxvyg7 xmsrw ix hsrriw Kwx ir pmfvi eggw.

Le micro-programme
!

Kwx gvmx tev pi gsrgitxiyv hi pe qeglmri zmvxyippi Kwx wmxy ir qqsmvi hi qmgvs7tvskveqqexmsr Isrwmhvi pi tvskveqqi hi pywekiv gsqqi yr perkeki mrxivtvx

Figure 6.5.1 : Principales diffrences programme/micro-programme

Il est impossible au programme usager d'accder de quelque faon que ce soit la mmoire de micro-programmation.

6.5.1. Les diverses structures constituant une machine.


Les relations entre les divers constituants dune machine peuvent tre rsums dans le schma gnral de la figure 6.5.2.

Page 6 34

Jacques Guizol & Christian Aperghis

Figure 6.5.2 : Les relations entre les lments dune machine.

Dfinitions :

Lenchanement reprsente le mcanisme qui va gnrer une adresse reprsentant ladresse de la micro instruction qui devra tre excute au cycle qui suit. Cette adresse pourra tre implicite, explicite, calcule ou conditionnelle. La mmoire micro instruction est lendroit ou est stock le micro programme. Cette mmoire est contrle par un registre adresse micro programme ou micro compteur ordinal qui contient en permanence ladresse de la micro instruction en cours dexcution. La machine relle reprsente comme nous lavons dj spcifi lensemble des lments physiques constitutifs de la machine.

Ces divers lments sont relis par des bus spcifiques que nous dtaillerons plus loin. Ce sont :

! ! ! ! ! ! !

BA-I Le bus adresse micro-instruction. TR1-I Le bus permettant une micro instruction de transmettre une information relative un dplacement. TR2-I Le bus transfrant vers la machine relle lensemble des signaux (slection ou criture) qui lui sont destins. TR-Cond Transfert d'une condition denchanement de la machine relle vers lenchanement afin de procder des branchements conditionnels.. TR-Adr Le bus permettant le transfert d'une adresse calcule vers lenchanement dune adresse calcule par la machine relle. Par exemple pour effectuer un dcodage. Sortie Bus de donnes mises vers l'extrieur. Entre Bus de donnes reues de lextrieur.

Les mcanismes mis en jeu sur ces diverses structures correspondent des modles simplifis. Ils seront explicits comme tel par la suite. Bien videment, sur un systme complexe divers mcanismes cohabiteront pour donner toute sa puissance lensemble.

6.5.1.1. Le bus adresse micro-instruction.


Cest le bus (BAI) qui va transfrer vers le micro compteur ordinal ladresse de la micro instruction qui devra tre excute au cycle suivant.(figure 6.5.3). Au cours du cycle, par une srie doprations que nous dtaillerons ultrieurement, une adresse est gnre par le mcanisme denchanement. Cette adresse est prsente lentre du micro compteur ordinal (registre adresse micro instruction). Elle sera prise en compte par le registre en fin de cycle, le front descendant de #2 provoquant lcriture. Par l mme, une nouvelle adresse est prsente la mmoire de micro programmation, donc de nouvelles commandes transitent en sortie de la mmoire.
Micro Programmation

Page 6 35

Figure 6.5.3 : Fonctionnement du bus adresse micro instruction

Ce mcanisme se reproduisant chaque cycle lenchanement des micro instructions est ainsi assur.

6.5.1.2. Le bus de commandes.


Cest sur ce bus (Tr2I) que va transiter la totalit des commandes destination de la machine relle (figure 6.5.4). La mmoire microprogrammation, adresse par le micro compteur ordinal, prsente en sortie dinformations les diverses commandes (slection ou criture) destination des composants de la machine relle. Ainsi que nous le verrons ultrieurement certaines de ces commandes peuvent tre asservies une phase dhorloge afin de ntre actives que pendant la phase considre.

Figure 6.5.4 : Fonctionnement du bus de commandes

Au changement de cycle, cest dire chaque nouvelle criture du micro compteur ordinal, une nouvelle micro instruction se prsente et donc de nouvelles commandes.

6.5.1.3. Squencement explicite.


Le bus (TR1I) utilis pour transfrer vers le mcanisme denchanement une partie de la micro instruction permettra donc le chanage (figure 6.5.5). Les micro instructions peuvent tre chanes, ainsi la micro instruction courante contient ladresse de la micro instruction suivante. Dans ces conditions, la partie de la mmoire de micro programmation qui correspond la valeur en question sera dirige vers le squenceur qui la retransmettra son tour vers le registre adresse micro instruction.
Page 6 36
Jacques Guizol & Christian Aperghis

TR1 I

Enchanement

Mmoire Micro instruction


!2
B A I

Registre adresse Micro instruction


TR2 I

!1-!2

Machine relle

Figure 6.5.5 : Bus denchanement des micro-instructions

Cette adresse prsente au cours du cycle courant sera prise en compte en fin de #2 rendant effectif le branchement.

6.5.1.4. Transfert d'une condition denchanement.


Cest par ce bus (TrCond) que transiteront les bits de statut gnrs par les oprations arithmtiques effectues par loprateur de la machine relle.

Figure 6.5.6 : Bus de transfert de condition denchanement (slection dadresse)

Ce mcanisme permet, entre autres, lorsque deux adresses ont t gnres den slectionner une (figure 6.5.6). Il peut aussi entrer comme une constante dans la gnration dune adresse (figure 6.5.7). Il est alors possible de raliser facilement des aiguillages n destinations.

Micro Programmation

Page 6 37

Figure 6.5.7 : Bus de transfert de condition denchanement (calcul dadresse)

6.5.1.5. Transfert d'une adresse calcule.


Ce bus (Tr Adr) permettra de transmettre au mcanisme denchanement une adresse fabrique de toute pices par la machine relle (figure 6.5.8).

Figure 6.5.8 : Bus de transfert dadresses

Cest entre autre, comme nous le verrons ultrieurement, ce mcanisme qui sera utilis pour procder au dcodage dun code opration.

6.5.1.6. Entres / Sorties.


Ce sont les bus standards (figure 6.5.9) permettant la liaison entre le monde extrieur et la machine relle.

Page 6 38

Jacques Guizol & Christian Aperghis

Figure 6.5.9 : Bus des entres-sorties.

6.5.2. Le calcul d'adresse.


Comme nous lavons vu prcdemment, cest le mcanisme qui va permettre de gnrer une adresse partir dlments pris divers emplacements de la machine (figure 6.5.10) transports au systme denchanement par les bus :

! ! ! !

TR1-mI TR-Adr

(Transfert de tout ou partie de la micro-instruction). (Transfert d'une adresse calcule).

TR-Cond (Transfert d'une condition denchanement).

et dont le rsultat sera achemin vers le systme dadressage de la mmoire micro instruction par le bus : BA-mI (Bus adresse micro-instruction).

Figure 6.5.10 : Bus susceptibles dtre utiliss dans la ralisation dun enchanement

Le but de ce type de calcul est de gnrer partir dun noyau des valeurs numriques reprsentatives d!adresses. Nous allons voir quelques exemples de calcul dadresse.

Micro Programmation

Page 6 39

6.5.2.1. Addition modulo n.

Figure 6.5.11 :

6.5.2.2. Concatnation.

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 opration de division entire, elle permet de faire pointer n valeurs conscutives vers un mme emplacement.
Page 6 40
Jacques Guizol & Christian Aperghis

6.5.2.4. Troncature gauche


Mmoire
n-1 00 n-i-1 0

Adresse

Elment
n-1 n-i n-i-1 0

Figure 6.5.14 : Adressage par troncature gauche

Par contre, la troncature gauche(figure 6.5.14) correspond une opration de modulo, elle permet n valeurs distantes de (2^k)-1 de pointer vers le mme emplacement.

6.5.2.5. Inversions et barrires.


Ce sont des oprateurs qui permettront de manipuler certaines parties de linformation.

E Eh X Sh
S = Eh+Eb si X S = Eb+Eh si X

E Eb H Eh Eb B Sh
S = E si HB S = 0 si HB
Figure 6.5.15 : Deux types de barrires

Sb

Sb

S = 0+Eb si HB S = Eh+0 si HB

6.5.2.6. Applications.
Soit a procder au dcodage des codes oprations reprsents en figure 6.5.16.

Figure 6.5.16 : Un exemple de codes oprations


Micro Programmation

Page 6 41

Chaque code opration est constitu de deux parties, la premire reprsentative de lopration elle mme, la seconde prcisant le type dadressage. Il existe plusieurs solutions pour effectuer le dcodage de ce jeu dinstructions. Dun point de vue gnral, le problme consiste dcoder la foncion raliser, effectuer un adressage et associer les deux.

Figure 6.5.17 : Schma gnral du mcanisme daccs au squencement.

Une opration lmentaire pour conduire ce dcodage consiste rcuprer le code opration concern et y concatner une valeur constante pour constituer une adresse selon le modle de la figure 6.5.18.

Figure 6.5.18 : Passage dune instruction machine son micro programme (squencement)

Dans ces conditions, chaque code opration correspond une adresse laquelle sera trouv la squence de micro-code permettant lmulation de lopration concerne.

6.5.2.6. Oprations combines.


La technique prcdente nutilise pas les possibilits offertes par la structure de codage qui a t choisie pour la construction des oprations, en effet, le dcoupage du code opration en Opration-type dadressage permet un dcodage spar de chaque entit. Ainsi par exemple, il est possible dans un premier temps de dcoder le type dadressage afin de dterminer ladresse relle de loprande.
Page 6 42
Jacques Guizol & Christian Aperghis

Par exemple ce dcodage peut seffectuer en inversant les parties hautes et basses puis en masquant la partie base de la valeur ainsi obtenue selon le schma da la figure 6.5.19. Ainsi, les trois types dadressage gnreront trois adresses auxquelles on trouvera les micro instructions constituant la mthode daccs ladresse relle de loprande contenu dans linstruction machine.

Figure 6.5.19 : Accs aux micro instructions oprant ladressage prcis dans linstruction machine

Dans le mme ordre dide, une srie doprations (figure 6.5.20) comportant un croisement des parties hautes et basses suivi dun masque et dune concatnation permet de gnrer les adresses correspondant aux oprations concernes.

Figure 6.5.20 : Oprations combines pour laccs au micro code des oprations.

6.5.3. Enchanement des micro instructions.


Les micro instructions doivent senchaner les unes la suite des autres pour que lensemble du micro programme puisse se drouler. Il existe plusieurs principes de base qui peuvent tre combins entre eux pour
Micro Programmation

Page 6 43

que cet enchanement soit effectif.

6.5.3.1. Enchanement implicite


La notion denchanement implicite des micro instructions implique un calcul simple (incrmentation) pour passer systmatiquement dune adresse la suivante. Ceci est rendu possible par un simple circuit combinatoire (un incrmenteur) qui permettra de dterminer ladresse suivante selon le schma de principe de la figure 6.5.21.

Figure 6.5.21 : Enchanement implicite des micro instructions.

Lopration effectue est dans ces conditions ( Reg I) + 1 ! Reg I

6.5.3.2. Enchanement explicite


Dans ces conditions, ladresse de la micro instruction suivante est contenue dans le corps de la micro instruction prsente. Ce type denchanement correspond la notion de rupture de squence de la programmation conventionnelle. Il existe deux faons diffrentes de spcifier ladresse :

! Absolue. ! Relative.
Adresse absolue.
Dans ces conditions ladresse prcise est celle de la micro instruction excuter, il nest ncessaire de procder aucun calcul. Le champ concerne est simplement redirig vers le micro compteur ordinal selon le schma de la figure 6.5.22.

Figure 6.5.22 : Chanage absolu des micro instructions.

Lopration effectue est : ( Enchanement) ! Reg I


Page 6 44
Jacques Guizol & Christian Aperghis

Adresse relative.
Si ladresse est donne en relatif, un calcul dadresse doit tre effectu pour gnrer ladresse relle partir de ladresse courante (contenue dans le micro compteur ordinal) et le dplacement (positif ou ngatif) contenu dans le champ enchanement de la micro instruction. Un exemple dimplantation de cette technique est donn en figure 6.5.23.

Figure 6.5.23 : Chanage relatif des micro instructions.

Lopration effectue est : (Reg I) + ( Dplacement) ! Reg I

6.5.3.3. Enchanement explicite conditionnel


Il est de plus possible dajouter au calcul dadressage la notion de condition. Par exemple, la figure 6.5.24 propose un principe de squenceur chanage relatif comportant la notion de condition.

Figure 6.5.24 : Enchanement conditionnel

Un multiplexeur permet de slectionner une condition parmi celles positionnes par les oprations de la machine. Cette condition, une fois slectionne, est prsente sur lentre report de loprateur effectuant le calcul de ladresse. Dans ces conditions, le systme peut gnrer deux adresses en fonction de ltat de lindicateur slectionn :
Micro Programmation

Page 6 45

! !

Si lindicateur est positionn 0, la condition est considre comme fausse, alors le calcul effectu est (Reg I) + ( Dplacement) ! Reg I Si lindicateur est positionn 1, la condition est considre comme vraie, alors le calcul effectu est (Reg I) + ( Dplacement) + 1 ! Reg I.

6.5.4. Un exemple de squenceur.


Si nous regroupons les divers principes prsents ci-dessus, nous pouvons imaginer un squenceur offrant un certain nombre de possibilits de contrle de ladresse. Par exemple, considrons la figure 6.5.25.

Figure 6.5.25 : Un exemple de squenceur

Le squencement comporte trois champs que nous allons dtailler.

! Le type denchanement.
Ce champ va spcifier le mode de calcul de ladresse.

! ! ! !

0 1 2 3

: (Adresse) ! Micro compteur ordinal : (Micro compteur ordinal) + 1 ! Micro compteur ordinal : (Registre Tampon) ! Micro compteur ordinal : Si condition vrifie alors (Micro compteur ordinal) + 1 ! Micro compteur ordinal sinon (Adresse) ! Micro compteur ordinal

! La condition denchanement.
Si lenchanement est de type 3 (conditionnel) alors ce champ indiquera quelle doit tre le condition retenue pour effectuer le test, il sera inutilis pour tous les autres enchanements.

! La valeur du dplacement
Si lenchanement est de type 0 (chanage) ou 3 (conditionnel) alors ce champ devra indiquer le dplacement. Il sera inutilis pour tous les autres enchanements.
Page 6 46
Jacques Guizol & Christian Aperghis

La ralisation dune telle structure est particulirement simple (figure 6.5.26).

Figure 6.5.26 : Ralisation du squenceur.

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 Squencement incrmental.


Dans ces conditions, un squencement de type incrmental se prsentera comme indiqu en figure 6.5.27.

Figure 6.5.27 : Modle de fonctionnement du squencement incrmental.

Micro Programmation

Page 6 47

6.5.4.2. Le squencement inconditionnel.


Le squencement inconditionnel correspond en fait un branchement, son fonctionnement est dcrit figure 6.5.28.

Figure 6.5.28 : Modle de fonctionnement du squencement inconditionnel.

6.5.4.3. Le squencement conditionnel.


Prenons par exemple le cas dun squencement conditionnel pour lequel la condition serait que le rsultat de la dernire opration soit nul. Son fonctionnement est dcrit figure 6.5.29.

Figure 6.5.29 : Modle de fonctionnement du squencement conditionnel.

6.5.5. Structuration de la Micro-programmation.


Bien que globalement une micro instruction se doive, en fin de compte, de fournir des commandes la machines relle, structurellement, elle peut se prsenter sous deux formes totalement diffrentes qui sont :

! La micro programmation horizontale. ! La micro programmation verticale.


Page 6 48
Jacques Guizol & Christian Aperghis

6.5.5.1. La micro programmation horizontale.


Principe :
Les micro-instructions sont codes en champs regroupant des commandes mutuellement exclusives. On distinguera deux types principaux de champs : ! Les oprandes " Origine " Type d'opration " Destination " Mmoire " Entres / Sorties

! Lenchanement
Le schma de principe de la micro programmation horizontale est prsent en figure 6.5.30.

Figure 6.5.30 : Schma de principe de la micro programmation horizontale.

Dans ce type de structure, chaque signal attach un champ particulier est asservi la phase dhorloge laquelle sont assujettis lensemble des signaux qui le constituent (figure 6.5.31).

Figure 6.5.31 :Relations entre les lments en micro programmation horizontale.


Micro Programmation

Page 6 49

Le fonctionnement gnral peut ainsi tre prsent sous la forme dun diagramme 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

Co n+1

Co n+2 I n+1

Co n+3 I n+2

Co n+4 I n+3

Co n+5 I n+4

Co n+6 I n+5

Champ "

Cdes "

Champ #

I n+1

I n+2

I n+3

I n+4

I n+5

Cdes # Champ et Cdes $

I n+1

I n+2

I n+3

I n+4

I n+5

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 dfinition du traitement effectuer. ! L'indication sur la manire de dcouper et dinterprter le champ prcdent.
Ce type de structure dont l'aspect gnral n'est pas sans rappeler la programmation (assembleur) a comme consquences :

! ! !

Lenchanement implicite (et en gnral squentiel) des microinstructions. La restriction du nombre de champs (et donc une grande compacit de la commande) en ne dfinissant que ceux qui sont utiliss pour l'opration concerne. L'obligation de disposer d'une classe de micro-instructions spcifiques pour les ruptures de squence.

Le schma de principe de la micro programmation verticale est prsent en figure 6.5.33.

Page 6 50

Jacques Guizol & Christian Aperghis

Figure 6.5.33 : Schma de principe de la micro programmation verticale.

Dans ce type de structure, ce sont les signaux qui sont rpartis sur les asservissements lis aux diffrentes phases dhorloge (figure 6.5.34).

Micro Programmation

Page 6 51

Code Op. Adresse

Champs

Enchanement

!2

Conditions CO

!2
Dcodeur 1/n

!1

Valid
Dcodeur 1/n

Commandes actives en !1

Cdes

Commandes actives en !1 et !2 Commandes actives en !2

Valid
Dcodeur 1/n

Commandes actives en !1

Cdes

Commandes actives en !1 et !2 Commandes actives en !2

Valid
Dcodeur 1/n

Commandes actives en !1

Mmoire de Microprogrammation

Cdes

Commandes actives en !1 et !2 Commandes actives en !2

Figure 6.5.34 : Relations entre les lments en micro programmation verticale.

Page 6 52

Jacques Guizol & Christian Aperghis