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 IC - UFF
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”) IC - UFF
ULA: entradas e saídas ULA unidade de controle flags registros IC - UFF
Sistemas numéricos Sistema decimal Sistema binário Conversão entre bases Notação hexadecimal Notação octal IC - UFF
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 = IC - UFF
Sinal e magnitude (1) Bit mais à esquerda: Exemplo: (com 8 bits) se 0, número positivo se 1, número negativo Exemplo: (com 8 bits) + 27 = 00011011 - 27 = 10011011 IC - UFF
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 IC - UFF
Complemento a 2 (1) Resolve os dois problemas anteriores Regra simples 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 IC - UFF
Complemento a 2 (2) Exemplo: +3 = 011 +2 = 010 +1 = 001 +0 = 000 -1 = 111 -2 = 110 -3 = 101 -4 = 100 IC - UFF
Faixa dos números inteiros Para 3 bits -4 -3 +2 +3 . . . Para n bits -2n-1 . . . . . . 2n-1-1 IC - UFF
Soma e subtração com C2 S = a - b = a + (-b) basta somador! OF = bit de overflow SW = chave multiplexadora IC - UFF
E o somador? Soma de dois bits realização? ai bi ci+1 ci si IC - UFF
E o somador? Soma de dois bits realização IC - UFF
E o somador? Soma de dois bits Construção modular: somador de 3 bits s2 s1 s0 IC - UFF
E o somador? Soma de dois bits Construção modular Carry lookahead evita propagação do sinal através de todos os estágios IC - UFF
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 IC - UFF
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 IC - UFF
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 1 8 9 31 sinal expoente mantissa IC - UFF
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) IC - UFF
Exemplo de ponto flutuante Representação geral (-1)S (1 + Mantissa) 2(Expoente - 127) (-1)1 (1 + 0,10...02) 2(126 - 127) formato em precisão simples IC - UFF
Faixa dos números reais Inteiros representáveis -2 31 2 31 -1 Reais representáveis OVF negativo Números reais negativos UDF negativo UDF positivo Números reais positivos OVF positivo -(1-2 -24 ) ´ 2 128 -0,5 ´ 2 -127 0,5 ´ 2 -127 (1-2 -24 ) ´ 2 128 IC - UFF
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 IC - UFF
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 IC - UFF
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: IC - UFF
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 IC - UFF
Leitura suplementar Capítulo 4 Arithmetic for Computers Computer Organization & Design D.A. Paterson e J.L. Hennessy Ed. Morgan Kaufmann IC - UFF
Trabalho Padrão IEEE 754 Estudar o pb de PF do Pentium IC - UFF