• Aucun résultat trouvé

La micro-programmation

Dans le document ARCHITECTUREDES ORDINATEURS (Page 101-105)

5.3 Composition du s´equenceur

5.3.2 La micro-programmation

La deuxi`eme m´ethode de synth`ese du s´equenceur consiste `a utiliser une m´emoire (en g´en´eral morte) pour r´ealiser le s´equenceur. Pour chacune des phases, on peut identifier les commandes participant `a la r´ealisation de celle-ci (figure 5.25). Ces valeurs sont enregistr´ees dans une m´emoire qu’il suffit de balayer pour obtenir l’ex´ecution de la commande.

Phase i Phase i+1

Micro-commande

Commande 1 Commande 2 Commande n

0 1 0

1

1 0 1

1 0 0 1 0

Figure5.25 : Les micro-commandes Cette m´emoire comporte :

− Une partie micro-commandes: `a un instant donn´e, les commandes sont repr´esentables par un vecteur bool´een que nous avons d´esign´e par micro-instruction. Chaque ´el´ement binaire d’un mot de la m´emoire indique l’´etat d’une des micro-commandes dans la phase.

− Une partieadresse: le s´equenceur est une machine s´equentielle. Ses ´etats sont d´efinis par les entr´ees de la m´emoire de micro-programme [18] et ses transitions par les adresses indiquant dans chaque entr´ee de cette m´emoire l’entr´ee correspondant `a l’´etat suivant.

Cette technique a ´et´e propos´ee parWilkesen 1951[28]. A un instant donn´e, on dispose donc (figure5.26) :

− Des commandes correspondant `a la phase courante ;

− De l’adresse de la case contenant les commandes associ´ees `a l’´etat suivant.

Contrôle

Comptage/Chargement

Compteur

Mémoire de micro-programme

Adresse micro-instruction suivante

Décodeur Registre Instruction

Adresses Commandes

Figure5.26 : Structure g´en´erale du s´equenceur micro-programm´e

Le compteurmicro-compteurouµ-compteurest assimilable `a un compteur ordinal. Il fournit des adresses en m´emoire de micro-programme, assurant ainsi le d´eroulement s´equentiel des phases de l’instruction. Cette technique de micro-programmation permet une grande souplesse dans la d´efinition du jeu d’instructions. Elle offre en particulier `a l’utilisateur la possibilit´e d’en cr´eer de nouvelles si l’ensemble fourni par le constructeur ne lui suffit pas.

Bien sˆur, dans ce cas, la m´emoire comporte une partie “morte” d´efinissant le jeu d’instructions standard et une partie “vive” utilisable pourmicro-coderde nouvelles instructions.

Exemple 5.1 (Vax 8700) Le Vax 8700 deDigital Equipmentdisposait d’une RAM de 16KO pour le micro-code, dont chaque mot faisait 144 bits. 15 Ko correspondaient au jeu d’instruction standard et l’utilisateur disposait de 1 Ko pour la programmation ´eventuelle de nouvelles instructions.

La gestion des adresses

A chaque instruction correspond, dans la m´emoire de micro-programme, une suite de micro-instructions occupant des cases m´emoire g´en´eralement con-tigu¨es, c’est-`a-dire d’adresses successives. Ce n’est pourtant pas toujours le cas. Reprenons en effet les grandes lignes du d´eroulement d’une instruction :

− Test des lignes du bus de contrˆole ;

− Recherche de l’instruction en m´emoire centrale (en fonction de ce qu’a donn´e le test pr´ec´edent) : cette phase, syst´ematique et commune `a toutes les instructions, est suivie de d´ecodage. Ce dernier donne lieu `a une initialisation de l’adresse de traitement (d´ebut du micro-programme cor-respondant) ;

− Evaluation des adresses des op´erandes ´eventuels : cette phase de pr´eparation du chemin de donn´ees est susceptible de provoquer des ruptures de s´equence dans l’ex´ecution du micro-programme associ´e `a l’instruction courante (en fonction du mode d’adressage, en particulier) ;

− Ex´ecution de l’instruction : cette phase est elle aussi sujette `a des rup-tures de s´equence conditionn´ees par la valeur des drapeaux (branchements conditionnels).

Il y aura tout int´erˆet `a ne pas coder plusieurs fois des parties iden-tiques de micro-programme. Le d´eroulement d’une suite de micro-instructions pourra donc donner lieu `a des ruptures de s´equence assimilables `a des sous-programmes. Il est donc indispensable de disposer d’un m´ecanisme de sauve-garde de l’adresse de retour comme dans un sous-programme conventionnel.

Cette sauvegarde s’effectuera g´en´eralement `a l’aide d’une pile cˆabl´ee.

En r´esum´e leµ-compteur pourra ˆetre modifi´e :

− par incr´ementation,

− par chargement :

– `a partir du d´ecodage de l’instruction,

– `a partir de l’adresse contenue dans la m´emoire de micro-programme, conditionn´ee par la valeur des bits de drapeaux,

– `a partir de la pile de sauvegarde utilis´ee par les “micro” sous-programmes.

Le d´ecodage d’instructions: l’obtention de l’adresse d’entr´ee dans la m´emoire de micro-programme `a partir du d´ecodeur peut ˆetre r´ealis´ee `a l’aide d’une m´emoire morte utilis´ee comme transcodeur. Pour ´eviter de perdre de la place, on pr´ef`ere utiliser des composants du type P.L.A. (Programmable Logic Array) assimilables `a des R.O.M. o`u les connexions dans les r´eseaux de portes ET et OU seraient laiss´ees au soin de l’utilisateur.

Les branchements conditionnels:

1. La technique la plus simple ne fournit, dans la m´emoire de micro-programme, que la partie forte de l’adresse suivante sur nbits. Les bits de poids faible sont constitu´es des kdrapeaux. L’adressage est donc fait surn+kbits (figure5.27).

2. Une deuxi`eme m´ethode inclut dans la micro-instruction un code carac-t´eristique des drapeaux (si l’on a huit drapeaux, trois bits suffisent). Ce code permet de s´electionner le drapeau impliqu´e dans l’instruction par l’interm´ediaire d’un multiplexeur et ainsi de d´eterminer l’action `a en-treprendre (chargement ou incr´ement du µ-compteur) (figure 5.28).

Mémoire de micro-programme

k drapeaux

Micro-instruction

suivante

Micro-commandes

Adresses n bits

Figure5.27 : Les branchements (1)

Mémoire de micro-programme

Logique de contrôle

Multiplexeur Code du drapeau

Drapeaux Adresses

Micro-commandes

Figure5.28 : Les branchements (2)

Les formats des micro-instructions

Etant donn´ee la diversit´e des signaux `a engendrer, l’affectation d’un bit `a chaque commande conduit `a des m´emoires de micro-commandes dont les mots sont tr`es longs. On parle alors demicro-programmation horizontale.

Dans un souci d’´economie, on peut envisager de regrouper les comman-des par champs (figure 5.29) et de les coder au lieu d’affecter un bit `a cha-cune. On perd alors en rapidit´e et on augmente la complexit´e de la logique de d´ecodage. En pratique, on arrive `a des m´emoires dont la longueur des mots atteint une centaine de bits. Ce type de micro-programmation qui utilise des m´emoires plus compactes, donc moins coˆuteuses, est connue sous le nom de micro-programmation verticale.

2k2 commandes

Décodeur Décodeur Décodeur Décodeur k1 bits k2 bits k3 bits k4 bits

Figure5.29 : Codage par champs

Exemple 5.2 (Vax 8650) Le Vax 8650 de DEC disposait de 8 Ko organis´es en mots de 92 bits tandis que le Vax 8200, moins performant, poss`edait 16 Ko, dont 1 Ko programmable, en mots de 40 bits.

Dans le document ARCHITECTUREDES ORDINATEURS (Page 101-105)