ic - uff parte 1: organização de computadores 4. representação dos números e aritmética em...

27
IC - UFF 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

Upload: internet

Post on 16-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

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

Page 2: 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

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”)

Page 3: 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

IC - UFF

ULA: entradas e saídas

ULAflags

registrosregistros

unidadede controle

Page 4: 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

IC - UFF

Sistemas numéricos

Sistema decimal Sistema binário Conversão entre bases Notação hexadecimal Notação octal

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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

Page 8: 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

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

Page 9: 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

IC - UFF

Complemento a 2 (2)

Exemplo: +3 = 011 +2 = 010 +1 = 001 +0 = 000 -1 = 111 -2 = 110 -3 = 101 -4 = 100

Page 10: 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

IC - UFF

Faixa dos números inteiros

-4 -3 0 +2 +3. . . . . .

-2n-1 0 2n-1-1. . . . . .

Para 3 bits

Para n bits

Page 11: 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

IC - UFF

Soma e subtração com C2

S = a - b = a + (-b) basta somador!

OF = bit de overflowSW = chave multiplexadora

Page 12: 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

IC - UFF

Soma de dois bits

realização?

E o somador?

ai bi

ci+1 ci

si

Page 13: 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

IC - UFF

Soma de dois bits realização

E o somador?

iiiiiii

iiiiiiiiiiiii

cabacbc

cbacbacbacbas

1

Page 14: 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

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

Page 15: 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

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?

Page 16: 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

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

Page 17: 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

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

Page 18: 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

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

Page 19: 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

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)

Page 20: 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

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

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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

Page 24: 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

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

)(

)(

Page 25: 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

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

Page 26: 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

IC - UFF

Leitura suplementar

Capítulo 4

Arithmetic for Computers

Computer Organization & Design

D.A. Paterson e J.L. Hennessy

Ed. Morgan Kaufmann

Page 27: 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

IC - UFF

Trabalho

Padrão IEEE 754 Estudar o pb de PF do Pentium