Upload
vuanh
View
224
Download
0
Embed Size (px)
Citation preview
Kako smo do sada predstavljali brojeve?
Računari su namenjeni radu s brojevima
Koje brojeve možemo predstaviti sa N bita?
Unsigned integers:0 to 2N - 1
Signed integers (komplement dvojke)-2(N-1) to 2(N-1) - 1
Možemo posmtrati kao zapis sa fiksnom pozicijom tačke na poslednjem mestu
Šta sa ostalim brojevima?
Kako predstaviti Veoma velike brojeve? (broj sekundi u veku)
3,155,760,00010 (3.1557610 x 109)
Veoma male brojeve? (prečnik atoma)0.0000000110 (1.010 x 10-8)
Racionalne brojeve 2/3 (0.666666666. . .) Iracionalni brojeve 21/2
(1.414213562373. . .) Transcedentalne brojeve e (2.718...), (3.141...)
Svi su zastupljeni u praktičnoj primeni
Dogovorom tačku fiksno pomerimo na određenu poziciji
Sa 32 bita i zarezom na sredini: Opseg
Signed -32768 do ≈32767 Unsigned 0 do ≈65536
Rezolucija (najmanji korak/kvant): ≈15.26 x 10-6
Jednostavno rešenje - fixed point
Fixed point
Koristimo celobrojnu ALU Sabiranje/oduzimanje direktno Množenje
Važi ukoliko nema prekoračenja opsega (overflow)
Rešenje?
Dinamički opseg (odnos najvećeg i najmanjeg broja) definisan na isti način kao i za integer
20log10(2(N-1)) = 6dB*(N-1) Za N=32 signed DNR ≈ 187dB
Često nedovoljan u naučnim primenama Koliko je bita potrebno za istovremeno predstavljanje
1x1020 1x10-20
Odgovor: log2(max/min) ≈ 133
VEOMA SKUPO
Eksponencijalna notacija (decimalna)
Reprezentacije se razlikuju u poziciji decimalne tačke (zareza) – “tačka pliva” levo ili desno (praćeno promenom vrednosti eksponenta).
Ekvivalentne reprezentacije broja 1234 123400.0 x 10-2
12340.0 x 10-1
1234.0 x 100
123.4 x 101
12.34 x 102
1.234 x 103
0.1234 x 104
123400.0 x 10-2
12340.0 x 10-1
1234.0 x 100
123.4 x 101
12.34 x 102
1.234 x 103
0.1234 x 104
Normalizovana forma:• nema vodećih nula• tačno jedna cifra levo od decimalne tačke
Elementi broja u pokretnom zarezu
-1.3274 x 10-2
Znak mantise
Pozicija decimalne tačkeMantisa
Eksponent
Znakeksponenta
Osnova (baza)
Normalizovana forma
Eksponencijalna notacija – dec vs bin
Računari rade isključivo sa binarnim ciframa
3.12510 x 101 31.2510
1.1111012 x 24 11111.01224 23 22 21 20 2-1 2-2
4
1
IEEE 754 Standard
Najrašireniji standard za reprezentaciju brojeva u pokretnom zarezu
Single precision: 32 bita, sastoji se od... Znak bit (1 bit) Eksponent (8 bita) Mantisa (23 bita)
Double precision: 64 bita, sastoji se od… Znak bit (1 bit) Eksponent (11 bita) Mantisa (52 bita)
Single precision format
float tip u C-u Mantisa je normalizovana Sadrži “skriveni bit” sa leve strane Skriveni bit uvek ima vrednost 1 Primer:
manitsa predstavlja
Eksponent Mantisa
32 bita
Znak1 bit 8 bit 23 bit
10100000000000000000000
1.1012 = 1.62510
Single precision format
Eksponent je neoznačen Koristi takozvanu pomerenu notaciju (eng.
biased notation) Realnu vrednost eksponenta dobijamo
oduzimanjem ofset vrednosti od sačuvane vrednosti
SP offset 127 FP offset 1023
Primer: eksponent predstavlja
10000011
131 - 127 = 4
Normalizovane vrednosti
Single precision
Važi za vrednosti polja eksponenta [1..254], takozvane normalizovane vrednosti
0 10000010 11000000000000000000000
1.112
130 – 127 = 3
0 = pozitivna mantisa
+1.112 x 23 = 1110.02 = 14.010
Denormalizovane vrednosti
Uslov Vrednost polja eksponenta je 000…0
Vrednosti Realna vrednost eksponenta je E = -ofset + 1 Skriveni bit ima vrednost 0
Slučajevi Mantisa je 000…0
Predstavlja vrednost 0 Dve oznake za 0 (+0 i -0)
Mantisa različita od 000…0 Brojevi bliski nuli Gubitak preciznosti sa smanjenjem vrednosti
Specijalne vrednosti
Uslov Vrednost polja eksponenta je 111…1
Slučajevi Mantisa je 000…0
Predstavlja vrednost ∞ (beskonačno) Zamena za prekoračenje Primeri: 1.0/0.0 = 1.0/0.0 = +∞, 1.0/-0.0 = -∞
Mantisa različita od 000…0 Nije brojna vrednost - Not-a-Number (NaN) Slučajevi kada numerička vrednost nije
određena Primeri: sqrt(–1), ∞ - ∞
Raspored vrednosti
-15 -10 -5 0 5 10 15
Row 16 Row 18 Row 20
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Row 16 Row 18 Row 20
Primer: 6-bitni format• 3 bita eksponent• 2 bita mantisa
Osobine
Poređenje FP vrednosti Gotovo da se može koristiti unsigned integer
poređenje Moraju se prvo porediti znaci Problematične ne-brojne vrednosti (NaN)
Preciznost Širina mantise
Dinamički opseg Širina eksponenta
SP: 1.4x10–45 3.4x10+38 DNR ≈ 1668dB
DP: 4.9x10–324 1.8x10+308 DNR > 12000dB
Specifičnosti
Sabiranje nije asocijatovno! Probajte u Matlab || Octave || Python || Julia.
Single precision Niz: 1x106, -1x106 , 1x10-1
Nepostojanje klasičnog overflow-a Moguć underflow Operacije znatno složenije za
implementaciju (skuplje) u odnosu na odgovarajuće celobrojne
Često nisu zastupljene u procesorima namenjenim embedded sistemima
Microblaze FP aritmetika
Opciona FPU HW podrška za IEEE754 single precision Dva nivoa složenosti
Sabiranje, oduzimanje, množenje, deljenje, poređenja Kvadratni koren, konverzija (int float)
Ne nudi podršku ze denormalizovane operande
Potrebno pažljivo kodovanje kako bi se iskoristila HW akceleracija
Za više detalja pogledati MicroBlaze Processor Reference Guide