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

5inais para outras partes do sistema computaciona% (outros e%ementos do 6camin7o de dados8)

Elementos que fornecem os dados que sero usados na operao a ser realizada

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

( 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 $indo de registradores

Ga%or para registrador

f%ags :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)
n 2

A =2

n 1

an1+ 2 ai
i=0

an1=1
#+mero fica negati$o

an1=0
#+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) L1 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 @ QJ1 (mantido ao %ado do bit menos significati$o de QB Q0) "esu%tados aparecem em A e Q A e QJ1 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 ASA( 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

ASAL( A S 1110 L 0111 A S 0101

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

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 =Q V + 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


S B
significando

E
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< ?UJ1J1 #+mero norma%i2ado

5ignificando

1.bbb b 2

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 :pera),es diretas e simp%es :$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

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

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


"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 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

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