poglavlje 8 računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · područje fp brojeva...
TRANSCRIPT
![Page 1: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/1.jpg)
Organizacija i arhitektura računala
Poglavlje 8Računalna aritmetika
![Page 2: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/2.jpg)
Aritmetiko-logička jedinica
Radi razne izračuneSve ostale jedinice u računalu su tamo da služe ALU jediniciRadi samo sa cijelim brojevimaMože raditi i sa brojevima sa pomićnim zarezom – FloatPoint NumbersMože biti kao zasebna jedinica – matematički koprocesorMože biti kao odvojena jedinica – fizički odvojeni FPU (486DX +)
![Page 3: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/3.jpg)
ALU Ulazi i zlazi
![Page 4: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/4.jpg)
Prezentacija cijelog broja
Sa pomoću 0 i 1 se može prikazati bilo koji brojSamo pozitivni brojevi – “čisti” binarni format
npr. 146=10010010
nema preznaka “-” – negativnih brojevanema decimalne točkemogućnost predznakadvostruki komplement
![Page 5: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/5.jpg)
Predznak
MSB bit rezerviran za predznak0 znači pozitivan broj1 znači negativan broj+18 = 00010010-18 = 10010010Problemi:
Treba voditi računa i o predznaku i o apsolutnoj vrijednosti broja u aitmetičkim operacijamadva načina zapisivanja broja nula (+0 i -0)
![Page 6: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/6.jpg)
Dvostruki komplement
+3 = 00000011+2 = 00000010+1 = 00000001+0 = 00000000-1 = 11111111-2 = 11111110-3 = 11111101
![Page 7: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/7.jpg)
Korist dvostrukog komplementa
Samo jedan način prikaza broja 0Jednostavnija matematikaOperacija negacije je vrlo jednostavna
3 = 00000011Booleov komplement 11111100Dodati 1 LSB bitu 11111101
![Page 8: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/8.jpg)
Geometrijski prikaz dvostrukog komplementa cijelog broja
![Page 9: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/9.jpg)
Specijalni slučaj negacije - 1
0 = 00000000Bitwise not 11111111Add 1 LSB bitu +1Rezultat 1 00000000Overflow se ignorira, tako da imamo:- 0 = 0 √
![Page 10: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/10.jpg)
Specijalni slučaj negacije - 2
-128 = 10000000bitwise not 01111111Add 1 LSB bitu +1Rezultat 10000000Dobijemo:-(-128) = -128 XObratiti pažnju na MSB bit (bit predznaka)a treba se promijeniti tijekom negacije
![Page 11: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/11.jpg)
Raspon skupa brojeva
8 bitni dvostruki komplement+127 = 01111111 = 27 -1-128 = 10000000 = -27
16 bitni dvostruki komplement+32767 = 011111111 11111111 = 215 - 1-32768 = 100000000 00000000 = -215
![Page 12: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/12.jpg)
Konverzije brojeva s obzirom na njihovu binarnu dužinu
Pozitivni brojevi pakirani sa vodećim nulama -leading zeros+18 = 00010010+18 = 00000000 00010010Negativni brojevi pakirani sa vodećim jedinicama - leading ones-18 = 10010010-18 = 11111111 10010010npr. pakiranje sa MSB bitom (predznakom)
![Page 13: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/13.jpg)
Zbrajanje i oduzimanje
Normalno binarno zbrajanjeGleda se overflow bit u slučaju preljeva
Operacija oduzimanja svodi se na operaciju zbrajanja pozitivnog broja a i negativnog broja b
a - b = a + (-b)
tako da samo trebamo operaciju zbrajanja i jedinicu za negaciju/komplement
![Page 14: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/14.jpg)
Hardwersko zbrajanje i oduzimanje
![Page 15: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/15.jpg)
Množenje
To je kompleksna operacijaRadi se na način da se za svaki bit/znamenku izračunava samo dio umnoška i na kraju dijelovi umnoška se zbrajaju
slično kao i množenje u decimalnom sustavu –metoda potpisivanja množaka
![Page 16: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/16.jpg)
Primjer množenja
1011 Multiplikand (11 dec)x 1101 Multiplikator (13 dec)
1011 djelomični umnožak0000 Važno: ako je multiplikatorski bit 1 onda samo kopiraj
1011 multiplikand1011 inače nula10001111 umnožak (143 dec)Važno: Rezultat je dvostruke duljine nego li su to operandi
![Page 17: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/17.jpg)
Binarno množenje bez predznaka
![Page 18: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/18.jpg)
Postupak izvršenja operacije množenja - primjer
![Page 19: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/19.jpg)
Dijagram toka postupka binarnog množenja bez predznaka
![Page 20: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/20.jpg)
Množenje negativnih brojeva
Ovo ne ide, ne može se!Rješenje 1
Ako je potrebno onda se negativni broj pretvori u pozitivnimnože se normalnim postupkomako su predznaci operanada različiti tada je rezultat negativan broj
Rješenje 2Booth-ov algoritam
![Page 21: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/21.jpg)
Booth-ov algoritam
![Page 22: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/22.jpg)
Primjer Booth-ovog algoritma
![Page 23: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/23.jpg)
Dijeljenje
još složenije od množenjaNegativni brojevi stvarno mogu biti problem!Postupak se temelji na postupcima dugotrajnog i zahtjevnog djeljenja
![Page 24: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/24.jpg)
001111
Djeljenje binarnog broja bez predznaka
1011
00001101
100100111011
0011101011
1011100
Quotient
Dividend
Remainder
PartialRemainders
Divisor
![Page 25: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/25.jpg)
Realni brojevi
Brojevi sa decimalnom točkomMogu se izvesti u gormi čistog binarnog broja
1001.1010 = 24 + 20 +2-1 + 2-3 =9.625
gdje je tu decimalna točka?Fiksna decimalna točka?
Vrlo ograničeni brojevni skup
Pomična decimalna točka?Kako je postavljena i gdje je ta točka?
![Page 26: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/26.jpg)
Brojevi sa pomičnim zarezom
+/- .significand x 2exponent
Točka je zapravo fiksirana između znaka predznaka i ostatka brojaEksponent otkriva područje potencije prikazanog broja
Sign
bit
BiasedExponent
Significand or Mantissa
![Page 27: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/27.jpg)
Primjer broja sa pomičnim zarezom
![Page 28: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/28.jpg)
Predznaci za float-brojeve
Mantissa je pohranjena u formatu dvostrukog komplementaKako je zapisan i što znači eksponentni dio
npr. eksponent (bias) 128 znači8 bit eksponentčija vrijednost može biti od 0-255i oduzima mu se 128 da bi se dobila korektna vrijednost eksponentapodručje vrijednosti je -128 do +127
![Page 29: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/29.jpg)
Normalizacija
FP su uobičajeno normaliziraninpr. eksponent je tako podešen da je MSB mantisejedinica (1)Budući da je on uvijek 1, tada taj bit nije potrebno sprematiprimjer; znanstveni način zapisivanja brojeva je takav da je normaliziran na način da se uvijek dobije broj koji ispred zareza ima samo jednu brojku
npr. 3.123 x 103)
![Page 30: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/30.jpg)
Područje FP brojeva
Za 32 bitne brojeve to je:8 bit eksponent+/- 2256 ≈ 1.5 x 1077
Točnost je...ovosi o promjenjivosti LSB-a mantisse23 bitna mantissa 2-23 ≈ 1.2 x 10-7
oko 6 decimalnih mjesta
![Page 31: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/31.jpg)
Područja korektnog prikaza brojeva
![Page 32: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/32.jpg)
IEEE 754
Standard za FP pohranu/zapis brojeva32 i 64 bitni standard8 i 11 bitni eksponentProšireni format format (i mantissa i eksponent)
![Page 33: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/33.jpg)
FP aritmetika +/-
Provjera prisutnosti nule (broj 0)Podešavanje eksponenataZbrajanje ili oduzimanjeNormalizacija rezultata
![Page 34: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/34.jpg)
FP aritmetika x/÷
Provjera prisutnosti nulezbrajanje/oduzimanje eksponenatamnoženje/dijeljenje signifikanada – paziti na predznakNormalizacijaZaokruživanjeSvi rezultati trebaju biti dvostruke duljine nego li su to operandi/signifikandi
![Page 35: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/35.jpg)
FPMnoženje
![Page 36: Poglavlje 8 Računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · Područje FP brojeva aZa 32 bitne brojeve to je: `8 bit eksponent `+/- 2256 ≈1.5 x 1077 aTočnost je](https://reader033.vdocuments.site/reader033/viewer/2022041502/5e22c3eb246fde33975f2d5e/html5/thumbnails/36.jpg)
FPDijeljenje