Procesor

Procesor

offline
  • Spy
  • Pridružio: 21 Jul 2007
  • Poruke: 9424
  • Gde živiš: Kako kad

Procesor je mozak svakog računarskog sistema. Zadnjih 30-tak godina svedoci smo tehnološke revolucije u kojoj i procesor ima značajnu ulogu. Nas zanima šta je u stvari taj mali uredjaj, od čega se sastoji i naravno kako radi?

Pojam procesor (CPU) je skraćenica od Central Processing Unit, a ovaj pojam potiče još iz sredine 40-tih godina, znači od samog pocetka računarske ere. Tada je CPU imao nešto drugačije značenje. Nije se mislilo samo na jedan uredjaj već na ceo sistem kako mehanički (od tuda i pojam hardware) tako i na programski (Software). Vremenom, pojavom moderne elektronike, došlo je do evolucije i tranzicije ka poluprovodnicima, pa se polako i ovaj pojam uobličavao. Početkom 70-tih se pojavljuju prvi pravi procesori (onakvi kakve ih mi danas poznajemo u jednom čipu), Intel 4004 pa nešto kasnije Intel 8008 (prvi 8-bitni procesor), zatim Motorola 6800, kao i Intelov 8086 začetnik x86 generacije koja je i danas aktuelna (skoro svi procesori na svetu su njegovi sukcesori).

Treba reći da ovaj mali monolitni uredjaj u stvari nije uredjaj već fizičko-logički skup uredjaja različite namene spregnutih u jednu celinu. Osnovni delovi modernih procesora su:

ALU - Arithmetic logic unit, aritemetičko/logička jednica, zasigurno najvažniji deo procesora. Ona je zadužena za matematičke proračune i izvršavanje instrukcija. Poseduje je svaki procesor i bez nje ne bi bio moguć nikakav rad.

FPU - Floating Point Unit, jedinica za rad nad brojevima u pokretnom zarezu. Ima sličnu namenu kao i ALU ali ona obavlja znatno složenije proračune, jako je kompleksan uredjaj i često u svom sastavu ima jednu jednostavniju ALU. FPU je možda i najsloženiji uredjaj u samom procesoru.

Cache – Interna memorija. Postoji u više nivoa koji su sukcesivno vezani za internu magistralu. Namena ove memorije je da ubrza pristup podacima. Naime, bez obzira koliko ostale komponente bile brze one nikada ne mogu da dostignu interne brzine procesora. Pristup podacima u sistemskoj memoriji je, sa stanovišta procesora, jako spor, ako bi se moralo svaki put pristupiti svakoj pojedinačnoj adresi na kojoj se nalazi podatak ili neka instrukcija izgubilo bi se jako puno vremena. Većina tog vremena se gubi na sam prenos, a ne na fizičku obradu ili izvršavanje. Naime, pristup keš memoriji u procesoru je odredjen brzinom samog procesora, a brzina pristupa sistemskoj memoriji je odredjena brzinom memorijske magistrale, a razlika ovih brzina je u stvari množilac. Zato se ne pristupa pojedinačnoj adresi vec mnoštvu adresa koje se privremeno smeštaju u internu memoriju, a kojoj je pristup mnogostruko brži, zbog same blizine integrisanih uredjaja prenos je jako kratak, tako se vreme ne gubi na čekanju. Hijerarhijski keš je podeljen u više kategorija:
- L1 je najbliži internoj magistrali i njemu je pristup najbrži, u nekim situacijama može da služi i kao prihvatna memorija neke jedinice za obradu. Manji je od memorija hijerahijski ispod njega,
- L2 je znatno veći, obično je prvi na “ulazu” podataka u sam procesor i može se izvesti paralela sa buferom.
- L3 keš je do sada bio retkost ali će ga imati neki noviji procesori i on ce prakticno imati pravu ulogu bufera.

Registri – Postoji jako puno registara različite namene od instrukcijskih preko akumulatora (privremeno smeštanje podataka) pa sve do registara opšte namene. Za objašnjenje njihovog rada i same uloge potrebano je dosta predznanja i vremena tako da oni neće biti obradjeni.

Interna magistrala – Služi kao veza medju svim komponentama unutar procesora.

Control Unit – Kontrolna jedinica, iako poslednje nabrojana, ne i najmanje bitna. Njena namena je da usaglasi i sinhronizuje rad svih komponenti, kako samog procesora tako i računarskog sistema uopšte. U njoj se nalazi klok generator čija je osnovna funkcija sinhronizacija. Sve u računaru radi po taktu koji ona generiše.

Jasno je da brzina, odnosno radni takt procesora, povećava njegovu sposobnost obrade podataka. Sve što je veći takt, više instrukcija u jedinici vremena se može izvršiti, ali veći radni takt podrazumeva i veća opterećenja, a samim tim i potrošnju energije pa i zagrevanje. Zbog toga se pribegava nekim drugim rešenjima, kao što su multiprocesiranja, gde jedan fizicki čip sadrži više nezavisnih, ali spregnutih procesora koji opet združeno obavljaju jedan zadatak. Takođe, smanjenje tehnološkog procesa podrazumeva manje razdaljine između komponenata u samom jezgru pa samim tim i manje se energije disipira. Sta je u stvari multiprocesiranje? Misli se na vise fizičkih procesora spregnutih da rade zajedno. Prva rešenja u stvari i nisu bila baš pravi multiprocesori ( dvojezgarni ) već su to bila dva nezavisna jezgra “nalepljena” na jedan nosač i povezana odredjenim elektronskim kolima ( Athlon 64 X2, Pentium 8xx i 9xx serija ). Kasnije se pojavljuju i nativni dvojezgarni procesori ( dva jezgra koja se nalaze u istom čipu, izvorno projektovana da rade spregnuto ). Za sada ne postoji više od toga, mada postoje četvorojezgarni procesori, ali oni su za sada kao i dvojezgarni na svom početku, znači dva dvojezgarna procesora nalepljena i spregnuta. Phenom i Penryn bi trebalo da budu prvi pravi četvorojezgarni proceosri.

Procesori se takodje razlikuju i po tome koliki prostor mogu da adresiraju. Recimo 32-bitni procesor moze da adresira 2^32 bita, sto je za današnje pojmove malo. Ovaj problem se prvo pojavio kod serverskih rešenja jer oni zahtevaju puno memorije, a kasnije i kod desktop rešenja. Današnji procesori mogu da adresiraju 2^64 bita sto je puno tako da neko vreme nece biti potrebno implementirati rešenja čiji je adresni prostor veći.

Moramo se pozabaviti i nekim realnim stvarima, onosno nekim osnovnim poredjem procesora dva najveća proizvodjaca, AMD i Intel.

Iako je AMD svojevremeno proizvodio procesore zasnovane na Intelovoj arhitekturi vremenom je razvio i svoje priozvode. Posebnu pažnju na sebe je skrenuo pojavom Athlon XP procesora koji su, u tadašnje doba, bili dosta ispred Intelovih pandana. Zašto? Odgovor nije baš jednostavan, odnosno nije ga moguće dati, a da se pritom ne dotaknu neki uskostručni pojmovi, no ipak ćemo pokusati.

Posmatrajmo pojednostavljen proces pribavljanja podatka ili instrukcije. Ako se recimo taj podatak vec nalazi u kešu i treba biti prosledjen do ALU, prvo se izdaje zahtev za njim, neki od prihvatnih registara ga preuzima, pa potom dolazi do ALU, dok se taj podatak obradjuje, onaj prihvatni registar je prazan odosno ne radi ništa, baš kao i registri koji bi trebalo da prihvate taj podatak kao “obradjen”, znači u procesoru postoji mnogo komponenti koje se “dosadjuju” što znatno utice na performanse. Da bi se ovo izbeglo pribegava se rešenju da se instrukcije razdele na više podinstrukcija ili podesnih delova i da se izvršavaju simultano, odnosno da se proces pribavljanja i izvršavanja preklapa svo vreme. Recimo ako jednu instrukciju možemo podeliti na tri dela, kada prvi deo dodje u ALU na obradu, u istom taktu je drugi deo premesten u prihvatni registar. Kada se sada drugi pomeri u ALU, prvi je u nekom izlaznih prihvatnih registra, a treci je spreman u nekom od ulaznih prihvatnih registara. Ovako se u jednom taktu može obraditi informacija ( ili bar jedan njen deo ) takodje prihavati sledeći deo ili čak sledeća informacija. Takodje postoje uredjaji za predvidjanje grananja koji mogu da pretpostave koja je to instrukcija ili podatak sledeći na redu za izvršavanje ili obradu. Ako sada u jednom procesoru imamo nekoliko ALU-a i FPU-a jasno je da ovaj proces može da se izvršava i paralelno, što još više podiže performanse sistema. Ovakva struktura se zove Arhitektura tekuće trake ( pipeling ). Naravno što se instrukcije dele na sitnije delove, lakše ih je izvršiti ili obraditi, ali to podrazumeva znato složeniju strukturu u samom procesoru, veći broj uredjaja; složenija struktura povlači veći radni takt procesora kao i znatno veću potrošnju.

Takodje se mora pojasniti još jedan pojam IPC ili Instructions Per Clock, on predstavlja broj koliko se to instrukcija može izvršiti u samom procesoru po jednom taktu ( ne treba mešati sa pojmom Clock per Clock ). Postoje dve vrste procesora, high IPC i low clock ( kao što je bio pometuti Athlon XP i sadašnja Intelova arhitektura ) i Low IPC, high clock ( Pentium 4 arhitektura ). Athloni su imali izuzetno “kratak” pipeline 4 ili 5, ali su zato imali moćne FPU i ALU, tako da je na relativno malim radnim frekvencijama mogao da postigne jako puno. Pentium 4 je imao takodje više FPU-a i ALU-a, ali je imao jako dugačak pipeline ( recimo da je poslednji iz NetBurst tehnologije, Prescott, imao 31! ), to je zahtevalo jako moćna kola za predikciju, puno registara i prateće elektronike koja je trebala da preduprebi greške pri izvršavanju koje se dešavaju na visokim klokovima. Da bi se sve izvršilo kako treba sa ovako dugačkim pipelino-om moralo se pribeci izuzetno velikom kloku, koji je opet povlači ogromnu potrošnju tako da je Prescott ostao upamćen kao procesor sa najvećom potrošnjom, takodje faktor IPC je i dalje bio jako mali, manji nego kod AMD pandana. Tako je bilo sve do pojave Conroe arhitekture koja je, sada bliža nekim ranijim AMD-ovim rešenjima ili Intelovim sa samoh početaka Pentium ere, Low clock, high IPC.

Naravno ovo je samo jako pojednostavljeno objašnjenje, pravo objašnjenje bi bilo mnogo obimnije i zahtevalo bi dosta predznanja.

Budućnost procesora je definitvno multiprocesiranje, možda ne bas onako kako mi to danas vidimo, nego više kao specijalizovana jegra sa nekim konkretnim zadatkom. Verovatno će i grafički procesor uskoro naći mesto u samom CPU. Veze izmedju jezgara će postati jako kratke sa mogućnošću izuzetno velikih protoka što će dodatno podići performanse. Naravno sve će to da prati smanjenje tehnološkog procesa, pa će potrošnja biti manja ( ili ista, ali sa znatno unapredjenim mogućnostima ), takodje će i sami procesori biti jeftiniji i pristupačniji.


Text uradio Simke

hvala Nikooli na korisnim sugestijama.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
Ko je trenutno na forumu
 

Ukupno su 1043 korisnika na forumu :: 37 registrovanih, 6 sakrivenih i 1000 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Rade, A.R.Chafee.Jr., bobomicek, bokisha253, Boris90, cenejac111, cvrle312, dekan.m, Denaya, djuradj, dragan_mig31, ekser222, Georgius, HrcAk47, Kubovac, kybonacci, lcc, mačković, MB120mm, mean_machine, Mercury, MikeHammer, milenko crazy north, Mirage 2000N, mrvica78, Niko Bitan, Primus17, procesor, risima, sovanova95, strelac07, vaso1, vathra, VJ, wizzardone, zlatkoa987, Zmaj Tolak