Mikroprocesori kroz "vekove"

Ne baš tako davne 1955. godine ljudi su se divili čudu tehnike koje se zvalo IBM 650 i koje je sa svojih 2000 elektronskih cevi zapremalo 8 kubnih metara, težilo dve tone i koštalo 200,000 dolara. Pre samo jedanaest godina divili smo se džepnom računaru TI-59 koji je, sa svojih 166.500 tranzistora, težio 300 grama, zapremao 480 kubnih centimetara i koštao 200 dolara - memorije ova dva računara su približno jednake dok TI-59 radi desetak puta brže. Danas se retko ko posebno divi mikroračunarima koji imaju stotinama puta veću memoriju, mnogostruko brže obrađuju podatke i mnogo manje koštaju - nekadašnje čudo je sve bliže korisnoj alatki. Tajna gotovo neshvatljivo brzog razvoja računarske tehnike je mikroprocesor, "mozak" svakog kompjutera koji se razvijao znatno brže od ma kog ljudskog pronalaska.

Dejan Ristanović

Računar je, znamo, naprava koja prima podatke, skladišti ih, obrađuje i izdaje rezultate. Procesor je zadužen kako za kompletno procesiranje tj. obradu podataka (odatle mu potiče i ime) tako i za koordinaciju rada ostalih komponenata računarskog sistema. Procesor je, jednostavno rečeno, deo računara koji može da se programira za procesiranje tj. obradu nekakvih podataka.

Dok svi nekadašnji računari kao i današnji veći kompjuterski sistemi imaju čitavu procesorsku ploču koja se sastojala od više desetina čipova, kompletna procesorska elektronika današnjeg mikro računara smeštena je u jedno jedino integrisano kolo koje ćete, ako se odvažite da skinete poklopac nekog kompjutera, prepoznati po tome što ima najveći broj nožica, tzv. pinova.

Današnji kućni i personalni računari sadrže u sebi više čipova koji bi mogli da se svrstaju pod definiciju mikroprocesora koju smo upravo izložili: takozvani video kontroler je specijalizovani mikroprocesor koji se bavi isključivo generisanjem slike, generator zvuka proizvodi pesmice koje slušate dok se zabavljate raznim igrama, DMA kontroler se brine za prenos podataka između periferijskih jedinica i memorije, disk kontroler komunicira sa disk jedinicom... Obično se, međutim, ne bavimo svim ovim specijalizovanim kontrolerima već mikroprocesorima opšte namene: dok video kontroler može "samo" da generiše sliku, mikroprocesor opšte namene može da se programira za kontrolisanje slike ali i za generisanje zvuka, kontrolu pristupa memoriji, komunikaciju sa diskom ili bilo koju drugu stvar. Ukoliko je neki računar već opremljen raznim specijalizovanim kontrolerima, centralni mikroprocesor će izvršavati programe koje korisnik zadaje i tek s vremena na vreme koordinirati rad ostalih kontrolera. Korisnik obično nema nikakvih mogućnosti (a ni potreba) da komunicira sa bilo kojim hardverskim modulom svoga računara osim posredstvom centralnog mikroprocesora. Mikroprocesor se ne nalazi samo u centru bilo kojeg mikro računara - razne mikroprocesore pronalazimo u štampačima, časovnicima, automatima za igre, video rekorderima, mikrotalasnim rernama i sličnim uređajima.

Intel

Iako je razvoj mikroprocesora bio munjevit, nije teško sagledati njegove osnovne faze. Sve je počelo 1960. godine proizvodnjom prvih integrisanih kola, ogromnih skupova tranzistora, dioda, otpornika i kondenzatora smeštenih na silicijumsku pločicu. Od integrisanih kola koja su postajala sve složenija i sve jeftinija često su, jasno, sklapani računari i, samim tim, njihove procesorske ploče. Samo deset godina kasnije, 1970, Intelov inženjer Marsijan Hof (Marcian Hoff) dolazi na revolucionarnu ideju da projektuje integrisano kolo koje bi samostalno obavljalo određen deo posla standardne procesorske ploče. Pokazalo se da i na tadašnjem stupnju razvoja tehnologije integrisano kolo može da preuzme kompletnu funkciju procesorske ploče i tako je nastao prvi mikroprocesor - Intel 4004. 4004 je bio četvorobitni mikroprocesor što znači da je podatke obrađivao u grupama od po četiri bita; sastojao se od oko 2250 tranzistora i u svakom sekundu izvršavao 60,000 operacija.

Značajan komercijalni uspeh mikroprocesora 4004 učinio je da se Intel zainteresuje za ovakvu proizvodnju i da jedva godinu dana docnije ponudi tržištu mikroprocesor 8008, neposrednog osmobitnog naslednika 4004. Smatra se da 4004 i 8008 čine prvu generaciju mikroprocesora.

Na drugu generaciju nije trebalo dugo čekati - 1974. Intel predstavlja mikroprocesore 8080 i, nešto docnije, 8085. Premda i dalje osmobitni, ovi su mikroprocesori značajno moćniji od svojih prethodnika i predstavljaju prve mikroprocesore koji u potpunosti zaslužuje epitet "opšte namene". Karakteristike 8080 i, naročito, 8085 su učinile da ovi čipovi mnogostruko nadžive svoj "prirodni vek" pa se i danas nalaze u mnogim računarima i specijalizovanim kontrolerima.

Zilog

Najveći deo jugoslovenskih vlasnika kućnih računara zna za mikroprocesor Z-80 koji je zapravo nastao malo posle Intelove druge generacije - Z-80 je zapravo dizajnirala mala grupa "odbeglih" Intelovih inženjera koji su osnovali nezavisnu firmu Zilog. Z-80 je u značajnoj meri kompatibilan sa 8085 - svaki program pisan za 8085 radiće i na Z-80! Obrnuto, naravno, ne važi - Z-80 je hardverski i softverski unapređen što znači da racionalnije komunicira sa periferijom i poseduje određen broj moćnih instrukcija koje se bave manipulacijom većim grupama podataka. Iako je davno proslavio deseti rođendan koji se u ovoj dinamičnoj grani tehnike smatra dubokom starošću, Z-80 se i dalje odlično drži - ne ugrađuje se samo u specijalizovane kontrolere nego i u mnoge računare koji se upravo dizajniraju! Z-80 je, jasno, u toku svojih deset godina pretrpeo nekoliko revizija pa su se pojavili ubrzane varijante nazvane Z-80A, Z-80B i Z-80H. Ravidirana je i cena - dok su prvi primerci Z-80 koštali 250 dolara, danas se ovaj mikroprocesor nabavlja za 1.25 dolara!

A onda opet Intel

Treća generacija Intelovih mikroprocesora ugledala je svet četiri godine posle druge - sredinom 1978. završen je razvoj mikroprocesora 8086 i 8088. 8088 i 8086 su, sa programerske tačke gledišta, praktično identični - programe pisane za jedan od njih bez ikakvih izmena može da izvršava drugi. Razlike su, dakle, harverske - 8088 je jeftiniji mikroprocesor čije je povezivanje sa periferijom znatno lakše i jeftinije ali je zato "saobraćaj" sporiji.

Ogroman uspeh mikroprocesora 8086 i 8088 Intel duguje IBM-u: 1981. je lansiran IBM PC koji je ubrzo postao dominirajući standard poslovnih ljudi. IBM PC je zasnovan na mikroprocesoru 8088 dok su neki njegovi naslednici zasnovani na 8086.

Uspehu Intelove treće generacije doprineo je i aritmetički koprocesor 8087. Svaki mikroprocesor se, naime, može programski osposobiti za rad sa racionalnim brojevima i računanje vrednosti elementarnih funkcija ali je ovakav rad, pogotovu na jednostavnijim mikroprocesorima, uglavnom neprijatno spor. Aritmetički koprocesor je zapravo specijalizovani mikroprocesor koji radi sa racionalnim brojevima - sve su operacije rešene na nivou mikrokoda pa se izvršavaju izuzetno brzo. Iako su aritmetički koprocesori relativno nezgodni za masovnu proizvodnju i, prema tome, daleko skuplji od odgovarajućih mikroprocesora (8087, na primer, ima tri puta više tranzistora nego 8086), ugradnja 8087 je mnogim vlasnicima PC-ja približila primene koje zahtevaju dosta računanja kao što su računarska grafika i kompjutersko projektovanje.

I pored značajnog tržišnog uspeha, programeri nikada nisu imali naročito mišljenje o mikroprocesorima 8088 i 8086: najviše zamerki upućuje se arhitekturi koja značajno otežava pristup kompletnoj raspoloživoj memoriji što znači da i vlasnici PC klonova koji su se opremili maksimalnom memorijom od 640 kilobajta mogu da pišu bejzik ili paskal programe duge najviše 64 kilobajta! Intel je na ove zamerke odgovorio 1984. predstavljajući četvrtu generaciju mikroprocesora čiji je glavni predstavnik 80286. Asemblersko programiranje mikroprocesora 80286 postalo je u mnogome slično programiranju na nekom višem jeziku: uvedeni su složeni tipovi podataka kao što su stringovi ili racionalni brojevi i obezbeđena veoma komplikovana adresiranja koja olakšavaju pristup statičkim i dinamičkim matricima, pointerskim strukturama i slogovima. Arhitektura mikroprocesora 80286 je, osim toga, prilagođena modularnom programiranju i obezbeđuje zaštitu pojedinih segmenata memorije od neopreznog upisivanja podataka što je preduslov za projektovanje operativnih sistema koji obezbeđuju istovremeno izvršavanje većeg broja programa. Mikroprocesor 80286, najzad, može da adresira čitavih 16 megabajta memorije što bi trebalo da bude više nego dovoljno kako za postojeće aplikacije tako i za mnoge buduće potrebe korisnika računara. Paralelno sa 80286 Intel je pripremio prateći aritmetički koprocesor 80287.

Mikroprocesor 80286 je dokazao da svaki uspeh ima svoju cenu: uspeh ranijih generacija Intelovih mikroprocesora počeo je da predstavlja ozbiljan balast! Pokazalo se, naime, da su dizajniranje mikroprocesora i hardvera personalnog računara važni za njegov tržišni uspeh ali da se ključ pravog uspeha krije u softveru - novi računar ne treba opremiti samo operativnim sistemom i interpretatorima odnosno kompajlerima raznih jezika već i stotinama programa koji obezbeđuju raznorazne primene počev od univerzalno potrebne obrade teksta pa do vođenja složenih knjigovodstava koja interesuju veoma uzak krug korisnika. Intelovi projektanti nisu mogli da dopuste da džinovska softverska biblioteka razvijena za IBM PC i, prema tome, 8086 bude bačena pa su učinili mikroprocesor 80286 u potpunosti vertikalno kompatibilnim sa 8086: svaki program pisan za 8086 bez problema će se izvršiti i na 80286! Iako je ovakva odluka omogućala IBM-u da proda milione računara iz serije IBM PC AT koji su zasnovani na mikroprocesoru 80286 i, prema tome, kompatibilni sa PC-jem, pokazalo se da mikroprocesor 80286 u realnim situacijama uglavnom emulira svog starijeg brata i, samim tim, pati od njegovog 64-kilobajtnog limita. Nove instrukcije koristi malo koji proizvođač softvera jer strogo usmeravanje nekog paketa prema IBM PC AT-u automatski umanjuje potencijalno tržište. Zanimljivo je da se tek početkom ove godine na tržištu pojavio operativni sistem pisan specijalno za mikroprocesor 80286 - operativni sistem nazvan OS/2 ima veliku IBM-ovu podršku ali njegov tržišni uspeh time nije zagarantovan!

Odgovarajući na zamerke mnogih programera, Intel je prošle godine predstavio petu generaciju svojih mikroprocesora čiji su predstavnici mikroprocesor 80386 i aritmetički koprocesor 80387. Svaki od ovih čipova u sebi sadrži kompletnog prethodnika što znači da se programi pisani za IBM PC i IBM PC AT bez problema izvršavaju na računarima sagrađenim oko mikroprocesora 80386. Primenom jedne instrukcije mikroprocesor, međutim, može da aktivira sasvim novi set 32-bitnih instrukcija koje ukidaju memorijske segmente, obezbeđuju zaštitu delova memorije i, prema tome, pravi višeprogramski rad, složenu kontrolu pristupa memoriji i, što nikako nije najnevažnije, adresiraju preko 4 gigabajta ROM-a i RAM-a! Tržišni uspeh mikroprocesora 80386 unekoliko dovodi u pitanje jedino Intelova namera da u bliskoj budućnosti pripremi novu generaciju čiji će glavni predstavnik biti mikroprocesor 80486.

I svi ostali

Do sada smo govorili isključivo o Intelovim mikroprocesorima i njihovim neposrednim parnjacima kao što je Z-80. Na tržištu, međutim, paralelno egzistira još nekoliko porodica mikroprocesora među kojima je najvažnija Motorolina. Motorola je počela sa osmobitnim mikroprocesorima 6800, 6802, 6803, 6808 i 6809 koji su međusobno prilično slični ali je pravu popularnost postigla tek dizajnirajući šesnaestobitni mikroprocesor MC68000. Mikroprocesor MC68000 je, zahvaljujući modernoj arhitekturi, bogatom setu instrukcija i slobodnom pristupu adresnoj mapi od programera dobio mnogo laskavih ocena ali mu je hronično nedostajala podrška nekog giganta koji je bar u izvesnoj meri ravan IBM-u - iako su oko MC68000 dizajnirani mnogi uspešni računari kao što su Apple Macintosh, Atari ST i Commodore Amiga, do danas se nije afirmisao standardni operativni sistem za računara zasnovane na Motorolinim mikroprocesorima. Nedostatak standardnog operativnog sistema znači da za svaki računar treba posebno pripremati kompletnu softversku biblioteku što teško može da bude osnova većeg uspeha.

Paralelno sa mikroprocesorom MC68000, Motorola je pripremila njegove varijante: 68008 je hardverski oslabljena i pojeftinjena verzija na kojoj je zasnovan Sinklerov kontraverzni računar QL dok su 68010 i 68012 mikroprocesori koji se takmiče sa Intelom 80286. Prošla godina donela nam je trideset dvobitni mikroprocesor MC68020 koji je očito neposredni konkurent Intela 80386. Gotovo nepodeljeno mišljenje svetskih programera da su Motorolini mikroprocesori po karakteristikama bolji od Intelovih je pojavom pete generacije teško ugroženo - prvi testovi su pokazali da je 80386 značajno superioran kada se radi o brzini rada i pogodnostima seta instrukcija. Motorolinim mikroprocesorima se, ipak, odsada neće zamerati nedostatak standardnog operativnog sistema - karakteristike trideset dvobitnih procesora obezbeđuju pokretanje neke od verzija Unixa, trenutno najpopularnijeg operativnog sistema prilagođenog ozbiljnim programerima.

Nabrajajući mikroprocesore nikako ne smemo da zaboravimo 6502, jedini veliki tržišni uspeh relativno nepoznate firme MOS Technology. 6502 je osmobitni mikroprocesor na kome su zasnovani mnogi slavni kućni računari: Apple II, Commodore 64 i 128, BBC, Electron... Rasklapanjem ovih kompjutera, istini za volju, nećete pronaći baš čip čija je oznaka 6502: varirajući pojedine hardverske karakteristike svog remek-dela, firma MOS Technology proizvela je i mikroprocesore 65C02, 6510, 6512, 8512 i 65102 koji se, sa programerske tačke gledišta, vrlo malo razlikuju od osnovnog modela. Iako mikroprocesor 6502 nije imao šesnaestobitnih i trideset dvobitnih naslednika, može se smatrati da je deo njegove filozofije ugrađen u trenutno veoma moderne RISC mikroprocesore.

RISC procesori

Sukcesivne generacije mikroprocesora imale su sve više moćnih instrukcija pa se programiranje na asembleru na neki način približavalo programiranju u nekom višem jeziku. Konstruktori mikroprocesora su verovali da je veliki broj taktnih ciklusa neophodnih da se izvrši svaka instrukcija nužna posledica njene složenosti i da će se dobici u brzini rada računara postići stalnim povećavanjem frekvencije oscilatora. Školski primer ovakve strategije kompleksnog seta instrukcija (CISC) su Digitalovi miniračunari iz serije VAX - postoji instrukcija njihovog procesora koja se u silnim megabajtima operativnog sistema i raznih kompajlera koristi samo jednom a ipak zauzima svoj prostor u mikrokodu i usporava dekodiranje ostalih naredbi!

Ideja o formiranju mikroprocesora koji će imati malo pažljivo izabranih instrukcija koje se izvršavaju veoma brzo rodila se 1975. godine u IBM-ovim laboratorijama dok je John Cocke razvijao ogromnu telefonsku centralu kojoj je bio potreban moćan mikrokompjuterski kontroler. Tada je nastao mikroprocesor 801 koji se, istini za volju, nikada nije pojavio na tržištu ali čija je filozofija 1986. godine ugrađena u IBM PC RT, računar kojim je IBM želeo da dokaže svoju superiornost u svim novim računarskim tehnologijama. Prvi komercijalno raspoloživ RISC procesor je, međutim, 1985. godine proizveo mali razvojni tim britanske firme Acorn. Zbog krize u kojoj se Acorn našao ARM mikroprocesor je dugo ostao u laboratorijama da bi prošle godine zablistao u centru BBC Arhimeda, navodno najbržeg personalnog računara na svetu.

Relativno mali broj instrukcija čini procesor brzim i jeftinim: dok Motorolin 32-bitni CISC mikroprocesor 68020 ima oko 192,000 tranzistora, ARM-ovih 25,000 tranzistora lako postižu istu brzinu na dvostruko sporijem kloku. Usporenje kloka, jasno, omogućava korišćenje jeftinijih pratećih čipova što znači da su RISC računari potencijalno znatno jeftiniji. Cena koja se plaća nije naročito velika: teže je programirati na procesoru koji ima jednostavnije instrukcije ali se 32-bitne mašina i onako vrlo retko programiraju na asembleru - treba samo uložiti rad u dobar C ili Ada kompajler koji proizvodi optimalan kod.

Mali broj instrukcija koje se izvršavaju u što manje taktnih ciklusa je najvažnija ali ne i jedina karakteristika RISC procesora. Format svih RISC instrukcija mora da bude isti što bitno pojednostavljuje mikrokod koji ih prepoznaje. Najzad, RISC procesori imaju mnogo registara i sa (potencijalno sporom) memorijom komuniciraju isključivo preko LOAD i STORE instrukcija.

U tehnici se razmerno retko događalo da dve dijametralno suprotne koncepcije razvoja dugo koegzistiraju - ili se jedna od njih lagano povlači ili obe konvergiraju ka nekom među rešenju. Možda će već ova godina dati odgovor na "hamletovsko" pitanje "mikrokodirati ili ne, pitanje je sad". Novija kretanja na tržištu pokazuju da se RISC i CISC približavaju jednoj novoj koncepciji koju obično nazivamo WISC (W od Writable) - prvi predstavnici ovakve arhitekture su, bar na papiru, Motorola 68030, Fairchild Clipper i, donekle, Inmos-ov Transpjuter.

Dok u svetu generacije mikroprocesora iz godine u godinu potiskuju jedna drugu, domaća kompjuterska scena je daleko statičnija. Što se kućnih računara tiče, apsolutno dominiraju Z-80 i 6502: domaći programeri su izvanredno upoznali ove mikroprocesore i sastavili mnogo veoma kvalitetnih mašinskih programa od kojih su se neki probili i na strano tržište. Popularno pisane literature na našem jeziku ima dosta što znači da je put za ambicioznog programera koji želi da upozna mikroprocesor na kome je njegov računar zasnovan relativno definisan.

Na tržištu personalnih računara apsolutni primat ima IBM PC koji, uostalom, predstavlja i vodeći svetski standard. Mašinski jezik mikroprocesora 8086, međutim, malo ko upoznaje - opšte je mišljenje da je za pisanje kvalitetnih programa koji će se izvršavati na IBM PC-ju dovoljno upoznati Turbo paskal ili možda C. Popularne literature koja bi se bavila isključivo mikroprocesorom 8086 kod nas gotovo i nema.

Domaće razvojne laboratorije su se praktično isključivo orijentisale na Intelove mikroprocesore pa se paralelno koriste 8085, 8086 i razni specijalizovani Intelovi kontroleri kao što su 8047 i 8051. Programiranje se obavlja na asembleru ili na (među amaterima) relativno nepoznatom jeziku niskog nivoa koji je nazvan PL/M; "pravo građanstva" u poslednje vreme stiče i C. Domaći projekti koji bi trebalo da afirmišu 32-bitne mikroprocesore i RISC mašine su uglavnom u fazi idejnih rešenja i laboratorijskih eksperimenata.