arquitetura de computadores - instituto de informática - ufgfmc/arqcomp/aritimetica.pdf ·...
TRANSCRIPT
![Page 1: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/1.jpg)
Arquitetura de Computadores
Prof. Fábio M. CostaInstituto de Informática – UFG1S/2004
Representação de Dados e Aritimética Computacional
![Page 2: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/2.jpg)
Roteiro
Números inteiros sinalizados e não-sinalizados
Operações aritiméticas
Números de ponto flutuante
![Page 3: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/3.jpg)
Unidade Lógico-Aritimética
Executa cálculos
Todos os demais componentes do computadores existem em função dela
Manipula números inteiros
Pode manipular números de ponto flutuante (números reais) – FPU (Floating Point Unit)
integrado no chip do processador, ou
em um co-processador separado (obsoleto)
![Page 4: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/4.jpg)
ULA (ALU): Entradas e Saídas
![Page 5: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/5.jpg)
Representação de inteiros
Apenas 0 e 1 para representar tudoNúmeros positivos são armazenados em repr. binária “direta”
Ex.: 41 = 00101001
Sem sinal de menosSem ponto decimal (vírgula)Duas representações possíveis:
Sinal-e-magnitudeComplemento de dois
![Page 6: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/6.jpg)
Representação em sinal-magnitude
Bit mais à esquerda (mais significativo) é o bit de sinal
0: positivo1: negativo
Ex.:+18 = 00010010 -18 = 10010010
ProblemasEm operações aritiméticas é preciso considerar ambos o sinal e a magnitudeDuas representações para zero (+0 e -0 !!!)
![Page 7: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/7.jpg)
Representação em complemento de dois
+3 = 00000011
+2 = 00000010
+1 = 00000001
0 = 00000000
-1 = 11111111
-2 = 11111110
-3 = 11111101
![Page 8: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/8.jpg)
Complemento de dois: Benefícios
Uma única representação para zero
Aritimética mais simples (veja a seguir)
Operação de negação torna-se mais simples:3 = 00000011
complemento booleano: 11111100
Soma 1 ao bit menos signific. (LSB): 11111101
![Page 9: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/9.jpg)
Representação geométrica de inteiros em complemento de dois
![Page 10: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/10.jpg)
Negação: Caso especial 1
0 = 00000000
Negação bit-a-bit 11111111
Soma 1 ao LSB +1
Result 1 00000000
Overflow é ignorado, então:
- 0 = 0 √
![Page 11: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/11.jpg)
Negação: Caso especial 2
-128 = 10000000
Negação bit-a-bit 01111111
Soma 1 ao LSB +1
Resultado = 10000000
Então:
-(-128) = -128 X
Monitorar MSB (bit de sinal):Ele deve mudar após uma negação!
![Page 12: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/12.jpg)
Faixa de números
Complemento de 2 de 8 bits+127 = 01111111 = 27 -1
-128 = 10000000 = -27
Complemento de 2 de 16 bits+32767 = 011111111 11111111 = 215 - 1
-32768 = 100000000 00000000 = -215
![Page 13: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/13.jpg)
Conversão entre tamanhos e Extensão de sinal
Números positivos: zeros à esquerda
+18 = 00010010
+18 = 00000000 00010010
Números negativos: 1’s à esquerda
-18 = 11101110
-18 = 11111111 11101110
i.e. reproduz o bit de sinal à esquerda
![Page 14: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/14.jpg)
Adição e subtração
Adição binária normal
Monitorar o overflow do bit de sinal
Subtração:Tome o complemento de dois do subtraendo e adicione-o ao minuendo
i.e.: a – b = a + (-b)
Assim, nós precisamos apenas de circuitos de adição e de complemento
![Page 15: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/15.jpg)
Hardware para adição e subtração
![Page 16: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/16.jpg)
Multiplicação
Mais complexa:Opera-se o produto parcial para cada dígito (do multiplicador)
Desloca cada produto parcial uma casa à esquerda
Adiciona-se os produtos parciais
Multiplicação de números inteiros de n bits:produto com até 2n bits
![Page 17: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/17.jpg)
Exemplo de multiplicação
1011 Multiplicando (11 decimal)
x 1101 Multiplicador (13 decimal)
1011 Produtos parciais
0000 Obs.: se o bit multiplicador é 1,
1011 copia-se o multiplicando;
1011 do contrário: zero
10001111 Produto (143 decimal)
Obs.: requer resultado de tamanho duplo
![Page 18: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/18.jpg)
Multiplicação binária não-sinalizada
![Page 19: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/19.jpg)
Algoritmo direto
![Page 20: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/20.jpg)
Execução de um exemplo
![Page 21: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/21.jpg)
Multiplicação de números negativos
Algoritmo direto (anterior) não funcionase um dos dois números for negativo
Solução 1converter para positivo, se necessário
multiplicar como acima
se os sinais forem diferentes, negar a resposta
Solução 2Algoritmo de Booth
![Page 22: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/22.jpg)
Algoritmo de Booth
![Page 23: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/23.jpg)
Exemplo (algoritmo de Booth)
![Page 24: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/24.jpg)
Divisão
Mais complexa que a multiplicação
Pior para números negativos
Baseado na operação com “lápis e papel”
![Page 25: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/25.jpg)
Divisão de números inteiros não sinalizados - Exemplo
Divisor
Quociente
Resto
RestosParciais
Dividendo10010011 1011 1011 00001101 001110 1011 001111 1011 100
![Page 26: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/26.jpg)
Números reais
Números com fraçõesPoderiam ser representados em binário puro
1001,1010 = 23 + 20 + 2-1 + 2-3 = 9,625
Onde fica o ponto binário?Fixo?
muito limitado
Móvel?como mostrar onde ele está?
![Page 27: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/27.jpg)
Ponto Flutuante
+/- 0,<mantissa> X 2<expoente>
O ponto é fixado entre o bit de sinal e o corpo da mantissaO expoente indica a posição (relativa) do ponto
Bit
sina
l
ExpoentePolarizado
Mantissa
![Page 28: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/28.jpg)
Representação Binária Polarizada
Repr. Decimal Repr. Polarizada+8 1111+7 1111+6 1110+5 1101+4 1100+3 1011+2 1010+1 1001+0 10000 01111 01102 01013 01004 00115 00106 00017 00008
Vantagem principal:•comparação direta•lógica mais simples
Uso na notação de Ponto Flutuante:
•O expoente real é convertido para a forma
polarizada
![Page 29: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/29.jpg)
Exemplos de números de ponto flutuante
![Page 30: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/30.jpg)
Faixa de Números Representáveis com 32 bits
![Page 31: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/31.jpg)
Referências
Stallings (*)Cap. 8: Aritimética
Computacional
Patterson & HennessyCap. 4: Aritimética Computacional
(*) referência principal
![Page 32: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG](https://reader034.vdocuments.site/reader034/viewer/2022052314/5be6bff809d3f26f698b8346/html5/thumbnails/32.jpg)
Exercícios
Stallings8.4 a 8.6
8.14 a 8.16