• 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

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

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

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