52
Tópicos em Arquitetura de Tópicos em Arquitetura de Computadores - 4027 Computadores - 4027 João Angelo Martini João Angelo Martini Universidade Universidade Estadual de Estadual de Maringá Maringá Departamento de Informática Departamento de Informática Mestrado em Ciência da Computação Mestrado em Ciência da Computação

Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

Embed Size (px)

Citation preview

Page 1: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

Tópicos em Arquitetura de Tópicos em Arquitetura de Computadores - 4027Computadores - 4027

João Angelo MartiniJoão Angelo Martini

UniversidadeUniversidade Estadual de Estadual de MaringáMaringá

Departamento de InformáticaDepartamento de Informática

Mestrado em Ciência da ComputaçãoMestrado em Ciência da Computação

Page 2: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

2

Aula de Aula de HojeHoje

Aritmética ComputacionalAritmética Computacional

Page 3: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

3

Aritmética Aritmética ComputacionalComputacional

Aritmética ComputacionalAritmética ComputacionalCircuitos Aritméticos: circuitos utilizados para construir a ULA (Unidade Lógica e Aritmética)

Adição

Exemplo de adição em decimal (dígitos de 0 a 9):

Cada posição só pode representar um dígito, por isso, gera um carry (vai um)

3 7 6

4 6 1+

3 7 6

4 6 1

7

+

13 7 6

4 6 1

3 7

+

3 7 6

4 6 1

8 3 7

1

+

Page 4: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

4

Aritmética Aritmética ComputacionalComputacional

Aritmética ComputacionalAritmética ComputacionalAdição em Binário :

ExemploCada posição só pode representar um dígito, por isso, gera um carry

a) 0

0

0

+

b) 0

1

1

+

c) 1

0

1

+

d) 1

1

10

+

1 0 1 0 1

0 0 1 1 1+

1 0 1 0 1

0 0 1 1 1

0

+

1 0 1 0 1

0 0 1 1 1

0 0

+

1 0 1 0 1

0 0 1 1 1

1 0 0

+

1 0 1 0 1

0 0 1 1 1

1 1 0 0

+

1 0 1 0 1

0 0 1 1 1

1 1 1 0 0

+

1 1 1 11 10 0

cin

cout Soma

Page 5: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

5

Aritmética Aritmética ComputacionalComputacional

A B Cin S Cout

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

Entradas Saídas

A

+B

S

Cin

Cout

Cin

Page 6: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

6

Aritmética Aritmética ComputacionalComputacional

A B Cin S Cout

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

Entradas Saídas

A B Cin

A B Cin

A B Cin

A B Cin

S = A B Cin + A B Cin + A B Cin + A B Cin

Page 7: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

7

Aritmética Aritmética ComputacionalComputacional

A B Cin S Cout

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

Entradas Saídas

Cout = A B Cin + A B Cin + A B Cin + A B Cin

A B Cin

A B Cin

A B Cin

A B Cin

Page 8: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

8

Aritmética Aritmética ComputacionalComputacional

S = A B Cin + A B Cin + A B Cin + A B Cin

Simplificando as expressõesSimplificando as expressões

S = A (B Cin + B Cin)+ A (B Cin + B Cin)

Fazendo X = B + Cin e X = B Cin

Como B + Cin = B Cin + B Cin e B Cin = B Cin + B Cin

S = A + X

S = A X+ A X

S = A + B + Cin

A e A em evidência

S = A (B + Cin)+ A (B Cin)

Page 9: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

9

Aritmética Aritmética ComputacionalComputacional

Cout = A B Cin + A B Cin + A B Cin + A B Cin

Simplificando as expressõesSimplificando as expressões

0 0 1 0

0 1 1 1

B

A

A

B

CinCin Cin

P2=BCin

P3=ACin

P1=AB Cout = AB+BCin+ACin

Page 10: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

10

Aritmética Aritmética ComputacionalComputacionalCircuito SomadorCircuito Somador

Cout = AB+BCin+ACin

S = A + B + Cin

A

B

Cin

S

Cout

B + Cin

A + B + Cin

AB

BCin

ACin

AB+BCin+AC

in

Page 11: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

11

Somador de 4 Somador de 4 bitsbits

Somador Somador Somador Somador

S0S1S2S3 C1C2C3C4

C0A0B0A1B1A2B2A3B3

Page 12: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

12

Somador Bit Somador Bit SliceSlice

Somador

S3 C3C4

A3B3

A

B

Cin

S

Cout

Atraso de 1 porta lógica

Atraso de 1 porta lógica

Para gerar o carry seguinte há 2 estágios de portas lógicas

Page 13: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

13

Somador de 4 Somador de 4 bitsbits

Somador Somador Somador Somador

S0S1S2S3 C1C2C3C4

C0A0B0A1B1A2B2A3B3

Somador Ripple-CarrySomador Ripple-Carry

• Ripple-Carry: Ondulação ou Propagação do Carry. Carry-Out de um estágio se transforma no Carry-In do estágio seguinte.

• Ai e Bi “alimentam” os somadores em paralelo, mas o circuito deve esperar a propagação dos Carries para concluir a operação.

Page 14: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

14

Aritmética Aritmética ComputacionalComputacional

Aritmética ComputacionalAritmética ComputacionalSubtração

Exemplo de subtração em decimal (dígitos de 0 a 9):

Empresta 1 da coluna da esquerda para formar a dezena

7 6

5 8-

7 6

5 8

-

16

8

7 6

5 8

8

-

6

1

Page 15: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

15

Aritmética Aritmética ComputacionalComputacional

Aritmética ComputacionalAritmética ComputacionalSubtração em Binário

Exemplo

a) 0

0

0

-

b) 0

1

1

-

c) 1

0

1

-

d) 1

1

0

-

Gera um “empresta-1” (carry out) da coluna seguinte: a 1a coluna passa a valer 210=102

O carry out será subtraído da coluna seguinte na continuação da operação

1

Page 16: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

16

Aritmética Aritmética ComputacionalComputacional

Aritmética ComputacionalAritmética ComputacionalSubtração em Binário :

Exemplo Gera um “empresta-1” (carry out) da coluna seguinte: a 1a coluna passa a valer 102=210

1 0 1 0

0 0 1 1-

1 0 1 0

0 0 1 1

-

1 0 1 0

0 0 1 1

-

1

1

1

cin

Subtração

1

1

1

0

1 0 1 0

0 0 1 1

-1

1

1

011

1

1 0 1 0

0 0 1 1

-1

1

1

011

1

0

1 0 1 0

0 0 1 1

-1

1

1

011

1

011

1

1 0 1 0

0 0 1 1

-1

1

1

011

1

011

10

Page 17: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

17

ExercíciExercíciosos

1. Obter a Tabela Verdade para o circuito subtrator de 1 bit (considere como entradas: A, B e Cin; e como saídas: S e Cout).

2. Obtenha as expressões para a subtração S e para o Cout a partir da Tabela Verdade.

3. Desenhe o diagrama de portas lógicas do circuito subtrator.

Page 18: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

18

SoluçõSoluçõeses

A B Cin S Cout

0 0 0 0 0

0 0 1 1 1

0 1 0 1 1

0 1 1 0 1

1 0 0 1 0

1 0 1 0 0

1 1 0 0 0

1 1 1 1 1

Entradas Saídas Tabela Verdade para o Subtrator1)

Page 19: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

19

SoluçõSoluçõeses

A B Cin S Cout

0 0 0 0 0

0 0 1 1 1

0 1 0 1 1

0 1 1 0 1

1 0 0 1 0

1 0 1 0 0

1 1 0 0 0

1 1 1 1 1

Entradas Saídas

S = A B Cin + A B Cin + A B Cin + A B Cin

2)

Page 20: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

20

SoluçõSoluçõeses

A B Cin S Cout

0 0 0 0 0

0 0 1 1 1

0 1 0 1 1

0 1 1 0 1

1 0 0 1 0

1 0 1 0 0

1 1 0 0 0

1 1 1 1 1

Entradas Saídas

S = A B Cin + A B Cin + A B Cin + A B Cin

Cout = A B Cin + A B Cin + A B Cin + A B Cin

2)

Page 21: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

21

SoluçõSoluçõeses

S = A B Cin + A B Cin + A B Cin + A B Cin

Simplificando as expressõesSimplificando as expressões

S = A (B Cin + B Cin)+ A (B Cin + B Cin)

Fazendo X = B + Cin e X = B Cin

Como B + Cin = B Cin + B Cin e B Cin = B Cin + B Cin

S = A + X

S = A X+ A X

S = A + B + Cin

A e A em evidência

S = A (B + Cin)+ A (B Cin)

2)

Page 22: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

22

SoluçõSoluçõeses

Cout = A B Cin + A B Cin + A B Cin + A B Cin

Simplificando as expressõesSimplificando as expressões

0 1 1 1

0 0 1 0

B

A

A

B

CinCin Cin

P2=BCin

P3=ACin

P1=AB

2)

Cout = AB+BCin+ACin

Page 23: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

23

SoluçõSoluçõesesCircuito SubtratorCircuito Subtrator

S = A + B + Cin

A

B

Cin

S

Cout

3)

Cout = AB+BCin+ACin

Page 24: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

24

ULA: Somador e ULA: Somador e SubtratorSubtrator

RIRI

UCUC

SomadorSomador

SubtratorSubtrator

ULA

CPU

ULA com 2 circuitos para efetuar a adição e a subtração

Page 25: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

25

Exemplo: ULA Exemplo: ULA SimplificadaSimplificada

A

B

Page 26: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

26

Adição e Subtração Adição e Subtração em em

Complemento de 2Complemento de 2Exemplos de Adição:

a) 7

(+5)

2

710=01112 1000

+ 1

1001

Complemento de 2 do valor -710

1001

0101

1110 =-210

1

510=01012

+

Cout=0

Cin=0

Cin=0

Cout=0Overflow=0

em Complemento de 2

0001

+ 1

0010

Complemento de 2 de -210

-

-

0

0

+

Page 27: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

27

Adição e Subtração Adição e Subtração em em

Complemento de 2Complemento de 2Exemplos de Adição:

b) 4

(+4)

0

410=01002 1011

+ 1

1100

Complemento de 2 do valor -410

1100

0100

0000 =010

1

+

Cout=1

Cin=1

Cin=1

Cout=1Overflow=0

em Complemento de 2

1111

+ 1

0000

Complemento de 2 de 010

-

1

Despreza o carry

+

Page 28: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

28

Adição e Subtração Adição e Subtração em em

Complemento de 2Complemento de 2Exemplos de Adição:

c) +3

(+4)

7

310=00112

0011

0100

0111 =710

0

+

Cout=0

Cin=0

Cin=0

Cout=0Overflow=0

em Complemento de 2

+

410=01002

0

+

Page 29: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

29

Adição e Subtração Adição e Subtração em em

Complemento de 2Complemento de 2Exemplos de Adição:

d) 4

(-1)

5

410=010021011

+ 1

1100

Complemento de 2 do valor -410

1100

1111

1011 =-510

1

+

Cout=1

Cin=1

Cin=1

Cout=1Overflow=0

em Complemento de 20100

+ 1

0101

Complemento de 2 de -510

-

1

Despreza o carry

-

110=00012

1110

+ 1

1111

Complemento de 2 do valor -110

+

Page 30: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

30

Adição e Subtração Adição e Subtração em em

Complemento de 2Complemento de 2Exemplos de Adição:

e) +5

(+4)

9

510=01012

0101

0100

1001 =910

1

+

Cout=0

Cin=1

Cin=1

Cout=0Overflow=1

em Complemento de 2

+

+

410=01002

0 Erro de OverflowErro de Overflow

10012=910

Não dá para representar 9 com Não dá para representar 9 com registrador de 4 bits, com 1 bit de registrador de 4 bits, com 1 bit de sinalsinal

2 números 2 números positivos positivos

somados não somados não podem resultar podem resultar

num número num número negativonegativo

Page 31: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

31

Adição e Subtração Adição e Subtração em em

Complemento de 2Complemento de 2Exemplos de Adição:

f) 7

(-6)

13

710=011121000

+ 1

1001

Complemento de 2 do valor -710

1001

1010

0011 =310

0

+

Cout=1

Cin=0

Cin=0

Cout=1Overflow=1

em Complemento de 2

-

1

Despreza o carry

-

610=01102

1001

+ 1

1010

Complemento de 2 do valor -610

2 números negativos somados 2 números negativos somados não podem resultar num número não podem resultar num número positivopositivo

+

Page 32: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

32

Adição e Subtração Adição e Subtração em em

Complemento de 2Complemento de 2Subtração

A Subtração pode ser efetuada usando um circuito Somador

Minuendo

- Subtraendo

Subtração

Usa o Complemento de 2 do Usa o Complemento de 2 do Subtraendo e soma-o ao MinuendoSubtraendo e soma-o ao Minuendo

Page 33: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

33

210=00102

Adição e Subtração Adição e Subtração em em

Complemento de 2Complemento de 2Exemplos de Subtração:

a) 2

(+7)

5710=01112

1000

+ 1

1001

Complemento de 2 do valor 710

0010

1001

1011 =-510

+

Cout=0

Cin=0

Cin=0

Cout=0Overflow=0

em Complemento de 2

0100

+ 1

0101

Complemento de 2 de -510

-

0

0

-

Page 34: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

34

Adição e Subtração Adição e Subtração em em

Complemento de 2Complemento de 2Exemplos de Subtração:

b) 5

(+2)

3

510=01012 1101

+ 1

1110

Complemento de 2 do valor 210

0101

1110

0011 =310

210=00102

+

Cout=1

Cin=1

Cin=1

Cout=1Overflow=0

em Complemento de 2

1

1

-

Despreza o carry

Page 35: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

35

1101

+ 1

1110

Complemento de 2 do valor 210

Adição e Subtração Adição e Subtração em em

Complemento de 2Complemento de 2Exemplos de Subtração:

c) 5

(+2)

7

510=01012 1010

+ 1

1011

Complemento de 2 do valor -510

1011

1110

1001 =-710

210=00102

+

Cout=1

Cin=1

Cin=1

Cout=1Overflow=0

em Complemento de 2

1

1

-

Despreza o carry

-

-

1

0110

+ 1

0111

Complemento de 2 de -710

Page 36: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

36

Adição e Subtração Adição e Subtração em em

Complemento de 2Complemento de 2Exemplos de Subtração:

d) 5

(-2)

7

510=01012 1101

+ 1

1110

Complemento de 2 do valor 210

0101

0010

0111 =710

210=00102

+

Cout=0

Cin=0

Cin=0

Cout=0Overflow=0

em Complemento de 2

0

0

-

0001

+ 1

0010

Complemento de 2 do valor -210

Complemento de 2 de -2=2

Page 37: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

37

Adição e Subtração Adição e Subtração em em

Complemento de 2Complemento de 2Exemplos de Subtração:

e) 7

(-7)

14

710=01112 1000

+ 1

1001

Complemento de 2 do valor 710

0111

0111

1110 =-210

+

Cout=0

Cin=0

Cin=1

Cout=0Overflow=1

em Complemento de 2

0

1

-

0110

+ 1

0111

Complemento de 2 do valor -710

Complemento de 2 de -7=71 1

Erro de OverflowErro de Overflow

011102=1410

Não dá para representar 14 com Não dá para representar 14 com registrador de 4 bits, com 1 bit de registrador de 4 bits, com 1 bit de sinalsinal

Page 38: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

38

Adição e Subtração Adição e Subtração em em

Complemento de 2Complemento de 2Exemplos de Subtração:

f) (-6)

(+4)

10

610=01102 1001

+ 1

1010

Complemento de 2 do valor 610

1010

1100

0110 =610

+

Cout=0

Cin=0

Cin=0

Cout=1Overflow=1

em Complemento de 2

1

0

-

1011

+ 1

1100

Complemento de 2 do valor 410

Erro de OverflowErro de Overflow

-

410=01002

2 números negativos somados 2 números negativos somados não podem resultar num número não podem resultar num número positivopositivo

Page 39: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

39

Circuito Circuito Somador/Subtrator em Somador/Subtrator em

Complemento de 2Complemento de 2

A B S

0 0 0

0 1 1

1 0 1

1 1 0

Entradas Saída Símbolo da Porta XORSímbolo da Porta XORTV da Porta XORTV da Porta XOR

A

BS

Obs: Para obter o circuito Obs: Para obter o circuito somador/subtrator em complemento de 2 somador/subtrator em complemento de 2 vamos usar a porta XORvamos usar a porta XOR

Page 40: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

40

Circuito Circuito Somador/Subtrator em Somador/Subtrator em

Complemento de 2Complemento de 2

A B S

0 0 0

0 1 1

1 0 1

1 1 0

Entradas Saída

TV da Porta XORTV da Porta XOR

X

0S

Se fixar uma entrada Se fixar uma entrada em 0em 0

X=0

0 S=0

X=1

0 S=1

Deixando uma entrada Deixando uma entrada de controle em 0, o de controle em 0, o dado “X” é copiado dado “X” é copiado para a saídapara a saída

Page 41: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

41

Circuito Circuito Somador/Subtrator em Somador/Subtrator em

Complemento de 2Complemento de 2

A B S

0 0 0

0 1 1

1 0 1

1 1 0

Entradas Saída

TV da Porta XORTV da Porta XOR

X

1S

Se fixar uma entrada Se fixar uma entrada em 1em 1

X=0

1 S=1

X=1

1 S=0

Deixando uma Deixando uma entrada de controle entrada de controle em 1, o dado “X” é em 1, o dado “X” é complementado na complementado na saída: S=Xsaída: S=X

Para obter o complemento de 2 Para obter o complemento de 2 precisa somar 1 ao bit menos precisa somar 1 ao bit menos significativo do dadosignificativo do dado

Page 42: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

42

Circuito Circuito Somador/Subtrator em Somador/Subtrator em

Complemento de 2Complemento de 2C=C=Controle da Controle da Operação C=0 Operação C=0 A Aii+B+Bii

C=1 C=1 A Aii-B-Bii

Cin

A B

S

CinCout

A B

S

CinCoutS0S1

A1 A0

C0

B1 B0

B_SEL0B_SEL1

A B

S

CinCoutS2S3

A3 A2

S2S3

Cout

B3 B2

B_SEL2B_SEL3

A B

S

Cout

S1 S0 A0

B0

+0

C=0

A0

B0

+1

C=1

Com

ple

men

to d

e 2

de

B

Page 43: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

43

ExercíciExercíciosos1. Projete um circuito somador/subtrator em complemento de 2

usando um MUX para fazer o controle da geração do complemento de 2 do dado (subtraendo).

2. O custo do “novo” circuito somador/subtrator é maior ou menor que o do circuito anterior?

Page 44: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

44

SoluçõSoluçõeses1. Projete um circuito somador/subtrator em complemento de 2

usando um MUX para fazer o controle da geração do complemento de 2 do dado (subtraendo).

Cin

A B

S

CinCout

A B

S

CinCoutS0S1

A1 A0

C0

B1 B0

B_SEL0B_SEL1

A B

S

CinCoutS2S3

A3 A2

S2S3

Cout

B3 B2

B_SEL2B_SEL3

A B

S

Cout

S1 S0

MUX MUX MUX MUX

Page 45: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

45

SoluçõSoluçõeses2. O custo do “novo” circuito somador/subtrator é maior ou

menor que o do circuito anterior?

C

S

B i

B i

C

Para circuitos de 4 bits:

Circuito 1: 4 Portas XOR

Circuito 2: 4x5=20 Portas

Decisão de Projeto:

-Arquitetura: decide se vai oferecer adição em Complemento de 2

-Organização: decide como implementar (escolhe entre o circuito 1 e o circuito 2)MUX

Page 46: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

46

Somador de Alto Somador de Alto DesempenhoDesempenho

Somador Somador Somador Somador

S0S1S2S3 C1C2C3C4

C0A0B0A1B1A2B2A3B3

Somador Ripple-CarrySomador Ripple-Carry

Somador Convencional: Atrasos para propagar o carry

Somador ConvencionalSomador Convencional

Page 47: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

47

Somador de Alto Somador de Alto DesempenhoDesempenho

Somador Somador Somador Somador

S0S1S2S3 C1C2C3C4

C0A0B0A1B1A2B2A3B3

CL: Lógica para antecipar o carry sem passar pelo somador

Somador Carry LookaheadSomador Carry Lookahead

CL CL CL

Page 48: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

48

Somador de Alto Somador de Alto DesempenhoDesempenho

Ci+1 = AiBi + AiCi +BiCi

Expressão do Carry do Somador

Ci+1 = AiBi + Ci (Ai+Bi)

1. Fatorando a expressão

2. Chamando AiBi de Gi e Ai+Bi de Pi

Ci+1 = Gi + PiCi

3. Substituindo os índices para obter os carries para um somador de 4 bits

C1 = G0 + P0C0

C1 = G0

4. Para simplificar a análise, vamos considerar C0=0 para soma

A B C-out0 0 0 “nada”0 1 C-in “propaga”1 0 C-in “propaga”1 1 1 “gera”

Page 49: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

49

Somador de Alto Somador de Alto DesempenhoDesempenho

C2 = G1 + P1C1

Expressão do Carry do Somador

C2 = G1 + P1G0

5. Substituindo C1=G0

6. Obtendo C3

C3 = G2 + P2C2

7. Substituindo C2 = G1 + P1G0

C3 = G2 + P2(G1 + P1G0)

C4 = G3 + P3C3

8. Obtendo C4

C3 = G2 + P2G1 + P2P1G0

C4 = G3 + P3(G2 + P2G1 + P2P1G0)

C4 = G3 + P3G2 + P3P2G1 + P3P2P1G0

Page 50: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

50

ExercícExercícioio1. Faça o diagrama de blocos do circuito somador de 4

bits com a Lógica Carry Lookahead.

2. Calcule o atraso para gerar os carries.

Page 51: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

51

SoluçõSoluçõeses1. Faça o diagrama de blocos do circuito somador de 4

bits com a Lógica Carry Lookahead.

Page 52: Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini UniversidadeEstadual de Maringá Departamento de Informática Mestrado em Ciência da Computação

52

SoluçõSoluçõeses2. Calcule o atraso para gerar os carries.

Atraso de 3 Atraso de 3 Portas para gerar Portas para gerar o carryo carry

1 Porta

2 Portas

2 Portas

O somador introduz mais um O somador introduz mais um atraso de 2 Portas para gerar atraso de 2 Portas para gerar a Somaa Soma