Arquitetura de Computadores - Instituto de Informtica - fmc/arqcomp/   Arquitetura

  • View
    218

  • Download
    0

Embed Size (px)

Text of Arquitetura de Computadores - Instituto de Informtica - fmc/arqcomp/   Arquitetura

  • Arquitetura de Computadores

    Prof. Fbio M. CostaInstituto de Informtica UFG1S/2004

    Representao de Dados e Aritimtica Computacional

  • Roteiro

    Nmeros inteiros sinalizados e no-sinalizadosOperaes aritimticasNmeros de ponto flutuante

  • Unidade Lgico-Aritimtica

    Executa clculosTodos os demais componentes do computadores existem em funo delaManipula nmeros inteirosPode manipular nmeros de ponto flutuante (nmeros reais) FPU (Floating Point Unit)

    integrado no chip do processador, ouem um co-processador separado (obsoleto)

  • ULA (ALU): Entradas e Sadas

  • Representao de inteiros

    Apenas 0 e 1 para representar tudoNmeros positivos so armazenados em repr. binria direta

    Ex.: 41 = 00101001Sem sinal de menosSem ponto decimal (vrgula)Duas representaes possveis:

    Sinal-e-magnitudeComplemento de dois

  • Representao em sinal-magnitude

    Bit mais esquerda (mais significativo) o bit de sinal

    0: positivo1: negativo

    Ex.:+18 = 00010010 -18 = 10010010

    ProblemasEm operaes aritimticas preciso considerar ambos o sinal e a magnitudeDuas representaes para zero (+0 e -0 !!!)

  • Representao em complemento de dois

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

  • Complemento de dois: Benefcios

    Uma nica representao para zeroAritimtica mais simples (veja a seguir)Operao de negao torna-se mais simples:

    3 = 00000011complemento booleano: 11111100Soma 1 ao bit menos signific. (LSB): 11111101

  • Representao geomtrica de inteiros em complemento de dois

  • Negao: Caso especial 1

    0 = 00000000Negao bit-a-bit 11111111Soma 1 ao LSB +1Result 1 00000000Overflow ignorado, ento:- 0 = 0

  • Negao: Caso especial 2

    -128 = 10000000Negao bit-a-bit 01111111Soma 1 ao LSB +1Resultado = 10000000Ento:-(-128) = -128 XMonitorar MSB (bit de sinal):

    Ele deve mudar aps uma negao!

  • Faixa de nmeros

    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

  • Converso entre tamanhos e Extenso de sinal

    Nmeros positivos: zeros esquerda+18 = 00010010+18 = 00000000 00010010Nmeros negativos: 1s esquerda-18 = 11101110-18 = 11111111 11101110i.e. reproduz o bit de sinal esquerda

  • Adio e subtrao

    Adio binria normalMonitorar o overflow do bit de sinal

    Subtrao:Tome o complemento de dois do subtraendo e adicione-o ao minuendo

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

    Assim, ns precisamos apenas de circuitos de adio e de complemento

  • Hardware para adio e subtrao

  • Multiplicao

    Mais complexa:Opera-se o produto parcial para cada dgito (do multiplicador)Desloca cada produto parcial uma casa esquerdaAdiciona-se os produtos parciais

    Multiplicao de nmeros inteiros de n bits:produto com at 2n bits

  • Exemplo de multiplicao

    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 contrrio: zero 10001111 Produto (143 decimal)

    Obs.: requer resultado de tamanho duplo

  • Multiplicao binria no-sinalizada

  • Algoritmo direto

  • Execuo de um exemplo

  • Multiplicao de nmeros negativos

    Algoritmo direto (anterior) no funcionase um dos dois nmeros for negativo

    Soluo 1converter para positivo, se necessriomultiplicar como acimase os sinais forem diferentes, negar a resposta

    Soluo 2Algoritmo de Booth

  • Algoritmo de Booth

  • Exemplo (algoritmo de Booth)

  • Diviso

    Mais complexa que a multiplicaoPior para nmeros negativosBaseado na operao com lpis e papel

  • Diviso de nmeros inteiros no sinalizados - Exemplo

    Divisor

    Quociente

    Resto

    RestosParciais

    Dividendo10010011 1011 1011 00001101 001110 1011 001111 1011 100

  • Nmeros reais

    Nmeros com fraesPoderiam ser representados em binrio puro

    1001,1010 = 23 + 20 + 2-1 + 2-3 = 9,625Onde fica o ponto binrio?

    Fixo?muito limitado

    Mvel?como mostrar onde ele est?

  • Ponto Flutuante

    +/- 0, X 2O ponto fixado entre o bit de sinal e o corpo da mantissaO expoente indica a posio (relativa) do ponto

    Bit

    sina

    l

    ExpoentePolarizado

    Mantissa

  • Representao Binria Polarizada

    Repr.Decimal Repr.Polarizada+8 1111+7 1111+6 1110+5 1101+4 1100+3 1011+2 1010+1 1001+0 10000 01111 01102 01013 01004 00115 00106 00017 00008

    Vantagem principal:comparao diretalgica mais simples

    Uso na notao de Ponto Flutuante:

    O expoente real convertido para a forma

    polarizada

  • Exemplos de nmeros de ponto flutuante

  • Faixa de Nmeros Representveis com 32 bits

  • Referncias

    Stallings (*)Cap. 8: Aritimtica

    Computacional

    Patterson & HennessyCap. 4: Aritimtica Computacional

    (*) referncia principal

  • Exerccios

    Stallings8.4 a 8.68.14 a 8.16