Você está na página 1de 116

1

Arquitetura e Organizao de Computadores


Aritmtica Computacional
Prof. Otvio Gomes
otavio.gomes@ifmg.edu.br
Prof. Mrio Luiz Rodrigues
mario.luiz@ifmg.edu.br
2
Arquitetura e Organizao de Computadores
Aritmtica Computacional
Representao e Tipos de Dados
Representao de inteiros, Sinal-Magnitude, Complementos
Nmeros sinalizados, overflow e underflow
Tipo Numrico
Representao em Ponto Fixo
Representao em Ponto Flutuante
3
Arquitetura e Organizao de Computadores
4
Arquitetura e Organizao de Computadores
Representao e
Tipos de Dados
orma Tipos
Caractere Caractere
Lgico Lgico
Decimal
Numrico Ponto Flutuante
Sinal e Magnitude
Ponto Fixo Complemento a 1
Complemento a 2
{
{
!
Arquitetura e Organizao de Computadores
Representao e
Tipos de Dados
"
Arquitetura e Organizao de Computadores
Representao e
Tipos de Dados
Genericamente, veja alguns tipos fundamentais de declarao de variveis.
So eles:
int, para nmeros inteiros entre -2147483647 e 2147483647, utiliza 4 bytes;
c#ar, para caracteres individuais do padro ASC, utiliza 1 byte;
$loat, para reais entre (aproximadamente) 10
-38
e 10
38
, utiliza 4 bytes,
preciso de 7 dgitos;
dou%le, para reais entre (aproximadamente) 10
-4932
e 10
4932
, utiliza 8 bytes,
preciso de 15 dgitos;
%ool, para indicar true (verdadeiro) ou false (falso), utiliza 1 byte; Presente
apenas no padro C99 em diante.
&
Arquitetura e Organizao de Computadores
http://computer.howstuffworks.com/computer-memory4.htm
Representao e
Tipos de Dados
'
Arquitetura e Organizao de Computadores
http://www.metropoledigital.ufrn.br/aulas/disciplinas/sist_operacional/aula_11.html
Representao e
Tipos de Dados
(
Arquitetura e Organizao de Computadores
http://www.metropoledigital.ufrn.br/aulas/disciplinas/sist_operacional/aula_11.html
Representao e
Tipos de Dados
1)
Arquitetura e Organizao de Computadores
http://www.metropoledigital.ufrn.br/aulas/disciplinas/sist_operacional/aula_11.html
Representao e
Tipos de Dados
11
Arquitetura e Organizao de Computadores
Representao e
Tipos de Dados
Tipo NumBits Formato Inicio Fim
char 8 %c -128 127
unsigned char 8 %c 0 255
signed char 8 %c -128 127
int 16 %i -32768 32767
unsigned int 16 %u 0 65535
signed int 16 %i -32768 32767
short int 16 %hi -32768 32767
unsigned short int 16 %hu 0 65535
signed short int 16 %hi -32768 32767
!ong int 32 %!i -21"7"836"8 21"7"836"7
signed !ong int 32 %!i -21"7"836"8 21"7"836"7
unsigned !ong int 32 %!u 0 "2#"#672#5
$!oat 32 %$ 3%"&-38 3"&'38
dou(!e 6" %!$ 1%7&-308 1%7&'308
!ong dou(!e 80 %)$ 3%"&-"#32 3%"&'"#32
12
Arquitetura e Organizao de Computadores
Representao e
Tipos de Dados
Tamanho do registro e do endereo fsico de algumas
arquiteturas populares de processador
http://www.ibm.com/developerworks/br/library/j-nativememory-linux/
13
Arquitetura e Organizao de Computadores
Representao e
Tipos de Dados
http://www.ibm.com/developerworks/br/library/j-nativememory-linux/
*a+out de espao de endereo para
,indo-s de 32 %its
*a+out de espao de endereo para
*inu. de 32 %its
14
Arquitetura e Organizao de Computadores
Representao e
Tipos de Dados
http://courses.cs.vt.edu/csonline/MachineArchitecture/Lessons/CPU/Lesson.html
1!
Arquitetura e Organizao de Computadores
Representao e
Tipos de Dados
http://www.henkessoft.de/C/C-Programming%20Under%20The%20Hood.htm
1"
Arquitetura e Organizao de Computadores
Representao e
Tipos de Dados
http://arstechnica.com/features/2008/09/x86-64/
1&
Arquitetura e Organizao de Computadores
http://arstechnica.com/features/2008/09/x86-64/
Representao e
Tipos de Dados
1'
Arquitetura e Organizao de Computadores
http://arstechnica.com/features/2008/09/x86-64/
Representao e
Tipos de Dados
1(
Arquitetura e Organizao de Computadores
Representao e
Tipos de Dados
http://yecd.com/os/8086%20assembler%20tutorial%20for%20beginners%20%28part%201%29.htm
2)
Arquitetura e Organizao de Computadores
Representao e
Tipos de Dados
Representao do sinal de um nmero.
Representao da vrgula (ou ponto) que separe a parte
inteira da parte fracionria de um nmero no-inteiro.
Quantidade limite de algarismos possvel de ser processada
pela ULA de um processador.
21
Arquitetura e Organizao de Computadores
Representao de inteiros/
0inal12agnitude/ Complementos/
34meros sinalizados/ O5er$lo- e 6nder$lo-
22
Arquitetura e Organizao de Computadores
7#+sics
De5ices
Analog
Circuits
Digital
Circuits
*ogic
2icro1
arc#itecture
Arc#itecture
Operating
0+stems
Application
0o$t-are
electrons
transistors
diodes
ampli$iers
$ilters
A3D gates
3OT gates
adders
memories
datapat#s
controllers
instructions
registers
de5ice dri5ers
programs
$
o
c
u
s

o
$

t
#
i
s

c
o
u
r
s
e
A%strao
23
Arquitetura e Organizao de Computadores
Decimal nteiros sem Sinal
! 3 & 4
1)
8 ! 9 1)
3
: 3 9 1)
2
: & 9 1)
1
: 4 9 1)
)
mil#ares
1
)
;
s
1
)
)
;
s
1
)
)
)
;
s
centenas dezenas unidades
1
;
s
D 8 d
n11
d
n12
< d
1
d
)
=>D? 8 d
n11
.1)
n11
: d
n12
.1)
n12
: < : d
1
.1)
1
: d
)
.1)
)
Representao 7osicional
24
Arquitetura e Organizao de Computadores
Binrio nteiros sem sinal
@ 8 %
n11
%
n12
< %
1
%
)
=>@? 8 %
n11
.2
n11
: %
n12
.%
n12
: < : %
1
.2
1
: %
)
.2
)
n11
8 A %
i
.2
i

i8)
1 1 ) 1
2
8 1 9 2
3
: 1 9 2
2
: ) 9 2
1
: 1 9 2
)
8 13
1)
2
;
s
4
;
s
'
;
s
1
;
s
Representao 7osicional
2!
Arquitetura e Organizao de Computadores
Considere um nmero decimal N-dgitos

Representa 10
N
possveis valores

O ntervalo : [0, 10
N
- 1]

Exemplo,
Um nmero decimal 3-dgitos representa 10
3
= 1000 valores, com intervalo de [0, 999]
Considere um nmero binrio N-bits

Representa 2
N
possveis valores

O ntervalo : [0, 2
N
- 1]
Exemplo, um nmero binrio 3-bit 2
3
= 8 valores, com intervalo de [0, 7] (i.e., 000
2
a 111
2
)
=alores e inter5alos
2"
Arquitetura e Organizao de Computadores
Con5ersBes de @ase
2&
Arquitetura e Organizao de Computadores
C.cesso 2
m11
Representa um nmero armazenando-o como a soma dele mesmo
com 2
m-1
.
Por exemplo:
Para nmeros de 8 bits, m=8, o sistema denominado excesso 128 e
um nmero armazenado como seu verdadeiro valor mais 128.
Portanto, -3 se torna -3+128=125, e -3 representado pelo nmero
binrio de 8 bits para 125 (01111101).
Os nmeros de -128 a 127 podem ser mapeados de 0 a 255, podendo
ser expressos como um inteiro positivo de 8 bits.
O interessante que esse sistema idntico ao complemento de dois
com o bit de sinal invertido.
2'
Arquitetura e Organizao de Computadores
@its
@+tes D 3i%%les
@+tes
10010110
nibble
byte
CEBF9AD7
least
significant
byte
most
significant
byte
10010110
least
significant
bit
most
significant
bit
@it/ 3i%%les e @+tes
2(
Arquitetura e Organizao de Computadores
Decimal
Binria
3734
5168 +
8902
carries
11
1011
0011 +
1110
11
carries
Adio
3)
Arquitetura e Organizao de Computadores
Sistemas Digitais operam com um nmero fixo de bits.
A Adio tem overflow quando o resultado no pode ser
representado com o nmero de bits disponveis
Exemplo: somar 13 e 5 usando nmeros de 4-bits:
1101
0101 +
10010
11 1
O5er$lo-
31
Arquitetura e Organizao de Computadores
Sinal e Magnitude
b
n 1
b
1
b
0
Magnitude
MSB
34mero sem 0inal
b
n 1
b
1
b
0
Magnitude
Sign
34mero com 0inal
b
n 2
0 denotes
1 denotes
+
MSB
Representao de
34meros 3egati5os
32
Arquitetura e Organizao de Computadores
1 bit de signal, N-1 bits de magnitude

O bit de sinal o mais significativo (mais a


esquerda)

Nmero negativo: 1

Nmero positivo: 0

Exemplo, representao de 5 com 4-bit:


- 5 = 1101
2

+5 = 0101
2

ntervalo de um nmero N-bit sinal/magnitude:


[-(2
N-1
-1), 2
N-1
-1]
Representao de
34meros 3egati5os
33
Arquitetura e Organizao de Computadores
Complemento de 1
Cm complemento de E6mF o n4mero negati5o G/ com n1%its/
o%tido su%traindo seu positi5o 7 de 2
n
1 1
G 8 >2
n
H 1? 1 7
Representao de
34meros 3egati5os
34
Arquitetura e Organizao de Computadores
Complemento de 1
Cm complemento de E6mF o n4mero negati5o G/ com n1%its/
o%tido su%traindo seu positi5o 7 de 2
n
1 1
G 8 >2
n
H 1? 1 7
C.emploI se n 8 4/
entoI

G 8 >2
4
H 1? H 7
G 8 >1" H 1? H 7
G 8 >1111?
2
1 7
G 8 1& 1J 7 8 &
& 8 >)111?
2
1& 8 >1111?
2
1 >)111?
2
1& 8 >1)))?
2
Representao de
34meros 3egati5os
3!
Arquitetura e Organizao de Computadores
Complemento de 2
Cm complemento de EDoisF o n4mero negati5o G/ com n1%its/
o%tido su%traKndo seu positi5o 7 de 2
n
G 8 2
n
1 7
G 8 >2
n
1 1? : 1 1 7
G 8 >2
n
1 1? H 7 : 1
Representao de
34meros 3egati5os
3"
Arquitetura e Organizao de Computadores
Complemento de 2
Cm complemento de EDoisF o n4mero negati5o G/ com n1%its/
o%tido su%traKndo seu positi5o 7 de 2
n
G 8 2
n
1 7
C.emploI se n 8 4
entoI

G 8 2
4
H 7
G 8 1" H 7
G 8 >1))))?
2
1 7
G 8 1& 1J 7 8 &
& 8 >)111?
2
1& 8 >1))))?
2
1 >)111?
2
1& 8 >1))1?
2
G 8 >2
n
1 1? : 1 1 7
G 8 >2
n
1 1? H 7 : 1
Representao de
34meros 3egati5os
3&
Arquitetura e Organizao de Computadores
Complemento de 2

2aior n4mero positi5o de 41%itI )111


2
>&
1)
?

2aior n4mero negati5o de 41%itI 1)))


2
>-2
3
8 -'
1)
?
O most signi$icant %it tam%m indica o sinal >1 8 negati5o/ ) 8
positi5o?
Lnter5alo de um n4mero de N1%itI

M-2
N11
/ 2
N11
-1N
Representao de
34meros 3egati5os
3'
Arquitetura e Organizao de Computadores
C.emploI 1! : !I
11)1
: )1)1
1))1)
Duas representaBes para o ) >O )?I
1)))
))))
Adio e 0u%trao
0inal12agnitude
3(
Arquitetura e Organizao de Computadores
+ +
1 1 0 0
1 0 1 0
0 0 1 0
0 1 1 1
0 1 0 1
0 0 1 0
+ +
0 1 1 1
1 0 1 0
1 1 0 1
0 0 1 0
0 1 0 1
1 1 0 1
1
1
0 0 1 1
1
1
1 0 0 0
2 + ( )
5 ( )
3 - ( )
+
5 ( )
7 ( )
+ 2 ( )
5 + ( )
2 + ( )
7 + ( )
+
5 + ( )
3 + ( )
+ 2 ( )
Adio e 0u%trao
Complemento de 1
4)
Arquitetura e Organizao de Computadores
+ +
1 1 0 1
1 0 1 1
0 0 1 0
0 1 1 1
0 1 0 1
0 0 1 0
+ +
1 0 0 1
1 0 1 1
1 1 1 0
0 0 1 1
0 1 0 1
1 1 1 0
1 1
ignore ignore
5 + ( )
2 + ( )
7 + ( )
+
5 + ( )
3 + ( )
+ 2 ( )
2 + ( )
5 ( )
3 ( )
+
5 ( )
7 ( )
+ 2 ( )
Adio e 0u%trao
Complemento de 2
41
Arquitetura e Organizao de Computadores

0 1 0 1
0 0 1 0
5 + ( )
2 + ( )
3 + ( )

1 0 1 1
0 0 1 0

0 1 0 1
1 1 1 0
5 + ( )
7 + ( )

5 ( )
7 ( )
2 + ( )
2 ( )

1 0 1 1
1 1 1 0 2 ( )
5 ( )
3 ( )
Adio e 0u%trao
0inal12agnitude
42
Arquitetura e Organizao de Computadores
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
1 + 1
2 +
3 +
4 +
5 +
6 +
7 +
2
3
4
5
6
7
8
0
Complemento de 2
43
Arquitetura e Organizao de Computadores
+ +
1 0 0 1
0 0 1 0
0 1 1 1
0 0 1 0
7 + ( )
2 + ( )
9 + ( )
+
+
+
1 0 0 1
1 1 1 0
0 1 1 1
1 1 1 0
7 + ( )
5 + ( )
+ 2 ( )
2 + ( )
7 ( )
5 ( )
+
7 ( )
9 ( )
+ 2 ( )
Puando #Q o5er$lo-R
Como detectar se #ou5e o5er$lo-R
O5er$lo- em
Complemento de 2
44
Arquitetura e Organizao de Computadores
+ +
1 0 1 1
1 0 0 1
0 0 1 0
1 0 0 1
0 1 1 1
0 0 1 0
7 + ( )
2 + ( )
9 + ( )
+
+
+
0 1 1 1
1 0 0 1
1 1 1 0
0 1 0 1
0 1 1 1
1 1 1 0
7 + ( )
5 + ( )
+ 2 ( )
1
1
c
4
0 =
c
3
1 =
c
4
0 =
c
3
0 =
c
4
1 =
c
3
1 =
c
4
1 =
c
3
0 =
2 + ( )
7 ( )
5 ( )
+
7 ( )
9 ( )
+ 2 ( )
Puando #Q o5er$lo-R
Como detectar se #ou5e o5er$lo-R
O5er$lo- em
Complemento de 2
4!
Arquitetura e Organizao de Computadores
Um valor pode ter sua representao extendida de
N bits para M bits (com M > N) usando:

Extenso de Sinal

Extenso de Zero
C.tenso de @its
4"
Arquitetura e Organizao de Computadores
O bit de sinal copiado para os bits mais significativos.
O valor do nmero mantido o mesmo.
Exemplo 1:

Representao de 3 com 4-bit = 0011

Representao sign-extended de 3 com 8-bit: 00000011


Exemplo 2:

Representao de -5 com 4-bit = 1011

Representao sign-extended de -5 com 8-bit: 11111011


C.tenso de 0inal
4&
Arquitetura e Organizao de Computadores
Zeros so copiados nos bits mais significativos.
O valor do nmero pode ser alterado.
Exemplo 1:

Valor em 4-bit = 0011

Valor zero-extended com 8-bit: 00000011


Exemplo 2:

Valor em 4-bit = 1011

Valor zero-extended com 8-bit: 00001011


C.tenso de Sero
4'
Arquitetura e Organizao de Computadores
0istema ai.a de =alores
6nsigned M)/ 2
N
-1N
0ignT2agnitude M->2
N11
-1?/ 2
N11
-1N
T-oUs Complement M-2
N11
/ 2
N11
-1N
Representao em 4-bit:
1'
1))) 1))1
1& 1" 1! 14 13 12 11 ) 1 2 3 4 ! " & ' ( 1) 11 12 13 14 1!
1)1) 1)11 11)) 11)1 111) 1111 )))) )))1 ))1) ))11 )1)) )1)1 )11) )111
T-o;s Complement
1)))
1))1 1)1) 1)11 11)) 11)1 111) 1111
))))
)))1 ))1) ))11 )1)) )1)1 )11) )111
1))) 1))1 1)1) 1)11 11)) 11)1 111) 1111 )))) )))1 ))1) ))11 )1)) )1)1 )11) )111
0ignT2agnitude
6nsigned
Comparao
4(
Arquitetura e Organizao de Computadores
Ponto Fixo

Exemplo: 6.75 com 4 bits para inteiros e 4


bits para a frao

Representao de
34meros Reais
!)
Arquitetura e Organizao de Computadores
Ponto Fixo

Exemplo: 6.75 com 4 bits para inteiros e 4


bits para a frao
6 0.75
0110.1100
01101100
2
2
+ 2
1
+ 2
-1
+ 2
-2
= 6.75
OBS.: O ponto binrio no faz parte da notao e implcito
Representao de
34meros Reais
!1
Arquitetura e Organizao de Computadores
Represente -6.5
10
usando uma representao binria de 8 bits (4 inteiro e
4 frao).
6.5 0110.1000

Sinal/magnitude:
11101000

Complemento de 2:
nverte os bits: 10010111
Soma 1 ao lsb: + 1
10011000
Representao de
34meros Reais
!2
Arquitetura e Organizao de Computadores
Vig#17recision ComputationI Applications and C#allenges
David H. Bailey, Lawrence @erWele+ National Laboratory, USA
T#e loating17oint 6nit o$ t#e Xaguar .'" Core
Jeff Rupley, John King, Eric Quinnell, Frank Galloway, Ken Patton, Peter-Michael Seidel, James
Dinh, Hai Bui and Anasua Bhowmik (A2D, USA & ndia)
0plit1pat# used loating 7oint 2ultipl+ ACcumulate >72AC?
Suresh Srinivasan, Ketan Budhiya, Rajaraman Ramanarayanan, P. Sahit Babu, Tiju Jacob, Sanu k.
Mathew, Ram Krishnamurty and Vasantha Errgauntla (Lntel ndia & USA)
76 Yenerator $or Design 0pace C.ploration
Sameh Galal, Ofer Shacham, John S. Brunhaver , Jing Pu, Artem Vassiliev and Mark Horowitz
(0tan$ord University, USA)
!3
Arquitetura e Organizao de Computadores
2anaging Computation/ 7recision/ Accurac+/ and 7er$ormance on C.a0cale 0+stems
ExaScale-level systems may be available in less than a decade. Computer architects are
already thinking of, and planning ways to achieve such levels of performance in the near
future. t can be expected that researchers and engineers will carry out scientific and
engineering computations more complex than ever before, and will attempt breakthroughs
not possible today. f the size of the problems solved on such machines scales accordingly,
we may face new issues related to precision, accuracy, performance, and programmability.
The session consists of three talks:
7recision/ Accurac+/ Rounding/ and Crror 7ropagation
Marius Cornea, Lntel Corporation, USA.
2anaging t#e Dense *inear Alge%ra 0o$t-are 0tacW
Robert A. van de Geijn, University of Texas at Austin, USA.
3umerical Accurac+ and Reproduci%ilit+ at C.a0cale
Hong Diep Nguyen and Jim Demmel, UC @erWele+, USA.
!4
Arquitetura e Organizao de Computadores
Lmpro5ed Arc#itectures $or a loating17oint used Dot 7roduct 6nit
Jongwook Sohn and Earl Swartzlander (UT Austin, USA)
loating 7oint Arc#itecture C.tensions $or Optimized 2atri. actorization
Ardavan Pedram, Robert van de Geijn and Andreas Gerstlauer (UT Austin, USA)
A ast Circuit Topolog+ $or inding t#e 2a.imum o$ n W1%it 3um%ers
Bilgiday Yuce, H. Fatih Ugurdag, Sezer Goren and Gunhan Dundar (Bogazici University,
Ozyegin University & Yeditepe University, TurWe+)
A 3on1*inearT*inear Lnstruction 0et C.tension $or *ig#t-eig#t Cip#ers
Susanne Engels, Elif Bilge Kavun, Hristina Mihajloska, Christof Paar and Tolga Yalcin (Ruhr-
Univ. Bochum, Yerman+ & Ss Cyril and Methodius Univ. Skopje, 2acedonia)
!!
Arquitetura e Organizao de Computadores
A ormall+1=eri$ied C Compiler 0upporting loating17oint Arit#metic
Sylvie Boldo, Jacques-Henri Jourdan, Xavier Leroy and Guillaume Melquiond (Univ. Paris-Sud & NRA
Paris, rance)
ault Detection in R30 2ontgomer+ 2odular 2ultiplication
Julien Eynard, Filippo Gandino and Jean-Claude Bajard (UPMC Paris, France & Politecnico Torino, Ltal+)
T#e unar+ arit#metical algorit#m in %imodular num%er s+stems
Petr Kurka (Charles Univ. Prague, Czech Rep.) and Martin Delacourt (Centro Modelamiento Matematico,
C#ile)
7arallel modular multiplication on multi1core processors
Pascal Giorgi, Laurent mbert and Thomas zard (LRMM Montpellier, rance)
Comparison %et-een %inar+"4 and decimal"4 $loating1point num%ers
Nicolas Brisebarre, Christoph Lauter, Marc Mezzarobba and Jean-Michel Muller (ENS Lyon & UPMC Paris,
rance)
Accurate 7arallel loating17oint Accumulation
Edin Kadric, Paul Gurniak and Andre Dehon (Univ. of Pennsylvania, USA)
!"
Arquitetura e Organizao de Computadores
Tipo 3umrico
!&
Arquitetura e Organizao de Computadores
Operaes aritmticas esto sujeitas a
overflow.
Quando o overflow acontece?

Ao somarmos dois positivos, obtemos um


negativo.

Ao somarmos dois negativos, obtemos um


positivo.

Ao subtrairmos um negativo de um positivo e


obtemos um negativo.

Ao subtrairmos um positivo de um negativo e


obtemos um positivo.
Detectando O5er$lo-
!'
Arquitetura e Organizao de Computadores
O quadro a seguir ilustram estes casos:
Pode ocorrer overflow se B for 0?
Pode ocorrer overflow se A for 0?
Detectando O5er$lo-
!(
Arquitetura e Organizao de Computadores
Se o bit extra gerado, for necessrio, pode
acontecer uma interrupo (exceo):

Ao detectar a interrupo, o controle saltar


para um endereo predefinido para
tratamento da interrupo.

O endereo interrompido salvo para uma


possvel retomada.

No caso do MPS, o endereo de retorno salvo


no registrador EPC (Exception program counter).
C$eitos do O5er$lo-
")
Arquitetura e Organizao de Computadores
Linguagem de programao ou finalidade
da aplicao podem influir para este
comportamento.
No MPS, instrues unsigned no
"detectam overflow.

addu, addiu, subu.


C$eitos do O5er$lo-
"1
Arquitetura e Organizao de Computadores
Representao em
7onto i.o
Adio
Subtrao
Multiplicao
Diviso
Multiplicao por Somas sucessivas
Diviso por Subtraes sucessivas
"2
Arquitetura e Organizao de Computadores
Operao mais complexa do que adio

Na verdade ela representa um conjunto de


adies.
Necessita de mais tempo e mais rea de
silcio para ser implementada.
2ultiplicao
"3
Arquitetura e Organizao de Computadores
2ultiplicao
"4
Arquitetura e Organizao de Computadores
"!
Arquitetura e Organizao de Computadores
Camin#o de Dados
""
Arquitetura e Organizao de Computadores
Multiplicao
mais rpida
Array de somadores

Entrada de cada somador = (bit do


multiplicador && resultado do
somador anterior)
Proporciona:

Entrega os resultados de cada


parcial quase que
simultaneamente.

Proporciona paralelizao.
"&
Arquitetura e Organizao de Computadores
Menos freqente e mais peculiar que a
multiplicao.
Pode ser efetuada atravs de sucessivas
subtraes ou deslocamentos.
Di5iso
"'
Arquitetura e Organizao de Computadores
Di5iso
"(
Arquitetura e Organizao de Computadores
Di5iso
&)
Arquitetura e Organizao de Computadores
Hardware de multiplicao e diviso so
similares.
No entanto, o hardware formado pelo
conjunto de somadores no pode ser
utilizado na diviso.

Por qu?

Na diviso, as sub-operaes so dependentes.

No temos como realizar a prxima etapa at sabermos


o valor do resto.
Di5iso
&1
Arquitetura e Organizao de Computadores
Existem vrias formas de representao que "flutuam a vrgula
mudando o expoente:
Exemplo:

2,14 = 0,0214 x 10
2
= 214 x 10
-2

orma 3ormalizadaI nico dgito diferente de zero antes da
vrgula.

S existe uma forma de representar um nmero.

Em geral, melhor que a forma no normalizada na representao


computacional de nmeros em ponto flutuante.
7onto lutuante
2oti5ao
&2
Arquitetura e Organizao de Computadores
Formato de representao digital de nmeros reais usado
nos PCs.
Na representao normalizada binria h apenas um "1
antes da vrgula.
Tudo armazenado em base 2.
Exemplo:

1,01101x(10)101

Mantissa = 1,01101

Expoente = 101
7onto lutuante
2oti5ao
&3
Arquitetura e Organizao de Computadores
Caso a forma normalizada seja usada, o "1 antes da
vrgula pode ficar implcito economizando um bit. o
chamado %it escondido.
O nmero de bits para representar a mantissa e o
expoente depende da norma.
7onto lutuante
2oti5ao
&4
Arquitetura e Organizao de Computadores
Precisamos de uma maneira para
representar:

Nmeros com fraes, por exemplo, 3,1416

Nmeros muito pequenos, por exemplo,


0,00000001

Nmeros muito grandes, por exemplo,


3,15576 x 10
9
7onto lutuante
&!
Arquitetura e Organizao de Computadores
Representao

Sinal Frao Expoente

Mais bits para a frao fornece mais preciso

Mais bits para o expoente, aumenta o range de


valores.
EEE 754.

Preciso nica : expoente 8 bits, frao 23


bits.

Preciso dupla: expoente 11 bits, frao 52


bits.
7onto lutuante
&"
Arquitetura e Organizao de Computadores
Representao de um nmero de ponto flutuante.
Expoentes negativos no utilizam complemento de 2.
Logo, o nmero em ponto flutuante calculado desta forma:
(-1)
sinal

x frao x 2
(expoente 127)
preciso simples
(-1)
sinal

x frao x 2
(expoente 1023)
preciso dupla
7onto lutuante
&&
Arquitetura e Organizao de Computadores
Operaes aritimticas esto sujeitas a
overflow e underflow.
Underflow

Resultado obtido pequeno demais para ser


representado em um nmero de ponto
flutuante.
7onto lutuante
OperaBes Aritmticas
&'
Arquitetura e Organizao de Computadores
7onto lutuante
Adio
&(
Arquitetura e Organizao de Computadores
Hw: Soma
')
Arquitetura e Organizao de Computadores
7onto lutuante
2ultiplicao
'1
Arquitetura e Organizao de Computadores
Alm do underflow, podemos ter problemas
relativo a forma de arredondamento.
Formas de arredondamento:

Sempre arredondar para cima.

Sempre arredondar para baixo.

Truncamento.

Arredondar para o prximo par.


7onto lutuante
Arredondadmento
'2
Arquitetura e Organizao de Computadores
Como lidar:

Uso de 3 bits adicionais

Bit guarda

Utilizado para melhorar a preciso do arredonamento.

Bit arredondamento

Utilizado para encontrar o nmero mais prximo que


possa ser representado no formato.

Stick bit

Utilizado para verificar se existe algum bit diferente de 0


aps o bit de arredondamento.
7onto lutuante
Arredondadmento
'3
Arquitetura e Organizao de Computadores
At a dcada de 1980, cada fabricante de computador
tinha seu prprio formato de representao de ponto
flutuante.
EEE: Institute of Electrical and Electronic Engineers.
Organizao composta por engenheiros, cientistas e
estudantes, que desenvolvem padres para a indstria de
computadores e eletro-eletrnicos.
O padro EEE 754 foi inventado para padronizar essa
forma de representao.
7onto lutuante
LCCC &!411('!
'4
Arquitetura e Organizao de Computadores
A primeira verso desse padro data de 1985 e perdurou
por 23 anos at ser substituda em Agosto de 2008 por
uma outra verso da EEE 754.
Padro mais usado para computao de ponto flutuante
Formatos e aritmtica binria so preservados no EEE
754-2008
7onto lutuante
LCCC &!411('!
'!
Arquitetura e Organizao de Computadores
4 formatos de representao de valores de ponto flutuante:

Preciso simples (32 bits)

Preciso dupla (64 bits)

Preciso simples estendida (>= 43 bits, no comumente


usada)

Preciso dupla estendida (>= 79 bits, usualmente


implementada com 80 bits)
Apenas a preciso simples requerida pelo padro, as
outras so opcionais.
7onto lutuante
LCCC &!411('!
'"
Arquitetura e Organizao de Computadores
Polarizao do Expoente

O expoente polarizado por:

(2
e-1
)-1

e: Nmero de bits do expoente

Representao de um nmero com expoente 25 numa


representao com 8 bits para expoente:
25 + (2
8-1
)-1 = 25 + 128 -1 = 152

A polarizao realizada pois os expoentes tm que


possuir valores com sinal para poder representar valores
grandes e pequenos. Portanto, o expoente polarizado
antes de ser armazenado ajustando seu valor para coloc-
lo dentro de uma faixa sem sinal, adequado para
comparao.
7onto lutuante
LCCC &!411('!
'&
Arquitetura e Organizao de Computadores
O bit mais significativo da mantissa no armazenado, porm ele pode
ser determinado pelo valor do expoente polarizado.
Casos
1. Se 0 < expoente < 2
e
-1, ento o bit mais significativo 1 e o nmero dito
normalizado.
2. Expoente = 0 e Mantissa = 0, nmero no normalizado.
3. Expoente = 0 e Mantissa = 0, 0 depende do bit de sinal.
4. Expoente =
e
-! e Mantissa = 0, depende do bit de sinal.
5. Expoente =
e
-! e Mantissa = 0, NaN.
7onto lutuante
LCCC &!411('!
''
Arquitetura e Organizao de Computadores
Preciso simples
Polarizado com 127

Expoente vai de -126 a +127.

-127 no pode pois significa nmero no normalizado ou zero.

128 seria polarizado para 255, no pode pois NaN ou infinito


O valor do nmero :
v= s x 2
e
x m
7onto lutuante
LCCC &!411('!
'(
Arquitetura e Organizao de Computadores
Exemplo:

Como representar o nmero -118.625 no


padro EEE 754?
7onto lutuante
LCCC &!411('!
()
Arquitetura e Organizao de Computadores
Exemplo:
Para transformar de volta:
Bit 1 no sinal indica nmero negativo.
Expoente 10000101 = 133
10
Portanto o valor antes da polarizao era:

x + (2
8-1
)-1 = 133

x + 127 = 133

x = 6
Com o bit escondido temos a mantissa:

1.110110101 x 2
6 =
1110110.101 = 118.625
Como o bit de sinal representa um nmero negativo temos:

-118.625
7onto lutuante
LCCC &!411('!
(1
Arquitetura e Organizao de Computadores
Preciso dupla
Essencialmente a mesma coisa da preciso
simples s que os campos so maiores.
Polarizado com 1023
7onto lutuante
LCCC &!411('!
(2
Arquitetura e Organizao de Computadores
Arredondamento

4 modos de arredondamento

Padro
1. Arredondamento para o mais prximo:
Ties to Even: Se o nmero cai no meio, ele arredondado para o valo mais
prximo com um 0 no bit menos significativo.
Ties awa" from zero: se o nmero cai no meio ele arredondado para o
valor mais prximo para cima (para nmeros positivos) ou para baixo (para
nmeros negativos).

Arredondamentos direcionados
1. Arredondamento para 0: Truncamento
2. Arredondamento para +: Arredonda direcionado para +
3. Arredondamento para -: Arredonda direcionado para -
7onto lutuante
LCCC &!411('!
(3
Arquitetura e Organizao de Computadores
nclui praticamente todo o EE 754-1985 e o EE 854-1987
que generalizava o EEE 754-1985 para cobrir aritmtica
decimal alm da binria.
Define:

Formatos Aritmticos

Formatos de ntercmbio

Algoritmos de Arredondamento

Operaes

Manuseio de Excees
7onto lutuante
LCCC &!412))'
(4
Arquitetura e Organizao de Computadores
OperaBes

As operaes requeridas pela norma so:


Operaes Aritmticas(adio, subtrao, multiplicao, diviso,
raiz quadrada, etc.)
Converses (entre formatos)
Dimensionamento e quantificao
Cpia e manipulamento do sinal (abs, negate, etc.)
Classificao e teste para NaNs
Testes e definio de sinalizadores
Operaes diversas

Uma nova clusula dessa norma recomenda 50 operaes


incluindo log, potenciao, etc. Porm todas so opcionais.
7onto lutuante
LCCC &!412))'
(!
Arquitetura e Organizao de Computadores
Manuseio de Exceo

5 tipos de exceo, cada uma possui um sinalizador de


status correspondente que levantado quando a exceo
ocorre.
Operao nvlida. C.I Raiz quadrada de nmero negativo
Diviso por zero
Overflow
Underflow

nexatido
7onto lutuante
LCCC &!412))'
("
Arquitetura e Organizao de Computadores
Reproduci%ilidade

O EEE 754-1985 permitia vrias variaes de


implementaes
Codificao de alguns valores

Deteco de algumas excees

O EE 754-2008 "enxugou vrias dessas, porm algumas


variaes ainda existem (especialmente para formatos
binrios)

A norma recomenda que os padres de linguagem devem


prover meios de escrever programas reproduzveis e
descreve o que deve ser feito para atingir isso.
7onto lutuante
LCCC &!412))'
(&
Arquitetura e Organizao de Computadores
Computadores lidam com formatos
numricos de ponto fixo e ponto flutuante
1985: Uso do padro EEE 754

aumenta a portabilidade dos programas que


trabalham com nmeros nesse formato

melhorar a qualidade das operaes


aritmticas realizadas
Representao utilizando
7onto lutuante
('
Arquitetura e Organizao de Computadores

Sinal: 1 bit (bit 31)

Expoente: 8 bits (bits 30 23)

Mantissa: 23 bits (bits 22 0)

Representao Geral:
>11?
sinal
. mantissa . 2
e.poente
Representao utilizando
7onto lutuante
((
Arquitetura e Organizao de Computadores
Forma Normalizada:

nmero no possui dgito no significativo na


representao

contm 24 bits e no 23 (primeiro dgito


sempre 1 e implcito)

aumenta a preciso dos nmeros


Representao:
>11?
sinal
. >1 : mantissa? . 2
e.poente
Representao utilizando
7onto lutuante
1))
Arquitetura e Organizao de Computadores
Expoente em nota#$o com peso

Peso = nmero a ser subtrado do valor


representado no expoente de maneira a
representar o valor real do expoente
Valor = 127
10

Facilidade para ordenaes a partir de


comparaes inteiras
Nova Representao:
>11?
sinal
. >1 : mantissa? . 2
>e.poente H peso?
Representao utilizando
7onto lutuante
1)1
Arquitetura e Organizao de Computadores
Representao utilizando
7onto lutuante
1)2
Arquitetura e Organizao de Computadores
Representao utilizando
7onto lutuante
1)3
Arquitetura e Organizao de Computadores
Estrutura Geral
1)4
Arquitetura e Organizao de Computadores
76 Lnternamente
1)!
Arquitetura e Organizao de Computadores
1)"
Arquitetura e Organizao de Computadores
1)&
Arquitetura e Organizao de Computadores
1)'
Arquitetura e Organizao de Computadores
1)(
Arquitetura e Organizao de Computadores
11)
Arquitetura e Organizao de Computadores
S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF
31 30 23 22 1 0
Sign bit Biased Exponent Significand
Bits

Bit 31 for sign

S=1 for negative numbers, 0 for positive numbers

Bits 23-30 for biased exponent

The real exponent = E 127

127 is calle bias!

Bits 0-22 for significand


LCCC &!4
0ingle 7recision
111
Arquitetura e Organizao de Computadores
LCCC &!4
0ingle 7recision
Subnormal numbers reduce the chance of underflow.

Without subnormal numbers, the smallest positive


number is 2
127

With subnormal numbers, the smallest positive


number is 0.00000000000000000000001 *2
-126

=2
(126+23)
=2
-149
112
Arquitetura e Organizao de Computadores
Lmplementing 7 Addition
%+ 0o$t-are
How to implement x+y where x and y are two single precision
FP numbers?
Step 1: Convert x and y into EEE format
Step 2: Align two significands if two exponents are different.

"et e1 an e2 are the exponents of x an #, respectivel#, an


assume e1$ e2! Shift the significant %incluing the implicit 1& of #
right e1e2 bits to compensate for the change in exponent!
Step 3: Add two (adjusted) significands.
Step 4: Normalize the result.
113
Arquitetura e Organizao de Computadores
How to implement x+y where x=2.625 and y= 4.75?
Step 1: Convert x and y into EEE format
x=2.625 10.101 (Binary)
1.0101 * 2
1
(Normal form)
1.0101 * 2
128
(EEE format)
0 10000000 01010000000000000000000
Comments: The fractional part can be converted by multiplication.
(This is the inverse of the division method for integers.)
0.625 2 = 1.25 1 ( the most significant bit in fraction)
0.25 2 = 0.5 0
0.5 2 = 1.0 1 ( the least significant bit in fraction)
114
Arquitetura e Organizao de Computadores
How to implement x+y where x=2.625 and y= 4.75?
Step 1: Convert x and y into EEE format
x=2.625 10.101 (Binary)
1.0101 * 2
1
(Normal form)
1.0101 * 2
128
(EEE format)
0 10000000 01010000000000000000000
Comments: The fractional part can be converted by multiplication.
(This is the inverse of the division method for integers.)
0.625 2 = 1.25 1 ( the most significant bit in fraction)
0.25 2 = 0.5 0
0.5 2 = 1.0 1 ( the least significant bit in fraction)
11!
Arquitetura e Organizao de Computadores
y= 4.75 100.11 (Binary)
1.0011 * 2
2
(Normal form)
1.0011 * 2
129
(EEE format)
1 10000001 00110000000000000000000
Step 2: Align two significands.
The significand of x = 1.0101 0.10101 (After
shift right 1 bit)
'omments( x=0!10101)2
12*
an #= 1!0011 )2
12*

after the alignment!
11"
Arquitetura e Organizao de Computadores
Step 3: Add two (adjusted) significands.
0.10101 The adjusted significand of x
1.00110 The significand of y
= 0. 10001 The significand of x+y
Step 4: Normalize the result.
Result = 0. 10001 * 2
129
1.0001 * 2
128

1 10000000 00010000000000000000000
(Normal form)

Você também pode gostar