Você está na página 1de 51

Arquitetura de Computadores (DCA 0104)

Aritmtica Computacional
Diogo Pedrosa
diogo@dca.ufrn.br
DCA CT !"#

Pontos a serem $istos

nidade %&gica aritm'tica

(odo de representa)*o de n+meros

!ormato inteiro e formato ponto f%utuante

A%goritmos empregados para opera),es


aritm'ticas

Padr*o -... /04



nidade 1&gica Aritm'tica

Parte do computador que fa2 as opera),es


%&gicas e aritm'ticas

3aseado em componentes %&gicos simp%es


Multiplexador

nidade 1&gica Aritm'tica

-ntercone4*o da 1A
Vm da unidade
de controle
Elementos que fornecem os
dados que sero usados na
operao a ser realizada
5inais para outras
partes do sistema
computaciona% (outros
e%ementos do 6camin7o
de dados8)

nidade 1&gica Aritm'tica

Pro9eto de uma 1A simp%es

1A de 1 bit

:pera),es A#D e :"


5ina% ;operation;< define se a sa=da ' um A#D ou
um :" entre os bits ;a; e ;b;

nidade 1&gica Aritm'tica

Pro9eto de uma 1A simp%es

1A de 1 bit

:pera)*o ;adi)*o;

nidade 1&gica Aritm'tica

Pro9eto de uma 1A simp%es

1A de 1 bit

:pera)*o ;adi)*o;
Para transformar em
>? bits...

nidade 1&gica Aritm'tica

Pro9eto de uma 1A simp%es

1A de 1 bit

:pera)*o ;subtra)*o;

nidade 1&gica Aritm'tica

Pro9eto de uma 1A simp%es

1A de 1 bit

(odificar para in$ers*o de ;a;


a

b=(a+b)
(a+0)= a

nidade 1&gica Aritm'tica

Pro9eto de uma 1A simp%es

1A de 1 bit

Compara)*o @ circuito comp%icado @ $er situa)*o


com >? bits @ muitas $e2es o resu%tado consiste em
setar um $a%or de um registrador especia% para ;1;
a<b(ab)<0
ma entrada c7amada ;1ess; que se
conecta diretamente ao mutip%e4ador de
sa=da da 1A
Para uma 1A de >? bits s*o necessArias
>1 dessas entradas ;1ess;

nidade 1&gica Aritm'tica

Pro9eto de uma 1A simp%es

1A de 1 bit

Compara)*o @ circuito comp%icado @ $er situa)*o


com >? bits
a<b(ab)<0
m sa=da c7amada ;5et;B que $em do
somador da 1A
Circuito detector de o$erf%oC
Para uma 1A de >? bits ' necessAriao
apenas 1 de%es

nidade 1&gica Aritm'tica

Pro9eto de uma 1A simp%es

Duntando tudo...
As entradas ;1ess; das 1As dos bits ;1;B ;?;B EB ;>1; s*o
a%imentadas com $a%or ;0;
A sa=da ;5et; da 1A de bit ;>1; ' usada como entrada
de ;1ess; da 1A ;0;

nidade 1&gica Aritm'tica

Pro9eto de uma 1A simp%es


5ina%i2a se o resu%tado da 1A
' igua% a 2eroF

nidade 1&gica Aritm'tica

Pro9eto de uma 1A simp%es


5inais da unidade de contro%e
Ga%or para registrador
f%ags
Ga%or $indo
de registradores
:35.< %er apHndice C do %i$ro de Patterson (%i$ro a2u%) @ apHndice estA em um CD que
$em com o %i$ro (a 3CI( tem esse CDF)

"epresenta)*o 3inAria

5ina%Jmagnitude (inteiros)

3it mais significati$o ' um bit de sina%< ;0; @


positi$oK ;1; @ negati$o

:utros bits da pa%a$ra formam o $a%or abso%uto do


n+mero
L1M N 00010010
J1M N 10010010
Prob%ema 1< L0 (00000000) e J0 (10000000)
Prob%ema ?< adi)*o e subtra)*o binArias

"epresenta)*o 3inAria

Comp%emento a dois (inteiros)

3it mais significati$o dA o sina% do n+meroF

.ste d=gito tem um peso ($a%or que depende de


sua posi)*o no n+mero)
A=2
n1
a
n1
+

i=0
n2
2
i
a
i
a
n1
=1
a
n1
=0
#+mero fica negati$o
#+mero fica positi$o

"epresenta)*o 3inAria

Comp%emento a dois (inteiros)

.4tens*o do sina% @ quando se escre$e um


n+mero em comp%emento a dois em uma
representa)*o que tem mais bits
L1M @ 00010010 (comp%emento a doisB M bits)
L1M @ 0000000000010010 (comp%emento a doisB 1O bits)
J1M @ 11101110 (comp%emento a doisB M bits)
J1M @ 1111111111101110 (comp%emento a doisB 1O bits)

"epresenta)*o 3inAria

Comp%emento a dois (inteiros)

.4tens*o do sina% @ quando se escre$e um


n+mero em comp%emento a dois em uma
representa)*o que tem mais bits
L1M @ 00010010
L1M @ 0000000000010010

"epresenta)*o 3inAria

Comp%emento a dois (inteiros)

.4tens*o do sina% @ quando se escre$e um


n+mero em comp%emento a dois em uma
representa)*o que tem mais bits
J1M @ 11101110
J1M @ 1111111111101110

Aritm'tica com -nteiros

"ea%i2ado na 1A @ prioridade com


representa)*o em comp%emento a dois

:pera)*o de nega)*o (in$ers*o de sina%)

-n$ers*o %&gica de todos os bits da pa%a$ra

5oma binAria do bit menos significati$o com $a%or


;1;
L1M @ 00010010 (comp%emento a dois)
@ 11101101 (in$ers*o %&gica)
L 1
JJJJJJJJJJJJJJJJJJJJJJJJJJ
J1M @ 11101110

Aritm'tica com -nteiros

:pera)*o de nega)*o

Anoma%ias< e4emp%o com M bitsF

Descubra o comp%emento a dois de ;0;

Descubra o comp%emento a dois de J1?M



Aritm'tica com -nteiros

Adi)*o

5oma binAriaB bit a bitB sem se preocupar com


sina%

Poss=$e% e4istHncia de bit de carry

Poss=$e% e4istHncia de overflow

"egra< se dois n+meros s*o somados e ambos s*o


positi$os ou ambos negati$osB ent*o o o$erf%oC ocorre
seB e somente seB o resu%tado ti$er o sina% oposto.

Aritm'tica com -nteiros

Adi)*o< e4emp%o

Aritm'tica com -nteiros

5ubtra)*o

Para subtrair um n+mero (subtraendo) de outro


(minuendo)B apan7e o comp%emento de dois
(nega)*o) do subtraendo e someJo ao minuendo.

A regra do o$erf%oC tamb'm ' $A%ida



Aritm'tica com -nteiros

5ubtra)*o< e4emp%o

Aritim'tica com -nteiros

Adi)*o e subtra)*o @ diagrama


:bs.< %embrar que os e%ementos
%&gicos que permitem a adi)*o e
subtra)*o binAria est*o na 1A

Aritm'tica com -nteiros

(u%tip%ica)*o

(ais comp%e4a

GArios a%goritmos

(u%tip%ica)*o sem sina%

(ais fAci% @ usada para uma me%7or compreens*o da


mu%tip%ica)*o binAria

1eitura recomendada< 1i$ro te4to (5ta%%ings)B pAgs. ?0MB


?0P e ?O0.

Aritm'tica com -nteiros

(u%tip%ica)*o com sina% (comp%emento de


dois)

#*o funciona com a regra de descartar o sina%


durante a mu%tip%ica)*o

A mu%tip%ica)*o de uma pa%a$ra de ;m; bits com


outra de ;n; bits pode gerar um resu%tado de ;mLn;
bits

A mu%tip%ica)*o baseiaJse em des%ocamentos



Aritm'tica com -nteiros

(u%tip%ica)*o com sina%

A%goritmo de 3oot7

(u%tip%icador e mu%tip%icando @ registradores Q e (

"egistrador de 1 bit @ Q
J1
(mantido ao %ado do bit
menos significati$o de QB Q
0
)

"esu%tados aparecem em A e Q

A e Q
J1
s*o inicia%i2ados com 2ero

Aritm'tica com -nteiros

(u%tip%ica)*o (a%goritmo de 3oot7)


.R.(P1:<
(u%tip%icando (0111) @ (
(u%tip%icador (0011) @ Q
A S 0000
Q(J1) S 0
Contador S 4 (n+mero de bits)

Aritm'tica com -nteiros

(u%tip%ica)*o (a%goritmo de 3oot7)


Teste< Q(0)Q(J1) N 10
A S A (
A S 0000 0111
A S 0000 L 1001
A S 1001
Des%ocamento para direita
A N 1001 @ A N 1100
Q N 0011 @ Q N 1001
Q(J1) N 0 @ Q(J1) N 1
Contador N 4 1 N >

Aritm'tica com -nteiros

(u%tip%ica)*o (a%goritmo de 3oot7)


:bser$e que...
A N 1001 @ A N 1100
Q N 0011 @ Q N 1001
Q(J1) N 0 @ Q(J1) N 1

Aritm'tica com -nteiros

(u%tip%ica)*o (a%goritmo de 3oot7)


Teste< Q(0)Q(J1) N 11
Des%ocamento para direita
A N 1100 @ A N 1110
Q N 1001 @ Q N 0100
Q(J1) N 1 @ Q(J1) N 1
Contador N > 1 N ?

Aritm'tica com -nteiros

(u%tip%ica)*o (a%goritmo de 3oot7)


Teste< Q(0)Q(J1) N 01
Des%ocamento para direita
A N 0101 @ A N 0010
Q N 0100 @ Q N 1010
Q(J1) N 1 @ Q(J1) N 0
Contador N ? 1 N 1
A S A L (
A S 1110 L 0111
A S 0101

Aritm'tica com -nteiros

(u%tip%ica)*o (a%goritmo de 3oot7)


Teste< Q(0)Q(J1) N 00
Des%ocamento para direita
A N 0010 @ A N 0001
Q N 1010 @ Q N 0101
Q(J1) N 0 @ Q(J1) N 0
Contador N 1 1 N 0
"esu%tado< AQ N 00010101

Aritm'tica com -nteiros

Di$is*o

(ais comp%e4a que a mu%tip%ica)*oB mas menos


usua%

3aseiaJse nos mesmos princ=pios gerais

"eso%u)*o por a%goritmos

:bser$a)*o< di$is*o de inteiros @ n*o tem ponto


f%utuante como resu%tado
D=QV +R
di$idendo
quociente
di$isor
resto

Aritm'tica com -nteiros

Di$is*o sem sina% @ a%goritmo


.R.(P1:< siga o a%goritmo para encontrar os
resu%tados re%ati$os T di$is*o 1011 por 0011

"epresenta)*o de Ponto !%utuante

Permite representar n+meros de grande e


bai4a magnitude

#ota)*o cient=fica
SB
E
significando base
e4poente

"epresenta)*o de Ponto !%utuante

.m binArio...

3ase ' imp%=cita @ n*o precisa ser arma2enada

"epresenta)*o po%ari2ada do e4poente

Ga%or fi4o ' subtra=do do campo para obter o $erdadeiro


$a%or do e4poente

Ga%or< ?
UJ1
J1

5ignificando

#+mero norma%i2ado
1.bbbb2
E
3it n*o precisa ser arma2enado

"epresenta)*o de Ponto !%utuante

Caracter=sticas

5ina% arma2enado no primeiro bit da pa%a$ra

: primeiro bit do $erdadeiro significando ' sempre


1 e n*o precisa ser arma2enado no campo do
significando

: $a%or 1?/ ' arma2enado ao $erdadeiro


e4poente para ser arma2enado no campo de
e4poente

A base ' ?

"epresenta)*o de Ponto !%utuante

1imites
: o$erf%oC ocorre quando uma opera)*o aritm'tica resu%ta em uma magnitude maior do
que pode ser e4pressa com um e4poente de $a%or 1?M

"epresenta)*o de Ponto !%utuante

Padr*o -... /04

!aci%itar a portabi%idade dos programas entre


processadores diferentes

"epresenta)*o de Ponto !%utuante

Aritm'tica de ponto f%utuante

Adi)*o e subtra)*o

A%in7amento dos operandos @ tHm que ter o mesmo


e4poente

(u%tip%ica)*o e di$is*o

:pera),es diretas e simp%es

As opera),es podem resu%tar em...

:$erf%oC do e4poente @ L-nf ou J-nf

nderf%oC do e4poente @ resu%ta em 0F

:$erf%oC do significando

nderf%oC do significando

"epresenta)*o de Ponto !%utuante

Adi)*o e 5ubtra)*o

Gerificar 2eros

A%in7ar os significandos @ e4poentes iguais

Pode imp%icar perda de bits

: menor n+mero ' des%ocado

5omar ou subtrair os significandos

#orma%i2ar o resu%tado

"epresenta)*o de Ponto !%utuante
A%goritmo para adi)*o e subtra)*o de n+meros em ponto f%utuante

"epresenta)*o de Ponto !%utuante
A%goritmo para mu%tip%ica)*o
de ponto f%utuanteF
Primeiro tem que testar para
saber se um dos operandos '
igua% a 2ero. #esse casoB o
resu%tado ' 2ero

"epresenta)*o de Ponto !%utuante
A%goritmo para mu%tip%ica)*o
de ponto f%utuanteF
Depois os e4poentes s*o
somados. Ap&s issoB de$eJse
subtrair o $a%or da pondera)*o
do e4poente @ %embrar que os
dois e4poentes s*o
po%ari2ados. AssimB a sua
soma resu%ta em um $a%or
dup%amente po%ari2ado.
5ubtraindo o $a%or de uma
po%ari2a)*oB o resu%tado ficarA
adequadoF

"epresenta)*o de Ponto !%utuante
A%goritmo para mu%tip%ica)*o
de ponto f%utuanteF
Teste de underf%oC e o$erf%oC.
(u%tip%ica)*o dos
significandos.
#orma%i2a)*o.
Arredondamento.

"epresenta)*o de Ponto !%utuante

A%goritmo de di$is*o

Ger figura P.?4B pAg. ?//B %i$ro te4to (5ta%%ings).



"epresenta)*o de Ponto !%utuante

:utras considera),es

3its de guarda

"egistradores da 1A possuem um taman7o maior do que


a quantidade de bits para arma2enar os significandos com
os bits imp%=citos

Arredondamento

Quando o resu%tado ' gerado pe%os registradores de


taman7o maiorB e%e precisa $o%tar para os registradores de
ponto f%utuante. #issoB os bits de guarda de$er*o ser
descartados... imp%ica ent*o em arredondamento

Arredondamento para o mais pr&4imo @ padr*o


bbbbbbbbbbbbbbbbbbbbbbb10010 @ V
bbbbbbbbbbbbbbbbbbbbbbb01111 @ V

"epresenta)*o de Ponto !%utuante
Ger mais informa),es no cap=tu%o P do %i$ro te4to
(5ta%%ings).

Você também pode gostar