capítulo 3

17
Hennessy • Patterson 1 Organização e Projetos de Computadores ©2005 Elsevier Editora Ltda Capítulo 3

Upload: megan-douglas

Post on 02-Jan-2016

21 views

Category:

Documents


0 download

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

TRANSCRIPT

Page 1: Capítulo 3

Hennessy • Patterson 1

Organização e Projetos de Computadores

©2005 Elsevier Editora Ltda

Capítulo 3

Page 2: 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?

Page 3: Capítulo 3

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ê?

Page 4: Capítulo 3

Hennessy • Patterson 4

Organização e Projetos de Computadores

©2005 Elsevier Editora Ltda

MIPS

Números de 32 bits com sinal:

maxint

maxint

Page 5: Capítulo 3

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)

Page 6: Capítulo 3

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”

Page 7: Capítulo 3

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?

Page 8: Capítulo 3

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

Page 9: Capítulo 3

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

Page 10: Capítulo 3

Hennessy • Patterson 10

Organização e Projetos de Computadores

©2005 Elsevier Editora Ltda

Multiplicação: Implementação

Caminho de dados

Page 11: Capítulo 3

Hennessy • Patterson 11

Organização e Projetos de Computadores

©2005 Elsevier Editora Ltda

Multiplicação: Implementação

controle

Page 12: Capítulo 3

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?

Page 13: Capítulo 3

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

Page 14: Capítulo 3

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

Page 15: Capítulo 3

Hennessy • Patterson 15

Organização e Projetos de Computadores

©2005 Elsevier Editora Ltda

Adição de ponto flutuante

Page 16: Capítulo 3

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!

Page 17: Capítulo 3

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!)