190
SADRŽAJ Sadržaj v Predgovor ix Predgovor I delu x 1. Istorijski razvoj računara 1 1.1. Praistorija 1 1.2. Prva generacija (1945-1955) 2 1.3. Druga generacija (1955-1965) 4 1.4. Treća generacija (1965-1980) 5 1.5. Četvrta generacija (1980 do danas) 6 1.6. Peta generacija (u razvoju) 7 1.7. Istorijat razvoja mikroprocesora i mikroračunara 7 2.Brojni sistemi i prevođenje brojeva 9 2.1. Konverzija baze 9 2.1.1. Pozicioni brojni sistemi 9 2.2. Prevođenje brojeva iz jednog brojnog sistema u drugi 10 2.2.1. Prevođenje brojeva kod koga se operacije izvršavaju u brojnom sistemu sa osnovom r 2 10 2.2.2. Prevođenje brojeva kod koga se operacije izvršavaju u brojnom sistemu sa osnovom r 1 10 2.3. Brojanje u sistemu osnove r 13 2.4. Binarne, oktalne i heksadecimalne konverzije 13 2.5. Problemi 16 3. Predstavljanje brojeva u računaru 17 3.1. Predstavljanje celih brojeva u fiksnom zarezu 17 3.1.1. Prezentacija znak-moduo 17 3.1.2. Nepotpuni komplement 18 3.1.3. Potpuni komplement 18 3.2. Obim reči 18 3.3. Tačnost 19 3.4. Odsecanje i zaokruživanje 19 3.5. Binarna aritmetika 20 3.5.1. Sabiranje 20 3.5.2. Oduzimanje 21 3.5.3. Množenje 21 3.5.4. Deljenje 22 3.6. Komplement aritmetika 22 3.6.1. Aritmetika u prezentaciji znak-moduo 22 3.6.2. Aritmetika u prezentaciji potpunog komplementa 23 3.7. Predstavljanje znakova 29 3.8. Predstavljanje brojeva u pokretnom zarezu 30 3.8.1. Normalizovana notacija 30 3.8.2. Opseg broja u pokretnom zarezu 31 3.8.3. Preciznost broja u pokretnom zarezu 31 3.8.4. Brojna osnova 31 3.8.5. Struktura FP formata 31 3.8.6. Predstavljanje broja nula 31 3.8.7. Nevidljivi bit 31 3.8.8. Standardi za FP 31

› ~joka › Digitalna elektronika › De.RI.Knjige... · SADRŽAJ Sadržaj v Predgovor ix Predgovor I delu x 1. Istorijski razvoj računara 1 1.1. Praistorija 1 1.2. Prva generacija

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • SADRŽAJ

    Sadržaj v Predgovor ix Predgovor I delu x 1. Istorijski razvoj računara 1

    1.1. Praistorija 1 1.2. Prva generacija (1945-1955) 2 1.3. Druga generacija (1955-1965) 4 1.4. Treća generacija (1965-1980) 5 1.5. Četvrta generacija (1980 do danas) 6 1.6. Peta generacija (u razvoju) 7 1.7. Istorijat razvoja mikroprocesora i mikroračunara 7

    2.Brojni sistemi i prevođenje brojeva 9

    2.1. Konverzija baze 9 2.1.1. Pozicioni brojni sistemi 9

    2.2. Prevođenje brojeva iz jednog brojnog sistema u drugi 10 2.2.1. Prevođenje brojeva kod koga se operacije izvršavaju u brojnom sistemu sa osnovom r2 10 2.2.2. Prevođenje brojeva kod koga se operacije izvršavaju u brojnom sistemu sa osnovom r1 10

    2.3. Brojanje u sistemu osnove r 13 2.4. Binarne, oktalne i heksadecimalne konverzije 13 2.5. Problemi 16

    3. Predstavljanje brojeva u računaru 17

    3.1. Predstavljanje celih brojeva u fiksnom zarezu 17 3.1.1. Prezentacija znak-moduo 17 3.1.2. Nepotpuni komplement 18 3.1.3. Potpuni komplement 18

    3.2. Obim reči 18 3.3. Tačnost 19 3.4. Odsecanje i zaokruživanje 19 3.5. Binarna aritmetika 20

    3.5.1. Sabiranje 20 3.5.2. Oduzimanje 21 3.5.3. Množenje 21 3.5.4. Deljenje 22

    3.6. Komplement aritmetika 22 3.6.1. Aritmetika u prezentaciji znak-moduo 22 3.6.2. Aritmetika u prezentaciji potpunog komplementa 23

    3.7. Predstavljanje znakova 29 3.8. Predstavljanje brojeva u pokretnom zarezu 30

    3.8.1. Normalizovana notacija 30 3.8.2. Opseg broja u pokretnom zarezu 31 3.8.3. Preciznost broja u pokretnom zarezu 31 3.8.4. Brojna osnova 31 3.8.5. Struktura FP formata 31 3.8.6. Predstavljanje broja nula 31 3.8.7. Nevidljivi bit 31 3.8.8. Standardi za FP 31

  • RAČUNARSKI SISTEMI: Principi digitalnih sistema ____________________________________________________________________________________________ vi

    3.9. Problemi 33 4. Kodiranje, detekcija i korekcija grešaka 35

    4.1. Težinski kodovi 35 4.2. Netežinski kodovi 36

    4.2.1. Kod "višak 3" 36 4.2.2.Ciklični kod 37 4.2.3. Grejov kod 38

    4.3. Detekcija grešaka 39 4.3.1. Definicija rastojanja 39 4.3.2.Kodovi za detekciju grešaka 39 4.3.3. Kod za proveru parnosti 41 4.3.4. M-izlaza-od-N kodovi 41 4.3.5. Bikvinari kodovi 41 4.3.6. Kodovi sa ostatkom 42

    4.4. Kodovi za korekciju i detekciju grešaka 43 4.4.1. Bergerovi kodovi 43

    4.5. Kodovi za korekciju 44 4.5.1. Hemingovi kodovi 45

    4.6. Problemi 51 5. Bulova i prekidačka algebra i elementarna logička kola 53

    5.1. Osnovni postulati i teoreme 53 5.2.Prekidačka algebra 56

    5.2.1. Prekidačke funkcije i izrazi 57 5.2.2.Zadavanje prekidačkih funkcija 57 5.2.3. Fiktivne promenljive prekidačkih funkcija 59 5.2.4. Superpozicija prekidačkih funkcija 59 5.2.5. Osobine nekih funkcija jedne i dve nezavisne promenljive 59 5.2.6. Potpuna disjunktivna normalna forma i potpuna konjuktivna normalna forma funkcije 61 5.2.7. Klase prekidačkih funkcija i potpuni skupovi prekidačkih funkcija 61

    5.3. Elemenetarna logička kola 65 5.3.1. AND 65 5.3.2. OR 65 5.3.3. NOT 66 5.3.4. Izvedena logička kola 66 5.3.5. Ostali tipovi logičkih kola 67

    5.4. Problemi 67 6. Pojednostavljenje prekidačkih funkcija 69

    6.1. Algebarske manipulacije 69 6.2. Implikanti 70 6.3. Metoda Karnoovih mapa 71 6.4. MakKlaskijev metod minimizacije prekidačkih funkcija 83 6.5. Minimizacija kombinacionih mreža sa većim brojem ulaza i izlaza 87 6.6. NAND-NAND i NOR-NOR logika 90

    6.6.1. NAND-NAND logika 90 6.6.2. NOR-NOR logika 92 6.6.3. Implementacila kombinacione logike pomoću ExOR logičkih kola 93

    6.7. Korisna kola 95 6.7.1. Multiplekseri 95 6.7.2. Demultiplekseri 99 6.7.3. Dekoderi 101

    6.8. Magistrale sa tri stanja 103 6.9. Programabilna kola 105

    6.9.1. Komutatori tačaka ukrštanja 106 6.9.2. Programabilna AND i OR kola 107 6.9.3. Tipovi PLD kola 108

  • Sadržaj ____________________________________________________________________________________________

    vii

    7. Sekvencijalna kola 115 7.1. Odnos između kombinacionih i sekvencijalnih kola 115 7.2. Pojam sekvencijalnih kola 115 7.3. Struktura sekvencijalnih kola 116

    7.3.1. Podela sekvencijalnih kola 117 7.4. Lečevi 118

    7.4.1. SR leč 118 7.4.2. D leč 119

    7.5. Flip-flopovi 121 7.5.1. Metodi taktovanja 121 7.5.2. Kombinovanje lečeva kod flip-flopova 123 7.5.3. Master-slave flip-flop - okidanje na nivo 123 7.5.4. Master-slave JK flip-flop - okidanje na nivo 123 7.5.5. Flip-flop koji se okida na ivicu 124 7.5.6. Ivično okidani D flip-flop 124 7.5.7. Ivično okidani JK flip-flop 126 7.5.8. T flip-flop 127

    7.6. Analiza rada sekvencijalnih kola 128 7.6.1. Tabela stanja i dijagram stanja 128 7.6.2. Strukture sinhronih sekvencijalnih kola 130 7.6.3. Opis rada sekvencijalnih kola 135

    7.7. Procedura za projektovanje sekvencijalnih kola 138 7.7.1. Specifikacija problema 138 7.7.2. Konstrukcija dijagrama stanja i tabele stanja 139 7.7.3. Redudantna stanja 140 7.7.4. Izvođenje jednačine stanja 144

    8. Registri i brojači 147

    8.1. Registri 147 8.2. Pomerački registri 149 8.3. Brojači 151

    8.3.1. Ripple brojač 151 8.3.2. Sinhroni brojač 156

    9. Aritmetička kola 159

    9.1. Sabiranje 159 9.1.1. Elementarna kola za sabiranje 159 9.1.2. Serijski i paralelni sabirači 161 9.1.3. Carry-lookahead sabirači 163 9.1.4. Carry select sabirači 169 9.1.5. Carry save sabirači 170 9.1.6. Carry-skip sabirači 174 9.1.7. Protočni sabirači 174 9.1.8. BCD sabirači 175

    9.2. Kola za oduzimanje 176 9.3. Množači 178

    9.3.1. Strukture množača neoznačenih brojeva 179 9.3.2. Množenje označenih brojeva 180

    9.4. Deljenje 184 9.5. Komparatori 185

    Indeks 187 Literatura 191

  • 1. ISTORIJSKI RAZVOJ RAČUNARA

    Kao i svaka istorija, i istorija razvoja elektronskih digitalnih računara ima i svoju praistoriju, tj. pojavi savremenih računara prethodili su mnogi pokušaji da se napravi nekakva mašina sposobna da izvodi jednostavnije ili složenije računske operacije. U ovoj glavi ćemo izvršiti kratak pregled, kako tih "praistorijskih" pokušaja, tako i pregled razvoja različitih generacija računara.

    1.1. Praistorija

    Ako ne računamo različita ručna računska sredstva, poput različitih vrsta računaljki i abakusa koji su se javili još u starom veku, možemo reći da je prvu računsku mašinu napravio 1642. godine poznati francuski matematičar i fizičar Blez Paskal (Blaise Pascal, 1623-1662). On je tada imao samo 19 godina a pomenuti poduhvat je izveo da bi pomogao svom ocu koji je bio poreznik. Paskalova mašina je bila u potpunosti mehanička i koristila je zupčanike a pokretala se okretanjem ručice. Ta mašina je mogla da izvodi jedino operacije sabiranja i oduzimanja. Međutim, trideset godina kasnije je slavni nemački matematičar Lajbnic (Gottfried Wilhelm von Leibnitz, 1646-1716) napravio računsku mašinu koja je, osim sabiranja i oduzimanja, mogla da izvršava i operacije množenja i deljenja. Naravno da je i ova mašina bila u potpunosti mehanička i nije donela nikakvu novinu u tehnologiji, ali ipak predstavlja ekvivalent jednostavnog džepnog kalkulatora 300 godina pre pojave džepnih kalkulatora kakve danas koristimo. Na ovom polju se ništa nije dešavalo narednih 150 godina, sve dok Čarls Bebidž (Charles Babbage, 1792-1871), profesor matematike na Univerzitetu Kembridž, nije izumeo diferencnu mašinu. Ova, takođe mehanička mašina, je mogla samo da sabira i oduzima, a koristila se za izračunavanje tablica u pomorskoj navigaciji. Mašina je projektovana tako da je izvršavala uvek isti algoritam, metod konačnih razlika korišćenjem polinoma. Najinteresantnija karakteristika diferencne mašine je njeno rešenje izlaza. Rezultati su upisivani na bakrenu ploču pomoću čeličnih kalupa. Na izvestan način, upotrebljeni metod je nagovestio kasniju primenu write-once medijuma, kao što su bile bušene kartice ili prvi optički diskovi. Mada je diferencna mašina radila prilično dobro, Bebidž se nije zadovoljavao računskim sredstvom koje je moglo da izvršava samo jedan algoritam. Ubrzo je počeo da troši, za ono vreme, sve veće i veće sume sopstvenog kao i veliku svotu vladinog novca, na projekat i konstrukciju naslednika diferencne mašine kojeg je nazvao analitička mašina. Analitička mašina se može smatrati prvim mehaničkim programabilnim računarom. Ona je imala četiri dela: memoriju, jedinicu za izračunavanje i ulaznu i izlaznu jedinicu zasnovane na principu bušenih kartica (naravno, sa odgovarajućim čitačem i bušačem kartica). Memorija je bila kapaciteta 1000 reči od po 50 decimalnih cifara i služila je za smeštanje promenljivih i rezultata. Jedinica za izračunavanje je mogla da prihvati operande iz memorije, da ih sabira, oduzima, množi ili deli, i da vrati rezultat u memoriju. Kao i diferencna, i analitička mašina je bila u potpunosti mehanička. Veliki napredak u odnosu na diferencnu mašinu sastojao se u tome što je analitička mašina bila računar opšte namene. Instrukcije su se čitale sa bušenih kartica i izvršavale. Neke instrukcije su nalagale prenos dva broja iz memorije u jedinicu za izračunavanje, izvršavanje određene operacije nad njima i vraćanje rezultata u memoriju. Druga grupa instrukcija je mogla da izvrši testiranje broja i uslovno grananje u odnosu na to da li je broj negativan ili pozitivan. Upisivanje različitih programa na bušene kartice je omogućavalo da analitička mašina izvršava različita izračunavanja, dok to nije bio slučaj sa diferencnom mašinom. Kako je analitička mašina bila programabilna, potreban je bio softver, a samim tim i programer. Bebidž je za taj posao najmio ženu po imenu Ada Avgusta Lovelas, inače kćerku lorda Bajrona. Gospođa Ada je tako prvi programer na svetu i njoj u čast je programski jezik Ada dobio ime (naročito zbog činjenice, što je naknadno utvrđeno, da su svi programi koje je ona napisala bili korektni). Na žalost, Bebidž nikada nije do kraja realizovao analitičku mašinu zbog njene komplikovane mehaničke konstrukcije i nesavršenosti tehnologije devetnaestog veka. Ipak, njegov rad ima veliki značaj, s obzirom da i moderni računari imaju sličnu strukturu, pa se može reći da je Bebidž praotac modernih digitalnih računara.

  • RAČUNARSKI SISTEMI: Principi digitalnih sistema 2

    Kako su sva pomenuta računska sredstva bila mehanička, za praktične početke razvoja električnih računara uzimaju se tridesete i četrdesete godine XX veka. Prvi veliki korak u razvoju ovih mašina načinio je nemački student tehnike Konrad Zuse koje je tokom tridesetih godina napravio niz automatskih računskih mašina zasnovanih na tehnologiji elektromagnetnih releja. Interesantno je to da Zuse nije bio upoznat sa Bebidževim radom. Njegove mašine su uništene u bombardovanjima tokom II svetskog rata, tako da one nisu uticale na dalji razvoj u ovoj oblasti. Ipak, Zuse je jedan od pionira na ovom polju. Nešto kasnije su Džon Atanasov (John Atanasoff) sa Ajova Stejt Koledža i Džordž Stibic (George Stibbitz) iz Belovih Laboratorija projektovali kalkulatore. Atanasovljeva mašina je bila jako napredna za ono vreme. Koristila je binarnu aritmetiku i imala kondenzatore kao memorijske elemente koji su se povremeno osvežavali radi sprečavanja curenja naelektrisanja. Savremeni dinamički RAM čipovi upravo rade na ovom principu. Međutim, ova mašina nikada nije proradila zbog neodgovarajuće tehnologije ondašnjeg doba. Stibizov računar je bio primitivniji od Atanasovljevog, ali je proradio. Rad ove mašine je javno demonstriran 1940. godine na konferenciji u Darmut Koledžu. U publici je bio i Džon Mokli (John Mauckley), tada anonimni profesor fizike na Pensilvanijskom Univerzitetu. Dok su Zuse, Stibic i Atanasov projektovali automatske kalkulatore, jedan mladić po imenu Hauard Ejken (Howard Aiken) se mučio ručno vršeći složena numerička izračunavanja tokom svog rada na doktorskoj disertaciji na Harvardu. Pošto je odbranio disertaciju shvatio je važnost mogućnosti računanja pomoću mašina. Otišao je u biblioteku i tamo otkrio Bebidžov rad. Odlučio je da napravi mašinu opšte namene na bazi releja umesto mehaničkih zupčanika zbog kojih Bebidž i nije uspeo. Njegova prva mašina, Mark I, završena je 1944. godine na Harvardu. Imala je 72 reči memorije od po 23 decimalne cifre, i ciklus instrukcije od 6 sekundi. Za ulaz i izlaz su korišćene bušene papirne trake. U vreme kada je Ejken dovršio sledeću mašinu Mark II, elektromagnetni releji bili su prevaziđeni. Počela je era elektronike i era elektronskih digitalnih računara. Prava istorija elektronskih digitalnih računara deli se u nekoliko generacija. Vremenske periode tokom kojih su pojedine generacije trajale treba uzeti samo orijentaciono, jer različiti autori navode različite podatke. Ovo otuda što su računari pojedine generacije korišćeni i posle nastanka nove generacije računara, tako da je teško povući preciznu granicu.

    1.2. Prva generacija (1945-1955)

    Motiv za ubrzani rad na elektronskim računarima bio je II svetski rat. Tokom jednog dela rata nemačke podmornice su pravile pustoš među britanskim brodovima. Komande i podaci o kretanju savezničkih brodova bili su slati iz Berlina putem radio veze. Naravno da su Britanci mogli da prisluškuju te radio poruke, ali je problem bio što su one bile šifrovane pomoću uređaja koji se zvao ENIGMA (interesantno je da je preteča ove mašine bio uređaj koji je konstruisao pronalazač amater Tomas Džeferson (Thomas Jeferrson) - bivši predsednik SAD). Još na početku rata je britanska obaveštajna služba uspela da nabavi jedan primerak mašine ENIGMA. Ali, da bi se vršilo dešifrovanje, potrebno je bilo vršiti veliki broj izračunavanja, a sve je to moralo da bude obavljeno vrlo brzo pošto se radio poruka uhvati. Britanska vlada je oformila tajnu laboratoriju gde je napravljen elektronski računar nazvan COLOSSUS. U projektovanju mašine učestvovao je i čuveni engleski matematičar Alen Tjuring (Alan Turing). COLOSSUS je proradio 1943, ali pošto je britanska vlada držala u strogoj tajnosti ovaj projekat i na njega je, kao na vojnu tajnu, stavljen tridesetogodišnji embargo, to COLOSUSS predstavlja slepo crevo, obzirom da nije uticao na razvoj drugih elektronskih računara. Ipak, bio je to prvi elektronski računar. Osim što je izazvao uništenje Zuseovog rada, i podstakao konstruisanje COLOSSUS-a, rat je uticao na razvoj računarstva i u SAD. Vojsci SAD je, radi zauzimanja elemenata u teškoj artiljeriji, bilo potrebno izračunavanje različtih tabela. Taj posao je, kada se ručno obavljao, zahtevao određeno vreme i bio je podložan greškama. Već pomenuti Mokli, koji je bio upoznat sa radom Atanasova i Stibica, znao je za potrebu armije za mehaničkim kalkulatorom, ali je predložio izradu elektronskog računara. Predlog je prihvaćen 1943. godine, i Mokli i njegov postdiplomac Ekert (J. Presper Eckert) su počeli da rade na elektronskom računaru koga su nazvali ENIAC (Electronic Numerical Integrator And Computer). Ova mašina se sastojala od 18000 vakuumskih cevi i 1500 releja. ENIAC je bio težak 30 tona i zauzimao je veličinu odbojkaškog igrališta. Snaga mašine bila je 140kW. Zli jezici kažu da se kvario u proseku svakih sedam minuta (što nije čudo, obzirom na ogromnu disipaciju i upotrebljenu tehnologiju) a za množenje dva broja potrebne su bile 3ms. Što se arhitekture tiče, ENIAC je imao dvadeset registara, a svaki je mogao da sadrži desetocifreni decimalni broj, i to tako što je svaka cifra predstavljena sa po deset vakuumskih cevi. Programirao se postavljanjem 6000 multipozicionih prekidača a veze između komponenata su bile žičane. Mašina je završena 1946. godine kada je bilo prekasno da se upotrebi u svrhu za koju je originalno bila namenjena. Međutim, kako je rat bio završen, Mokli i Ekert su organizovali letnju školu sa ciljem da objasne svoj rad kolegama. Ova letnja škola predstavlja početak eksplozije interesovanja za izgradnju velikih računara.

  • 1. Istorijski razvoj računara 3

    Posle tog istorijskog trenutka mnogi drugi istraživači se se dali na posao proizvodnje elektronskih računara. Prvi naredni računar koji je proradio 1949. godine bio je EDSAC izgrađen na Univerzitetu Kembridž u Velikoj Britaniji. Njegov autor bio je Moris Vilks (Maurice Wilkes), a ovaj računar vredi pomenuti jer je to bio prvi računar sa zapamćenim programom. Sledili su JOHNIAC napravljen u firmi Rand Corporation, ILLIAC napravljen na Univerzitetu u Ilinoisu, MANIAC iz Los Alamos Laboratory i WEIZAC sa Vajcmanovog instituta u Izraelu. Ekert i Mokli su počeli da rade na narednom računaru EDVAC (Electronic Discrete Variable Automatic Computer), ali je taj projekat bio fatalno ugrožen kada su njih dvojica napustila Univerzitet u Pensilvaniji radi osnivanja kompanije u Filadelfiji (Eckert-Mauchley Computer Corporation). Posle više fuzionisanja, ova kompanija je postala današnja Unisys Corporation. U međuvremenu, jedan od učesnika ENIAC projekta, Džon fon Nojman (John von Neumann) je otišao na Prinstonov Institut za napredne studije da bi radio na sopstvenoj verziji EDVAC-a, koju je nazvao IAS mašina. U vreme kada je počeo da se bavi računarima fon Nojman je bio jedan od najvećih matematičara toga doba. Za njega kažu da je bio genije kalibra Leonarda da Vinčija. Govorio je više jezika, bio je stručnjak za fiziku i matematiku i mogao je da se priseti svega što je ikada čuo, video ili pročitao. Fon Nojman je zaključio da je programiranje računara pomoću velikog broja prekidača i kablova sporo i teško, i da je bolje program predstaviti u digitalnom obliku u memoriji računara. On je takođe shvatio da je, umesto decimalne aritmetike koju je koristio ENIAC, bolje koristiti binarnu aritmetiku (s obzirom da je kod ENIAC-a svaka cifra predstavljana sa po deset vakuumskih cevi od kojih je uvek samo jedna bila upaljena). Njegov arhitekturni princip, poznat kao fon Nojmanova mašina, primenjen je kod prvog računara sa zapamćenim programom EDSAC, i još uvek je osnova za gotovo sve računare i do današnjih dana. Ova arhitektura, kao i IAS mašina koju je fon Nojman izradio u saradnji sa Hermanom Goldštajnom (Herman Goldstine), imala je ogroman uticaj na dalji razvoj računara. Skica ove arhitekture je prikazana na slici 1.1. Fon Nojmanova mašina je imala pet osnovnih delova: memoriju, aritmetičko logičku jedinicu, jedinicu za upravljanje programom i ulaznu i izlaznu opremu. Memorija se sastojala od 4096 reči od kojih je svaka imala 40 bitova. Svaka reč je sadržala ili dve 20-bitne instrukcije ili dva 39-bitna označena cela broja. Osam bitova instrukcije je definisalo operaciju, a prostalih 12 je specificiralo reč u memoriji. Unutar aritmetičko logičke jedinice, preteča savremene CPU (Central Processing Unit) je bio specijalni interni 40-bitni registar nazvan akumulator. Tipična instrukcija, na primer, sabira memorijsku reč sa sadržajem akumulatora ili upisuje sadržaj akumulatora u memoriju. Mašina nije imala aritmetiku u pokretnom zarezu, jer je fon Nojman smatrao da će svaki kompetentni matematičar moći da sam odredi poziciju decimalne tačke.

    Izlaz

    Ulaz

    Aritmetičko logička jedinica Upravljačka

    jedinica

    Memorija

    Akumulator

    Sl. 1.1. Originalna fon Nojmanova mašina.

    Otprilike u isto vreme kada je fon Nojman pravio IAS mašinu, istraživači na MIT-u (Massachusetts Institute of Technology) su takođe pravili jedan računar. Taj računar zvan Whirlwind I je, za razliku od ENIAC-a i drugih mašina sličnog tipa koje su imale dugačke memorijske reči, imao 16-bitne reči i bio je projektovan za upravljanje u realnom vremenu. Ovaj projekat je doveo do izuma memorije od magnetnih jezgara Džeja Forestera (Jay Forrester), a kasnije i do prvog komercijalnog mini računara. Dok se sve to dešavalo, IBM je bio mala kompanija koja je proizvodila bušače kartica i mašine za mehaničko sortiranje kartica (oni su i počeli sa proizvodnjom mehaničkih pisaćih mašina i druge mehaničke kancelarijske opreme, pa otuda i ime kompanije - International Business Machines). Iako je IBM finansirao jedan deo projekta Hauarda Ejkena, oni nisu bili naročito zainteresovani za proizvodnju računara sve dok nisu 1953.

  • RAČUNARSKI SISTEMI: Principi digitalnih sistema 4

    godine proizveli računar 701. Dakle, dugo vremena pošto su Ekert i Mokli postali broj jedan na tržištu sa njihovim računarom UNIVAC. Računar 701 je imao 2k 36-bitnih reči sa dve instrukcije po reči. To je bila prva u seriji mašina koje će za samo desetak godina postati dominantne na tržištu računara. Tri godine kasnije, proizveden je 704, koji je imao 4k reči memorije izrađene u tehnologiji magnetnih jezgara, 36-bitne instrukcije, i hardver za izvršavanje operacija u pokretnom zarezu. Godine 1958. IBM je proizveo svoj poslednji računar sa vakuumskim cevima - mašinu sa oznakom 709. Recimo nekoliko reči i o softveru. Već smo pomenuli način na koji se proramirao ENIAC. Kasnije se počelo sa računarima koji imaju zapamćene programe (EDSAC). U svakom slučaju, jezik na kome se programiralo bio je mašinski jezik - jezik nula i jedinica. Programi na takvom jeziku bili su nepregledne liste redova ispisanih nulama i jedinicama. Pisanje takvih programa bilo je mukotrpno, njihovo čitanje još teže, a najgore je bilo pronaći grešku u programu. Uz sve to, mašinski jezici (kako im to i ime kaže) su mašini orijentisani: drugi računar - drugi jezik. Takve računare mogli su da programiraju samo oni koji su dobro poznavali njihovu arhitekturu. Vrlo brzo su programeri počeli da razmišljaju o tome kako da svoje programe skrate i učine jasnijim pa su se dosetili da binarne nizove pretvore u brojeve u dekadnom, a kasnije u heksadekadnom brojnom sistemu. Ovo je tek malo smanjilo fizički obim listinga programa, a uvelo je potrebu za prvim rudimentarnim prevodiocima koji su prevodili dekadne, odnosno heksadekadne brojeve, nazad u binarni sistem (računari su još uvek, pa i danas, razumevali isključivo mašinski jezik). Nešto kasnije su uvedeni asemblerski jezici, ili jezici II generacije, gde su naredbe predstavljane simboličkim oznakama. Ovo je dovelo do daljeg smanjenja obima programa, do nešto bolje čitljivosti, ali i do složenijih prevodilaca - asemblera. Međutim, i dalje se radi o mašini orijentisanim jezicima, a odnos broja naredbi mašinskog i asemblerskog jezika je 1:1. O operativnim sistemima nije bilo ni govora. Sve potrebne radnje je uglavnom izvršavao sam operater. Ipak, era elektronskih digitalnih računara je započela, kao i nezaustavljiv intezivni razvoj na ovom polju. Jedan događaj u naučnom svetu, tek koju godinu pošto je proizveden ENIAC, dovešće, u godinama koje su sledile, do revolucije u oblasti računarstva i, uopšte, elektronike.

    1.3. Druga generacija (1955-1965)

    Godina 1948. donosi taj revolucionarni pomak. Naime, te godine su trojica stručnjaka, koji su radili za Bell Laboratories, Bardin (John Bardeen), Bretejn (Walter Brattain) i Šokli (William Shockley) izumeli tranzistor, za šta su 1956. godine dobili Nobelovu nagradu za fiziku. Za samo desetak godina tranzistori su napravili revoluciju u računarskoj industriji, tako da su do kraja pedesetih vakuumske cevi potpuno izbačene iz upotrebe, bar što se proizvodnje računara tiče. Značajno su smanjene dimenzije računara kao i potrošnja, dok su brzina i pouzdanost rada znatno povećane. Sa pojavom diskretnih poluprovodničkih komponenti, javljaju se i prva štampana kola. Prvi tranzistorizovan računar napravljen je u Linkolnovoj laboratoriji na MIT-u. To je bila 16-bitna mašina poput Whirlwind I. Nazvan je TX-0 (Transistorized eXperimental computer 0) a namenjen je bio samo kao uređaj za testiranje jače mašine TX-2. TX-2 nije predstavljao bogznašta, ali je jedan od inženjera koji je radio u laboratoriji, Kenet Olsen (Kenneth Olsen), 1957. godine formirao kasnije čuvenu kompaniju DEC i proizvodio komercijalne računare nalik na TX-0. To se događalo četiri godine pre pojave PDP-1 računara, pre svega jer su glavni deoničari kompanije DEC smatrali da još ne postoji tržište računara. Stoga je ova kompanija u početku uglavnom proizvodila mala štampana kola. PDP-1 se konačno pojavio 1961. godine i imao je 4k 18-bitnih reči i ciklus instrukcije od 5µs. Ove performanse su bile upola slabije od IBM 7090, tranzistorizovanog naslednika mašine IBM 709 i najbržeg računara na svetu toga doba. Međutim, PDP-1 je koštao 120,000$, dok je IBM 7090 koštao milione dolara. DEC je prodao više desetina ovih računara i industrija miniračunara je rođena. Jedan od prvih proizvedenih primeraka računara PDP-1 dat je MIT-u gde je privukao pažnju mladih genijalaca koji su vršili određene inovacije. Jedna od prvih je uvođenje CRT displeja i mogućnost da se upiše tačka bilo gde u okviru ekrana dimenzija 512×512 tačkica. Nije prošlo mnogo vremena i studenti MIT-a su programirali PDP-1 tako du su mogli sa njim da se igraju svemirskih ratova. Tako je rođena prva video igra. Nekoliko godina kasnije DEC je izbacio na tržište PDP-8 koji je bio 12-bitna mašina ali je koštala svega 16,000$. Glavna novina kod ovog računara bila je jedinstvena magistrala nazvana omnibus. Ovaj princip je prihvaćen kod svih miniračunara i DEC je, prodavši 50 hiljada komada, postao vodeća kompanija u proizvodnji miniračunara. Na slici 1.2 vidimo princip povezivanja delova računara na omnibus. U međuvremenu, kao što je već pomenuto, IBM je, sa pojavom tranzistora, napravio mašinu IBM 7090, a kasnije i 7094. 7094 je imao ciklus instrukcije od 2µs i 32k 36-bitnih reči memorije sagrađene od magnetnih jezgara.

  • 1. Istorijski razvoj računara 5

    Ostali U/I ure|aji

    U/I uređaji papirnih traka CPU Memorija

    Terminal konzole

    Omnibus

    Sl. 1.2. Omnibus računara PDP-8.

    U isto vreme kada je, proizvodnjom 7094, IBM postao glavna snaga u proizvodnji računara namenjenih naučno-tehničkim izračunavanjima, ova kompanija je mnogo novca zarađivala od prodaje malih mašina orijentisanih poslovnoj primeni, a sa oznakom 1401. IBM 1401 je neobičan po tome što nije imao nijedan registar, pa čak ni fiksiranu dužinu reči. Njegova memorija je bila kapaciteta 4k 8-bitnih bajtova. Svaki bajt je sadržao 6-tobitni znak, jedan administrativni bit i jedan bit koji je služio da ukaže na kraj reči. Godine 1964. je novoosnovana kompanija CDC proizvela model 6600. Ova mašina je skoro za red veličine bila brža od tada moćnog IBM 7094. Tajna njegove brzine ležala je u tome da je njegov CPU bio visoko paralelizovan, a unutar računara se nalazilo i nekoliko malih računara koji su upravljali poslovima i ulazno/izlaznim operacijama. Vredi pomenuti još jedan računar iz ove generacije, a to je Burroughs B5000. Dok su se svi ostali proizvođači bavili samo hardverom, ovaj računar izrađen je tako da olakša posao prevodioca za jezik ALGOL 60. Što se softvera tiče, u ovom razdoblju se javlja veliki pomak i na ovom planu. Javljaju se prvi jezici III generacije, ili viši programski jezici. Ovi jezici su proceduri orijentisani i praktično su omogućavali programiranje različitih mašina bez detaljnog poznavanja arhitekture. Osim toga bili su na znatno apstraktnijem nivou od mašinskih, odnosno asemblerskih jezika. Tako se 1956. godine pojavio FORTRAN, 1959. godine COBOL, 1960. godine ALGOL 60, a potom i mnogi drugi. Neki od jezika su u međuvremenu "izumrli", a neki se koriste i dan danas. Naravno, kako mašina i dalje razume isključivo mašinski jezik, potrebno je imati program prevodilac koji izvorni kod prevodi u nizove nula i jedinica. Prevodioci, a time i jezici, dele se na kompilatorske i interpretatorske. Što se operativnih sistema tiče, zastupljena je bila paketna obrada.

    1.4. Treća generacija (1965-1980)

    Pronalazak integrisanih elektronskih kola 1964. godine doneo je novi revolucionarni pomak u računarskoj industriji. U početku bila su to kola malog stepena integrisanosti (SSI - Small Scale of Integration) koju se dozvoljavala da nekoliko tranzistora bude na jednom čipu, a kasnije (1968. godine) su se pojavila MSI kola (Medium Scale of Integration) kod kojih je na jednom čipu smeštano više destina tranzistora. Godine 1971. dolazi do proizvodnje integrisanih kola velikog stepena integrisanosti (LSI - Large Scale of Integration) sa više stotina tranzistora na jednom čipu. Zahvaljujući ovim pronalscima, računari su postajali manji, brži, pouzdaniji i jeftiniji. Do 1964. godine IBM je bio vodeća kompanija za proizvodnju računara. U to vreme pojavio im se veliki problem, jer dve uspešne mašine, 7094 i 1401, nisu bile kompatibilne. Prvi računar je bila veoma brza mašina za numerička izračunavanja koja je koristila paralelnu binarnu aritmetiku na 36-bitnim registrima, dok je drugi bio ulazno/izlazni procesor koji je koristio sekvencijalnu decimalnu aritmetiku nad memorijskim rečima proizvoljne dužine. Mnogi klijenti su želeli da imaju obe mašine, ali ne i posebne programerske timove koji ne bi mogli da sarađuju. Kada je došlo vreme da se ova dva proslavljena računara zamene novim proizvodom, IBM je preduzeo radikalan korak. Uveo je jedan tip računara IBM System/360, zasnovan na integrisanim kolima, koji je bio projektovan i za naučnu i za poslovnu primenu. System/360 je sadržao mnogo inovacija. To je bila familija mašina sa istim asemblerskim jezikom sve većeg kapaciteta i moći. Ovu ideju su ubrzo prihvatili i ostali proizvođači računara. Još jedna velika novina bio je koncept multiprogramiranja, gde je istovremeno više programa u memoriji i dok jedan obavlja ulazno/izlazne aktivnosti, drugi koristi CPU. Osim toga, ovaj računar je prva mašina koja je mogla da emulira druge računare. System/360 je rešio i dilemu oko korišćenja paralelne binarne, odnosno sekvencijalne decimalne aritmetike. Mašina je imala 16 32-bitnih registara za binarnu aritmetiku, ali je memorija bila bajtovski orijentisana, kao kod 1401, a još uvek su postojale sekvencijalne instrukcije za prenošenje zapisa promenljive dužine po memoriji.

  • RAČUNARSKI SISTEMI: Principi digitalnih sistema 6

    Sledeća bitna karakteristika ovog računara bio je, za to vreme, ogroman adresni prostor od 224 bajtova, odnosno 16MB. Obzirom na cenu meorijskih čipova toga vremena, ovaj kapacitet je praktično značio beskonačnu veličinu. Na žalost, seriju 360 sledile su serija 370, serija 4300, serija 3080 i serija 3090, sve sa istom arhitekturom. No, već sredinom osamdesetih godina, ograničenje od 16MB je postalo problem, pa je IBM morao delimično da odustane od kompatibilnosti da bi uveo 32-bitno adresiranje, tj. adresni prostor od 232 bajtova. Takođe je načinjen veliki napredak i u proizvodnji miniračunara kada je DEC proizveo PDP-11, 16-bitnog naslednika računara PDP-8. PDP-11 je bio bajtovski orijentisana mašina sa registrima dužine reči, a zbog izuzetno povoljnog odnosa cena/performanse doživeo je veliki uspeh na tržištu, a naročito su ga kupovali univerziteti. Uopšte, ovu generaciju računara, osim pomenutog, karakterišu i pojave koncepta keš memorije i virtuelne memorije, kao i koncepta deljenja procesorskog vremena (time sharing). Osim toga, treba naglasiti da se u ovom razdoblju pojavio i prvi mikroprocesor (1971. godine), što će imati velikog značaja za kasniji razvoj računarske tehnike. Takođe se javljaju i prvi vektorski i protočni računari. Pomenimo i prvi superračunar Cray-1 iz 1974. godine.

    1.5. Četvrta generacija (1980 do danas)

    Do osamdesetih godina napredak u tehnologiji integrisanih kola doveo je do stvarnja VLSI čipova (Very Large Scale of Integration) koji su mogli da sadrže nekoliko desetina hiljada, a zatim i nekoliko stotina hiljada, pa čak i nekoliko miliona tranzistora na jednom čipu. Naravno da je to vodilo ka manjim i bržim računarima. Cena računara je pala do te mere da se otvorila mogućnost da svaki pojedinac ima sopstveni računar. Tada je i započela era personalnih računara.

    Tab. 1.1. Pet uobičajenih vrsta računara.

    Tip Tipičan MIPS Tipičan kapacitet memorije Primer mašine Primer korišćenja

    Personalni računari 1 1 IBM PS/2 Obrada teksta

    Miniračunari 2 4 PDP-11/84 Upravljanje u realnom vremenu

    Supermini računari 10 32 SUN-4 Mrežni fajl server

    Veliki (mainframe) računari 30 128 IBM 3090/300 Bankarstvo

    Superračunari 125 1024 Cray-2 Vremenska prognoza

    Personalni računari se, za razliku od velikih računara, mogu koristiti na različite načine: obradu teksta, unakrsne tabele i visoko interaktivne aplikacije koje nisu povoljne za primenu kod velikih računara. Današnji računari se mogu grubo podeliti u pet kategorija koje se donekle preklapaju. Ova podela se zasniva na fizičkoj veličini, performansama i oblasti primene, što je prikazano u Tabeli 1.1. Najnižu klasu čine personalni računari. To su stone mašine zasnovane na mikroprocesorima, tj. procesorima izvedenim na jednom čipu, a obično su namenjene samo jednoj osobi za korišćenje u kancelariji, u edukaciji ili za kućnu upotrebu. Miniračunari se naveliko koriste u aplikacijama u realnom vremenu, na primer za kontrolu vazdušnog saobraćaja ili automatizaciju fabrika. Teško je reći šta čini jedan miniračunar, jer mnoge kompanije proizvode ove računare sa 16-bitnim ili 32-bitnim mikroprocesorima uz isvesnu količinu memorije i ulazno/izlaznih čipova, gde je sve to smešteno na jednoj štampanoj ploči. Funkcionalno je takva ploča ekvivalentna tradicionalnom miniračunaru kao što je PDP-11. Supermini računar je u suštini veoma veliki računar, gotovo uvek zasnovan na 32-bitnom procesoru sa nekoliko desetina megabajtova memorije. Takve mašine se koriste kao tajm šering mašine na čitavim odeljenjima različitih institucija, kao mrežni serveri i na mnoge druge načine. Takve mašine su daleko moćnije od računara IBM 360 Model 75, najmoćnijeg velikog računara na svetu u vreme njegovog pojavljivanja 1964. godine. Tradicionalni veliki računari su naslednici mašina kao što su IBM 360 i CDC 6600. Stvarna razlika između supermini računara i velikog računara je u ulazno/izlaznim mogućnostima i aplikacijama za koje se koriste. Tipični supermini može da ima jedan ili dva diska reda veličine 1GB, dok veliki može da ima i sto takvih. Supermini se koriste za ineteraktivne aplikacije, dok se većina veliki računara koristi za velike pakete poslova ili obradu transakcija kao što su one u bankarstvu ili za rezervaciju avionskih karata, gde su potrebne ogromne baze podataka. Na vrhu se nalaze superračunari. Ove mašine su specijalno projektovane tako da se maksimizira broj FLOPS-ova (FLoating point Operations Per Second). Sve što je ispod 1gigaflops se ne može smatrati superračunarom. Superračunari imaju jedinstvenu, visoko paralelnu arhitekturu radi postizanja tih brzina, a efikasni su samo kada se primenjuju na mali opseg poslova.

  • 1. Istorijski razvoj računara 7

    Za ovu generaciju računara karaktersitičan je i intenzivni razvoj računarskih mreža različitih opsega (LAN, WAN i dr.). Naročitu ekspanziju je doživela globalna mreža Internet. Istorija Internet-a počinje 1969. godine kada je na UCLA prvi računar povezan sa ARPANET-om. Ova mreža je dobila naziv po svom sponzoru DARPA - Defense Advanced Research Project Agency (Vojna agencija za napredne istraživačke projekte), a sam njen početak bio je skroman, jer su povezane samo četiri univerzitetske lokacije: UCLA, Stanfordov istraživački institut, UC Santa Barbara i Univerzitet u Juti. Početkom 1977. godine već je preko stotinu malih i velikih računara, uglavnom univerzitetskih, povezano u mrežu ARPANET. Počeo je razvoj i drugih manjih mreža od kojih su mnoge povezane sa ARPANET-om, bili direktno, bilo preko mrežnih prolaza (gateways). U to vreme američka vojska je došla do zaključka da se ova mreža isuviše širi i da je isuviše teško osigurati sigurno komuniciranje, pa je 1983. godine formirala sopstvenu mrežu MILNET koja je uključena u vojnu mrežu podataka DDN (Defense Data Network). Danas u svetu ima preko četiri miliona Internet servera (podatak iz sredine devedesetih), a od 1988. se taj broj stalno udvostručuje.

    1.6. Peta generacija (u razvoju)

    Peta generacija računara je u povoju i razvija se tokom osamdesetih i devedesetih godina. Nju odlikuje masovni paralelizam, kao i proizvodnja računara koji su orijentisani određenim problemima. Takođe je karakteristična pojava RISC arhitektura (Reduced Instruction Set Computer). Ovi računari imaju mali broj instrukcija koje izvršavaju jednostavnu obradu, ali se zato uglavnom sve izvršavaju u toku jednog taktnog intervala, za razliku od uobičajenih CISC mašina (Complex Instruction Set Computer) koje imaju veliki broj instrukcije, od kojih su mnoge prilično "moćne" ali za svoje izvršenje zahtevaju veći broj taktnih intervala. Mada su RISC mašine počele svoj život na tržištu, nije izvesno kada će ova generacija (i hoće li u potpunosti) zameniti postojeću generaciju računara.

    1.7. Istorijat razvoja mikroprocesora i mikroračunara

    S obzirom na veliki značaj i zastupljenost mikroračunara u današnje vreme, vredi sagledati kako su se ovi računari razvijali. Mikroračunari su računari zanosvani na mikroprocesoru, tj. centralnoj procesorskoj jedinici koja je realizovana na samo jednom čipu. Vodeći proizvođači mikroprocesora su firme Intel i Motorola, pa ćemo razmotriti razvoj njihovih familija mikroprocesora. Intel Corporation je kompanija koja je osnovana 1968. za proizvodnju memorijsikih čipova. Ubrzo zatim, jedan japanski proizvođač kalkulatora je naručio izradu CPU-a na jednom čipu za njhov kalkulator, a jedan od proizvođača terminala, Datapoint (San Antonio, Teksas), je 1969. godine naručio kontroler za njihove terminale, takođe na jednom čipu. Tako su nastali Intel 4004, prvi četvoribitni (1971. godine) i Intel 8008, prvi osmobitni mikroprocesor (1972. godine). Interesantno je da je 8008 radio desetak puta sporije nego što je naručilac zahtevao, tako da je kompanija Datapoint otkazala porudžbinu. Intel nije očekivao da će neko drugi, osim navedenih naručilaca, biti zaintersovan za takve proizvode, pa je napravio malu seriju. Naravno, nisu bili u pravu. Pojavilo se jako veliko interesovanje, tako da u odlučili da projektuju CPU opšte namene na jednom čipu koji će prevazići ograničenje od 16kB adresnog prostora koje je imao 8008 (što je bilo nametnuto brojem pinova na čipu). Ovo je rezultiralo 1974. godine pojavom 8-bitnog mikroprocesora Intel 8080 sa 64kB adresnog prostora. Kao što je na tržištu mini računara bio slučaj sa PDP-8, ovaj mikroprocesor je na prepad osvojio industriju računara i stvorio masovno tržište. Dve godine kasnije se pojavio 8085, prepakovani 8080 sa dodatnim ulazno/izlaznim mogućnostima. Zatim se, 1978. godine pojavio 8086, prvi 16-bitni mikroprocesor, a 1980. godine Intel 8088 koji je bio iste arhitekture kao i 8086 ali sa 8-bitnom magistralom (što je smanjilo cenu ali i brzinu). IBM je izabrao ovaj mikroprocesor za svoj originalni IBM PC - prvi personalni računar. U narednim godinama pojavili su se Intel 80186 i 80188, suštinski nove verzije mikroprocesora 8086 i 8088, respektivno, ali sa dodatnim ulazno/izlaznim kolima. Nijedan od ovh prosecora nije prevazišao adresni prostor od 1MB, što je u prvoj polovini 80-tih postalo ozbiljan problem. Zato je 1982. godine Intel izbacio na tržište 80286, 16-bitni mikroprocesor koji je bio kompatibilan sa 8086 i 8088, ali sa drugačijom organizacijom memorije (i adresnim prostorom od 16MB). Ovaj mikroprocesor je korišćen je u IBM PC/AT i PS/2, i doživeo je ogroman uspeh. Sledeći korak bio je prvi 32-bitni mikroporcesor 80386, koji se pojavio 1985. godine. Ovaj mikroprocesor je takođe bio kompatibilan sa starijim čipovima. Godine 1988. se pojavio i 80286SX, verzija 32-procesora sa 16-bitnm magistralom. Godine 1989. se javila brža verzija mikroporcesora 80386 - Intel 80486 sa ugrađenim koprocesorom na čipu. Tokom devedesetih javlja se i 80586 - Pentium.

  • RAČUNARSKI SISTEMI: Principi digitalnih sistema 8

    Ubrzo pošto je Intel proizveo mikroprocesor 8080, Motorola, inače konkurentni proizvođač poluprovodničkih komponenti, je proizveo 6800. To je bio 8-bitni mikroporcesor sličnih karakteristika kao i 8080. Ovaj mikroporcesor je dobro prihvaćen na tržištu i korišćen je kao ugrađeni kontroler u industrijskoj opremi početkom 70-tih. Praćen je sa 6809 koji je bio kompatibilan sa 6800, sa dodatnim mogućnostima koje su olakšavale 16-bitnu aritmetiku. Potom je Motorola uradila nešto što je vrlo malo kompanija uradilo pre i posle toga: uveli su 1979. godine potpuno nov mikroprocesor koji nije bio kompatibilan se prethodim verzijama. To je bio 68000, mikroprocesor sličnih mogućnosti kao 8086. Mada je magistrala bila 16-bitna, svi vidljivi registri su bili 32-bitni i mašina je mogla da sabira i oduzima (ne i da množi i deli) 32-bitne brojeve pomoću samo jedne instrukcije. Tako je 68000 predstavljao hibrid između 16-bitne i 32-bitne arhitekture. Ovaj mikroprocesor su izabrali projektanti mikroračunara Macintosh, Atari, Amiga i drugi, da na njemu zasnuju svoje proizvode. Sledeći mikroprocesor bio je 68008 iz 1982. godine. On je bio identičan sa 68000 osim što je imao 8-bitnu magistralu a namenjen je bio za jevtinije proizvode sa manjim zahtevima. Ovaj mikroprocesor nije doživeo neku naročitu zastupljenost. Posle kraćeg vremena pojavili su se zahtevi za implementacijom složenih operativnih sistema, kao što je Unix, u mikroračunarima zasnovanim na 68000. Mnogi od takvih operativnih sistema imali su koncepte virtuelne memorije, što 68000 nije mogao u potpunosti da podrži. Stoga se 1983. godine pojavio 68010, a zatim i 68012. Razlika među njima je bila što je prvi mogao da adresira 16MB a drugi 2GB memorije. Međutim, oba ova procesora su praktično izgubila na značaju već 1984. godine kada je Motorola proizvela prvi pravi 32-bitni procesor u svojoj familiji 68020. Ovaj mikroprocesor je doživeo veliki uspeh na tržištu i na njemu su bazirane mnoge radne stanice koje su proizvodili Sun Microsystems, Apollo i Hewllet-Packard. Naslednik ovog mikroprocesora iz 1987. godine, 68030, je sadržao osim kompletnog 68020 i jedinicu za upravljanje memorijom na istom čipu. Sledeći pripadnik ove familije, 68040, je mikroporcesor napravljen 1989. godine koji je, poput Intel 80486, sadržao na istom čipu, osim samog CPU, i jedinicu za upravljanje memorijom, koprocesor i keš memoriju.

  • 2. BROJNI SISTEMI I PREVOĐENJE BROJEVA

    Digitalni računar operiše samo sa brojevima. Način na koji mašina operiše sa ovim brojevima zavisi od toga šta ovi brojevi predstavljaju (sami sebe, druge brojeve ili alfanumeričke znakove) i u kojem su obliku oni predstavljeni. Ili, nešto konkretnije, dizajn centralne procesorske jedinice, tj. dela računara koji manipuliše svim aritmetičkim i logičkim operacijama, se ne može realizovati bez poznavanja forme u kojoj se brojevi predstavljaju od strane mašine. Šta više, ova forma može da bude drastično različita od oblika u kome se ti brojevi prezentiraju operatoru, pa je zbog toga nepohodno obaviti neku vrstu konverzije u ulazno/izlaznom delu računara. U ovoj glavi ćemo ukazati na različite načine prezentacije brojeva i drugih veličina u računaru.

    2.1. Konverzija baze

    Brojni sistem koji čovek najčešće koristi je decimalni sistem. Iz većeg broja razloga na koje ćemo ukazati kasnije, decimalni brojni sistem nije pogodan za korišćenje od strane računara. Računari rade mnogo efikasnije sa podacima koji imaju binarni oblik. S obzirom da za računare nisu pogodni decimalni "brojevi", a "operateri nisu naviknuti na binarne brojeve", potrebno je ostvariti neki vid konverzije između ovih brojnih sistema koja će predstavljati interfejs između čoveka i mašine.

    2.1.1. Pozicioni brojni sistemi Notacija koja se zasniva na poziciji brojeva odavno se koristi za pisanje brojeva. Kod pozicionih brojnih sistema se brojevi predstavljaju vektorom od n cifara, pri čemu je svakoj cifri pridružena težina saglasna njenoj poziciji u vektoru. Ovo nije slučaj kod takozvanih nepozicionih brojih sistema, kakav je, na primer, rimski brojni sistem, gde pozicija cifre nije u direktnoj vezi sa njenom težinom. Ilustracije radi, broj 413.8 se interpretira kao

    4*102 + 1*101 + 3*100 + 8*10-1 = 413.8 Različiti stepeni broja 10 koji se koriste kod ove prezentacije, a u saglasnosti sa odgovarajućim težinama, ukazuju na pretpostavku da je broj 413.8 napisan kao decimalni broj, ili broj napisan u brojnom sistemu sa bazom 10. Baza brojnog sistema poznata je i kao osnova tog sistema.

    Primer 2.1.

    Osnova (base ili radix) brojnog sistema je broj simbola u sistemu. Decimalni brojni sistem ima deset simbola 0, 1, 2, ..., 9, tj. ima 10 cifara. Svaka cifra decimalnog sistema je 10 puta značajnija od prethodne pozicije. Na primer,

    3 4 3 2

    Uočimo da 3 na poziciji 103 ima različito značenje od 3 na poziciji 101.

    pozicija 100 pozicija 101 pozicija 102 pozicija 103

    Vrednost decimalnog broja određuje se množenjem svake cifre broja vrednošću pozicije na kojoj se javlja cifra, a nakon toga vrši se sabiranje proizvoda. Shodno tome, broj 3432 se interpretira kao

    3*103+4*102+3*100+2*100=3432 U konkretnom slučaju, krajnja desna cifra je cifra najmanje težine (LSD - least significant digit), a krajnja leva cifra je cifra najveće težine (MSD - most significant digit). Za decimalni razlomak N=0.6341 imamo

    N=6*10-1+3*10-2+4*10-3+1*10-4.

    Svaki pozicioni brojni sistem karakteriše se osnovom brojnog sistema r (ona se označava i sa N ili B). Cifre brojnog sistema sa osnovom r uzimaju vrednosti iz skupa {0, 1, ... , r – 1}. Neka je neki broj A predstavljen sledećim nizom od n cifara:

  • RAČUNARSKI SISTEMI: Principi digitalnih sistema 10

    A = an-1an-2...a1a0, (2.1)

    gde je ai∈{0, 1, ... , r – 1}, 0 ≤ i ≤ n-1, tada se vrednost broja A može odrediti kao |A| = an-1rn-1 + an-2rn-2 + ... + a1r1 + a0r0, (2.2)

    odnosno

    | |A aii

    i

    n

    ==

    r−

    ∑0

    1

    . (2.3)

    Osim za cele brojeve, ovo se može primeniti i za razlomljene brojeve, tj.

    |A| = an-1rn-1 + an-2rn-2 + ... + a1r1 + a0r0 + a-1r-1 + a-2r-2 + ... + a-mr-m = . (2.4) a rii

    i m

    n

    =−

    ∑1

    U računarskim sistemima se, osim decimalnog brojnog sistema, najčešće koristi binarni brojni sistem (r = 2), oktalni (r = 8) ili heksadecimalni (r = 16) brojni sistem. U principu, osnova brojnog sistema može biti bilo koja; 7, 11, -3, ili čak iracionalan broj kakav je π ili e. Ipak, obično se za brojnu osnovu sistema uzima pozitivna celobrojna vrednost. Praksa je da se, kada se broj napiše u sistemu sa brojnom osnovom različitom od 10, posebno naglasi o kojoj se brojnoj osnovi radi. Standardno se to označava tako što se broj stavlja u zagrade, a nakon desne zagrade pridružuje se indeks koji ukazuje na bazu, kao na primer

    (1230)4 = 1*43 + 2*42 + 3*41 + 0*40 što je ekvivalentno broju 108, ili

    (364.213)7 = 3*72 + 6*71 + 4*70 + 2*7-1 + 1*7-2 + 3*7-3 = (193.314868...)10.

    2.2. Prevođenje brojeva iz jednog brojnog sistema u drugi

    U osnovi, razlikujemo dva postupka prevođenja broja iz brojnog sistema sa osnovom r1 u brojni sistem sa osnovom r2. Jedan je kada se operacije izvršavaju u brojnom sistemu sa osnovom r2 (tj. ciljnom brojnom sistemu), a drugi je kada se operacije izvršavaju u brojnom sistemu sa osnovom r1 (polaznom brojnom sistemu).

    2.2.1. Prevođenje brojeva kod koga se operacije izvršavaju u brojnom sistemu sa osnovom r2 Ovaj postupak se odvija sasvim jednostavno, prema već opisanom postupku (na primeru konverzije broja (1230)4 u decimalni) za određivanje vrednosti broja na osnovu zadatog niza cifara.

    X xii

    i m

    n

    ==−

    ∑ 11

    r (2.5)

    Izračunavanje ovog izraza odvija se u brojnom sistemu sa osnovom r2. Kako smo navikli da radimo u dekadnom brojnom sistemu, jasno je da se ovaj postupak koristi kada se broj iz nekog drugog brojnog sistema prevodi u dekadni brojni sistem.

    2.2.2. Prevođenje brojeva kod koga se operacije izvršavaju u brojnom sistemu sa osnovom r1 Ovde je situacija komplikovanija, pa se na različite načine vrši prevođenje celih i razlomljenih brojeva. Prevođenje celih brojeva

    Neka je ceo broj X u brojnom sistemu sa osnovom r1 predstavljen na sledeći način:

    ( )X x x x x x rr n n ii

    i

    n

    1 1 1 00

    = =−=∑K 1

    r2

    . (2.6)

    Neka se taj isti broj u brojnom sistemu sa osnovom r2 predstavlja na sledeći način:

    ( )X y y y y yr p p ii

    i

    r

    2 1 1 00

    = =−=∑K . (2.7)

    Ako poslednji izraz podelimo osnovom r2 dobijamo sledeće: Xr

    y r y r y r y ryrp

    pp

    p

    22

    11 2

    22 2

    11 2

    0 0

    2= + + + + +− −

    − K . (2.8)

    Primetimo da su svi sabirci sa leve strane izraza celobrojni, osim poslednjeg koji je sigurno razlomljen, jer je svaka cifra brojnog sistema manja od osnove brojnog sistema. Drugim rečima, cifra najmanje težine u

  • 2. Brojni sistemi i prevođenje brojeva 11

    prezentaciji broja X u sistemu sa osnovom r2 pojavljuje se kao ostatak pri ovakvom deljenju. Ostale cifre se dobijaju iterativnim ponavljanjem postupka nad celobrojnim delom količnika. Algoritam se završava kada taj celobrojni deo postane jednak nuli. Da bi ukazali na ovaj postupak nešto detaljnije, analiziraćemo sledeći primer. Neka B10 bude decimalan broj koji se konvertuje u broj A osnove r, tj.

    B10 = Ar = (anan-1...a1a0)r (2.9) ili

    B10 = anrn + an-1rn-1 + ... + a1r1 + a0r0. (2.10) Sada, ako B10 podelimo sa r, dobićemo

    Br

    a r a r aar

    IntBr

    FracBr

    nn10 1

    2 10

    10 10

    = + + + +

    = +

    −( )

    ( ) ( )

    K (2.11)

    gde Int i Frac ukazuju na celobrojni i razlomljeni deo B10/r. Na osnovu jednačine (2.11) imamo da je

    a RemB

    r010= ( ) (2.12)

    gde Rem označava ostatak od B10/r. Ako se ovaj proces sada ponovi počev sa Int(B10/r), naredni ostatak biće a1 a naredni celobrojni deo biće anrn-2 + an-1rn-3 + ... + a2. Proces se produžava dok se ne generiše cifra ar. Analizirajmo slučaj kada je potrebno odrediti broj u bazi 3 ekvivalentan broju (278)10. Proces konverzije je sledeći:

    količnik ostatak

    3 278

    3 92 2 = a0

    3 30 2 = a1

    3 10 0 = a2

    3 3 1 = a3

    3 1 0 = a4

    0 1 = a5 Zaustavi

    Prema tome,

    (278)10 = (101022)3 Da bi proverili da li smo izvršili konverziju korektno, izvršimo ponovo konverziju broja (101022)3 u decimalni broj.

    (101022)3 = 1*35 + 0*34 + 1*33 + 0*32 + 2*31 + 2*30 = (278)10

    Prevođenje razlomljenih brojeva Neka je sada razlomljeni broj X u sitemu sa brojnom osnovom r1 predstavljen na sledeći način:

    ( ) .X x x x x x rr m mi

    i

    m

    10 1 2 1 1

    1= =− − − + − −

    =∑K i , (2.13)

    dok je taj isti broj u sistemu sa osnovom r2 predstavljen sa:

    ( )X x x x x x rr n n ii

    i

    n

    1 1 1 0 10

    = =−=∑K . (2.14)

    Ako ovaj izraz pomnožimo osnovom brojnog sistema r2, tada dobijamo Xr y y r y r y rq

    q2 1 2 2

    13 2

    22

    1= + + +− −−

    −−

    −− +K . (2.15)

    Prvi sabirak je sigurno celobrojni deo proizvoda (to je cifra brojnog sistema) dok ostali sabirci predstavljaju razlomljeni deo (cifre podeljene osnovom brojnog sistema). U stvari, celobrojni deo proizvoda predstavlja prvu cifru posle tačke osnove. Ako postupak nastavimo sa razlomljenim delom proizvoda dobićemo i ostale cifre. Kraj algoritma je kada razlomljeni deo proizvoda postane jednak nuli. Treba napomenuti da se ovde ne dobija uvek apsolutna tačnost, jer neki racionalni brojevi prilikom prevođenja postaju iracionalni. Generalno, s obzirom da se kod ovog postupka prevođenja, kako celih tako i razlomljenih brojeva, operacije izvršavaju u brojnom sistemu sa osnovom r1 (tj. u sistemu iz koga se prevodi), možemo reći da je pogodno da se ovaj postupak primeni kada se brojevi prevode iz dekadnog u neki drugi brojni sistem.

  • RAČUNARSKI SISTEMI: Principi digitalnih sistema 12

    Primer 2.2.

    Brojevi u opštem slučaju imaju razlomljeni deo i celobrojni deo. Konverzija razlomljenog dela u ekvivalentnu prezentaciju osnove r izvodi se na već prikazani način, slično konverziji celobrojnog dela. Neka B10 predstavlja razlomljeni decimalni broj ekvivalentan razlomljenom broj Ar u sistemu sa brojnom osnovom r, tj.

    B10 = Ar = (0.a-1a-2 ... a-m) = a-1r-1 + a-2r-2 + ... a-mr-m (2.16)

    Množenjem jednačine (2.16) sa r dobijamo rB10 = a-1 + (a-2r-1 + ... a-mr-m+1) (2.17)

    odakle vidimo da je celobrojna vrednost a-1. Ako se sada razlomljeni deo (a-2r-1 + ... a-mr-m+1) pomnoži sa r, dobićemo a-2, itd. To znači da se repetitivnim množenjem sa r dobijaju sukcesivne cifre razlomljenog broja B10 u prezentaciji osnove r. Izvršiti konverziju (0.27)10 = (?)4. Odgovor: Proces konverzije se obavlja na sledeći način

    celobrojna vrednost razlomljeni deo

    .27*4

    a-1 = 1 .08*4

    a-2 = 0 .32*4

    a-3 = 1 .28*4

    a-4 = 1 .012

    . . .

    Prema tome (0.27)10 = (0.1011...)4, a sprovedenom proverom ćemo dobiti (0.1011...)4 = 1*4-1 + 0*4-2 + 1*4-3 + 1*4-4 + ...

    = (0.2695...)10 Na osnovu dobijenog rezultata vidimo da se procesom konverzije generiše ekvivalent koji nije identičan. Ova činjenica mora da se uzme u obzir kada se izračunavanje vrši od strane računara koji ne koristi decimalni brojni sistem.

    Primer 2.3.

    U opštem slučaju, konverzija decimalnih brojeva koji imaju celobrojni i razlomljeni deo se može izvesti tako što se posebno vrši konverijza svakog dela a zatim kombinuju rezultati. Na primer, konverzija (123.56)10 = (?)7 se vrši na sledeći način. Prvo se vrši konvezija celobrojne vrednosti

    7 123

    7 17 4

    7 2 3

    0 2

    Nakon toga se vrši konverzija razlomljenog dela

    .56*7

    3 .92*7

    6 .44*7

    3 .08*7

    0 .56

    . . .

    Za rezultat dobijamo (123.56)10 = (234.3460...)7

  • 2. Brojni sistemi i prevođenje brojeva 13

    pri čemu '...' ukazuje da rezultat nije tačan.

    Primer 2.4.

    Na koji način se najlakše vrši konverzija između dva nedecimalna sistema? Odgovor: Konverzija između dva nedecimalna sistema se najlakše sprovodi ako se kao međukorak koristi decimalni sistem. Na primer, konverzija (1354.24)6 = (?)4 sprovodi se najpre konverzijom iz baze 6 u bazu 10, a zatim konverzijom baze 10 u bazu 4, tj.

    (1354.24)6 = (358.4444...)10 = (11212.1301...)4

    2.3. Brojanje u sistemu osnove r

    U toku procesa konverzije koji smo prethodno opisali je interesantno uočiti da se numeričke vrednosti koje cifre mogu da uzimaju nalaze u granicama od 0 do r-1. Šta više,

    10r = 1*r1 + 0*r0 = r10 (2.18) Na osnovu ovih sagledavanja, možemo zaključiti da brojanje u osnovi r generiše sekvencu 0, 1, 2, ..., (r-1), 10, 11, 12, ... , 1(r-1), ... Na slici 2.1. prikazana je brojačka sekvenca za različite osnove (najčešće korišćene kod računara).

    decimalna r=2 r=3 r=8 r=16 0 0 0 0 0 1 1 1 1 1 2 10 2 2 2 3 11 10 3 3 4 100 11 4 4 5 101 12 5 5 6 110 20 6 6 7 111 21 7 7 8 1000 22 10 8 9 1001 100 11 9

    10 1010 101 12 A 11 1011 102 13 B 12 1100 110 14 C 13 1101 111 15 D 14 1110 112 16 E 15 1111 120 17 F 16 10000 121 20 10 17 10001 122 21 11 . . .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    Sl. 2.1. Brojanje kod različitih sistema osnove r (Napomena: brojna osnova r=3 skoro da se i ne koristi kod računara).

    Kada je r>10 javlja se problem kod prezentacije onih cifara x koje se nalaze u opsegu 9 < x < r, s obzirom da ne postoje standardni simboli za ove brojeve. Dogovorno, za prezentaciju ovih cifara se koriste velika slova. Tako, na primer, za r=16 (heksadecimali sistem) brojačka sekvenca će biti

    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, ..., gde je (A)16 = (10)10, (B)16 = (11)10, itd.

    2.4. Binarne, oktalne i heksadecimalne konverzije

    U samom računaru se izračunavanja obično izvode u binarnom sistemu (sistem osnove 2). Razlog je jednostavan. Digitalna kola koja izvode operacije nad brojevima koriste dva stanja. Ova kola mogu raditi i sa više od dva stanja, ali je tada njihov rad nepouzdan što je neprihvatljivo sa aspekta rada sistema. U principu, konverzija iz binarnog u decimalni brojni sistem, i obratno, izvodi se lakše u odnosu na konverziju između decimalnog sistema i sistema sa osnovom većom od dva.

  • RAČUNARSKI SISTEMI: Principi digitalnih sistema 14

    Osnova binarnog brojnog sistema je dva. Za r=2 potrebne su samo dve cifre, a one su 0 i 1. Binarna cifra, 0 ili 1, zove se bit. Pozicija svakog bita odgovara nekom stepenu broja 2 (kod decimalnog je to bio stepen broja 10). Ljudima je svojstvena manipulacija sa decimalnim brojevima, pa zbog toga digitalni sistemi treba da obezbede konverziju između decimalnih i binarnih brojeva. Decimalna vrednost binarnog broja formira se množenjem svakog stepena dvojke sa 0 ili 1, i sabiranjem svih vrednosti. Na primer, decimalni ekvivalent binarnog broja 101010 je

    N = 101010 = 1*25+0*24+1*23+0*22+1*21+0*20 = 32+0+8+0+2+0 = 42

    Ovaj način konverzije je pogodan za čoveka, ali ne i za mašinsku implementaciju, jer zahteva relativno složenu (sa aspekta ugrađenog hardvera ili vremena izračunavanja) operaciju stepenovanja da bi se izračunao svaki stepen dvojke. Stepenovanje se može izbeći korišćenjem višestrukog množenja sa dva. To znači

    N b

    b b

    b b b

    b b b b

    ii

    i

    n

    ii

    i

    n

    ii

    i

    n

    n n

    =

    = +

    = + +

    = + +

    =

    =

    =

    +− −

    2

    2 2

    2 2

    2

    0

    1

    1

    1

    0

    2

    1

    1 0

    1 2 1

    ( )

    (2( )

    (2 (2(2 ) ) )K K 0

    (2.19)

    Korišćenjem prethodne relacije imamo da je

    101010 = 2*(2*(2*(2*(2*1+0)+1)+0)+1)+0 = 2*(2*(2*(2*2+1)+0)+1)+0 = 2*(2*(2*5+0)+1)+0 = 2*(2*10+1)+0 = 2*21+0 = 42

    Konverzija se svodi na sekvencu od n-1 množenja sa dva i n-1 sabiranja (gde je n broj cifara binarnog broja). Proces konverzije se može izraziti sledećom poluformalnom procedurom ili algoritmom koji je poznat pod imenom BINDECi (BINary to DECimal integer). 1. Neka je N2 = bn-1bn-2 ... b0 binarna celobrojna vrednost koju treba konvertovati u decimalni oblik N10. Postavi

    N10 na inicijalnu vrednost 0. 2. Analiziraj N2 sa desne strane ulevo; za svaki bit bi izračunaj 2* N10 + bi a zatim dodeli ovu vrednost

    promenljivoj N10. Konačna vrednost N10 koja se dobije nakon n koraka predstavlja željeni rezultat. Koristeći BINDECi proces konverzije 8-cifrene binarne celobrojne vrednosti 0110 01012 u decimalni oblik sastoji se u sledećem: Najpre ćemo izraziti N2 kao

    N2 = 0110 01012 = b7b6b5b4b3b2b1b0. Saglasno algoritmu, najpre postavljamo N10 na nulu. Proces konverzije koji sledi nakon inicijalizacije čini sledećih osam koraka. i = 7 N10 = 2*0 + b7 = 0 i = 6 N10 = 2*0 + b6 = 1 i = 5 N10 = 2*1 + b5 = 3 i = 4 N10 = 2*3 + b4 = 6 i = 3 N10 = 2*6 + b3 = 12 i = 2 N10 = 2*12 + b2 = 25 i = 1 N10 = 2*25 + b1 = 50 i = 0 N10 = 2*50 + b0 = 101 Zaključujemo da je N10 = 10110. Konverzija decimalnog broja u binarni se izvodi na sledeći način. Decimalni broj se razlaže na dva dela - jedan deo odgovara maksimalnoj potenciji broja 2 koja nije veća od datog broja a drugi deo ostatku. Nakon toga se, ponovo, ostatak razlaže na dva dela: na maksimalnu potenciju broja dva koja nije veća od broja i na ostatak. Proces se ponavlja sve dok se ne dobije ostatak koji je jednak nuli. Binarana vrednost se dobija zapisivanjem 1 na bit pozicijama čije težine odgovaraju potencijama dvojke dobijenim tokom konverzije. Primera radi analizirajmo konverziju decimalnog broja 426 u binarni.

  • 2. Brojni sistemi i prevođenje brojeva 15

    426 = 256 + 170 = 256 + 128 + 42 = 256 + 128 + 32 + 10 = 256 + 128 + 32 + 8 + 2 28 27 25 23 21

    Prema tome, 42610=11010101102. Altrenativni metod konverzije decimalnog broja u binarni zasniva se na sukcesivnom deljenju decimalnog broja brojnom osnovom 2. Ostaci deljenja, napisani u obrnutom redosledu daju binarni ekvivalent decimalnog broja. Proces konverzije broja 35310 u binarni je sledeći:

    353 : 2 = 176 , ostatak 1 176 : 2 = 88 , ostatak 0 88 : 2 = 44 , ostatak 0 44 : 2 = 22 , ostatak 0 22 : 2 = 11 , ostatak 0 11 : 2 = 5 , ostatak 1 5 : 2 = 2 , ostatak 1 2 : 2 = 1 , ostatak 0 1 : 2 = 0 , ostatak 1

    Shodno prethodnom, 35310=1011000012

    Konverzija razlomljenog broja se vrši na sličan način. Primera radi, posmatrajmo konverziju binarnog broja 0.101011 u decimalni.

    N = 0.101011 = 1*2-1+0*2-2+1*2-3+0*2-4+1*2-5+1*2-6

    gde su a-1=1, a-2=0, a-3=1, a-4=0, a-5=1 i a-6=1. Prema tome,

    N = 0.101011 = 1/2 + 1/8 + 1/32 + 1/64 = 0.671875

    Decimalni razlomljeni broj se može konvertovati u binarni, sukcesivnim množenjem sa 2. Ceo deo svakog proizvoda, 0 ili 1, se pamti i na taj način se formira razlomljeni broj. Primera radi, binarni ekvivalent decimalnog razlomka 0.203125 se dobija sukcesivnim množenjem razlomka sa dva, na sledeći način

    0.203125 2 a-1=0 0.206250 2 a-2=0 0.812500 2 a-3=1 0.625000 2 a-4=1 0.250000 2 a-5=0 0.500000 2 a-6=1 0.000000

    Binarni ekvivalent broja 0.20312510 je 0.0011012 Ukažimo da decimalnom broju sa konačnim brojem cifara iza decimalne tačke može da odgovara binarni broj sa beskonačno mnogo binarnih cifara u razlomljenom broju. U takvim slučajevima množenje sa dva se produžava sve dok se decimalni broj ne potroši ili se ne postigne željena tačnost. Uticaj na tačnost ima trenutak zaustavljanja procesa konverzije. Na primer, ako stanemo nakon

  • RAČUNARSKI SISTEMI: Principi digitalnih sistema 16

    četvrtog koraka, tada usvajamo da je 0.0011 aproksimativno jednak 0.20315, dok je ustvari taj broj jednak 0.1875, a greška iznosi oko 7.7%. U principu, rad sa binarnim brojevima je zaista zametan, zbog toga što se, čak i za prezentaciju malih decimalnih vrednosti, zahteva veliki broj bitova. Iz ovog razloga se za prezentaciju binarnih brojeva češće koriste oktalni i heksadecimalni brojevi. Da bi ukazali na odnos između binarnih, oktalnih i heksadecimalnih brojeva razmotrićemo sledeći binarni broj.

    110101011 = 1*28 + 1*27 + 0*26 + 1*25 + 0*24 + 1*23 + 0*22 + 1*21 + 1*20 = (1*22 + 1*21 + 0*20)*26 + (1*22 + 0*21 + 1*20)*23 + (0*22 + 1*21 + 1*20)*20 = 6*(23)2 + 5*(23)1 + 3*(23)0 = 6*82 + 5*81 + 3*80 = (653)8

    Ovim primerom je na jedan ekstremni način prikazan postupak konverzije broja iz binarnog u oktalni sistem. Ipak, konverzija se izvodi jednostavnijim postupkom. Vrši se grupisanje bitova u grupe od po tri bita i svakoj grupi se dodeljuje decimalna vrednost. Tako, na primer,

    (110 101 011)2 = (6 5 3)8 Analognim postupkom se vrši konverzija binarnog broja u heksadecimalni. Postupak se sprovodi na taj način što se bitovi grupišu po četiri, kao na primer

    (1001 1110 0011 1000)2 = (9 E 3 8)16 Ako je neophodno vršiti konverziju broja iz heksadecimalne u oktalnu brojnu prezentaciju, ili obratno, lakše je koristiti binarnu decimalnu prezentaciju kao međukorak. Tako, na primer

    (1A8E)16 = (?)8 = (0001 1010 1000 1110)2 = (001 101 010 001 110)2 =(1 5 2 1 6)8

    Kao što se može uočiti, rezultat se ne dobija kao posledica obavljanja neke operacije, već prepisivanjem heksadecimalnog broja u binarni, a zatim pregrupisanjem bitova sa ciljem da se formira oktalni rezultat.

    2.5. Problemi

    1. Koji decimalni ekvivalent odgovara najvećem binarnom broju koji se može izraziti sa: a) 8 bitova; b) 16 bitova; c) 32 bita. 2. Izvršiti konverziju sledećih binarnih brojeva u decimalne: a) 111010; b) 10101111.101; c) 110110110. 3. Izvršiti konverziju sledećih binarnih brojeva u binarne: a) 1946; b) 2005; c) 138; d) 1998. 4. Izvrši konverziju sledećih brojeva: a) (764.7)8 u heksadecimalni; b) (F6D.C)16 u oktalni; c) (147.5)8 u sistem sa osnovom 4. 5. Izvršiti konverziju sledećih brojeva iz naznačene baze u decimalne: a) (12021)3, b) (4321)5, c) (A98)12. 6. Izvršiti konverziju zadatih brojeva iz date baze u ostale tri baze shodno sledećoj tabeli.

    decimalni binarni oktalni heksadecimalni 369.3125 ? ? ?

    ? 1011 1101.101 ? ? ? ? 326.5 ? ? ? ? F3C7.A

  • 3. PREDSTAVLJANJE BROJEVA U RAČUNARU

    Sve matematičke funkcije se mogu izraziti preko četiri osnovne aritmetičke operacije: sabiranje, oduzimanje, množenje i deljenje. Ove operacije se mogu izvršavati u tri načina rada kojima odgovaraju tri načina predstavljanja brojeva: fiksni zarez (fixed point), pokretni zarez (floating point) i binarno kodirani dekadni brojevi (BCD - Binary Coded Decimals). Aritmetika u fisknom zarezu se koristi kod problema kod kojih se podaci predstavljaju sa fiksiranom pozicijom tačke osnove. Operacije u fiksnom zarezu se mogu podeliti na celobrojne (kada je tačka osnove desno od broja) i operacije sa razlomcima (tačka osnove je levo od broja). Aritmetika u pokretnom zarezu se koristi za različita naučno-tehnička izračunavanja. Ove operacije se mogu podeliti na normalizovane i nenormalizovane. Decimalna aritmetika se koristi za aritmetičke operacije i operacije pomeranja nad decimalnim podacima. Ovde se svaka dekadna cifra predstavlja sa četiri binarne cifre. Pri tome, BCD brojevi mogu biti u pakovanom i nepakovanom formatu. U pakovanom formatu svaki bajt sadrži dve decimalne cifre, dok se kod nepakovanog formata po jedna cifra smešta u svakom bajtu i to u nižoj tetradi.

    3.1. Predstavljanje celih brojeva u fiksnom zarezu

    Ako za predstavljanje pozitivnih celih brojeva u fiksnom zarezu koristimo n bitova, onda na taj način možemo predstaviti brojeve iz opsega [0,2n-1]. Međutim, potrebno je predstavljati i negativne brojeve. Pri tome treba obezbediti sledeće:

    • podjednaku distribuciju negativnih i pozitivnih brojeva, • jednostavnu detekciju znaka, • jedinstven prikaz nule, i • jednostavnu implementaciju aritmetičkih operacija.

    Obično se za kodiranje znaka broja koristi bit najveće težine. Ako se broj A u sistemu sa brojnom osnovom r predstavlja kao

    A = (an-1an-2...a1a0)r, (3.1)

    tada cifra znaka an-1 ima sledeću vrednost:

    aA

    r An− =≥

    − <⎧⎨⎩1

    0 01, | |, | | 0 (3.2)

    Kod binarnog brojnog sistema (r=2) to znači

    aAAn− =≥<

    ⎧⎨⎩1

    0 01

    , | |, | | 0 . (3.3)

    Ostale cifre predstavljaju ili pravu vrednost broja ili njen komplement. Postoje tri načina za predstavljanje celih brojeva: označena vrednost broja ili znak-moduo, nepotpuni komplement i potpuni komplement.

    3.1.1. Prezentacija znak-moduo Kod ove prezentacije se pozitivni i negativni brojevi razlikuju samo u bitu znaka (kod binarnog brojnog sistema 0 za pozitivne i 1 za negativne brojeve). Međutim, ovde se javlja problem zbog postojanja dva ravnopravna načina za predstavljanje broja nula. Praktično je moguće nulu predstaviti kao +0 i kao -0. Takođe se javlja problem i kod sabiranja brojeva različitog znaka, jer se najpre mora izvršiti poređenje apsolutnih vrednosti sabiraka da bi se odredio znak rezultata.

  • RAČUNARSKI SISTEMI: Principi digitalnih sistema 18

    3.1.2. Nepotpuni komplement Nepotpuni komplement se još naziva i komplement najveće cifre pa se kod binarnog brojnog sistema još naziva i jedinični komplement. Nenegativni celi brojevi (u opsegu od 0 do 2n-1-1, ako je za predstavljanje upotrebljeno n bitova) se i dalje predstavljaju kao u binarnom pozicionom sistemu, tj.

    A = 0an-2an-3...a1a0. (3.4) Negativni brojevi se komplementiraju do najveće cifre (tj. do jedinice kod binarnog brojnog sistema). Tako je negativni broj koji ima istu apsolutnu vrednost kao gornji broj A predstavljen u binarnom brojnom sistemu kao:

    A a a a an n= − −1 2 3 1 0L , (3.5) ili, generalno,

    A r a a a an n r= − − −[( ) ]1 2 3 1 0L , (3.6) gde je a ri i= − −( )1 a . Sabiranje brojeva u nepotpunom komplementu odvija se tako što se brojevi saberu, a eventualni prenos na mestu za znak odbaci iz međurezultata i sabere sa cifrom najmanje težine, i tako dobije rezultat koji je takođe u nepotpunom komplemetu.

    3.1.3. Potpuni komplement Potpuni komplement se još naziva i komplement osnove, pa je u binarnom brojnom sistemu njegov naziv i dvojični komplement. Nenegativni brojevi se predstavljaju na isti način kao i ranije, dok se prezentacija negativnih brojeva dobija tako što se najpre dobije nepotpuni komplement a onda na mestu najmanje težine doda 1. Na ovaj način se sa n bitova mogu predstaviti brojevi u opsegu od -2n-1 do +2n-1-1. Pri tome imamo jedinstven prikaz nule, a i izvođenje aritmetičkih operacija je pojednostavljeno. Naime, brojevi u potpunom komplementu se sabiraju tako što se izvrši sabiranje a eventualni prenos na mestu za znak se odbaci i tako dobije rezultat u potpunom komplementu.

    3.2. Obim reči

    Važan aspekt digitalnih sistema je taj što oni mogu da manipulišu samo brojevima koji imaju unapred određen broj cifara n. Računari, na primer, imaju specificiran obim reči (word size), koji odgovara dužini (broju bitova) binarnih brojeva koji se obrađuju od strane (internih) instrukcija računara. Obim reči je obično stepen dvojke i nalazi se u opsegu od 8 bitova kod nekih mikroračunara do 64 ili više bitova kod superskalarnih procesora. 1 2 3 4 5 6 7 8

    1 244 3440 0 0 0 1 0 0 1 .

    a) ↑ pozicija binarne tačke vodeće nule

    1 2 3 4 5 6 7 8

    1 24 34prateće nule

    0 1 1 0 1 0 0 1 . b)

    ↑ pozicija binarne tačke

    Sl. 3.1. Dva 8-bitna broja: (a) celobrojna vrednost 20; (b) razlomljena vrednost 29/64.

    Na slici 3.1. prikazana su dva primera binarnih brojeva čiji je obim reči osam. Prvi primer (slika 3.1a) osnačava celobrojnu vrednost 20 (tj. 5-bitnu sekvencu 101002). Da bi uklopili (smestili) ovaj broj u 8-bitni format, neophodno je proširiti ga na 8 bitova, a to se izvodi pridruži