You are on page 1of 20

1.

Grada racunala

1. Funkcijski opis racunala, von Neumannov model racunala

U digitalnoj elektronici nauili smo na koji se sve nain mogu izgraditi pojedic c nani digitalni elektroniki sklopovi koji slu e pohranjivanju i obradbi raznovrsnih c c z podataka. Nauili smo da se pojedinani bitovi mogu pohranjivati u bistabile, a c c nizovi bitova u registre. Nizovi bitova mogu se promatrati kao k dovi za predstavo ljanje brojeva i znakova. Znamo, nadalje, da se s pomo u logikih sklopova mogu c c izgraditi sklopovi pretvorbe kodova, za zbrajanje i oduzimanje brojeva i op enito c za obavljanje raznovrsnih aritmetikih operacija s binarno kodiranim brojevima. c Prisjetimo se tog gradiva koje smo izuavali u prethodnim razredima i neka nam c c pri ruci bude ud benik koji to gradivo obraduje1. Tijekom izuavanja gradiva koje z slijedi morat cemo u nju ce ce zaviriti. s Od digitalnih elektronikih sklopova mogu se sastaviti manji ili ve i elektroc c niki uredaji koji obavljaju neku konkretnu nama korisnu funkciju. Prije izgradnje c takve elektronike naprave ili uredaja moramo unaprijed utvrditi do zadnjeg c detalja svaku pojedinanu funkciju. Nakon sto smo sve to detaljno utvrdili, c mo emo pristupiti najprije projektiranju, a zatim izgradnji naprave. z Pokazalo se da se za izgradnju raznovrsnih naprava mo e koristiti ve gotovo z c sklopovlje sastavljeno u obliku raunala, s tim da se pojedine funkcije u njemu c o ivotvoruju njegovim programiranjem. Dana nje mogu nosti mikroelektronike z s c c tehnologije omogu uju ekonominu proizvodnju raunalnog sklopovlja, tako da c c c se mogu izgraditi raznovrsna raunala prilagodena po svojim mogu nostima, a i c c po cijeni, vrlo raznolikim potrebama. Bez obzira da li se radi o malom raunalu ugradenom u daljinski upravlja c c televizora, o osobnom raunalu ili o velikom raunalu koje slu i za neka slo ena c c z z
1

Stanko Paunovi, Digitalna elektronika, Skolska knjiga, Zagreb, 1995 c

1.1. FUNKCIJSKI OPIS RACUNALA , VON NEUMANNOV MODEL RACUNALA

aritmetiko-logike jedinke. Preko izlaznog dijela rezultati izraunavanja prenose c c c se u okolinu. c Iz memorije upravlja ka3 jedinka dohva a instrukcije i na temelju njih upravc lja preostalim dijelovima raunala. Upravljaka jedinka odreduje koju ce operaciju c c 4 izvesti aritmeti ko-logi ka jedinka . c c Upravljaka jedinka i aritmetiko-logika jedinka spregnute su dana njim rac c c s cunalima u jednu cjelinu i, dodatno, s jednim skupom registara cine procesor. Procesor je automatski, strojni izvoditelj niza instrukcija koje zovemo programom. Mi znamo da se dana njom mikroelektronikom tehnologijom na milijune s c si u nih tranzistora mo e smjestiti na jednu malu ploicu silicija, pa se pojec s z c dini spomenuti dijelovi raunala danas mogu ostvariti s jednim ili tek nekoliko c mikroelektronikih sklopova cipova. Tako danas postoje mikroelektroniki c c memorijski cipovi koji sadr e desetke milijuna tranzistora. Ulazno i izlazne nap z rave povezuju se na raunalo s pomo u mikroelektronikih pristupnih sklopova. c c c Procesori, izgradeni s nekoliko milijuna tranzistora, smje teni su takoder na jednu s ploicu silicija na jedan cip veliine nekoliko kvadratnih centimetara. Procesoc c ri izvedeni na jednom mikroelektronikom cipu dobili su naziv mikroprocesori5 , c a raunala izgradena oko mikroprocesora su nazvana mikrora unalima. U prvo c c vrijeme to su bila raunala skromnijih mogu nosti. Medutim, danas su sva osobna c c raunala, pa i sva ostala raunala, sastavljena od mikroelektronikih sklopova, te se c c c prefiks mikro- mo e i izostaviti. Mi cemo cesto koristiti nazive procesor i raunalo, z c a pritom ce se podrazumijevati da se radi o mikroprocesorima i mikroraunalima. c
Sabirnica ra unala c

U funkcijskom prikazu raunala na slici 1.1 vidljivo je kako su pojedini dijec lovi raunala medusobno povezani. Svaka od crta koja predstavlja tok podataka, c instrukcija ili upravljakih signala sastoji se od ve eg broja vodia preko kojih se c c c moraju prenositi elektriki signali. Mi znamo da se dvije vrijednosti koji mo e c z poprimiti jedan bit u sklopovlju raunala prikazuju kao dvije razine napona (primc jerice: nula volta i pet volta). Za prijenos svakog bita potreban nam je stoga jedan vodi (jedna ica). Svaka crta u funkcijskom prikazu raunala zbog toga predc z c stavlja cijeli snop vodia. Jasno nam je da je takvo povezivanje nespretno. Stoga c je osmi ljen i naje ce se koristi sabirni ki sustav povezivanja dijelova raunala. s c s c c c c c Sabirnica6 je jedan zajedniki snop vodia na koji su spojeni svi dijelovi raunala. Osim vodia sabirnica ima i svoj sabirniki elektroniki sklop, koji poma e pri c c c z ostvarivanju veza.
engleski Control Uunit engleski Arithmetic-Logic Unit ALU 5 prvi cetverobitovni mikroprocesor proizveden je 1971. godine 6 U engleskom jeziku je sabirnica dobila naziv bus, sto je izvorni naziv za autobus koji sabire i razvozi putnike
4 3

1.1. FUNKCIJSKI OPIS RACUNALA , VON NEUMANNOV MODEL RACUNALA

adresni dio sabirnice s m vodia; c podatkovni dio s n vodia; c upravljaki dio s k vodia. c c Na slici je pretpostavljeno da je m = 32 i n = 32 , tj. da koristimo tridesetdvobitovnu memorijsku adresu, te da se preko sabirnice istovremeno mo e prenijeti z cetiri bajta. Govorimo da je irina pristupa do memorije cetiri bajta ili 32 bita. s Djelovanje i mogu i sadr aj memorije razmatrat cemo u sljede em poglavlju. c z c Ovdje cemo samo ukratko re i da sklopovlje memorije ima svoj registar adrese c u koji ulazi adresa sa sabirnice. U na em primjeru to ce biti adresa prvog od s cetiri bajta koji ce biti preneseni. Ovisno o tome da li se radi o pohranjivanju ili dobavljenju sadr aja iz spremnika, bajtovi se pune iz registra sadr aja ili se sadrz z zaji bajtova prenose se u registar sadr aja memorijskog sklopovlja, sto na slici 1.4 z simboliziraju cetiri strelice koje povezuju bajtove spremnika i registar sadr aja. z
BAJTOVI MEMORIJE

REGISTAR ADRESE adresni dio sabirnice podatkovni dio sabirnice upravljacki dio sabirnice 32 32 m=32 n=32 k

REGISTAR SADRZAJA 32 1

POHRANITI DOBAVITI

32

ADRESNI MEDUREGISTAR

PODATKOVNI MEDUREGISTAR

PROCESOR

Sl. 1.4. Procesor i memorija povezani na sabirnicu

Procesor je takoder povezan na sabirnicu preko svojih registara. Nazvat cemo ih meduregistrima prema sabirnici ili, kra e, samo meduregistrima. Iz adresnog c meduregistra postavlja se adresa na adresni dio sabirnice, a podatkovni meduregistar ima dvosmjerno djelovanje: podaci se mogu prenositi iz procesora u memoriju ili iz memorije u procesor.

2.
Memorija racunala osnovni tipovi podataka
1. Funkcionalni opis memorije racunala

Sredi nji je dio svakog raunala memorija. Memorija je je ishodi te i odredi te s c s s svih informacija koje kolaju izmedu svih ostalih dijelova raunala. U memoriji c se pohranjuju podaci, tj. memorija pamti memorira sadr aje koji se u nju z pohranjuju. Zbog toga se za memoriju sve vi e koristi i naziv spremnik. U preds metu digitalna elektronika upoznali smo mikroelektronike sklopove za izgradnju c memorijskih podsustava. S uporabnog stanovi ta memorija se mo e zamisliti kao skup registara jednake s z c z duljine. Pritom se oni vi e ne e zvati registri ve rije i1 . U rije se mo e pohraniti s c c c neki sadr aj i nakon proizvoljno dugog vremena onda kada to bude potrebno z taj sadr aj opet proitati. U naelu duljina rijei mogla bi biti proizvoljna, ali z c c c se pokazalo praktinim da duljine rijei budu potencije broja dva. U dana njim c c s mikroraunalima uobiajilo se da najmanja spremnika jedinka ima duljinu od c c c osam bitova i dobila je izmi ljeni engleski naziv byte, koji mi citamo i pi emo s s bajt. Za oznaavanje bajta slu i kratica B (veliko slovo B). U nas se korisiti i naziv c z 2 z oktet ili osmorka bitova, ali se time prete ito podrazumijeva bilo kakva nakupina od osam bitova. Isto tako, za nakupinu od cetiri bita koristi se naziv cetvorka bi z c z tova ili kvartet3. Tako se mo e re i da jedan bajt sadr i jedan oktet ili dva kvarteta bitova, odnosno jednu osmorku ili dvije cetvorke bitova. Do svakog bajta u memoriji mo e se neposredno pristupiti. Svaki bajt dobiva z svoj redni broj. Taj broj je cvrsto povezan s tim bajtom, on je njegov ku ni broj c i s pomo u njega se bajt odabire. Stoga se taj broj naziva adresom bajta. c
1 2

u engleskom word u francuskom se za bajt upotrbljava naziv octet 3 u engleskom se za kvartet koristi naziv nibble sto znai mali zalogaj c

2.1. FUNKCIONALNI OPIS MEMORIJE RACUNALA

MEMORIJA

SKLOP ZA IZBOR BAJTA

SKLOP ZA PRIJENOS SADRZAJA

m
REGISTAR ADRESE

n
REGISTAR SADRZAJA

m adresa

n sadrzaj POHRANITI DOBAVITI

Sl. 2.2. Grada memorije

Za izvedbu memorije potrebni su jo neki pomo ni elektroniki sklopovi. s c c Slika 2.2 prikazuje nain izgradnje memorijskog podsustava. Registar adrese i c registar sadr aja slu e za uspostavljanje veze s ostalim dijelovima raunala. U z z c registar adrese mora se pri pristupu memoriji pohraniti adresa rijei. Na temelju c te adrese sklop za izbor rijei odabire adresirani bajt. Ovisno o tome kako je posc tavljen upravljaki signal na prikljuku oznaenom s POHRANITI-DOBAVITI, c c c obavlja se preko sklopa za prijenos sadr aja odgovaraju a razmjena registra sadrz c zaja i adresiranog bajta. Pri dobavljanju sadr aja iz memorije najprije se sadr aj z z adresiranog bajta smje ta u registar sadr aja i iz tog se registra mo e prenositi s z z dalje. Suprotno, kada se zeli pohraniti neki sadr aj u memoriju, tada se on mora, z istovremeno s postavljanjem adrese, staviti u registar sadr aja. z

MEMORIJA

n POHRANITI DOBAVITI

adresa sadrzaj

Sl. 2.3.

Memorija se mo e jednostavno prikazati u blokovnom obliku kao na sl. 2.3. z S upotrebnog motri ta ne mora se voditi rauna o tranzistorima, tranzistorskim s c

2.1. FUNKCIONALNI OPIS MEMORIJE RACUNALA

11

memoriran. U njih se sadr aj ne mo e ponovno pohranjivati, ve se iz njih saz z c z dr aj mo e samo citati, pa otuda dolazi i kratica ROM 4 . Memorija ciji se sadr aj z z mo e mijenjati, tj. u cije se bajtove mo e i pohranjivati sadr aje i iz nje dobavljati z z z c sadr aje oznaava se kraticom RAM 5 . Ta kratica ne potie od opisa toga svojstva, z c ve je uvedena onda kada su tehnolo ki uvjeti omogu ili da se prvotne memorije, c s c kod kojih se do pojedinih rijei moglo pristupiti samo slijedno (tj. prelaze i redom c c sve prethodne rijei), zamijene memorijama koje omogu uju pristup do bajtova u c c bilo kojem poretku. Memorije raunala mogu u istom adresnom prostoru imati c neka podruja adresa ostvarena RAM-om, a neka ROM-om. c Mikroelektronika tehnologija omogu ila je proizvodnju cipova kod kojih se c c na vrlo maloj povr ini od nekoliko kvadratnih centimetara mo e smjestiti na desets z ke milijuna bitova. Pritom su veliine pojedinih tranzistori a dijelovi mikrometra. c cc S takvim cipovima izgraduju se radne memorije koje imaju od nekoliko megabajta do stotinjak megabajta. Istovremeno, takve su memorije i vrlo brze. Vrijeme izmedu dva uzastopna pristupa do spremnika mo e biti svega nekoliko desetaka z nanosekundi. Memorija bi se mogla usporediti s velikim praznim papirom (ili mnogo komada papira!) na koji mo emo zapisati sve informacije koje nas zanimaju. U z na im knjigama sve informacije predoene su u obliku tekstova, zapisanih slos c vima abecede, dekadskim znamenkama i dogovorenim znakovima interpunkcije. Nadalje, u knjigama se nalaze i slike i to u obliku crte a ili fotografija. z
Sto se sve pohranjuje u memoriji ra unala? c

Po izumitelju tiskarskog stroja J. Gutenbergu6 zadnjih pet stotina godina naziva se Gutenbergovom civilizacijskom erom. Tiskana je knjiga, naime, omogu ila c sirenje znanja i time pomogla razvitku obrazovanja i znanosti, a time i svekoli kom napretku covjeanstva. Sve znanje koje je covjeanstvo steklo tijekom svog c c razvitka zapisano je u knjigama. Postavlja se pitanje mo emo li to znanje zapisati u spremnike raunala. Odz c govor na to pitanje je pozitivan. Moramo se samo dogovoriti kako ce svi znakovi biti kodirani i kako cemo predstaviti crte e. Ve kod uvodenja oktalnih i heksade z c kadskih znamenki nauili smo sto je to kodiranje. Jednako tako, moraju se uvesti c k dovi za sve znakove koje zelimo pohraniti u memoriju. o S obzirom da se u memoriju mogu zapisati samo nizovi nula i jedinica, mora se tono utvrditi sto te jedinice i nule znae. Bez dodatnih informacija o tome sto c c nizovi nula i jedinica znae ni ta se ne bi moglo zakljuiti o sadr aju memorije. c s c z
od engleskog Read-Only Memory memorija iz koje se mo e samo itati sadr aje z c z od engleskog Random Access Memory memorija s proizvoljnim redoslijedom pristupa 6 Nijemac Johannes Gutenberg (oko 1400.1468.) konstruirao je tiskarski stroj i 1455. godine dovr io je s tiskanje prve knjige Biblije na latinskom jeziku s 1282 stranice u dva stupca po 42 retka
5 4

2.2. ZAPISIVANJE

PRIRODNIH BROJEVA

PRIRODNI BINARNI K OD

13

2. Zapisivanje prirodnih brojeva prirodni binarni kod

Nain zapisivanja prirodnih brojeva u brojevnim sustavima obraden je op irno c s u predmetu Digitalna elektronika. Predstavljanje prirodnog broja u spremniku raunala slijedi sva pravila zapisivanja koja smo ve izuili. Jedina posebnost c c c koja se pri pohranjivanju u spremnik mora uva iti je ograni eni broj bitova koji z c se koriste za zapisivanje. S obzirom da je taj nain zapisivanja najprirodniji nac cin gledanja na niz bitova, ovaj nain zapisivanja prirodnog broja dobio je naziv c prirodni binarni k d7 . o Tako se, primjerice, u jedan bajt mo e zapisati brojeve s najvi e osam bitova, z s tj. brojeve od 0 = 00000000B do 255 = 11111111 B. Na papiru se u naelu ne zapisuju nule s lijeve strane. Medutim, ako se na pac piru zeli zapisati sadr aj jednog bajta, onda je uobiajeno, a i praktino zapisati z c c vrijednosti svih osam bitova.
Primjer 2.2.

Prikaz nekih prirodnih brojeva u jednom bajtu glasi: 1 = 00000001 B 2 = 00000010 B 4 = 00000100 B 8 = 00001000 B 16 = 00010000 B 32 = 00100000 B 64 = 01000000 B 128 = 10000000 B

Treba zapaziti da su odabrani brojevi potencije broja 2. Ti brojevi imaju samo jednu jedinicu na odgovaraju em te inskom mjestu. c z
7

u engleskom jeziku: Natural Binary Code NBC

2.2. ZAPISIVANJE

PRIRODNIH BROJEVA

PRIRODNI BINARNI K OD

15

U jedan bajt mogu se pohraniti brojevi u rasponu od 0 do 255, sto nije dovoljno za mnoge zadatke koje zelimo obavljati. Ve i prirodni brojevi mogu se zapisati u c dva ili vi e uzastopnih bajtova. U dana njim se raunalima, ovisno o tipu raunala, s s c c koriste registri duljine 8, 16, 32 ili 64 bita, pa prema tome i brojevi koji imaju toliki broj bitova. Stoga i u memoriji treba predvidjeti naine smje tanja sadr aja takvih c s z duljina. Prirodni brojevi duljine 16 bitova mogu se smjestiti u dva uzastopna bajta, oni duljine 32 bita u cetiri uzastopna bajta, a brojevi duljine 64 bita u nakupinu uzas topnih osam bajtova. Pokazalo se praktinim da se za adresiranje citave nakupine c bajtova koristi adresa bajta s najmanjom adresom i, isto tako, da je prikladno te nakupine bajtova smjestiti u spremnik poravnato tj. tako da se: prvi bajt skupine od dva bajta smjesti na parnu adresu (cjelobrojni vi eks ratnik od dva) ta adresa zavr ava s 0; s prvi bajt skupine od cetiri bajta smjesti na adresu koja je cjelobrojni vi ekratnik od cetiri ta adresa zavr ava s 00; s s prvi polubajt skupine od osam bajtova smjesti na adresu koja je cjelobrojni vi ekratnik od osam ta adresa zavr ava s 000. s s Sve sto je ovdje reeno o smje taju prirodnih brojeva vrijedi i za smje tanje c s s drugih tipova podataka u spremniku. U svezi sa smje tanjem podataka u nakupinu bajtova mora se uva iti jo jes z s dan dogovor. Naime, sadr aj zapisan u spremniku mora se pri njegovu kori tenju z s prenijeti u registre izvan spremnika. Kada se prenose nakupine bajtova, mora se utvrditi nain popunjavanja registara. c Razmotrimo to na primjeru prijenosa dva uzastopna bajta iz spremnika u 16-bitovni registar. S jednim bajtom popunjava se jedna polovina registra, a s drugim bajtom druga polovina. Postavlja se pitanje kojim redoslijedom se bajtovi smje taju u registar. Mogu a su dva naina smje tanja: s c c s bajt s manjom (parnom) adresom smje ta se u osam bitova manje vrijeds nosti (desnije bitove, donju polovinu) registra, a sljede i bajt (tj. bajt c cija je adresa za jedan ve a) smje ta se u osam bitova ve e vrijednosti c s c (lijevije bitove; gornju polovinu) registra; bajt s manjom (parnom) adresom smje ta se u osam bitova ve e vrijeds c nosti (lijevije bitove, gornju polovinu) registra, a sljede i bajt (tj. bajt c cija adresa je za jedan ve a) smje ta se u osam bitova manje vrijednosti c s (desnije bitove; donju polovinu) registra. U razliitim raunalima upotrebljavaju se ili jedan ili drugi nain pohranjivac c c nja, a kod nekih se cak mo e birati nain. Pri uobiajenom kori tenju raunala z c c s c nain smje tanja uop e nije bitan. On dolazi do izra aja u nekim posebnim primjec s c z nama. Va no je, medutim, da se to punjenje, a i pohranjivanje u bajtove memorije z uvijek obavlja istim redoslijedom8 .
8

U engleskom jeziku se za nain smje tanja kod kojeg se na manjoj adresi nalaze manje vrijedni bitovi c s

2.2. ZAPISIVANJE

PRIRODNIH BROJEVA

PRIRODNI BINARNI K OD

17

U polurije se, dakle, mo e zapisati najve i broj c z c 216 1 = 65535, u rije se mo e pohraniti najve i broj c z c 232 1 = 4 294 967 295, a u dvostruku rije najve i broj c c 264 1 = 18 446 744 073 709 551 615. Prva dva broja mogu se izraunati s pomo u d epnih kalkulatora koji pric c z kazuju deset znamenaka. Medutim, zadnji broj ima dvadeset mjesta i mo e se z kalkulatorom samo pribli no izraunati pa ce biti prikazan u eksponencijalnom z c obliku. z Pribli no se brojevi 232 i 264 (kod pribli nog zapisivanja nema nikakvog z smisla govoriti o brojevima 232 1 i 264 1 , jer oduzimanje jedinice kod tako velikih brojeva nema nikakvog znaenja) mogu zapisati kao c 32 2 = 4 000 000 000 = 4 109 i 264 18 000 000 000 000 000 000 = 18 1018 . = Do pribli nih veliina ovih brojeva mo emo do i i na drugi nain. Ve smo z c z c c c nauili da je 210 = 1024 1000 = 103 . c = Stoga se mo e pisati z 232 = 22 230 = 22 (210 )3 4 (103 )3 = 4 109 = i 264 = 24 260 = 24 (210 )6 16 (103 )6 = 16 1018 = 16 109 109 . = z Prema tome, broj 232 je pribli no jednak cetiri milijarde. Za broj 264 na ovaj se nain dobiva pribli na vrijednost od sesnaest milijarda milijardi, a on je manji c z od 18 milijarda milijardi, kao sto se vidi iz precizno izraunatog ranije navedenog c broja. Zbog jednostavnosti cemo koristiti pribli nu vrijednost 16 1018 . z
Primjer 2.6. Po ev i od adrese 2000 H u spremniku su u osam uzastopnih c s bajtova pohranjeni sadr aji prikazani na slici 2.6. Napi ite te sadr aje, najprije u z s z heksadekadskom obliku a zatim u dekadskom obliku, ako oni predstavljaju:

a) cetiri 16bitovna prirodna broja s bitovima manje vrijednosti na manjim ad resama; b) dva 32bitovna prirodna broja s bitovima manje vrijednosti na manjim adresama; c) cetiri 16bitovna prirodna broja s bitovima ve e vrijednosti na manjim adre c sama; d) dva 32bitovna prirodna broja s bitovima ve e vrijednosti na manjim adresac ma.

2.2. ZAPISIVANJE

PRIRODNIH BROJEVA

PRIRODNI BINARNI K OD

19

Ponovimo pravila raunanja u binarnom sustavu koja smo nauili izuavaju i c c c c digitalnu elektroniku. Operacije zbrajanja i oduzimanja mo emo razjasniti tabliz cama koje vrijede za jednoznamenkaste brojeve. Tablica zbrajanja 2.1. a) prikazuje pravilo zbrajanja dvaju bitova xi i yi . Bit s z zbroja neka se zove si . Zbroj 1 + 1 = 10 (jedan vi e jedan je dva) ne mo e se zapisati kao jedan bit ve su za to potrebna dva bita. To je va no uoiti i primijeniti c z c kod zbrajanja vi ebitovnih brojeva. Znamenka drugog bita zbroja mora se pribs rojiti sljede em lijevom bitu (podsjetite se kako se to cini u dekadskom zapisu!). c c To, medutim, znai da ce pri zbrajanju trebati pribrajati tri jednobitovna broja. U tom zbroju mogu se dobiti zbrojevi od nula do najvi e tri (kada sva tri pribrojnika s imaju vrijednost jedan). Kada zbroj iznosi dva ili tri (to se zapisuje kao 10 i 11), vrijednost 1 se prenosi na prvo lijevo vi e binarno mjesto. Taj bit se naziva bit prijenosa i mo e se oznaiti s z c s ci . Tablica 2.1. b) prikazuje zbroj triju jednobitovnih brojeva xi , yi i ci . Rezultat c se mo e zapisati kao bit zbroja si i bit prijenosa na ci+1 . Indeks i + 1 oznaava z da se taj bit prenosi na sljede e vi e binarno mjesto. c s
a) zbroj dvaju jednobitovnih brojeva Tablica 2.1. b) zbroj triju jednobitovnih brojeva

xi 0 0 1 1

yi 0 1 0 1

si 0 1 1 10

ci 0 0 0 0 1 1 1 1

xi 0 0 1 1 0 0 1 1

yi 0 1 0 1 0 1 0 1

ci+1 0 0 0 1 0 1 1 1

si 0 1 1 0 1 0 0 1

Pogled na tablicu 2.1. b) ukazuje da je bit zbroja si jednak jedinici kada u tri pribrojnika postoji neparan broj jedinica i jednak nuli kada se u tri pribrojnika nalazi neparan broj jedinica. Prijenos na sljede i bit ci+1 jednak je nuli kada u c pribrojnicima postoje manje od dvije jedinice, a jednak je jedinici kada se u pribrojnicima nalaze dvije ili tri jedinice. Izraunati zbroj X + Y = 10111011 + 101110 . Brojeve treba c napisati jedan ispod drugog tako da bitovi jednake te ine budu poravnati. Pribz rojnik s manje bitovnih mjesta mo e se nadopuniti nulama s lijeve strane, sto mu z ne mijenja vrijednost. Zbrajanje se zapoinje od krajnjeg desnog bita. Taj se bit c mo e zvati nultim bitom jer ima indeks jednak nuli. Prijenos u nulti bit ne postoji z (jer desno od njega vi e nema bitova), pa se mo e re i da je on jednak nuli, tj. s z c c c0 = 0 . Bit zbroja se potpisuje ispod vodoravne crte. Bitovi prijenosa u sljede e
Primjer 2.7.

2.2. ZAPISIVANJE

PRIRODNIH BROJEVA

PRIRODNI BINARNI K OD

21

Brojeve treba napisati jedan ispod drugoga tako da bitovi jednake te ine budu z poravnati. Umanjenik se mo e nadopuniti nulama lijevo od njegovog najvi eg bita. z s Oduzimanje se zapoinje s nultim bitovima s tim da je p0 = 0 . Bitovi razlike c zapisuju se ispod vodoravne crte, a bitovi posudbe koji se prenose s vi eg binarnog s mjesta zapisani su iznad bitova umanjenika i oznaeni znakom . c bitovi posudbe X Y razlika 0 1 0 1 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1

Ispravnost oduzimanja mo e se provjeriti tako da se vrijednosti umanjenika, z umanjitelja i razlike zapi u u dekadskom sustavu: s 101110112 = 1011102 = 100011012 = 18710 4610 14110

Izraunajte razliku 101110 10111011 . c Treba uoiti da je umanjenik manji od umanjitelja i razlika ne e pripadati c c skupu prirodnih brojeva. Oduzimanje se provodi prema pravilima obja njenim u s primjeru 2.8:
Primjer 2.9.

bitovi posudbe X Y razlika

1 0 1 0

1 0 0 1

1 1 1 1

1 0 1 1

1 1 1 0

1 1 0 0

1 1 1 1

0 0 1 1

Ovdje umanjenik nadopunjujemo nulama lijevo od najvi eg bita razliitog od s c nule tako da se za sve bitove mogu koristiti pravila tablice 2.2. b). Medutim, u postupku oduzimanja pojavljuje se posudba iz nepostoje eg bita, sto znai da c c oduzimanje nije dozvoljeno i dobivena razlika se ne smije uva iti. z Pri odabiru broja bitova za prikaz brojeva treba biti oprezan. Kada brojeve zapisujemo na papiru, brojevna mjesta mo emo proizvoljno pove avati tijekom z c izraunavanja. Medutim, kada odaberemo jedan od naina zapisivanja broja u c c memoriji broj binarnih mjesta je ograni en i ne mo e se vi e pove avati. c z s c Stoga se pri obavljanju aritmetikih operacija zbrajanja i oduzimanja mora c dodatno paziti da se dobiveni rezultat mo e zapisati u odabrani broj bitova. Pri z zbrajanju dvaju brojeva mogao bi nastati prijenos u krajnje lijevi nepostoje i bit c zapisa, a pri oduzimanju posudba iz krajnje lijevog nepostoje eg bita. Mogli bisc mo zamisliti da taj krajnje lijevi bit (ovisno o duljini zapisa: deveti, sedamnaesti,

2.3. POHRANJIVANJE CIJELIH

BROJEVA

23

C = 1 , dakle, oznaava da je rezultat neispravan. Temeljem pravila oduzimanja c dobiva se: bitovi posudbe 7EH 51H razlika bitovi posudbe 51H 7EH razlika bitovi posudbe A3H C5H razlika bitovi posudbe B0H A0H razlika 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0

B B B

C = 0, rezultat je ispravan; 1 B B B

C = 1, rezultat je neispravan; 1 B B B

C = 1, rezultat je neispravan; 0 B B B

C = 0, rezultat je ispravan.

3. Pohranjivanje cijelih brojeva

2.3.1. K dovi za zapisivanje cijelih brojeva o Skup cijelih brojeva Z cine negativni cijeli brojevi 1, 2, 3, . . . , broj 0, te pozitivni cijeli brojevi 1, 2, 3, . . . . Skup pozitivnih cijelih brojeva jednak je skupu c z prirodnih brojeva N . Za skup N0 , koji ukljuuje prirodne brojeve i broj 0, mo e se re i da je jednak skupu nenegativnih cijelih brojeva. c Kada se cijeli brojevi zapisuju na papiru, tada se ispred negativnog broja stavlja predznak minus, dok se ispred broja 0 i pozitivnih brojeva mo e pisati, ali se z obino izostavlja, predznak plus. Mo e se ustanoviti da se cijeli brojevi zapisuju c z tako da im se zapi e apsolutna vrijednost i ispred nje predznak za negativne s

2.3. POHRANJIVANJE CIJELIH

BROJEVA

25

pohranjivanja postoje dvije nule: 0 i +0 , tj. nula se mo e zapisati na dva naiz c na. U takvom se zapisu brojevi lako prepoznaju. Pritom, naravno, treba znati da se radi o cijelim a ne o prirodnim brojevima. Pretvorba u dekadski zapis obavlja se na isti nain kao i kod prirodnih brojeva, ali se koristi samo n 1 bitova. Ispred c pretvorenog zapisa se tada stavlja znak + (ili se taj predznak uop e ne pi e) ako c s se u bitu predznaka nalazi 0, odnosno pi e se predznak ako se u bitu predznaka s nalazi 1. Medutim, operacije zbrajanja i oduzimanja su malo slo enije, jer treba voditi z rauna o predznacima operanada. Tako se npr. operacija zbrajanja obavlja sljedec cim algoritmom:
usporediti predznake pribrojnika; ako je ustanovljena jednakost pribrojnika onda zbrojiti apsolutne vrijednosti pribrojnika; ispred zbroja staviti predznak pribrojnika inae od vee apsolutne vrijednosti oduzeti manju apsolutnu vrijednost; ispred razlike staviti predznak pribrojnika s veom apsolutnom vrijednou;

Mo emo se lako uvjeriti da se oduzimanje obavlja slinim, jo malo slo enijim z c s z algoritmom. Pokazuje se da se operacije zbrajanja i oduzimanja mogu znatno pojednostavniti ako se za kodiranje cijelih brojeva upotrijebi malo slo eniji k d. U tom k du z o o s z je bitu predznaka pripisana vrijednost 2n1 , tj. najvi i bit ima negativni te inski c faktor. Prema tome, niz bitova bn1 bn2 bn3 . . . b2 b1 b0 jedne rijei predstavlja cijeli broj B = bn1 2n1 + bn2 2n2 + bn3 2n3 + . . . + b2 22 + b1 21 + b0 20 . Ako je najvi i bit jednak nuli, tj. bn1 = 0 , sto je dogovorena oznaka pozitivs nog cijelog broja, onda preostali ni i bitovi mogu biti proitani kao prirodni broj s z c n 1 bitova. Za taj broj mo e se uvesti oznaka B , te je: z B = bn2 2n2 + bn3 2n3 + . . . + b2 22 + b1 21 + b0 20 . Prema tome pozitivni cijeli brojevi se zapisuju na potpuno jednaki nain kao c i u prethodnom nainu zapisivanja s predznakom i apsolutnom vrijedno cu. Mec s z dutim, kada je bn1 = 1 , tada vrijednosti B treba pribrojiti vrijednost te inskog faktora 2n1 (tj. oduzeti vrijednost 2n1 ), pa je: B = B 2n1 .

2.3. POHRANJIVANJE CIJELIH

BROJEVA

27

Zbroj dvaju suprotnih brojeva, tj. brojeva razliita predznaka s istim apsolutc nim vrijednostima, jednak je nuli. Tako je, npr. 2 + (2) = 0, 126 + (126) = 0. Pogledajmo sto se dobiva ako se po pravilima zbrajanja za prirodne binarne brojeve zbroje dva suprotna broja (s tim da je negativni broj zapisan u obliku koji ima negativni te inski faktor u bitu predznaka), a pravila zbrajanja primjenjuju z se i na bit predznaka. Pretpostavimo da se brojevi zapisuju u jedan bajt, tj. da je n = 8 . Zbrajanje daje: 2 00000010 B +(2) + 11111110 B 0 1|00000000 B 126 +(126) 0 01111110 B + 10000010 B 1|00000000 B

Rezultat zbrajanja uvijek izaziva prijenos u dodatni bit lijevo od bita predznaka. Ako se taj broj proita kao prirodni broj on je jednak c 100000000 B = 28 = 256. Op enito, ako se s B1 oznai pozitivni broj s n bitova i s B2 njemu suprotni c c negativni broj, uvijek vrijedi B1 + B 2 = 2 n ili B2 = 2 n B1 . S obzirom da je broj B1 jednak apsolutnoj vrijednosti broja B2 , to je B2 = 2n abs(B2 ) . Odatle slijedi algoritam za dobivanje zapisa negativnog broja:
oduzeti apsolutnu vrijednost zadanog broja od 2n ; dobiveni rezultat prevesti u binarni zapis. Primjer 2.13. Brojeve 73 i 39 treba zapisati u osmerobitovnom k du s neo gativnom vrijedno cu te inskog faktora predznaka. Slijedom opisanog algoritma s z dobiva se: 28 73 = 256 73 = 183, 183 = 10110111 B, 73 = 10110111 B

2.3. POHRANJIVANJE CIJELIH

BROJEVA

29

odnosno:

39 = 28 1 =

39 =

00100111 B 11111111 B 00100111 B 11011000 B + 1B 11011001 B

Treba zapaziti da se oduzimanje od 11111111 dobije tako da se u binarnom zapisu umanjenika naprosto nule zamijene jedinicama i obrnuto, jedinice nulama.
Komplement i dvojni komplement

U svezi s gore opisanom pretvorbom mogu se uvesti jo neki nazivi koji se u s raunarstvu koriste. Naime, ako se prethodna razmatranja svedu na jednobitovne c brojeve, tj. u izraz B1 + B2 = 2n uvrsti n = 1 , dobiva se B1 + B2 = 2 , ili B2 = 2 B1 . Mo e se re i da je B2 dopuna od B1 do dva ili komplement11 prema dva. z c Kra e se ka e da je B2 dvojni komplement od B1 . c z Oduzimanjem i pribrajanjem jedinice na desnoj strani gornji se izraz mo e z preurediti u B2 = ((2 1) B1 ) + 1 , ili B2 = (1 B1 ) + 1 . Broj 1 B1 mo e se oznaiti s B2 i nazvati taj broj komplementom prema z c jedan ili kra e samo komplementom broja B1 . Prema tome, dobiva se B2 = 1B1 , c odnosno B2 = B2 + 1 . Uz n = 1 su B1 i B2 binarne znamenke i mogu poprimiti samo vrijednosti 0 ili 1. Za binarne znamenke, dakle, vrijedi: komplement od 0 je 1, komplement od 1 je 0. Uvedeni nazivi mogu se pro iriti i na n -terobitovne brojeve. Tako je komples ment B2 broja B1 jednak B2 = (2n 1) B1 , a dvojni komplement B2 broja je B2 = 2 n B1 . Izmedu ta dva komplementa postoji veza B2 = B2 + 1 . S ovim novim nazivima mo e se drugim rijeima prepriati ve opisani alz c c c goritam za prevodenje negativnog cijelog broja u dvokomplementni binarni zapis. On glasi:
zapisati u prirodnom binarnom kdu o apsolutnu vrijednost broja; napisati komplement tog zapisa; komplementu dodati jedan;
11

komplement dolazi od latinskog complementum dopuna, upotpunjavanje

2.3. POHRANJIVANJE CIJELIH

BROJEVA

31

i osnovne operacije. Pritom se, prema potrebi, u nekim programskim jezicima mo e odabrati da li ce se za pohranjivanje cijelog broja koristiti polurije, rije ili z c c dvostruka rije, slino kao i kod pohranjivanja prirodnih brojeva. Tada se mogu c c koristi nazivi kratki cijeli broj, cijeli broj (pritom se misli na uobiajeno dugi cijeli c broj, a to se posebno ne nagla ava) ili dugi cijeli broj13 . s Na kraju, jo jednom treba upozoriti da je jedan bit potro en za zapisivanje s s predznaka, te da se preostali bitovi, njih n 1 u n -terobitovnom zapisu, koriste c z za zapisivanje vrijednosti. S n bitova mo e se zapisati 2n razliitih sadr aja. z s Polovina od njih, tj. njih 2n 1 ima u najvi em bitu zapisanu nulu i to su pozitivni brojevi. Broj nula se zapisuje tako da su mu svi bitovi jednaki nuli. Time je nula uvr tena medu pozitivne brojeve, te je najve i pozitivni broj koji se mo e zapisati s c z onaj sa svim jedinicama (osim bita predznaka), tj. broj 2n1 1 . Druga polovina zapisa, koji zapoinju s bitom predznaka jednakim jedan, predstavlja negativne c brojeve. S obzirom da medu njima nema nule, svi su oni iskori teni za negativne s n1 (to su brojevi od 2n1 do 1 ). brojeve kojih se mo e zapisati ukupno 2 z Tako je, u dvokomplementnom zapisu, apsolutna vrijednost najmanjeg negativnog broja za jedan ve a od najve eg pozitivnog broja. c c
Primjer 2.16. Koji se cijeli brojevi mogu zapisati u polurije , rije i dvostruku c c rije, odnosno unutar kojeg intervala se nalaze kratki cijeli brojevi, cijeli brojevi i c dugi cijeli brojevi? Kratki cijeli brojevi pohranjuju se u dva bajta, cijeli brojevi u cetiri bajta a dugi cijeli brojevi u osam bajtova. Prema tome, oni imaju 16, 32 i 64 bitova. Raspon cijelih brojeva koji se mogu tim bitovima zapisati prikazan je tablino: c

broj bajtova 2 4 8

broj bitova n 16 32 64

najmanji cijeli broj 2n1 32768 2147483648 9223372036854775808

najve i c cijeli broj 2n1 1 32767 2147483647 9223372036854775807

Za n = 64 apsolutna vrijednost najmanjeg cijelog broja koji se mo e zapisati z c z je 263 , sto je polovina od 264 . Najve i pozitivni cijeli broj koji se mo e zapisati je 263 1 .
Kod s posmakom

Uz spomenute naine zapisivanja cijelih brojeva (apsolutna vrijednost s predzc nakom, komplement, dvojni komplement), koriste se za zapisivanje cijelih brojeva c o jo i neki drugi k dovi. Jedan od njih je k d s posmakom od 2n1 ili kra e: k d s o o
13

u engleskom: short integer, integer, long integer

2.3. POHRANJIVANJE CIJELIH

BROJEVA

33

brojanu vrijednost, s njim se mo e takoder mogu obavljati aritmetike operacije. c z c Podsjetimo se da je interpretacija binarnog zapisa bn1 bn2 bn3 . . . b1 b0 jednaka N = bn1 2n1 + bn2 2n2 + bn3 2n3 + . . . + b1 21 + b0 20 . Zbog jednostavnosti se za obja njavanje pravila zbrajanja i oduzimanja mo e s z upotrijebiti cetverobitovna rije, tj. kvartet bitova. Stvoreni zakljuci se zatim mo c c gu poop iti za rijei proizvoljne duljine. U tablici 2.4 predstavljeni su svi brojevi c c koji se mogu zapisati u jedan kvartet kao i njihovi dekadski ekvivalenti i to redom od najmanjeg do najve eg broja. c
Tablica 2.4. Cetverobitovni cijeli brojevi

dvokomplementni zapis 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111

dekadski zapis 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7

Ako se zapone s najmanjim brojem 1000 B = 8 , tada se postepenim pric brajanjem broja 1 dolazi nakon sedam pribrajanja do broja 1111 B = 1 (tim se pribrajanjem u tablici 2.4 postepeno silazi redak po redak). Pribrajanjem broja 1 broju 1111 B po pravilima zbrajanja za prirodne binarne brojeve dobiva se 1 1111 B +1 + 1B 0 1| 0000 B, uz C = 1. Kada se zanemari bit prijenosa C, tada i to pribrajanje daje ispravan rezultat. Sada se mo e nastaviti uzastopno pribrajati jedinica dok se ne dode do broja z

2.3. POHRANJIVANJE CIJELIH

BROJEVA

35

ispred apsolutnih vrijednosti odgovaraju e predznake. Sve mogu nosti koje se c c mogu pojaviti pri zbrajanju ili oduzimanju tih cijelih brojeva svode se na rezultat cija ce apsolutna vrijednost biti razlika ili zbroj apsolutnih vrijednosti X i Y . Postoji ukupno osam mogu nosti: c (+X) + (+Y) = +(X + Y), (X) + (+Y) = (X Y), (+X) (+Y) = +(X Y), (X) (+Y) = (X + Y), (+X) + (Y) = +(X Y), (X) + (Y) = (X + Y), (+X) (Y) = +(X + Y), (X) (Y) = (X Y). S obzirom da se pretpostavlja da se X i Y mogu zapisati u zadani broj bitova, to ce se sigurno mo i zapisati i brojevi manje apsolutne vrijednosti X Y . Medu c tim, mo e se dogoditi da se brojevi (X + Y) i (X + Y) , vi e ne mogu zapisati u z s taj broj bitova. Prema tome, mo e se zakljuiti da preliva ne e biti kada se zbrajaju brojez c c vi razliitih predznaka ili odbijaju brojevi jednakih predznaka. Opasnost preliva c postoji kada se zbrajaju brojevi jednakih predznaka i oduzimaju brojevi razliitih c predznaka. Zbog jednostavnosti razmotrimo samo operaciju zbrajanja. Pokazuje se da je rezultat ispravan kada: pribrojnici imaju razliite predznake ili c pribrojnici imaju jednake predznake i predznak dobivenog zbroja je jednak predznacima pribrojnika. Rezultat je neispravan kada: pribrojnici imaju jednake predznake a u zbroju se pojavljuje suprotni predznak. Oznaimo n -bitovne pribrojnike s A i B , a njihov zbroj, koji je dobiven c zbrajanjem po pravilima za prirodni binarni k d sa S , tj. o A = an1 an2 an3 . . . a1 a0 , B = bn1 bn2 bn3 . . . b1 b0 , S = sn1 sn2 sn3 . . . s1 s0 . Predznaci pribrojnika su an1 i bn1 , a predznak zbroja sn1 . Algoritam za odredivanje vrijednosti OV mogao bi izgledati ovako:

2.4. JO S NEKE DODATNE ZASTAVICE

37

zapisanih u konani broj bitova, u raunalima se upotrebljavaju i neke druge zasc c tavice. Tako se npr. upotrebljava jo jedan dodatna zastavica s oznakom ZF15 , koja s oznaava da li je rezultat neke operacije jednak nuli. Zastavica se postavlja u c ZF = 1 kada je rezultat operacije jednak nuli, a u ZF = 0 kada je rezultat razliit c od nule. Daljnja korisna zastavica je SF16 , koja se postavlja u skladu s predznakom rezultata operacije. SF = 0 kada je rezultat operacije pozitivan, a SF = 1 kada je rezultat negativan. Drugim rijeima, vrijednost zastavice SF jednaka je vrijednosti c bita predznaka. Nadalje, nekada je korisno znati da li u rezultatu neke operacije postoji parni ili neparni broj jedinica. Zato slu i tzv. zastavica parnosti PF ili samo P17 . Kada je z broj jedinica u rezultatu paran, postavlja se P = 0 , a kada je broj jedinica neparan, postavlja se P = 1 . Za neke primjene potrebno je znati da li je nastao prijenos iz donje u gornju polovinu bajta. To se oznaava zastavicom HF ili AC18 . Zastavica se postavlja u c AC = 1 kada nastane prijenos iz donje polovine bajta, a inae je AC = 0 . c Svih sest zastavica C, OV, ZF, SF, P i AC postavljaju se u odgovaraju e vri c jednosti kod svake aritmetike operacije, a promatraju se samo one koje zelimo c promatrati. Tako se npr. pri obavljanju operacija s cijelim brojevima promatra samo zastavica OV, a stanje zastavice C se ne promatra. U raznim raunalima zastavice c se mogu drugaije zvati, a mogu postojati i jo neke druge dodatne zastavice. c s Napi ite vrijednosti sest zastavica nakon obavljanja sljede ih s c aritmetikih operacija: 3F H + 1A H, 4E H + A6 H, 28 H + D8 H i 72 H + 8C H . c Pretpostavite da se koristi osmerobitovni prirodni binarnoi k d, odnosno dvokomo plementni osmerobitovni zapis cijelih brojeva Dobiva se redom:
Primjer 2.18.

3F H +1A H 59 H

00111111 B + 00011010 B 01011001 B

te je C = 0 , OV = 0 , ZF = 0 , SF = 0 , P = 0 , AC = 1 ; 4E H +A6 H F4 H
15 16

01001110 B + 10100110 B 11110100 B

kratica ZF dolazi od engleskog zero flag zastavica nule kratica SF dolazi od engleskog sign flag zastavica predznaka 17 kratica PF dolazi od engleskog parity flag zastavica parnosti 18 kratica HF dolazi od engleskog half flag zastavica polovine, a AC od engleskog auxiliary carry flag

2.5. KODIRANJE DEKADSKIH ZNAMENKI BCD K OD

39

jedan kvartet bitova (tri bita nisu dovoljna jer se s pomo u njih mo e zapisati samo c z osam brojeva). Pritom nam od mogu ih sesnaest vrijednosti kvarteta treba samo c deset, kao sto je prikazuje tablica 2.5.
Tablica 2.5. Kodiranje BCD znamenki

sadr aji kvarteta z 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

BCD znamenke 0 1 2 3 4 5 6 7 8 9 ne koristi se ne koristi se ne koristi se ne koristi se ne koristi se ne koristi se

Prvih deset heksadekadskih znamenki jednake su dekadskim znamenkama 0, 1, 2, 3, 4, 5, 6, 7, 8 i 9, a za obilje avanje preostalih sest znamenki koristimo slova z A, B, C, D, E i F.
Pakiranje BCD brojeva u bajtove

Pohranjivanjem samo jedne znamenke u jedan bajt memorije bila bi iskori s tena samo jedna polovina raspolo ivih bitova. Stoga je uobiajeno pakirati po z c dvije znamenke u jedan bajt memorije. Drugim rijeima, u jedan bajt tako se mo e c z pohraniti dvoznamenkasti dekadski broj. Pritom se pretpostavlja da je znamenka jedinica pohranjena u donji kvartet i znamenka desetica u gornji kvartet bajta. Za pohranjivanje vi eznamenkastih brojeva treba uzeti vi e uzastopnih bajtova. s s

You might also like