Svasta se ovde moglo procitati, i tacnog i netacnog. Ne bih da vredjam pojedine clanove foruma, ali ovde su iznete neke stvari koje kao da su culi na pijaci, ili od komsijinog klinca. Trebalo bi bar na informacionim sistemima uvesti predmet "Poznavanje hardvera" ili tako nesto. Naravno da ne treba da ucimo detaljno kako funkcionisu mikroprocesori, maticne ploce, memorije i sl. (to uce ETF-ovci), ali neka elementarna znanja iz ove oblasti bi trebalo da ima svaki inzenjer IS-a. Sramota je za akademca koji ce nositi to zvanje da iznosi ovakve stavove koje ste mogli procitati u nekim porukama ovde. Nije ni cudo sto nas ocrnjuju po pojedinim forumima upravo zbog ovakvih tema, tj. nivoa nepoznavanja materije o kojoj se diskutuje.
Zato sam odlucio da krenem sa pisanjem malog FAQ-a o mikroprocesorima. Pocecu od elementarnih stvari, a u nekom od sledecih postova cu se usmeriti u razvoj Intelovih i AMD-ovih procesora.
1. Od cega je napravljen mikroprocesor? Kako funkcionise procesor na nivou tranzistora?
Prvo, treba znati da materijali koji se koriste za izradu mikroprocesora imaju svojstva poluprovodnika (provode elektricnu struju ako im se za to obezbede odgovarajuci uslovi). Materijal koji se najvise koristi za izradu cipova je silicijum (Si) koji ima dobra poluprovodnicka svojstva. U spoljnoj orbitali silicijum ima cetiri elektrona pomocu kojih je u stanju da stvori kovalentnu vezu (hemija, 7. razred osnovne) sa cetiri susedna atoma stvarajuci pravilnu kristalnu resetku bez slobodnih elektrona koji bi provodili struju, pa u takvom stanju silicijum se moze smatrati izolatorom. Ali, ukoliko se cist silicijum pomesa sa malom kolicinom nekog odgovarajuceg elementa, npr. fosfora koji u poslednjoj ljusci ima pet elektrona, taj peti elektron nece imati sa cime da se veze u silicijumskoj kristalnoj resetki, tako da automatski postoji mogucnost provodljivosti elektricne energije. Postoje dve vrste primesa kojima se moze modifikovati (dopirati) silicijum - "N" i "P", koje se razlikuju po tome da li "modifikator" ima u poslednjoj ljusci tri ili pet slobodnih elektrona, tj. da li je pozitivno ili negativno naelektrisan. Naravno da N - dopiran (elektron vise), odnosno P - dopiran (elektron manje) nije tako dobar provodnik pa se zato N ili P dopiran silicijum spada u grupu poluprovodnika.
Najprostiji poluprovodnicki uredjaj je dioda, a koja se sastoji iz jednog "N" i jednog "P" parceta silicijuma. Ukoliko napravimo jedno elekricno kolo pomocu baterije i diode tako da + kraj baterije spojimo sa N (-) krajem, a - kraj baterije sa P (+) krajem diode ona nece provoditi struju (krace receno inverzno polarisana dioda). Medjutim, ukoliko okrenemo bateriju, dioda ce provoditi struju (podsticace popunjavanje rupa u P delu slobodnim elektronima iz N dela tj. bice direktno polarisana). Sad bi vi rekli: "Ovo bi znacilo da struja tece od - ka + kraju baterije, jer se tako fakticki i krecu elektroni" sto je apsolutno tacno. To je i pravi smer struje, dok je usvojeni tzv. "tehnicki smer struje" suprotan od kretanja elektrona.
Posto dioda nije dovoljna da obezbedi konstantan protok struje u jednom pravcu uz mogucnost iskljucivanja i ukljucivanja, tj. da bi napravili prekidacki element sto nam je i potrebno za izvrsavanje elementarnih logickih funkcija, odnosno Bulove algebre, sledeci elektronski element ce biti tranzistor. On se sastoji od tri sloja N i P dopiranog sislicijumam a moze se izradjivati u NPN ili PNP kombinaciji. Fakticki, tranzistor predstavlja dve spojene diode koje imaju zajednicki sredisnji deo. Kada se levi i desni kraj tranzistora povezu na izvor struje jesno je da on nece provoditi struju jer ce uvek jedna od strana blokirati protok elektrona. Medjutim, ukoliko se kroz srednji deo tranzistora pusti malo struje, elektroni ce se pokrenuti i omoguciti da se kroz ceo tranzistor provodi struja sa glavnog izvora napajanja povezanog na krajeve tranzistora. Ovo znaci da tranzistor mozemo lako ukljucivati i iskljucivati, tj. davati vrednosti 0 i 1 na kojima se bazira Booleanova logika, a shodno tome i rad svih digitalnih uredjaja. Danasnji mikroprocesori imaju preko 80 miliona tranzisotra, a sto je broj tranzistora veci, to su mogucnosti mikroprocesora bolje jer je tako moguce izvrsiti vise funkcija u zadatom vremenskom intervalu. Svi ti tranzistori se smestaju na jednu specijalno pripremljenu plocicu - wafer. Intel i AMD se trude da usitne proizvodni proces (danasnji procesori se izradjuju u tehnologiji 0,18 i 0,13 mikrometara). Sto je cip manji, to se vise procesora moze napraviti od jednog vafera, pa je i proizvodnja jeftinija.
2. Koji su logicki delovi procesora? Kako to sve u stvari funkcionise? (ovog bi trebalo da se secate iz UIS-a)
Naravno da oni silni milioni tranzistora nisu razbacani po procesoru tek tako, vec su grupisani u odredjene logicke celine, tj. vece grupe tranzisotra koje su zaduzene za izvrsavanje odredjenih funkcija. Osnovni delovi mikroprocesora su ALU (aritmeticko logicka jedinica), FPU (jedinica zaduzena za operacije sa brojevima sa pokretnim zarezom, tj. decimalnim brojevima), adresne magistrale, data magistrale (za prenos podataka), dekodere instrukcija, kse memoriju itd. ALU je zaduzen za osnovne operacije sa celim brojevima. Medjutim, ukoliko se ukaze potreba za izracunavanje operacija sa decimalnim brojevima (kod slozenijih matematickih izracunavanja, 3D igara, renderinga, i sl.) na scenu stupa FPU koji se bavi ovim slozenim poslovima, rasterecujuci pri tome ALU i znatno ubrzavajuci proces. U starim modelima PC racunara FPU je bio poseban mikroprocesor koji nije bio u standardnoj opremi jednog tadasnjeg PC-a (8086, 8088 - XT, 80286, 80386 procesori nisu imali koprocesor). Naravno, svi ti brojevi i rezultati iz ALU-a i FPU-a morali su biti smesteni u osnovnoj memoriji. U zavisnosti od procesora moguce je adresirati razlicite kolicine memorije, a to se vrsi preko delova adresne magistrale cija propusna moc moze biti ralzicite sirine (8, 16, 32, 64, itd. bita). Sirina ALU jedinice (8, 16, 32, 64, itd. bita) ujedno predstavlja sirinu i propusnu moc magistrale kojom dolaze podaci na obradjivanje. Logicno, sto su magistrale vece sirine - propusna moc je veca, pa je i broj instrukcija koje moze CPU da izvrsi u jednom svom taktu veci. Tako je recimo 8-bitnoj ALU jedinici potrebno da izvrsi cetiri instrukcije da bi dva 32-bitna broja bila sabrana, dok 32-bitna ALU jedinica isiti posao odradi u samo jednoj instrukciji. Kes memorija uglavnom postoji u dva nivoa L1 i L2, a deli se na deo za instrukcije i podatke. Ova memorija, posto se nalazi u procesoru, radi na mnogo vecoj brzini od sistemske memorije i sluzi da ALU i FPU jedinci sto pre isporuci odgovarajuce podatke, povecavajuci time ukupne performanse procesora.
3. Kako je moguce ubrzati rad procesora sem povecanjem radnog takta?
Sa povecanjem broja tranzistora razvijene su i implementirane tehnologije, kao sto je "pipeline" arhitektura koja omogucava preklapanje instrukcija. Ranije je procesor morao da zavrsi obradu jedne instrukcije da bi presao na drugu, dok sada to nije slucaj, jer se sada koriscenjem pipelineova moze naci vise instrukcija u razlicitim fazama obrade. Iako je ova tehnologija dosta komplikovana, nalazi se u svim modernim procesorima.
Drugi nacin za ubrzavanje procesora su posebni setovi instrukcja (kao sto su Intelovi MMX, SSE, SSE2, odnosno AMD-ovi 3DNow i 3DNow2). Ove specijalne instrukcije namenjene su kompleksnim proracunima, pa je tako jednom specijalnom instrukcijom moguce izvrsiti vise obicnih. Naravno, da bi se primenile, ove instrukcije moraju biti podrzane od strane proizvodjaca softvera. Kao sto je marx.alter napisao, Intel i AMD imaju ugovor o razmeni licenci, tako da se ove napredne tehnologije mogu uglavnom pronaci u novijim modelima procesora obe firme.
4. Kako procesor funkcionise kada ukljucimo racunar?
Postoji procedura koja se izvrsava svaki put kada ukljucimo, ili hardverski resetujemo racunar (dugme reset na kucistu). PC racunari moraju posedovati ROM (Read Only Memory) u kojoj se nalaze najosnovnije instrukcije neophodne za startovanje kompjutera. Teoretski, osnovni racunarski sistem moze se napraviti bez RAM-a (Random Access Memory), ali ne i bez ROM-a. BIOS (Basic Input Output Sytem) cip, koji se nalazi na svakoj maticnoj ploci racunara, predstavlja ROM memoriju PC-a. Kada se CPU pokrene automatski krece u izvrsavanje instrukcija koje se nalaze u BIOS cipu. To su instrukcije koje proveravaju i testiraju osnovne delove sistema, nakon cega sledi instrukcija koja kaze procesoru da potrazi prvi boot sektor na hard disku (odnosno floppy, CD-u i sl.) Procesor krece dalje u izvrsavanje instrukcija iz boot sektora koje dalje upucuju na podatke na disku sa kojeg se podize operativni sistem. Uglavnom su to zahtevi koji upucuju procesoru da kopira podatke sa diska u RAM memoriju.
Toliko za sada. Znam da sam nekome mozda bio dosadan, ali smatram da je ovo nesto sto bi svaki kolega sa IS-a morao da zna!
O tome da li je bolji AMD ili Intel, nema svrhe se rasptavljati, jer bi to bila diskusija na desetinama stranica i ne bismo dosli ni do kakvog konkrenog zakljucka. Moje misljenje je da, u danasnje vreme, sa hardverskog stanovista, stabilnost sistema mnogo vise zavisi od drugih faktora, a ponajmanje od procesora (ukoliko radi na nominalnoj frekvenciji, overklokovanje je prica za sebe). Mnogo je znacajnije od kakvih elektronskih komponenti je sastavljena maticna ploca, kakvo je napajanje, kakvog kvaliteta su ostale komponente (graficka kartica, hard disk i sl.) U poslednje vreme kvalitet procesora se ogleda u tome da li je overklokabilniji ili ne. Slicno vazi i za memoriju. Obe kompoenete moraju da rade dobro na nominalnim setovanjima, inace su neispravne. Recimo, nema razlike u performansama izmedju Kingston, Corsair, Geil, PQI, NCP memorija ukoliko rade na 166MHz, a to im je i fabricka vrednost (PC-2700). Jos jedna vrlo bitna stvar kod izbora procesora je posao koji ce taj procesor obavljati. Za office i svakodnevnu upotrebu racunara za slusanje muzike, gledanje filmova, internet sasvim dovoljan je Celeron ili Sempron procesor. Razlike u performansama odgovarajucih modela su skoro neprimetne u svakodnevnom radu. Ukoliko se radi o specijalnim primenama racunara (recimo video montaza, 3D animacija i sl.) treba imati u vidu koja hardverska konfiguracija je preporucena od strane proizvodjaca softvera, pa na osnovu toga izabrati i procesor. Recimo, Adobe Premiere Pro nece da radi sa procesorima koji nemaju SSE instrukcije (Pentium III, Athlon XP). Neke firme ne garantuju rad softvera ukoliko se ne koristi preporucena hardverska konfiguracija (ukljucujuci i izbor procesora).
Verujem da ima dosta onih koji nece procitati ceo post, ali sa druge strane, zalosno je znati da ce sa ovog fakulteta izaci kao inzenjeri IS-a, a nece znati najosnovnije stvari o funkcionisanju mikroprocesora i hardvera uopste. Mozda ce se zato setiti za dostignuca iz koje nauke se najkasnije pocela dodeljivati Nobelova nagrada, koji je to naucnik zasluzio i kada (pitanje je bilo u kvizu Milioner, ja se setio i ako jos nisam jos polozio taj ispit). Nisu oni krivi, za to treba zahvaliti onome koje osmislio plan i program na nasem fakultetu...