Centrinis procesorius
Centrinis procesorius (CPU) yra svarbi kiekvieno kompiuterio dalis. Centrinis procesorius siunčia signalus, kuriais valdomos kitos kompiuterio dalys, panašiai kaip smegenys valdo kūną.
Centrinis procesorius yra elektroninė mašina, veikianti pagal kompiuterio užduočių, vadinamų instrukcijomis, sąrašą. Jis perskaito instrukcijų sąrašą ir kiekvieną instrukciją atlieka (vykdo) iš eilės. Instrukcijų, kurias gali vykdyti centrinis procesorius, sąrašas yra kompiuterio programa.
Taktinis dažnis arba procesoriaus vidinių dalių greitis matuojamas hercais (Hz). Šiuolaikiniai procesoriai dažnai veikia taip greitai, kad vietoj jų naudojamas gigahercų dažnis (GHz). Vienas GHz yra 1 000 000 000 000 ciklų per sekundę.
Dauguma stacionariuose (namų) kompiuteriuose naudojamų procesorių yra "Intel" arba "Advanced Micro Devices" (paprastai sutrumpintai vadinami AMD) mikroprocesoriai. Procesorius gamina ir kitos bendrovės: ARM, IBM ir AMD, priklausanti "ATI Technologies", kuri šiuo metu yra lyderė. Dauguma jų procesorių naudojami įterptosiose sistemose, skirtose specializuotesniems dalykams, pavyzdžiui, mobiliuosiuose telefonuose, automobiliuose, žaidimų konsolėse arba kariuomenėje.
Kompiuteryje esantis "Pentium" procesorius
Procesorių tipai
XX amžiuje inžinieriai išrado daugybę skirtingų kompiuterių architektūrų. Dabar daugumoje stacionariųjų kompiuterių naudojami 32 bitų arba 64 bitų procesoriai. 32 bitų procesoriaus instrukcijos gerai apdoroja 32 bitų dydžio duomenis (dauguma 32 bitų procesoriaus instrukcijų "mąsto" 32 bitais). Panašiai 64 bitų centrinis procesorius gerai apdoroja 64 bitų dydžio duomenis (dažnai gerai apdoroja ir 32 bitų duomenis). Duomenų dydis, kurį procesorius geriausiai apdoroja, dažnai vadinamas procesoriaus žodžio dydžiu. Daugelio senų 70-ųjų, 80-ųjų ir 90-ųjų metų pradžios centrinių procesorių (ir daugelio šiuolaikinių įterptinių sistemų) žodžio dydis yra 8 arba 16 bitų. Kai XX a. viduryje buvo išrasti procesoriai, jie turėjo daug skirtingų žodžių dydžių. Kai kurie jų turėjo skirtingus žodžių dydžius instrukcijoms ir duomenims. Vėliau mažiau populiarūs žodžių dydžiai nustoti naudoti.
Dauguma procesorių yra mikroprocesoriai. Tai reiškia, kad procesorius yra tik vienas lustas. Kai kurios mikroschemos su mikroprocesoriais savo viduje turi ir kitų komponentų ir yra ištisi vienos mikroschemos "kompiuteriai". Tai vadinama mikrovaldikliu.
Registrai
Kai centrinis procesorius vykdo kompiuterio programą, jam reikia kur nors saugoti duomenis, su kuriais veikia instrukcijos (duomenis, kuriuos jos skaito ir rašo). Ši saugykla vadinama registru. Procesorius paprastai turi daug registrų. Registrai turi būti labai greitai pasiekiami (skaitomi ir rašomi). Todėl jie yra paties procesoriaus lusto dalis.
Atmintis
Visus duomenis saugoti registruose būtų per daug sudėtinga (ir labai brangu) daugumai procesorių. Todėl registruose paprastai saugomi tik tie duomenys, su kuriais procesorius dirba "dabar". Likusieji programos naudojami duomenys saugomi operatyviojoje atmintyje (RAM). Išskyrus mikrovaldiklius, operatyvioji atmintis (RAM) paprastai saugoma už procesoriaus ribų, atskirose mikroschemose.
Kai procesorius nori perskaityti arba įrašyti duomenis į operatyviąją atmintį, jis išveda tų duomenų adresą. Kiekvienas RAM atminties baitas turi atminties adresą. Adresų dydis dažnai sutampa su žodžio dydžiu: 32 bitų procesorius naudoja 32 bitų adresus ir t. t. Tačiau mažesni procesoriai, pavyzdžiui, 8 bitų procesoriai, dažnai naudoja adresus, kurie yra didesni už žodžio dydį. Priešingu atveju maksimalus programos ilgis būtų per trumpas.
Kadangi adresų dydis yra ribotas, didžiausias atminties kiekis taip pat yra ribotas. 32 bitų procesoriai paprastai gali dirbti tik su 4 GB RAM. Būtent tiek skirtingų baitų galima pasirinkti naudojant 32 bitų adresą (kiekvienas bitas gali turėti dvi reikšmes - 0 ir 1, o 232 baitai yra 4 GB). 64 bitų procesorius gali dirbti su iki 16 EB operatyviosios atminties (16 eksabaitų, maždaug 16 milijardų GB, arba 16 milijardų milijardų baitų). Operacinė sistema gali apriboti, kad jis naudotų mažesnį kiekį.
Operatyviojoje atmintyje saugoma informacija paprastai yra nepastovi. Tai reiškia, kad ji išnyks, jei kompiuteris bus išjungtas.
Talpykla
Šiuolaikiniuose kompiuteriuose operatyvioji atmintis yra daug lėtesnė už registrus, todėl prieiga prie operatyviosios atminties lėtina programų darbą. Siekiant pagreitinti prieigą prie atminties, tarp operatyviosios atminties ir pagrindinių procesoriaus dalių dažnai dedama spartesnė atmintis, vadinama spartinančiąja atmintimi. Spartinančioji atmintis paprastai yra paties procesoriaus mikroschemos dalis, o vienas jos baitas yra daug brangesnis nei operatyviosios atminties. Spartinančioji atmintinė saugo tuos pačius duomenis kaip ir operatyvioji atmintis, tačiau paprastai yra daug mažesnė. Todėl visi programoje naudojami duomenys gali netilpti į talpyklą. Spartinančiojoje atmintinėje stengiamasi saugoti duomenis, kurie, tikėtina, bus dažnai naudojami. Pavyzdžiai - neseniai naudoti duomenys ir duomenys, esantys netoli atmintyje nuo neseniai naudotų duomenų.
Dažnai tikslinga turėti "talpyklą talpyklai", kaip ir operatyviosios atminties talpyklą. Daugiapakopėje spartinančiojoje atmintinėje yra daug spartinančiosios atmintinės, vadinamos L1 spartinančiąja atmintine, L2 spartinančiąja ir t. t. L1 talpykla yra greičiausia (ir brangiausia vienam baitui) talpykla ir yra "arčiausiai" procesoriaus. L2 talpykla yra per žingsnį toliau ir yra lėtesnė už L1 talpyklą ir t. t. L1 talpyklą dažnai galima laikyti L2 talpyklos talpykla ir t. t.
Autobusai
Kompiuterio magistralės - tai laidai, kuriais centrinis procesorius bendrauja su operatyviąja atmintimi ir kitais kompiuterio komponentais. Beveik visi procesoriai turi bent jau duomenų magistralę, naudojamą duomenims skaityti ir rašyti, ir adresų magistralę, naudojamą adresams išvesti. Kitos procesoriaus viduje esančios magistralės perduoda duomenis į skirtingas procesoriaus dalis.
Instrukcijų rinkiniai
Instrukcijų rinkinys (dar vadinamas ISA - instrukcijų rinkinio architektūra) - tai kalba, kurią tiesiogiai supranta konkretus procesorius. Šios kalbos dar vadinamos mašininiu kodu arba dvejetainiu kodu. Jos nurodo, kaip nurodyti procesoriui atlikti įvairius veiksmus, pavyzdžiui, įkelti duomenis iš atminties į registrą arba sudėti dviejų registrų vertes. Kiekviena instrukcijų rinkinio instrukcija turi kodavimą, t. y. kaip instrukcija užrašoma kaip bitų seka.
Programų, parašytų tokiomis programavimo kalbomis kaip C ir C++, procesorius negali paleisti tiesiogiai. Prieš jas paleisdamas procesorius jas turi išversti į mašininį kodą. Kompilatorius yra kompiuterio programa, kuri atlieka šį vertimą.
Mašininis kodas - tai tik 0 ir 1 vienetų seka, todėl žmonėms sunku jį perskaityti. Kad jį būtų lengviau perskaityti, mašininio kodo programos paprastai rašomos asemblerio kalba. Asemblerio kalboje vietoj 0 ir 1 naudojamas tekstas: Pavyzdžiui, norėdami įkelti 0 reikšmę į A registrą, galite parašyti "LD A,0". Programa, verčianti asemblerio kalbą į mašininį kodą, vadinama asembleriu.
Funkcionalumas
Štai keletas pagrindinių dalykų, kuriuos gali atlikti centrinis procesorius:
- Skaityti duomenis iš atminties ir įrašyti duomenis į atmintį.
- Vieną skaičių pridėkite prie kito skaičiaus.
- Patikrinkite, ar vienas skaičius yra didesnis už kitą skaičių.
- Perkelti skaičių iš vienos vietos į kitą (pavyzdžiui, iš vieno registro į kitą arba iš registro į atmintį).
- Pereiti į kitą instrukcijų sąrašo vietą, bet tik tada, jei tam tikras testas yra teisingas (pvz., tik tada, jei vienas skaičius yra didesnis už kitą).
Net ir labai sudėtingas programas galima sukurti derinant daugybę tokių paprastų instrukcijų. Tai įmanoma, nes kiekviena instrukcija įvyksta per labai trumpą laiką. Daugelis dabartinių procesorių per vieną sekundę gali atlikti daugiau nei 1 milijardą (1 000 000 000 000) instrukcijų. Apskritai kuo daugiau CPU gali atlikti per tam tikrą laiką, tuo jis greitesnis. Vienas iš procesoriaus spartos matavimo būdų yra MIPS (milijonas instrukcijų per sekundę). Flops (slankiojo kablelio operacijos per sekundę) ir procesoriaus taktinis dažnis (paprastai matuojamas gigahercų dažniu) taip pat yra būdai įvertinti, kiek darbo procesorius gali atlikti per tam tikrą laiką.
Centrinis procesorius sudarytas iš loginių vartų; jame nėra judančių dalių. Kompiuterio centrinis procesorius elektroniniu būdu sujungtas su kitomis kompiuterio dalimis, pavyzdžiui, vaizdo plokšte arba BIOS. Kompiuterio programa gali valdyti šiuos periferinius įrenginius skaitydama arba įrašydama skaičius į specialias kompiuterio atminties vietas.
Instrukcijų vamzdynai
Kiekviena procesoriaus vykdoma instrukcija paprastai atliekama keliais etapais. Pavyzdžiui, instrukcijos "INC A" (padidinti registre A saugomą reikšmę vienetu) vykdymo veiksmai paprastame centriniame procesoriuje gali būti tokie:
- Perskaitykite instrukciją iš atminties,
- iššifruoti instrukciją (išsiaiškinti, ką instrukcija daro) ir
- į A registrą įrašykite vieną.
Skirtingos procesoriaus dalys atlieka skirtingus veiksmus. Dažnai vienu metu galima atlikti kai kuriuos skirtingų instrukcijų veiksmus, todėl procesorius veikia greičiau. Pavyzdžiui, galime skaityti instrukciją iš atminties tuo pačiu metu, kai dekoduojame kitą instrukciją, nes šiems veiksmams naudojami skirtingi moduliai. Tai galima įsivaizduoti kaip daug instrukcijų vienu metu "vamzdyno viduje". Geriausiu atveju visi moduliai vienu metu dirba su skirtingomis instrukcijomis, tačiau tai ne visada įmanoma.
Atminties valdymo blokai (MMU) ir virtualioji atmintis
Šiuolaikiniuose procesoriuose dažnai naudojamas atminties valdymo blokas (MMU). MMU - tai komponentas, kuris verčia adresus iš procesoriaus į (paprastai) skirtingus operatyviosios atminties adresus. Kai naudojamas MMU, programoje naudojami adresai (paprastai) nėra "tikrieji" adresai, kuriuose saugomi duomenys. Tai vadinama virtualia (priešinga "tikrajai") atmintimi. Toliau išvardytos kelios priežastys, kodėl naudinga turėti MMU:
- MMU gali "paslėpti" kitų programų atmintį nuo programos. Tai daroma nepervedant jokių adresų į "paslėptus" adresus, kol programa veikia. Tai gerai, nes tai reiškia, kad programos negali skaityti ir keisti kitų programų atminties, o tai padidina saugumą ir stabilumą. (Programos negali "šnipinėti" viena kitos arba "lipti viena kitai ant kojos").
- Daugelyje MMU kai kurios atminties dalys gali būti neįrašomos, neskaitomos arba nevykdomos (tai reiškia, kad toje atminties dalyje saugomas kodas negali būti paleistas). Tai gali būti naudinga dėl stabilumo, saugumo ir kitų priežasčių.
- MMU leidžia skirtingoms programoms turėti skirtingus atminties "vaizdus". Tai patogu įvairiose situacijose. Pavyzdžiui, visada bus galima turėti programos "pagrindinį" kodą tuo pačiu (virtualiuoju) adresu, nesusiduriant su kitomis programomis. Tai taip pat patogu, kai yra daug skirtingų kodo dalių (iš bibliotekų), kuriomis programos dalijasi.
- MMU leidžia bibliotekų kodui kiekvieną kartą paleidžiant programą pasirodyti skirtingais adresais. Tai gerai, nes nežinant, kur kas yra atmintyje, įsilaužėliams dažnai būna sunkiau priversti programas daryti blogus dalykus. Tai vadinama adresų erdvės atsitiktine atranka.
- Pažangios programos ir operacinės sistemos gali naudoti triukus su MMU, kad nereikėtų kopijuoti duomenų iš vienos atminties vietos į kitą.
Keli branduoliai
Daugiabranduoliai procesoriai paplito XXI a. pradžioje. Tai reiškia, kad į tą patį lustą įmontuota daug procesorių, kad vienu metu būtų galima vykdyti daug instrukcijų. Kai kurie procesoriai gali turėti iki trisdešimt dviejų branduolių, pavyzdžiui, AMD Epyc 7601.
Gamintojai
Kompiuterių centrinius procesorius gamina šios bendrovės:
- ARM
- "Intel"
- "Advanced Micro Devices
- MCST
- SRISA
- "Sun Microsystems
Daugiau informacijos
- Mikroprocesorius
- ALU
- Vykdymo vienetas
- Slankiojo kablelio vienetas
- "Intel"
- AMD
Klausimai ir atsakymai
K: Kas yra centrinis procesorius?
A: Centrinis procesorius (CPU) yra svarbi kiekvieno kompiuterio dalis. Jis siunčia signalus kitoms kompiuterio dalims valdyti, beveik taip, kaip smegenys valdo kūną. Centrinis procesorius yra elektroninė mašina, kuri veikia pagal instrukcijų sąrašą, kad atliktų tam tikras užduotis.
Klausimas: Kaip veikia centrinis procesorius?
Atsakymas: Procesorius skaito instrukcijų sąrašą ir iš eilės vykdo kiekvieną instrukciją. Instrukcijų, kurias gali vykdyti centrinis procesorius, sąrašas yra kompiuterio programa.
K: Kuo matuojamas procesoriaus taktinis dažnis arba greitis?
A: Centrinio procesoriaus vidinių dalių taktinis dažnis arba greitis matuojamas hercais (Hz). Šiuolaikiniai procesoriai dažnai veikia taip sparčiai, kad vietoj jų naudojamas gigahercų (GHz) skaičius - vienas GHz yra 1 000 000 000 000 ciklų per sekundę.
K: Kas yra kai kurios centrinius procesorius gaminančios bendrovės?
A: Procesorius gamina šios bendrovės: "Intel", "Advanced Micro Devices" (AMD), ARM (neseniai nupirkta "Nvidia"), IBM ir AMD, priklausanti "ATI Technologies", kuri šiuo metu pirmauja rinkoje.
K.: Kur dažniausiai naudojami procesoriai?
A.: Dauguma stacionariuose kompiuteriuose naudojamų procesorių yra "Intel" arba AMD mikroprocesoriai, o dauguma kitų procesorių naudojami įterptosiose sistemose, skirtose labiau specializuotiems dalykams, pavyzdžiui, mobiliesiems telefonams, automobiliams, vaizdo žaidimų konsolėms arba karinėms reikmėms.