Você está na página 1de 50

Arquitetura de

Computadores
Willian Rampazzo
Faculdade Anhanguera de Indaiatuba

Aula 03
Aritmtica Computacional

Unidade Lgica e Aritmtica (ULA)

Parte do computador que realmente executa as operaes aritmticas e


lgicas nos dados

Todos os outros elementos do computador existem principalmente para


transferir dados para a ULA para que este processe e, em seguida,
devolva os resultados

Com base na utilizao de dispositivos simples de lgica digital que


podem armazenar dgitos binrios e realizar operaes de lgica
booleana simples

Entradas e Sadas da ULA

Unidade de
controle

Registradores

Bits
especiais

Registradores

Representao Inteira

No sistema numrico binrio nmeros arbitrrios podem ser


representados com:

Os dgitos zero e um

O sinal negativo (para nmeros negativos)

O ponto, ou ponto da raiz (para nmeros com um componente fracionrio)

Para fins de armazenamento e de processamento do computador ns


no temos o benefcio de smbolos especiais para o sinal negativo e
ponto da raiz

Apenas os dgitos binrios (0,1) podem ser utilizados para representar


nmeros

Representao Sinal-Magnitude
H vrias convenes alternativas
utilizadas para representar negativo,
bem como nmeros inteiros positivos

Todas essas alternativas envolvem o tratamento do


bit mais significativo (mais esquerda) da palavra
como um bit de sinal
Se o bit de sinal 0, o nmero positivo
Se o bit de sinal 1, o nmero negativo

Representao sinal-magnitude a
forma mais simples que emprega um
bit de sinal

Inconvenientes:

Devido a estes inconvenientes, a


representao sinal-magnitude
raramente usada na implementao da
parte inteira da ALU

A adio e subtraco requerem uma considerao


de ambos os sinais dos nmeros e dos seus valores
relativos ao realizar a operao necessria
H duas representaes de 0

Representao em complemento de dois

Usa o bit mais significativo como um bit de sinal

Difere da representao sinal-magnitude de maneira que os outros bits


so interpretados
Extenso
Quantidade de
representao de zero
Negao

Extenso de bits

at
Um
Pegue o complemento booleano de cada bit do correspondente
positivo e adicione um ao resultado.
Adicione a quantidade desejada de bits a esquerda com o
mesmo valor do sinal.

Regra de overflow

Se dois nmeros de mesmo sinal (ambos positivos ou ambos


negativos) so somados, um overflow acontece se e somente
se o resultado tem sinal oposto.

Regra de subtrao

Para subtrair B de A, pegue o complemento de dois de B e


some a A.

Alternativas para representao de inteiros em 4 bits

Extenso

Gama de nmeros que podem ser expressos estendida atravs do


aumento do comprimento de bits

Na notao de sinal-magnitude conseguimos movendo o bit de sinal


para a nova posio mais esquerda e preenchendo com zeros

Este procedimento no vai funcionar para inteiros negativos em


complemento de dois

Regra para mover o bit de sinal para a nova posio mais esquerda e
preencha com cpias do bit de sinal

Para nmeros positivos, preencher com zeros, e para nmeros negativos,


preencher com 1s

Isto chamado de extenso de sinal

Representao de ponto fixo

A posio da vrgula fixa e assumimos


que est direita do bit menos
significativo.

Programadores podem usar a mesma


notao para representar frao binria
movendo implicitamente a posio da
vrgula.

Negao

Operao de complemento de dois

Leve o complemento booleano de cada bit do inteiro (incluindo o bit de sinal)

Tratar o resultado como um inteiro binrio sem sinal, adicione 1


+18 = 00010010 (complemento de dois)
complemento bit a bit = 11101101
+
1
11101110 = -18

O negativo do negativo do nmero ele mesmo:


-18 = 11101110 (complemento de dois)
complemento bit a bit = 00010001
+
1
00010010 = +18

Negao - Caso especial 1


0 =

00000000 (complemento de dois)

complemento bit a bit =


Adiciona 1

11111111
+

Resultado

Overflow ignorado, ento:


-0=0

1
100000000

Negao - Caso especial 2


-128

complemento bit a bit =


Adiciona 1
Resultado

10000000 (complemento de dois)


01111111

1
10000000

Ento:
-(-128) = -128 X
Monitorar o bit mais significativo (bit de sinal)
Ele deve mudar durante a negao.

Adio

Regra do
Overflow

REGRA DO OVERFLOW:
Se dois nmeros so somados
e eles so ambos positivos ou
ambos negativos, ento ocorre
overflow se e somente se o
resultado de sinal contrrio.

REGRA DA SUBTRACTION:
Para subtrair um nmero
(subtraendo) de outro
(minuendo), tomar o
complemento de dois
(negao) do subtraendo e
adicion-lo ao minuendo.

Regra da
Subtraction

Subtrao

Representao geomtrica dos nmeros


inteiros em complemento de dois

Hardware para Adio e Subtrao


Registrador B

Registrador A

Complemento de
dois

Somador

OF = Bit de overflow
SW = Seletor de adio ou subtrao

Multiplicao

Multiplicando

Adio

Somador de n bits

Lgica de controle de
adio e
deslocamento

Deslocamento direita

Implementao do
Hardware de
multiplicao de
nmeros binrios
sem sinal

Multiplicador

Fluxograma da
multiplicao de
nmeros binrios
sem sinal

Multiplicao em complemento de dois

Comparao

Inteiro sem sinal

Complemento de dois

Algoritmo de
Booth

Exemplo do algoritmo de Booth

Exemplos usando o algoritmo de Booth

Diviso

Fluxograma para
diviso binria
sem sinal

Exemplo de diviso em complemento de


dois

Representao de nmero de ponto flutuante


Princpios

Com uma notao de ponto fixo, possvel representar uma gama de


nmeros inteiros positivos e negativos centrados em ou perto de 0

Ao assumir um ponto binrio ou ponto fixo, este formato permite a


representao de nmeros com um componente fracional

Limitaes:

Nmeros muito grandes ou pequenas fraes no podem ser representadas

A parte fracionria do quociente em uma diviso de dois nmeros grandes


pode ser perdida

Formato tpico de ponto flutuante em


32 bits
Sinal da
mantissa
Expoente polarizado

Mantissa

Ponto flutuante
Significando

A poro final da palavra

Qualquer nmero de ponto flutuante pode ser expresso de vrias


maneiras
Os seguintes so equivalentes, onde o significando expresso na
forma binria:
0.110 * 25
110 * 22
0.0110 * 26

Nmero normal

O dgito mais significativo do significando diferente de zero

Nmeros representveis
Inteiros representveis

Reta de
nmeros
Nmeros inteiros em complemento de dois

Overflow
negativo

Representao de
nmeros negativos

Underflo
w
negativo

Underflo
w
positivo

Representao de
nmeros positivos

Overflow
positivo

Reta de
nmeros

Nmeros de ponto flutuante

Densidade de nmeros de ponto flutuante

Padro IEEE 754

A representao mais importante


de ponto flutuante definida

Padro foi desenvolvido para


facilitar a portabilidade de
programas de um processador
para outro e para incentivar o
desenvolvimento de programas
sofisticados e numericamente
orientados

Padro tem sido amplamente


adotado e usado em
praticamente todos os
processadores contemporneos e
co-processadores aritmticos

IEEE 754-2008 abrange tanto as


representaes binrias como as
decimais de ponto flutuante

IEEE 754-2008

Define os seguintes tipos diferentes de formatos de ponto flutuante:

Formato aritmtico

Formato bsico

Todas as operaes obrigatrios definidos pelo padro so suportados pelo formato.


O formato pode ser usado para representar operandos de ponto flutuante ou
resultados para as operaes descritas na norma.

Esse formato abrange cinco representaes de ponto flutuante, trs binrios e duas
decimais, cujas codificaes so especificadas pela norma, e que podem ser usadas
para a aritmtica. Pelo menos um dos formatos de base implementado em qualquer
implementao conforme.

Formato de intercmbio

Uma especificao completa, de comprimento fixo de codificao binria que


permite a troca de dados entre diferentes plataformas, e que pode ser utilizada para
o armazenamento.

bit de
sinal

Expoente
polarizado

Formatos
IEEE 754

Mantissa

Formato binrio de 32 bits

bit de
sinal

Expoente
polarizado
Mantissa

Formato binrio de 64 bits

bit de
sinal
Expoente
polarizado

Formato binrio de 128 bits

Mantissa

Parmetro

Formato
binrio 32

binrio 64

binrio 128

Tamanho da palavra (bits

32

64

128

Tamanho do expoente (bits)

11

15

Polarizao do expoente

127

1023

16383

Expoente mximo

127

1023

16383

Expoente mnimo

-126

-1022

-16382

Faixa de nmeros (base 10)

10-38, 10+38

10-308, 10+308

10-4932, 10+4932

Tamanho da mantissa (bits)*

23

52

112

Nmero de expoentes

254

2046

32766

Nmero de fraes

223

252

2112

Nmero de valores

1,98x231

1,99x263

1,99x2128

Menor nmero positivo normal

2-126

2-1022

2-16362

Maior nmero positivo normal

2128 - 2104

21024 - 2971

216384 - 216271

* no incluindo o bit implcito e no incluindo o bit de sinal

IEEE 754
Formatos
Parmetros

Formatos adicionais
Formatos de preciso extendida

Formato de preciso extensvel

Fornecer bits adicionais no expoente (alcance


estendido) e no significando (preciso
estendida)

Preciso e intervalo so definidos


sob o controle do usurio

Diminui a chance de um resultado final que


tenha sido contaminado por erro excessivo

Diminui a chance de um estouro intermedirio


abortar um clculo cujo resultado final teria sido
representvel em um formato bsico

Pode ser usado para clculos


intermedirios, sem restrio de
locais padro ou de formato ou de
comprimento

Oferece alguns dos benefcios de um formato


bsico maior, sem incorrer a penalidade de
tempo normalmente associado com maior
preciso

Aritmtica com nmeros de ponto flutuante


Nmeros de ponto flutuante

Exemplos:

Operaes aritmticas

Adio e subtrao em ponto flutuante

X+Y=Z
X-Y=Z

Multiplicao em
ponto flutuante

X x Y=Z

Diviso em ponto
flutuante

X/Y=Z

Consideraes de preciso
Bits de guarda

Exemplo binrio, sem bits de guarda

Exemplo hexadecimal, sem bits de guarda

Exemplo binrio, com bits de guarda

Exemplo hexadecimal, com bits de guarda

Consideraes de preciso
Arredondamento

Abordagens padro IEEE:


Arredondar para o mais prximo:
O resultado ser arredondado para o nmero representvel mais prximo.
Arredondar para + :
O resultado arredondado para mais infinito.
Arredondar para -:
O resultado arredondado para baixo em direo ao infinito negativo.
Arredondar para 0:
O resultado arredondado para zero.

Aritimtica intervalar
Fornece um mtodo eficiente para o
monitoramento e controle de erros em clculos
de ponto flutuante por produzir dois valores
para cada resultado
Os dois valores correspondem aos pontos de
extremidade inferior e superior de um
intervalo que contm o resultado verdadeiro

Menos infinito e
arredondamento para mais so
teis na implementao de
aritmtica intervalar

Truncamento

A largura do intervalo indica a preciso do


resultado

Arredonda para zero

Se os pontos finais no podem ser


representados de ento os pontos finais do
intervalo so arredondados para baixo e para
cima, respectivamente

Bits extras so ignorados

Tcnica mais simples

Se o intervalo entre os limites superior e


inferior suficientemente estreito ento um
resultado suficientemente preciso foi obtido

Uma polarizao consistente para zero


em uma operao
A polarizao afeta cada operao
para os resultados diferentes de zero
nos bits extras

Padro IEEE para aritmtica de nmeros binrios de ponto


flutuante

Infinito
tratado como o caso dos limites da aritmtica real, com os valores de
borda infinita interpretados da seguinte forma:
- < (cada nmero finito) < +

Por exemplo:
5 + (+ ) = +

5 (+ )

= +0

5 - (+ ) = -

(+ ) + (+ )

5 + (- ) = -

(- ) + (- )

=-

5 - (- ) = +

(- ) - (+ )

=-

5 * (+ ) = +

(+ ) - (- )

=+

=+

Padro IEEE para aritmtica de nmeros binrios de ponto


flutuante

NaN silencioso e NaN sinalizador

NaN sinalizador gera uma exceo de operao invlida sempre que


usado como operando.

NaN silencioso se propaga por meio de quase toda operao aritmtica


sem gerar exceo.
Operao
Qualquer
Adio e subtrao

Multiplicao
Diviso
Resto
Raiz quadrada

NaN silencioso produzido por


Qualquer operao sobre um NaN sinalizador
Subtrao de nmeros de magnitude infinita
(+ ) + (- )
(- ) + (+ )
(+ ) - (+ )
(+ ) - (- )
0x
0/0 ou /
x RES 0 ou RES y
raiz(x) onde x < 0

Operaes que produzem


um NaN silencioso

Resumo

Aritmtica
computacional

Aula 03

Aritmtica inteira

ALU

Negao

Representao inteira

Adio e subtrao

Sinal-magnitude

Multiplicao

Complemento de dois

Diviso

Extenso de faixa

Ponto fixo

Representao de ponto flutuante

Princpios

Padro IEEE para representao


de nmeros binrios de ponto
flutuante

Stallings: Captulo 8

PLT: Captulo 7

Aritmtica de ponto flutuante

Adio e subtrao

Multiplicao e diviso

Consideraes de preciso

Padro IEEE para aritmtica de


nmeros binrios de ponto
flutuante

Você também pode gostar