Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouEsther Cabral Alterado mais de 9 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.