Kas ir daudzkodolu procesors?

click fraud protection

Kopš pagājušā gadsimta vidus galddatoru CPU ir piedāvājuši vairākus CPU kodolus vienā iepakojumā. Šis ir daudzkodolu procesors. Lai gan sākotnējie modeļi bija ierobežoti līdz diviem vai četriem CPU kodoliem, mūsdienu CPU piedāvā līdz 64 fiziskajiem kodoliem vienā CPU. Galvenie skaitļi, kas ir augsti, nav standarti galddatoru centrālajiem procesoriem, un parasti tie ir rezervēti augstākās klases darbstacijām vai serveriem. Mūsdienu galddatoru centrālajos procesoros parastie kodolu skaits ir no 4 līdz 16. Bet kas tas ir par daudzkodolu centrālajiem procesoriem, kas padara tos par dominējošiem mūsdienu datoros?

Viens kodols

Vēsturiski viens kodols CPU aprobežojās ar tikai viena uzdevuma veikšanu vienlaikus. Tas ir saistīts ar veselu virkni problēmu. Piemēram, modernā datorā darbojas milzīgs daudzums fona procesu. Ja CPU vienlaikus var apstrādāt tikai vienu lietu, tas nozīmē, ka šiem fona procesiem apstrādes laiks ir jānoņem no priekšplāna procesa. Turklāt kešatmiņas trūkums nozīmē, ka dati ir jāizgūst no salīdzinoši lēnas RAM. Laikā, kad dati tiek iegūti no RAM, procesors vienkārši nedarbojas, jo nevar darīt neko, kamēr nav iegūti dati. Tas aiztur darbības procesu, kā arī visus citus procesus, kas gaida tā pabeigšanu.

Lai gan mūsdienu viena kodola procesori nav īsti jēga, pateicoties budžeta daudzkodolu CPU pieaugumam, tie varētu izmantot citus modernus trikus, lai darbotos ātrāk. Cauruļvads ļautu vienlaikus izmantot katru atšķirīgo instrukcijas apstrādes daļu, nodrošinot ievērojamu veiktspējas palielinājumu, izmantojot tikai vienu konveijera posmu vienā pulkstenī cikls. Plašs konveijers katrā konveijera posmā pulksteņa ciklā varētu apstrādāt vairākas instrukcijas. Ārpus pasūtījuma apstrāde ļautu ieplānot norādījumus efektīvāk. Atzarojuma prognozētājs varētu paredzēt sazarošanas norādījuma iznākumu un iepriekšēji izpildīt paredzamo atbildi.

Visi šie faktori darbotos labi un nodrošinātu zināmu veiktspēju. Tomēr, pievienojot vienu vai vairākus kodolus, tas viss tiek nodrošināts un vienā mirklī ļauj apstrādāt divreiz vairāk datu.

Daudzkodolu

Otrā kodola pievienošana izklausās tā, it kā tam vajadzētu dubultot neapstrādāto veiktspēju. Diemžēl lietas ir daudz sarežģītākas. Programmas loģika bieži vien ir viena pavediena, kas nozīmē, ka ir tikai viena lieta, ko programma mēģina darīt vienlaikus. Tomēr var notikt tas, ka citi procesi vienlaikus var izmantot otru kodolu. Lai gan lielākajai daļai atsevišķu programmu nav raksturīga veiktspējas palielināšana, tiek nodrošināta papildu iespēja apstrādes resurss, efektīvi samazina konkurenci par ierobežotu resursu, kas nodrošina a veiktspējas palielināšana. Šis veiktspējas palielinājums, vienkārši samazinot konkurenci par CPU laiku, ir visvairāk pamanāms, pārejot no viena izmantojot divkodolu centrālo procesoru, atdeve no tālākas kodolu skaita palielināšanas samazinās, lai gan parasti ir vairāk labāk.

Lai pareizi izmantotu daudzkodolu sistēmu sniegtās priekšrocības un faktiski redzētu ievērojamu veiktspējas pieaugumu, programmām ir jābūt ieprogrammētām, lai tās izmantotu vairākus apstrādes pavedienus. Daudzpavedienu loģiku ir ļoti grūti īstenot uzticami, jo to bieži ir grūti iemācīties un pastāv daudzas iespējamās nepilnības. Viens no kļūmju piemēriem ir zināms kā sacensību nosacījums. Sacensību apstākļos viens process pieņem, ka cits process, ko tas sāk, darbosies nevainojami, un pēc tam mēģina darīt kaut ko tādu, kas balstās uz to, ka cits process noritēs nevainojami. Piemēram, iedomājieties, ka process sāk citu procesu, lai aizvērtu vienu dokumentu un atvērtu citu. Ja sākotnējais process nepārbauda, ​​vai otrais process ir pabeigts, var rasties negaidīti rezultāti. Piemēram, ja radās problēma, aizverot pirmo dokumentu, tas joprojām var būt atvērts, kad sākotnējais process tikai ieraksta tajā vairāk datu.

Šajā sacensību stāvoklī mainīgā vērtība tiek nolasīta otro reizi, pirms tam tiek ierakstīta jaunā vērtība, tādējādi radot nepareizu kopējo atbildi.

Termiskās problēmas

Viena no lielākajām problēmām, ar ko saskaras daudzkodolu procesori, ir karstums. Lai gan viens CPU kodols neizdod tik daudz siltuma, divi izdala vairāk. CPU ar lielu kodolu skaitu šī siltuma koncentrācija var izraisīt zemāku pastiprināšanas pulksteni, jo CPU pārvalda savu temperatūru. Zemāks pastiprināšanas pulkstenis izraisīs zemāku veiktspēju viena vītnes lietojumprogrammās. To bieži var redzēt spēļu veiktspējas etalonos. Videospēles bieži vien ir ļoti atkarīgas no viena pavediena. Tādējādi viena vītnes veiktspēja bieži vien ir ļoti svarīga spēlēšanai. CPU ar augstu kodolu skaitu, piemēram, 16 kodolu modeļiem, bieži vien ir no augstas veiktspējas tvertnēm. Neskatoties uz to, tos regulāri var pārspēt “mazākiem” CPU ar mazāku kodolu skaitu viena vītnes etalonos. Šī problēma ir vēl acīmredzamāka CPU ar īpaši lielu kodolu skaitu, piemēram, 64 kodolu AMD Threadripper, kur takts ātrums ir ievērojami zemāks nekā augstākās klases galddatoru CPU.

Panākumi

Daudzas lietojumprogrammas spēj pareizi izmantot vairākus CPU kodolus. Piemēram, CPU renderēšana ir salīdzinoši viegli salīdzināms uzdevums. Veiktspējas uzlabojumus var redzēt līdz pat 64 kodoliem un vairāk, lai gan neviens CPU pašlaik nepiedāvā vairāk par 64 kodoliem. Daudzas lietojumprogrammas vienkārši nevar būt vairākpavedienu, jo tās ir atkarīgas no secīgas loģikas. Lai gan tie ne tuvu nepaātrina daudzpavedienu programmas, fakts, ka daudzpavedienu programmas un citas viena vītnes programmas var izmantot citus CPU kodolus, atbrīvo procesora laiku, ļaujot labāk sniegumu.

Arhitektūras iespējas

Galddatoru procesoros katrs CPU kodols daudzkodolu CPU parasti ir bijis identisks. Šī viendabīgums padara kodolu darba plānošanu vienkāršu. Tā paša atkārtotā dizaina izmantošana arī palīdz samazināt izstrādes izmaksas. Tomēr mobilie procesori jau sen ir izmantojuši neviendabīgu kodolu arhitektūru. Šajā dizainā ir divi vai pat trīs CPU kodola līmeņi. Katrs līmenis var palaist vienus un tos pašus procesus, tomēr daži ir paredzēti enerģijas efektivitātei, bet citi ir pielāgoti veiktspējai. Tas ir pierādījis veiksmes recepti ar akumulatoru darbināmām ierīcēm, jo ​​daudzi uzdevumi var izmantot lēnāk energoefektīvi kodoli, palielinot akumulatora darbības laiku, savukārt augstas prioritātes procesus joprojām var palaist lielā ātrumā kad nepieciešams.

Darbvirsmas CPU arhitektūra arī virzās neviendabīga pamata dizaina virzienā. Intel Alder Lake 12th paaudzes Core CPU līnija ir pirmais galddatoru CPU, kas to dara. Šajā gadījumā mazāko serdeņu galvenais virzošais faktors ne vienmēr ir energoefektivitāte, bet gan siltuma efektivitāte, lai gan tās ir vienas monētas divas puses. Vairāki jaudīgi kodoli nodrošina augstu veiktspēju, savukārt daudzi efektīvi kodoli var tikt galā ar fona uzdevumiem, pārāk neietekmējot galvenos kodolus.

Secinājums

Daudzkodolu centrālais procesors ir centrālais procesors, kurā ir vairāki apstrādes kodoli vienā iepakojumā, bieži vien, taču ne tikai vienā un tajā pašā formā. Daudzkodolu CPU nepiedāvā daudz tiešu veiktspējas palielinājumu daudzām programmām, tomēr, palielinot kodolu skaitu, viena pavediena programmām nav tik daudz jākonkurē par CPU laiku. Dažas programmas var pilnībā izmantot vairāku kodolu priekšrocības, tieši izmantojot tik daudz, cik ir pieejams. Tas nodrošina ievērojamu veiktspējas palielinājumu, lai gan siltuma un jaudas ierobežojumu dēļ šis palielinājums ne vienmēr ir tiešs veiktspējas dubultošanās ar kodolu dubultošanos.