CEG2536: Architecture des Ordinateurs I

Transcription

CEG2536: Architecture des Ordinateurs I
Chapitre IV
Transfert de Registre et Micro-opérations
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
1 / 54
Langage De Transfert De Registre
Langage De Transfert De Registre
L’organisation matérielle interne d’un système numérique, par exemple d’un ordinateur
numérique, se définit le mieux en spécifiant:
1
2
3
L’ensemble de registres qu’il contient et leurs fonctions.
L’ensemble de micro-opérations qui peuvent être exécutées sur les informations binaires contenues
dans chaque registre.
Le système de contrôle qui initie la séquence des micro-opérations.
Une opération exécutée sur des données rangées dans des registres est appelée une
micro-opération.
Le décalage, le comptage, la remise à zéro, le chargement, sont des exemples de
micro-opérations.
La notation symbolique utilisée pour décrire les micro-opérations de transferts entre registres
est appelée langage de transfert de registre.
Wail Gueaieb (Université 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ésignés par des lettres majuscules, possiblement suivies
par des chiffres.
R1: registre de données pour usage général.
MAR (Memory Address Register): un registre qui garde l’adresse du mot à aller chercher en mémoire.
PC (program counter): registre du compteur ordinal.
IR (instruction register): registre de l’instruction.
Dans la figure ci-dessus, PC (L), ou PC (0–7), correspond à l’octet d’ordre bas, tandis que
PC (H), ou PC (8–15), correspond à l’octet d’ordre haut.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
4 / 54
Transfer de Registre
Transfert de Registre
Transfert de Registre
L’expression R2 ← R1 dénote le transfert du contenu du registre R1 vers le registre R2.
Par définition, le contenu du registre source, R1, ne change pas après le transfert.
L’expression R2 ← R1, R1 ← R2 dénote que les deux opérations de transfert doivent être
exécutées au même instant (à la même impulsion d’horloge). Dans ce cas particulier, il s’agit
de l’échange des contenus de R1 et R2.
Table 1: Symboles de base des transferts de registre
Symbole
Lettres (et chiffres)
Parenthèses ( )
Flèche à gauche ←
Virgule ,
Wail Gueaieb (Université d’Ottawa)
Description
Dénote un registre
Dénotent une partie d’un registre
Dénote un transfert d’information
Sépare deux micro-opérations
CEG2536: Architecture des Ordinateurs I
Exemples
MAR, R2
R2(0–7), R2(L)
R2 ← R1
R2 ← R1 , R5 ← MAR
Automne 2007
5 / 54
Transfer de Registre
Fonction de Contrôle
Fonction de Contrôle
Une fonction de contrôle est une variable booléenne. 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)
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
6 / 54
Transfer de Registre
Fonction de Contrôle
La figure suivante montre un diagramme en bloc du circuit nécessaire pour effectuer une
telle micro-opération conditionnelle de transfert de registre.
Figure 2: Transfert de R1 à R2 lorsque P = 1
n dénote le nombre de bits dans un registre.
P est activé à la montée d’une impulsion d’horloge à l’instant t.
A la prochaine transition d’horloge, à l’instant t + 1, l’entrée de chargement (load) est active,
et les lignes de données de R2 sont connectées aux lignes de sorties de données de R1. A cet
instant, le contenu de R1 est chargé en parallèle dans R2 (chargement en parallèle).
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
7 / 54
Bus et Transferts de Mémoire
Bus Commun
Bus Commun
Un ordinateur numérique typique comprend un grand nombre de registres.
Le nombre de fils serait excessif si on utilisait des fils distincts pour connecter chaque registre
à tous les autres.
Une façon plus efficace de transférer de l’information entre les registres est d’utiliser un
système de bus commun.
Une structure avec bus consiste en des lignes communes, une pour chaque bit d’un registre,
à travers lesquelles l’information binaire est transférée.
Les signaux de contrôle, ou les bits de sélection de bus, déterminent quels registres doivent
être choisis par le bus durant chaque transfert de registre
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
8 / 54
Bus et Transferts de Mémoire
Bus Commun
On peut construire un système de bus commun en utilisant des multiplexeurs.
Table 2: Table de fonction de bus
S1
0
0
1
1
S0
0
1
0
1
Registre choisi
A
B
C
D
Figure 3: Un système de bus pour quatre registres en utilisant des
multiplexeurs
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
9 / 54
Bus et Transferts de Mémoire
Bus Commun
En général, un système de bus de n lignes qui multiplexe 2k registres est composé de:
2k registres de n bits chacun (puisque c’est un bus de n lignes)
n 2k × 1-multiplexeurs: chaque multiplexeur possède 2k bits de données, k bits de sélection,
et 1 bit de sortie.
Example 1.
Un bus commun pour 8 registres de 16 bits chacun est composé de:
16 multiplexeurs (un pour chaque ligne du bus)
Chaque multiplexeur doit avoir:
8 lignes d’entrée de données (une pour chaque registre)
3 bits de sélection
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
10 / 54
Bus et Transferts de Mémoire
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ées de tous les registres de destination, et en
activant uniquement le bit de contrôle du chargement du registre de destination choisi.
Le transfert d’information entre deux registres à travers le bus peut être symbolisé
explicitement par
BUS ← C ,
R1 ← BUS
ou implicitement par
R←C
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
11 / 54
Bus et Transferts de Mémoire
Tampons à Trois Etats (Three-State Buffers)
Tampons à Trois Etats (Three-State Buffers)
Un système de bus peut aussi être construit avec des portes à trois états au lieu de
multiplexeurs.
Une porte à trois états est un circuit numérique qui possède 3 états:
Deux de ces états correspondent à des signaux équivalents aux signaux logiques 1 et 0, comme pour
des portes conventionnelles.
Le troisième état est un état de haute impédance.
Dans l’état de haute impédance, la porte se comporte comme un circuit ouvert (imaginez
dans cet état que la porte est “déconnectée”).
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
12 / 54
Bus et Transferts de Mémoire
Tampons à Trois Etats (Three-State Buffers)
Les portes à trois états peuvent se présenter sous différentes formes, telles que des portes
ET, NON-ET, etc.
Cependant, celle qui est la plus couramment utilisée dans la conception des systèmes de bus
est la porte tampon à trois états.
Figure 4: Symbole graphique d’un tampon à trois états
Table 3: Table de fonction d’un tampon à trois états
Entrée de contrôle
1
1
0
Wail Gueaieb (Université d’Ottawa)
Entrée de données
0
1
x
CEG2536: Architecture des Ordinateurs I
Sortie
0
1
Haute impédance
Automne 2007
13 / 54
Bus et Transferts de Mémoire
Tampons à Trois Etats (Three-State Buffers)
Figure 5: Une ligne de bus avec des tampons à trois états
La construction d’un système de bus avec des tampons à trois états est montrée sur la figure
ci-dessus.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
14 / 54
Bus et Transferts de Mémoire
Tampons à Trois Etats (Three-State Buffers)
Pour être certain qu’il n’y a pas plus qu’une entrée de contrôle active à tout instant, on
utilise un décodeur.
Lorsque l’entrée Enable du décodeur est 0, toutes ses sorties sont remises à 0 ⇒ la ligne de
bus est dans l’état de haute impédance (“déconnectée” d’un point de vue logique).
Lorsque l’entrée Enable est 1, l’entrée du tampon sélectionné est transférée à la ligne de bus.
Dans ce cas, le circuit ci-dessus se comporte comme un multiplexeur 4 × 1.
Pour construire un système de bus commun pour quatre registres de n bits chacun en
utilisant des tampons à trois états, il faut utiliser n circuits de Figure 5. Cependant, seul un
décodeur, commun à tous, est requis.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
15 / 54
Bus et Transferts de Mémoire
Transfert de Mémoire
Transfert de Mémoire
Dans ce qui suit, nous utiliserons la lettre M pour symboliser un mot en mémoire.
Le registre d’adresse (address register) qui garde l’adresse en mémoire du mot auquel on
veut accéder sera symbolisé par AR.
Le registre de données (data register) qui garde le mot à être lu ou écrit en mémoire sera
symbolisé par DR.
Une opération de lecture s’écrit ainsi:
Read:
DR ← M[AR]
et signifie
si la fonction de contrôle (le signal de contrôle de la mémoire) Read est 1, alors
transférer le mot rangé à l’adresse indiquée dans le registre AR vers le registre DR.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
16 / 54
Bus et Transferts de Mémoire
Transfert de Mémoire
Une opération d’écriture en mémoire s’écrit comme suit:
Write:
M[AR] ← DR
et signifie
si la fonction de contrôle (le signal de contrôle de la mémoire) Write est 1, alors
transférer le mot rangé dans le registre DR vers le mot en mémoire dont l’adresse
est indiquée dans le registre AR.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
17 / 54
Micro-opérations Arithmétiques
Micro-opérations Arithmétiques
Les micro-opérations les plus rencontrées dans les ordinateurs numériques sont classifiées en 4
catégories:
1
Micro-opérations de transfert de registre : elles transfèrent les données binaires d’un registre
à l’autre.
2
Micro-opérations arithmétiques : elles effectuent des micro-opérations arithmétiques telles
que les additions et les soustractions sur des données numériques rangées dans les registres.
3
Micro-opérations logiques : elles effectuent des opérations de manipulation de bits sur les
données rangées dans les registres.
4
Micro-opérations de décalage : elles effectuent des opérations de décalage sur les données
rangées dans les registres.
Nous avons déjà vu les micro-opérations de transfert de registre.
Dans ce qui suit, nous allons présenter les trois autres types de micro-opérations.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
18 / 54
Micro-opérations Arithmétiques
Micro-opération d’Addition
Micro-opération d’Addition
La micro-opération définie par l’expression:
R3 ← R1 + R2
dénote une micro-opération d’addition.
Elle signifie que le contenu du registre R1 est ajouté au contenu du registre R2, et la somme
est transférée au registre R3.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
19 / 54
Micro-opérations Arithmétiques
Micro-opération de Soustraction
Micro-opération de Soustraction
Soustraire le contenu du registre R2 du contenu du registre R1, et ranger le résultat dans le
registre R3, peut s’écrire des deux façons suivantes:
R3 ← R1 − R2
or
R3 ← R1 + R2 + 1
R2 dénote le complément des données rangées dans le registre R2.
La Table 4 fait la liste des micro-opérations de base les plus courantes.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
20 / 54
Micro-opérations Arithmétiques
Micro-opération de Soustraction
Table 4: Micro-opérations de base
#
1.
2.
3.
4.
5.
6.
7.
Désignation
Symbolique
R3 ← R1 + R2
R3 ← R1 − R2
R2 ← R2
R2 ← R2 + 1
R3 ← R1 + R2 + 1
R1 ← R1 + 1
R1 ← R1 − 1
Wail Gueaieb (Université d’Ottawa)
Description
Contenu de R1 plus R2 transféré vers R3
Contenu de R1 moins R2 transféré vers R3
Complément du contenu de R2 (complément à 1)
Complément à 2 du contenu de R2 (négation)
R1 plus le complément à 2 de R2 (soustraction)
Incrémente de 1 le contenu de R1
Décrémente de 1 le contenu de R1
CEG2536: Architecture des Ordinateurs I
Automne 2007
21 / 54
Micro-opérations Arithmétiques
Additionneur Binaire
Additionneur Binaire
Pour l’implémentation matérielle de la micro-opération d’addition, il est nécessaire d’avoir au
moins deux registres pour garder les deux nombres à être ajoutés, possiblement un troisième
registre pour ranger le résultat de l’opération, et un circuit combinatoire pour effectuer
l’addition arithmétique.
Un circuit combinatoire qui ajoute deux bits et un bit de retenue est appelé un additionneur
complet (full adder, FA) {voir chapitre 1}
Le circuit combinatoire qui effectue la somme arithmétique de deux nombres de n bits est
appelé un additionneur binaire de n bits.
Typiquement, un additionneur binaire de n bits est construit à partir de n additionneurs
complets connectés en cascade, chaque retenue de sortie étant connectée à la retenue
d’entrée du prochain additionneur complet.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
22 / 54
Micro-opérations Arithmétiques
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és sont A3 A2 A1 A0 et B3 B2 B1 B0 , et sont normalement
rangés dans deux registres de 4 bits A et B.
La somme est représentée par S3 S2 S1 S0 , et peut être appliquée aux lignes d’entrée d’un
certain registre.
La retenue d’entrée du ième bit est Ci , avec i = 0, 1, 2, 3.
La retenue de sortie du bit3 est C4 .
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
23 / 54
Micro-opérations Arithmétiques
Additionneur/Soustracteur Binaire
Additionneur/Soustracteur Binaire
L’opération (A − B) est accomplie en effectuant l’opération (A + B + 1), ce qui n’est autre
qu’une opération d’addition.
Ainsi, l’addition et soustraction peuvent être combinées en un circuit commun, qui utilise un
bit de contrôle, que l’on peut appeler M, pour indiquer le type de l’opération désirée.
Supposons que M = 0 indique une addition (A + B), et M = 1 indique une soustraction
(A − B), qui est aussi (A + B + 1).
Alors, on veut utiliser la valeur de M pour effectuer une sorte de “transformation” de B.
Cette transformation serait:
si M = 0, alors garder le deuxième opérande B tel quel, et remettre la retenue d’entrée C0 à 0, afin
d’effectuer (A + B + 0) = (A + B).
sinon, si M = 1, alors prendre le complément à 1 du deuxième opérande pour former B et mettre la
retenue d’entrée C0 à 1, afin d’effectuer (A + B + 1) = (A − B).
Les deux expressions ci-dessus peuvent être combinées en une seule de la manière suivante:
Effectuer
Wail Gueaieb (Université d’Ottawa)
A + (M ⊕ B) + M
CEG2536: Architecture des Ordinateurs I
Automne 2007
24 / 54
Micro-opérations Arithmétiques
Additionneur/Soustracteur Binaire
Avec cette méthode, l’exemple précédent d’un additionneur binaire de 4 bits à la Figure 6
peut être réarrangé en un additionneur/soustracteur binaire de 4 bits, comme sur la Figure 7.
Figure 7: Additionneur/Soustracteur binaire de 4 bits
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
25 / 54
Micro-opérations Arithmétiques
Additionneur/Soustracteur Binaire
Pour les nombres non-signés,
Lorsque M = 0 (micro-opération d’addition), Sn−1 . . . S1 S0 donne le résultat de (A + B). Un
débordement a lieu si Cn = 1.
Lorsque M = 1 (micro-opération de soustraction) et si A ≥ B, alors Sn−1 . . . S1 S0 donne le résultat
de (A − B). Il ne peut pas y avoir de débordement dans ce cas.
Lorsque M = 1 (micro-opération de soustraction) et si A < B, alors Sn−1 . . . S1 S0 donne le résultat
du complément à 2 de (B − A). Il ne peut pas y avoir de débordement dans ce cas.
Pour les nombres signés,
Lorsque M = 0 (micro-opération d’addition), alors Sn−1 . . . S1 S0 donne le résultat de (A + B). Un
débordement a lieu si Cn ⊕ Cn−1 = 1.
Lorsque M = 1 (micro-opération de soustraction), alors Sn−1 . . . S1 S0 donne le résultat de (A − B).
Un débordement a lieu si Cn ⊕ Cn−1 = 1.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
26 / 54
Micro-opérations Arithmétiques
Incrémenteur Binaire
Incrémenteur Binaire
Une façon d’implémenter un incrémenteur binaire est d’utiliser un compteur binaire.
Cependant, le circuit numérique du compteur binaire dépend fortement du type de bascules
utilisées.
Une autre façon d’implémenter un incrémenteur binaire est d’utiliser des demi-additionneurs
(HA) connectés en cascade.
Le circuit combinatoire d’un incrémenteur binaire de n bits qui opère sur un nombre binaire
A = An−1 . . . A0 est composé de:
n demi-additionneurs (HA)
n + 1 bits d’entrée: A0 , . . ., An−1 , et 1
n + 1 bits de sortie: la somme Sn−1 . . . S0 , et le bit de retenue de sortie Cn
Les deux bits d’entrée du premier demi-additionneur (HA0 ) sont A0 et 1.
Les deux bits d’entrée de chaque autre demi-additionneur (HAi ), où i = 1, . . . , n − 1, sont Ai
et la retenue de sortie Ci−1 du demi-additionneur précédent.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
27 / 54
Micro-opérations Arithmétiques
Incrémenteur Binaire
Example 2 (Incrémenteur de 4 bits).
La figure suivante montre le circuit logique d’un incrémenteur binaire de 4 bits.
Figure 8: Incrémenteur binaire de 4 bits
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
28 / 54
Micro-opérations Arithmétiques
Circuit Arithmétique
Circuit Arithmétique
Différentes micro-opérations peuvent être implémentées en un circuit combinatoire commun
appelé circuit arithmétique, ou unité arithmétique.
L’idée derrière la conception d’une unité arithmétique de n bits qui opère sur deux nombres
A et B de n bits est d’écrire le résultat D de chaque micro-opération sous la forme
D = A + Y + Cin ,
Où Y est le résultat d’une sorte de “transformation” de B, et Cin est soit 0, soit 1.
Une unité arithmétique de n bits qui effectue 2k micro-opérations arithmétiques est
composée de:
Deux lignes d’entrée de données de n bits, A et Y
n additionneurs complets, chacun des additionneurs complets travaillant sur un bit de A, un bit de
Y , et la retenue de sortie de l’additionneur complet précédent
n multiplexeurs de type 2k × 1 , chacun des multiplexeurs générant un bit de Y
k bits de sélection Sn−1 . . . S0 qui sont communs à tous les multiplexeurs
Parfois, suivant les micro-opérations à être effectuées par l’unité arithmétique, il est utile d’assigner
Cin à l’un des bits de sélection
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
29 / 54
Micro-opérations Arithmétiques
Circuit Arithmétique
Example 3.
Concevez une unité arithmétique de 4 bits qui effectue les micro-opérations arithmétiques qui se
trouvent dans la table ci-dessous.
Table 5: Table de fonction du circuit arithmétique
Bits de sélection
S1
S0
Cin
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
D
D
D
D
D
D
D
D
D
Sortie
= A + Y + Cin
=A+B
=A+B +1
=A+B
=A+B +1
=A
=A+1
=A−1
=A
Micro-opération
Addition
Addition avec retenue
Soustraction avec emprunt (D = A − B − 1)
Soustraction (D = A − B)
Transfert de A
Incrémentation de A
Décrémentation de A
Transfert de A
Le diagramme logique de cette unité arithmétique est montré à la Figure 9.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
30 / 54
Micro-opérations Arithmétiques
Circuit Arithmétique
Figure 9: Circuit arithmétique de 4 bits
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
31 / 54
Micro-opérations Logiques
Micro-opérations Logiques
Les micro-opérations logiques effectuent des opérations binaires booléennes ordinaires sur des
données rangées dans deux registres.
Un exemple de micro-opération logique est
R1 ← R1 ⊕ R2,
qui effectue une opération OU-EXCLUSIF sur le contenu des registres R1 et R2 et range le
résultat dans R1.
Afin de distinguer une addition arithmétique d’une micro-opération logique OU
Une micro-opération de OU logique sera symbolisée par un “∨”.
De même, une micro-opération de ET logique sera symbolisée par un “∧”.
Lorsqu’un symbole “+” apparaı̂t dans une fonction de contrôle, il dénotera toujours une
opération OU (car on ne peut pas le confondre avec une addition).
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
32 / 54
Micro-opérations Logiques
Example 4.
L’expression
P + Q : R1 ← R2 + R3 , R4 ← R5 ∨ R6
signifie:
si (P = 1 ou Q = 1), alors faire les micro-opérations et charger leurs résultats dans leurs registres
respectifs à la même impulsion d’horloge:
Ajouter R2 et R3 et ranger le résultat dans R1, et
Effectuer une opération de OU logique sur R5 et R6 et ranger le résultat dans R4.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
33 / 54
Micro-opérations Logiques
La Table 6 regroupe 16 micro-opérations logiques qui peuvent être effectuées sur le contenu de
deux registres A et B.
Table 6: 16 micro-opérations logiques
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
34 / 54
Micro-opérations Logiques
Circuit Logique
Circuit Logique
Un circuit qui effectue un ensemble de micro-opérations logiques s’appelle une unité logique,
ou un circuit logique.
Un circuit logique de n bits qui peut effectuer 2k opérations logiques sur deux registres A et
B de n bits est composé de:
Deux lignes d’entrées de données de n bits pour A et B
n multiplexeurs de type 2k × 1, chaque multiplexeur opérant sur un bit de chaque registre
L’opération logique particulière à être effectuée est choisie par les k bits de sélection qui sont
communs aux n multiplexeurs
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
35 / 54
Micro-opérations Logiques
Circuit Logique
Example 5 (Unité logique de 2 bits).
Concevez une unité logique de 2 bits pour effectuer les quatre micro-opérations suivantes sur
deux registres de 2 bits A = A1 A0 et B = B1 B0 .
Unité logique de 2 bits ⇒ eux multiplexeurs, un pour chaque bit.
4 micro-opérations ⇒ deux bits de sélection S1 et S0 qui sont communs aux deux
multiplexeurs.
D’abord, construire le circuit qui opère sur A0 et B0 (circuit à une étape). Ensuite,
construire autant de copies de ce circuit que nécessaire pour le restant des bits. Dans ce cas,
une autre copie seulement est nécessaire pour A1 et B1 .
Empiler tous ces circuits ensemble pour former une unité logique de n bits.
Table 7: Logic Circuit Function Table
Sélection
S1
S0
0
0
0
1
1
0
1
1
Sortie
E =A∧B
E =A∨B
E =A⊕B
E =A
Opération
ET
OU
OU-EXCLUSIF
Complément
Figure 10: Circuit logique à une étape
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
36 / 54
Micro-opérations Logiques
Applications
Applications
Les micro-opérations logiques sont couramment utilisées pour manipuler des bits
individuellement ou des portions d’un mot rangé dans un registre.
Des exemples de telles manipulations de bits sont : remise à zéro de certains bits, ou bien
mise à 1.
Dans ce qui suit, nous allons voir à travers certains exemples comment manipuler un
ensemble de bits dans un registre (registre A).
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
37 / 54
Micro-opérations Logiques
Applications
Mise à 1 sélective
La micro-opération de mise à 1 sélective met certains bits à 1, et garde le reste des bits
inchangés.
La position des bits dans A qui seront affectés par cette transformation est spécifiée par un
autre registre, B.
Les bits de A qui correspondent aux 1 dans B sont les bits qui seront mis à 1.
1
1
0
1
1
0
0
0
A avant
B
1
1
1
0
A après
Une telle transformation peut être faite en utilisant une micro-opération de OU logique (∨),
et peut être symbolisée par l’expression suivante, en langage de transfert de registre (RTL):
A ← A ∨ B.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
38 / 54
Micro-opérations Logiques
Applications
Complémentation sélective
La micro-opération de complémentation sélective complémente les bits de A qui
correspondent aux 1 de B. Le reste des bits de A est inchangé.
1
1
0
1
1
0
0
0
A avant
B
0
1
1
0
A après
Une telle transformation peut se faire par une micro-opération OU-EXCLUSIF logique (⊕),
et peut être symbolisée par l’expression RTL suivante:
A ← A ⊕ B.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
39 / 54
Micro-opérations Logiques
Applications
Remise à 0 sélective
La micro-opération de remise à 0 sélective met à 0 les bits de A qui correspondent aux 1 de
B. Le reste des bits de A est inchangé.
1
1
0
1
1
0
0
0
A avant
B
0
0
1
0
A après
Une telle transformation peut se faire par une micro-opération de ET logique (∧), et peut
être symbolisée par l’expression RTL suivante:
A ← A ∧ B.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
40 / 54
Micro-opérations Logiques
Applications
Masquage
La micro-opération de masquage met à 0 les bits de A qui correspondent aux 0 de B. Le
reste des bits de A est inchangé.
1
1
0
1
1
0
0
0
A avant
B (opérande logique)
1
0
0
0
A après le masquage
Une telle transformation peut se faire par une micro-opération de ET logique (∧), et peut
être symbolisée par l’expression RTL suivante:
A ← A ∧ B.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
41 / 54
Micro-opérations Logiques
Applications
Insertion
La micro-opération d’insertion insère 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 de A est 0110 1010, et on désire remplacer les 4 bits les plus à
gauche par 1001, alors on commence par masquer les bits que l’on veut remplacer
0110 1010
0000 1111
A avant
B (masque)
0000 1010
A après le masquage
puis on insère la nouvelle valeur:
0000 1010
1001 0000
A avant
B (insertion)
1001 1010
A après l’insertion
Une telle transformation peut se faire en utilisant les expressions RTL suivantes:
A←A∧B
B ← l’opérande approprié
A←A∨B
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
42 / 54
Micro-opérations Logiques
Applications
Remise à 0
La micro-opération de remise à 0 compare les mots dans A et dans B, et produit un résultat
qui se compose uniquement de 0 si les deux nombres sont égaux.
Ceci peut se faire en utilisant une opération logique OU-EXCLUSIF.
Wail Gueaieb (Université d’Ottawa)
1
1
0
0
1
1
0
0
A avant
B
0
0
0
0
A←A⊕B
CEG2536: Architecture des Ordinateurs I
Automne 2007
43 / 54
Micro-opérations de décalage
Micro-opérations de décalage
Il y a trois types de micro-opérations de décalage:
Décalage logique,
Décalage circulaire, et
Décalage arithmétique
Voici une liste des différentes micro-opérations de décalage et leur notation.
Table 8: Micro-opérations de décalage
Désignation symbolique
R ← shl R
R ← shr R
R ← cil R
R ← cir R
R ← ashl R
R ← ashr R
Wail Gueaieb (Université d’Ottawa)
Description
Décalage à gauche du registre R
Décalage à droite du registre R
Décalage circulaire à gauche du registre R
Décalage circulaire à droite du registre R
Décalage arithmétique à gauche du registre R
Décalage arithmétique à droite du registre R
CEG2536: Architecture des Ordinateurs I
Automne 2007
44 / 54
Micro-opérations de décalage
Décalage logique
Décalage logique
Un décalage logique insère un ’0’ dans le registre par l’entrée série du registre.
shl et shr seront dorénavant utilisés pour symboliser des micro-opérations de décalage à
gauche et de décalage à droite.
Example 6.
1001
0100
A avant
A après (A ← shr A)
Wail Gueaieb (Université d’Ottawa)
1001
0010
CEG2536: Architecture des Ordinateurs I
A avant
A après (A ← shl A)
Automne 2007
45 / 54
Micro-opérations de décalage
Décalage circulaire
Décalage circulaire
Le décalage circulaire (qu’on appelle parfois micro-opération de rotation) fait circuler les
bits du registre entre ses deux extrémités sans perte d’information.
Ceci peut se faire en connectant la sortie série du registre de décalage à son entrée série.
Example 7.
1001
0011
A avant
A après (A ← cil A)
Wail Gueaieb (Université d’Ottawa)
1001
1100
CEG2536: Architecture des Ordinateurs I
A avant
A après (A ← cir A)
Automne 2007
46 / 54
Micro-opérations de décalage
Décalage arithmétique
Décalage arithmétique
Un décalage arithmétique est une micro-opération qui décale un nombre signé à gauche ou
à droite
Un décalage à gauche arithmétique effectue une multiplication signée par 2.
Un décalage à droite arithmétique effectue une division signée par 2.
Un décalage arithmétique doit être fait de façon à ce que la valeur du bit de signe ne soit pas
changée.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
47 / 54
Micro-opérations de décalage
Décalage arithmétique
Décalage à droite arithmétique
Le décalage à droite arithmétique garde le bit de signe inchangé et décale le nombre
(incluant le bit de signe) vers la droite.
Example 8.
1001
1100
0110
0011
nombre signé A, avant le décalage
A après (A ← ashr A)
nombre signé A, avant le décalage
A après (A ← ashr A)
La Figure 11 montre une micro-opération de décalage à micro-opération.
Figure 11: décalage à droite arithmétique
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
48 / 54
Micro-opérations de décalage
Décalage arithmétique
Décalage à gauche arithmétique
Le décalage à gauche arithmétique insère un 0 à la position la moins significative, et décale
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éré comme un
débordement.
Un débordement a lieu dans un registre R de n bits après un décalage à gauche arithmétique
si initialement, avant l’opération de décalage, le bit de signe Rn−1 est différent du bit
précédent Rn−2 .
Une bascule D de débordement, dont la sortie est Vs , peut alors être utilisée pour détecter
les débordements causés par les décalages à gauche
Vs ← Rn−1 ⊕ Rn−2 , R ← ashl R.
Pour que la détection de débordement réussisse, les deux micro-opérations doivent être
déclenchées à la même impulsion d’horloge.
Example 9.
1001
0010
nombre signé A
A après (A ← ashl A) [débordement]
Wail Gueaieb (Université d’Ottawa)
1110
1100
nombre signé A
A après (A ← ashl A) [pas de débordement]
CEG2536: Architecture des Ordinateurs I
Automne 2007
49 / 54
Micro-opérations de décalage
Implémentation matérielle
Implémentation matérielle
Un circuit combinatoire de décalage est montré à la Figure 12.
Dans le cas de la figure:
si S = 0, alors H = shr A (vers le bas sur la figure)
si S = 1, alors H = shl A (vers le haut sur la figure)
Le concepteur peut choisir ce qui entre dans les entrées série,
suivant la fonctionnalité désirée du circuit.
Figure 12: Circuit combinatoire
de décalage de 4 bits
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
50 / 54
Unité de décalage/arithmétique et logique
Unité de décalage/arithmétique et logique
Une unité arithmétique et logique (ALU) est un circuit combinatoire qui effectue des
micro-opérations arithmétiques et logiques.
Une unité de décalage/arithmétique et logique (ALSU) est une ALU qui effectue aussi des
micro-opérations de décalage.
Une façon d’implémenter une ALSU de n bits est de construire une ALSU à un seul étage
(pour un seul bit), et ensuite on empile n copies de ces circuits (une pour chaque bit) pour
former l’ALSU complète.
Toutes les copies de l’ALSU à un étage utilisent les mêmes bits de sélection.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
51 / 54
Unité de décalage/arithmétique et logique
Figure 13: Une unité de décalage/arithmétique et logique
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
52 / 54
Unité de décalage/arithmétique et logique
Une autre façon d’implémenter une ALSU est de construire:
Une unité arithmétique complète
Une unité logique complète, et
Une unité de décalage complète
et de passer les sorties de chaque unité à un multiplexeur qui va sélectionner la sortie finale
suivant les valeurs des bits de sélection.
Parfois, il est pratique de fusionner l’unité de décalage et l’unité logique si cela simplifie la
conception.
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
53 / 54
Unité de décalage/arithmétique et logique
Example 10.
Concevez une unité de décalage/arithmétique et logique qui effectue les micro-opérations décrites
par la table de fonction suivante.
Table 9: Table de fonction du ALSU
Wail Gueaieb (Université d’Ottawa)
CEG2536: Architecture des Ordinateurs I
Automne 2007
54 / 54