44
Capítulo 9 Aritmética do computador William Stallings Arquitetura e Organização de Computadores 8 a Edição © 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

  • Upload
    tranque

  • View
    239

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

Capítulo 9

Aritmética do computador

William Stallings

Arquitetura e Organização

de Computadores

8a Edição

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Page 2: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 2

Unidade aritmética e lógica

• Faz os cálculos.

• Tudo o mais no computador existe para atender a essa unidade.

• Trata de inteiros.

• Pode tratar de números de ponto flutuante (reais).

• Pode ser FPU separada (coprocessador matemático).

• Pode estar em chip de FPU separado (486DX +).

Page 3: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 3

Entradas e saídas da ALU

Page 5: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 5

Representação de inteiros

• Só tem 0 & 1 para representar tudo.

• Números positivos armazenados em binário.

—P.e., 41=00101001.

• Sem sinal de menos.

• Sem ponto.

• Sinal-magnitude.

• Complemento a dois.

Page 6: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 6

Sinal-magnitude

• Bit mais à esquerda é bit de sinal.

• 0 significa positivo.

• 1 significa negativo.

• +18 = 00010010.

• -18 = 10010010.

• Problemas:

—Precisa considerar sinal e magnitude na aritmética.

—Duas representações de zero (+0 e -0).

Page 7: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 7

Complemento a dois

• +3 = 00000011

• +2 = 00000010

• +1 = 00000001

• +0 = 00000000

• -1 = 11111111

• -2 = 11111110

• -3 = 11111101

Page 8: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 8

Benefícios

• Uma representação de zero.

• Aritmética funciona com facilidade (ver mais adiante).

• Negação é muito fácil.

—3 = 00000011

—Complemento Booleano gera 11111100

—Some 1 ao LSB 11111101

Page 9: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 9

Representação geométrica dos inteiros de

complemento a dois

Page 10: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 10

Negação especial – caso 1

• 0 = 00000000

• Not bit a bit 11111111

• Some 1 ao LSB +1

• Resultado 1 00000000

• Estouro ignorado, portanto:

• - 0 = 0

Page 11: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 11

Negação especial – caso 2

• -128 = 10000000

• Not bit a bit 01111111

• Some 1 ao LSB +1

• Resultado 10000000

• Portanto:

• -(-128) = -128 X

• Monitore MSB (bit de sinal).

• Ele deve mudar durante a negação.

Page 12: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 12

Intervalo de números

• Complemento a 2 com 8 bits:

—+127 = 01111111 = 27 -1

— -128 = 10000000 = -27

• Complemento a 2 com 16 bits:

—+32767 = 011111111 11111111 = 215 - 1

— -32768 = 100000000 00000000 = -215

Page 13: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 13

Conversão entre tamanhos

• Pacote de número positivo com zeros iniciais.

• +18 = 00010010

• +18 = 00000000 00010010

• Pacote de números negativos com uns iniciais.

• -18 = 10010010

• -18 = 11111111 10010010

• Ou seja, pacote com MSB (bit de sinal).

Page 14: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 14

• Adição binária normal.

• Monitore estouro no bit de sinal.

• Pegue o complemento a dois do subtraendo e some ao minuendo.

—Ou seja, a - b = a + (-b).

• Assim, só precisamos de circuitos de adição e complemento.

Adição e subtração

Page 15: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 15

Hardware para adição e subtração

Page 16: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 16

Subtração Regra básica

Page 17: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 17

Exercícios

• Faça as operações aritméticas abaixo

utilizando números binários de 8 bits e

complemento de 2:

1. +9 + 4

2. +9 - 4

3. -9 + 4

4. -9 - 4

Page 18: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 18

Multiplicação

• Complexa.

• Calcule produto parcial para cada dígito.

• Cuidado com o valor da casa (coluna).

• Some produtos parciais.

Page 19: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 19

Exemplo de multiplicação

• 1011 Multiplicando (11 dec)

• x 1101 Multiplicador (13 dec)

• 1011 Produtos parciais

• 0000 Nota: Se bit multiplicador for 1, copia.

• 1011 Multiplicando (valor da casa)

• 1011 Caso contrário, zero.

• 10001111 Produto (143 dec)

• Nota: precisa de resultado com tamanho duplo.

Page 20: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 20

Multiplicação binária sem sinal

Page 21: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 21

Fluxograma para a multiplicação binária sem

sinal

Page 22: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 22

Multiplicando números negativos

• Isso não funciona!

• Solução 1:

—Converta para positivo, se for preciso.

—Multiplique como antes.

—Se sinais diferentes, negue a resposta.

• Solução 2:

—Algoritmo de Booth.

Page 23: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 23

Algoritmo de Booth

Page 24: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 24

Exemplo do algoritmo de Booth

Exemplo retirado: http://pt.wikipedia.org/wiki/Algoritmo_de_multiplica%C3%A7%C3%A3o_de_Booth

Page 25: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 25

Exemplo do algoritmo

de Booth

-8 x 2

Exemplo retirado: http://pt.wikipedia.org/wiki/Algoritmo_de_multiplica%C3%A7%C3%A3o_de_Booth

Page 26: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 26

Divisão

• Mais complexa que a multiplicação.

• Números negativos são realmente maus!

• Baseada na divisão longa.

Page 27: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 27

001111

Divisão de inteiros binários sem sinal

1011

00001101

10010011

1011

001110 1011

1011

100

Quociente

Dividendo

Resto

Restos

Parciais

Divisor

Page 28: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 28

Fluxograma para divisão binária sem sinal

Page 29: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 29

Números reais

• Números com frações.

• Poderia ser feito em binário puro.

—1001.1010 = 24 + 20 +2-1 + 2-3 =9,625

• Onde está o ponto binário?

• Fixo?

—Muito limitado.

• Móvel?

—Como você mostra onde ele está?

Page 30: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 30

Ponto flutuante

• +/- significando x 2exponente

• Nome impróprio

• Ponto é realmente fixo entre bit de sinal e corpo da mantissa

• Expoente indica valor da casa (posição do ponto)

Page 31: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 31

Sinais para ponto flutuante

• Mantissa é armazenada em complemento a dois.

• Expoente está em notação de excesso ou viesado.

—P.e., excesso (viés) 128 significa campo de expoente com 8 bits.

—Intervalo de valor puro 0-255.

—Subtraia 128 para obter valor correto.

—Intervalo de -128 a +127.

Page 32: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 32

Normalização

• Números de PF geralmente são normalizados, ou seja, expoente é ajustado de modo que bit inicial (MSB) da mantissa seja 1.

• Por ser sempre 1, não é preciso armazená-lo.

• (c.f. notação científica, onde os números são normalizados para um único dígito antes do ponto decimal, p.e., 3,123 x 103)

Page 33: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 33

Intervalos de PF

• Para um número de 32 bits:

—Expoente de 8 bits.

—+/- 2256 1,5 x 1077

• Precisão:

—O efeito de alterar LSB da mantissa.

—Mantissa de 23 bits 2-23 1,2 x 10-7.

—Cerca de 6 casas decimais.

Page 34: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 34

Números representáveis

Page 35: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 35

Representação de ponto flutuante em

binário

Vamos ao exemplo, representando, em binário, o número 0,625.

0,625 x 2 = 1,25 , logo a primeira casa fracionária é 1.

Resta representar o 0,25 que restou ao se retirar o 1 já representado.

0,25 x 2 = 0,5 , logo a segunda casa é 0.

Falta representar o 0,5 .

0,5 x 2 = 1 , logo a terceira casa é 1.

0,62510 = 0,1012

Quando o número tiver parte inteira e parte fracionária, podemos calcular,

cada uma, separadamente.

Page 36: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 36

Exemplo

Representar o número -0,7510 em ponto flutuante e precisão simples.

• 1a fase: converter para binário:

– 0,75 x 2 = 1,5 1

– 0,5 x 2 = 1,0 1

– -0,7510 = -0,112 = -0,11 x 20 = -1,1 x 2-1

• Em precisão simples:

• Resultado:

)(2)1()1( PesoES MantissaN

Page 37: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 37

IEEE 754

• Padrão para armazenamento de ponto flutuante.

• Padrões de 32 e 64 bits.

• Expoente de 8 e 11 bits, respectivamente.

• Formatos estendidos (mantissa e expoente) para resultados intermediários.

Page 38: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 38

Formatos IEEE 754

Page 39: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 39

Aritmética de ponto flutuante (+/-)

• Verifique zero.

• Alinhe significandos (ajustando expoentes).

• Soma ou subtraia significandos.

• Normalize resultado.

Page 40: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 40

Fluxograma da adição e subtração de ponto

flutuante

Page 41: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 41

Aritmética de ponto flutuante (x/)

• Verifique zero.

• Soma/subtraia expoentes .

• Multiplique/divida significandos (observe sinal).

• Normalize.

• Arredonde.

• Todos os resultados intermediários devem ser em armazenamento de tamanho duplo.

Page 42: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 42

Multiplicação de ponto flutuante

Page 43: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 43

Divisão de ponto flutuante

Page 44: Arquitetura e Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap9_Joubert.pdf · Capítulo 9 Aritmética do computador William Stallings

© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 44

Leitura recomendada

• Stallings, Capítulo 9.

• IEEE 754 no site do IEEE.