Upload
megan-douglas
View
21
Download
0
Embed Size (px)
DESCRIPTION
Capítulo 3. Números. Bits são apenas bits (nenhum significado inerente) — convenções definem a relação entre bits e números Números binários (base 2) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001... decimal: 0...2 n -1 Obviamente, torna-se mais complicado: - PowerPoint PPT Presentation
Citation preview
Hennessy • Patterson 1
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Capítulo 3
Hennessy • Patterson 2
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Números
• Bits são apenas bits (nenhum significado inerente) — convenções definem a relação entre bits e números
• Números binários (base 2) 0000 0001 0010 0011 0100 0101 0110 0111 1000
1001...decimal: 0...2n-1
• Obviamente, torna-se mais complicado:números são finitos (overflow)frações e números reaisnúmeros negativospor exemplo, nenhuma instrução subi do MIPS;
addi pode somar um número negativo• Como representamos os números negativos? Por
exemplo, que padrões de bit representarão esses números?
Hennessy • Patterson 3
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Representações possíveis
• Sinal e magnitude: Complemento a um Complemento a dois
• 000 = +0 000 = +0 000 = +0001 = +1 001 = +1 001 = +1010 = +2 010 = +2 010 = +2011 = +3 011 = +3 011 = +3100 = -0 100 = -3 100 = -4101 = -1 101 = -2 101 = -3110 = -2 110 = -1 110 = -2111 = -3 111 = -0 111 = -1
• Questões: equilíbrio, número de zeros, facilidade de operações
• Qual é o melhor? Por quê?
Hennessy • Patterson 4
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
MIPS
Números de 32 bits com sinal:
maxint
maxint
Hennessy • Patterson 5
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Operações de complemento a dois
• Negar um número de complemento a dois: inverta todos os bits e some 1
• lembre-se: “negar” e “inverter” são muito diferentes!
• Converter números de n bits em números com mais de n bits:
• o campo imediato de 16 bits do MIPS é convertido em 32 bits para aritmética
• copie o bit mais significativo (o bit de sinal) para os outros bits
• 0010 -> 0000 00101010 -> 1111 1010
• “extensão de sinal” (lbu versus lb)
Hennessy • Patterson 6
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Adição e subtração• Exatamente como aprendemos na escola (emprestar/subir 1s)•• 0111 0111 0110
+ 0110 - 0110 - 0101
• Facilidade de operações do complemento a dois - subtração usando adição para números negativos
0111+ 1010
• Overflow (resultado muito grande para a word finita do computador):por exemplo, somar dois números de n bits não produz um número de n bits
• 0111+ 0001 note que o termo overflow é um pouco confuso;
1000 ele não significa que um carry “transbordou”
Hennessy • Patterson 7
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Detectando overflow
• Nenhum overflow quando somar um número positivo com um negativo
• Nenhum overflow quando sinais são iguais para subtração• O overflow ocorre quando o valor afeta o sinal:
- overflow ao somar dois positivos produz um negativo
- ou, somar dois negativos produz um positivo- ou, subtraia um negativo de um positivo e obtenha
um negativo- ou, subtraia um positivo de um negativo e obtenha
um positivo• Considere as operações A + B e A B
- Pode ocorrer overflow se B for 0?- Pode ocorrer overflow se A for 0?
Hennessy • Patterson 8
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Efeitos do overflow
• Uma exceção (interrupção) ocorre- O controle salta para um endereço predefinido
para exceção- O endereço interrompido é salvo para uma
possível retomada• Detalhes baseados na linguagem/sistema de software
- exemplo: controle de vôo versus dever de casa
• Nem sempre desejamos detectar overflow — novas instruções MIPS: addu, addiu, subu
Nota: addiu ainda com extensão de sinalNota: sltu, sltiu para comparações sem sinal
Hennessy • Patterson 9
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Multiplicação
• Mais complexa do que a adição- realizada através de deslocamento e adição
• Mais tempo e mais área• Vejamos três versões baseadas em um algoritmo
da escola• 0010 (multiplicando)
x 1011 (multiplicador)
• Números negativos: converta e multiplique - existem técnicas melhores, que não serão tratadas
aqui
Hennessy • Patterson 10
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Multiplicação: Implementação
Caminho de dados
Hennessy • Patterson 11
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Multiplicação: Implementação
controle
Hennessy • Patterson 12
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Versão final
O multiplicador inicia na metade
direita do produto
O que entra aqui?
Hennessy • Patterson 13
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Ponto flutuante (um breve exame)
• Precisamos de uma maneira de representar- números com frações, por exemplo, 3,1416- números muito pequenos, por exemplo, 0,000000001- números muito grandes, por exemplo, 3.15576 109
• Representação:- sinal, expoente, significando: (–1)sinal significando
2expoente
- mais bits para o significando fornece mais precisão- mais bits para o expoente aumenta a faixa
• Padrão de ponto flutuante IEEE 754:- precisão única: expoente de 8 bits, significando de 23
bits- precisão dupla: expoente de 11 bits, significando de
52 bits
Hennessy • Patterson 14
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Padrão de ponto flutuante IEEE 754
• O bit “1” inicial do significando está implícito
• O expoente é “desviado” para facilitar a classificação- todos os 0s são o menor expoente, todos os 1s são
o maior- desvio do 127 para precisão única e do 1023 para
precisão dupla- resumo: (–1)sinal (1 + significando) 2expoente – desvio
• Exemplo:- decimal: -0,75 = - ( ½ + ¼ )- binário: -0,11 = -1.1 2-1
- ponto flutuante: expoente = 126 = 01111110
• precisão única IEEE: 10111111010000000000000000000000
Hennessy • Patterson 15
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Adição de ponto flutuante
Hennessy • Patterson 16
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Complexidades do ponto flutuante
• As operações são um pouco mais complicadas (veja o texto)
• Além do overflow podemos ter o “underflow”• A precisão pode ser um grande problema
- O IEEE 754 mantém dois bits extras, guarda e arredondamento- quatro modos de arredondamento- positivo dividido por zero produz “infinidade”- zero dividido por zero não produz um número- outras complexidades
• Implementar o padrão pode ser arriscado• Não usar o padrão pode ser ainda pior
- veja no texto a descrição do 80x86 e o bug do Pentium!
Hennessy • Patterson 17
Organização e Projetos de Computadores
©2005 Elsevier Editora Ltda
Resumo do Capítulo 3
• A aritmética de computador é restrita por uma precisão limitada
• Os padrões de bit não têm um significado inerente mas existem padrões
- complemento a dois- ponto flutuante IEEE 754
• As instruções de computador determinam o “significado” dos padrões de bit
• O desempenho e a precisão são importantes; portanto, existem muitas complexidades nas máquinas reais
• A escolha do algoritmo é importante e pode levar a otimizações de hardware para espaço e tempo (por exemplo, multiplicação)
• Fazer uma revisão pode ser uma boa idéia (a Seção 3.10 é uma ótima leitura!)