53
Chapitre IV Transfert de Registre et Micro-op´ erations Wail Gueaieb (Universit´ e d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 1 / 54

Chapitre IV Transfert de Registre et Micro-op´erationssite.uottawa.ca/~mgarz042/CEG2536/notes/chapitre4.pdf · Chapitre IV Transfert de Registre et Micro-op´erations Wail Gueaieb

  • Upload
    dokhue

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Chapitre IV

Transfert de Registre et Micro-operations

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 1 / 54

Langage De Transfert De Registre

Langage De Transfert De Registre

L’organisation materielle interne d’un systeme numerique, par exemple d’un ordinateurnumerique, se definit le mieux en specifiant:

1 L’ensemble de registres qu’il contient et leurs fonctions.2 L’ensemble de micro-operations qui peuvent etre executees sur les informations binaires contenues

dans chaque registre.3 Le systeme de controle qui initie la sequence des micro-operations.

Une operation executee sur des donnees rangees dans des registres est appelee unemicro-operation.

Le decalage, le comptage, la remise a zero, le chargement, sont des exemples demicro-operations.

La notation symbolique utilisee pour decrire les micro-operations de transferts entre registresest appelee langage de transfert de registre.

Wail Gueaieb (Universite 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 designes par des lettres majuscules, possiblement suiviespar des chiffres.

R1: registre de donnees pour usage general.MAR (Memory Address Register): un registre qui garde l’adresse du mot a aller chercher en memoire.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 a l’octet d’ordre bas, tandis quePC(H), ou PC(8–15), correspond a l’octet d’ordre haut.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 4 / 54

Transfer de Registre Transfert de Registre

Transfert de Registre

L’expression R2← R1 denote le transfert du contenu du registre R1 vers le registre R2.

Par definition, le contenu du registre source, R1, ne change pas apres le transfert.

L’expression R2← R1, R1← R2 denote que les deux operations de transfert doivent etreexecutees au meme instant (a la meme impulsion d’horloge). Dans ce cas particulier, il s’agitde l’echange des contenus de R1 et R2.

Table 1: Symboles de base des transferts de registre

Symbole Description ExemplesLettres (et chiffres) Denote un registre MAR, R2Parentheses ( ) Denotent une partie d’un registre R2(0–7), R2(L)Fleche a gauche ← Denote un transfert d’information R2← R1Virgule , Separe deux micro-operations R2← R1 , R5← MAR

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 5 / 54

Transfer de Registre Fonction de Controle

Fonction de Controle

Une fonction de controle est une variable booleenne. Elle est incluse dans l’expression dutransfert de registre comme suit:

P : R2← R1

L’expression ci-dessus signifie:

si (P = 1) alors (R2← R1)

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 6 / 54

Transfer de Registre Fonction de Controle

La figure suivante montre un diagramme en bloc du circuit necessaire pour effectuer unetelle micro-operation conditionnelle de transfert de registre.

Figure 2: Transfert de R1 a R2 lorsque P = 1

n denote le nombre de bits dans un registre.

P est active a la montee d’une impulsion d’horloge a l’instant t.

A la prochaine transition d’horloge, a l’instant t + 1, l’entree de chargement (load) est active,et les lignes de donnees de R2 sont connectees aux lignes de sorties de donnees de R1. A cetinstant, le contenu de R1 est charge en parallele dans R2 (chargement en parallele).

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 7 / 54

Bus et Transferts de Memoire Bus Commun

Bus Commun

Un ordinateur numerique typique comprend un grand nombre de registres.

Le nombre de fils serait excessif si on utilisait des fils distincts pour connecter chaque registrea tous les autres.

Une facon plus efficace de transferer de l’information entre les registres est d’utiliser unsysteme de bus commun.

Une structure avec bus consiste en des lignes communes, une pour chaque bit d’un registre,a travers lesquelles l’information binaire est transferee.

Les signaux de controle, ou les bits de selection de bus, determinent quels registres doiventetre choisis par le bus durant chaque transfert de registre

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 8 / 54

Bus et Transferts de Memoire Bus Commun

On peut construire un systeme de bus commun en utilisant des multiplexeurs.

Table 2: Table de fonction de bus

S1 S0 Registre choisi0 0 A0 1 B1 0 C1 1 D

Figure 3: Un systeme de bus pour quatre registres en utilisant desmultiplexeurs

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 9 / 54

Bus et Transferts de Memoire Bus Commun

En general, un systeme de bus de n lignes qui multiplexe 2k registres est compose de:

2k registres de n bits chacun (puisque c’est un bus de n lignes)

n 2k × 1-multiplexeurs: chaque multiplexeur possede 2k bits de donnees, k bits de selection,et 1 bit de sortie.

Example 1.

Un bus commun pour 8 registres de 16 bits chacun est compose de:

16 multiplexeurs (un pour chaque ligne du bus)

Chaque multiplexeur doit avoir:8 lignes d’entree de donnees (une pour chaque registre)3 bits de selection

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 10 / 54

Bus et Transferts de Memoire Bus Commun

Le transfert d’information d’un bus vers l’un des nombreux registres de destination peut sefaire en connectant les lignes de bus aux entrees de tous les registres de destination, et enactivant uniquement le bit de controle du chargement du registre de destination choisi.

Le transfert d’information entre deux registres a travers le bus peut etre symboliseexplicitement par

BUS ← C , R1← BUS

ou implicitement par

R ← C

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 11 / 54

Bus et Transferts de Memoire Tampons a Trois Etats (Three-State Buffers)

Tampons a Trois Etats (Three-State Buffers)

Un systeme de bus peut aussi etre construit avec des portes a trois etats au lieu demultiplexeurs.

Une porte a trois etats est un circuit numerique qui possede 3 etats:Deux de ces etats correspondent a des signaux equivalents aux signaux logiques 1 et 0, comme pourdes portes conventionnelles.Le troisieme etat est un etat de haute impedance.

Dans l’etat de haute impedance, la porte se comporte comme un circuit ouvert (imaginezdans cet etat que la porte est “deconnectee”).

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 12 / 54

Bus et Transferts de Memoire Tampons a Trois Etats (Three-State Buffers)

Les portes a trois etats peuvent se presenter sous differentes formes, telles que des portesET, NON-ET, etc.

Cependant, celle qui est la plus couramment utilisee dans la conception des systemes de busest la porte 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

Entree de controle Entree de donnees Sortie1 0 01 1 10 x Haute impedance

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 13 / 54

Bus et Transferts de Memoire Tampons a Trois Etats (Three-State Buffers)

Figure 5: Une ligne de bus avec des tampons a trois etats

La construction d’un systeme de bus avec des tampons a trois etats est montree sur la figureci-dessus.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 14 / 54

Bus et Transferts de Memoire Tampons a Trois Etats (Three-State Buffers)

Pour etre certain qu’il n’y a pas plus qu’une entree de controle active a tout instant, onutilise un decodeur.

Lorsque l’entree Enable du decodeur est 0, toutes ses sorties sont remises a 0 ⇒ la ligne debus est dans l’etat de haute impedance (“deconnectee” d’un point de vue logique).

Lorsque l’entree Enable est 1, l’entree du tampon selectionne est transferee a la ligne de bus.Dans ce cas, le circuit ci-dessus se comporte comme un multiplexeur 4× 1.

Pour construire un systeme de bus commun pour quatre registres de n bits chacun enutilisant des tampons a trois etats, il faut utiliser n circuits de Figure 5. Cependant, seul undecodeur, commun a tous, est requis.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 15 / 54

Bus et Transferts de Memoire Transfert de Memoire

Transfert de Memoire

Dans ce qui suit, nous utiliserons la lettre M pour symboliser un mot en memoire.

Le registre d’adresse (address register) qui garde l’adresse en memoire du mot auquel onveut acceder sera symbolise par AR.

Le registre de donnees (data register) qui garde le mot a etre lu ou ecrit en memoire serasymbolise par DR.

Une operation de lecture s’ecrit ainsi:

Read: DR ← M[AR]

et signifie

si la fonction de controle (le signal de controle de la memoire) Read est 1, alorstransferer le mot range a l’adresse indiquee dans le registre AR vers le registre DR.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 16 / 54

Bus et Transferts de Memoire Transfert de Memoire

Une operation d’ecriture en memoire s’ecrit comme suit:

Write: M[AR]← DR

et signifie

si la fonction de controle (le signal de controle de la memoire) Write est 1, alorstransferer le mot range dans le registre DR vers le mot en memoire dont l’adresseest indiquee dans le registre AR.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 17 / 54

Micro-operations Arithmetiques

Micro-operations Arithmetiques

Les micro-operations les plus rencontrees dans les ordinateurs numeriques sont classifiees en 4categories:

1 Micro-operations de transfert de registre : elles transferent les donnees binaires d’un registrea l’autre.

2 Micro-operations arithmetiques : elles effectuent des micro-operations arithmetiques tellesque les additions et les soustractions sur des donnees numeriques rangees dans les registres.

3 Micro-operations logiques : elles effectuent des operations de manipulation de bits sur lesdonnees rangees dans les registres.

4 Micro-operations de decalage : elles effectuent des operations de decalage sur les donneesrangees dans les registres.

Nous avons deja vu les micro-operations de transfert de registre.

Dans ce qui suit, nous allons presenter les trois autres types de micro-operations.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 18 / 54

Micro-operations Arithmetiques Micro-operation d’Addition

Micro-operation d’Addition

La micro-operation definie par l’expression:

R3← R1 + R2

denote une micro-operation d’addition.

Elle signifie que le contenu du registre R1 est ajoute au contenu du registre R2, et la sommeest transferee au registre R3.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 19 / 54

Micro-operations Arithmetiques Micro-operation de Soustraction

Micro-operation de Soustraction

Soustraire le contenu du registre R2 du contenu du registre R1, et ranger le resultat dans leregistre R3, peut s’ecrire des deux facons suivantes:

R3← R1− R2 or R3← R1 + R2 + 1

R2 denote le complement des donnees rangees dans le registre R2.

La Table 4 fait la liste des micro-operations de base les plus courantes.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 20 / 54

Micro-operations Arithmetiques Micro-operation de Soustraction

Table 4: Micro-operations de base

Designation# Symbolique Description1. R3← R1 + R2 Contenu de R1 plus R2 transfere vers R32. R3← R1− R2 Contenu de R1 moins R2 transfere vers R3

3. R2← R2 Complement du contenu de R2 (complement a 1)

4. R2← R2 + 1 Complement a 2 du contenu de R2 (negation)

5. R3← R1 + R2 + 1 R1 plus le complement a 2 de R2 (soustraction)6. R1← R1 + 1 Incremente de 1 le contenu de R17. R1← R1− 1 Decremente de 1 le contenu de R1

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 21 / 54

Micro-operations Arithmetiques Additionneur Binaire

Additionneur Binaire

Pour l’implementation materielle de la micro-operation d’addition, il est necessaire d’avoir aumoins deux registres pour garder les deux nombres a etre ajoutes, possiblement un troisiemeregistre pour ranger le resultat de l’operation, et un circuit combinatoire pour effectuerl’addition arithmetique.

Un circuit combinatoire qui ajoute deux bits et un bit de retenue est appele un additionneurcomplet (full adder, FA) {voir chapitre 1}Le circuit combinatoire qui effectue la somme arithmetique de deux nombres de n bits estappele un additionneur binaire de n bits.

Typiquement, un additionneur binaire de n bits est construit a partir de n additionneurscomplets connectes en cascade, chaque retenue de sortie etant connectee a la retenued’entree du prochain additionneur complet.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 22 / 54

Micro-operations Arithmetiques Additionneur Binaire

Figure 6: Un additionneur de 4 bits

La Figure 6 montre les interconnexions de 4 additionneurs complets pour faire unadditionneur de 4 bits.

Dans ce cas, les nombres additionnes sont A3A2A1A0 et B3B2B1B0, et sont normalementranges dans deux registres de 4 bits A et B.

La somme est representee par S3S2S1S0, et peut etre appliquee aux lignes d’entree d’uncertain registre.

La retenue d’entree du i eme bit est Ci , avec i = 0, 1, 2, 3.

La retenue de sortie du bit3 est C4.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 23 / 54

Micro-operations Arithmetiques Additionneur/Soustracteur Binaire

Additionneur/Soustracteur Binaire

L’operation (A− B) est accomplie en effectuant l’operation (A + B + 1), ce qui n’est autrequ’une operation d’addition.

Ainsi, l’addition et soustraction peuvent etre combinees en un circuit commun, qui utilise unbit de controle, que l’on peut appeler M, pour indiquer le type de l’operation desiree.

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 deuxieme operande B tel quel, et remettre la retenue d’entree C0 a 0, afind’effectuer (A + B + 0) = (A + B).

sinon, si M = 1, alors prendre le complement a 1 du deuxieme operande pour former B et mettre laretenue d’entree C0 a 1, afin d’effectuer (A + B + 1) = (A− B).

Les deux expressions ci-dessus peuvent etre combinees en une seule de la maniere suivante:

Effectuer A + (M ⊕ B) + M

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 24 / 54

Micro-operations Arithmetiques Additionneur/Soustracteur Binaire

Avec cette methode, l’exemple precedent d’un additionneur binaire de 4 bits a la Figure 6peut etre rearrange en un additionneur/soustracteur binaire de 4 bits, comme sur la Figure 7.

Figure 7: Additionneur/Soustracteur binaire de 4 bits

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 25 / 54

Micro-operations Arithmetiques Additionneur/Soustracteur Binaire

Pour les nombres non-signes,Lorsque M = 0 (micro-operation d’addition), Sn−1 . . . S1S0 donne le resultat de (A + B). Undebordement a lieu si Cn = 1.Lorsque M = 1 (micro-operation de soustraction) et si A ≥ B, alors Sn−1 . . . S1S0 donne le resultatde (A− B). Il ne peut pas y avoir de debordement dans ce cas.Lorsque M = 1 (micro-operation de soustraction) et si A < B, alors Sn−1 . . . S1S0 donne le resultatdu complement a 2 de (B − A). Il ne peut pas y avoir de debordement dans ce cas.

Pour les nombres signes,Lorsque M = 0 (micro-operation d’addition), alors Sn−1 . . . S1S0 donne le resultat de (A + B). Undebordement a lieu si Cn ⊕ Cn−1 = 1.Lorsque M = 1 (micro-operation de soustraction), alors Sn−1 . . . S1S0 donne le resultat de (A− B).Un debordement a lieu si Cn ⊕ Cn−1 = 1.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 26 / 54

Micro-operations Arithmetiques Incrementeur Binaire

Incrementeur Binaire

Une facon d’implementer un incrementeur binaire est d’utiliser un compteur binaire.

Cependant, le circuit numerique du compteur binaire depend fortement du type de basculesutilisees.

Une autre facon d’implementer un incrementeur binaire est d’utiliser des demi-additionneurs(HA) connectes en cascade.

Le circuit combinatoire d’un incrementeur binaire de n bits qui opere sur un nombre binaireA = An−1 . . . A0 est compose de:

n demi-additionneurs (HA)n + 1 bits d’entree: A0, . . ., An−1, et 1n + 1 bits de sortie: la somme Sn−1 . . . S0, et le bit de retenue de sortie Cn

Les deux bits d’entree du premier demi-additionneur (HA0) sont A0 et 1.

Les deux bits d’entree de chaque autre demi-additionneur (HAi ), ou i = 1, . . . , n− 1, sont Ai

et la retenue de sortie Ci−1 du demi-additionneur precedent.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 27 / 54

Micro-operations Arithmetiques Incrementeur Binaire

Example 2 (Incrementeur de 4 bits).

La figure suivante montre le circuit logique d’un incrementeur binaire de 4 bits.

Figure 8: Incrementeur binaire de 4 bits

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 28 / 54

Micro-operations Arithmetiques Circuit Arithmetique

Circuit Arithmetique

Differentes micro-operations peuvent etre implementees en un circuit combinatoire communappele circuit arithmetique, ou unite arithmetique.

L’idee derriere la conception d’une unite arithmetique de n bits qui opere sur deux nombresA et B de n bits est d’ecrire le resultat D de chaque micro-operation sous la forme

D = A + Y + Cin ,

Ou Y est le resultat d’une sorte de “transformation” de B, et Cin est soit 0, soit 1.

Une unite arithmetique de n bits qui effectue 2k micro-operations arithmetiques estcomposee de:

Deux lignes d’entree de donnees de n bits, A et Yn additionneurs complets, chacun des additionneurs complets travaillant sur un bit de A, un bit deY , et la retenue de sortie de l’additionneur complet precedentn multiplexeurs de type 2k × 1 , chacun des multiplexeurs generant un bit de Yk bits de selection Sn−1 . . . S0 qui sont communs a tous les multiplexeursParfois, suivant les micro-operations a etre effectuees par l’unite arithmetique, il est utile d’assignerCin a l’un des bits de selection

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 29 / 54

Micro-operations Arithmetiques Circuit Arithmetique

Example 3.

Concevez une unite arithmetique de 4 bits qui effectue les micro-operations arithmetiques qui setrouvent dans la table ci-dessous.

Table 5: Table de fonction du circuit arithmetique

Bits de selection SortieS1 S0 Cin D = A + Y + Cin Micro-operation0 0 0 D = A + B Addition0 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 de A1 0 1 D = A + 1 Incrementation de A1 1 0 D = A− 1 Decrementation de A1 1 1 D = A Transfert de A

Le diagramme logique de cette unite arithmetique est montre a la Figure 9.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 30 / 54

Micro-operations Arithmetiques Circuit Arithmetique

Figure 9: Circuit arithmetique de 4 bits

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 31 / 54

Micro-operations Logiques

Micro-operations Logiques

Les micro-operations logiques effectuent des operations binaires booleennes ordinaires sur desdonnees rangees dans deux registres.

Un exemple de micro-operation logique est

R1← R1⊕ R2,

qui effectue une operation OU-EXCLUSIF sur le contenu des registres R1 et R2 et range leresultat dans R1.

Afin de distinguer une addition arithmetique d’une micro-operation logique OUUne micro-operation de OU logique sera symbolisee par un “∨”.De meme, une micro-operation de ET logique sera symbolisee par un “∧”.

Lorsqu’un symbole “+” apparaıt dans une fonction de controle, il denotera toujours uneoperation OU (car on ne peut pas le confondre avec une addition).

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 32 / 54

Micro-operations Logiques

Example 4.

L’expression

P + Q : R1← R2 + R3 , R4← R5 ∨ R6

signifie:si (P = 1 ou Q = 1), alors faire les micro-operations et charger leurs resultats dans leurs registresrespectifs a la meme impulsion d’horloge:

Ajouter R2 et R3 et ranger le resultat dans R1, et

Effectuer une operation de OU logique sur R5 et R6 et ranger le resultat dans R4.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 33 / 54

Micro-operations Logiques

La Table 6 regroupe 16 micro-operations logiques qui peuvent etre effectuees sur le contenu dedeux registres A et B.

Table 6: 16 micro-operations logiques

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 34 / 54

Micro-operations Logiques Circuit Logique

Circuit Logique

Un circuit qui effectue un ensemble de micro-operations logiques s’appelle une unite logique,ou un circuit logique.

Un circuit logique de n bits qui peut effectuer 2k operations logiques sur deux registres A etB de n bits est compose de:

Deux lignes d’entrees de donnees de n bits pour A et Bn multiplexeurs de type 2k × 1, chaque multiplexeur operant sur un bit de chaque registreL’operation logique particuliere a etre effectuee est choisie par les k bits de selection qui sontcommuns aux n multiplexeurs

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 35 / 54

Micro-operations Logiques Circuit Logique

Example 5 (Unite logique de 2 bits).

Concevez une unite logique de 2 bits pour effectuer les quatre micro-operations suivantes surdeux registres de 2 bits A = A1A0 et B = B1B0.

Unite logique de 2 bits ⇒ eux multiplexeurs, un pour chaque bit.

4 micro-operations ⇒ deux bits de selection S1 et S0 qui sont communs aux deuxmultiplexeurs.

D’abord, construire le circuit qui opere sur A0 et B0 (circuit a une etape). Ensuite,construire autant de copies de ce circuit que necessaire pour le restant des bits. Dans ce cas,une autre copie seulement est necessaire pour A1 et B1.

Empiler tous ces circuits ensemble pour former une unite logique de n bits.

Table 7: Logic Circuit Function Table

SelectionS1 S0 Sortie Operation0 0 E = A ∧ B ET0 1 E = A ∨ B OU1 0 E = A⊕ B OU-EXCLUSIF

1 1 E = A Complement

Figure 10: Circuit logique a une etape

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 36 / 54

Micro-operations Logiques Applications

Applications

Les micro-operations logiques sont couramment utilisees pour manipuler des bitsindividuellement ou des portions d’un mot range dans un registre.

Des exemples de telles manipulations de bits sont : remise a zero de certains bits, ou bienmise a 1.

Dans ce qui suit, nous allons voir a travers certains exemples comment manipuler unensemble de bits dans un registre (registre A).

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 37 / 54

Micro-operations Logiques Applications

Mise a 1 selective

La micro-operation de mise a 1 selective met certains bits a 1, et garde le reste des bitsinchanges.

La position des bits dans A qui seront affectes par cette transformation est specifiee par unautre registre, B.

Les bits de A qui correspondent aux 1 dans B sont les bits qui seront mis a 1.

1 0 1 0 A avant1 1 0 0 B

1 1 1 0 A apres

Une telle transformation peut etre faite en utilisant une micro-operation de OU logique (∨),et peut etre symbolisee par l’expression suivante, en langage de transfert de registre (RTL):

A← A ∨ B.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 38 / 54

Micro-operations Logiques Applications

Complementation selective

La micro-operation de complementation selective complemente les bits de A quicorrespondent aux 1 de B. Le reste des bits de A est inchange.

1 0 1 0 A avant1 1 0 0 B

0 1 1 0 A apres

Une telle transformation peut se faire par une micro-operation OU-EXCLUSIF logique (⊕),et peut etre symbolisee par l’expression RTL suivante:

A← A⊕ B.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 39 / 54

Micro-operations Logiques Applications

Remise a 0 selective

La micro-operation de remise a 0 selective met a 0 les bits de A qui correspondent aux 1 deB. Le reste des bits de A est inchange.

1 0 1 0 A avant1 1 0 0 B

0 0 1 0 A apres

Une telle transformation peut se faire par une micro-operation de ET logique (∧), et peutetre symbolisee par l’expression RTL suivante:

A← A ∧ B.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 40 / 54

Micro-operations Logiques Applications

Masquage

La micro-operation de masquage met a 0 les bits de A qui correspondent aux 0 de B. Lereste des bits de A est inchange.

1 0 1 0 A avant1 1 0 0 B (operande logique)

1 0 0 0 A apres le masquage

Une telle transformation peut se faire par une micro-operation de ET logique (∧), et peutetre symbolisee par l’expression RTL suivante:

A← A ∧ B.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 41 / 54

Micro-operations Logiques Applications

Insertion

La micro-operation d’insertion insere 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 lavaleur requise.

Si, par exemple, la valeur de A est 0110 1010, et on desire remplacer les 4 bits les plus agauche par 1001, alors on commence par masquer les bits que l’on veut remplacer

0110 1010 A avant0000 1111 B (masque)

0000 1010 A apres le masquage

puis on insere la nouvelle valeur:

0000 1010 A avant1001 0000 B (insertion)

1001 1010 A apres l’insertion

Une telle transformation peut se faire en utilisant les expressions RTL suivantes:

A← A ∧ B

B ← l’operande approprie

A← A ∨ B

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 42 / 54

Micro-operations Logiques Applications

Remise a 0

La micro-operation de remise a 0 compare les mots dans A et dans B, et produit un resultatqui se compose uniquement de 0 si les deux nombres sont egaux.

Ceci peut se faire en utilisant une operation logique OU-EXCLUSIF.

1 0 1 0 A avant1 0 1 0 B

0 0 0 0 A← A⊕ B

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 43 / 54

Micro-operations de decalage

Micro-operations de decalage

Il y a trois types de micro-operations de decalage:

Decalage logique,

Decalage circulaire, et

Decalage arithmetique

Voici une liste des differentes micro-operations de decalage et leur notation.

Table 8: Micro-operations de decalage

Designation symbolique DescriptionR ← shl R Decalage a gauche du registre RR ← shr R Decalage a droite du registre RR ← cil R Decalage circulaire a gauche du registre RR ← cir R Decalage circulaire a droite du registre RR ← ashl R Decalage arithmetique a gauche du registre RR ← ashr R Decalage arithmetique a droite du registre R

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 44 / 54

Micro-operations de decalage Decalage logique

Decalage logique

Un decalage logique insere un ’0’ dans le registre par l’entree serie du registre.

shl et shr seront dorenavant utilises pour symboliser des micro-operations de decalage agauche et de decalage a droite.

Example 6.

1001 A avant0100 A apres (A← shr A)

1001 A avant0010 A apres (A← shl A)

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 45 / 54

Micro-operations de decalage Decalage circulaire

Decalage circulaire

Le decalage circulaire (qu’on appelle parfois micro-operation de rotation) fait circuler lesbits du registre entre ses deux extremites sans perte d’information.

Ceci peut se faire en connectant la sortie serie du registre de decalage a son entree serie.

Example 7.

1001 A avant0011 A apres (A← cil A)

1001 A avant1100 A apres (A← cir A)

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 46 / 54

Micro-operations de decalage Decalage arithmetique

Decalage arithmetique

Un decalage arithmetique est une micro-operation qui decale un nombre signe a gauche oua droite

Un decalage a gauche arithmetique effectue une multiplication signee par 2.

Un decalage a droite arithmetique effectue une division signee par 2.

Un decalage arithmetique doit etre fait de facon a ce que la valeur du bit de signe ne soit paschangee.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 47 / 54

Micro-operations de decalage Decalage arithmetique

Decalage a droite arithmetique

Le decalage a droite arithmetique garde le bit de signe inchange et decale le nombre(incluant le bit de signe) vers la droite.

Example 8.

1001 nombre signe A, avant le decalage1100 A apres (A← ashr A)

0110 nombre signe A, avant le decalage0011 A apres (A← ashr A)

La Figure 11 montre une micro-operation de decalage a micro-operation.

Figure 11: decalage a droite arithmetique

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 48 / 54

Micro-operations de decalage Decalage arithmetique

Decalage a gauche arithmetique

Le decalage a gauche arithmetique insere un 0 a la position la moins significative, et decaletous les autres bits vers la gauche (incluant le bit de signe).

Dans ce cas, une inversion de signe peut avoir lieu, ce qui est considere comme undebordement.

Un debordement a lieu dans un registre R de n bits apres un decalage a gauche arithmetiquesi initialement, avant l’operation de decalage, le bit de signe Rn−1 est different du bitprecedent Rn−2.

Une bascule D de debordement, dont la sortie est Vs , peut alors etre utilisee pour detecterles debordements causes par les decalages a gauche

Vs ← Rn−1 ⊕ Rn−2 , R ← ashl R.

Pour que la detection de debordement reussisse, les deux micro-operations doivent etredeclenchees a la meme impulsion d’horloge.

Example 9.

1001 nombre signe A0010 A apres (A← ashl A) [debordement]

1110 nombre signe A1100 A apres (A← ashl A) [pas de debordement]

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 49 / 54

Micro-operations de decalage Implementation materielle

Implementation materielle

Un circuit combinatoire de decalage est montre a 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 entrees serie,suivant la fonctionnalite desiree du circuit.

Figure 12: Circuit combinatoirede decalage de 4 bits

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 50 / 54

Unite de decalage/arithmetique et logique

Unite de decalage/arithmetique et logique

Une unite arithmetique et logique (ALU) est un circuit combinatoire qui effectue desmicro-operations arithmetiques et logiques.

Une unite de decalage/arithmetique et logique (ALSU) est une ALU qui effectue aussi desmicro-operations de decalage.

Une facon d’implementer une ALSU de n bits est de construire une ALSU a un seul etage(pour un seul bit), et ensuite on empile n copies de ces circuits (une pour chaque bit) pourformer l’ALSU complete.

Toutes les copies de l’ALSU a un etage utilisent les memes bits de selection.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 51 / 54

Unite de decalage/arithmetique et logique

Figure 13: Une unite de decalage/arithmetique et logique

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 52 / 54

Unite de decalage/arithmetique et logique

Une autre facon d’implementer une ALSU est de construire:Une unite arithmetique completeUne unite logique complete, etUne unite de decalage complete

et de passer les sorties de chaque unite a un multiplexeur qui va selectionner la sortie finalesuivant les valeurs des bits de selection.

Parfois, il est pratique de fusionner l’unite de decalage et l’unite logique si cela simplifie laconception.

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 53 / 54

Unite de decalage/arithmetique et logique

Example 10.

Concevez une unite de decalage/arithmetique et logique qui effectue les micro-operations decritespar la table de fonction suivante.

Table 9: Table de fonction du ALSU

Wail Gueaieb (Universite d’Ottawa) CEG2536: Architecture des Ordinateurs I Automne 2007 54 / 54