Procesor (računarstvo)
Procesor (engl. central processing unit − CPU, hrv. "središnja jedinica za obradbu", obradnik[1]), glavni je dio računala koji vođen zadanim programskim naredbama izvodi osnovne radnje nad podacima. Središnji procesor nadzire odnosno izvršava glavni program i tipično upravlja i svim ostalim dijelovima računala. Danas (2020.) središnja jedinica za obradbu načinjena je od tranzistora, tipično u CMOS izvedbi, planarnom tehnologijom na siliciju ili drugom poluvodičkom monokristalu. Visoko integrirani krugovi koji sadrže sve funkcije središnje jedinice za obradbu nazivaju se mikroprocesori.
Povijest razvoja
Prvi komercijalno dostupan mikroprocesor bio je Intel 4004 koji su razvili Intel i japanski proizvođač kalkulatora Busicom, još davne 1971. godine. Intel 4004 prvenstveno je dizajniran za upotrebu u uređajima niske performanse kao što su kalkulatori, automatizirani strojevi za obradu podataka itd. Sastojao se od 2300 tranzistora i bio je sposoban provesti 92600 operacija u sekundi. Intel 8008 izdan 1972. Bio je prvi 8-bitni mikroprocesor na svijetu. Ovaj procesor dolazi s 3500 tranzistora i pronašao ga je u računalima, automatiziranim tvorničkim strojevima i robotima. Intel 8080 objavljen je kao nasljednik Intel 8008 1974. godine, bio je jedan od najpopularnijih mikroprocesora još u dane slave povijesti računanja. Ovaj 8-bitni mikroprocesor dolazi s 6000 tranzistora i široko se koristi u mnogim mikroračunalima koja su u to vrijeme objavljena. Sljedeći veliki skok u računalnim performansama uslijedio je 16-bitni procesor Intel 8086 i malo poboljšani Intel 8088 koji je objavljen 1979. godine. Intel 8088 dolazi s 29.000 tranzistora na brodu za brže radne brzine. Ovaj je procesor odabran za upotrebu na IBM osobnim računalima, dijelom zbog ekonomskih i logističkih razloga. Motorola 68000 bio je jedan od mikroprocesora visokih performansi koji je predstavljen 1979. godine. Neki su ovaj 16/32 bitni procesor u šali nazvali glavnim okvirom na čipu, zbog njegove složenosti i performansi. Kao što ime govori, Motorola 68000 je imala 68000 tranzistora u sebi. Ovaj se procesor koristio u Apple Macintosh računalima i određenim Amiga modelima. 1987. Sun Microsystems predstavio je prve mikroprocesore temeljene na SPARC (Scalable Processor Architecture). Oni su korišteni u računalnim okruženjima s visokim performansama, kao što su mainframes. Intel je prve procesore serije Intel Pentium izdao 1993. Ovi procesori imali su nevjerojatnih 3,1 milijuna tranzistora na brodu i radili su na taktu od 60Hz. Prvi potpuno domaći AMD K5 mikroprocesor predstavljen je 1996. godine. Predviđajući budućnost mobilnog računarstva, Intel je 2000. objavio mikroprocesore serije Celeron, prvenstveno za upotrebu u prijenosnim računalima. IBM je prva tvrtka koja je uvela višejezgrene procesore, ali Intel i AMD sa svojim Pentium D i Athlon 64 x2 respektivno izdanima 2005. godine učinili su je popularnom među osobnim računalima. In 2008 je Intel objavio prvi jednojezgreni mikroprocesor serije Atom koji će se koristiti u jeftinim prijenosnim računalima. Ovi Atom serije procesori dolazili su s integriranim GPU-om kako bi pomogli procesoru u grafički intenzivnim zadacima.
Arhitektura
Osnovni dijelovi procesora mogu činiti sljedeći podsustavi i ne čini potpuni popis:
- ALU - aritmetičko logička jedinica koja vrši aritmetičke operacije (zbrajanje, oduzimanje, itd), logičke operacije (NE, I, ILI, NILI itd) ili neke druge operacije koje su zadali njihovi dizajneri
- AGU - address generation unit (jedinica za stvaranje adresa)
- CU - upravljačka jedinica koja može imati diskretnu logiku ili mikroizvršivać
- IR - naredbeni spremnik ili istrukcijski registar
- MAR - spremnik memorijske adrese ili eng. Memory Address Register
- MBR - spremnik memorijskog međuspremnika ili eng. Memory Buffer Register
- Sabirnicu ili sabirnice
- Podsklopove za sinkroniziranje operacija
- Datoteka spremnika
- Spremnik kazalje stoga
Osnovne značajke
Kako su današnji procesori slični u nekim tehnološkim značajkama, obično se dijele prema brzini rada, veličini podatka nad kojim mogu odjednom obaviti zadanu radnju, te prema karakteristikama unutarnjeg ustroja.
Radni takt, superskalarnost, širina sabirnice
Najrasprostranjeniji središnje jedinica za obradbu rabe sinkronizirane elektroničke krugove (za razliku od asinkrone), tako je rašireno kao mjeru brzine rada procesora uzeti frekvenciju radnog takta (danas tipično mjerena u MHz i GHz), ta je mjera smislena samo kada se uspoređuju vrlo bliske vrste obradnika. Naime, zbog različitog ustroja obradnika, vrlo velike razlike u brzini rada se mogu postići i pri istom radnom taktu. Tako superskalarni procesori izvode nekoliko naredbi istovremeno, iskorištavajući činjenicu da se izvođenje naredbi odvija u nekoliko koraka, pri čemu svaki korak upotrebljava drugi dio obradnika. Superskalarni obradnik dakle omogućuje da se svi dijelovi procesora rabe istodobno ako je slijed naredbi takav da zahtijeva rad svih dijelova procesora.
Brzinu izvođenja programa određuje i sposobnost obradnika da dohvaća odnosno pohranjuje podatke dovoljno velikom brzinom, što je u razvoju obradnika rezultiralo i proširenjem njegovih sabirnica, tako da se istovremeno u obradnik dohvaća ili iz njega pohranjuje čim više bitova. Danas je uobičajena i u širokoj uporabi sabirnica za podatke širine 4, 8, 16, 32, 64, 128, 256 bita.
Priručna memorija
Kao mjera za ubrzanje procesora, puno napora se ulaže i u podizanje frekvencije radnog takta. No tehnološka ograničenja dozvoljavaju da se vrlo visoke frekvencije mogu postići samo na malim dijelovima, te je ustaljeno da se cijeli poluvodički čip procesora ne pogoni istim radnim taktom, to jest da se visokom frekvencijom takta pogone samo središnji dijelovi, a da se ostali dijelovi procesora, a nadalje i cijelog računala, pogone sporijim taktom. To dovodi do nesrazmjera u brzini rada procesora i memorije, dakle memorija postaje spori dio koji oganičuje ukupnu brzinu računala. Stoga se u procesor tipično ugrađuje priručna memorija (fra. cache) koja je brža pod glavne memorije, ali time i skuplja pa stoga i manjeg kapaciteta. U nju se sprema svaki podatak odnosno programska naredba koje su nedavno dohvaćene iz memorije, tako da ako uskoro budu opet dohvaćane, da se dohvate iz brže priručne memorije. Tipično je da se i ta priručna memorija dijeli u slojeve, tako da se uvede jedan još brži, i stoga još manji dio, odnosno da se priručna memorija podijeli na dio za podatke i dio za naredbe.
Upravljanje ovlastima
U više korisničkim računalnim sustavima je potrebno osigurati da programi jednog korisnika ne utječu neželjeno na programe drugih korisnika, odnosno općenitije, da programi ne mogu neovlašteno ulaziti u područja gdje rade drugi programi. To odvajanje se postiže podjelom programa u razrede, tako da samo mali skup povlaštenih programa (tipično je to jezgra operacijskog sustava) upravlja ovlastima odnosno postavlja ograničenja, a ostali programi su podređeni tako zadanim ograničenjima. U tu svrhu su procesori tipično opremljeni konceptom sigurnosne razine (engl. supervisor mode, protection rings) koje određuje koje vrste programskih instrukcija se dopušta izvoditi, a koje ne. Jezgra operacijskog sustava se tako izvodi bez ograničenja i ona ima stoga ovlasti upravljati skopovljem, dok se programi korisnika izvode uz ogranilčenja čime ih se sprečava da upravljaju sklopovljem, odnosno bilo kojim zajedničkim resursom. Drugo proširenje procesora u svrhu odvajanja programa je jedinica za upravljanje memorijom (engl. memory management unit). Njome se postiže da se ograniči koji dio memorije je dostupan programu koji se trenutno izvodi. Pokušaj pristupa u memoriju izvan tog područja izaziva programsku iznimku kojom se program zaustavlja, a operacijski sustav obavještava o tom događaju (korisniku to operacijski sustav javlja porukama poput segmentation fault, ili general protection fault).
Sklopovske specijalizacije za ubrzanja
Neki procesori su opremljeni posebnim sklopovima koji im omogućuju da neke radnje obave brže. Tipičan primjer je ugradnja aritmetičkog koobradnika, čime je omogućeno da se aritmetičke radnje nad brojevima s pomičnim zarezom (engl. floating point number operations) obave brže nego da su obavljane dugim nizom programskih naredbi. Slično možemo primijetiti i kao današnja te tako da se jedna instrukcija primjeni na niz podataka (SIMD, engl. single instruction - multiple data). Kao bolja mjera za uspoređivanje brzine rada obradnika rabi se i flops (engl. floating-point operation per second), koja je prikladna za usporedbu obradnika koji se namjeravaju upotrebljavati u odgovarajućem okruženju gdje je izrazito opterećenje upravo radnjama nad brojevima s pomičnim zarezom, no ni ta mjera nije idealna i ne može pokriti svu različitost namjena, specijalizacija ili zadataka za koje se obradnici primjenjuju.
Radnje bez sudjelovanja obradnika
Specijalizirani sklopovi kojima se izbjegava potreba za programiranim obavljanjem radnji postoje i izvan obradnika i samostalno mogu obavljati takve radnje. Najčešća radnja je kopiranje memorijskog sadržaja s jednog mjesta na drugo, odnosno premještanje sadržaja između memorije i ulazno-izlaznih sklopova. Sklop specijaliziran za prvu radnju se obično naziva blitter, a za drugu uređaj za izravni pristup memoriji (engl. direct memory access, DMA). DMA sklop se ugrađuje u mnoge ulazno-izlazne uređaje, poput upravljačkog sklopa za tvrde diskove, CD-ROM disk i DVD disk (i inačice), zvučnu karticu, grafičku karticu i drugdje.
Način rada
Proizvođači obradnika
Danas najpoznatiji proizvođači mikroobradnika za osobna računala su (abecednim redom):
Izvori
- ↑ Bulcsú László, »Pabirci redničnoga i obavjèstnîčkôga pojmovlja oko razumnih sustava«, Obrada jezika i prikaz znanja (Zbornik radova sa znanstvenoga kolokvija »Strojna obrada prirodnoga jezika i prikaz znanja«, održanoga 22. – 24. listopada 1990. u Tuheljskim toplicama), Radovi Zavoda za informacijske studije (Knjiga 5.), Zavod za informacijske studije Odsjeka za informacijske znanosti Filozofskoga fakulteta Sveučilišta u Zagrebu, Zagreb, mjeseca travnja godine 1993., (NSK), str. 11. – 74., navod na str. 13. [datkovni obradnik (data processor)], str. 15. [obradnik (processor)]