arquitetura de computadoreseduardo/arq/aritimetica-eduardo.pdf · arquitetura de computadores...
TRANSCRIPT
![Page 1: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/1.jpg)
1
Arquitetura de Computadores
Eduardo Albuquerque
Adaptado do material do Prof. Fábio M. CostaInstituto de Informática – UFG1S/2004
Representação de Dados e Aritmética Computacional
Roteiro
Números inteiros sinalizados e não-sinalizadosOperações aritméticasNúmeros de ponto flutuante
![Page 2: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/2.jpg)
2
Unidade Lógico-aritmética
Executa cálculosTodos os demais componentes do computadores existem em função delaManipula números inteirosPode manipular números de ponto flutuante (números reais) – FPU (Floating Point Unit)
integrado no chip do processador, ouem um co-processador separado (obsoleto)
ULA (ALU): Entradas e Saídas
![Page 3: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/3.jpg)
3
Representação de inteiros
Apenas 0 e 1 para representar tudoNúmeros positivos são armazenados em repr. binária “direta”
Ex.: 41 = 00101001Sem sinal de menosSem ponto decimal (vírgula)Duas representações possíveis:
Sinal-e-magnitudeComplemento de dois
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 aritméticas é preciso considerar ambos o sinal e a magnitudeDuas representações para zero (+0 e -0 !!!)
![Page 4: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/4.jpg)
4
Representação em complemento de dois
+3 = 00000011+2 = 00000010+1 = 000000010 = 00000000-1 = 11111111-2 = 11111110-3 = 11111101
Complemento de dois: Benefícios
Uma única representação para zeroaritmética mais simples (veja a seguir)Operação de negação torna-se mais simples:
3 = 00000011complemento booleano: 11111100Soma 1 ao bit menos signific. (LSB): 11111101
![Page 5: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/5.jpg)
5
Representação geométrica de inteiros em complemento de dois
Negação: Caso especial 1
0 = 00000000Negação bit-a-bit 11111111Soma 1 ao LSB +1Result 1 00000000Overflow é ignorado, então:- 0 = 0 √
![Page 6: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/6.jpg)
6
Negação: Caso especial 2
-128 = 10000000Negação bit-a-bit 01111111Soma 1 ao LSB +1Resultado = 10000000Então:-(-128) = -128 XMonitorar MSB (bit de sinal):
Ele deve mudar após uma negação!
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 7: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/7.jpg)
7
Conversão entre tamanhos
Números positivos: zeros à esquerda+18 = 00010010+18 = 00000000 00010010Números negativos: 1’s à esquerda-18 = 11101110-18 = 11111111 11101110i.e. reproduz o bit de sinal à esquerda
Exercício (8.3)
Considere a seguinte operação sobre uma palavra binária. Comece pelo bit menos significativo. Copie tos os bits que são iguais a 0, até que seja encontrado o primeiro bit diferente de zero, e copie também este bit. Então, tome o complemento de cada bit daí por diante. Qual é o resultado?
![Page 8: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/8.jpg)
8
Adição e subtração
Adição binária normalMonitorar 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
Hardware para adição e subtração
![Page 9: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/9.jpg)
9
Exercício
Somar em complemento de 2-7 + 5-4 + 43 + 4-4 + (-1)5 + 4-7 + (-6)
Subtraia os números-7 - 5-4 - 43 - 4-4 - (-1)5 - 4-7 + (-6)
Multiplicação
Mais complexa:Opera-se o produto parcial para cada dígito (do multiplicador)Desloca cada produto parcial uma casa à esquerdaAdiciona-se os produtos parciais
Multiplicação de números inteiros de n bits:produto com até 2n bits
![Page 10: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/10.jpg)
10
Exemplo de multiplicação
1011 Multiplicando (11 decimal)x 1101 Multiplicador (13 decimal)
1011 Produtos parciais0000 Obs.: se o bit multiplicador é 1,
1011 copia-se o multiplicando;1011 do contrário: zero10001111 Produto (143 decimal)Obs.: requer resultado de tamanho duplo
Multiplicação binária não-sinalizada
![Page 11: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/11.jpg)
11
Algoritmo direto
Execução de um exemplo
![Page 12: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/12.jpg)
12
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áriomultiplicar como acimase os sinais forem diferentes, negar a resposta
Solução 2Algoritmo de Booth
Algoritmo de Booth
![Page 13: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/13.jpg)
13
![Page 14: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/14.jpg)
14
Exemplo 7*3 (algoritmo de Booth)
Exercício
Calcule o resultado de 0101 * 1010 (em complemento de dois) usando o algoritmo de Booth
![Page 15: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/15.jpg)
15
Solução
Proxima aula
![Page 16: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/16.jpg)
16
Divisão
Mais complexa que a multiplicaçãoPior para números negativosBaseado na operação com “lápis e papel”
Divisão de números inteiros não sinalizados
001111
1011
00001101
100100111011
0011101011
1011100
Quociente
Dividendo
Resto
RestosParciais
Divisor
![Page 17: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/17.jpg)
17
Números reais
Números com fraçõesPoderiam ser repres. em binário puro
1001,1010 = 23 + 20 + 2-1 + 2-3 = 9,625Onde fica o ponto binário?Fixo?
muito limitadoMóvel?
como mostrar onde ele está?
Ponto Flutuante
+/- 0,mantissa X 2expoente
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 18: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/18.jpg)
18
Exemplos de números de ponto flutuante
Ponto flutuante
Mantissa é armazenada em complemento de 2O Expoente fica em notação polarizada
Ex Excesso (viés) 128 significa8 bit para campo de expoenteValores puros entre 0-255Subtraia 128 para obter o valor coretoIntervalo entre –128 +128
![Page 19: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/19.jpg)
19
Normalização
Números PF são normalmente normalizadosI.e. o expoente é ajustado de talforma que o primeiro bit seja 1Como é sempre 1 não precisa ser armazenado (Ex. notação científicaEx 3.123 x 103
Intervalos para PF
Para número mde 32 bits8 bits de expoente+- 2256 ~ 1,5 x 1077
PrecisãoO efeito de alterar o bit menos significativo da mantissaMantissa de 32 bits 2-23 ~1.2 x 10-7
Cerca de 6 casas decimais
![Page 20: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/20.jpg)
20
Números representáveis
IEEE 754
Padrão para armazenamento de ponto flutuantePadrões pra 32 e 64 bits8 e 11 bits de expoenteFormatos estendidos (tanto para mantissa e expoente) para valores intermediários
![Page 21: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/21.jpg)
21
Aritmética PF +/-
Verifica zerosAlinha termos (ajuste de expoentes)Adiciona ou subtrai termosNormaliza resultados
Aritmética PF x/∏
Verifica zerosSoma/subtrai expoentesMultiplica/divide termos (verifica sinais)NormalizaArredondaTodos os valores intermediários devem estar em armazenamento de espaço duplo
![Page 22: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/22.jpg)
22
Multiplicação em ponto flutuante
Divisão em ponto flutuante
![Page 23: Arquitetura de Computadoreseduardo/arq/Aritimetica-eduardo.pdf · Arquitetura de Computadores Eduardo Albuquerque Adaptado do material do Prof. Fábio M. Costa Instituto de Informática](https://reader033.vdocuments.pub/reader033/viewer/2022042112/5e8d35b580d284381a6a03e1/html5/thumbnails/23.jpg)
23
Referências
Capítulo 8
IEEE 754 no site do IEEE