Procesor (u računarstvu) je izvršna jedinica — prima i izvršava instrukcije pročitane iz odgovarajuće memorije. Kada se kaže samo „procesor“ najčešće se misli na centralni procesor (eng: central processing unit — CPU, centralna procesorska jedinica), ali postoje i procesori specijalnih namena kao što su procesori signala, razni grafički procesori, itd. Sam po sebi procesor ne čini računar, ali je jedan od najvažnijih delova svakog računara.
Istorija
Prvi procesori su bili mehanički i praktično nisu bili zaseban deo računara (npr. kakve je projektovao Čarls Bebidž) zatim elektromehanički (relejni) pa na bazi elektronskih vakuumskih cevi i bili su jako veliki (obično su računari zauzimali cele prostorije ili čak spratove). Do značajnog smanjenja dimenzija i povećanja performansi došlo je upotrebom tranzistora (miniprocesori) i, u drugoj polovini 20. veka, integralnih kola (mikroprocesori).
Organizacija procesora
Centralni procesori obično sadrže:
Upravljačku jedinicu (eng: control unit), koja upravlja radom ostalih komponenti, konkretno operacione jedinice. U ranim danima računarstva se funkcionalnost upravljačke jedinice mahom realizovala hardverski (ožičena realizacija), dok se danas tipično koristi mikroprogramska realizacija, gde se rad procesora, uključujući i njegov set instrukcija, implementira kroz mikroprogram.
Operacionu jedinicu (eng: execution unit), koja tipično sadrži:
Aritmetičko-logičku jedinicu (eng: ALU - Arithmetic logic unit), koja vrši aritmetičke i logičke operacije.
Registre, koji služe za privremeno skladištenje podataka pri izvršavanju programa (registri opšte namene), kao i za čuvanje informacija o trenutnom stanju programa koji se izvršava (programski brojač, pokazivač steka, prihvatni registar instrukcije, programska statusna reč i dr.)
Podsistem za vezivanje sa memorijom i periferijama
Moderniji procesori imaju i jedinice za rad sa brojevima u pokretnom zarezu, brzu internu memoriju itd. Super-skalarni procesori imaju i po više operacionih jedinica. što im omogućava da izvršavaju nekoliko instrukcija istovremeno (kada one nisu međusobno zavisne).
Podela procesora
Po tome koliko instrukcija i sa koliko podataka rade jednom „koraku“:
Ovu podelu je 1972. godine predložio Michael J. Flynn, i po njemu se ona naziva „Flinova taksonomija“.
jednu instrukciju sa jednim podatkom (tzv. skalarni procesori, eng: SISD — Single Instruction Single Data). Podvarijanta (super-skalarni) mogu da u toku izvršavanja odrede koje parove instrukcija i podataka mogu da izvrše u isto vreme i to i učine.
jednu instrukciju izvršavaju na više podataka odjednom (tzv. vektorski procesori, eng: SIMD — Single Instruction Multiple Data)
izvršavaju više nezavisnih instrukcija, svaku na svojim podacima (eng: MIMD — Multiple Instruction Multiple Data)
izvršavaju više nezavisnih instrukcija, svaku na jednom, zajedničkom, podatku(eng: MISD — Multiple Instruction Single Data)
Iako se SIMD nekada koristio uglavnom na vektorskim superkompjuterima poput onih koje je 70-ih godina 20. veka popularisao Cray, potreba za obradom multimedijalnih podataka je dovela do dodavanja SIMD instrukcija u arhitekturu procesora opšte namene, trend koji je izrodio tehnologije kao što su PowerPC-jev AltiVec, Intel-ovi MMX, SSE, SSE2, SSE3 and SSE4, AMD-ov 3DNow!, SPARC-ov VIS, Sun-ov MAJC, PA-RISC-ov MAX i MIPS-ovi MDMX i MIPS-3D.
Flinova taksonomija danas nije od značaja kao praktična podela, jer moderni računarski sistemi često potpadaju u nekoliko (pa čak i sve četiri!) kategorije ove taksonomije. Ilustrativan primer bi bio neki dual Pentium 4 Xeon sistem je u osnovi x86 SISD arhitektura sa SIMD proširenjima (MMX, SSE, SSE2...), radi simetrično multiprocesiranje na dva odvojena mikroprocesora (MIMD), a svaki od njih sadrži jezgro sa pajplajn arhitekturom koja se može shvatiti kao MISD (jer svaki korak u pajplajnu operiše nad istim podatkom — instrukcijom koja se izvršava).
Po arhitekturi i skupu instrukcija se dele i na:
Procesore sa kompleksnim skupom instrukcija, u kojima se svaka kompleksna instrukcija interno prevodi u niz mikrokod instrukcija (eng: CISC — Complex Instruction Set Computer). Ovakav skup instrukcija je obično „ugodniji“ za programiranje, ali generalno rezultuje manjom brzinom izvršavanja. Svakako značajan primer CISC arhitekture je Intelova (i AMD-ova) 80x86 familija, a ovakav dizajn su koristili i CDC 6600, System/360, VAX, PDP-11 i Motorola 68000.
Procesore sa redukovanim skupom instrukcija, u kojima se instrukcije ne prevode već su direktno podržane (eng: RISC — Reduced Instruction Set Computer). Ovakav skup instrukcija je obično „nezgodniji“ za programiranje ali generalno rezultuje većom brzinom izvršavanja. Povećanje veličine radne memorije, kao i razvoj kompajlera su doveli do toga da je danas RISC opšteprihvaćena filozofija u dizajnu mikroprocesora. Čak i moderni Intelovi i AMD-ovi procesori, iako programeru izgledaju kao CISC mašine, interno razbijaju CISC instrukcije u nizove internih RISC instrukcija (mikrooperacija) koje se zatim izvršavaju na superskalarnom jezgru.
Podela na RISC i CISC je opšteprihvaćena ali postoje i neke manje zvanične podvarijante i kombinacije:
Procesore sa jako redukovanim skupom instrukcija (eng: ERISC — Extremely Reduced Instruction Set Computer).
Procesore sa "proširenim" redukovanim skupom instrukcija, u kojima se većina instrukcija ne prevodi već su direktno podržane ali sadrže i kompleksne instrukcije (eng: ERISC — Extended Reduced Instruction Set Computer). Ovakav skup instrukcija je i ugodan za programiranje i rezultuje većom brzinom izvršavanja ali sam procesor postaje značajno kompleksniji. Napomena: ova kategorizacije nije potpuno zvanična. Jedno vreme su poboljšane verzije CISC procesora bile približene RISC arhitekturi i bile klasifikovane kao „ERISC“.
Ostale podele
po širini adresne magistrale, magistrale podataka, itd. (recimo, 4004 je 4-bitni procesor, Z80 8-bitni, MC68000 16-bitni itd.)
po tehnologiji izrade i stepenu integracije (za mikroprocesore)
po tome da li imaju zasebne magistrale za programsku memoriju i memoriju za podatke (pogledajte harvardsku arhitekturu) ili koriste jednu (pogledajte fon Nojmanovu arhitekturu)
Proizvođači mikroprocesora
Postoji veći broj proizvođača mikroprocesora, a među njima se ističu: AMD, Intel, MOTOROLA, IBM i Transmeta.