1 / 27

Parte 1: Organização de Computadores

Parte 1: Organização de Computadores. 4. Representação dos números e aritmética em computadores Texto base: capítulo 8 Computer Organization and Architecture W. Stallings. Unidade Lógica e Aritmética. Parte do processador que realiza as operações lógicas e aritméticas

lisbet
Download Presentation

Parte 1: Organização de Computadores

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Parte 1:Organização de Computadores 4. Representação dos números e aritmética em computadores Texto base: capítulo 8 Computer Organization and Architecture W. Stallings

  2. Unidade Lógica e Aritmética • Parte do processador que realiza as operações lógicas e aritméticas • Função das outras unidades é trazer dados para serem processados pela ULA e obter resultados em retorno • Operações aritméticas: números inteiros e reais (“ponto fixo” e “ponto flutuante”)

  3. ULA: entradas e saídas unidade de controle flags ULA registros registros

  4. Sistemas numéricos • Sistema decimal • Sistema binário • Conversão entre bases • Notação hexadecimal • Notação octal

  5. Representação dos inteiros • Se fossem só os números positivos, a representação seria imediata • exemplo: com 8 bits • 5110 = 001100112 • 23710 = 111011012 • A = an-1 ... a1a0 =

  6. Sinal e magnitude (1) • Bit mais à esquerda: • se 0, número positivo • se 1, número negativo • Exemplo: (com 8 bits) • + 27 = 00011011 • - 27 = 10011011

  7. Sinal e magnitude (2) • Problemas: • consideração sobre sinal e magnitude nas operações de adição e subtração • duas representações para o 0: • +010 = 000000002 • -010 = 100000002

  8. Complemento a 2 (1) • Resolve os dois problemas anteriores • uma única representação para o 0 • fácil de implementar a aritmética • Regra simples • +310 = 0112 • complemento booleano: 1002 • soma 1 ao BmS (LSB): 1012 = -310

  9. Complemento a 2 (2) • Exemplo: • +3 = 011 • +2 = 010 • +1 = 001 • +0 = 000 • -1 = 111 • -2 = 110 • -3 = 101 • -4 = 100

  10. -4 -3 . . . 0 . . . +2 +3 Faixa dos números inteiros Para 3 bits Para n bits -2n-1 . . . 0 . . . 2n-1-1

  11. Soma e subtração com C2 • S = a - b = a + (-b)  basta somador! OF = bit de overflow SW = chave multiplexadora

  12. bi ai E o somador? • Soma de dois bits • realização? ci+1  ci si

  13. E o somador? • Soma de dois bits • realização

  14. b1 b0 b2 a0 a1 a2 E o somador? • Soma de dois bits • Construção modular: somador de 3 bits c3 c0 c0    s2 s1 s0

  15. E o somador? • Soma de dois bits • Construção modular • Carry lookahead • evita propagação do sinal através de todos os estágios

  16.  e  • Multiplicação é mais complexa que soma e subtração: • se um dos números é negativo, multiplicação direta não resolve! • Divisão é ainda mais complexa: • números negativos dão trabalho! • Mesmo h/w pode ser usado

  17. Representando números reais • Números fracionários • exemplo: 27,7510 = 11011,112 • notação em “ponto fixo” • problema: números muito grandes e muito pequenos • Notação científica: • 2.743.000.000.000 = 2,743  1012 • 0,000000000002743 = 2,743  10-12

  18. sinal expoente mantissa Notação ponto flutuante • Uso do mesmo método em binário • M2 E, com • sinal:  ou  • mantissa M • expoente E • Formato típico: comparação rápida 0 1 8 9 31

  19. Expoente e mantissa • Expoente: uso da notação “polarizada” (biased): C2 não é adequada • 000000002 representa número mais negativo • 111111112 representa número mais positivo • polarização +127 (IEEE 754)  • -1  -110 + 12710 = 12610 = 011111102 • +1  +110 + 12710 = 12810 = 100000002 • Mantissa normalizada: 0,1bbb...b  bit mais à esquerda é sempre 1 (implícito)

  20. Exemplo de ponto flutuante • N = -0,7510 = -0,112 = -1,12 2-1 • Representação geral • (-1)S (1 + Mantissa)  2(Expoente - 127) • (-1)1 (1 + 0,10...02)  2(126 - 127) • formato em precisão simples

  21. 31 -2 Faixa dos números reais Inteiros representáveis 31 0 2 -1 Reais representáveis OVF negativo Números reais negativos UDF negativo UDF positivo Números reais positivos OVF positivo -24 128 -127 -127 -24 128 ´ ´ ´ ´ 0 -(1-2 ) 2 -0,5 2 0,5 2 (1-2 ) 2

  22. PF: alguns detalhes (1) • Número de valores representados neste formato é (praticamente) 232 • Números mais espaçados na reta dos reais (mas não igualmente espaçados!) • Precisão simples e dupla • E: 8 bits  11 bits • M: 23 bits  52 bits

  23. PF: alguns detalhes (2) • Padrão IEEE 754 • Associatividade: • x + (y + z) = (x + y) + z ? • -1,5E38 + (1,5E38 + 1,0) = 0,0 • (-1,5E38 + 1,5E38) + 1,0 = 1,0

  24. Aritmética em ponto flutuante • Para a soma e a subtração é necessário que ambos os operandos tenham o mesmo expoente • A multiplicação e a divisão são mais diretas • Vejamos:

  25. Precisão • Arredondamento adequado exige bits extras no hardware • Padrão IEEE 754 adiciona bits para os cálculos intermediários (e.g., guard e round) • Exemplo: 2,56100 + 2,34102

  26. Leitura suplementar Capítulo 4 Arithmetic for Computers Computer Organization & Design D.A. Paterson e J.L. Hennessy Ed. Morgan Kaufmann

  27. Trabalho • Padrão IEEE 754 • Estudar o pb de PF do Pentium

More Related