Keskseade: erinevus redaktsioonide vahel

Eemaldatud sisu Lisatud sisu
P Tühistati kasutaja 185.50.99.245 (arutelu) tehtud muudatused ja pöörduti tagasi viimasele muudatusele, mille tegi Kuriuss.
Märgis: Tühistamine
Resümee puudub
1. rida:
{{keeletoimeta}}
[[Pilt:Computer structure.svg|pisi|Protsessor (CPU) arvuti kõige üldisemas plokkskeemis:<br>RAM – [[muutmälu]], ROM – [[püsimälu]] ]]
[[Pilt:80486dx2-large.jpg|pisi|[[Intel]]i [[mikroprotsessor]]protsesor 80486DX2 (suurus 12×6,75 mm)]]
'''Keskseade''' ehk '''töötlusseade''' ehk '''kesktöötlusseade''' ehk '''keskprotsessor''' on [[arvuti]] osa, mis täidab [[arvutiprogramm]]ide juhiseid ning on peamine vahend arvuti ülesannete täitmisel. Keskprotsessor täidab programmi käske etteantud järjekorras, et süsteem saaks täita kõik ettenähtud aritmeetilised, loogilised ja sisend-/väljundoperatsioonid.
 
'''Keskseade''' ehk '''keskprotsessor''' ehk '''kesktöötlusseade''' ([[inglise keel]]es ''central processing unit'', CPU), lühidalt protsessor, on [[arvuti]] või programmeeritava [[kontroller]]i [[riistvara]], mis täidab [[arvutiprogramm |programmide]] [[masinakeel]]es antud juhiseid ning on peamine vahend ettenähtud aritmeetika-, loogilka- ja sisend-/väljundoperatsioonide teostamiseks.
==Ülevaade ja tööpõhimõte==
Kuigi keskprotsessorite kuju, disain ja rakendus on võrreldes esimeste arvutitega märkimisväärselt muutunud, on nende põhiotstarve samaks jäänud.
 
Protsessor on [[integraallülitus]]e kujul kasutusel alates 1960. aastatest. Sellest ajast on protsessori ehitus, [[arvuti arhitektuur |arhitektuur]] ja teostus korduvalt muutunud, kuid põhifunktsioonid on jäänud samaks.
Esimeste protsessorite tootmisel loodi peaaegu iga arvuti või rakenduse jaoks eraldi protsessoritüüp. See osutus väga kulukaks ning seetõttu hakati otsima viise protsessorite [[masstootmine|masstootmiseks]]. [[Standardiseerimine]] algas eraldiseisvatel [[transistor]]idel põhinevate [[suurarvuti|suur-]] ja [[miniarvuti]]te ajastul. Ühtlasi suurenes [[mikrokiip]]ide populaarsus, kuna need võimaldasid toota keerulisemaid protsessoreid. Tänu protsessorite väiksemaks ja standardsemaks muutumisele kasutatakse neid tänapäeval laialdaselt: alustades [[auto]]dest ja [[mobiiltelefon]]idest ning lõpetades mänguasjadega.
 
==Protsessori ehitus==
Kõik protsessorid töötavad [[kahendloogika]] põhimõttel. Põhilised "ehituskivid" protsessoris on [[loogikavärav]]ad, millega sooritatakse erinevaid [[loogikatehe|loogikatehteid]]. Ühte [[loogikalülitus]]se suubub üks või mitu [[sisendsignaal]]i ning sellest väljub üks sisendsignaal. [[Aritmeetikatehe|Aritmeetika]]- ja loogikatehteid [[Register (arvutitehnika)|registritesse]] salvestatud [[andmed|andmetega]] teeb protsessoris [[aritmeetika-loogikaseade]] vastavalt [[käsudekooder|käsudekoodrist]] saadud korraldustele.
Protsessori põhiosad on
* [[aritmeetika-loogikaplokk]] (''arithmetic and logic unit'', ALU) – sooritab [[kahendsüsteem]]is aritmeetika- ja loogikatehteid;
* juhtplokk – täidab oma käsuregistreis sisalduvaid [[masinakäsk]]e, juhtides andmevooge protsessori ja mälu ning keskseadme muude üksuste vahel, samuti suhtlust välisseadmetega (keskseadmele väljastpoolt külgeühendatud seadmetega);
* [[Register (arvutitehnika |mäluregistrid]].
 
Protsessori põhiülesanne on täita etteantud ülesannete jada. Neid ülesandeid hoitakse arvuti mälus.
 
Protsessori töös võib eristada nelja põhitoimingut:
*[[hankimine]] – ülesande ([[masinakäsk|masinakäsu]]) otsimine ja lugemine mälust;
*[[dekodeerimine]] – käsk ja leitud andmed "lõhutakse" ehk dekodeeritakse nii, et protsessori iga osa saaks endale olulise tüki;
*[[teostamine]] – protsessori osad teevad koostööd ühise eesmärgi nimel;
*[[tagastamine]] – saadud tulemus kirjutatakse kas protsessori registrisse või arvuti [[põhimälu|põhimällu]].
 
==Ajalugu==
[[Pilt:Edvac.jpg|pisi|[[EDVAC]], elektrooniline digitaalarvuti]]
 
[[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 Eckert]]il ja [[John William Mauchly]]l, 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 [[EDVAC]]i: 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 [[Mälu (arvuti)|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 ülikool]]is väljatöötatud elektromehaaniline arvuti [[Harvard Mark I]], mis rakendas püsiprogramsuse ideed kasutades [[perfolint]]e. 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.
 
==Protsessori ehitus==
===Protsessorite arhitektuur===
Protsessoreid võib jagada arhitektuuri järgi nt [[Harvardi arhitektuur]]iga või [[Von Neumanni arhitektuur]]iga ja täpsemalt näiteks protsessoriperedesse. Protsessoripered on näiteks [[x86]], [[SPARC]], [[PowerPC]], [[MIPS]], [[ARM (arvutiarhitektuur)|ARM]] jpt. Protsessoriperede erinevused on alati piisavalt suured selleks, et samad [[masinkood]]is programmid ([[tarkvara]]) ilma [[kompilaator|ümberkompileerimata]] erinevatel arhitektuuridel või protsessoriperedel ei toimi. Tihtipeale pole abi lihtsast ümberseadistusest või kompileerimisest: programme tuleb vastava [[operatsioonisüsteem]]i, 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-bitine protsessor|16-bit]]ised. [[32-bitine protsessor|32-bit]]istele 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 [[Register (arvutitehnika)|registrite]] suurus. Kui räägitakse [[8-bitine protsessor|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.
41. rida ⟶ 24. rida:
===Siinid===
{{Vaata|Siin}}
 
Info edastamiseks on protsessor [[siin]]ide kaudu mäluga ühendatud. Peamised siinid on [[andmesiin]] ja [[aadressisiin]].
 
49. rida ⟶ 31. rida:
{{Vaata|Register (arvutitehnika)}}
Registrid on protsessori sisesed mälupesad andmete ajutiseks paigutamiseks. Sinna paigutatakse andmed vahetult enne ja pärast tehteid nendega. Registrid võimaldavad vajadusel kiiret ligipääsu nendes olevatele andmetele. Vahel kasutatakse mingeid andmeid sagedamini kui teisi ning aja kokkuhoiuks hoitakse neid registris.
 
Registrid jagunevad üldkasutatavateks ning eriregistriteks, mis hoolitsevad süsteemi toimimise eest. Näiteks [[x86]] protsessoril on üldkasutatavad registrid AX, BX, CX ja DX ning süsteemseteks registriteks on [[käsuloendur]], kus hoitakse järgmise käsu mäluaadressi. [[Lipuregister]] on osa, kus on kirjas mitmesugused süsteemsed olekusignaalid ehk lipud, teiste seas näiteks eelmise võrdlustehte tulemus.
54. rida ⟶ 37. rida:
<br />
[[Pilt:Prose.gif]]
 
Lisaks registritele on ühes protsessoris kindlasti ka osa, mis tegeleb arvutamisega (vt [[aritmeetika-loogikaseade]]). Päris kindlasti on olemas täisarvudega arvutuste tegemise moodul, aga praktiliselt kõigil tänapäeva protsessoritel on ka integreeritud ujukomaarvudega opereerimise moodul. Vanematel protsessoritel polnud see sugugi alati nõnda, seda sai osta eraldi lisana (vt [[Intel 8087]]). Esialgu tuli teha reaalarvulisi arvutusi kasutades harilikku täisarvumoodulit. Sellised arvutused olid aga väga aeglased.
 
===Käsudekooder===
{{Vaata|Dekooder#Käsudekooder}}
 
Käsudekooder (Instruction decoder) jagab protsessorile toimimiseks ülesandeid juhtsignaalide abil. Ta "tõlgib" käsukoodide [[Register (arvutitehnika)|registrist]] saadud bitid protsessori igale osale arusaadavateks juhtsignaalideks.
 
===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.
 
70. rida ⟶ 49. rida:
Protsessori vahemälu on protsessori kasutada olev kiire mälu, kuhu ajutiselt pannakse andmed, mis vajavad kiiret ligipääsu. Lihtsalt öeldes püütakse vahemällu tuua need andmed, mida protsessor ilmselt järgmisena vajab. Vahemällu toodud andmed ei osutu umbes 10% juhtudest siiski nendeks, mida protsessor järgmiseks vajab, kuid see ei muuda suurt midagi, sest sellisel juhul võtab vajalike andmete leidmine ja protsessorini toomine sama palju aega kui üldse ilma vahemäluta töötamisel. 90% juhtudest arvatakse siiski vajalikud andmed õigesti ära. Vahemälu kasutamine suurendab oluliselt protsessori tegevusega hõivatud (ehk kasulikku) tööaega, sest vahemälu töötab enamasti protsessoriga samal taktsagedusel ning sellega suhtlemine on seega oluliselt kiirem kui näiteks muutmäluga suhtlemine.
 
Mida suurem on protsessori vahemälu hulkmahutavus, seda suuremkiiremini onprotsessor protsessori reaalne tööaegtöötab (ei pea ootama mälust andmete saamist, vaid saab pidevalt arvutustega tegeleda). Kuna vahemälu on [[SRAM]]-tüüpi mälu, siis on selle ehitus üsna keeruline ja protsessori vahemälu kasvades kasvab ka protsessoris transistoride hulk märkimisväärselt. See aga tingib protsessori tunduvalt suurema toitevajaduse, eralduva soojushulga kasvu jne.
 
==Protsessorite iseloomulikud parameetrid==
{{Vaata|Arvutusjõudlus}}
Kõige olulisem protsessori omadus on tema töökiirus ehk see, kui palju instruktsioone ta suudab ühe ajaühiku jooksul täita.
Kõige olulisem protsessori omadus on tema arvutusjõudlus ehk see, kui palju [[masinakäsk]]e ta suudab ühe ajaühiku jooksul täita. Seega määrab jõudluse (töökiiruse) taktsagedus ja takti kestel töödeldava sõna pikkus (bittide arv masinasõnas). Sõna pikkus ja vastavalt andmesiini laius oli esialgu 32 bitti, praegusel ajal on see 64 bitti.
Kaks olulist komponenti, mis määravad töökiiruse, on:
::#protsessori taktsagedus
::#protsessori arhitektuur
 
===Taktsagedus===
{{Vaata|Taktsagedus}}
Taktsagedus on protsessori tõõd koordineeriva ja sünkrooniva signaali – [[taktsignaal]]i – sagedus. Taktsagedust antakse protsessorile taktgeneraatorist, mis paikneb emaplaadil protsessorist eraldi. Protsessorite taktsagedus jääb enamasti 2 ja 4 [[gigaherts]]i vahemikku. Sellise sagedusega sünkroonitakse arvuti eri osade tööd. Arvuti kui terviku jõudlus sõltub peale protsessori töökiiruse loomulikult ka muudest komponentidest, eriti aga [[muutmälu]] mahust.
Taktsagedus näitab protsessori sees kasutatava sünkrooniva signaali sagedust (näiteks 1&nbsp;GHz protsessori korral sünkroonitakse protsessori sees toimuvat tegevust miljard korda sekundis, 10&nbsp;MHz protsessori korral 10 miljonit korda sekundis). See ei näita otseselt protsessori jõudlust, kuid ühesuguse ehitustega protsessorite puhul on selle parameetri abil võimalik väga lihtsalt protsessorite võimaliku jõudlust hinnata. Siinkohal ei tohi segamini ajada protsessori töökiirust ja süsteemi töökiirust. Arvuti kiirus oleneb eelkõige siiski mälu kiirusest.
Protsessori taktsagedus saadakse süsteemisiini töösageduse ja protsessori kordaja korrutamise teel.
 
Taktsageduse tõstmine üle 3 gigahertsi on seotud energiatarbe ja soojaeralduse järsu kasvuga, seepärast suurendatakse jõudlust sel teel, et keskseadmesse mahutatakse mitu protsessorilülitust, nn tuuma. Need võivad paikneda ühel kiibil või eraldi kiipidel. Näiteks [[Apple M1]] protsessoril on kaheksa tuuma, mis töötavad muutuvatel taktsagedustel 0,6 kuni 3,2 GHz.
Taktsagedust antakse edasi süsteemi kellasignaaliga ehk taktsignaaliga. See dikteerib protsessori töösageduse ja sünkroonib arvuti eri osade tööd. Taktsignaali edastamine on äärmiselt lihtne: kindlate ajavahemike tagant vahetatakse protsessorile antavat pinget. See signaal on protsessori töötamiseks fundamentaalse tähtsusega, võimaldades protsessoril täita kordamööda erinevaid operatsioone. Mida kiirem kellasignaal ehk taktsignaal, seda rohkem ülesandeid suudetakse sekundis täita.
 
Personaalarvutitel ja paljudel seadmetel on ka nn kell-kalender ([[RTC]], reaalajakell), mis töötab protsessori taktkellast eraldi ja millel on oma sisemine taktsagedus.
 
===MIPS-id ja FLOPS-id===
Märksa konkreetsemad kiiruse mõõtühikud kui taktsagedus, on see, kui palju operatsioone protsessor suudab ajaühikus täita. Sellise mõõtmise tulemused sõltuvad muidugi rangelt arhitektuurist (eelkõige protsessori instruktsioonidest). Kasutusel on kaks mõõtu:
*[[MIPS]] – (Million Instructions Per Second – miljonit instruktsiooni sekundis) kirjeldab, kui palju operatsioone täisarvudega suudab protsessor sekundis täita. Näiteks on [[Intel 4004]] protsessor 0,06 MIPS ning [[Intel Pentium 4]] protsessor kuni 11 000 MIPS.
*[[FLOPS]] – (FLoating-point Operations Per Second – ujukomaarvutusi sekundis) erinevalt MIPS-ist väljendab protsessori jõudlust ujukomaarvutuste teostamisel.
 
===MIPS-id ja FLOPS-id===
Märksa konkreetsemalt kui taktsagedus iseloomustab töökiirust see, kui palju operatsioone protsessor suudab ajaühikus täita. Kasutusel on kaks mõõtühikut:
*[[MIPS]] (''Million Instructions Per Second'', miljonit instruktsioonimasinakäsku sekundis) kirjeldab, kui palju operatsioone täisarvudega suudab protsessor sekundis täita. Näiteks on [[Intel 4004]] protsessor 0,06 MIPS ning [[Intel Pentium 4]] protsessor kuni 11 000 MIPS.
*[[FLOPS]] (''FLoating-point Operations Per Second'', ujukomaarvutusi sekundis) erinevalt MIPS-ist väljendab protsessori jõudlust ujukomaarvutuste teostamisel.
FLOPS-e kasutatakse rohkem teadusarvutite võrdlemisel (näiteks koostatakse nende põhjal superarvutite edetabeleid), harilike personaalarvutite puhul pole see näitaja nii oluline – märksa olulisem on nende puhul MIPS-ide hulk.
 
===CISC ja RISC===
On kaks erinevat suunda protsessorite instruktsioonidemasinakäskude kodeerimiseks:
*[[CISC]] (''Complex Instruction Set Computer'') – selline protsessor võib ühe instruktsioonikäsu raames teha mitu mikrooperatsiooni. CISC protsessorile kirjutatud programmid on mahult väiksemad ning ühtlasi on neid masinkoodis ka suhteliselt lihtne kirjutada.
*[[RISC]] (''Reduced Instruction Set Computer'') – selline protsessor aga toimetabki üksnes võimalikult lihtsate mikrooperatsioonidega. RISC protsessorile kirjutatud programmid vajavad rohkem mälu, sest kõik mikrooperatsioonid tuleb eraldi kirja panna. Ühtlasi on selliseid programme masinkoodis ka raskem kirjutada kui CISC-le.
 
RISC tüübi protsessori jõudlus on suurem CISC tüüpi protsessorist. Arvutite algusajal ei olnud olemas veel kompilaatoreid, kõik programmid tuli kirjutada otse masinkoodi või assembleri abil ja just seetõttu oli lihtsam programme kirjutada programme CISC tüüpi protsessorile, mille puhul sai kasutada lihtsaid käske, mida oli samas palju, keerukate asjade tegemiseks. Tänapäeval on CISC ja RISC protsessorite piir ähmastunud, kuna nad on võtnud üle üksteise omadusi.
139. rida ⟶ 112. rida:
*[[Transmeta]]
*[[National Semiconductor]]
 
==Ajalugu==
[[Pilt:Edvac.jpg|pisi|[[EDVAC]], elektrooniline digitaalarvuti]]
 
[[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 Eckert]]il ja [[John William Mauchly]]l, 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 [[EDVAC]]i: 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 [[Mälu (arvuti)|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 ülikool]]is väljatöötatud elektromehaaniline arvuti [[Harvard Mark I]], mis rakendas püsiprogramsuse ideed kasutades [[perfolint]]e. 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.
 
== Välislingid ==