22. Registres et bus

Retour au sommaire de C O D E

Ce chapitre montre comment les composants du processeur sont reliés aux deux bus, un bus de données 8 bits et un bus d'adresse 16 bits. Nous nous concentrons sur la rangée ou banc de registres, qui gère des octets dans sept registres identifiés A (Accumulateur), B, C, D, E, H (octet Haut) et L (octet bas, Low).

N.d.T : Comme dans les autres chapitres, nous avons pris soin de ne pas franciser les noms des signaux dès qu'ils se rencontrent tels quels même en France dans les documents des fabricants. Ainsi, par exemple, le signal d'horloge en entrée du registre accumulateur garde le nom Accumulator Clock.

Une rangée de registres simplifiée (p. 361)

Cette première version comporte sept verrous identifiés par des lettres. Les signaux d'entrée et de sortie des verrous ne sont pas montrés car l'espace est limité. Les entrées sur 8 bits sont en haut et les sorties en bas. Le signal d'horloge Clock est à gauche. Les verrous sont contrôlés par les deux signaux Clock et le trio de boutons formant sélecteur d'entrée (Input Select) en haut à gauche.

Chaque sortie de verrou est reliée à un tampon triple-état TRI. Les entrées sont en haut et les sorties en bas. Le signal Enable entre par la droite. Ces tampons sont pilotés par les signaux Enable et celui du sélecteur de sortie (Output Select) en haut à droite.

Élément canvas non géré par ce navigateur.

L'Accumulateur est toujours disponible et incarne l'entrée A de l'ALU.

Un Incrémenteur/Décrémenteur (p. 367)

Il est de temps à autre nécessaire d'incrémenter ou de décrémenter une valeur sur 16 bits. Le processeur a été doté d'un circuit dédié à ces opérations.

Élément canvas non géré par ce navigateur.

Choisissez une valeur hexadécimale sur 16 bits au moyen des quatre molettes au milieu en haut. Chaque molette contrôle un des quatre chiffres. Utilisez ensuite en haut à gauche le bouton Clock pour copier la valeur dans le registre 16 bits. Une action sur les boutons Décrémenter ou Incrémenter en haut à droite active le tampon TRI qui affiche la valeur en bas.

Soyez vigilant : en enchaînant les essais, on finit par oublier de cliquer à chaque fois le bouton de prise en compte Clock pour que la valeur désirée soit copiée dans le verrou.

Une rangée de registres plus polyvalente (p. 369)

Le circuit de registres ci-dessus mérite deux améliorations pour devenir plus polyvalent. Il faudrait d'abord que le registre Accumulateur puisse être contrôlé indépendemment des autres, pour pouvoir stocker et récupérer des valeurs dans cet Accumulateur. Ce complément correspond au circuit ajouté sur la gauche.

La seconde retouche consiste à connecter les deux registres H et L au bus d'addresse. Cette paire HL sert en effet à l'adressage mémoire et son contenu doit pouvoir être incrémenté et décrémenté, ce qui a nécessité les aménagements ajoutés sur la droite.

Le prochain chapitre propose de relier cette rangée de registres à un bus de données 8 bits et un bus d'adresse 16 bits. Le premier bus correspond au rotacteur 8 bits du haut et à la Sortie 8 bits en bas. De même, le bus d'adresse correspond au rotacteur 16 bits et à la Sortie 16 bits.

Élément canvas non géré par ce navigateur.

Ce banc de registres reste compatible avec celui montré plus haut en y rajoutant cinq signaux de contrôle.

Pour copier et préserver dans l'Accumulateur la valeur se trouvant sur le bus de données (celle définie par le rotacteur de saisie 8 bits), cliquez le bouton d'horloge Accumulator Clock. Pour injecter plus tard cette même valeur depuis l'Accumulateur vers le bus de données, utilisez le bouton Accumulator Enable.

Le rotacteur 16 bits sert à définir une valeur sur le bus d'adresse. Pour stocker cette adresse dans la paire de registres HL, cliquez d'abord HL Select de sorte que le bouton s'illumine pour confirmer la prise en compte de la valeur sur 32 bits du rotacteur. Cliquez alors HL Clock pour copier la valeur dans la paire de registres H et L. Pour injecter plus tard cette même valeur depuis la paire HL vers le bus d'addresse (symbolisé ici par l'afficheur Sortie 16 bits), utilisez le bouton HL Enable.


Retour au sommaire