• Aucun résultat trouvé

Chapitre IV Transfert de Registre et Micro-op´erations

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre IV Transfert de Registre et Micro-op´erations"

Copied!
53
0
0

Texte intégral

(1)

Chapitre IV

Transfert de Registre et Micro-op´ erations

(2)

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

(3)

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

(4)

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

(5)

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)

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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”).

(12)

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

(13)

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.

(14)

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

(15)

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.

(16)

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

(17)

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.

(18)

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

(19)

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.

(20)

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

(21)

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.

(22)

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

(23)

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

(24)

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

(25)

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.

(26)

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

(27)

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.

(28)

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

(29)

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.

(30)

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

(31)

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).

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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

(37)

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.

(38)

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

(39)

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.

(40)

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

(41)

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

(42)

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

(43)

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

(44)

Micro-op´erations de d´ecalage 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

(45)

Micro-op´erations de d´ecalage 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)

(46)

Micro-op´erations de d´ecalage 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

(47)

Micro-op´erations de d´ecalage 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.

(48)

Micro-op´erations de d´ecalage 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

(49)

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

(50)

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

(51)

Unit´e de d´ecalage/arithm´etique et logique

(52)

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

(53)

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

Références

Documents relatifs

La r´ edaction sera prise en compte dans la

Ils sont ´ecrit dans `a partir d’un alphabet de 256 caract`eres le code ASCII, chaque caract`ere peut ˆetre repr´esent´e par un code, un nombre entre 0 et 255 (un entier sur 8

A cause de leur importance dans les algorithmes utilis´es aujourd’hui pour coder et prot´eger des donn´ees confidentielles (codes de cartes bancaires en particulier), les

Dans cette question, on cherche ` a d´eterminer le nombre d’entiers n, parmi ceux compris entre 1 et 400, qui permettent par la proc´edure utilis´ee de convoquer tous les

Ainsi, les nombres n permettant de convoquer tous les candidats sont les entiers n compris entre 1 et 400 qui sont premiers avec 2

Le moyen le plus simple pour obtenir un grand nombre premier est de prendre au hasard un grand entier et de tester s’il est premier (test de Miller-Rabin : un algorithme tr `es

Soit un entier sur 16 bits s : remplir la chaine de caract` eres buffer avec les chiffres repr´ esentant s en hexad´ ecimal (2 lignes). 5

L’Unit´ e Arithm´ etique et Logique (ALU) d’un processeur sait naturellement exprimer des op´ erations logiques ou arithm´ etiques sur des nombres entiers, positifs ou