Post on 05-Jan-2016
description
IC - UFF
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
ULAflags
registrosregistros
unidadede controle
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 =
1
0iai2
n
i
IC - UFF
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
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 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
-4 -3 0 +2 +3. . . . . .
-2n-1 0 2n-1-1. . . . . .
Para 3 bits
Para n bits
IC - UFF
Soma e subtração com C2
S = a - b = a + (-b) basta somador!
OF = bit de overflowSW = chave multiplexadora
IC - UFF
Soma de dois bits
realização?
E o somador?
ai bi
ci+1 ci
si
IC - UFF
Soma de dois bits realização
E o somador?
iiiiiii
iiiiiiiiiiiii
cabacbc
cbacbacbacbas
1
IC - UFF
Soma de dois bits Construção modular: somador de 3 bits
E o somador?
a1 b1
c3 c0
a2 b2 a0 b0
s0s1s2
c0
IC - UFF
Soma de dois bits Construção modular Carry lookahead
evita propagação do sinal através de todos os estágios
E o somador?
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
sina
l
expoente mantissa
0 1 8 9 31
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
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 simples31 30 29 28 27 26 25 24 23 22 21 ... 0
1 0 1 1 1 1 1 1 0 1 0 ... 0
S Expoente Mantissa
IC - UFF
OVF negativo Números reais negativos UDF negativo UDF positivo Números reais positivos OVF positivo
-(1-2-24)2128 -0,52-127 0 0,52-127 (1-2-24)2128
Inteiros representáveis
-231 0 231-1
Faixa dos números reais
Reais representáveis
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
Precisão simples Precisão dupla Objeto representadoExpoente Mantissa Expoente Mantissa
0 0 0 00 diferente de 0 0 diferente de 0 nº não normalizado
1 a 254 qualquer coisa 1 a 2046 qualquer coisa nº ponto flutuante255 0 2047 0 255 diferente de 0 2047 diferente de 0 NéN
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:
EE
EEE
yxMM
yM
yxM
Byxyx
ByBxyx
)(
)(
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
2,3400 2,34+ 0,0256 + 0,02
2,3656 2,36
2,37102 2,36102
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