Documente Academic
Documente Profesional
Documente Cultură
6. Micro Programmation
Du cblage la microprogrammation. Les constituants physiques dune machine Notion de transfert Notion de micro-programmation Relations entre programme et micro-programme
! ! !
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
Stocker une information dans un registre (figure 6.2.2) cest : Afficher l'information sur l'entre. Actionner la commande d'criture.
Accder une information pralablement stocke dans un registre cest valider le passage de cette information travers les barrires de sortie (figure 6.2.3).
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
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.
rigoureusement constante et gale un cycle. ! La machine virtuelle excute des instructions dont la dure est variable en fonction de la complexit des oprations.
" 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.
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.
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
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
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 .
Page 6 6
Etat Initial
Le dcodage du code opration permet de dterminer l'adresse de la routine spcifique permettant l'mulation de l'instruction.
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.
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 :
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.
" 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 :
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
Ecriture
}
Temps d'xcution du transfert
Registre destination
Page 6 8
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
" # $ %
Un Un Un Un
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
! 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
! 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.
R2
Comp
R1
S2
Ecriture R1
Signal
Bus B
Figure 6.3.8 : Points dapparition des signaux dinformation.
Page 6 10
Signal de commande
S1
S2
Ecriture Registre R 2
&
'
! "# $
& 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.
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.
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
Remarque importante : Il est interdit de slectionner simultanment plusieurs portes de validation , c'est dire d'avoir des origines multiples.
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.
Page 6 12
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
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
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
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
La finalit de lopration ncessitant laction simultane dune slection et dune criture, il est impratif que les donnes soient stables au moment de lcriture.
Dfinition :
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
Dfinition :
On appellera oprateur de traitement. un systme combinatoire effectuant une opration arithmtique ou logique unaire ou binaire et fournissant un rsultat.
! ! !
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)
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 :
& ' (
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.
! !
Ainsi par exemple, pour effectuer lopration : (A) + (B) - (D) + (E) ! F, il sera indispensable de raliser les transferts suivants :
Page 6 16
& (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
! !
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 :
. . . . .
Micro Programmation
Page 6 17
Tamp1
Tamp2
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
Bus
Result
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 :
& ' ( ) * + ,
. . . . . . .
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
Registre Instruction
Compteur ordinal
Adresse Mmoire
Donne Mmoire
Bus universel
B
Reg 0
Reg 1
Reg n
Oprat. Z
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
Mmoire
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.
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
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.
! 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 .
! 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.
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 :
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.
! ! !
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 :
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!
! !
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 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
! ! !
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 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!
! !
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.
1 Priode = 1 Cycle
1 Priode = 1 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
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.
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.
R0
E-R0
R1
E-R1
C
Figure 6.4.7 : Chemin de donnes pour le premier transfert.
Page 6 27
Second cycle (fig. 6.4.8), transfert du contenu du registre R2 dans le registre R0. Soit : (R2)!!!R0
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.
! ! ! ! ! ! ! !
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
Micro Programmation
Page 6 29
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.
R.Adr
E-R.Adr
E-Mem
C
Figure 6.4.13 : Chemin de donne en criture mmoire.
Page 6 30
Sel-R2 A ! C E-Mem
Sel-Mem B ! C E-R2
Donc
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).
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.
Page 6 32
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.
! ! ! !
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.
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
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
Il est impossible au programme usager d'accder de quelque faon que ce soit la mmoire de micro-programmation.
Page 6 34
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.
Page 6 35
Ce mcanisme se reproduisant chaque cycle lenchanement des micro instructions est ainsi assur.
Au changement de cycle, cest dire chaque nouvelle criture du micro compteur ordinal, une nouvelle micro instruction se prsente et donc de nouvelles commandes.
TR1 I
Enchanement
!1-!2
Machine relle
Cette adresse prsente au cours du cycle courant sera prise en compte en fin de #2 rendant effectif le branchement.
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
Cest entre autre, comme nous le verrons ultrieurement, ce mcanisme qui sera utilis pour procder au dcodage dun code opration.
Page 6 38
! ! ! !
TR1-mI TR-Adr
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
Figure 6.5.11 :
6.5.2.2. Concatnation.
Figure 6.5.12 :
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
Adresse
Elment
n-1 n-i n-i-1 0
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.
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.
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.
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.
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.
Page 6 43
! 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.
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.
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.
! 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
" C = TE1 . TE0 " B = TE1 . TE0 + TE1 . TE0 .CE " C = TE1 . TE0
Micro Programmation
Page 6 47
! Lenchanement
Le schma de principe de la micro programmation horizontale est prsent en figure 6.5.30.
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).
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
I n+1
I n+2
I n+3
I n+4
I n+5
! 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.
Page 6 50
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
Champs
Enchanement
!2
Conditions CO
!2
Dcodeur 1/n
!1
Valid
Dcodeur 1/n
Commandes actives en !1
Cdes
Valid
Dcodeur 1/n
Commandes actives en !1
Cdes
Valid
Dcodeur 1/n
Commandes actives en !1
Mmoire de Microprogrammation
Cdes
Page 6 52