Centrālais procesors

Centrālais procesors (CPU) ir svarīga katra datora sastāvdaļa. Centrālais procesors sūta signālus, lai kontrolētu citas datora daļas, gandrīz tāpat kā smadzenes kontrolē ķermeni.

Centrālais procesors ir elektroniska mašīna, kas darbojas ar datora veicamo darbību sarakstu, ko sauc par instrukcijām. Tas nolasa instrukciju sarakstu un izpilda (izpilda) katru instrukciju pēc kārtas. Instrukciju saraksts, ko CPU var izpildīt, ir datorprogramma.

Procesora iekšējo detaļu taktātrums jeb ātrums tiek mērīts hercos (Hz). Mūsdienu procesori bieži darbojas tik ātri, ka to vietā tiek izmantoti gigaherci (GHz). Viens GHz ir 1 000 000 000 000 ciklu sekundē.

Lielākā daļa galddatoros (mājas datoros) izmantoto procesoru ir Intel vai Advanced Micro Devices (parasti saīsināti AMD) mikroprocesori. Procesorus ražo arī citi uzņēmumi: ARM, IBM un AMD, kas šobrīd ir līderis, ATI Technologies. Lielākā daļa to procesoru tiek izmantoti iegultajās sistēmās specializētākām vajadzībām, piemēram, mobilajos telefonos, automašīnās, spēļu konsolēs vai militārajās ierīcēs.

Pentium procesors datorāZoom
Pentium procesors datorā

Procesoru veidi

20. gadsimtā inženieri izgudroja daudzas dažādas datoru arhitektūras. Mūsdienās lielākajā daļā galddatoru tiek izmantoti 32 bitu procesori vai 64 bitu procesori. 32 bitu procesora instrukcijas spēj labi apstrādāt datus, kas ir 32 bitu lieluma (32 bitu procesora lielākā daļa instrukciju "domā" 32 bitos). Līdzīgi 64 bitu procesors labi apstrādā datus, kas ir 64 bitu lieluma (un bieži vien labi apstrādā arī 32 bitu datus). Datu lielumu, ko procesors vislabāk apstrādā, bieži sauc par procesora vārdu lielumu. Daudziem vecajiem 70., 80. un 90. gadu vecajiem CPU (un daudzām mūsdienu iegultajām sistēmām) ir 8 vai 16 bitu vārda lielums. Kad 20. gadsimta vidū tika izgudroti centrālie procesori, tiem bija daudz dažādu vārdu izmēru. Dažiem bija dažādi vārdu lielumi instrukcijām un datiem. Mazāk populāros vārdu izmērus vēlāk pārstāja izmantot.

Lielākā daļa procesoru ir mikroprocesori. Tas nozīmē, ka procesors ir tikai viena mikroshēma. Dažās mikroshēmās ar mikroprocesoriem ir arī citi komponenti, un tās ir pilnvērtīgi vienas mikroshēmas "datori". To sauc par mikrokontrolieri.

Reģistri

Kad centrālais procesors izpilda datorprogrammu, tam ir nepieciešams kaut kur glabāt datus, ar kuriem darbojas instrukcijas (datus, kurus tās nolasa un ieraksta). Šo krātuvi sauc par reģistru. Procesoram parasti ir daudz reģistru. Reģistriem ir jābūt ļoti ātrai piekļuvei (lasīšanai un rakstīšanai). Tāpēc tie ir daļa no paša procesora mikroshēmas.

Atmiņa

Visu datu glabāšana reģistros padarītu vairumu procesoru pārāk sarežģītu (un ļoti dārgu). Tāpēc reģistros parasti tiek glabāti tikai tie dati, ar kuriem procesors strādā "tieši tagad". Pārējie programmas izmantotie dati tiek glabāti RAM (atmiņā). Izņemot mikrokontrolierus, RAM parasti tiek glabāta ārpus CPU atsevišķās mikroshēmās.

Kad procesors vēlas nolasīt vai ierakstīt datus operatīvajā atmiņā, tas izvada šo datu adresi. Katram RAM baitam ir atmiņas adrese. Adrešu lielums bieži vien ir vienāds ar vārda lielumu: 32 bitu CPU izmanto 32 bitu adreses utt. Tomēr mazāki procesori, piemēram, 8 bitu procesori, bieži izmanto adreses, kas ir lielākas par vārda izmēru. Pretējā gadījumā maksimālais programmas garums būtu pārāk īss.

Tā kā adrešu lielums ir ierobežots, ierobežots ir arī maksimālais atmiņas apjoms. 32 bitu procesori parasti spēj apstrādāt tikai līdz 4 GB RAM. Tas ir dažādu baitu skaits, ko var izvēlēties, izmantojot 32 bitu adresi (katram bītam var būt divas vērtības - 0 un 1, un 2 32baiti ir 4 GB). 64 bitu procesors var apstrādāt līdz pat 16 EB RAM (16 eksabaitiem, aptuveni 16 miljardiem GB jeb 16 miljardiem miljardu baitu). Operētājsistēma var ierobežot mazāka apjoma izmantošanu.

Operatīvajā atmiņā saglabātā informācija parasti ir gaistoša. Tas nozīmē, ka tā pazūd, ja dators tiek izslēgts.

Kešatmiņa

Mūsdienu datoros operatīvā atmiņa ir daudz lēnāka nekā reģistri, tāpēc piekļuve operatīvajai atmiņai palēnina programmu darbību. Lai paātrinātu piekļuvi atmiņai, starp operatīvo atmiņu un galvenajām procesora daļām bieži vien ievieto ātrāka tipa atmiņu, ko sauc par kešatmiņu. Kešatmiņa parasti ir daļa no paša procesora mikroshēmas, un tās izmaksas uz baitu ir daudz lielākas nekā RAM. Kešatmiņā tiek glabāti tie paši dati, kas operatīvajā atmiņā, bet parasti tā ir daudz mazāka. Tāpēc visi programmas izmantotie dati var neiekļauties kešatmiņā. Kešatmiņā cenšas saglabāt datus, kas, visticamāk, tiks izmantoti daudz. Kā piemēru var minēt nesen izmantotos datus un datus, kas atmiņā atrodas tuvu nesen izmantotajiem datiem.

Bieži vien ir lietderīgi izveidot "kešatmiņu kešatmiņai", tāpat kā ir lietderīgi izveidot RAM kešatmiņu. Daudzlīmeņu kešatmiņā ir vairākas kešatmiņas, ko sauc par L1 kešatmiņu, L2 kešatmiņu un tā tālāk. L1 kešatmiņa ir visātrākā (un dārgākā uz baitu) kešatmiņa, un tā ir "vistuvāk" procesoram. L2 kešatmiņa ir vienu soli tālāk un ir lēnāka nekā L1 kešatmiņa utt. L1 kešatmiņu bieži var uzskatīt par L2 kešatmiņas kešatmiņu utt.

Autobusi

Datora kopnes ir vadi, ko procesors izmanto, lai sazinātos ar operatīvo atmiņu un citiem datora komponentiem. Gandrīz visiem CPU ir vismaz datu kopne, ko izmanto datu lasīšanai un rakstīšanai, un adrešu kopne, ko izmanto adrešu izvadīšanai. Citas CPU iekšpusē esošās kopnes pārvadā datus uz dažādām CPU daļām.

Instrukciju kopas

Instrukciju kopums (saukts arī par ISA - instrukciju kopuma arhitektūru) ir valoda, ko tieši saprot konkrēts procesors. Šīs valodas sauc arī par mašīnkodiem vai bināro kodu. Tajās ir norādīts, kā procesors var veikt dažādas darbības, piemēram, ielādēt datus no atmiņas reģistrā vai saskaitīt divu reģistru vērtības. Katrai instrukciju kopas instrukcijai ir kodējums, kas ir veids, kā instrukcija tiek pierakstīta kā bitu secība.

Programmas, kas uzrakstītas tādās programmēšanas valodās kā C un C++, procesors nevar palaist tieši. Tās ir jātulko mašīnkodā, pirms procesors tās var palaist. Kompilators ir datorprogramma, kas veic šo tulkošanu.

Mašīnkods ir tikai 0 un 1 secība, tāpēc cilvēkiem to ir grūti nolasīt. Lai padarītu to vieglāk lasāmu, mašīnkoda programmas parasti tiek rakstītas asemblervalodā. Asamblēšanas valodā 0 un 1 vietā tiek izmantots teksts: Piemēram, lai ielādētu vērtību 0 reģistrā A, var rakstīt "LD A,0". Programmu, kas asemblera valodu tulko mašīnkodā, sauc par asembleri.

Funkcionalitāte

Šeit ir uzskaitītas dažas galvenās procesora darbības:

  • Datu nolasīšana no atmiņas un datu ierakstīšana atmiņā.
  • Pievienojiet vienu skaitli citam skaitlim.
  • Pārbaudiet, vai viens skaitlis ir lielāks par citu skaitli.
  • Pārvietot skaitli no vienas vietas uz citu (piemēram, no viena reģistra uz citu vai starp reģistru un atmiņu).
  • Pāriet uz citu vietu instrukciju sarakstā, bet tikai tad, ja ir izpildīts kāds tests (piemēram, tikai tad, ja viens skaitlis ir lielāks par otru).

Pat ļoti sarežģītas programmas var izveidot, apvienojot daudzas šādas vienkāršas instrukcijas. Tas ir iespējams, jo katra instrukcija tiek izpildīta ļoti īsā laikā. Daudzi procesori mūsdienās var izpildīt vairāk nekā 1 miljardu (1 000 000 000 000) instrukciju vienā sekundē. Kopumā, jo vairāk procesors var izdarīt noteiktā laikā, jo ātrāks tas ir. Viens no procesora ātruma mērīšanas veidiem ir MIPS (miljoni instrukciju sekundē). Flops (operācijas ar peldošo komatspunktu sekundē) un procesora taktātrums (parasti mēra gigahertzos) arī ir veidi, kā izmērīt, cik daudz darba procesors var paveikt noteiktā laikā.

Procesors ir veidots no loģiskajiem vārtiem; tam nav kustīgu detaļu. Datora CPU ir elektroniski savienots ar citām datora daļām, piemēram, videokarti vai BIOS. Datora programma var kontrolēt šīs perifērijas ierīces, nolasot vai ierakstot skaitļus īpašās vietās datora atmiņā.

Instrukciju konveijeri

Katra CPU izpildītā instrukcija parasti tiek izpildīta vairākos posmos. Piemēram, lai izpildītu instrukciju "INC A" (palielinātu reģistrā A saglabāto vērtību par vienu) vienkāršā CPU, var veikt šādus soļus:

  • Instrukcijas nolasīšana no atmiņas,
  • dekodēt instrukciju (noskaidrot, ko instrukcija dara) un
  • pievienot vienu reģistrā A.

Dažādas procesora daļas veic dažādas darbības. Bieži vien ir iespējams vienlaicīgi izpildīt dažus soļus no dažādām instrukcijām, kas padara procesoru ātrāku. Piemēram, mēs varam nolasīt kādu instrukciju no atmiņas tajā pašā laikā, kad dekodējam citu instrukciju, jo šie soļi izmanto dažādus moduļus. To var uzskatīt par daudzu instrukciju vienlaicīgu darbību "cauruļvadā". Labākajā gadījumā visi moduļi vienlaicīgi strādā ar dažādām instrukcijām, taču tas ne vienmēr ir iespējams.

Atmiņas pārvaldības bloki (MMU) un virtuālā atmiņa

Mūsdienu procesori bieži izmanto atmiņas pārvaldības bloku (MMU). MMU ir komponents, kas tulko adreses no CPU uz (parasti) dažādām RAM adresēm. Izmantojot MMU, programmā izmantotās adreses (parasti) nav "īstās" adreses, kurās tiek glabāti dati. To sauc par virtuālo (pretstatu "reālajai") atmiņu. Daži no iemesliem, kāpēc ir lietderīgi izmantot MMU, ir uzskaitīti turpmāk:

  • MMU var "paslēpt" citu programmu atmiņu no programmas. Tas tiek darīts, programmas darbības laikā nepārtulkojot nevienu adresi uz "slēptajām" adresēm. Tas ir labi, jo tas nozīmē, ka programmas nevar nolasīt un modificēt citu programmu atmiņu, kas uzlabo drošību un stabilitāti. (Programmas nevar viena otru "izspiegot" vai "uzkāpt viena otrai uz pirkstiem".)
  • Daudzi MMU var padarīt dažas atmiņas daļas neierakstāmas, nelasāmas vai neizpildāmas (tas nozīmē, ka šajā atmiņas daļā saglabāto kodu nevar palaist). Tas var būt lietderīgi stabilitātes un drošības, kā arī citu iemeslu dēļ.
  • MMU ļauj dažādām programmām izmantot dažādus atmiņas "skatus". Tas ir noderīgi daudzās dažādās situācijās. Piemēram, programmas "galvenais" kods vienmēr var atrasties tajā pašā (virtuālajā) adresē, nesaskaroties ar citām programmām. Tas ir noderīgi arī tad, ja ir daudz dažādu koda daļu (no bibliotēkām), kas tiek koplietoti starp programmām.
  • MMU ļauj bibliotēku kodiem parādīties dažādās adresēs katru reizi, kad tiek palaista programma. Tas ir labi, jo, nezinot, kur kas atrodas atmiņā, hakeriem bieži vien ir grūtāk panākt, lai programmas darītu sliktas lietas. To sauc par adrešu telpas randomizāciju.
  • Uzlabotas programmas un operētājsistēmas var izmantot trikus ar MMU, lai izvairītos no datu kopēšanas starp dažādām atmiņas vietām.

Vairāki kodoli

21. gadsimta sākumā plaši izplatīti kļuva daudzkodolu procesori. Tas nozīmē, ka vienā mikroshēmā ir iebūvēti vairāki procesori, lai tie varētu izpildīt daudzas instrukcijas vienlaicīgi. Dažiem procesoriem var būt līdz pat trīsdesmit diviem kodoliem, piemēram, AMD Epyc 7601.

Ražotāji

Datoru procesorus ražo šādi uzņēmumi:

  • ARM
  • Intel
  • Advanced Micro Devices
  • MCST
  • SRISA
  • Sun Microsystems

Papildu informācija

  • Mikroprocesors
  • ALU
  • Izpildes vienība
  • Vienība ar peldošo komatu
  • Intel
  • AMD

AlegsaOnline.com - 2020 / 2022 - License CC3