Capítulo 9 Aritmética do computador William Stallings Arquitetura e Organização de Computadores...

53
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

Transcript of Capítulo 9 Aritmética do computador William Stallings Arquitetura e Organização de Computadores...

Page 1: 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.

Capítulo 9 Aritmética do computador

William Stallings Arquitetura e Organização de Computadores8a Edição

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

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

© 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: 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.

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

Entradas e saídas da ALU

Page 4: 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.

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

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 5: 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.

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

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 6: 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.

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

Complemento a dois

• +3 = 00000011• +2 = 00000010• +1 = 00000001• +0 = 00000000• -1 = 11111111• -2 = 11111110• -3 = 11111101

Page 7: 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.

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

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 8: 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.

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

Page 9: 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.

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

Page 10: 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.

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

Representação geométrica dos inteiros de complemento a dois

Page 11: 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.

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

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 12: 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.

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

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 13: 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.

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

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 14: 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.

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

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 15: 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.

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

• 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 16: 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.

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

Page 17: 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.

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

Page 18: 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.

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

Hardware para adição e subtração

Page 19: 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.

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

Tabela Verdade Adição Binária

Page 20: 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.

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

4-bit Adder

Page 21: 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.

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

Implementação SOP com AND, OR e NOT

Page 22: 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.

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

Adder de 32 Bits

Page 23: 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.

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

Multiplicação

• Complexa.• Calcule produto parcial para cada dígito.• Cuidado com o valor da casa (coluna).• Some produtos parciais.

Page 24: 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.

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

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 25: 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.

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

Multiplicação binária sem sinal

Page 26: 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.

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

Execução do exemplo

Page 27: 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.

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

Fluxograma para a multiplicação binária sem sinal

Page 28: 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.

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

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 29: 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.

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

Algoritmo de Booth

Page 30: 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.

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

Exemplo do algoritmo de Booth

Page 31: 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.

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

Page 32: 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.

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

Porque o algoritmo de Booth funciona?

M x (00011110) = M x (24+23+22+21) =M x (16+8+4+2) = M x (30)

2n+2n-1+...+2n-k = 2n+1 – 2n-k

M x (00011110) = M x (25 – 21) = M x (32 -2 ) = M x (30)

Page 33: 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.

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

Porque o algoritmo de Booth funciona?

M x (01111010) = M x (26+25+24+23+21) =M x (27-23+22-21)

Números negativos:-6 = 11111010 = -27+26+25+24+23+21

M x (11111010) = M x (27-27-23+21) = M x (-23+21) = M (-23+22-21)=M (-6)

Page 34: 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.

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

Divisão

• Mais complexa que a multiplicação.• Números negativos são realmente maus!• Baseada na divisão longa.

Page 35: 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.

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

001111

Divisão de inteiros binários sem sinal

1011

00001101

100100111011001110

1011

1011100

Quociente

Dividendo

Resto

RestosParciais

Divisor

Page 36: 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.

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

Fluxograma para divisão binária sem sinal

Page 37: 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.

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

Page 38: 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.

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

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 39: 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.

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

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 40: 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.

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

Exemplos de ponto flutuante

Page 41: 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.

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

Sinais para ponto flutuante

• Mantissa (significando) é armazenada em sinal-magnitude.

• Expoente está em notação polarizada.—Polarização = 2k-1-1—Intervalo de valores de 0-255.—Subtraia 127 para obter valor correto.—Intervalo de -127 a +128.

Page 42: 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.

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

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 43: 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.

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

Intervalos de PF• Para um número de 32 bits:

—Expoente de 8 bits.—Mantissa de 23 bits

• Precisão:—232 valores diferentes (mesmo que o compl.2)—Mantissa de 23 bits: 223 8.388.608 6 casas

decimais.• Intervalos:

—Números negativos: -(2-223)x2128 a -2-127

—Números positivos: 2-127 a (2-223)x2128

Page 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.

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

Números representáveis

Page 45: 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.

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

Densidade dos números de ponto flutuante

Page 46: 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.

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

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 47: 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.

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

Formatos IEEE 754

Page 48: 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.

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

Aritmética de ponto flutuante (+/-)

• Verifique zero.• Alinhe significandos (ajustando expoentes).• Soma ou subtraia significandos.• Normalize resultado.• Exemplos:

Page 49: 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.

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

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

Page 50: 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.

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

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 51: 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.

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

Multiplicação de ponto flutuante

Page 52: 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.

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

Divisão de ponto flutuante

Page 53: 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.

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

Leitura recomendada

• Stallings, Capítulo 9.• IEEE 754 no site do IEEE.