Keskseade

Ajalugu

ENIAC ja teised sama tüüpi arvutid nõudsid erinevate ülesannete täitmiseks pidevat kaabelduse uuendamist. Seetõttu nimetati neid fikseeritavate programmidega arvutiteks. Et aga protsessoriks nimetatakse tarkvara ülesandeid täitvat seadet, jäävad esimesed päris protsessorid samasse aega "püsiprogramsete" arvutite kasutusevõtuga.
Idee peale sellisest arvutist, millesse on ladustatud programme, tuli juba ENIACi loojatelt Presper Eckertil ja John William Mauchlyl, kuid sel ajal jäi idee ajapuuduse tõttu teostamata. Siiski oli enne neid sellise idee peale tulnud matemaatik John von Neumann, kes skitseeris 1945. aastal EDVACi: püsiprogramse arvuti. EDVAC pidi olema võimeline täitma teatud hulga erinevaid ülesanded, mida kombineerides sai luua programme. Eelis ENIACi ees oli aga see, et neid programme ei pidanud alati käsitsi seadistama, vaid need sai ladustada arvuti mällu. Tänu sellele sai programme lihtsamalt ka muuta, uuendades mälu sisu.
Kuigi von Neumanni peetakse tänu EDVACi väljatöötamisele programmidega ladustatud arvutite loojaks, on siiski juba enne teda selliste ideede peale tuldud ning neid ka rakendatud. Näiteks Harvardi ülikoolis väljatöötatud elektromehaaniline arvuti Harvard Mark I, mis rakendas püsiprogramsuse ideed kasutades perfolinte. Peamine erinevus von Neumanni disaini ja Harvardi arhitektuuri vahel on see, et viimane eraldab protsessori tegutsemises juhised ja andmed, kui esimene kasutab mõlema jaoks sama mälu. Tänapäevased protsessorid on põhiliselt tehtud von Neumanni idee põhjal, kuid neil on ka Harvardi masinale omaseid tunnuseid.

Protsessorite arhitektuur

Protsessoreid võib jagada arhitektuuri järgi nt Harvardi arhitektuuriga või Von Neumanni arhitektuuriga ja täpsemalt näiteks protsessoriperedesse. Protsessoripered on näiteks x86, SPARC, PowerPC, MIPS, ARM jpt. Protsessoriperede erinevused on alati piisavalt suured selleks, et samad masinkoodis programmid (tarkvara) ilma ümberkompileerimata erinevatel arhitektuuridel või protsessoriperedel ei toimi. Tihtipeale pole abi lihtsast ümberseadistusest või kompileerimisest: programme tuleb vastava operatsioonisüsteemi, protsessori arhitektuuri või -pere tarbeks spetsiaalselt kohandada.
Ühe arhitektuuri siseselt võib samuti esineda suuri probleeme ühilduvusega. Näiteks võib tuua kõige levinuma x86 (firmad Intel ja AMD) protsessoripere, millel on vanust juba üle 20 aasta. Esimesed x86 protsessorid olid 16-bitised. 32-bitistele sama pere protsessoritele kirjutatud programm 16-bitisel protsessoril aga ei tööta. Üldiselt dikteerivad kasutatavad programmid (tarkvara), millise pere arhitektuuriga protsessorit on vaja kasutada.
Teine, märksa selgem, tunnus arhitektuuri juures on protsessori registrite suurus. Kui räägitakse 8-, 16-, 32- jne bitistest protsessoritest, siis peetakse silmas protsessori registrite suurust. Registrite suurus määrab, milliste (kui suurte) arvudega suudab protsessor kiireid arvutusi teha. Reeglina on ka 16-bitine protsessor võimeline ka näiteks 32-bitiste arvudega arvutama, aga teeb seda tunduvalt aeglasemini kui 32-bitine protsessor. Ka 64-bitine protsessor suudab loomulikult 32-bitiste arvudega arvutada, kuid jällegi on see aeglasem kui 64-bitiste puhul.
Loomulikult vajavad näiteks 32- ja 64-bitine protsessor ka just neile mõeldud emaplaati ja mälu.
Kuid järjest arenev VLSI disain võimaldab nendest probleemidest hoolimata protsessorite arvutusjõudlust üha kasvatada.

Juhtseade ehk kontrollmoodul

Protsessori tööd juhib protsessorisisene juhtseade. Selle ülesanne on organiseerida, et kõik toimuks korrapäraselt – käsu ja andmete lugemine mälust, käsu dekodeerimine, ülesande teostamine ja andmete tagastamine, mälu ülekirjutamine. Juhtseade juhib ja jälgib kõiki protsessori osi.

Varasemate protsessoritega ühilduv talitluslaad ehk "Real Mode"

Kõige esimesed protsessorid (Intel 8086, 80186 jne.) oskasid töötada ainult real mode'is. Praktiliselt tähendas see seda, et korraga sai käia ainult üks programm ja kui see kinni jooksis, siis tuli arvuti taaskäivitada. Peale selle sai arvuti kasutada just nii palju mälu kui arvutil tegelikult oli (tavaliselt 640 kB). Andmete tõrjumine saalealale polnud võimalik. Selle laadi tarvis kirjutati ohtralt tarkvara ja see on saanud oluliseks protsessorite edasises arengus. Uued protsessorid pidid olema paremate omadustega kuid samas võimaldama kasutada ka vanu programme.

Kaitstud talitluslaad

Alates mikroprotsessorist Intel 80286 oli võimalik personaalarvutitel töötada kahes töörežiimis: vanas ehk varasemate protsessoritega ühilduvas (Real Mode) ja uues "kaitstud" töörežiimis (Protected Mode).
Sellistel mikroprotsessoritel sai korraga käitada mitut programmi (multitegumtöö). Sellist tööviisi toetasid varem suuremad arvutid (UNIXi laadsete operatsioonisüsteemidega).
Kui mõni programmidest jäi tsüklisse ehk "jooksis kinni" siis jäi süsteem toimivaks ning ainult mõne programmi töö oli vaja lõpetada või programm taaskäivitada.
Samuti sai programmidele jätta mulje, et arvutil on väga palju mälu – 1 GB.
Mälu mida programm tegelikult kasutada sai, määras siiski ära reaalse mälu ja saaleala summa.
Kaitstud töörežiimis (Protected Mode) tavarežiimi (Real Mode) jaoks kirjutatud programmide käivitamine väga keeruline. Ümberlülitamiseks kahe laadi vahel tuli arvutile teha taaskäivitus.
Tuleb aga märkida, et see kas süsteem töötab kaitstud töörežiimis või mitte määrab ära mitte ainult protsessor (riistvara) vaid ka kasutatav operatsioonisüsteem (tarkvara).

Virtuaalne talitluslaad

Seda laadi hakkasid toetama 80386 protsessorid lisaks Real ja Protected Mode'ile. Virtual Real laadis osutus võimalikuks käivitada Real Mode'i tarvis kirjutatud programme, ja isegi mitut samaaegselt. Ümber lülitamiseks kahe laadi vahel ei olnud enam vaja taaskäivitust. Kõigi hilisemate protsessorite (Intel i486, Pentium) loomulikuks laadiks on peetud Protected Mode'i. Virtual Real Mode'i oskavad kasutada UNIX, Linux, Windows 95, NT, OS/2, ei oska kasutada DOS.

Mittereaalne talitluslaad

Tegemist on versiooniga Real Mode'ist, milles üks või rohkem andmesegmendi registreid sisaldab 32-bitiseid aadresse. Kuid selles laadis ei saa opereerida kõik x86 ja x86-64 tüüpi protsessorid. Seda kasutavad 386 ja hilisemad protsessorid. Aastatel 1990–1995 kasutasid Unreal Mode'i paljud DOS-i arvutimängud, kuna laad võimaldas DOS operatsioonisüsteemi kasutades hõivata suurema hulga mälust, kui Real Mode seda lubas. Protected Mode'i ei saanud kasutada, kuna DOS selles ei töötanud.

Süsteemijuhtimislaad

Laad tuli esmakordselt kasutusele Intel i386SL protsessorites. See on opereerimislaad, mis tegeleb süsteemihaldustoimingutega, nagu mäluhälvete kõrvaldamine. Kasutatakse administratiivset tarkvara privilegeeritud kasutaja õigustega. SMM on kasutuses ka kõikides hilisemates x86 mikroprotsessorites.

Pikkade sõnadega talitluslaad

See laad võimaldab 64-bitistel rakendustel ja operatsioonisüsteemidel pääseda ligi 64-bitistele instruktsioonidele ja registritele. 32- ja 16-bitised Protected Mode'i programmid käivitatakse spetsiaalses ühildumiseks mõeldud all-laadis. Real Mode ja Virtual Mode seda laadi ei toeta.