Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf ·...

32
Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG 1S/2004 Representação de Dados e Aritimética Computacional

Transcript of Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf ·...

Page 1: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Arquitetura de Computadores

Prof. Fábio M. CostaInstituto de Informática – UFG1S/2004

Representação de Dados e Aritimética Computacional

Page 2: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Roteiro

Números inteiros sinalizados e não-sinalizados

Operações aritiméticas

Números de ponto flutuante

Page 3: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Unidade Lógico-Aritimética

Executa cálculos

Todos os demais componentes do computadores existem em função dela

Manipula números inteiros

Pode manipular números de ponto flutuante (números reais) – FPU (Floating Point Unit)

integrado no chip do processador, ou

em um co-processador separado (obsoleto)

Page 4: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

ULA (ALU): Entradas e Saídas

Page 5: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Representação de inteiros

Apenas 0 e 1 para representar tudoNúmeros positivos são armazenados em repr. binária “direta”

Ex.: 41 = 00101001

Sem sinal de menosSem ponto decimal (vírgula)Duas representações possíveis:

Sinal-e-magnitudeComplemento de dois

Page 6: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Representação em sinal-magnitude

Bit mais à esquerda (mais significativo) é o bit de sinal

0: positivo1: negativo

Ex.:+18 = 00010010 -18 = 10010010

ProblemasEm operações aritiméticas é preciso considerar ambos o sinal e a magnitudeDuas representações para zero (+0 e -0 !!!)

Page 7: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Representação em complemento de dois

+3 = 00000011

+2 = 00000010

+1 = 00000001

0 = 00000000

-1 = 11111111

-2 = 11111110

-3 = 11111101

Page 8: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Complemento de dois: Benefícios

Uma única representação para zero

Aritimética mais simples (veja a seguir)

Operação de negação torna-se mais simples:3 = 00000011

complemento booleano: 11111100

Soma 1 ao bit menos signific. (LSB): 11111101

Page 9: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Representação geométrica de inteiros em complemento de dois

Page 10: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Negação: Caso especial 1

0 = 00000000

Negação bit-a-bit 11111111

Soma 1 ao LSB +1

Result 1 00000000

Overflow é ignorado, então:

- 0 = 0 √

Page 11: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Negação: Caso especial 2

-128 = 10000000

Negação bit-a-bit 01111111

Soma 1 ao LSB +1

Resultado = 10000000

Então:

-(-128) = -128 X

Monitorar MSB (bit de sinal):Ele deve mudar após uma negação!

Page 12: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Faixa de números

Complemento de 2 de 8 bits+127 = 01111111 = 27 -1

-128 = 10000000 = -27

Complemento de 2 de 16 bits+32767 = 011111111 11111111 = 215 - 1

-32768 = 100000000 00000000 = -215

Page 13: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Conversão entre tamanhos e Extensão de sinal

Números positivos: zeros à esquerda

+18 = 00010010

+18 = 00000000 00010010

Números negativos: 1’s à esquerda

-18 = 11101110

-18 = 11111111 11101110

i.e. reproduz o bit de sinal à esquerda

Page 14: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Adição e subtração

Adição binária normal

Monitorar o overflow do bit de sinal

Subtração:Tome o complemento de dois do subtraendo e adicione-o ao minuendo

i.e.: a – b = a + (-b)

Assim, nós precisamos apenas de circuitos de adição e de complemento

Page 15: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Hardware para adição e subtração

Page 16: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Multiplicação

Mais complexa:Opera-se o produto parcial para cada dígito (do multiplicador)

Desloca cada produto parcial uma casa à esquerda

Adiciona-se os produtos parciais

Multiplicação de números inteiros de n bits:produto com até 2n bits

Page 17: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Exemplo de multiplicação

1011 Multiplicando (11 decimal)

x 1101 Multiplicador (13 decimal)

1011 Produtos parciais

0000 Obs.: se o bit multiplicador é 1,

1011 copia-se o multiplicando;

1011 do contrário: zero

10001111 Produto (143 decimal)

Obs.: requer resultado de tamanho duplo

Page 18: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Multiplicação binária não-sinalizada

Page 19: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Algoritmo direto

Page 20: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Execução de um exemplo

Page 21: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Multiplicação de números negativos

Algoritmo direto (anterior) não funcionase um dos dois números for negativo

Solução 1converter para positivo, se necessário

multiplicar como acima

se os sinais forem diferentes, negar a resposta

Solução 2Algoritmo de Booth

Page 22: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Algoritmo de Booth

Page 23: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Exemplo (algoritmo de Booth)

Page 24: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Divisão

Mais complexa que a multiplicação

Pior para números negativos

Baseado na operação com “lápis e papel”

Page 25: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Divisão de números inteiros não sinalizados - Exemplo

Divisor

Quociente

Resto

RestosParciais

Dividendo10010011 1011 1011 00001101 001110 1011 001111 1011 100

Page 26: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Números reais

Números com fraçõesPoderiam ser representados em binário puro

1001,1010 = 23 + 20 + 2-1 + 2-3 = 9,625

Onde fica o ponto binário?Fixo?

muito limitado

Móvel?como mostrar onde ele está?

Page 27: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Ponto Flutuante

+/- 0,<mantissa> X 2<expoente>

O ponto é fixado entre o bit de sinal e o corpo da mantissaO expoente indica a posição (relativa) do ponto

Bit

sina

l

ExpoentePolarizado

Mantissa

Page 28: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Representação Binária Polarizada

Repr. Decimal Repr. Polarizada+8 1111+7 1111+6 1110+5 1101+4 1100+3 1011+2 1010+1 1001+0 1000­0 0111­1 0110­2 0101­3 0100­4 0011­5 0010­6 0001­7 0000­8 ­

Vantagem principal:•comparação direta•lógica mais simples

Uso na notação de Ponto Flutuante:

•O expoente real é convertido para a forma

polarizada

Page 29: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Exemplos de números de ponto flutuante

Page 30: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Faixa de Números Representáveis com 32 bits

Page 31: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Referências

Stallings (*)Cap. 8: Aritimética

Computacional

Patterson & HennessyCap. 4: Aritimética Computacional

(*) referência principal

Page 32: Arquitetura de Computadores - Instituto de Informática - UFGfmc/arqcomp/Aritimetica.pdf · Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG ...

Exercícios

Stallings8.4 a 8.6

8.14 a 8.16