ARS CH 8 - Aritmetika

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 36

Organizacija i arhitektura

računala

Poglavlje 8
Računalna aritmetika
Aritmetiko-logička jedinica

a Radi razne izračune


a Sve ostale jedinice u računalu su tamo da služe ALU
jedinici
a Radi samo sa cijelim brojevima
a Može raditi i sa brojevima sa pomićnim zarezom – Float
Point Numbers
a Može biti kao zasebna jedinica – matematički koprocesor
a Može biti kao odvojena jedinica – fizički odvojeni FPU
(486DX +)
ALU Ulazi i zlazi
Prezentacija cijelog broja

aSa pomoću 0 i 1 se može prikazati bilo koji broj


aSamo pozitivni brojevi – “čisti” binarni format
`npr. 146=10010010
anema preznaka “-” – negativnih brojeva
anema decimalne točke
amogućnost predznaka
advostruki komplement
Predznak

aMSB bit rezerviran za predznak


a0 znači pozitivan broj
a1 znači negativan broj
a+18 = 00010010
a -18 = 10010010
aProblemi:
`Treba voditi računa i o predznaku i o apsolutnoj
vrijednosti broja u aitmetičkim operacijama
`dva načina zapisivanja broja nula (+0 i -0)
Dvostruki komplement

a+3 = 00000011
a+2 = 00000010
a+1 = 00000001
a+0 = 00000000
a -1 = 11111111
a -2 = 11111110
a -3 = 11111101
Korist dvostrukog komplementa

aSamo jedan način prikaza broja 0


aJednostavnija matematika
aOperacija negacije je vrlo jednostavna
`3 = 00000011
`Booleov komplement 11111100
`Dodati 1 LSB bitu 11111101
Geometrijski prikaz dvostrukog
komplementa cijelog broja
Specijalni slučaj negacije - 1

a0= 00000000
aBitwise not 11111111
aAdd 1 LSB bitu +1
aRezultat 1 00000000
aOverflow se ignorira, tako da imamo:
a- 0 = 0 √
Specijalni slučaj negacije - 2

a-128 = 10000000
abitwise not 01111111
aAdd 1 LSB bitu +1
aRezultat 10000000
aDobijemo:
a-(-128) = -128 X
aObratiti pažnju na MSB bit (bit predznaka)
aa treba se promijeniti tijekom negacije
Raspon skupa brojeva

a8 bitni dvostruki komplement


`+127 = 01111111 = 27 -1
` -128 = 10000000 = -27
a16 bitni dvostruki komplement
`+32767 = 011111111 11111111 = 215 - 1
` -32768 = 100000000 00000000 = -215
Konverzije brojeva s obzirom na
njihovu binarnu dužinu

aPozitivni brojevi pakirani sa vodećim nulama -


leading zeros
a+18 = 00010010
a+18 = 00000000 00010010
aNegativni brojevi pakirani sa vodećim jedinicama
- leading ones
a-18 = 10010010
a-18 = 11111111 10010010
anpr. pakiranje sa MSB bitom (predznakom)
Zbrajanje i oduzimanje

aNormalno binarno zbrajanje


aGleda se overflow bit u slučaju preljeva

aOperacija oduzimanja svodi se na operaciju


zbrajanja pozitivnog broja a i negativnog broja b
` a - b = a + (-b)

atako da samo trebamo operaciju zbrajanja i


jedinicu za negaciju/komplement
Hardwersko zbrajanje i
oduzimanje
Množenje

aTo je kompleksna operacija


aRadi 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
Primjer množenja

a 1011 Multiplikand (11 dec)


a x 1101 Multiplikator (13 dec)
a 1011 djelomični umnožak
a 0000 Važno: ako je multiplikatorski bit 1 onda samo kopiraj

a 1011 multiplikand
a 1011 inače nula
a 10001111 umnožak (143 dec)
a Važno: Rezultat je dvostruke duljine nego li su
to operandi
Binarno množenje bez predznaka
Postupak izvršenja operacije
množenja - primjer
Dijagram toka postupka binarnog
množenja bez predznaka
Množenje negativnih brojeva

aOvo ne ide, ne može se!


aRješenje 1
`Ako je potrebno onda se negativni broj pretvori u
pozitivni
`množe se normalnim postupkom
`ako su predznaci operanada različiti tada je rezultat
negativan broj
aRješenje 2
`Booth-ov algoritam
Booth-ov algoritam
Primjer Booth-ovog algoritma
Dijeljenje

ajoš složenije od množenja


aNegativni brojevi stvarno mogu biti problem!
aPostupak se temelji na postupcima dugotrajnog
i zahtjevnog djeljenja
Djeljenje binarnog broja bez
predznaka

00001101 Quotient
Divisor 1011 10010011 Dividend
1011
001110
Partial 1011
Remainders
001111
1011
100 Remainder
Realni brojevi

aBrojevi sa decimalnom točkom


aMogu se izvesti u gormi čistog binarnog broja
`1001.1010 = 24 + 20 +2-1 + 2-3 =9.625
agdje je tu decimalna točka?
aFiksna decimalna točka?
`Vrlo ograničeni brojevni skup
aPomična decimalna točka?
`Kako je postavljena i gdje je ta točka?
Brojevi sa pomičnim zarezom
Sign bit

Biased Significand or Mantissa


Exponent

a+/- .significand x 2exponent


aTočka je zapravo fiksirana između znaka
predznaka i ostatka broja
aEksponent otkriva područje potencije prikazanog
broja
Primjer broja sa pomičnim zarezom
Predznaci za float-brojeve

aMantissa je pohranjena u formatu dvostrukog


komplementa
aKako je zapisan i što znači eksponentni dio
`npr. eksponent (bias) 128 znači
`8 bit eksponent
`čija vrijednost može biti od 0-255
`i oduzima mu se 128 da bi se dobila korektna
vrijednost eksponenta
`područje vrijednosti je -128 do +127
Normalizacija

a FP su uobičajeno normalizirani
a npr. eksponent je tako podešen da je MSB mantise
jedinica (1)
a Budući da je on uvijek 1, tada taj bit nije potrebno
spremati
a primjer; 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)
Područje FP brojeva

aZa 32 bitne brojeve to je:


`8 bit eksponent
`+/- 2256 ≈ 1.5 x 1077
aTočnost je...
`ovosi o promjenjivosti LSB-a mantisse
`23 bitna mantissa 2-23 ≈ 1.2 x 10-7
`oko 6 decimalnih mjesta
Područja korektnog prikaza brojeva
IEEE 754

aStandard za FP pohranu/zapis brojeva


a32 i 64 bitni standard
a8 i 11 bitni eksponent
aProšireni format format (i mantissa i eksponent)
FP aritmetika +/-

aProvjera prisutnosti nule (broj 0)


aPodešavanje eksponenata
aZbrajanje ili oduzimanje
aNormalizacija rezultata
FP aritmetika x/÷

aProvjera prisutnosti nule


azbrajanje/oduzimanje eksponenata
amnoženje/dijeljenje signifikanada – paziti na
predznak
aNormalizacija
aZaokruživanje
aSvi rezultati trebaju biti dvostruke duljine nego li
su to operandi/signifikandi
FP
Množenje
FP
Dijeljenje

You might also like