A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini Universidade Estadual de Maringá Departamento de Informática Mestrado em Ciência."— Transcrição da apresentação:

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

2 Aritmética Computacional
Aula de Hoje Aritmética Computacional

3 Aritmética Computacional
Circuitos 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): 1 3 7 6 4 6 1 8 3 7 1 + 3 7 6 4 6 1 + 3 7 6 4 6 1 7 + 3 7 6 4 6 1 3 7 + Cada posição só pode representar um dígito, por isso, gera um carry (vai um)

4 Aritmética Computacional
Adição em Binário : Exemplo Cada posição só pode representar um dígito, por isso, gera um carry + 1 + 1 + 1 10 + cin 1 1 1 1 1 1 + 0 0 + 1 0 0 + + + + cout Soma

5 Aritmética Computacional
Entradas Saídas Cin Cin A B Cin S Cout 1 A +B Cout S

6 Aritmética Computacional
Entradas Saídas A B Cin S Cout 1 A B Cin A B Cin A B Cin S = A B Cin + A B Cin + A B Cin + A B Cin A B Cin

7 Aritmética Computacional
Entradas Saídas A B Cin S Cout 1 A B Cin A B Cin Cout = A B Cin + A B Cin + A B Cin + A B Cin A B Cin A B Cin

8 Aritmética Computacional
Simplificando as expressões S = A B Cin + A B Cin + A B Cin + A B Cin S = A (B Cin + B Cin)+ A (B Cin + B Cin) A e A em evidência Como B + Cin = B Cin + B Cin e B Cin = B Cin + B Cin S = A (B + Cin)+ A (B Cin) Fazendo X = B + Cin e X = B Cin S = A X+ A X S = A + X S = A + B + Cin

9 Aritmética Computacional
Simplificando as expressões Cout = A B Cin + A B Cin + A B Cin + A B Cin B B 1 P2=BCin A A P3=ACin Cin Cin Cin P1=AB Cout = AB+BCin+ACin

10 Aritmética Computacional
Circuito Somador S = A + B + Cin Cout = AB+BCin+ACin A + B + Cin B + Cin BCin AB AB+BCin+ACin ACin

11 Somador de 4 bits B3 A3 B2 A2 B1 A1 B0 A0 C0 Somador Somador Somador

12 Somador Bit Slice B3 A3 Somador C4 S3 C3
Para gerar o carry seguinte há 2 estágios de portas lógicas Atraso de 1 porta lógica Atraso de 1 porta lógica

13 Somador de 4 bits Somador Ripple-Carry B3 A3 B2 A2 B1 A1 B0 A0 C0
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.

14 Aritmética Computacional
Subtração Exemplo de subtração em decimal (dígitos de 0 a 9): Empresta 1 da coluna da esquerda para formar a dezena 6 1 6 7 6 5 8 - 7 6 5 8 7 6 5 8 8 - - 8 1

15 Aritmética Computacional
Subtração em Binário Exemplo 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 - 1 1 - 1 -

16 Aritmética Computacional
Subtração em Binário : Exemplo Gera um “empresta-1” (carry out) da coluna seguinte: a 1a coluna passa a valer 102=210 1 1 1 1 1 - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 1 cin 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 Subtração

17 Exercícios 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). Obtenha as expressões para a subtração S e para o Cout a partir da Tabela Verdade. Desenhe o diagrama de portas lógicas do circuito subtrator.

18 Soluções 1) Tabela Verdade para o Subtrator Entradas Saídas A B Cin S
Cout 1

19 Soluções 2) Entradas Saídas A B Cin S Cout 1
1 S = A B Cin + A B Cin + A B Cin + A B Cin

20 Soluções 2) Entradas Saídas A B Cin S Cout 1
1 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

21 Soluções 2) Simplificando as expressões
S = A B Cin + A B Cin + A B Cin + A B Cin S = A (B Cin + B Cin)+ A (B Cin + B Cin) A e A em evidência Como B + Cin = B Cin + B Cin e B Cin = B Cin + B Cin S = A (B + Cin)+ A (B Cin) Fazendo X = B + Cin e X = B Cin S = A X+ A X S = A + X S = A + B + Cin

22 Soluções 2) 1 Simplificando as expressões
Cout = A B Cin + A B Cin + A B Cin + A B Cin B B P3=ACin 1 P2=BCin A A Cin Cin Cin P1=AB Cout = AB+BCin+ACin

23 Soluções Circuito Subtrator 3) S = A + B + Cin Cout = AB+BCin+ACin

24 ULA: Somador e Subtrator
RI UC Somador Subtrator ULA CPU ULA com 2 circuitos para efetuar a adição e a subtração

25 Exemplo: ULA Simplificada
B

26 Adição e Subtração em Complemento de 2
Complemento de 2 do valor -710 Exemplos de Adição: 7 (+5) 2 - 710=01112 1000 + 1 1001 a) + 510=01012 - Cin=0 1 1001 0101 1110 Cin=0 Overflow=0 + Cout=0 =-210 0001 + 1 0010 Cout=0 Complemento de 2 de -210 em Complemento de 2

27 Adição e Subtração em Complemento de 2
Complemento de 2 do valor -410 Exemplos de Adição: 4 (+4) - 410=01002 1011 + 1 1100 b) + Cin=1 1 1100 0100 0000 Cin=1 Overflow=0 + Cout=1 1 =010 1111 + 1 0000 Cout=1 Complemento de 2 de 010 em Complemento de 2 Despreza o carry

28 Adição e Subtração em Complemento de 2
Exemplos de Adição: +3 (+4) 7 310=00112 c) + 410=01002 + Cin=0 0011 0100 0111 Cin=0 Overflow=0 + Cout=0 =710 Cout=0 em Complemento de 2

29 Adição e Subtração em Complemento de 2
Complemento de 2 do valor -410 Exemplos de Adição: 1011 + 1 1100 4 (-1) 5 d) - 410=01002 + 110=00012 Complemento de 2 do valor -110 - 1110 + 1 1111 Cin=1 1 1100 1111 1011 + Cin=1 1 =-510 Overflow=0 Cout=1 Cout=1 0100 + 1 0101 em Complemento de 2 Complemento de 2 de -510 Despreza o carry

30 Adição e Subtração em Complemento de 2
Exemplos de Adição: 2 números positivos somados não podem resultar num número negativo +5 (+4) 9 510=01012 e) + 410=01002 + Cin=1 1 0101 0100 1001 Cin=1 Overflow=1 + Cout=0 =910 Erro de Overflow 10012=910 Cout=0 em Complemento de 2 Não dá para representar 9 com registrador de 4 bits, com 1 bit de sinal

31 Adição e Subtração em Complemento de 2
Complemento de 2 do valor -710 Exemplos de Adição: 1000 + 1 1001 7 (-6) 13 - 710=01112 f) + 610=01102 Complemento de 2 do valor -610 - 1001 + 1 1010 Cin=0 1001 1010 0011 + Cin=0 1 =310 Overflow=1 Cout=1 Cout=1 em Complemento de 2 2 números negativos somados não podem resultar num número positivo Despreza o carry

32 Adição e Subtração em Complemento de 2
A Subtração pode ser efetuada usando um circuito Somador Minuendo - Subtraendo Subtração Usa o Complemento de 2 do Subtraendo e soma-o ao Minuendo

33 Adição e Subtração em Complemento de 2
Complemento de 2 do valor 710 Exemplos de Subtração: 2 (+7) 5 210=00102 1000 + 1 1001 a) - 710=01112 - Cin=0 0010 1001 1011 Cin=0 Overflow=0 + Cout=0 =-510 0100 + 1 0101 Cout=0 Complemento de 2 de -510 em Complemento de 2

34 Adição e Subtração em Complemento de 2
Complemento de 2 do valor 210 Exemplos de Subtração: 5 (+2) 3 510=01012 1101 + 1 1110 b) - 210=00102 Cin=1 1 0101 1110 0011 Cin=1 Overflow=0 + Cout=1 1 =310 Cout=1 em Complemento de 2 Despreza o carry

35 Adição e Subtração em Complemento de 2
Complemento de 2 do valor -510 Exemplos de Subtração: 5 (+2) 7 - 510=01012 1010 + 1 1011 c) - 210=00102 Complemento de 2 do valor 210 - 1101 + 1 1110 Cin=1 1 1 1011 1110 1001 + Cin=1 1 =-710 Overflow=0 Cout=1 Cout=1 0110 + 1 0111 em Complemento de 2 Complemento de 2 de -710 Despreza o carry

36 Adição e Subtração em Complemento de 2
Complemento de 2 do valor 210 Exemplos de Subtração: 5 (-2) 7 510=01012 1101 + 1 1110 d) - 210=00102 Complemento de 2 do valor -210 0001 + 1 0010 Cin=0 Complemento de 2 de -2=2 0101 0010 0111 + Cin=0 Overflow=0 =710 Cout=0 Cout=0 em Complemento de 2

37 Adição e Subtração em Complemento de 2
Complemento de 2 do valor 710 Exemplos de Subtração: 7 (-7) 14 710=01112 1000 + 1 1001 e) - Complemento de 2 do valor -710 0110 + 1 0111 Cin=0 1 1 1 Complemento de 2 de -7=7 0111 1110 + Cin=1 Overflow=1 =-210 Cout=0 Erro de Overflow Cout=0 em Complemento de 2 011102=1410 Não dá para representar 14 com registrador de 4 bits, com 1 bit de sinal

38 Adição e Subtração em Complemento de 2
Complemento de 2 do valor 610 Exemplos de Subtração: (-6) (+4) 10 610=01102 1001 + 1 1010 f) - 410=01002 Complemento de 2 do valor 410 - 1011 + 1 1100 Cin=0 1010 1100 0110 + Cin=0 Overflow=1 1 =610 Cout=1 Erro de Overflow Cout=0 em Complemento de 2 2 números negativos somados não podem resultar num número positivo

39 Circuito Somador/Subtrator em Complemento de 2
Obs: Para obter o circuito somador/subtrator em complemento de 2 vamos usar a porta XOR TV da Porta XOR Símbolo da Porta XOR Entradas Saída A B S 1 A S B

40 Circuito Somador/Subtrator em Complemento de 2
TV da Porta XOR Entradas Saída Se fixar uma entrada em 0 X A B S 1 S X=0 S=0 X=1 S=1 Deixando uma entrada de controle em 0, o dado “X” é copiado para a saída

41 Circuito Somador/Subtrator em Complemento de 2
TV da Porta XOR Entradas Saída Se fixar uma entrada em 1 X A B S 1 S 1 X=0 1 S=1 Deixando uma entrada de controle em 1, o dado “X” é complementado na saída: S=X X=1 1 S=0 Para obter o complemento de 2 precisa somar 1 ao bit menos significativo do dado

42 Circuito Somador/Subtrator em Complemento de 2
C=Controle da Operação C=0  Ai+Bi C=1  Ai-Bi Cin A B S Cout S0 S1 A1 A0 C0 B1 B0 B_SEL0 B_SEL1 S2 S3 A3 A2 B3 B2 B_SEL2 B_SEL3 Complemento de 2 de B A0 B0 +0 A0 B0 +1 C=0 C=1

43 Exercícios 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). O custo do “novo” circuito somador/subtrator é maior ou menor que o do circuito anterior?

44 Soluções 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). A3 A2 B3 B2 A1 A0 B1 B0 MUX MUX MUX MUX C0 B_SEL3 B_SEL2 A B S Cin Cout B_SEL1 A B S Cin Cout B_SEL0 A B A B S3 S2 S1 S0 Cout Cout Cin Cout Cin S S S3 S2 S1 S0

45 Soluções O custo do “novo” circuito somador/subtrator é maior ou menor que o do circuito anterior? 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

46 Somador de Alto Desempenho
Somador Convencional Somador Ripple-Carry B3 A3 B2 A2 B1 A1 B0 A0 C0 Somador Somador Somador Somador C4 S3 C3 S2 C2 S1 C1 S0 Somador Convencional: Atrasos para propagar o carry

47 Somador de Alto Desempenho
Somador Carry Lookahead B3 A3 B2 A2 B1 A1 B0 A0 CL CL CL C0 Somador Somador Somador Somador C4 S3 C3 S2 C2 S1 C1 S0 CL: Lógica para antecipar o carry sem passar pelo somador

48 Somador de Alto Desempenho
Expressão do Carry do Somador A B C-out 0 0 0 “nada” 0 1 C-in “propaga” 1 0 C-in “propaga” 1 1 1 “gera” Ci+1 = AiBi + AiCi +BiCi 1. Fatorando a expressão Ci+1 = AiBi + Ci (Ai+Bi) 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 4. Para simplificar a análise, vamos considerar C0=0 para soma C1 = G0

49 Somador de Alto Desempenho
Expressão do Carry do Somador C2 = G1 + P1C1 5. Substituindo C1=G0 C2 = G1 + P1G0 6. Obtendo C3 C3 = G2 + P2C2 7. Substituindo C2 = G1 + P1G0 C3 = G2 + P2(G1 + P1G0) C3 = G2 + P2G1 + P2P1G0 8. Obtendo C4 C4 = G3 + P3C3 C4 = G3 + P3(G2 + P2G1 + P2P1G0) C4 = G3 + P3G2 + P3P2G1 + P3P2P1G0

50 Exercício Faça o diagrama de blocos do circuito somador de 4 bits com a Lógica Carry Lookahead. Calcule o atraso para gerar os carries.

51 Soluções Faça o diagrama de blocos do circuito somador de 4 bits com a Lógica Carry Lookahead.

52 Soluções Calcule o atraso para gerar os carries. 1 Porta
Atraso de 3 Portas para gerar o carry 2 Portas 2 Portas O somador introduz mais um atraso de 2 Portas para gerar a Soma


Carregar ppt "Tópicos em Arquitetura de Computadores - 4027 João Angelo Martini Universidade Estadual de Maringá Departamento de Informática Mestrado em Ciência."

Apresentações semelhantes


Anúncios Google