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

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

Embed Size (px)

Citation preview

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