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
unidade
de controle
flags
ULA
registros
IC - UFF
registros
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



IC - UFF
5110 = 001100112
23710 = 111011012
A = an-1 ... a1a0 =
n 1 i
 2 ai
i0
Sinal e magnitude (1)

Bit mais à esquerda:



se 0, número positivo
se 1, número negativo
Exemplo: (com 8 bits)


IC - UFF
+ 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:


IC - UFF
+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



IC - UFF
+310 = 0112
complemento booleano: 1002
soma 1 ao BmS (LSB): 1012 = -310
Complemento a 2 (2)

Exemplo:







IC - UFF

+3 = 011
+2 = 010
+1 = 001
+0 = 000
-1 = 111
-2 = 110
-3 = 101
-4 = 100
Faixa dos números inteiros
Para 3 bits
-4 -3
...
0
...
+2 +3
Para n bits
-2n-1
IC - UFF
...
0
...
2n-1-1
Soma e subtração com C2

S = a - b = a + (-b)  basta somador!
IC - UFF
OF = bit de overflow
SW = chave multiplexadora
E o somador?

Soma de dois bits
bi
ai
ci+1

IC - UFF
realização?

si
ci
E o somador?

Soma de dois bits

realização
si  ai bi ci  ai bi ci  ai bi ci  ai bi ci
ci 1  bi ci  ai bi  ai ci
IC - UFF
E o somador?


Soma de dois bits
Construção modular: somador de 3 bits
b2
a2
c3
IC - UFF
b1
a1
b0
a0



s2
s1
s0
c0
E o somador?



Soma de dois bits
Construção modular
Carry lookahead

IC - UFF
evita propagação do sinal através de todos
os estágios
e

Multiplicação é mais complexa que soma
e subtração:


Divisão é ainda mais complexa:


se um dos números é negativo,
multiplicação direta não resolve!
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:


IC - UFF
2.743.000.000.000 = 2,743  1012
0,000000000002743 = 2,743  10-12
Notação ponto flutuante

Uso do mesmo método em binário

M2 E, com



Formato típico: comparação rápida
0
1
sinal

sinal:  ou 
mantissa M
expoente E
expoente
IC - UFF
8 9
31
mantissa
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) 



IC - UFF
-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 30 29 28 27 26 25 24 23 22 21
...
0
1 0 1 1 1 1 1 1 0 1 0
...
0
S
IC - UFF
Expoente
Mantissa
Faixa dos números reais
Inteiros representáveis
-231
231 -1
0
Reais representáveis
OVF negativo
-(1-2 ) 2
-24
128
IC - UFF
Números reais negativos
-0,5 2
-127
UDF negativo UDF positivo
0
Números reais positivos
0,5 2
-127
OVF positivo
(1-2 ) 2
-24
128
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


IC - UFF
E: 8 bits  11 bits
M: 23 bits  52 bits
PF: alguns detalhes (2)

Padrão IEEE 754
Precisão simples
Expoente
Mantissa
0
0
0
diferente de 0
1 a 254
qualquer coisa
255
0
255
diferente de 0

Precisão dupla
Expoente
Mantissa
0
0
diferente de 0
1 a 2046
qualquer coisa
2047
0
2047
diferente de 0
Associatividade:

x + (y + z) = (x + y) + z ?

IC - UFF

-1,5E38 + (1,5E38 + 1,0) = 0,0
(-1,5E38 + 1,5E38) + 1,0 = 1,0
Objeto representado
0
 nº não normalizado
 nº ponto flutuante

NéN
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:
y
x y
IC - UFF
x  y  ( xM B
E
E
 yM )  B
x  y  ( xM  y M )  B x E  y E
E
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
2,3400
+ 0,0256
2,3656
IC - UFF

2,37102
+

2,34
0,02
2,36
2,36102
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
Download

Representação dos números e aritmética em computadores