Buscar

Arquitetura de Computadores Capitulo 11

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
OAC – Ponto Flutuante – Parte II - 1 Juliana F Camapum Wanderley
Organização e Arquitetura de Computadores
Aula 11 – Ponto Flutuante
Parte II
2002
Juliana F. Camapum Wanderley
http://www.cic.unb.br/docentes/juliana/cursos/oac
OAC – Ponto Flutuante – Parte II - 2 Juliana F Camapum Wanderley
Revisão
„ PF aproximam valores que queremos utilizar.
„ Padrão IEEE 754 para PF é uma tentativa de 
padronização amplamente aceita de tais números.
„ Novos registradores MIPS ($f0-$f31), e instruções:
„ Precisão Simples (32 bits, 2x10-38… 2x1038): add.s, sub.s,
mul.s, div.s
„ Precisão Dupla (64 bits , 2x10-308…2x10308): add.d, sub.d,
mul.d, div.d
„ Tipo não está associado com dados; bits não têm 
significado a exceto em um dado contexto.
2
OAC – Ponto Flutuante – Parte II - 3 Juliana F Camapum Wanderley
Panorama
„ Números Ponto Flutuante Especiais: NaN, 
Não-normalizados
„ Modos de arredondamento IEEE
„ Falácias de Ponto Flutuante, hacks
OAC – Ponto Flutuante – Parte II - 4 Juliana F Camapum Wanderley
Números Especiais
„ O que temos definido até agora?
„ (Precisão Simples)
Expoente Significando Objeto
0 0 0
0 nonzero ???
1-254 qq coisa +/- fl. pt. #
255 0 +/- infinito
255 nonzero ???
3
OAC – Ponto Flutuante – Parte II - 5 Juliana F Camapum Wanderley
Representação para Not a Number
„ Qual o resultado do cálculo: sqrt(-4.0) ou 0/0?
„ Se infinito não é um erro, estes não deveriam ser também.
„ Chamados Not a Number (NaN)
„ Expoente = 255, Significando nonzero
„ Por que isto é útil?
„ Esperamos que NaNs ajude na depuração?
„ Eles se propagam: op(NaN,X) = NaN
„ Tudo bem se calculamos mas não usamos
„ Pergunte aos matemáticos
OAC – Ponto Flutuante – Parte II - 6 Juliana F Camapum Wanderley
Números Especiais (cont.)
„ O que temos definido até agora?
„ (Precisão Simples)
Expoente Significando Objeto
0 0 0
0 nonzero ???
1-254 qq coisa +/- fl. pt. #
255 0 +/- infinito
255 nonzero NaN
4
OAC – Ponto Flutuante – Parte II - 7 Juliana F Camapum Wanderley
Representação para Não-Normalizados (1/2)
„ Problema: Existe um gap entre os números PF
representáveis perto de 0.
„ O menor número positivo representável:
a = 1.0… 2 * 2-127 = 2-127
„ Segundo menor número positivo representável:
b = 1.000……1 2 * 2-127 = 2-127 + 2-150
„ a - 0 = 2-127
„ b - a = 2-150 b
a0
+-
Gap!Gap!
OAC – Ponto Flutuante – Parte II - 8 Juliana F Camapum Wanderley
Representação para Não-Normalizados (2/2)
„ Solução:
„ Nós ainda não utilizamos o Expoente=0,
Significando não zero.
„ Número não normalizado: sem o 1 da frente.
„ Menor número positivo representável:
„ a = 2-150
„ Segundo menor número positivo representável:
„ b = 2-149
0
+-
5
OAC – Ponto Flutuante – Parte II - 9 Juliana F Camapum Wanderley
Arredondamento
„ Quando se realiza cálculos matemáticos com números 
reais, temos de nos preocupar com arredondamento.
„ O sistema real de cálculos matemáticos tem dois bits 
de precisão extras, e então arredonda para se ter o
valor apropriado.
„ Arredondamento também ocorre quando se converte
um valor de precisão dupla para um de precisão
simples, ou na conversão de um PF para um inteiro.
OAC – Ponto Flutuante – Parte II - 10 Juliana F Camapum Wanderley
Modos de Arredondamento do IEEE
„ Arredonda para +infinito
„ SEMPRE arredonda para "cima": 2.001 -> 3 
„ -2.001 -> -2
„ Arredonda para -infinito
„ SEMPRE arredonda para "baixo": 1.999 -> 1, 
„ -1.999 -> -2
„ Trunca
„ Simplesmente descarta os últimos bits (arredonda para 0)
„ Arredonda para o par (mais próximo)
„ Arredondamento Normal, quase
6
OAC – Ponto Flutuante – Parte II - 11 Juliana F Camapum Wanderley
Arredonda para o par
„ Arredonde como você aprendeu na escola.
„ Exceto se o valor está exatamente na divisa, neste caso 
arredondamos para o número PAR mais próximo.
„ 2.5 -> 2
„ 3.5 -> 4
„ Assegura consistência em cálculos.
„ Deste modo, metade das vezes arredondamos para cima e
na outra metade, para baixo.
„ Verifique com especialistas em estatística.
„ Este é o modo padrão de arredondamento.
OAC – Ponto Flutuante – Parte II - 12 Juliana F Camapum Wanderley
Forçando floats em ints e vice versa
„ (int) exp
„ Força e converte para o inteiro mais próximo.
„ afetado pelos modos de arredondamento.
„ i = (int) (3.14159 * f);
„ (float) exp
„ converte inteiro para o float mais próximo.
„ f = f + (float) i;
7
OAC – Ponto Flutuante – Parte II - 13 Juliana F Camapum Wanderley
int -> float -> int
„ Não vai funcionar sempre
„ Valores inteiros grandes não têm uma representação PF
exata.
„ Do mesmo modo, pode-se arredondar para o valor 
errado.
if (i == (int)((float) i)) {
printf(true);
}
OAC – Ponto Flutuante – Parte II - 14 Juliana F Camapum Wanderley
float -> int -> float
„ Não vai funcionar sempre
„ Valores pequenos de PF não têm boa representação 
inteira.
„ Também erros de arredondamento
if (f == (float)((int) f)) {
printf(true);
}
8
OAC – Ponto Flutuante – Parte II - 15 Juliana F Camapum Wanderley
Falácias em Ponto Flutuante
„ Soma e Subtração PF são associativas: FALSO!
„ x = – 1.5 x 1038, y = 1.5 x 1038, e z = 1.0
„ x + (y + z) = –1.5x1038 + (1.5x1038 + 1.0)= –1.5x1038 + 
(1.5x1038) = 0.0
„ (x + y) + z = (–1.5x1038 + 1.5x1038) + 1.0= (0.0) + 1.0 = 
1.0
„ Portanto, soma e subtração PF não são associativas!
„ Por que? resultado PF aproxima o resultado real!
„ Neste exemplo: 1.5 x 1038 é tão maior que 1.0 que na 
representação PF 1.5 x 1038 + 1.0 ainda é 1.5 x 1038
OAC – Ponto Flutuante – Parte II - 16 Juliana F Camapum Wanderley
Coisas para se Lembrar 
„ Padrão IEEE 754 para Ponto Flutuante: tenta acomodar o
máximo que se pode com:
„ +/- infinito, Not-a-Number (Nan), Não-Normalizados
„ 4 modos de arredondamento
„ Conceito de Programa Armazenado: Tanto dados como o
código (instruções) são armazenados na mesma memória.
„ Tipo não está associado com dados, os bits não têm 
nenhum significado intrínseco, somente no contexto em 
que são manipulados.

Outros materiais