Arhitektura i funkcija racunara

Embed Size (px)

Citation preview

  • 8/15/2019 Arhitektura i funkcija racunara

    1/135

      1

     

      č ć

  • 8/15/2019 Arhitektura i funkcija racunara

    2/135

      2

     

    Arhitektura i funkcija računara ................................................................................................... 1 

    Skripta .................................................................................................................................... 1 Boris Damjanović ................................................................... Error! Bookmark not defined. Prijedor, 2010 ......................................................................................................................... 1 

    2.  Pojam računarske tehnike i arhitekture računara............................................................... 3 3.  Predstavljanje podataka ..................................................................................................... 8 

    3.1.  Brojni sistemi ............................................................................................................. 8 3.1.1.  Binarni brojni sistem ........................................................................................ 10 3.1.2.  Konverzija binarnih u decimalne podatke ........................................................ 10 3.1.3.  Konverzije podataka između različitih brojnih sistema (između različitih baza)  11

     

    3.2.  Binarna, oktalna i heksadekadna reprezentacija podataka ..................................... 13 3.2.1.  Osnovni tipovi podataka u računaru ................................................................ 13 3.2.2.  Označeni cijeli brojevi (signed) ........................................................................ 18 3.2.3.  Binarno kodirani dekadni (BCD) brojevi .......................................................... 22 3.2.4.  Realni brojevi ................................................................................................... 23 

    3.3.  Binarna aritmetika .................................................................................................... 33 3.4.  Bulova algebra ......................................................................................................... 40 

    4.  Model digitalnog računara ................................................................................................ 48 4.1.  Arhitektura računara sa sabirnicom (magistralom) .................................................. 54 4.2.  Osnove funkcionisanja računara ............................................................................. 62 

    5.  Mikroprocesori .................................................................................................................. 68 5.1.  Mikroprocesor Intel 8085 ......................................................................................... 68 

    5.1.1. 

    Programski model - osnovni registri procesora 8085 ...................................... 68 

    5.2.  Signali mikroprocesora Intel 8085 ........................................................................... 73 5.2.1.  Signali napajanja ............................................................................................. 74 5.2.2.  Takt signal (Clock ili CLK)................................................................................ 74 5.2.3.  Adresni signali ................................................................................................. 74 5.2.4.  Signali podataka .............................................................................................. 75 5.2.5.  Tehnika multipleksiranja signala AD0-AD7 ..................................................... 75 5.2.6.  Vremenski dijagrami procesora 8085 .............................................................. 76 5.2.7.  Mehanizam prekida procesora 8085 ............................................................... 81 5.2.8.  Ostali signali mikroprocesora 8085 ................................................................. 84 

    5.3.  Ostali registri procesora 8085 .................................................................................. 84 5.4.  Pogled izbliza na ISA arhitekturu procesora 8085 .................................................. 86 

    5.4.1.  Skup instrukcija mikroprocesora 8085 ............................................................. 88 5.5.

     

    Mikroprocesor Intel 8086 ......................................................................................... 94 

    5.5.1.  Registri mikroprocesora 8086 .......................................................................... 96 5.5.2.  Upotreba segmentnih registara ..................................................................... 102 

    5.6.  Signali mikroprocesora Intel 8086 ......................................................................... 107 5.6.1.  Signali napajanja mikroprocesora 8086 ........................................................ 107 5.6.2.  Takt signal mikroprocesora 8086 .................................................................. 108 5.6.3.  Adresni signali ............................................................................................... 108 5.6.4.  Signali podataka ............................................................................................ 109 5.6.5.  Vremenski dijagrami procesora 8086 ............................................................ 110 5.6.6.  Prekidi (Interapti) mikroprocesora 8086 ........................................................ 113 5.6.7.  Signali HOLD i HLDA (Direktni pristup memoriji) .......................................... 118 5.6.8.  Minimalni i maksimalni način rada mikroprocesora 8086 .............................. 121 

    6.  Organizacija operativne memorije računara .................................................................. 122 6.1.

     

    Tipovi operativne memorije ................................................................................... 122 

  • 8/15/2019 Arhitektura i funkcija racunara

    3/135

      3

    1. Pojam računarske tehnike i arhitekture računaraDa bi računar kao uređaj koji korisnici vide na policama trgovina i na svojim radnim stolovimadobio svoju funkcionalnost i formu, on prethodno mora da prođe kroz mnogo faza u procesuproizvodnje. Prva faza u izradi kompjutera jeste projektovanje raznih njegovih dijelova –

    procesora, memorije, sabirnica, hard diska te raznih ulaznih i izlaznih uređaja. U fazuprojektovanja ubraja se takođe i projektovanje matičnih ploča – uklapanje postojećih i novihkomponenata u jednu funkcionalnu cjelinu, kao i projektovanje kompletnih računarskihsistema. Projektanti su grupa stručnjaka koja je, osim za projektovanje, zainteresovana i zanačin funkcionisanja pojedinih dijelova i kompletnog računarskog sistema. Nakon fazeprojektovanja slijedi faza realizacije računara tokom koje se dovršeni projekti iz projektantskihbiroa prenose u proizvodne hale raznih fabrika širom svijeta gdje se proizvode pojedinekomponente ili kompletni računarski sistemi. Slijedeća grupa stručnjaka koja jezainteresovana za izradu računara su razne veleprodaje, a na našim prostorima često imaloprodaje koje računare dobijaju u kitu, odnosno u dijelovima. Stručnjaci u takvimkompanijama sastavljaju računare na osnovu proizvođačkih uputstava i preporuka zasastavljanje. Zbog toga su oni zainteresovani za sastav računara, ali i način njegovogfunkcionisanja i njegove performanse, da bi ih mogli kvalitetno prezentovati potencijalnim

    kupcima. Za sastav i način funkcionisanja su zainteresovane i raznorodne softverske kuće –od proizvođača operativnih sistema, koji se najviše oslanjaju na hardver, preko proizvođačanpr. video igara, koji moraju znati kako da iskoriste mogućnosti pojedinih grafičkih kartica, pado proizvođača softvera za poslovnu primjenu, koji moraju da znaju minimalnu konfiguracijuna kojoj će njihov softver raditi. Na kraju ovog lanca su korisnici, koji su zainteresovani zadobijanje računara sa što boljim karakteristikama po što povoljnijoj cijeni.

    Na osnovu svega rečenog, mogli bi izvući nekoliko slijedećih definicija:

    •  Računarska tehnika je nauka ili naučna disciplina koja se bavi sastavom, načinomfunkcionisanja, projektovanjem, realizovanjem i korištenjem računara.

    •  Arhitektura računara obuhvata sve ono što je vezano za projektovanje, realizovanje iprimjenu računara sa osvrtom na organizaciju i strukturu svih njegovih elemenata.

    •  Arhitektura računara je način realizovanja računara i svih njegovih sastavnih

    elemenata, uključujući sklopovske (hardverske) i programske (softverske) dijelove, saciljem ostvarivanja zahtjeva korisnika.

    Vrlo često se koristi i termin organizacija računara – arhitektura i organizacija računara.

    Svi smo svjedoci da se na zapadu, ali i kod nas, sve češće koristi termin IT ili IT sektor koji sebazira na korištenju računara. Kod nas se ipak mnogo češće koristi termin informatika.Informatika i informacione tehnologije su jako povezane sa računarskom tehnikom iarhitekturom računara jer se baziraju na korišćenju računara.

    U uvodnom paragrafu smo spominjali pojedine dijelove računara i računar kao cjelinu.Takođe smo spominjali i operativni sistem i pojedine programe. Sve navedeno čini nivoe nakojima možemo posmatrati arhitekturu računara, pa se npr. može posmatrati:

    •  Arhitektura osnovnih jedinica računara.•  Arhitektura računarskog sistema•  Arhitektura operativnog sistema•  Arhitektura pojedinih (korisničkih) programa

    Za projektovanje i proizvodnju određenih dijelova računara potrebna su specifična znanja itehnologije, koja se razlikuju od znanja i tehnologija potrebnih za konstruisanje računara kaocjeline. Takođe, sa softverskog aspekta, proizvodnja operativog sistema zahtjeva bitnodrugačiji pristup od npr. proizvodnje neke aplikacije za poslovnu primjenu. Zbog toga kažemoda se odgovarajuća arhitektura računara postiže primjenom odredjenih tehnika i postupakana svim nivoima posmatranja računara.

    Kada govorimo o performansama nekog računara, na njegove karakteristike najviše utičeusklađenost svih prethodno navedenih nivoa arhitekture računara. Npr. ne vrijedi nam mnogoračunar koji može da adresira beskonačno veliku količinu memorije ako ne postoji operativnisistem koji to može da iskoristi. Zbog toga, arhitektura računara na svim nivoima direktnoutiče na karakteristike i mogućnosti konkretnog računara.

  • 8/15/2019 Arhitektura i funkcija racunara

    4/135

      4

    Još u drugoj polovini osamdesetih godina u informatičkim krugovima važila je izreka – da seautomobilska industrija razvijala brzinom kojom se razvijala računarska u 20. vijeku, već tadabi imali automobile kojima bi mogli da odemo na mjesec. I zaista, ovaj sektor se tazvijaonajbrže i najeksplozivnije u odnosu na sve druge tehničke nauke. Prije tačno 40 godina,inženjer Gordon Mur, jedan od osnivača firme Intel, najvećeg svjetskog proizvođačakompjuterskih čipova, napisao je novinski članak u kome je iznio tvrdnju da će se broj

    pojedinačnih elektronskih elemenata na jednom čipu svake godine uvećavati za oko 60%. Tonjegovo predvidjanje se manje-više obistinilo, jer su inženjeri uspjevali da neprestanosmanjuju tranzistore ali i druge osnovne elemente. Poredjenja radi, 1965. kada je Mur izniosvoju viziju, na jedan čip moglo je da stane oko 60 tranzistora i otpornika. S druge strane,Intelov čip tipa Itanijum (iz 2006. godine) sadrži milijardu i 700 miliona tranzistora. Sarazvojem i proširenjem primjene računara rastao je interes i za arhitekturu računara idefinisale su se dvije grupe stručnjaka zainteresovanih za nju:

    •  Projektanti i proizvodjači računara – zainteresovani za prjektovanje i proizvodnjuračunara sa što boljim karakteristikama uz što niže troškove;

    •  Korisnici računara – zainteresovani za dobijanje (nabavku) računara koji će najboljezadovoljiti zahtjeve konkretne primjene uz najnižu cijenu.

    Današnji računari se koriste u mnogim oblastima života - od projektovanja, proizvodnje,

    medicine, komunikacija i poslovne primjene pa do obrazovanja i zabave. Zbog ovako velikogspektra primjene računara, veliki je i značaj računarske tehnike i arhitekture računara, a on seogleda u slijedećim prednostima i karakteristikama primjene računara:

    •  Velika brzina obrade podataka;•  Velika tačnost obrade podataka;•  Memorisanje velikih količina podataka;•  Univerzalnost primjene i mogućnost prilagođavanja zahtjevima posla;•  Mogućnost upravljanja pomoću računara;•  Mogućnost komunikacije pomoću računara;•  Relativno niska cijena.

    Danas su računari prodrli u gotovo svaku oblast života, tako da bi nabrajanje svih mogućihprimjena računara oduzelo previše prostora – zbog toga ćemo ovdje nabrojati samo

    najvažnije oblasti primjene računara:•  Naučno - tehnička primjena. Prve primjene računara su bile u toj oblasti zahvaljujući

    želji za automatizacijom procesa računanja. Danas se računari koriste i zamodeliranje fizičkih pojava, procesa i objekata, rješavanje odgovarajućih sistema jednačina kao i za projektovanje pomoću računara u raznim naučnim oblastima.

    •  Poslovna primjena je praktično jedna od najrasprostranjenijih oblasti primjeneračunara. Sa poslovnom primjenom računara srećemo se tokom svakodnevnihaktivnosti u gotovo svakom preduzeću. To su različite evidencije, materijalno ifinansijsko poslovanje, obračun plata i dr. Rukovodioci takođe koriste računar zaobezbjedjivanje ažurnosti i tačnosti u poslovanju te obezbjeđivanje informacija bitnihza donošenje odluka za upravljanje poslovnim sistemom.

    •  Primjena u upravljanju predstavlja jedan važan segment primjene računara. Računarise danas koriste za upravljanje različitim objektima, procesima, mašinama,uredjajima. Poznati su primjeri upotrebe računara u proizvodnji, saobraćaju, u vojnesvrhe itd. Ovakve računare često karakteriše rad u realnom vremenu - upravljanjeistovremeno dok se objekat kreće ili proces odvija, kao i garantovano vrijeme odziva.

    •  Primjena računara u komunikacijama je danas toliko raširena da je gotovo nemogućenavesti sve njene aspekte. Računarske komunikacije obuhvataju mnogobrojne oblasti – od transakcjia između dva umrežena računara, preko razmjene e-mailova i faksova,do VOIP tehnologije i video konferencija. Ova oblast primjene dovela je i do razvojabrojnih komunikacionih uređaja koji su bazirani na primjeni računara - od raznihwireless mrežnih kartica do web kamera.

     Razvoj računara

    1) Abakus i Antiktitera. Već smo spomenuli ogromnu brzinu kojom se računaska industrija

    razvijala tokom 20. vijeka. Međutim, razvoj računara ne počinje tek u 20. vijeku. Još odantičkih vremena, ljudi su pokušavali da automatizuju proces računanja. Prvi poznati uređaj

  • 8/15/2019 Arhitektura i funkcija racunara

    5/135

      5

    koji je olakšavao računanje bio je abakus (engl. abacus). O pokušajima drevnih civilizacija daubrzaju i olakšaju proces računanja svjedoči i mehanizam iz Aniktitere, koji je otkriven 1901.godine na grčkom ostrvu Aniktitera. Misli se da potiče iz perioda od oko 100-150 godinap.n.e., a po kompleksnosti nadilazi uređaje koji su se pojavili hiljadu godina kasnije.

    2) Čarls Bebidž - Analitička mašina. Prvu polovinu 19. vijeka obilježili su radovi velikogengleskog naučnika Čarlsa Bebidža (1791-1871). Oslanjajući se na teoretsku osnovu koju su

    postavili Blejz Paskal, Gotfrid Lajbnic i Vilijem Šrinkard, on je najprije izradio konceptdiferencijalne mašine, a zatim i prijedlog tzv. Analitičke mašine – prvi koncept računara opštenamjene. Takođe je dao prijedloge za ulaze podataka u navedene uređaje u vidu bušenihkartica. Interesantno je reći da je 1991. godine diferencijalna mašina uspješno napravljena ipuštena u rad samo na osnovu nacrta ovog velikog naučnika.

    3) Herman Holerit – Tabelarne mašine. Kraj 19. vijeka obilježio je rad američkog naučnikaHermana Holerita (1860-1929). Ovaj veliki statističar je izumio i realizovao mehanički uređajza čuvanje i obradu velikog broja statističkih podataka smještenih u tabelama, koji je biozasnovan na bušenim karticama. Osnova njegove ideje zasnivala se na mogućnosti da sebilo koji podatak može predstaviti pomoću brojeva. Na osnovu brojčanog koda, podatke jebilo moguće mehanički čuvati, sabirati ili sortirati. Očitavanje podataka sa kartica vršio jepomoću sistema igala sa oprugom koje bi, kada naiđu na ubušenje zatvarale električno kolo.

    4) Alan Tjuring – Algoritam i Hipotetička mašina. Prvu trećinu 20. vijeka obilježila je pojava još jednog engelskog naučnika. Alan Tjuring je imao veliki uticaj na formalizaciju pojma algoritam.On je takođe prvi koji je dao jasnu i potpunu teoriju računara opšte namjene pomoću tzv.Hipotetičke Tjuringove mašine. Ideja Tjuringove mašine se zasnivala na traci na koju je bilo(hipotetički) moguće zapisivati ili čitati podatak po podatak pomoću glave za pisanje. Podacisu bili nule ili jedinice.

    5) Hauard H. Aiken i Dž.Brajs - Mark 1. 1944. godine, razvijen je računar Mark I ili HarvardMark I. Harvard Mark 1 (eng. Harvard Mark I) je bio prvi svjetski programabilni računar. To jebila elektro-mehanička mašina koja je izvršavala komande korak-po-korak. Naredbe(instrukcije) se unošene u računar uz pomoć papirne vrpce, kartonskih kartica sa rupama iliprekidača. Mark 1, čiji razvoj je djelomično finansirao IBM je razvijen od Hauarda Aikena(Howard Aiken) i Džejmsa Brajsa (James W. Bryce) na univerzitetu Harvard, gdje jezauzimao čitavu zgradu. Završen je 1944. godine, a radio je više od 15 godina. TokomDrugog svjetskog rata je vršio različite proračune za potrebe mornarice SAD. Koristio jerelejnu logiku.

    6) The First Draft of a Report on the EDVAC. 30. juna 1945. godine, objvljen je nepotpundokument kojeg je na 101 strani napisao Džon fon Nojman (John von Neuman) u kojem jeopisana arhitektura računara kod kojega su i program i podaci smješteni u memoriju.

    7) ENIAC. 1946. godine realizovan je prvi elektronski računar, nazvan ENIAC (ElectronicNumerical Integrator And Computer). On predstavlja prvi digitalni elektronski računar kog jebilo moguće programirati u cilju rešavanja širokog spektra računarskih problema. ENIAC jedizajniran i izgrađen u svrhu izračunavanja balističkih tablica za vojsku SAD. Prvi problemirješavani na ENIAC-u bili su povezani i sa izradom hidrogenske bombe. Koristio jeelektronske vakuumske cijevi. Mogao je da izvede oko 5000 ciklusa po sekundi. Za operacijumnoženja 10. cifrenih brojeva trebalo mu je 14 ciklusa ili 2800 µs, odnosno mogao je da izvrši

    357 ovakvih operacija po sekundi.8) UNIVAC. Godine 1951. realizovan je prvi računar opšte namjene koji se komercijalnoproizvodio, nazvan UNIVAC I (UNIVersal Automatic Computer I). Razvijali su ga PresperEkert i Džon Mačli, koji su takođe učestvovali i u razvoju ENIAC-a. UNIVAC I je koristio 5200vakumskih cijevi i bio je težak 13150 kg. Mogao je da izvrši 1905 operacija po sekundi saklokom od 2.25 MHz. Samo procesor i memorija su zauzimali zapreminu od 4.3x2.4x2.6metara, dok je kompletan sistem zauzimao površinu od 35.5 kvadratnih metara.

    Generacije računara

    Podjela na generacije vezana je za tehnologiju realizovanja računara, tj. osnovnukomponentu za realizaciju računara. Osnovna komponenta za izradu se mijenjala tokomvremena – počevši od vakuumskih cijevi, preko tranzistora do integrisanih krugova. Tokom

    svog burnog razvoja u prethodnih 60 godina, računari su prošli kroz nekoliko slijedećihgeneracija:

  • 8/15/2019 Arhitektura i funkcija racunara

    6/135

      6

    •  Prva generacijao  Od 1946.god. do 1956.god.o  Osnovna komponenta je elektronska vakumska cijev.

    •  Druga generacijao  Od 1957.god. do 1963.god.o  Osnovna komponenta je poluprovodnički tranzistor.

    •  Treća generacijao  Od 1964.god. do 1981.god.o  Osnovna komponenta je integrisano kolo malog (SSI), srednjeg (MSI) i

    velikog stepena integracije (LSI).SSI – Small Scale of IntegrationMSI – Medium Scale of IntegrationLSI – Large Scale of Integration

    •  Četvrta generacijao  Od 1982.god. do – (199- god) – vremenska granica više nije preciznao  Osnovna komponenta je integrisano kolo vrlo velikog stepena integracije

    (VLSI).VLSI – Very Large Scale of Integration

    •  Peta generacijao  U toku je. (od 199- god. )o  Osnovna komponenta je integrisano kolo ultra velikog stepena integracije

    (ULSI).ULSI – Ultra Large Scale of Integration

    U petoj generaciji javljaju se slijedeći pojmovi:  Wafer-scale integration (wafer-oblanda, sloj) - superčip na jednom

    waferu  System on Chip (SoC) - sve komponente kompjutera na jednom čipu  Three dimensional Integrated Circuit (3D-IC) - nekoliko slojeva

    integrisanih i vertikalno (horizontalno se podrazumjeva)  Primjena metoda vještačke inteligencije i raspoznavanja uzoraka te

    paralelna obrada.

    Uporedo sa razvojem hardvera, dolazi i do burnog razvoja softvera koji je morao da prati ikoristi uvjek nove hardverske mogućnosti. Na početku, ljudi su sa kompjuterima komuniciralimašinskim jezikom - jezikom koji se sastoji od brojeva. Pošto je ovakav način programiranjaljudskom umu jako težak, postepeno je došlo i do razvoja različitih asemblera koji su biliprilagođeni različitim platformama. Prva velika prednost asemblera bila je u tome što subrojčane pozive određenih instrukcija zamjenili mnemonicima koji su mnogo bliži ljudskomnačinu razmišljanja.

    Slijedeći korak u razvoju softvera bila je pojava viših programskih jezika – fortran, basic,pascal, C itd. koji su još više olakšavali proces programiranja. Nakon pojave velikog brojakompajlera, počele su se razvijati i različite metode programiranja. Nakon prvih kompajlerakoji su radili u In-line režimu, pojavljuju se najprije modularni asembleri, pa proceduralni jezici,pa zatim strukturno programiranje, objektno orjentisano programiranje, a najnovijaparadigma1 je aspektno orjentisano programiranje.

    Treba napomenuti da su asemblerski jezici još uvjek najbliži arhitekturi računara i da je njenopotpuno razumjevanje moguće, osim asemblerom, djelimično dočarati samo pomoćuprogramskog jezika C. Svi ostali programski jezici, da bi olakšali programiranje, postavljajurazličite slojeve između hardvera i programera, i na taj način apstrahuju i sakrivaju mašinu odprogramera.

    Tipovi računara

    Definicija:Računar - uredjaj ili sistem koji vrši obradu podataka.

    Iz prethodne, kratke definicije, vidi se da računar obrađuje podatke. Odmah se moramozapitati kakve podatke računari obrađuju? Znamo da današnji personalni računari moguobrađuju tekstualne, brojčane podatke, sliku, zvuk i mnogo drugih podataka. Ali kako se ovi

    1 Od grčkog para i digm, pokazati, para-pored, digma-pokazati, učiniti razumljivim, primjer, uzorak

  • 8/15/2019 Arhitektura i funkcija racunara

    7/135

      7

    podaci prestavljaju u svom izvornom obliku? Tačan odgovor na ovo pitanje je – uvjek ubrojčanom obliku. Međutim, ostaje pitanje na koji način mašina može da obrađuje brojčanepodatke. Najjednostavniji odgovor je da bi mogla da mjeri visinu napona ili struje i da ovavisina na na neki način predstavlja brojčani podatak. Naponi i struje prestavljeni na ovaj načinsu KONTINUALNE (neprekidne) fizičke veličine. Drugi način na koji se podaci mogupredstavljati u računarima bio bi pomoću DISKRETNIH ili DISKONTINUALNIH (prekidnih)

    veličina. Znači, podaci se u računaru predstavljaju u dva osnovna vida:•  Kontinualnom i•  Diskretnom.

    Kontinualne veličine se, kako je rečeno predstavljaju naponima ili strujama određene visine iliamplitude. Diskretni podaci se, s druge strane, predstavljaju IMPULSIMA.

    U skladu sa podacima koje obrađuju, jasno je da postoje slijedeće vrste obrade podataka:analogni, digitalni i hibridni način obrade, koji predstavlja kombinaciju prethodna dva.

    Na osnovu toga možemo izvršiti podjelu računara na slijedeće tipove:

    •  Analogni,•  Digitalni i•  Hibridni.

    Analogni računar vrši obradu analognih podataka. Elektronska kola generišu i kontrolišunapone ili struje koji predstavljaju promjenljive veličine, tj. podatke. Osnovni elementi ovakvihračunara su operacioni pojačavači. Tačnost im uglavnom nije velika, ali ih karakteriše velikabrzina dobijanja rezultata. Koriste se uglavnom u specijalnim primjenama.

    Digitalni računar vrši obradu numeričkih, digitalnih podataka. Sve operacije u ovakvimračunarima se svode na osnovne aritmetičke i logičke operacije. Digitalni računari pri obradipodataka primjenjuju algoritamske postupke. Osnovne prednosti ovakvih računara su njihovaveća tačnost, koja zavisi od dužine digitalnih podataka i neodredjeno dugo vrijeme čuvanjapodataka u memoriji. Zahvaljujući napretku tehnologije, brzina ovih računara se neprekidnopovećava, tako da su oni gotovo istisnuli analogne računare iz praktične upotrebe.

    Hibridni računar koristi prednosti analognog (brzina) i digitalnog (tačnost) računara. Kodovakvog računara zastupljeni su i analogni i digitalni postupci obrade podataka, zavisno od

    potrebe. Oni imaju veliku primjenu u upravljanju procesima, gdje analogni dio prati odvijanjeprocesa i upravlja kontrolnim organima dok digitalni dio realizuje funkciju upravljanja.

  • 8/15/2019 Arhitektura i funkcija racunara

    8/135

      8

    2. Predstavljanje podatakaU prethodnom poglavlju, kada smo govorili o vrstama računara, rekli smo da digitalni računariobrađuju digitalne ili diskretne podatke. Takođe smo naveli da se diskretni podacipredstavljaju diskontinualnim veličinama – impulsima. Sve operacije i kompletan radračunara baziraju se na dva osnovna fizička stanja – ima napona (impulsa), sa simboličkomoznakom „1“ i nema napona (impulsa) sa simboličkom oznakom „0“, kao na slijedećoj slici:

    Da bi se izbjegli problemi vezani za sinhronizaciju, u praksi srećemo i različite druge načinepredstavljanja ova dva stanja, npr. vezane za promjenu signala:

    Postoje i različiti drugi načini prikazivanja ova dva stanja fazna modulacija, frekventnamodulacija itd.

    Kako smo već pominjali, svi podaci (i instrukcije) se u računaru predstavljaju u brojčanomobliku. Pošto je na osnovu prethodne slike jasno da je binarni brojni sistem računaru najbliži inajprirodniji, moraćemo se prisjetiti osnova potrebenih za konverzije između različitih brojnihsistema.

    2.1. Brojni sistemiBrojni sistem je način označavanja ili izražavanja brojeva uz pomoć nizova znakova ili naziva.Uporedo s razvojem pisma kroz čovjekovu istoriju razvijali su se i različiti brojni sistemi koji sepo strukturi dijele na:

    1.) aditivne,2.) aditivno-multiplikativne.

    Aditivni sisitem je niz znakova u kojima je broj jednak zbiru znakova od kojih je sastavljen,npr. kao kod starih Rimljana:

    XXXVII = 10 + 10 + 10 + 5 + 2 = 37

    Ovakvi sisitemi nisu omogućavali računske operacije kakve omogućavaju aditivno-multiplikativni brojni sistemi. Kod aditivno-multiplikativnih sistema pojedini brojevi (cifre)

  • 8/15/2019 Arhitektura i funkcija racunara

    9/135

      9

    predstavljaju težinske grupe - pojedinačne cifre se množe težinskom grupom, a zatim sedobijeni rezultati saberu, kao u slijedećem primjeru:

    "stotinu četrdeset i pet" = 1*100 + 4*10 + 5*1 = 145

    Najvažniji dio aditivno-multiplikativnog brojnog sistema je baza (osnova, radix), koja se kao

    množilac nalazi u sastavu broja. Danas je najviše u upotrebi dekadni brojni sistem, aditivno-multiplikativni sistem s osnovom (bazom) deset (10).

    Dekadni sistem se tumači na slijedeći način:

    Svaka cifra ima odgovarajuću težinsku vrijednost, koja je u odnosu sa bazom (10) brojnogsistema. Bilo koji drugi brojni sistem moguće je predstaviti na ovaj način.

    Ako posmatramo prethodnu sliku, možemo uočiti slijedeće pojmove:•  10 – osnova, baza (radix) brojnog sistema•  1,3,5,7 – cifre broja kojeg predstavljamo•  Eksponenti – pozicije odgovarajućih cifara (7 je na poziciji nula, 5 na poziciji 1 itd.)

    Uopšteno, svaki brojni sistem ima osnovu (b) i cifre (Ci ) brojnog sistema. Kako smo već rekli,cifre su težinske (imaju odgovarajuću težinu), a ta težina zavisi od njihovog položaja u

    podatku. Baza je uvijek cijeli pozitivan broj veći od 1 (b>1) dok su cifre (Ci) uvjek cijelipozitivni brojevi izmedju 0 i b-1 (0 ≤ C ≤ b-1).

    Tokom ljudske istorije su razvijani različiti brojni sistemi, a za računarsku tehniku sunajznačajniji slijedeći:Naziv Osnova Cifre

    binarni 2 0,1

    oktalni 8 0,1,2,3,4,5,6,7

    decimalni 10 0,1,2,3,4,5,6,7,8,9

    heksadecimalni 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

    Podatak se u bilo kom brojnom sistemu predstavlja na slijedeći način:

    )(...,... ,2101221

    b

    C C C C C C C C  mnn   −−−−− 

    (1)

    gdje je:m  - broj razlomačkih mjesta u podatku (desno od zareza)n  - broj cijelih mjesta u podatku (lijevo od zareza)C   - cifre brojnog sistemab  - baza (osnova) brojnog sistemai   - mjesto ili pozicija cifre u podatku

    Stvarna vrijednost cijelog broja može se izračunati na osnovu slijedeće formule:

  • 8/15/2019 Arhitektura i funkcija racunara

    10/135

      10

    ∑−

    =

    =1

    0

    n

    i

    i

    ibC  N   

    (2)

    Dok je formula za izračunavanje razlomljenog dijela:

    −==

    1

    mi

    i

    ibC  N    (3

    )

    Odnosno kompletnog broja:

    ∑∑∑−

    −=

    =

    −=

    +==11

    0

    1

    mi

    i

    i

    n

    i

    i

    i

    n

    mi

    i

    i  bC bC bC  N   

    (4)

    Primjeri:•  X = 427,3510 = 4·10

    2 + 2·101 + 7·100 + 3·10-1 + 5·10-2 = (400) + (20) + (7) + (3/10) + (5/100)Dakle ovdje je, prema (1) i (4):

    m = 2, n = 3 dok je b = 10.

    •  135710 =1*103 + 3*102 + 5*101 + 7*100 =1*1000 + 3*100 + 5*10 + 7*1

    2.1.1. Binarni brojni sistemU digitalnim računarima se koristi binarni numerički sistem za predstavljanje podataka.Njegova osnova je 2, a cifre su 0 i 1.

    Primjer:X=11010001(2) 

    Cifra se u binarnom sistemu naziva bit, što predstavlja skraćenicu od engleskog terminaBInary digiT, što znači binarna cifra.

    Za razliku od računara, čovjeku je za svakodnevnu upotrebu mnogo prorodniji i lakši dekadnibrojni sistem. Zbog toga se moramo malo pozabaviti i konverzijom između različitih brojnihsistema.

    2.1.2. Konverzija binarnih u decimalne podatke

    Postupak opisan jednačinom (4) se može koristiti i za konvertovanje binarnog broja udecimalni broj. Pretpostavimo da imamo binarni broj (1010.01)2. Ovdje je n=4, m=2 i b=2.Koristeći jednačinu (4), imamo:

    1x23 + 0x22 + 1x21 + 0x20 + 0x2-1 + 1x2-2 =(8)10 + (0)10 + (2)10  + (0)10 + (0/2)10 + (1/4)10 =(10.25)10 

    Prikazani metod za konverziju koji koristi jednačinu (4) naziva se metod polinoma i može sekorisiti za pretvaranje broja iz bilo kog brojnog sistema u dekadni brojni sistem.

    Kada vršimo konverziju između bilo koja dva brojna sistema, prva stvar na koju trebamoobratiti pažnju su baze navedenih brojnih sistema. Sama konverzija se dakle realizuje vodećiračuna o tome da je osnova binarnog sistema 2 a dekadnog 10, te uzimajući u obzirvrijednost i položaj (težinu) svake binarne cifre, prema izrazima (1) i (4):

    Primjeri pretvaranja iz binarnog u dekadni brojni sistem:

    1100,11012 =1x23 + 1x22 + 0x21 + 0x20 + 1x2-1 + 1x2-2 + 0x2-3 + 1x2-4 =

    (8)10 + (4)10 + (0)10 + (0)10 + (1/2)10 + (1/4)10 + (0/8)10 + (1/16)10=12,812510 10101011,10012 =

  • 8/15/2019 Arhitektura i funkcija racunara

    11/135

  • 8/15/2019 Arhitektura i funkcija racunara

    12/135

      12

    sistemu možemo pretvoriti u drugi brojni sistem uzastopnim dijeljenjem (sa ostatkom) pomoćubaze drugog brojnog sistema. Pogledajmo još jedan primjer, koji ilustruje pretvaranje izheksadekadnog u dekadni brojni sistem:

    Često korištena notacija za pisanje heksadekadnih brojeva počinje simbolima 0x. Ovdje smobroj (17)16  dijelili sa (A)16, što je ekvivalentno dijeljenju sa (10)10, dakle dijelili smo ga sabazom drugog brojnog sistema. Cifre koje dobijamo na ovaj način su uvjek manje od baze ukoju pretvaramo – u slučaju pretvaranja u dekadni brojni sistem možemo dobiti cifre 0-9.

     Metoda multiplikacije

    Konverzija razlomljenog dijela broja vrši se pomoću metode multiplikacije. Ova metoda

    zasniva se na uzastopnom množenju razlomljenog dijela broja sa bazom brojnog sistema ukoju vršimo konverziju. Ako posmatramo razlomljeni dio prethodno pomenutog broja(0.375)10, množenjem ovog broja (ali i bilo kog drugog razlomljenog broja) sa 2 dobićemouvjek broj koji je manji od 2, dakle manji od baze u koju vršimo konverziju. Dodatno, prva cifradobijenog umnoška (lijevo od decimalne tačke) će uvjek biti 0 ili 1. Pogledajmo to na primjeru:

    Dakle, rezultat konverzije (0.375)10 je (0.011)2. Treba primjetiti da uvjek množimo razlomljenidio rezultata, kao i da konverziju završavamo kada razlomljeni dio rezultata padne na nulu.

    Na kraju, spojićemo cjelobrojni i razlomljeni dio i formiraćemo rezultat konverzije(23.375)10=(10111.011)2.

    Treba primjetiti da razlomljeni dio u jednom brojnom sistemu može imati konačan broj cifara,dok u drugom može imati beskonačan broj cifara. Na primjer, pri pretvaranju broja (0.2)10 ubinarni brojni sistem, imamo:

    Konverzije izmedju različitih numeričkih sistema od kojih ni jedan nije decimalni (sistemi saosnovama b1  i b2) najlakše se izvode preko decimalnog brojnog sistema. Prvo se izvrši

    konverzija iz jednog sistema (sa osnovom b1) u decimalni sistem, a onda iz decimalnogsistema u drugi (sa osnovom b2) korišteni numerički sistem.

  • 8/15/2019 Arhitektura i funkcija racunara

    13/135

      13

     

    2.2. Binarna, oktalna i heksadekadna reprezentacija podataka

    Podaci predstavljeni u binarnom brojnom sistemu su često veoma dugački nizovi nula i

     jedinica koje je dosta teško pročitati, a još teže prepisati na papir. Zbog toga se, tokomrazvoja računarskih nauka, u praksi pojavilo predstavljanje podataka u oktalnom iheksadekadnom brojnom sistemu. Ova dva brojna sistema su najmanji brojni sistemi koji sudjeljivi sa dva. Njihova djeljivost sa dva omogućava nam da grupišemo cifre binarnog brojnogsistema i da ih pretvorimo u podatke koji su lakši za čitanje. Pogledaćemo još jednom cifrebinarnog, dekadnog, oktalnog i heksadekadnog brojnog sistema, ovaj put predstavljene nanešto drugačiji način:

    Binarni (2) Oktalni (8) Heksadekadni (16) Decimalni (10)0 0 0 01 1 1 1

    10 2 2 211 3 3 3

    100 4 4 4101 5 5 5110 6 6 6111 7 7 7

    1000 10 8 81001 11 9 91010 12 A 101011 13 B 111100 14 C 121101 15 D 131110 16 E 141111 17 F 15

    Treba uočiti da je za predstavljanje bilo kog broja sa bazom 8 potrebno odvojiti tri binarnecifre (0-7 000-111), dok za predstavljanje bilo kog broja sa bazom 16 moramo odvojiti 4binarne cifre (0-F 0000-1111). Generalno, potrebno nam je K  bita za predstavljanje brojau bazi 2 K, gdje je K  cijeli broj. Npr, 8 = 23, pa oktalni brojni sistem zauzima 3 binarne cifre, a16 = 24, pa heksadekadni zauzima 4 binarne cifre.

    Da bi pretvorili neki cijeli broj iz baze 2 u bazu 8, mogli bi podjeliti cifre binarnog broja u grupepo 3, počevši od decimalne tačke. Posmatraćemo to na primjeru pretvaranja binarnog broja(10110)2 u bazu 8:

    (10110)2 = (010)2 (110)2 = (2)8 (6)8 = (26)8 

    Primjetite da smo na lijevoj strani (MSB) dodali jednu nulu, da bi formirali puni triplet.Pogledaćemo i primjer pretvaranja binarnog broja (10110110)2 u bazu 16:

    (10110110)2 = (1011)2 (0110)2 = (B)16 (6)16 = (B6)16 

    Treba primjetiti da je B cifra heksadekadnog brojnog sistema, čija je decimalna vrijednost(11)10.

    U računarskoj tehnici heksadekadni brojni sistem ima veoma veliku ulogu i veoma česo seupotrebljava. Kako ćemo vidjeti, ovaj brojni sistem se koristi za predstavljanje adresamemorijskih lokacija kao i za predstavljanje instrukcija, podataka, odnosno uopšte - sadržajamemorije ili neke datoteke itd. Naravno, treba uvijek imati u vidu da heksadekadni sistemsluži ljudima za lakše čitanje ili pisanje brojeva - digitalni računari i dalje memorišu i obrađujupodatke koristeći binarni brojni sistem.

    2.2.1. Osnovni tipovi podataka u računaru

    U jednom od prethodnih poglavlja Već smo spominjali termin Bit – binarna cifra. Podatak kojiima više bita naziva se binarna riječ. U računarima se svi podaci predstavljaju kao sekvenceod nekoliko bita. Prvi konstruktori računara su, kada se pojavila potreba da memorišu i

  • 8/15/2019 Arhitektura i funkcija racunara

    14/135

      14

    obrađuju podatke na neki način, morali da odluče koliko dugačke mogu da budu te sekvencebita. Oni su većinom imali ograničene resurse i morali su da usklade dužinu određenesekvence bita sa mogućnostima i ograničenjima trenutnog razvoja nauke i tehnike. Tako jenastao pojam Bajta-a (Byte), najmanjeg elementa koji se može adresirati u kompjuteru. Onnajčešće označava sekvencu bita čija je dužina određena arhitekturom računara. Iako sedanas gotovo uvijek pod pojmom Bajta označava sekvenca od 8 bita, to nije uvjek bilo tako.

    Npr. arhitektura računara CDC6000 bila je zasnovana na bajtu dužine 6 bita.Sam temin Bajt  upotrebio je Dr.Werner Buchholz 1956. godine, a porijeklo vuče od engleskeriječi bite – zagristi, te na taj način indicira veličinu fragmenta podataka koje računar može daprima na svom ulazu.

    Ipak, danas je uvriježeno shvatanje da je 1 bajt sekvenca od 8 bita, pa ćemo se i mi u daljemizlaganju držati ove pretpostavke. Pomoću jednog bajta može da se predstavi 28  = 256različitih vrijednosti (podataka).

    Prateći današnje konvencije, riječ (Word) predstavlja sekvencu od 16 bita, dvostruka riječ(DWord) je sekvenca od 32 bita, dok je četvorostruka riječ (QWord) sekvenca od +64 bita.

    Ako bi, na primjer, trebali da predstavimo broj (3)10 u binarnom brojnom sistemu, formatiranna nivou bajta i riječi, imali bi:

    (3)10 = (11)2 =1 bajt: 0000 0011

    1 riječ: 0000 0000 0000 0011

    Vidimo da su cifre binarnih brojeva grupisane u četvorke, radi lakše čitljivosti. Naravno, ovečetvorke imaju svoje ime – nibble, što na engleskom jeziku znači – četvorka.

    Ono što je posebno za informatiku, a što se razlikuje od svih drugih oblasti nauke, jeste da sehiljade i milioni ovdje računaju i označavaju na drugačiji način. Svi smo navikli da je npr.

    103=1000,106=1000000.

    Međutim, za označavanje većih količina podataka u bitima ili bajtovima koriste se slijedećitermini:

    •  Kilo (K), što znači 210 ili 1024.•  Mega (M), što znači 210 ⋅ 210 = 220 ili 1024 ⋅ 1024 = 1 048 576.•  Giga (G), što znači 210⋅210⋅210=230 ili 1024⋅1024⋅1024= 1 073 741 824.

     Neoznačeni cijeli brojevi (pozitivni cijeli brojevi i nula)

    Pred konstruktorima prvih računara bile su i druge bitne odluke, vezane za načinpredstavljanja i interpretacije podataka u računaru. Svi digitalni računari rade samo sasekvencama bita, odnosno binarnim brojevima određene dužine. Ako znamo dužinu jednogbajta, pomoću njega možemo da predstavimo cjelobrojni podatak (integer   ili int ) veći ili jednak nuli sa 256 različitih vrijednosti. S druge strane, pomoću jedne riječi možemo dapredstavimo 65536 različitih brojeva. Generalno, za izračunavanje ranga bilo kog cjelobrojnogpodatka većeg od nule, važi slijedeća formula: 

    b2=   (5)gdje je:b – broj bita podatka, aR – rang broja.

    Ako bi bilo potrebno da izračunamo rang Bajta, DWord-a i QWorda, koristeći jednačinu (5),dobili bi:

    Bajt: R= 28 = 256;DWord: R= 232 = 4294967296;QWord: R= 264 = 18446744073709551616.

  • 8/15/2019 Arhitektura i funkcija racunara

    15/135

      15

    Dakle, u dvostruku riječ može da stane 4294967296 različitih ne-negativnih2 vrijednosti, a učetvorostruku 18446744073709551616. Neoznačeni cijeli brojevi se vrlo često navode i kaounsigned integer .

     Brojke i slova

    Ako bi se stavili u poziciju prvih konstruktora računara, morali bi da riješimo još nekoliko bitnihproblema, a prvi od njih je kako predstaviti slova u računaru? Npr. za predstavljanje velikihslova engleskog alfabeta bila bi nam potrebna tabela za 26 slova – za to bi nam bila dovoljnasekvenca od 5 bita, jer je

    (26)10= (11010)2 

    Kako računari mogu da rade samo sa binarnim brojevima, svakom slovu bi morali dapridružimo po jedan broj, a to bi mogli da uradimo npr. kao u slijedećoj tabeli:

    A 00001B 00010... ...Y 11001Z 11010

    Ako bi htjeli da stavimo i cifre u našu implementaciju hipotetičkog računara, dužinu tabele bimorali povećati za još 10 mjesta:

    A 00001... ...Z 110100 110111 11100...9 100100

    Iz table je vidljivo da nam sada za predstavljanje 36 znakova treba 6 bita, jer je:

    (36)10= (100100) 2 

    Ako u našu tabelu poželimo da ubacimo i mala slova engleske abecede, naša tabela moraimati 62 polja, za šta nam je dovoljno 6 bita.

    (62)10= (111110) 2 

    Ako bi morali da ubacujemo i znakove interpunkcije (. , ; : ! ?) i možda neke posebne simbole(dolar, funta, plus, minus itd.), vrlo brzo bi došli do 7 bitne tabele.

    U doba kada su se prvi konstruktori suočili sa ovim problemom, rješenje je već postojalo i bilo je standardizovano. Bell-ovi teleprinteri su koristili 7-bitne tabele i sličnu logiku za slanjetekstualnih poruka (telegrama). Oni su u to doba već imali razvijen i standardizovan načinprenošenja slova i poruka pomoću 7-bitnih tabela, gdje je svakom slovu i cifri (alfanumeriku)bila dodjeljena odgovarajuća 7-bitna vrijednost. Određeno slovo ili cifra je na stani predajnikapretvarano u sekvencu impulsa koja je na strani prijemnika mogla ponovo biti pretvorena u toslovo ili cifru, te ga je bilo moguće odštampati na papir.

    Proširivanjem i standardizovanjem Bellovog koncepta, 6.oktobra 1960. godine usvojena je ASCII   tabela ( American Standard Code for Information Interchange), kao standardannačin prenošenja tekstualnih podataka. Iako je počela kao 7-bitna, današnja ASCII tabelasadrži 256 slova i različitih drugih simbola i znakova, a jedan znak zauzima 8 bita ili 1 bajt.Slijedi isječak ASCII (čita se Aski) tabele:Dec

    Hex

    Char

    Dec

    Hex

    Char Dec

    Hex

    Char

    Dec

    Hex

    Char

    Dec

    Hex

    Char

    0 0 Null

    32 20 Space

    64 40 @ 96 60 ` 128

    80 Ç

    1 1 ☺ 33 21 ! 65 41 A 97 61 a 129

    81 Ü

    2 2 ☻ 34 22 “ 66 42 B 98 62 b ...

    ...

    ...

    2  Ne-negativne brojeve čini skup prirodnih brojeva i nula, dakle cijeli broj N >= 0. U računarskoj tehnici često se koristi i terminneoznačeni  brojevi. Za razliku od njih, označeni  brojevi uključuju i negativne brojeve. Prirodnim brojevima nazivamo pozitivne cijele brojeve {1, 2, 3, . ..}.

  • 8/15/2019 Arhitektura i funkcija racunara

    16/135

      16

    3 3 ♥ 35 23 # 67 43 C 99 63 c ...

    ...

    ...

    4 4 ♦ 36 24 $ 68 44 D 100

    64 d

    5 5 ♣ 37 25 % 69 45 E 101

    65 e

    6 6 ♠ 38 26 & 70 46 F 10

    2

    66 f

    7 7 • 39 27 ‘ 71 47 G 103

    67 g

    8 8 ◘ 40 28 ( 72 48 H 104

    68 h

    9 9 ○ 41 29 ) 73 49 I 105

    69 i

    10 A ◙ 42 2A * 74 4A J 106

    6A j

    11 B ♂ 43 2B + 75 4B K 107

    6B K

    12 C ♀ 44 2C , 76 4C L 108

    6C L

    13 D ♪ 45 2D - 77 4D M 109

    6D M

    14 E ♫ 46 2E . 78 4E N 110

    6E N

    15 F ☼ 47 2F / 79 4F O 111

    6F O

    16 10 ► 48 30 0 80 50 P 112

    70 P

    17 11 ◄ 49 31 1 81 51 Q 113

    71 Q

    18 12 ↕ 50 32 2 82 52 R 114

    72 R

    19 13 ‼ 51 33 3 83 53 S 115

    73 S

    20 14 ¶ 52 34 4 84 54 T 116

    74 T

    21 15 § 53 35 5 85 55 U 117 75 U

    22 16 ▬ 54 36 6 86 56 V 118

    76 V

    23 17 ↨ 55 37 7 87 57 W 119

    77 W

    24 18 ↑ 56 38 8 88 58 X 120

    78 X

    25 19 ↓ 57 39 9 89 59 Y 121

    79 Y

    26 1A → 58 3A : 90 5A Z 122

    7A Z

    27 1B ← 59 3B ; 91 5B [ 123

    7B {

    28 1C ∟ 60 3C < 92 5C \ 12

    4

    7C |

    29 1D ↔ 61 3D = 93 5D ] 125

    7D }

    30 1E ▲ 62 3E > 94 5E ^ 126

    7E ~

    31 1F ▼ 63 3F ? 95 5F _ 127

    7F ⌂

    Tabela 1: Isječak ASCII tabele 

    U većini današnjih programskih jezika, ovaj tip podatka je predstavljen kao char (jedanalfanumerik) ili string (niz alfanumerika), a pri pisanju koda se predstavlja sa pomoću jednostrukih ili dvostrukih apostrofa, kao npr:

    “a”, ‘abc123’ ili ‘a’, “abc123”.

    Ovaj koncept je dugi niz godina vladao u IT sektoru, sve dok ga nisu polako počelizamjenjivati drugi koncepti, koji su bili u stanju da prikažu i slova koja ne pripadaju samoengleskom alfabetu. 

  • 8/15/2019 Arhitektura i funkcija racunara

    17/135

      17

    Uvod u binarnu aritmetiku

    Iako ćemo računarsku (binarnu) aritmetiku detaljnije obrađivati u idućim poglavljima, ovdjemoramo da obradimo jednu operaciju – binarno sabiranje, jer se ona koristi pri predstavljanjuoznačenih binarnih brojeva. Binarno sabiranje se obavlja način sličan ručnom sabiranjudecimalnih brojeva. Dva binarna broja A i B se sabiraju sa desna u lijevo, a kao rezultat sedobija njihova suma i eventualni prenos. Kako biti A i B mogu uzeti samo vrijednosti 0 i 1,mogu se javiti slijedeće kombinacije:A B ∑ Prenos

    (carry)0 0 00 1 11 0 11 1 0 (1)

    Posmatraćemo postupak binarnog sabiranja na primjeru brojeva (1100)2 i (1010)2.

    Kako u prva tri koraka nema prenosa (carry), njihovo izvođenje se svodi na upisivanjevrijednosti iz tabele. Četvrti i peti korak su nešto interesantniji. U četvrtom koraku javlja se

    sabiranje (1+1). Iz tabele vidimo da je 1+1=0, pa nulu upisujemo u istoj koloni u rezultat.Međutim, pri sabiranju 1+1 javlja se i prenos (1). Njega upisujemo u prvoj slijedećoj (lijevoj)koloni u polju prenosa. U petom koraku, najprije dopišemo nedostajuće nule i saberemo ih(0+0=0, bez prenosa), a zatim dobijeni rezultat (0) saberemo sa poljem prenosa (1), tako dadobijamo (0+1=1).

    Posmatrajmo slijedeći primjer, u kom je potrebno sabrati binarne brojeve (111)2 i (11)2.

  • 8/15/2019 Arhitektura i funkcija racunara

    18/135

      18

     

    Prethodno prikazani primjer ilustruje tri moguća slučaja prenosa, pa preporučujemo da gadobro proučite.

    2.2.2. Označeni cijeli brojevi (signed)

    Još u osnovnoj školi smo naučili da se negativni brojevi pišu isto kao i pozitivni, sa znakomminus (-) ispred broja. Ako bi ovaj koncept pokušali da prebacimo u naš hipotetički računar,on bi, u memorijskom smislu, bio dosta skup. Za predstavljanje najmanjeg cijelog broja bila binam potrebna dva bajta – jedan za predznak iz ASCII skupa, a drugi za sam broj. Npr,slijedeća tabela prikazuje pozitivan i negativan broj 1, predstavljen na ovaj način:

    U memorijiASCII predznak Binarni Broj

    (+), 43 dec 00101011 00000001(-), 44 dec 00101101 00000001

    Dakle, potrebno bi nam bilo 8 bita (1 bajt) samo da predstavimo predznak, dok bi zakompletan broj imali na raspolaganju još 8 bita. Zbog toga ovakav koncept nikada nijekorišten u praksi. Ipak, slična ideja našla je primjenu u Binarno kodiranim decimalnimpodacima, koje ćemo upoznati malo kasnije.

     Koncept predznak i dimenzije (sign and magnitude)

    Kada bi mi bili konstruktori nekog hipotetičkog uređaja, jednostavno rješenje koje bi moždamogli da iskoristimo, bilo bi da pokušamo uzeti jedan bit iz prostora za podatke. U tom bitu bidržali predznak broja – npr.

    0 = pozitivan broj;1 = negativan broj.

    U preostalih 7 bita bi držali stvarne podatke, tako da bi pozitivan i negativan broj 1 mogli dapredstavimo na slijedeći način:

    +/- Vrijednost+1 = 0 000 0001-1 = 1 000 0001

    Ovakav način označavanja cijelih brojeva naziva se koncept predznak-dimenzije (sign andmagnitude ili signed magnitude). Kako smo vidjeli, njegova osnovna karakteristika jeste dase pokuša iskoristiti jedan bit (krajnji lijevi bit) iz postojećeg prostora za podatke da bi prikazalipredznak. U tom slučaju, dimenzije podatka (magnituda)  su samo 7 bita, pa prethodnospominjani bajt može da prikaže vrijednosti od -127(10) do +127(10).

    Slijedeća tabela ilustruje ovaj koncept:

  • 8/15/2019 Arhitektura i funkcija racunara

    19/135

      19

    Binarno Označen

    podatak0 1111111 127

    … 0 0000010 2

    0 0000001 10 0000000 +01 0000000 −01 0000001 −11 0000010 −2

    … 1 1111111 −127

    Treba primjetiti da ovakav način prikazivanja brojeva ima jedan veliki nedostatak – u njemupostoje dvije nule, pozitivna i negativna. Takođe, moramo obratiti pažnju i na rang ovog broja.U slučaju neoznačenih podataka, za rang jednog bajta važila je formula R = 2 8 = 256. Zapredstavljanje brojeva pomoću koncepta  predznak-dimenzije, rang moramo umanjiti za 1,zbog postojanja dvije nule, kao u slijedećoj formuli:

    12   −=   b   (6)Primjer: Predstaviti broj (+12)10 i (-12)10 koristeći koncept predznak-dimenzije.

    (+12)10 = (0000 1100)2 (-12)10 = (1000 1100)2 

    Iako ovakav koncept prikazivanja cijelih brojeva ima veliki nedostatak – pozitivna i negativnanula, on je ipak korišten u računaru IBM 7090. Ovaj koncept se i danas koristi zapredstavljanje realnih brojeva u pokretnom (plivajućem) zarezu.

     Prvi komplement

    Operacija komplementiranja je vrlo jednostavna za izvođenje – potrebno je jednostavnopretvoriti sve nule originalnog binarnog broja u jedinice, a sve njegove jedinice u nule. Dakle:

    !0 = 1!1 = 0

    Gdje je !   oznaka za komplement. U literaturi se često koriste i oznake ~A  (tilda od A) i  Ā (nadvučeno A) za operaciju komplementiranja.

    Ova operacija se, kako ćemo uskoro naučiti, naziva bitwise NOT operacija. Prvi komplementćemo posmatrati na slijedećem primjeru:

    (+12)10 = (0000 1100)2 

    (-12)10 = (1111 0011)2 

    Dakle, i koncept  prvog komplementa  se može iskorisititi za predstavljanje pozitivnih inegativnih brojeva, kao u slijedećoj tabeli:

    Binarno Označen

    podatak0111 1111 127

    … 0000 0010 20000 0001 10000 0000 +01111 1111 −01111 1110 −11111 1101 −2

    … 1000 0000 −127

  • 8/15/2019 Arhitektura i funkcija racunara

    20/135

      20

    Nedostatak predstavljanja označenih brojeva na ovaj način je, kao i u slučaju konceptapredznak-dimenzije, postojanje dvije nule. Zbog toga je na ovaj način u okviru jednog bajtamoguće predstaviti samo R = 28 -1 = 255 različitih brojeva.

     Drugi komplement

    Drugi komplement nekog broja (bilo pozitivnog ili negativnog) se realizuje kao invertovanjenjegovih bita i na kraju dodavanje broja 1 na dobijeni rezultat. Ako se kao rezultat sabiranjapojavi prenos u najznačajnijem bitu, ovaj prenos se ignoriše.

    Ako npr. treba da komplementiramo broj 127 u okviru jednog bajta, drugi komplementdobijamo u dva koraka:

    Posmatrajmo slijedeću tabelu koja ilustruje ovaj koncept:

    Binarno Označen

    podatak0 1111111 127

    … 0 0000010 20 0000001 10 0000000 +00 0000000 −01 1111111 −11 1111110 −2

    … 1 0000001 −127

    Kako vidimo, pozitivni brojevi predstavljeni pomoću drugog komplementa uvjek počinju nulomna mjestu MSB-a, dok negativni brojevi uvijek počinju jedinicom, što bitno pojednostavljujeprojektovanje sklopova koji treba da manipulišu ovakvim brojevima. Takođe treba primjetiti daovakav način predstavljanja označenih brojeva ne pati od nedostataka vezanih zapojavljivanje dvije nule. Da bi ovo pokazali, pronaći ćemo drugi komplement od broja

    (+0)10=(0000 0000)2 

    Prvi komplement broja (0000 0000)2 daje

    (1111 1111)2 

    Nako što ovom rezultatu dodamo (1)2, dobićemo

    (0000 0000)2 

    a prenos na poziciji lijevog (MSB) bita ćemo odbaciti.

    Ako se ponovo vratimo na primjer sa brojem (12)10, imamo:

    (+12)10 = (0000 1100)2

    Prvi komp. (1111 0011)2 +1

    ----------(1111 0100)

    Iz tabele vidimo da pozitivni brojevi počinju od (0)10, a negativni od (-1)10. Zbog toga u okviru jednog bajta apsolutna vrijednost najvećeg negativnog broja (-128)10, dok je vrijednost

  • 8/15/2019 Arhitektura i funkcija racunara

    21/135

      21

    najvećeg pozitivnog broja (+127)10. Treba primjetiti da svaki broj u prethodnoj tabeli, bio onpozitivan ili negativan ima svoj drugi komplement – svaki osim broja (-128)10. Da bi topokazali, pokušaćemo da komplementiramo ovaj broj:

    (+128)10 = (1000 0000)2 (0111 1111)2 

    +1

    ----------(1000 0000)2 

    Koncept drugog komplementa je veoma važan, jer se ovakva reprezentacija označenihbrojeva najčešće koristi u računarskoj tehnici i arhitekturi računara.

     Modifikovana notacija (Excess N, biased)

    Do sada smo vidjeli različite konvencije, odnosno dogovorene načine predstavljanjaoznačenih brojeva. Međutim, za njihovo predstavljanje na nivou jednog bajta, na raspolaganjusu nam uvjek bili isti binarni brojevi od (0000 0000)2 do (1111 1111)2. Samo je stvar dogovorainžinjera i naučnih radnika kako se u principu isti binarni brojevi tretiraju u različitimnotacijama.

    Prikazani opseg binarnih brojeva daje nam još jednu mogućnost za predstavljanje označenihbrojeva. Ideja modifikovane notacije  je da se pozitivni brojevi pomaknu za određeni brojmjesta od binarne nule, kao u slijedećoj tabeli:

    Binarno Neoznačen

    podatak

    Označen

    podatak0000 0000 0 -1270000 0001 1 -1260000 0010 2 -125

    …0111 1111 127 01000 0000 128 1

    1111 1111 255 +128Na ovaj način, ne-negativni brojevi su pomaknuti za 127 mjesta od binarne nule (0000 0000) 2.Ovakva notacija naziva se još i Excess 127 ili biased   notacija. Vrijednost označenogpodatka u ovoj notaciji se izračunava jednostavnim oduzimanjem broja 127 (pomaka) odstvarne vrijednosti binarnog broja. Ako na primjer imamo binarni broj (0000 0010)2=(2)10,onda će vrijednost označenog broja biti:

    Excess127 = (2)10 – (127)10 = (-125)10.

    S druge strane, ako imamo dat neki broj u Excess 127 notaciji, njegovu binarnu vrijednostdobijamo tako da najprije dodamo broja 127 datom broju, pa ga onda pretvorimo u binarnioblik. Ako je dat broj (-125)10, u binarnom obliku ga dobijamo kao:

    Binarno(-125) = (-125)10 + (127)10 = (2)10 = (0000 0010)2.

    Na primjer, za brojeve (12)10 i (-12)10 koji su predstavljeni u Excess 127 notaciji, imamo:Binarno(12) = (12)10 + (127)10 = (139)10 = (1000 1011)2.Binarno(-12) = (-12)10 + (127)10 = (115)10 = (0111 0011)2.

    Dakle, stvarna vrijednost, koja se nalazi u nekoj memoriji je

    (1000 1011)2, ili (139)10, a tumačimo je kao

    12 u Excess127 notaciji.

    Ako posmatramo Excess notaciju, bitno je shvatiti da u memoriji stoji neoznačen podatak, ami (ili neka mašina) ga interpretiramo kao označen.

    Binarno (stvarnabinarnavrijednost)

    Neoznačenpodatak(Stvarni)

    Označenpodatak

    0000 0000 0 -127

  • 8/15/2019 Arhitektura i funkcija racunara

    22/135

      22

    0000 0001 1 -126

    0000 0010 2 -125

    0111 1111 127 01000 0000 128 1

    1111 1111 255 +128

    Treba napomenuti da se u starijim računarima koristila i Exces 128 notacija.

    2.2.3. Binarno kodirani dekadni (BCD) brojevi

    U jednom od prethodnih poglavlja spominjali smo mogućnost da se predznak broja predstavi

    njegovim ASCII karakterom, odnosno binarnim ekvivalentom znaka minus (-) i zaključili smoda ovo nije efikasno rješenje u smislu potrošnje memorije. Međutim, mogli smo razmišljati nanešto drugačiji način i pokušati da svaku cifru dekadnog brojnog sistema predstavimoodgovarajućom sekvencom nula i jedinica. U tom slučaju bi nam za predstavljanje cifara (0-9)10 bila potrebna 4 bita za svaku cifru (0000 - 1001)2.

    Ovakvo rješenje naziva se binarno kodirani decimali (BCD)  i ono se u starijim izvedbamaračunara i kalkulatora dosta koristilo, a i danas su česte finansijske i poslovne aplikacije kojekoriste ovakvu reprezentaciju brojeva. Da bi predstavili neki decimalni broj na ovaj način,svaka decimalna cifra je smještena u četvorku (nibble), kako slijedi:

    Decimalni: 0 1 2 3 4 5 6 7 8 9BCD: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

    BCD reprezentacija broja (127)10 bila bi:

    0000 0001 0000 0010 0000 0111Kako računari za držanje podataka koriste bajte (8 bita), danas imamo dva uobičajena načinaza smještanje 4-bitnih BCD brojeva u bajt:

    Svaka cifra je smještena u jednu četvorku (nibble), dok su ostali biti popunjeni nulama, jedinicama (u sučaju EBCDIC3 koda) ili sa 0011 u slučaju ASCII tabele.

    Po dvije cifre su smještene u jedan bajt.

    Većina modernih računara koristi  pakovane BCD podatke, koji se uvjek smještaju u riječi(paran broj bajta). Npr. u 32 bita imamo 4 bajta ili 8 četvorki (nibble). Pakovani BCD koristiće7 četvorki za cifre, i jednu četvorku za predznak broja. Kao pozitivan (+) predznak broja koristise (1100)2 odnosno (C)16, a za negativan predznak (1101)2 odnosno (D)16. Prethodno opisanibroj (127)10 u pakovanom BCD formatu (16 bita) bi bio predstavljen kao:

    1 2 7 +0001 0010 0111 1100

    Treba primjetiti da odvajanjem jedne četvorke za predznak takođe gubimo dio prostora zapredtavljanje brojeva. Takođe, kako je 24 = 16, a BCD reprezentacijom predstavljamo samo10 cifara, ni ovo rješenje u smislu potrošnje memorije nije previše efikasno. Ipak, ono se idanas koristi, uglavnom u računovodstvenim sistemima.

    Za komplementiranje BCD brojeva koriste se deveti i deseti komplement . Devetikomplement broja (127)10 dobijamo kada ga oduzmemo od 9999, kao u slijedećem primjeru:

    9999-0127-----9872

    3 Extended Binary Coded Decimal Interchange Code (EBCDIC) je IBM-ov 8-bitni standard, sličan ASCII tabeli, razvijan 1963 i1964 godine, kao pokušaj da se zamjeni u to doba 7-bitna ASCII tabela. Izgovara se Eb-Si-Dik.

  • 8/15/2019 Arhitektura i funkcija racunara

    23/135

      23

    Deseti komplement se dobija kada na deveti komplement dodamo broj 1.

    2.2.4. Realni brojevi

    Do sada smo govorili samo o mogućim načinima predstavljanja označenih i neoznačenihcijelih brojeva. Velika snaga modernih kompjutera zasniva se i na njihovoj mogućnosti obraderealnih brojeva. Zbog toga ćemo ovdje obraditi neke osnovne načine njihovog predstavljanja.

     Brojevi u fiksnim zarezu ( fixed point numbers)

    Ako razmišljamo o mogućnostima na koji način neki računar može da predstavi realan broj,prvo pitanje koje moramo postaviti je na koji način on može da prikaže decimalnu tačku (ilizarez, po evropskoj notaciji). U sistemu sa fiksnom decimalnom tačkom  (ili u fiksnomzarezu, fixed point numbers), za predstavljanje bilo kog broja imamo na raspolaganju uvjekisti, unaprijed određen broj cifara, a decimalna tačka je uvjek na istom mjestu. Primjeriovakvih brojeva su:

    (2.12)10,(0.31)10,(5.55)10.

    U prethodnim primjerima, svaki broj je imao tačno 3 cifre, a decimalna tačka je bila smještenanakon druge cifre s desne strane. Ako posmatramo bajt kao sekvencu bita, takođe bi mogliusvojiti neku vrstu konvencije ili dogovora – npr, decimalna tačka će se nalaziti iza četvrtogbita. Npr, možemo prikazati brojeve:

    (1111 1111)2 = (15.15)10 (1100 1011)2 = (12.11)10 (0001 0001)2 = (1.1)10 

    Važna razlika između predstavljanja binarnih brojeva sa fiksnim zarezom na papiru i uračunaru je u tome da u računaru decimalnu tačku nigdje ne zapisujemo. Kako smo rekli,koristi se neka vrsta konvencije ili dogovora prema kojoj projektanti računara ili programeriznaju gdje se nalazi decimalna tačka.

    Međutim, ovakav način predstavljanja relnih brojeva nije previše precizan, i može da prikaže

    samo ograničen rang realnih brojeva sa malom preciznošću.

     Rang i preciznost brojeva sa fiksnim zarezom

    Predstavlljanje podataka u fiksnom zarezu karakteriše rang  brojeva koje mogu da prikažu injihova preciznost .

    Rang je razlika između najvećeg i najmanjeg broja koji je moguće prikazati.Preciznost je udaljenost između susjednih brojeva na brojnoj pravoj.

    Ako posmatramo prethodno prikazane decimalne brojeve u fiksnom zarezu koji su koristili 3cifre i decimalnu tačku nakon druge cifre s desne strane, pomoću takve konvencije bi mogliprikazati brojeve u rangu   [0.00-9.99]. S druge strane,  preciznost  ovako prikazanih brojevabila bi 0.01, jer bi to bila razlika između bilo koja dva susjedna broja (npr. 5.02 - 5.01 = 0.01).

    Potrebno je uočiti i šta bi se desilo ako bi usvojili neke drugačije konvencije. Ako bi decimalnutačku pomjerili skroz u desno, mogli bi prikazati brojeve u nešto većem rangu [ 000. , 999. ],dok bi izgubili na preciznosti – ona bi u datom slučaju iznosila 1.0. Ako bi usvojili konvencijukojom bi na primjer, decimalnu tačku pomakli skroz u lijevu stranu, mogli bi da prikažemobrojeve u mnogo manjem rangu [ .000 , .999 ]4, dok bi povećali preciznost na 0.001. U obaslučaja, mogli bi da prikažemo po 1000 različitih brojeva, bez obzira da li se radi o brojevimaizmeđu 000-999 ili .000-.999.

    Bitno je istaći da rang ne mora počinjati ni završavati lijepim i logičnim brojevima. Rang možeda bude i [-50, +49] ili [-90, 0].

    Rang i preciznost su veoma važni pojmovi vezani za arhitekturu računara jer su obaograničena brojem bita koji su raspoloživi u datoj arhitekturi. Vidjeli smo da smanjenjem rangamožemo povećati preciznost i obrnuto – smanjenjem preciznosti možemo povećati rang

    broja. Zbog toga ovi pojmovi moraju biti jasni ne samo projektantima računara, već i4 Obratite pažnju – broj 0.999 se često u računarskoj tehnici piše kao .999.

  • 8/15/2019 Arhitektura i funkcija racunara

    24/135

      24

    programerima i običnim korisnicima koji često pokušavaju da prenesu neograničeno velikebrojeve iz realnog svijeta u računar koji uvjek ima ograničene resurse.

     Brojevi u pokretnom zarezu (floating point numbers)

    Kako smo vidjeli, brojevi u fiksnom zarezu uvjek imaju decimalnu tačku na istom mjestu. Onitakođe imaju i fiksni broj cifara lijevo i desno od decimalne tačke. Da bi prikazali vrlo veliki ilivrlo mali broj u fiksnom zarezu potrebno je mnogo cifara. Npr. da bi prikazali jednu milijardu ili109, treba nam 10 decimalnih cifara ili 30 binarnih.

    1,000,000,000 = 11 1011 1001 1010 1100 1010 0000 0000

    Da bi prikazali vrlo mali broj, kao 1/109, ponovo nam treba mnogo cifara – u ovom slučajutačno 9 decimalnih ali i oko 50 binarnih cifara da bi tek približno precizno predstavili traženibroj.

    0.000000001 = 0.000000000000000000000000000001000100101110000010111

    Dakle, da bi prikazali ovakve brojeve u fiksnom zarezu koristeći binarni brojni sistem, morali biodvojiti 30 binarnih cifara za cijele brojeve, i još 50 binarnih cifara za razlomljeni dio broja.Međutim, u praksi se tokom kalkulacija pojavljuju još mnogo veći ili mnogo manji brojevi odovdje prikazanih. Hardver koji bi morao da čuva i obrađuje brojeve koji bi zahtjevali još veći

    rang i preciznost od ovdje prikazanih bio bi vrlo komplikovan, skup i spor. Praksa je takođepokazala da pri manipulaciji vrlo velikim brojevima, obično nije istovremeno potrebna velikapreciznost, odnosno nije potreban veći broj decimala u razlomljenom dijelu podatka. Primanipulaciji jako malim brojevima, u praksi se rijetko javljaju veliki cjelobrojni dijelovi podatka.Zbog toga se tokom razvoja računara pristupilo nešto drugačijem konceptu, koji se nazivafloating point   ( plivajuća tačka ili pokretni zarez ), a koja je nastala iz naučne notacije.Pomoću ovog načina predstavljanja brojeva, moguće je prikazati ili vrlo veliki broj sa manjompreciznošću ili mali broj sa vrlo velikom preciznošću, kao npr.

    1,000,000,000.7 veliki broj, mala preciznost ili0.23456701232 mali broj, velika preciznost

    Podsjećanje: Naučna (scientific) notacija ili eksponencijalna notacija je način pisanja brojevakoji omogućava pisanje brojeva koji su ili preveliki ili premali da bi mogli biti napisani ustandardnoj decimalnoj notaciji. Po ovoj notaciji, brojevi se pišu na slijedeći način:

    a*10b 

    gdje je:

    a – koeficient odnosno mantisa, a

    b – eksponent 

    Ova notacija omogućava nam kraće pisanje vrlo velikih ili vrlo malih brojeva:

    2.2*10

    53

     

    2.13*10-30 

    Pošto je u raznim kompjuterskim programima iz ranog doba bilo teško napisati eksponent kaosuperskript, razvijena je tzv. E notacija

    2.2E+53

    2.13E-30

    Primjetite da ovaj način označavanja nema veze sa matematičkom e  konstantom (Ojlerov

    broj), već da je vezan za pojam Eksponent.

  • 8/15/2019 Arhitektura i funkcija racunara

    25/135

      25

    Floating point reprezentacija omogućava predstavljanje veoma velikog ranga brojeva pomoćumalog broja cifara, zahvaljujući tome što odvaja cifre koje se koriste za preciznost od cifarakoje se koriste za rang broja. Ako bi Avogadrovu konstantu predstavili koristeći ovu notaciju ubazi 10, imali bi:

    +6.023*1023 

    Ovdje je rang predstavljen pomoću eksponenta 10

    23

    , dok je preciznost data ciframa broja ufiksnom zarezu. Dio koji je prikazan brojem u fiksnom zarezu, često se naziva i mantisa  ilisignifikanta. Dakle, možemo reći da brojeve u pokretnom zarezu karakteriše trojka –

     predznak, eksponent i signifikanta. 

    Rang  ovako prikazanog broja prvenstveno je određen brojem cifara u eksponentu (u primjeruexponent ima dvije cifre - 23) i bazom eksponenta (u primjeru je baza 10). Preciznost  na ovajnačin prikazanog broja zavisi najprije od broja cifara mantise (u primjeru su to 4 cifre) ali i odveličine eksponenta.

    Slijedeća slika prikazuje kako bi trojka predznak, eksponent, mantisa (signifikanta) mogla bitiformatirana u računaru:

    Ako su cifre uvjek pakovane na prikazani način (prvo znak, pa eksponent i signifikanta nakraju), onda ovakav način pakovanja olakšava poređenje brojeva. Ovdje se ponovo moramopodsjetiti da nema potrebe da se za decimalnu tačku odvaja poseban prostor za njenoskladištenje, dok god se ona nalazi na istom, unaprijed dogovorenom mjestu.

     Normalizacija i sakriveni bit

    Potencijalni problem pri predstavljanju brojeva u pokretnom zarezu je činjenica da jedan istibroj možemo predstaviti na više načina.

    Primjer:

    37.145 = .0037145×104 = 3714.5×10

    -2.

    Ovakav način predstavljanja brojeva naziva se nenormalizovana forma. U normalizovanoj  formi, decimalna tačka se pomjera u lijevo sve dok ne dođe do lijeve nenulte cifre, dok seistovremeno vrši adekvatno podešavanje eksponenta. Ovaj proces je prikazan u slijedećimprimjerima:

    Primjer 1:3584.1 =3584.1 x 10

    0 =

    358.41 x 101 =35.841 x 10

    2 =

    3.5841 x 103 

    Dakle, zadnji prikazani broj je u normalizovanoj formi5.

    Primjer 2:

    Normalizovati brojeve 300, 4000 i 0.000 000 0061

    300 = 3 x 102 4000 = 4 x 103 0.000 000 0061 = 6.1 x 10-9

    5 720 000 000 = 5.72 x 109 

    5 Treba napomenuti da određena grupa autora normalizaciji u slučaju dekadnog brojnog sistema pristupa nešto drugačije(0.35841), dok u slučaju binarnog brojnog sistema koriste ovdje prikazan pristup.

  • 8/15/2019 Arhitektura i funkcija racunara

    26/135

      26

    Do sada smo o normalizaciju posmatrali samo u svjetlu naučne (scientific) notacije udekadnom brojnom sistemu. Ali kako računari koriste binarni brojni sistem, mogli bi pokušatida predstavimo normalizovane mantise iz prethodnog primjera kao binarne brojeve.Pogledajmo slijedeći primjer:

    Primjer 3:(3)10  = (11)2  = (1 .1)2-norm 

    (4)10  = (100)2  = (1.00)2-norm (5.72)10 = (101.10111)2 = (1.0110111)2-norm 

    Vidimo da kada mantisu nekog normalizovanog broja prikažemo binarno, na prvoj pozicijilijevo uvjek imamo cifru ”1”. Inžinjeri i naučni radnici su davno primjetili ovu činjenicu i usvojilikonvenciju po kojoj nema potrebe skladištiti ovaj bit. On se prije pakovanja podatka zaskladištenje odbaci, a restaurira se prilikom raspakivanja podatka koji treba da učestvuje unekim aritmetičkim operacijama. Ovaj bit se još naziva nevidljivi ili sakriveni (hidden) bit ilisakrivena jedinica. Ovaj koncept omogućava da se u mantisi može držati još jedan, dodatnibit.

    Primjer 4:

    Ako je signifikanta (mantisa) nakon normalizacije imala oblik slijedeće sekvence bita

    10110kada podatak budemo memorisali, signifikanta će biti snimljena u obliku

    0110

    Kada budemo vršili izračunavanje, o ovom bitu moramo voditi računa. Dakle prije nekeračunske operacije, moramo restaurirati originalni podatak:

    10110

     IEEE 754-2008 standard za predstavljanje brojeva u pokretnom zarezu

    IEEE 754-2008 je danas najrašireniji standard za predstavljanje brojeva u pokretnom zarezukoji je prisutan u mnogim hadverskim i softverskim implementacijama. Ovaj standard nastao je na osnovama IEEE-754-1985 standarda, kao njegovo proširenje. Prvi standard iz 1985.

    godine vladao je gotovo 23 godine. Kreiran je od strane IEEE instituta (Institute of Electricaland Electronics Engineers) u želji da unificira način predstavljanja realnih brojeva, jer su u todoba različiti proizvođači koristili različite ideje, što je otežavalo razmjenu podataka iprogramiranje. Standard iz 1985. godine je definisao dva tipa podataka single i double,odnosno jednostruku i dvostruku preciznost . Oba ova formata koriste ranije predstavljenekoncepte: trojku (predznak, eksponent, signifikanta) kao i nevidljivi bit i normalizaciju.

    Jednostruka preciznost ili single (koja se u standardu iz 2008. naziva binary32 ) je 32-bitnibroj sa bazom 2. Karakterišu ga:

    •  Bit predznaka (1 bit): 0 za pozitivne, 1 za negativne brojeve•  Eksponent (8 bita u Excess127 formatu) i•  Signifikanta (23+1 bita).•  Nevidljivi bit je nula samo ako su svi biti eksponenta nule.

    Kada je u pitanju jednostruka preciznost, kompletan broj u decimalnom formatu dobijamopomoću slijedeće formule:

    1272)()1(   −−=   E S   xm xn   (7)Gdje je:

    S – predznak,m – signifikanta (mantisa) data kao decimalni broj,E – Eksponent dat kao decimalni broj.

  • 8/15/2019 Arhitektura i funkcija racunara

    27/135

      27

    Primjer : Ako se u memoriji nalazi podatak 0x3E200000, prikazati taj podatak kao single iizračunati njegovu decimalnu vrijednost.

    Binarna slika ovog podatka je:

    (3E200000)16 = (0011 1110 0010 0000 0000 0000 0000 0000)2 

    Sada ćemo podatak raščlaniti prema prethodnoj slici na triplet (predznak, eksponent,signifikanta):

    1 bit 8 bita 23 bita

    (0) (0111 1100) (010 0000 0000 0000 0000 0000)

    Signifikanti dodajemo sakriveni bit:

    (0) (0111 1100) (1.010 0000 0000 0000 0000 0000)

    Sada izračunavamo vrijednost broja (predznak) (eksponent) (mantisa):

    (0) (124)10  (1.25)10 

    = (+) (124-127)10  (1.25)10 

    Eksponent smo izračunali koristeći Excess127 notaciju, oduzimanjem pomaka 127 od broja.Koristeći formulu (7), imamo:

    0.15625125.0)25.1(12)25.1(12)25.1()1( 31271240 ===−=   −−  x x x x x xn  

    Signifikantu (mantisu) koja je data kao binarni broj možemo pretvoriti u decimalni broj tako, da joj najprije dodamo nevidljivi bit, ali bez decimalne tačke:

    (1010 0000 0000 0000 0000 0000)2 

    Zatim ovaj broj pretvorimo u decimalni

    (1010 0000 0000 0000 0000 0000)2=(10485760)10 

    i podjelimo sa 223:

    M = 10485760 / 223 = 1.25

    Dvostruka preciznost ili double (koja se u standardu iz 2008. naziva binary64) je 64-bitnibroj sa bazom 2. Karakterišu ga:

    •  Bit predznaka (1 bit): 0 za pozitivne, 1 za negativne brojeve•  Eksponent (11 bita u Excess1023 formatu) i•  Signifikanta (52+1 bita).•  Nevidljivi bit je nula samo ako su svi biti eksponenta nule.

    Kod dvostruke preciznosti, kompletan broj u decimalnom formatu dobijamo pomoću slijedećeformule:

    10232)()1(   −−=   E S   xm xn   (8)Gdje je:

    S – predznak,

  • 8/15/2019 Arhitektura i funkcija racunara

    28/135

      28

    m – signifikanta (mantisa) data kao decimalni broj,E – Eksponent dat kao decimalni broj.

    Primjer:  Dat je podatak (0x3fd5 5555 5555 5555). Prikazati taj podatak kao double iizračunati njegovu decimalnu vrijednost.

    •  Binarna slika ovog podatka je:

    (3fd5 5555 5555 5555)16 =

    (0011 1111 1101 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101) 2 

    •  Sada ćemo podatak raščlaniti na triplet (predznak, eksponent, signifikanta):

    1 bit 11 bita 52 bita

    (0) (01111111101) (0101 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101)

    •  Signifikanti dodajemo sakriveni bit:

    (0) (01111111101) (10101 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101 01010101)

    •  Najprije izračunamo vrijednost mantise u kao hex. broj (još ne u decimalnom obliku, dazbog dijeljenja ne izgubimo preciznost)

    (10101 0101 0101 0101 0101 0101 0101 0101 0101 0101 0101 01010101)2  =(0x15555555555555)16

    •  Sada izračunavamo vrijednost broja:

    2-2 x (0x15555555555555 x 2

    -52)

    = 2-54 x 0x15555555555555 =

    = 2-54 x 6004799503160661 = 0.33333.

    Standard IEEE 754-2008 dodaje i neke nove tipove podataka u odnosu na stari standard iz1985. godine. Potreba za novim tipom podataka pojavila se kod proizvođača grafičkih kartica2002. godine. Tada počinju da se javljaju brojevi u pokretnom zarezu dužine svega dva bajta.Ovaj format podataka tada je dobio ime half precision floating point, a po standardu iz 2008.godine nazvan je binary16.

    Half precision floating point   ili binary16 format je 16-bitni broj sa bazom 2, a karakterišuga:

  • 8/15/2019 Arhitektura i funkcija racunara

    29/135

      29

    •  Bit predznaka (1 bit): 0 za pozitivne, 1 za negativne brojeve•  Eksponent (5 bita u Excess15 formatu) i•  Signifikanta (10+1 bita).•  Nevidljivi bit je nula samo ako su svi biti eksponenta nule.

    Pri predstavljanju brojeva u binary16 formatu, decimalni broj dobijamo pomoću slijedećeformule:

    152)()1(   −−=   E S   xm xn   (9)

    Novi strandard definisao je još jedan floating point format, koji u memoriji zauzima čak 16bajta.

    Quadruple precision ili binary128  format je 128-bitni broj sa bazom 2, a karakterišu ga:

    •  Bit predznaka (1 bit): 0 za pozitivne, 1 za negativne brojeve•  Eksponent (15 bita u Excess 16383 formatu) i•  Signifikanta (112+1 bita).•  Nevidljivi bit je nula samo ako su svi biti eksponenta nule.

    Za predstavljanja brojeva u binary128 formatu, možemo koristiti formulu:

    163832)()1(   −−=   E S   xm xn   (10)

    Treba još reći i da su se tokom razvoja različitih arhitektura računara javljali različiti druginačini predstavljanja brojeva u pokretnom zarezu, poput extended notacije, različitih IBM-ovihi Cray-ovih formata, te novijih decimalXX (XX je 32, 64 ili 128) formata, koji se koriste zaračunovodstvene aplikacije.

    Ograničenja brojeva u pokretnom zarezu

    Ako posmatramo bilo koju prethodno prikazanu notaciju, možemo primjetiti da brojevi upokretnom zarezu imaju ograničen broj bita. Ovo ograničenje navodi nas da malo razmislimoo tome kolika je „greška“ prilikom predstavljanja ovih brojeva. Kada kažemo greška, mislimona razmak između susjednih brojeva u pokretnom zarezu. Na realnoj pravoj, floating-pointbrojevi nisu uniformno raspoređeni, njihova gustina je različita u različitim tačkama ove prave.Još preciznije, između susjednih stepena od 2 leži jednak broj floating-point vrijednosti (od 2-4 i od 65536-131072 imamo isti broj vrijednosti). Da bi ovo ilustrovali, posmatraćemohipotetički, normalizovani sistem brojeva u pokretnom zarezu, koji ima:

    •  Normalizovanu (nevidljivi bit je uvjek 1) signifikantu dužine 2 bita,•  Dvo-bitni eksponent u Excess2 formatu,

    •  Bit predznaka.•  Broj nula (0) ćemo predstaviti kao slijedeći niz binarnih cifara (00000)2.

    Mantisa M , nokon što joj dodamo nevidljivi bit, može uzimati pozitivne vrijednosti od (1.00)2-(1.11)2, odnosno:

    (1.00)2 = (1)10 (1.01)2 = (1.25)10 (1.10)2 = (1.50)10 (1.11)2 = (1.75)10

    Moguće binarne vrijednosti eksponenta su (00)2-(11)2, što bi prema Excess2 formatu iznosilood (E= 0-2 = -2)10 do (E= 3-2 = 1)10. Dakle, eksponent E  može uzimati vrijednosti

    -2

  • 8/15/2019 Arhitektura i funkcija racunara

    30/135

      30

    2

    7

    16

    56

    4

    8

    4

    7275.1

    ...

    ... 16

    6

    4

    1

    4

    625.1

    16

    5

    4

    1

    4

    5225.1

    16

    4

    4

    121

    1

    2

    2

    2

    ==⋅=⋅

    =⋅=⋅

    =⋅=⋅

    ==⋅

     

    Ako posmatramo različite eksponente, vidimo da su pozitivni brojevi koji su umnošcieksponenta (-2) - (4/16, 5/16, 6/16 i 7/16) najgušće raspoređeni, dok su umnošci npr.eksponenta (0) - (4/4, 5/4, 6/4 i 7/4) mnogo rjeđe raspoređeni, ali ih u oba slučaja ima isti broj – po četiri umnoška (broja) za svaki eksponent. Situacija je ista i za negativne brojeve.

    Slika takođe prikazuje relativno veliki  procjep (gap)  između nule i prvog broja kojeg jemoguće predstaviti u ovom formatu. Kako je prvi pozitivan broj kojeg možemo da predstavimo

    u našem format 4/16, procjep se kreće od 0 do 4/16 na pozitivnu stranu. Najmanji pozitivanbroj različit od nule, u bilo kom formatu, nastaje kada i eksponent i mantisa imaju namanjemoguće vrijednosti. U našem slučaju, najmanji eksponent je -2, a najmanja normalizovanamantisa je 1. Ovaj  procjep (gap)  nastaje kao posljedica normalizacije mantise. Svinormalizovani floating point sistemi imaju procjep koji je smješten u blizini nule, u kom nijemoguće predstaviti brojeve.

    Ako bi u našem hipotetičkom sistemu morali da oduzmemo

    5/16 – 4/16 = 1/16,

    rezultat bi pao u procjep u kom nismo u mogućnosti da prikazujemo brojeve. Ovakvi rezultatise mogu dobiti i u stvarnim floating point sistemima, kao rezultat neke aritmetičke operacije.Ovakav rezultat se naziva underflow (prekoračenje uslijed suviše malog rezultata).

    Ako bi u našem hipotetičkom sistemu morali da saberemo

    7/2 + 1/2 = 8/2,

    ponovo bi došli u situaciju da takav broj ne možemo da prikažemo. I ova vrsta ograničenjapostoji i u stvarnim floating point sistemima, a naziva se overflow (prekoračenje uslijedsuviše velikog rezultata).

     Denormalizacija (subnormalni brojevi)

    Vidjeli smo da konačan broj bita koji imamo na raspolaganju za predstavljanje brojeva utičena gustinu i raspored tačaka na brojnoj pravoj kao i na prekoračenja uslijed prevelikog ipremalog rezultata (overflow i underflow). Ako imamo na raspolaganju fiksan broj bita koji jenpr. određen standardom, ne možemo uticati na problem predstavljanja prevelikih brojeva.

    Međutim, procjep koji se javlja u blizini nule je rezultat normalizacije, odnosno postojanja

    nevidljivog bita u mantisi koji je uvjek postavljen na 1, iza kojeg se nalazi decimalna tačka.Najmanji pozitivan broj kojeg možemo da predstavimo u normalizovanom bin. sistemu je:

    nbn

      −⋅= 0.1   (11)

    Gdje je b – baza 2, a n eksponent.

    Ako bi denormalizovali mantisu, tada nevidljivi bit više ne bi bio 1, već nula. Ovo bi otvorilo putza predstavljanje mnogo većeg ranga vrlo malih brojeva i popunjavanje procjepa (gap) koji se javlja u blizini nule.

    Denormalizovani (subnormalni) brojevi su dakle svi oni koji popunjavaju underflow procjepu okolini nule u floating point sistemima.

    Iskoristićemo prethodno prikazani hipotetički sistem brojeva u pokretnom zarezu, kojegaćemo denormalizovati. Sada bi prva cifra ovakvog sistema bila nula (0), pa bi mogli prikazatinpr slijedeće brojeve:

  • 8/15/2019 Arhitektura i funkcija racunara

    31/135

      31

    ...

    ...16

    2

    4

    1

    4

    225.0

    16

    1

    4

    1

    4

    1225.0

    020.0

    2

    2

    2

    =⋅=⋅

    =⋅=⋅

    =⋅

     

    Dakle, upotrebom subnormalnih brojeva moguće je popuniti procjep koji se javlja u većininormalizovanih floating point sistema. Nedostatak ovakvog pristupa je mogućnostpojavljivanja više različitih prezentacija istog broja (kao npr. dvije nule).

    Iako ideja upotrebe subnormalih brojeva postoji još od 1980. godine, od numeričkogkoprocesora 8087, ona do danas nije u potpunosti standardizovana. Različiti proizvođačikoriste različite pristupe rješavanju ovog problema. Neki procesori izračunavaju ovakvebrojeve hardverski, na isti način kao i obične brojeve. Drugi procesori se pri izračunavanju

    ovih brojeva koriste uslugama sistemskog softvera, a ponekad čak i aplikativni softverpreuzima ulogu računanja subnormalnih brojeva na sebe. Kada npr. intelov procesor generišeunderflow exception  (posebna vrsta poruke o grešci), aplikacija poput MatLab-a može nasebe preuzeti izračunavanje subnormalnih brojeva.

     Specijalni slučajevi brojeva u pokretnom zarezu

    Pomoću nekog floating point sistema možemo predstaviti 5 osnovnih tipova brojeva.

    •  Nenulte, normalizovane brojeve smo već opisali u prethodnim poglavljima•  Takozvana čista nula predstavlja se svim nulama u polju eksponenta i mantise. Kako

    predznak može biti pozitivan i negativan, imamo dvije reprezentacije za nulu: +0 i -0.•  Beskonačnost (Infinity) se u ovom sistemu predstavlja na način da su svi biti

    eksponenta jedinice, a svi biti signifikante nule. Ovakvi brojevi su pogodni za

    prikazivanje rezultata npr. dijeljenja nekog broja sa nulom.•  NaN (Not A Number) brojevi nastaju kada rezultat nije definisan npr. dijeljenjem nule

    sa nulom ili dijeljenjem beskonačno sa beskonačno. NaN broj se predstavlja pomoćueksponenta u kom su sve jedinice i mantise koja je različita od nule.

    •  Subnormalni brojevi, koji popunjavaju procjep (gap) koji postoji u blizini nule.

    Primjeri brojeva u pokretnom zarezu prikazanih u jednostrukoj preciznosti (single ili binary32):

    Znak Eksponent (e) Mantisa(M)

    Vrijednost

    0 00..01:

    11..10

    XX..XX Pozitivan normalizovan broj1.M × 2(e-127) 

    0 00..00 00..00 Čista nula (pozitivna, +0)1 00..00 00..00 Čista nula (negativna, -0)

    0 11..11 00..00 Plus beskonačnost (+∞)1 11..11 00..00 Minus beskonačnost (-∞)

    0 11..11 00..01:

    01..11

    Signalni NaN(prvi bit mantise - 0)

    SnaN0 11..11 10..00

    :11..11

    Tihi (Quiet) NaN(prvi bit mantise - 1)

    QNaN

    0 00..00 00..01:

    Pozitivan subnormalni broj0.M × 2(-127+1) 

  • 8/15/2019 Arhitektura i funkcija racunara

    32/135

      32

    11..11

  • 8/15/2019 Arhitektura i funkcija racunara

    33/135

      33

    2.3. Binarna aritmetikaU prethodnom poglavlju smo istraživali neke od načina na koji brojevi mogu biti predstavljeniu računaru, ali smo tek dotakli problematiku aritmetičkih operacija koje se mogu izvoditi nadtim brojevima. U ovom poglavlju ćemo obraditi četiri osnovne aritmetičke operacije –

    sabiranje, oduzimanje, množenje i dijeljenje. Na početku ćemo vidjeti kako se ove operacijeizvode nad cijelim brojevima, a zatim ćemo obraditi i brojeve u pokretnom zarezu.

     Binarno oduzimanje

    Binarno oduzimanje se obavlja način sličan ručnom oduzimanju decimalnih brojeva. Dvabinarna broja A i B se oduzimaju sa desna u lijevo dok ne dobijemo rezultat i eventualnupozajmicu. Kako biti A i B mogu uzeti samo vrijednosti 0 i 1, mogu se javiti slijedećekombinacije:

    A B ∑ Pozajmica

    (borrow)0 0 0

    0 1 1 (1)1 0 11 1 0

    Pogledaćemo primjer oduzimanja binarnog broja (10)2  od (101)2:

    1

     1010101

    - 111001

    --------

    100

    2a  1

      1

     1010101

    - 111001

    --------

      100

    2b1

      01

     1010101

    - 111001

    --------

    1100

    3a

    0

     1010101

    - 111001

    --------

      1100

    3b  1

    10

     1010101

    - 111001

    --------

      1100

    3c  1

      11

     010

     1010101

    - 111001

    --------

    11100

    4  1

    11

     010

     1010101

    - 111001

    --------

    011100

    5  1

      11

    010

     1010101

    -0111001

    --------

    0011100

     Oduzimanje binarnih brojeva svodi se na upisivanje vrijednosti iz tabele, osim u slučaju (0-1),kada se javlja prenos. Prenos je opisan u koracima 2a i 2b. U koraku 2a, najprije prectramonulu od koje oduzimamo, a zatim od većeg broja pozajmimo bit sa liijeve strane i predstavimoga pomoću dvije jedinice.

    U koraku 2b, koji je odvojen zbog jednostavnosti, poništićemo jednu od novih jedinica iprvobitnu jedinicu, tako da nam ostaje 1.

  • 8/15/2019 Arhitektura i funkcija racunara

    34/135

      34

    U koraku 3a, ponovo treba oduzeti (0-1), ali sada je na lijevoj strani nula od koje ne možemoposuđivati. Zbog toga, najprije posuđujemo iz njene susjedne kolone (korak 3b), a zatimkoristimo jednu od već posuđenih jedinica (korak 3c). U koraku 3c, poništavanje jedinicanećemo prikazivati zbog jednostavnosti. Korake 4 i 5 ne treba posebno opisivati jer se ponovoradi o prostom preuzimanju vrijednosti iz tablica. Prikazana metoda naziva se metoda

     pozajmice (borrow). Kako vidimo, ovu metodu bi bilo prilično teško hardverski

    implementirati, pa ćemo u slijedećem poglavlju vidjeti još jednu metodu za binarnooduzimanje.

     Prenos i prekoračenje u drugom komplementu

    Današnji računari uglavnom koriste drugi komplement za predstavljanje cijelih brojeva. Kakosmo vidjeli, iako na brojnoj pravoj postoji beskonačno mnogo realnih brojeva, računari moguda prikažu samo ograničen skup brojeva. Ako bi se npr. ograničili na 3 bita, pomoću drugogkomplementa bi mogli da predstavimo ukupno 8 različitih vrijednosti, kao na slijedećoj slici:

    000

    001

    010

    011

    100

    -4

    101

    110

    111

    0

    1

    2

    3-3

    -2

    -1

    Sabiranje

     Ako bi počevši od nule (000)

    2, uvećavali binarni broj za po jedan, dobili bi prikazani niz

    binarnih brojeva (000, 001, 010, .. ,111)2. Binarno sabiranje već ranije prikazano, i samo posebi je trivijalno. Na prethodnoj slici treba obratiti pažnju na decimalnu reprezentacijunavedenih brojeva. Kako smo usvojili konvenciju prema kojoj ćemo brojeve predstavljatipomoću drugog komplementa, primjećujemo postojanje dva granična slučaja vezana zapromjenu predznaka.

    Zahvaljujući drugom komplementu, uvećavanjem broja (011)2  ili (3)10, nećemo dobiti (+4)10,već prelazimo u negativne brojeve (-4)10.

    Drugi granični slučaj je još zanimljiviji. Inkrementiranjem broja (111)2  dobijamo nulu, ali uzpojavu još jednog bita, koji se naziva bit prenosa (carry), koji ne možemo smjest