poglavlje 8 računalna aritmetikamrkve.etfos.hr/pred/orasje/ar/pred09.pdf · područje fp brojeva...

36
Organizacija i arhitektura računala Poglavlje 8 Računalna aritmetika

Upload: others

Post on 29-Nov-2019

0 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FPDijeljenje