Mikroprotsessor

Tööpõhimõte

Mikroprotsessor on mitmeotstarbeline programmeeritav seade, mis võtab sisendina vastu digitaalse info, töötleb seda vastavalt mälus salvestatud masinakäskudele ja annab tulemuse väljundina. See on näide järjendloogikast, sest on olemas sisemine mälu (ehk registrid). Mikroprotsessorid töötlevad andmeid kahendsüsteemis esitatud arvude ja sümbolite järgi.

Kasutamine

Madalahinnaliste integraallülitustega arvutite tulek on muutnud tänapäevast ühiskonda. Üldotstarbelisi mikroprotsessoreid kasutatakse personaalarvutites arvutusteks, teksti töötlemiseks, multimeedia kuvamiseks ja suhtlemiseks interneti kaudu. Mikroprotsessorid on veel kasutusel manussüsteemides, mis on muutnud paljud igapäevased esemed palju kasutajasõbralikumaks ning otstarbe poolest ka efektiivsemaks. Näiteks on laialdaselt kasutusse tulnud autodesse sisseehitatud navigatsioonisüsteemid, nutitelefonid, digitaalkaamerad, MP3-mängijad jne, mis on kõik saanud reaalsuseks mikroprotsessorite arengu tõttu.
Mikroprotsessorid võimaldavad panna arvuti tuhandetesse esemetesse, mis traditsiooniliselt polnud arvutiga seonduvad. Need hõlmavad suuremaid ja väiksemaid majapidamisseadmeid, autosid, autovõtmeid, tööriistu ja testseadmeid, mänguasju, suitsuandureid ja audio- ja visuaalseadmeid. Tooted nagu mobiiltelefonid, DVD-videosüsteemid ja HDTV-ülekandesüsteemid vajavad põhimõtteliselt võimsamaid ja soodsamaid mikroprotsessoreid. Järjest rangemad saastekontrolli standardid nõuavad autode tootjatelt mikroprotsessorite kasutamist mootori juhtimissüsteemides, et hoida kontrolli all heitgaaside väljapaiskamist erinevates auto töötamistingimustes. 
Mitteprogrammeeritavad juhtimissüsteemid vajaksid mikroprotsessoritega võrreldavate tulemuste saavutamiseks keerukaid, kohmakaid ning kalleid mehaanika-, elektromehaanika- või elektroonikarakendusi.
Mikroprotsessori mikroprogrammi (juhtprogrammi) saab kergelt muuta vastavalt toote vajadusele, võimaldades parandada jõudlust minimaalse ümberdisainiga. See võimaldab erinevatele mudelitele tootesarjas lisada erinevaid funktsioone minimaalsete täiendavate kuludega.

Ajalugu

1960. aastatel ehitati arvuti protsessorid väikese ja keskmise suurusega mikrokiipidest, mis kõik sisaldasid kümneid kuni sadu transistore. Iga arvuti ehitamisel tuli kõik need komponendid asetada ja joota trükkplaadile ning plaadid omavahel ühendada. Suur arv diskreetseid loogikalülisid kasutas rohkesti elektrit ja seega eraldas lülitus palju soojust. 1960. ja 1970. aastatel toimunud NASA Apollo kosmosemissioonidel tehti kõik pardal toimuvad arvutused esmaste juhiste, navigatsiooni ja kontrolli jaoks ühel väikesel protsessoril. Protsessori integreerimine üheks lülituseks ühele või mõnele üksikule mikrokiibile vähendas tunduvalt kulusid. Protsessorid integreerusid üheks või mitmeks suuremahuliseks mikrokiibiks – mikroprotsessoriks. Varem oli nende asemel ühendatud suur hulk väikese või keskmise suurusega mikrokiipe. Ühe kiibiga protsessorid suurendasid arvutite töökindlust, sest seal oli palju vähem väliseid ebakindlaid elektriühendusi.
Integraallülitustel teostatud protsessoreid toodetakse suurtes kogustes kõrgelt automatiseeritud tootmisprotsessides. See langetas iga üksiku protsessori hinda. Kuigi mikroprotsessorid on kiiremaks läinud, siis ühe kiibi tootmise hind on ikkagi üldiselt samaks jäänud.
Jätkuv mikroprotsessorite jõudluse kasv muutis teistliiki arvutite vormid (nt mehaanilised või elektromehaanilised) peaaegu täiesti aegunuks. Ühte või mitut mikroprotsessorit kasutati kõiges alates väikestest manussüsteemidest ja lõpetades superarvutitega.
Alates 1970. aastate algusest on mikroprotsessorite mahu suuruse kasv järginud Moore'i seadust, mis väidab, et transistorite arv, mida ühte kiipi mahutada saab, kahekordistub iga kahe aasta tagant. Aastatel 1965–1970 arvestati seda igal aastal kahekordistuvana.

Ehitus

Mikroprotsessorite sisemine ehitus erineb sõltuvalt disaini vanusest ja protosessori otstarbest.
Integraallülituse (mikrokiibi) keerukus on seotud füüsiliste piirangutega, mis seavad piiri ühele kiibile paigutatavate transistoride arvule,
sisemiste ühenduste maksimaalsele arvule ja võimsusele, mida kiip soojusena eraldab. Tehnoloogilised uuendused muudavad keerukamate ja võimsamate kiipide tootmise teostatavaks.
Minimaalne hüpoteetiline mikroprotsessor võib sisaldada ainult aritmeetika-loogikaplokki (inglise arithmetic and logic unit, lühend ALU) ja juhtseadet (juhtloogika osa). ALU teostab tehteid nagu liitmine, lahutamine ja loogikatehted nagu NING (AND), VÕI (OR) ja Välistav-või (XOR).
Iga ALU-ga sooritatava operatsiooni (tehte) järel seatakse üks või mitu lippu (tunnust) olekuregistris (status register). Need on nulltulemi tunnus (zero flag), negatiivse tulemi tunnus või tunnused (sign flag jt), ületäitumine (carry flag) ja teised. 
Juhtseade (juhtloogika osa) hangib käsu operatsiooni koodid (opcode) mälust ja algatab suvalise ALU tehete jada, mis on vajalik antud käsu täitmiseks. Üks operatsiooni kood (opcode) võib mõjutada mitut andmete "teed" ehk siini, registrit ja teisi protsessori osasid.

Protsessorikiipide areng

Mikrokiipide tehnoloogia areng muutis lihtsamaks suuremate ja keerukamate protsessorite tootmise ühel kiibil. Töödeldavad andmeobjektid (ehk arvutisõnad) muutusid suuremaks, lubades rohkem transistore kiibile. See omakorda lubas sõnade suurusel minna 4- ja 8-bitistest sõnadest tänapäevaste 64-bitiste sõnadeni. Lisati täiendavad funktsioone ka protsessori arhitektuurile: suurem arv kiibis paiknevaid registreid kiirendas programmide töötlust. See võimaldas kompaktsemates programmides kasutada keerukamaid juhiseid. Näiteks ujukoma-aritmeetikatehtete võimalust polnud paljudel 8-bitistel mikroprotsessoritel, seepärast tehti neid tehteid keerukama tarkvara abil. Ujukoma üksuse (FPU, floating point unit) lisamisega alguses eraldi lisa-mikrokiibina ja hiljem mikroprotsessori kiibi sisse, kiirendas märgatavalt ujukomaarvutuste kiirust.
Vahetevahel oli vajadus kiipide omavahelise sidumise järele, sest üksikute mikropkiipide võimalused olid füüsiliselt piiratud. Pikkade arvutisõnade ühes kiibis töötlemise asemel võib panna mitu kiipi paralleelselt töötlema seda andmesõnade alamhulka. Selleks oli vaja täiendavaid loogikalülitusi. Tulemuseks oli süsteem, mis suutis töödelda näiteks 32-bitiseid andmesõnu, samas kui iga kiip suutis töödelda ainult 4-bitiseid sõnu.
Koos võimalusega lisada rohkem transistore ühele kiibile muutusid teostatavaks protsessoriga samasse kiipi integreeritud mäluseadmed.
Protsessori vahemälul on kiirem juurdepääs kui väljaspool kiipi paikneval mälul ja see kiirendab süsteemi protsesside kiirust paljudes rakendustes. Protsessorite jõudlus on kasvanud kiiremini kui välise mälu kiirus ja seetõttu on vajalik vahemälu, kui ei taheta protsessori tööd aeglustada aeglasema välise mäluga seotud andmevahetuse tõttu.

Multituumaline disain

Multituumaline protsessor on rohkem kui ühte mikroprotsessori tuuma sisaldav kiip. See teoreetiliselt mitmekordistab protsessori arvutusvõimsuse, kuid operatsioonisüsteem ning tarkvara peavad olema disainitud seda ära kasutama. Näiteks siiniliidest ja vahemälu saab kasutada tuumade vahel. Tuumad asetsevad füüsiliselt üksteisele väga lähedal ja seega saavad suhelda palju kiiremini kui eraldi kiipidel asetsevad protsessorid.
2005. aastal ilmusid esimesed kahetuumalised protsessorid personaalarvutitesse. Alates 2012. aastast on enamik koduarvuteist ja sülearvutid kahe- või neljatuumaliste protsessoritega ning tööjaamad ja serverid on varustatud nelja-, kuue-, kaheksa-, kümne-, kaheteist- ja kuueteisttuumaliste protsessoritega.
Tänapäevaste lauaarvutite emaplaadid ei toeta mitut protsessorit, kuid vähene osa tarkvarast suudab ära kasutada mitut protsessorit ja seepärast on neljatuumalised protsessorid täiesti piisavad laua- ja sülearvutitele. AMD tõi välja esimese kaheksatuumalise protsessori lauarvutite jaoks 2012. aasta alguses, kuid see on seni ainus nii suure tuumade arvuga ning enamikus testides on ikkagi jäänud Inteli samahinnalistele protsessoritele alla.