• Aucun résultat trouvé

CPU (1) TD5

N/A
N/A
Protected

Academic year: 2022

Partager "CPU (1) TD5"

Copied!
47
0
0

Texte intégral

(1)

TD5

CPU (1)

(2)

additionneur avec calcul avancé de retenue

(3)

a

15

b

15

c

16

x

15

c

15

a

14

b

14

x

14

c

14

a

1

b

1

x

1

c

1

a

0

b

0

x

0

c

0

temps de propagation pour n additionneurs = n fois le temps d'un additionneur pour 16 bits à 15 ns par additionneur : 240 ns

● c'est le calcul (et sa propagation) des retenues qui ralentit l'obtention du résultat final

● on va chercher à améliorer ce temps de calcul en

essayant d'anticiper la valeur des retenues c i

(4)

● Retrouver les relations logiques donnant le résultat de la

somme arithmétique s i = a i + b i et le carry c i+1 en fonction

des 2 bits a i et b i et de c i .

(5)

a

i

b

i

c

i

S

i

c

i+1

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

(6)

a

i

b

i

c

i

S

i

c

i+1

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

a i b i

c i 00 01 11 10

0 0 0 1 0

1 0 1 1 1

c i + 1 = a i . b i + a i . c i + b i . c i S i = a i .b i .c i + a i .b i . c i

+ a i .b i .c i + a i .b i . c i

= ( a i b i + a i .b i ) c i +( a i .b i + a i b i ) c i

= ( a i ⊕ b i ) c i +( a i ⊕ b i ) c i

= a i ⊕ b i ⊕ c i

(7)

● Exprimer ces relations en fonction de g i = a i .b i , de p i = a i + b i et de c i

g i est le "générateur" de carry et p i le "propagateur" de carry

(Brevet IBM en 1957)

(8)

S i = a i ⊕ b i ⊕ c i

c i+ 1 =a i . b i + a i . c i + b i . c i

= a i . b i +( a i + b i ) . c i

= g i + p i . c i

(9)

● Ecrire les relations trouvées au 1 pour c1 et c2 et dessinez

le logigramme correspondant

(10)

c

1

= g

0

+ p

0

. c

0

c

2

= g

1

+ p

1

. c

1

c 0 p 0

p 1 g 0

g 1

c 1

c 2

(11)

● Ré-écrire c2 en fonction de p1, p0, g1, g0, et c0 .

Dessinez les logigramme correspondant pour c1 et c2.

Conclure quant à la complexité du 2nd circuit par rapport

au premier.

(12)

c

1

= g

0

+ p

0

. c

0

c

2

= g

1

+ p

1

. c

1

c 0 p 0

p 1 g 0

g 1

c 1

c 2

c

1

= g

0

+ p

0

. c

0

c

2

= g

1

+ p

1

. g

0

+ p

1

.p

0

.c

0

c 0 p 0

p 1 g 0

g p 0 c 0

c 1

g 0

p 1 c 2

(13)

● Ecrire les expressions de c 1 à c 4 . Ré-écrire c 4 en posant

G 0 = g 3 + p 3 g 2 + p 3 p 2 g 1 + p 3 p 2 p 1 g 0 et P 0 = p 3 p 2 p 1 p 0

(14)

c

1

= g

0

+ p

0

.c

0

c

2

= g

1

+ p

1

.c

1

= g

1

+ p

1

.g

0

+ p

1

.p

0

.c

0

c

3

= g

2

+ p

2

.c

2

= g

2

+ p

2

.g

1

+ p

2

.p

1

.g

0

+ p

2

.p

1

.p

0

.c

0

c

4

= g

3

+ p

3

.c

3

= g

3

+ p

3

.g

2

+ p

3

.p

2

.g

1

+ p

3

.p

2

.p

1

.g

0

+ p

3

.p

2

.p

1

.p

0

.c

0

= G

0

+ P

0

.c

0

en posant

G

0

= g

3

+ p

3

.g

2

+ p

3

.p

2

.g

1

+ p

3

.p

2

.p

1

.g

0

et

P

0

= p

3

.p

2

.p

1

.p

0

(15)

c

0

p

0

g

0

c

1

c

2

p

1

g

1

c

3

p

2

g

2

G

0

p

3

P

0

g

3

(16)

g 3-0

g 3-0 p 3-0

c 0

c 1 c 2

c 3 P 0

G 0

● On va maintenant considérer une "boîte noire"

générant c1 à c3 ainsi que P0 et G0 à partir de gk et

pk (k=0-3) et de c0

(17)

● Faire de même avec c5 à c8 en posant

G1 = g7 + p7 g6 + p7 p6 g5 + p7 p6 p5 g4 et P1 = p7 p6 p5 p4

montrer que l'on peut utiliser la même boîte noire pour

les générer. Généraliser

(18)

c

5

= g

4

+ p

4

.c

4

c

6

= g

5

+ p

5

.c

5

= g

5

+ p

5

.g

4

+ p

5

.p

4

.c

4

c

7

= g

6

+ p

6

.c

6

= g

6

+ p

6

.g

5

+ p

6

.p

5

.g

4

+ p

6

.p

5

.p

4

.c

4

c

8

= g

7

+ p

7

.c

7

= g

7

+ p

7

.g

6

+ p

7

.p

6

.g

5

+ p

7

.p

6

.p

5

.g

4

+ p

7

.p

6

.p

5

.p

4

.c

4

= G

1

+ P

1

.c

4

en posant

G

1

= g

7

+ p

7

.g

6

+ p

7

.p

6

.g

5

+ p

7

.p

6

.p

5

.g

4

et

P

1

= p

7

.p

6

.p

5

.p

4

(19)

g

3-0

p

3-0

c

0

P

0

G

0

c

1

c

2

c

3

g

7-4

p

7-4

c

4

P

1

G

1

c c

c

A

B

(20)

g

11-8

p

11-8

c

8

P

2

G

2

c

9

c

10

c

11

g

15-12

p

15-12

c

12

P

3

G

3

c c

c

C

D

(21)

● Reprendre les équations de c4, c8, c12 et c16 en posant

G 0 = G3 + P3 G2 + P3 P2 G 1 + P3 P2 P1 G0 et

P 0 = P3 P2 P1 P0 . Montrer que l'on peut utiliser la

même boite pour générer c4, c8 et c12.

(22)

c

4

= G

0

+ P

0

c

0

c

8

= G

1

+ P

1

c

4

= G

1

+ P

1

G

0

+ P

1

P

0

c

0

c

12

= G

2

+ P

2

c

8

= G

2

+ P

2

G

1

+ P

2

P

1

G

0

+ P

2

P

1

P

0

c

0

c

16

= G

3

+ P

3

c

12

= G

3

+ P

3

G

2

+ P

3

P

2

G

1

+ P

3

P

2

P

1

G

0

+P

3

P

2

P

1

P

0

c

0

= G

0

+ P

0

c

0

avec

G

0

= G

3

+ P

3

c

12

= G

3

+ P

3

G

2

+ P

3

P

2

G

1

+ P

3

P

2

P

1

G

0

et P

0

= P

3

P

2

P

1

P

0

On peut réaliser c

4

, c

8

, c

12

, G

0

et P

0

à l'aide du même circuit

G

3-0

P

3-0

c

0

P

0

G

0

c

4

c

8

c

12

E

(23)

a 0 b 0

g 0 p 0

a i b i

g i p i

a 15 b 15

g 15 p 15

A

B

C

G 0 P 0 c 1

c 2 c 3

c 4

G 1 P 1 c 5

c 6 c 7

c 8

G 2 P 2 c 9

c 10 c 11

c 12 c 13

c 14 c 15

D E

a 0

b 0 S 0

a i

b i S i

c i

b 15 S 15

c 15 a 15 c 0

p i = a i + b i g i = a i . b i

S i = a i ⊕ b i ⊕ c i

c 16 = g 15 + p 15 . c 15

(24)

détection d'overflow dans une addition

(25)

● rappels sur la représentation des nombres entiers en complément à 2

● 2 n entiers compris entre -2 n-1 et 2 n-1 -1 A = ∑

k= 0 n− 2

a k 2 k − a n−1 2 n−1 A = A 1

A A = 2 n − 1

A  A = 0

(26)

● coder en complément à 2 les nombres -17, -127, -128

(27)

1710 = 000100012

11101110 inversion des bits 1 +

111011112 = -1710

(28)

1710 = 000100012

11101110 inversion des bits + 1

= 111011112 = -1710 12710 = 011111112

10000000 inversion des bits + 1

= 10000001 =-12710

(29)

1710 = 000100012

11101110 inversion des bits 1 +

111011112 = -1710 12710 = 011111112

10000000 inversion des bits 1 +

10000001 =-12710 12810 = 100000002

01111111

1 +

100000002 = -12810

(30)

-8 1000

-7 1001

-6 1010

-5 1011

-4 1100

-3 1101

-2 1110

-1 1111

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

Représentation des entiers signés codés sur 4 bits

(31)

● effectuer les opérations (+3) + (+4)

(+6) + (-3)

(-2) + (-6)

(+4) + (-7)

(32)

000 +3 0011 + +4 + 0100 +7 0111

-8 1000

-7 1001

-6 1010

-5 1011

-4 1100

-3 1101

-2 1110

-1 1111

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

(33)

+3 0011 + +4 + 0100 +7 0111 100 +6 0110 + -3 + 1101 +3 10011

-8 1000

-7 1001

-6 1010

-5 1011

-4 1100

-3 1101

-2 1110

-1 1111

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

(34)

+3 0011 + +4 + 0100 +7 0111 +6 0110 + -3 + 1101 +3 10011 110 -2 1110 + -6 + 1010 -8 11000

-8 1000

-7 1001

-6 1010

-5 1011

-4 1100

-3 1101

-2 1110

-1 1111

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

(35)

+3 0011 + +4 + 0100 +7 0111 +6 0110 + -3 + 1101 +3 10011 -2 1110 + -6 + 1010 -8 11000 000 +4 0100 + -7 +1001 -3 1101

-8 1000

-7 1001

-6 1010

-5 1011

-4 1100

-3 1101

-2 1110

-1 1111

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

(36)

● effectuer les opérations (-3) + (-6)

(+5) + (+6)

(-8) + (-8)

(+7) + (+7)

(37)

0000 -3 1101 + -6 + 1010

-9 10111 = +7

-8 1000

-7 1001

-6 1010

-5 1011

-4 1100

-3 1101

-2 1110

-1 1111

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

(38)

-3 1101 + -6 + 1010

-9 10111 = +7 100

+5 0101 + +6 + 0110

+11 1011 = -5

-8 1000

-7 1001

-6 1010

-5 1011

-4 1100

-3 1101

-2 1110

-1 1111

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

(39)

-3 1101 + -6 + 1010

-9 10111 = +7 +5 0101

+ +6 + 0110

+11 1011 = -5 000

-8 1000 + -8 + 1000

-16 10000 = 0

-8 1000

-7 1001

-6 1010

-5 1011

-4 1100

-3 1101

-2 1110

-1 1111

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

(40)

-3 1101 + -6 + 1010

-9 10111 = +7 +5 0101

+ +6 + 0110

+11 1011 = -5 -8 1000

+ -8 + 1000

-16 10000 = 0 111

+7 0111 + +7 + 0111

+14 1110 = -2

-8 1000

-7 1001

-6 1010

-5 1011

-4 1100

-3 1101

-2 1110

-1 1111

0 0000

1 0001

2 0010

3 0011

4 0100

5 0101

6 0110

7 0111

(41)

000 +3 0011 + +4 + 0100 +7 00111 100 +6 0110 + -3 + 1101 +3 10011 110 -2 1110 + -6 + 1010 -8 11000 000 +4 0100 + -7 +1001

000 -3 1101 + -6 + 1010

-9 10111 = +7 100

+5 0101 + +6 + 0110

+11 01011 = -5 000

-8 1000 + -8 + 1000

-16 10000 = 0 111

+7 0111

+ +7 + 0111

(42)

OVERFLOW = CarryInn ⊕ CarryOutn

a0 b0

a1 b1

a2 b2

a3

ainv bneg

CarryIn

CarryOut

b3 r3

r2 r1 r0

0 0 0

zero

Set

Op

Overflow

(43)

Réalisation d'un Register File

(44)

Registres

numéro des registres

Données en entrée

Registre lecture #1

Registre lecture #2

Registre écriture Données

écriture

Données lecture #2

Données lecture #1

Données en sortie

Ecriture registre

5 5 5

32

32

32

(45)

S

32 multiplexeurs à 32 entrées

l'entrée k du multiplexeur i est

reliée au bit i du registre k

Tous les multiplexeurs sont

adressés par les 5 lignes

d'adresse lecture

(46)

Registres

numéro des registres

Données en entrée

Registre lecture #1

Registre lecture #2

Registre écriture Données

écriture

Données lecture #2

Données lecture #1

Données en sortie

Ecriture registre

5 5 5

32

32

32

(47)

les données sont présentées aux entrées des 32 registres Grâce au décodeur et aux portes ET, seul le registre

correspondant à l'adresse voulue

recevra le signal d'horloge

Références

Documents relatifs

Slimdrive SC/SCR GGS : variante pour portes automatiques coulissantes cintrées en verre avec ferrures pour éléments tout verre GGS et toit en verre Slimdrive SC RC2 et SC-FR RC2

[r]

A full 32 bit DMA Controller supporting data trans- fers to/from VMEbus memory as well as to/from local system RAM is provided by a FORCE specific 280 pin Gate

Modifiez le montage pour en faire un décompteur asynchrone

Convertir en décimal les trois bits binaires , , en prenant pour bit de poids faible.. Ils sont représentés sur

Exercice 4 : Ecrire une fonction permettant de calculer la somme des entiers positifs compris entre 1 et une valeur entière positive fournie en entrée.. La fonction doit retourner

Activités productives : activités artisanales, activités de haute technologie, activités industrielles, activités de production de services matériels et de

ISAE Analyse TD5