270 likes | 401 Vues
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
E N D
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 • 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”)
ULA: entradas e saídas unidade de controle flags ULA registros registros
Sistemas numéricos • Sistema decimal • Sistema binário • Conversão entre bases • Notação hexadecimal • Notação octal
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 =
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
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
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
Complemento a 2 (2) • Exemplo: • +3 = 011 • +2 = 010 • +1 = 001 • +0 = 000 • -1 = 111 • -2 = 110 • -3 = 101 • -4 = 100
-4 -3 . . . 0 . . . +2 +3 Faixa dos números inteiros Para 3 bits Para n bits -2n-1 . . . 0 . . . 2n-1-1
Soma e subtração com C2 • S = a - b = a + (-b) basta somador! OF = bit de overflow SW = chave multiplexadora
bi ai E o somador? • Soma de dois bits • realização? ci+1 ci si
E o somador? • Soma de dois bits • realização
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
E o somador? • Soma de dois bits • Construção modular • Carry lookahead • evita propagação do sinal através de todos os estágios
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
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
sinal expoente mantissa Notação ponto flutuante • Uso do mesmo método em binário • M2 E, com • sinal: ou • mantissa M • expoente E • Formato típico: comparação rápida 0 1 8 9 31
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)
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
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
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
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
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:
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,56100 + 2,34102
Leitura suplementar Capítulo 4 Arithmetic for Computers Computer Organization & Design D.A. Paterson e J.L. Hennessy Ed. Morgan Kaufmann
Trabalho • Padrão IEEE 754 • Estudar o pb de PF do Pentium