circuitos aritméticos

39
Circuitos Aritméticos Prof.ª M.ª Eng.ª Elaine Cecília Gatto

Upload: elaine-cecilia-gatto

Post on 20-Jul-2015

42 views

Category:

Education


0 download

TRANSCRIPT

Circuitos AritméticosProf.ª M.ª Eng.ª Elaine Cecília Gatto

Unidade Lógica Aritmética

• O objetivo principal de uma ALU é receber dados bináriosarmazenados na memória e executar operações aritméticas elógicas sobre eles, de acordo com as instruções provenientesda unidade de controle. 1

9/0

5/2

01

5P

rof.ª

M.ª

En

g.ª

Elai

ne

Cec

ília

Gat

to

2

Unidade Lógica Aritmética

• Dois registradores:

• ACUMULADOR: acumula o resultado da soma quando realizasucessivas adições entre um novo número e a soma previamenteacumulada

• REGISTRADOR B

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

3

Unidade Lógica Aritmética

• Sequência típica deoperações pode ocorrer daseguinte maneira:

• A unidade de controle recebeas instruções provenientes damemória RAM

• A unidade de controleespecifica que o númerobinário armazenado emdeterminada posição damemória será somado aonúmero armazenado noregistrador acumulador

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

4

• O número a sersomado é transferidoda memória RAM parao REGISTRADOR B

Unidade Lógica Aritmética

• Os números doREGISTRADOR B e doACUMULADOR sãosomados no circuitológico

• O resultado da soma éenviado aoACUMULADOR para serarmazenado

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

5

• Se a operaçãoaritmética tiverterminado, então onúmero resultantepode ser enviado àmemória

Unidade Lógica Aritmética

• Se a operaçãoaritmética não tiverterminado, então onúmero resultantepermanece noACUMULADOR para quepossa ser somado aopróximo número.

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

6

Somador Binário Paralelo

• As operações aritméticas são realizadas sobre apenas doisnúmeros binários de cada vez.

• Cada número binário pode ter vários digitos binários.

• Exemplo: somando dois números de 5 bits (10101 + 00111)

• Primeira parcela é armazenada no acumulador

• Segunda parcela é armazenada no registrador B

• Cada um dos registradores deve ter 5 flip flips paraconseguir manipular os 5 bits

• O processo começa pelo bit menos significativo, portanto 1+ 1 = 10, que gera um CARRY

• O CARRY deve ser somado às próximas posições

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

7

Somador Binário Paralelo

• A conta ficará como mostrada abaixo:

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

8

Somador Binário Paralelo

• Na segunda posição, tem-se 1 + 0 + 1 = 10, em que soma-se osdois bits com o carry da posição anterior, e assimsucessivamente

• Em cada passo do processo de adição, 3 bits são somados, 2bits do número binário + 1 bit do carry

• O mesmo processo é seguido para cada posição de bit

• Um circuito projeto para realizar essa operação, pode sereplicado para a quantidade de bits necessários

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

9

Somador Binário Paralelo

• Exemplo de circuito em diagrama de bloco

• A1 e B1 são colocados nas entradas do somador completojuntamente com C1

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

10

Somador Binário Paralelo

• A0 e B0 são colocados nas entradas do somador completojuntamente com C0. Neste circuito, na posição zero nunca haverácarry e C0 sempre terá o valor zero.

• A0, B0 e C0 são as entradas do somador completo FA0, que geraduas saídas, S0 e C1 (soma e carry)

• Lembrem-se que nos computadores a faixa de bits de um númerobinário pode variar de 8 a 64 bits

• Neste circuito, todos os bits relativos às parcelas são colocadossimultaneamente na entrada do somador, por isso o nome desomador binário paralelo.

• A adição do bit de cada posição é realizada ao mesmo tempo

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

11

Somador Completo• Um somador completo tem 3 entradas e 2 saídas, sendo 2 números

de entrada para serem adicionados e carry in e a soma e o carry outcomo saída

• A expressão booleana resultante da soma é A xor B ( B xor Cin)

• A expressão booleana resultante do carry out é BCin + ACin + AB

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

12

Somador Completo

• Implementando as expressões em um circuito

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

13

Somador Paralelo Completo com Registradores• Exemplo: somador completo de 4 bits com registradores de

armazenamento

• Os registradores são construídos com flips flops do tipo D

• O acumulador A armazena os bits de A3 à A0 (primeira parcela)

• O registrador B armazena os bits de B3 à B0 (segunda parcela)

• O acumulador A é somado com o registrador B

• S3 à S0 são os bits de saída, resultado da soma entre A e B

• C4 é o bit de carry do quarto F.A. O C4 pode ser usado como CARRYde entrada para um QUINTO F.A., ou ainda, como bit de OVERFLOW,indicado um estouro do número.

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

14

Somador Paralelo Completo com Registradores

• TRANSFER: transfere os bits do resultado da conta, de formaPARALELA, para o registrador A na borda de subida deste pulso

• O registrador B recebe dados da MEMÓRIA

• Os dados da MEMÓRIA são transferidos de forma PARALELA parao registrador B na borda de subida do pulso LOAD

• LOAD: sinal (pulso) de transferência de carregamento de bits daMEMÓRIA para o registrador

• CLEAR: sinal para “limpar” o circuito

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

15

Somador Paralelo Completo com Registradores• x

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

16

Somador Paralelo Completo com Registradores

• NOTAÇÕES:

• [A] = 1011 o registrador A contém este valor

• [B] = 1111 o registrador B contém este valor

• [B] [A]: o conteúdo do registador B foi copiado para oregistrador acumulador

• [A] [B]: o conteúdo do registador acumulador foicopiado para o registrador B

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

17

Somador Paralelo Completo com Registradores• Sequencia de Operações

• CONSIDERE [A] = 1001, [B] = 0101 E [C0] = 0

• Instante t1: um pulso CLEAR é aplicado na entrada de cada FlipFlop do registrador A, portanto, [A] = 0000

• Instante t2: um número binário é transferido da memória para oregistrador B na vorda de subida do pulso LOAD; portanto, [M][B]

• Instante t3: neste momento [B] = 1001 e [A] = 0000, portanto,1001 + 0000 = 1001. O resultado dessa soma é transferido para oregistrador acumulador A na borda de subida do pulsoTRANSFER, gerando [A] = 1001, portanto, [S]’ [A]

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

18

Somador Paralelo Completo com Registradores• Sequencia de Operações

• Instante t4: o segundo número binário é transferido damemória para o registrador B na borda de subida dosegundo pulso de LOAD. [B] = 0101, portanto, [M] [B]

• Instante 5: [B] = 0101 e [A] = 1001, portanto, 0101 + 1001 =1110. O resultado dessas saídas é transferido para oregistrador A no segundo pulso de TRANSFER. [A] = 1110,portanto, [S] [A]

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

19

Somador Paralelo Completo com Registradores• Sequencia de Operações

• A soma dos dois número binários está agora armazenadano registrador A

• O conteúdo do registrador acumulador é transferido para amemória, de modo a liberar o circuito somador para arealização de outra operação aritmética

• Portanto, [A] [M]. O circuito não está implementadoneste exemplo.

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

20

Exercícios

1. Quantas entradas tem um somador completo?

2. Quantas saídas tem um somador completo?

3. Considere os seguintes níveis nas entradas do circuito dosomador binário paralelo: [A] = 01001, [B] = 00111, [C] =0. Qual é o nível lógico na saída do somador completo(FA#2)? Qual o nível lógico na saída C5?

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

21

Exercícios

1. Considere que quatro números diferentes de quatro bits,provenientes da memória, são somados pelo circuito dosomador paralelo completo com registradores. Quantospulsos CLEAR serão necessários? Qantos pulsosTRANSFER? Quantos pulsos LOAD?

2. Determine o conteúdo do registrador A após a seguintesequencia de operações:

1. [A] = 0000

2. [0110] [B]

3. [S] [A]

4. [1110] [B]

5. [S] [A]

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

22

Propagação do Carry

• A velocidade com que o somador paralelo completo comregistradores realiza operações é relativamente alta, sendolimitada apenas pelo efeito de PROPAGAÇÃO DO CARRY OUONDULAÇÃO DO CARRY (CARRY RIPPLE)

• SITUAÇÃO PROBLEMA: A soma do bit gerado na últimaposição depende do carry que foi gerado na adição daprimeira posição

• O bit S3 depende do bit C1, portanto, o sinal do primeiro carrytem que passar por todos os FA’s antes de gerar a Saída final

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

23

Propagação do Carry

• A saída final não alcançará o valor correto até que o sinal doprimeiro carry tenha sido propagado pelos FA’s intermediários

• Suponha que os FA’s tenham propagação de 40 ns. Como osinal de C1 precisa passar por três FA’s, então, 40ns * 3FA’s =120ns. Portanto, a saída final só alcançará seu valor corretoapós 120ns.

• Considerando o tempo de geração do sinal de carry (40ns) queocorre no primeiro FA, então, o pulso do comando deexecução da soma NÃO pode ocorrer, ou ser aplicado, antesde 160ns (120 + 40)

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

24

Propagação do Carry

• Para solucionar este problema em CPUs, foi desenvolvido oCARRY ANTECIPADO (look-ahead carry)

• Nesse esquema, portas lógicas são utilizadas para monitoraros bits de baixa ordem (LSB) das parcelas, para verificar se umcarry de ALTA ORDEM (MSB) será gerado

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

25

Somador Paralelo em Circuito Integrado

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

26

Somador Paralelo em Circuito Integrado

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

27

Somador Paralelo em Circuito Integrado

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

28

• Exercícios

• Determine os níveis lógicos nas entradas e saídas do somador de oito bits em que 72(10) é somado com 137(10)

• Quantos Cis 74283 são necessários para somar dois números de 20 bits?

Sistema de Complemento de 2: ADD

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

29

Sistema de Complemento de 2: SUB• Lembre-se:

• o número a ser subtraído é transformado para sua forma decomplemento a 2 (subtraendo)

• em seguida, o subtraendo é SOMADO ao minuendo

• O circuito anterior pode ser ADAPTADO para ser usado comoum somador.

• É necessário, portanto, obter o complemento a 2 do númeroarmazenado no registrado B

• OU, para testar a subtração usando ESTE circuito, faça aconversão no papel e COLOQUE nas entradas, o valorcorrespondente, a saída será a mesma

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

30

Sistema de Complemento de 2: SUB

• Usa-se as saídas invertidas do registrador B ao invés das saídasnormais. Dessa forma temos o complemento de 1

• C0 é colocado com o valor 1 para realizar a soma de 1 no LSB,simulando a soma de 1 ao número que já está emcomplemento de 1

• O resultado é o complemento de 2

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

31

Sistema de Complemento de 2: SUB

• EXEMPLO: SUBTRAIR +6 DE +4

• +4 é armazenado no registrador A como 0100

• +6 é armazenado no registrador B como 0110

• As saídas invertidas dos FLIP FLOPS doregistrador B são colocadas na entrada dosomador (1001)

• O circuito somador paralelo soma [A] = 0100com [B] = 1001 e C0 = 1

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

32

Sistema de Complemento de 2: SUB• O resultado da soma nas saídas é 1110

• Essa é a DIFERENÇA entre [A] e [B] que é 2

• O resultado é NEGATIVO e está na forma deCOMPLEMENTO A 2

• Para verificar a resposta, faça a conversão novamente.

• Pegue 1110 e encontre o seu complemento a 2. veráque o resultado é exatamente 2.

• Portanto, um circuito somador paralelo pode serusado para ADIÇÃO ou SUBTRAÇÃO, dependendo se onúmero B é mantido inalterado ou convertido para suaforma de complemento a 2

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

33

Sistema de Complemento de 2: SUB

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

34

Sistema de Complemento de 2: ADD e SUB

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

35

Sistema de Complemento de 2: ADD e SUB

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

36

• O circuito apresentado anteriormente tem acapacidade de SOMAR ou SUBTRAIR

• O sinal ADD quando ativo em 1 realizará a SOMA

• O sinal SUB quando ativo em 1 realizará a SUBTRAÇÃO

• Quando ADD = 1 E SUB = 0

• SUB DESABILITA as portas AND 2, 4, 6 e 8 e mantémsuas saídas em 0

• ADD HABILITA as portas AND 1, 3, 5 e 7, permitindopassar, em suas saídas, os níveis lógicos (0 ou 1) decada valor de B (B0, B1, B2 e B3)

Sistema de Complemento de 2: ADD e SUB

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

37

• Quando ADD = 1 E SUB = 0

• B0 à B3 passam pelas portas OR

• Entram no somador paralelo

• São somados com os bits de A0 à A3

• O resultado aparece nas saídas E0 à E3

• Essa situação gera SUB = 0 E C0 = 0

Sistema de Complemento de 2: ADD e SUB

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

38

• Quando ADD = 0 E SUB = 1

• ADD DESABILITA as portas AND 1, 3, 5 e 7• SUB HABILITA as portas AND 2, 4, 6 e 8• Nas saídas aparecem os níveis lógicos de B0 à B3

INVERTIDOS• B0 à B3 invertidos passam pelas portas OR• Entram para o somador• São somados com os bits de A0 à A3• C0 = 1• O número armazenado no registrador B é

convertido para a forma de complemento a 2• A DIFERENÇA aparece nas saídas de E0 à E3

Exercícios

19

/05

/20

15

Pro

f.ª M

.ª E

ng.

ª El

ain

e C

ecíli

a G

atto

39

• Por que C0 tem de ser nível 1 para que o circuitosomador seja usado como subtrator?

• Considere que [A] = 0011 e [B] = 0010. Se ADD = 1 e SUB= 0, determine os níveis lógicos nas saídas das portas OR

• Repita a questão anterior para Add=0 e SUB=1

• Quando o circuito somador/subtrator é usado parasubtração, o complemento de 2 do subtraendo aparecena saída do somador? SIM OU NÃO?