Chapitre IV
Transfert de Registre et Micro-op´ erations
Langage De Transfert De Registre
Langage De Transfert De Registre
L’organisation mat´erielle interne d’un syst`eme num´erique, par exemple d’un ordinateur num´erique, se d´efinit le mieux en sp´ecifiant:
1 L’ensemble de registres qu’il contient et leurs fonctions.
2 L’ensemble de micro-op´erations qui peuvent ˆetre ex´ecut´ees sur les informations binaires contenues dans chaque registre.
3 Le syst`eme de contrˆole qui initie la s´equence des micro-op´erations.
Une op´eration ex´ecut´ee sur des donn´ees rang´ees dans des registres est appel´ee une micro-op´eration.
Le d´ecalage, le comptage, la remise `a z´ero, le chargement, sont des exemples de micro-op´erations.
La notation symbolique utilis´ee pour d´ecrire les micro-op´erations de transferts entre registres est appel´eelangage de transfert de registre.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 3 / 54
Transfer de Registre Registres
Registres
Figure 1:Diagrammes bloc possible d’un registre
Les registres des ordinateurs sont d´esign´es par des lettres majuscules, possiblement suivies par des chiffres.
R1: registre de donn´ees pour usage g´en´eral.
MAR(Memory Address Register): un registre qui garde l’adresse du mot `a aller chercher en m´emoire.
PC(program counter): registre du compteur ordinal.
IR(instruction register): registre de l’instruction.
Dans la figure ci-dessus,PC(L), ouPC(0–7), correspond `a l’octet d’ordre bas, tandis que
Transfer de Registre Transfert de Registre
Transfert de Registre
L’expressionR2←R1 d´enote le transfert du contenu du registreR1 vers le registreR2.
Par d´efinition, le contenu du registre source,R1, ne change pas apr`es le transfert.
L’expressionR2←R1,R1←R2 d´enote que les deux op´erations de transfert doivent ˆetre ex´ecut´ees au mˆeme instant (`a la mˆeme impulsion d’horloge). Dans ce cas particulier, il s’agit de l’´echange des contenus deR1 etR2.
Table 1:Symboles de base des transferts de registre
Symbole Description Exemples
Lettres (et chiffres) D´enote un registre MAR, R2 Parenth`eses ( ) D´enotent une partie d’un registre R2(0–7),R2(L) Fl`eche `a gauche← D´enote un transfert d’information R2←R1
Virgule , S´epare deux micro-op´erations R2←R1 ,R5←MAR
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 5 / 54
Transfer de Registre Fonction de Contrˆole
Fonction de Contrˆ ole
Unefonction de contrˆoleest une variable bool´eenne. Elle est incluse dans l’expression du transfert de registre comme suit:
P: R2←R1 L’expression ci-dessus signifie:
si(P= 1)alors(R2←R1)
Transfer de Registre Fonction de Contrˆole
La figure suivante montre un diagramme en bloc du circuit n´ecessaire pour effectuer une telle micro-op´eration conditionnelle de transfert de registre.
Figure 2:Transfert deR1 `aR2 lorsqueP= 1 nd´enote le nombre de bits dans un registre.
Pest activ´e `a la mont´ee d’une impulsion d’horloge `a l’instantt.
A la prochaine transition d’horloge, `a l’instantt+ 1, l’entr´ee de chargement (load) est active, et les lignes de donn´ees deR2 sont connect´ees aux lignes de sorties de donn´ees deR1. A cet instant, le contenu deR1 est charg´e en parall`ele dansR2 (chargement en parall`ele).
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 7 / 54
Bus et Transferts de M´emoire Bus Commun
Bus Commun
Un ordinateur num´erique typique comprend un grand nombre de registres.
Le nombre de fils serait excessif si on utilisait des fils distincts pour connecter chaque registre
`
a tous les autres.
Une fa¸con plus efficace de transf´erer de l’information entre les registres est d’utiliser un syst`eme debus commun.
Une structure avec bus consiste en des lignes communes, une pour chaque bit d’un registre,
`
a travers lesquelles l’information binaire est transf´er´ee.
Les signaux de contrˆole, ou les bits de s´election de bus, d´eterminent quels registres doivent ˆ
etre choisis par le bus durant chaque transfert de registre
Bus et Transferts de M´emoire Bus Commun
On peut construire un syst`eme de bus commun en utilisant des multiplexeurs.
Table 2: Table de fonction de bus S1 S0 Registre choisi
0 0 A
0 1 B
1 0 C
1 1 D
Figure 3:Un syst`eme de bus pour quatre registres en utilisant des multiplexeurs
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 9 / 54
Bus et Transferts de M´emoire Bus Commun
En g´en´eral, un syst`eme de bus denlignes qui multiplexe 2k registres est compos´e de:
2k registres denbits chacun (puisque c’est un bus de n lignes)
n2k×1-multiplexeurs: chaque multiplexeur poss`ede 2kbits de donn´ees,kbits de s´election, et 1 bit de sortie.
Example 1.
Un bus commun pour 8 registres de 16 bits chacun est compos´e de:
16 multiplexeurs (un pour chaque ligne du bus) Chaque multiplexeur doit avoir:
8 lignes d’entr´ee de donn´ees (une pour chaque registre) 3 bits de s´election
Bus et Transferts de M´emoire Bus Commun
Le transfert d’information d’un bus vers l’un des nombreux registres de destination peut se faire en connectant les lignes de bus aux entr´ees de tous les registres de destination, et en activant uniquement le bit de contrˆole du chargement du registre de destination choisi.
Le transfert d’information entre deux registres `a travers le bus peut ˆetre symbolis´e explicitement par
BUS←C, R1←BUS
ou implicitement par
R←C
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 11 / 54
Bus et Transferts de M´emoire Tampons `a Trois Etats (Three-State Buffers)
Tampons ` a Trois Etats (Three-State Buffers)
Un syst`eme de bus peut aussi ˆetre construit avec des portes `a trois ´etats au lieu de multiplexeurs.
Une porte `a trois ´etats est un circuit num´erique qui poss`ede 3 ´etats:
Deux de ces ´etats correspondent `a des signaux ´equivalents aux signaux logiques 1 et 0, comme pour des portes conventionnelles.
Le troisi`eme ´etat est un ´etat de haute imp´edance.
Dans l’´etat dehaute imp´edance, la porte se comporte comme un circuit ouvert (imaginez dans cet ´etat que la porte est “d´econnect´ee”).
Bus et Transferts de M´emoire Tampons `a Trois Etats (Three-State Buffers)
Les portes `a trois ´etats peuvent se pr´esenter sous diff´erentes formes, telles que des portes ET, NON-ET, etc.
Cependant, celle qui est la plus couramment utilis´ee dans la conception des syst`emes de bus est laporte tampon `a trois ´etats.
Figure 4:Symbole graphique d’un tampon `a trois ´etats
Table 3:Table de fonction d’un tampon `a trois ´etats Entr´ee de contrˆole Entr´ee de donn´ees Sortie
1 0 0
1 1 1
0 x Haute imp´edance
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 13 / 54
Bus et Transferts de M´emoire Tampons `a Trois Etats (Three-State Buffers)
Figure 5:Une ligne de bus avec des tampons `a trois ´etats
La construction d’un syst`eme de bus avec des tampons `a trois ´etats est montr´ee sur la figure ci-dessus.
Bus et Transferts de M´emoire Tampons `a Trois Etats (Three-State Buffers)
Pour ˆetre certain qu’il n’y a pas plus qu’une entr´ee de contrˆole active `a tout instant, on utilise un d´ecodeur.
Lorsque l’entr´eeEnabledu d´ecodeur est 0, toutes ses sorties sont remises `a 0⇒la ligne de bus est dans l’´etat de haute imp´edance (“d´econnect´ee” d’un point de vue logique).
Lorsque l’entr´ee Enable est 1, l’entr´ee du tampon s´electionn´e est transf´er´ee `a la ligne de bus.
Dans ce cas, le circuit ci-dessus se comporte comme un multiplexeur 4×1.
Pour construire un syst`eme de bus commun pour quatre registres denbits chacun en utilisant des tampons `a trois ´etats, il faut utiliserncircuits de Figure 5. Cependant, seul un d´ecodeur, commun `a tous, est requis.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 15 / 54
Bus et Transferts de M´emoire Transfert de M´emoire
Transfert de M´ emoire
Dans ce qui suit, nous utiliserons la lettreMpour symboliser un mot en m´emoire.
Le registre d’adresse (address register) qui garde l’adresse en m´emoire du mot auquel on veut acc´eder sera symbolis´e parAR.
Le registre de donn´ees (data register) qui garde le mot `a ˆetre lu ou ´ecrit en m´emoire sera symbolis´e parDR.
Une op´eration de lecture s’´ecrit ainsi:
Read: DR←M[AR]
et signifie
sila fonction de contrˆole (le signal de contrˆole de la m´emoire) Read est 1,alors transf´erer le mot rang´e `a l’adresse indiqu´ee dans le registre AR vers le registre DR.
Bus et Transferts de M´emoire Transfert de M´emoire
Une op´eration d’´ecriture en m´emoire s’´ecrit comme suit:
Write: M[AR]←DR et signifie
sila fonction de contrˆole (le signal de contrˆole de la m´emoire) Write est 1,alors transf´erer le mot rang´e dans le registre DR vers le mot en m´emoire dont l’adresse est indiqu´ee dans le registre AR.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 17 / 54
Micro-op´erations Arithm´etiques
Micro-op´ erations Arithm´ etiques
Les micro-op´erations les plus rencontr´ees dans les ordinateurs num´eriques sont classifi´ees en 4 cat´egories:
1 Micro-op´erations de transfert de registre : elles transf`erent les donn´ees binaires d’un registre
` a l’autre.
2 Micro-op´erations arithm´etiques : elles effectuent des micro-op´erations arithm´etiques telles que les additions et les soustractions sur des donn´ees num´eriques rang´ees dans les registres.
3 Micro-op´erations logiques : elles effectuent des op´erations de manipulation de bits sur les donn´ees rang´ees dans les registres.
4 Micro-op´erations de d´ecalage : elles effectuent des op´erations de d´ecalage sur les donn´ees rang´ees dans les registres.
Nous avons d´ej`a vu les micro-op´erations de transfert de registre.
Dans ce qui suit, nous allons pr´esenter les trois autres types de micro-op´erations.
Micro-op´erations Arithm´etiques Micro-op´eration d’Addition
Micro-op´ eration d’Addition
La micro-op´eration d´efinie par l’expression:
R3←R1 +R2
d´enote une micro-op´eration d’addition.
Elle signifie que le contenu du registreR1 est ajout´e au contenu du registreR2, et la somme est transf´er´ee au registreR3.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 19 / 54
Micro-op´erations Arithm´etiques Micro-op´eration de Soustraction
Micro-op´ eration de Soustraction
Soustraire le contenu du registreR2 du contenu du registreR1, et ranger le r´esultat dans le registreR3, peut s’´ecrire des deux fa¸cons suivantes:
R3←R1−R2 or R3←R1 +R2 + 1 R2 d´enote le compl´ement des donn´ees rang´ees dans le registreR2.
La Table 4 fait la liste des micro-op´erations de base les plus courantes.
Micro-op´erations Arithm´etiques Micro-op´eration de Soustraction
Table 4:Micro-op´erations de base D´esignation
# Symbolique Description
1. R3←R1 +R2 Contenu deR1 plusR2 transf´er´e versR3 2. R3←R1−R2 Contenu deR1 moinsR2 transf´er´e versR3 3. R2←R2 Compl´ement du contenu deR2 (compl´ement `a 1) 4. R2←R2 + 1 Compl´ement `a 2 du contenu deR2 (n´egation) 5. R3←R1 +R2 + 1 R1 plus le compl´ement `a 2 deR2 (soustraction) 6. R1←R1 + 1 Incr´emente de 1 le contenu deR1
7. R1←R1−1 D´ecr´emente de 1 le contenu deR1
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 21 / 54
Micro-op´erations Arithm´etiques Additionneur Binaire
Additionneur Binaire
Pour l’impl´ementation mat´erielle de la micro-op´eration d’addition, il est n´ecessaire d’avoir au moins deux registres pour garder les deux nombres `a ˆetre ajout´es, possiblement un troisi`eme registre pour ranger le r´esultat de l’op´eration, et un circuit combinatoire pour effectuer l’addition arithm´etique.
Un circuit combinatoire qui ajoute deux bits et un bit de retenue est appel´e un additionneur complet (full adder, FA){voir chapitre 1}
Le circuit combinatoire qui effectue la somme arithm´etique de deux nombres denbits est appel´e un additionneur binaire denbits.
Typiquement, un additionneur binaire denbits est construit `a partir denadditionneurs complets connect´es en cascade, chaque retenue de sortie ´etant connect´ee `a la retenue d’entr´ee du prochain additionneur complet.
Micro-op´erations Arithm´etiques Additionneur Binaire
Figure 6:Un additionneur de 4 bits
La Figure 6 montre les interconnexions de 4 additionneurs complets pour faire un additionneur de 4 bits.
Dans ce cas, les nombres additionn´es sontA3A2A1A0etB3B2B1B0, et sont normalement rang´es dans deux registres de 4 bitsAetB.
La somme est repr´esent´ee parS3S2S1S0, et peut ˆetre appliqu´ee aux lignes d’entr´ee d’un certain registre.
La retenue d’entr´ee dui`eme bit estCi, aveci= 0,1,2,3.
La retenue de sortie du bit3 estC4.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 23 / 54
Micro-op´erations Arithm´etiques Additionneur/Soustracteur Binaire
Additionneur/Soustracteur Binaire
L’op´eration (A−B) est accomplie en effectuant l’op´eration (A+B+ 1), ce qui n’est autre qu’une op´eration d’addition.
Ainsi, l’addition et soustraction peuvent ˆetre combin´ees en un circuit commun, qui utilise un bit de contrˆole, que l’on peut appelerM, pour indiquer le type de l’op´eration d´esir´ee.
Supposons queM= 0 indique une addition (A+B), etM= 1 indique une soustraction (A−B), qui est aussi (A+B+ 1).
Alors, on veut utiliser la valeur deM pour effectuer une sorte de “transformation” deB.
Cette transformation serait:
siM= 0, alors garder le deuxi`eme op´erandeBtel quel, et remettre la retenue d’entr´eeC0`a 0, afin d’effectuer (A+B+ 0) = (A+B).
sinon, siM= 1, alors prendre le compl´ement `a 1 du deuxi`eme op´erande pour formerBet mettre la retenue d’entr´eeC0`a 1, afin d’effectuer (A+B+ 1) = (A−B).
Les deux expressions ci-dessus peuvent ˆetre combin´ees en une seule de la mani`ere suivante:
Effectuer A+ (M⊕B) +M
Micro-op´erations Arithm´etiques Additionneur/Soustracteur Binaire
Avec cette m´ethode, l’exemple pr´ec´edent d’un additionneur binaire de 4 bits `a la Figure 6 peut ˆetre r´earrang´e en un additionneur/soustracteur binaire de 4 bits, comme sur la Figure 7.
Figure 7:Additionneur/Soustracteur binaire de 4 bits
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 25 / 54
Micro-op´erations Arithm´etiques Additionneur/Soustracteur Binaire
Pour les nombres non-sign´es,
LorsqueM= 0 (micro-op´eration d’addition),Sn−1. . .S1S0donne le r´esultat de (A+B). Un d´ebordement a lieu siCn= 1.
LorsqueM= 1 (micro-op´eration de soustraction) et siA≥B, alorsSn−1. . .S1S0donne le r´esultat de (A−B). Il ne peut pas y avoir de d´ebordement dans ce cas.
LorsqueM= 1 (micro-op´eration de soustraction) et siA<B, alorsSn−1. . .S1S0donne le r´esultat du compl´ement `a 2 de (B−A). Il ne peut pas y avoir de d´ebordement dans ce cas.
Pour les nombres sign´es,
LorsqueM= 0 (micro-op´eration d’addition), alorsSn−1. . .S1S0donne le r´esultat de (A+B). Un d´ebordement a lieu siCn⊕Cn−1= 1.
LorsqueM= 1 (micro-op´eration de soustraction), alorsSn−1. . .S1S0donne le r´esultat de (A−B).
Un d´ebordement a lieu siCn⊕Cn−1= 1.
Micro-op´erations Arithm´etiques Incr´ementeur Binaire
Incr´ ementeur Binaire
Une fa¸con d’impl´ementer un incr´ementeur binaire est d’utiliser un compteur binaire.
Cependant, le circuit num´erique du compteur binaire d´epend fortement du type de bascules utilis´ees.
Une autre fa¸con d’impl´ementer un incr´ementeur binaire est d’utiliser des demi-additionneurs (HA) connect´es en cascade.
Le circuit combinatoire d’un incr´ementeur binaire denbits qui op`ere sur un nombre binaire A=An−1. . .A0est compos´e de:
ndemi-additionneurs (HA)
n+ 1 bits d’entr´ee:A0,. . .,An−1, et 1
n+ 1 bits de sortie: la sommeSn−1. . .S0, et le bit de retenue de sortieCn
Les deux bits d’entr´ee du premier demi-additionneur (HA0) sontA0et 1.
Les deux bits d’entr´ee de chaque autre demi-additionneur (HAi), o`ui= 1, . . . ,n−1, sontAi
et la retenue de sortieCi−1du demi-additionneur pr´ec´edent.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 27 / 54
Micro-op´erations Arithm´etiques Incr´ementeur Binaire
Example 2 (Incr´ementeur de 4 bits).
La figure suivante montre le circuit logique d’un incr´ementeur binaire de 4 bits.
Micro-op´erations Arithm´etiques Circuit Arithm´etique
Circuit Arithm´ etique
Diff´erentes micro-op´erations peuvent ˆetre impl´ement´ees en un circuit combinatoirecommun appel´ecircuit arithm´etique, ouunit´e arithm´etique.
L’id´ee derri`ere la conception d’une unit´e arithm´etique denbits qui op`ere sur deux nombres AetB denbits est d’´ecrire le r´esultatDde chaque micro-op´eration sous la forme
D=A+Y +Cin ,
O`uY est le r´esultat d’une sorte de “transformation” deB, etCinest soit 0, soit 1.
Une unit´e arithm´etique denbits qui effectue 2k micro-op´erations arithm´etiques est compos´ee de:
Deux lignes d’entr´ee de donn´ees denbits,AetY
nadditionneurs complets, chacun des additionneurs complets travaillant sur un bit deA, un bit de Y, et la retenue de sortie de l’additionneur complet pr´ec´edent
nmultiplexeurs de type 2k×1 , chacun des multiplexeurs g´en´erant un bit deY kbits de s´electionSn−1. . .S0qui sont communs `a tous les multiplexeurs
Parfois, suivant les micro-op´erations `a ˆetre effectu´ees par l’unit´e arithm´etique, il est utile d’assigner Cin`a l’un des bits de s´election
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 29 / 54
Micro-op´erations Arithm´etiques Circuit Arithm´etique
Example 3.
Concevez une unit´e arithm´etique de 4 bits qui effectue les micro-op´erations arithm´etiques qui se trouvent dans la table ci-dessous.
Table 5:Table de fonction du circuit arithm´etique Bits de s´election Sortie
S1 S0 Cin D=A+Y+Cin Micro-op´eration
0 0 0 D=A+B Addition
0 0 1 D=A+B+ 1 Addition avec retenue
0 1 0 D=A+B Soustraction avec emprunt (D=A−B−1) 0 1 1 D=A+B+ 1 Soustraction (D=A−B)
1 0 0 D=A Transfert deA
1 0 1 D=A+ 1 Incr´ementation deA
1 1 0 D=A−1 D´ecr´ementation deA
1 1 1 D=A Transfert deA
Le diagramme logique de cette unit´e arithm´etique est montr´e `a la Figure 9.
Micro-op´erations Arithm´etiques Circuit Arithm´etique
Figure 9:Circuit arithm´etique de 4 bits
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 31 / 54
Micro-op´erations Logiques
Micro-op´ erations Logiques
Les micro-op´erations logiques effectuent des op´erations binaires bool´eennes ordinaires sur des donn´ees rang´ees dans deux registres.
Un exemple de micro-op´eration logique est
R1←R1⊕R2,
qui effectue une op´eration OU-EXCLUSIF sur le contenu des registresR1 etR2 et range le r´esultat dansR1.
Afin de distinguer une addition arithm´etique d’une micro-op´eration logique OU Une micro-op´eration de OU logique sera symbolis´ee par un “∨”.
De mˆeme, une micro-op´eration de ET logique sera symbolis´ee par un “∧”.
Lorsqu’un symbole “+” apparaˆıt dans une fonction de contrˆole, il d´enotera toujours une op´eration OU (car on ne peut pas le confondre avec une addition).
Micro-op´erations Logiques
Example 4.
L’expression
P+Q: R1←R2 +R3, R4←R5∨R6 signifie:
si (P= 1 ouQ= 1), alors faire les micro-op´erations et charger leurs r´esultats dans leurs registres respectifs `a la mˆeme impulsion d’horloge:
AjouterR2 etR3 et ranger le r´esultat dansR1, et
Effectuer une op´eration de OU logique surR5 etR6 et ranger le r´esultat dansR4.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 33 / 54
Micro-op´erations Logiques
La Table 6 regroupe 16 micro-op´erations logiques qui peuvent ˆetre effectu´ees sur le contenu de deux registresAetB.
Table 6:16 micro-op´erations logiques
Micro-op´erations Logiques Circuit Logique
Circuit Logique
Un circuit qui effectue un ensemble de micro-op´erations logiques s’appelle uneunit´e logique, ou uncircuit logique.
Un circuit logique denbits qui peut effectuer 2kop´erations logiques sur deux registresAet B denbits est compos´e de:
Deux lignes d’entr´ees de donn´ees denbits pourAetB
nmultiplexeurs de type 2k×1, chaque multiplexeur op´erant sur un bit de chaque registre L’op´eration logique particuli`ere `a ˆetre effectu´ee est choisie par leskbits de s´election qui sont communs auxnmultiplexeurs
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 35 / 54
Micro-op´erations Logiques Circuit Logique
Example 5 (Unit´e logique de 2 bits).
Concevez une unit´e logique de 2 bits pour effectuer les quatre micro-op´erations suivantes sur deux registres de 2 bitsA=A1A0etB=B1B0.
Unit´e logique de 2 bits⇒eux multiplexeurs, un pour chaque bit.
4 micro-op´erations⇒deux bits de s´electionS1etS0qui sont communs aux deux multiplexeurs.
D’abord, construire le circuit qui op`ere surA0etB0(circuit `a une ´etape). Ensuite,
construire autant de copies de ce circuit que n´ecessaire pour le restant des bits. Dans ce cas, une autre copie seulement est n´ecessaire pourA1etB1.
Empiler tous ces circuits ensemble pour former une unit´e logique denbits.
Table 7:Logic Circuit Function Table S´election
S1 S0 Sortie Op´eration
0 0 E=A∧B ET
0 1 E=A∨B OU
1 0 E=A⊕B OU-EXCLUSIF
Micro-op´erations Logiques Applications
Applications
Les micro-op´erations logiques sont couramment utilis´ees pour manipuler des bits individuellement ou des portions d’un mot rang´e dans un registre.
Des exemples de telles manipulations de bits sont : remise `a z´ero de certains bits, ou bien mise `a 1.
Dans ce qui suit, nous allons voir `a travers certains exemples comment manipuler un ensemble de bits dans un registre (registreA).
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 37 / 54
Micro-op´erations Logiques Applications
Mise ` a 1 s´ elective
La micro-op´eration demise `a 1 s´electivemet certains bits `a 1, et garde le reste des bits inchang´es.
La position des bits dansAqui seront affect´es par cette transformation est sp´ecifi´ee par un autre registre,B.
Les bits deAqui correspondent aux 1 dansB sont les bits qui seront mis `a 1.
1 0 1 0 Aavant
1 1 0 0 B
1 1 1 0 Aapr`es
Une telle transformation peut ˆetre faite en utilisant une micro-op´eration de OU logique (∨), et peut ˆetre symbolis´ee par l’expression suivante, en langage de transfert de registre (RTL):
A←A∨B.
Micro-op´erations Logiques Applications
Compl´ ementation s´ elective
La micro-op´eration de compl´ementation s´elective compl´emente les bits deAqui correspondent aux 1 deB. Le reste des bits deAest inchang´e.
1 0 1 0 Aavant
1 1 0 0 B
0 1 1 0 Aapr`es
Une telle transformation peut se faire par une micro-op´eration OU-EXCLUSIF logique (⊕), et peut ˆetre symbolis´ee par l’expression RTL suivante:
A←A⊕B.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 39 / 54
Micro-op´erations Logiques Applications
Remise ` a 0 s´ elective
La micro-op´eration deremise `a 0 s´electivemet `a 0 les bits deAqui correspondent aux 1 de B. Le reste des bits deAest inchang´e.
1 0 1 0 Aavant
1 1 0 0 B
0 0 1 0 Aapr`es
Une telle transformation peut se faire par une micro-op´eration de ET logique (∧), et peut ˆ
etre symbolis´ee par l’expression RTL suivante:
A←A∧B.
Micro-op´erations Logiques Applications
Masquage
La micro-op´eration de masquage met `a 0 les bits deAqui correspondent aux 0 deB. Le reste des bits deAest inchang´e.
1 0 1 0 Aavant
1 1 0 0 B(op´erande logique) 1 0 0 0 Aapr`es le masquage
Une telle transformation peut se faire par une micro-op´eration de ET logique (∧), et peut ˆ
etre symbolis´ee par l’expression RTL suivante:
A←A∧B.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 41 / 54
Micro-op´erations Logiques Applications
Insertion
La micro-op´eration d’insertion ins`ere une nouvelle valeur dans un groupe de bits.
Ceci se fait d’abord en masquant ce groupe de bits et en y appliquant un OU logique avec la valeur requise.
Si, par exemple, la valeur deAest 0110 1010, et on d´esire remplacer les 4 bits les plus `a gauche par 1001, alors on commence par masquer les bits que l’on veut remplacer
0110 1010 Aavant 0000 1111 B(masque) 0000 1010 Aapr`es le masquage puis on ins`ere la nouvelle valeur:
0000 1010 Aavant 1001 0000 B (insertion) 1001 1010 Aapr`es l’insertion
Une telle transformation peut se faire en utilisant les expressions RTL suivantes:
A←A∧B
Micro-op´erations Logiques Applications
Remise ` a 0
La micro-op´eration deremise `a 0compare les mots dansAet dansB, et produit un r´esultat qui se compose uniquement de 0 si les deux nombres sont ´egaux.
Ceci peut se faire en utilisant une op´eration logique OU-EXCLUSIF.
1 0 1 0 Aavant
1 0 1 0 B
0 0 0 0 A←A⊕B
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 43 / 54
Micro-op´erations de d´ecalage
Micro-op´ erations de d´ ecalage
Il y a trois types de micro-op´erations de d´ecalage:
D´ecalage logique, D´ecalage circulaire, et D´ecalage arithm´etique
Voici une liste des diff´erentes micro-op´erations de d´ecalage et leur notation.
Table 8:Micro-op´erations de d´ecalage D´esignation symbolique Description
R←shl R D´ecalage `a gauche du registreR R←shr R D´ecalage `a droite du registreR
R←cil R D´ecalage circulaire `a gauche du registreR R←cir R D´ecalage circulaire `a droite du registreR R←ashl R D´ecalage arithm´etique `a gauche du registreR R←ashr R D´ecalage arithm´etique `a droite du registreR
Micro-op´erations de d´ecalage D´ecalage logique
D´ ecalage logique
Un d´ecalage logique ins`ere un ’0’ dans le registre par l’entr´ee s´erie du registre.
shletshrseront dor´enavant utilis´es pour symboliser des micro-op´erations de d´ecalage `a gauche et de d´ecalage `a droite.
Example 6.
1001 Aavant
0100 Aapr`es (A←shr A)
1001 Aavant
0010 Aapr`es (A←shl A)
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 45 / 54
Micro-op´erations de d´ecalage D´ecalage circulaire
D´ ecalage circulaire
Led´ecalage circulaire(qu’on appelle parfois micro-op´eration derotation) fait circuler les bits du registre entre ses deux extr´emit´es sans perte d’information.
Ceci peut se faire en connectant la sortie s´erie du registre de d´ecalage `a son entr´ee s´erie.
Example 7.
1001 Aavant
0011 Aapr`es (A←cil A)
1001 Aavant
1100 Aapr`es (A←cir A)
Micro-op´erations de d´ecalage D´ecalage arithm´etique
D´ ecalage arithm´ etique
Und´ecalage arithm´etiqueest une micro-op´eration qui d´ecale un nombre sign´e `a gauche ou
` a droite
Un d´ecalage `a gauche arithm´etique effectue une multiplication sign´ee par 2.
Un d´ecalage `a droite arithm´etique effectue une division sign´ee par 2.
Un d´ecalage arithm´etique doit ˆetre fait de fa¸con `a ce que la valeur du bit de signe ne soit pas chang´ee.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 47 / 54
Micro-op´erations de d´ecalage D´ecalage arithm´etique
D´ ecalage ` a droite arithm´ etique
Le d´ecalage `a droite arithm´etique garde le bit de signe inchang´e et d´ecale le nombre (incluant le bit de signe) vers la droite.
Example 8.
1001 nombre sign´eA, avant le d´ecalage 1100 Aapr`es (A←ashr A)
0110 nombre sign´eA, avant le d´ecalage 0011 Aapr`es (A←ashr A)
La Figure 11 montre une micro-op´eration de d´ecalage `a micro-op´eration.
Micro-op´erations de d´ecalage D´ecalage arithm´etique
D´ ecalage ` a gauche arithm´ etique
Le d´ecalage `a gauche arithm´etique ins`ere un 0 `a la position la moins significative, et d´ecale tous les autres bits vers la gauche (incluant le bit de signe).
Dans ce cas, une inversion de signe peut avoir lieu, ce qui est consid´er´e comme un d´ebordement.
Un d´ebordement a lieu dans un registreRdenbits apr`es un d´ecalage `a gauche arithm´etique siinitialement, avant l’op´eration de d´ecalage, le bit de signeRn−1est diff´erent du bit pr´ec´edentRn−2.
Une bascule D de d´ebordement, dont la sortie estVs, peut alors ˆetre utilis´ee pour d´etecter les d´ebordements caus´es par les d´ecalages `a gauche
Vs←Rn−1⊕Rn−2, R←ashl R.
Pour que la d´etection de d´ebordement r´eussisse, les deux micro-op´erations doivent ˆetre d´eclench´ees `a lamˆemeimpulsion d’horloge.
Example 9.
1001 nombre sign´eA
0010 Aapr`es (A←ashl A) [d´ebordement]
1110 nombre sign´eA
1100 Aapr`es (A←ashl A) [pas de d´ebordement]
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 49 / 54
Micro-op´erations de d´ecalage Impl´ementation mat´erielle
Impl´ ementation mat´ erielle
Un circuit combinatoire de d´ecalage est montr´e `a la Figure 12.
Dans le cas de la figure:
siS= 0, alorsH=shr A(vers le bas sur la figure) siS= 1, alorsH=shl A(vers le haut sur la figure)
Le concepteur peut choisir ce qui entre dans les entr´ees s´erie, suivant la fonctionnalit´e d´esir´ee du circuit.
Figure 12:Circuit combinatoire de d´ecalage de 4 bits
Unit´e de d´ecalage/arithm´etique et logique
Unit´ e de d´ ecalage/arithm´ etique et logique
Une unit´e arithm´etique et logique (ALU) est un circuit combinatoire qui effectue des micro-op´erations arithm´etiques et logiques.
Une unit´e de d´ecalage/arithm´etique et logique (ALSU) est une ALU qui effectue aussi des micro-op´erations de d´ecalage.
Une fa¸con d’impl´ementer une ALSU denbits est de construire une ALSU `a un seul ´etage (pour un seul bit), et ensuite on empilencopies de ces circuits (une pour chaque bit) pour former l’ALSU compl`ete.
Toutes les copies de l’ALSU `a un ´etage utilisent les mˆemes bits de s´election.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 51 / 54
Unit´e de d´ecalage/arithm´etique et logique
Unit´e de d´ecalage/arithm´etique et logique
Une autre fa¸con d’impl´ementer une ALSU est de construire:
Une unit´e arithm´etique compl`ete Une unit´e logique compl`ete, et Une unit´e de d´ecalage compl`ete
et de passer les sorties de chaque unit´e `a un multiplexeur qui va s´electionner la sortie finale suivant les valeurs des bits de s´election.
Parfois, il est pratique de fusionner l’unit´e de d´ecalage et l’unit´e logique si cela simplifie la conception.
Wail Gueaieb (Universit´e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 53 / 54
Unit´e de d´ecalage/arithm´etique et logique
Example 10.
Concevez une unit´e de d´ecalage/arithm´etique et logique qui effectue les micro-op´erations d´ecrites par la table de fonction suivante.
Table 9:Table de fonction du ALSU