Kas yra kelių branduolių procesorius?

click fraud protection

Nuo devintojo dešimtmečio vidurio staliniai procesoriai siūlo kelis procesoriaus branduolius viename pakete. Tai yra kelių branduolių procesorius. Ankstyvieji modeliai buvo apriboti iki dviejų ar keturių procesoriaus branduolių, o šiuolaikiniai procesoriai siūlo iki 64 fizinių branduolių viename CPU. Pagrindiniai skaičiai nėra standartiniai stalinių kompiuterių procesoriams ir paprastai yra skirti aukščiausios klasės darbo stotims arba serveriams. Įprastas branduolių skaičius šiuolaikiniuose stalinių kompiuterių procesoriuose yra nuo 4 iki 16. Bet kas yra su kelių branduolių procesoriais, dėl kurių jie dominuoja šiuolaikiniuose kompiuteriuose?

Vienas branduolys

Istoriškai vienas branduolys CPU vienu metu atliko tik vieną užduotį. Tai susiję su daugybe problemų. Pavyzdžiui, šiuolaikiniame kompiuteryje veikia daugybė foninių procesų. Jei CPU vienu metu gali apdoroti tik vieną dalyką, tai reiškia, kad šiems foniniams procesams apdorojimo laikas turi skirtis nuo pirmojo plano proceso. Be to, talpyklos praleidimai reiškia, kad duomenis reikia gauti iš – palyginti – lėtos RAM. Tuo metu, kai duomenys gaunami iš RAM, procesorius tiesiog neveikia, nes nieko negali padaryti, kol negauna duomenų. Tai sulaiko vykdomą procesą ir visus kitus procesus, kurie laukia, kol jis bus baigtas.

Nors šiuolaikiniai vieno branduolio procesoriai iš tikrųjų nėra tinkami dėl pigių kelių branduolių procesorių, jie galėtų naudoti kitus šiuolaikinius triukus, kad veiktų greičiau. Dujotiekis leistų vienu metu naudoti kiekvieną skirtingą nurodymo vykdymo dalį, suteikdamas reikšmingą našumo padidėjimą naudojant tik vieną dujotiekio etapą per vieną laikrodį ciklas. Platus dujotiekis matytų kelias instrukcijas, kurios galėtų būti tvarkomos kiekvienoje konvejerio stadijoje per laikrodžio ciklą. Neužsakymo apdorojimas leistų suplanuoti instrukcijas efektyviau. Šakos numatytojas galėtų numatyti išsišakojusio nurodymo rezultatą ir iš anksto paleisti numanomą atsakymą.

Visi šie veiksniai veiktų gerai ir užtikrintų tam tikrą našumą. Tačiau pridėjus vieną ar daugiau branduolių visa tai įmanoma ir vienu metu galima apdoroti dvigubai daugiau duomenų.

Daugiagyslis

Atrodo, kad pridėjus antrą branduolį turėtų padvigubėti neapdorotas našumas. Deja, viskas yra sudėtingiau. Programos logika dažnai yra vienos gijos, o tai reiškia, kad programa vienu metu bando atlikti tik vieną dalyką. Tačiau gali atsitikti taip, kad kiti procesai gali naudoti kitą branduolį tuo pačiu metu. Nors daugumai atskirų programų nėra būdingo našumo padidėjimo, teikiama papildoma apdorojimo išteklius, veiksmingai sumažina konkurenciją dėl riboto resurso, kuris suteikia a našumo padidėjimas. Šis našumo padidėjimas, atsirandantis dėl konkurencijos dėl procesoriaus laiko mažinimo, labiausiai pastebimas peršokant nuo vieno naudojant dviejų branduolių centrinį procesorių, toliau didinant branduolių skaičių, grąža mažėja, nors paprastai daugiau geriau.

Norint tinkamai išnaudoti kelių branduolių sistemų pranašumus ir iš tikrųjų matyti solidų našumo padidėjimą, programos turi būti užprogramuotos naudoti kelias apdorojimo gijas. Daugialypę logiką sunku atlikti patikimai, nes ją dažnai sunku išmokti ir yra daug galimų spąstų. Vienas iš spąstų pavyzdžių yra žinomas kaip lenktynių sąlyga. Varžybų sąlygomis vienas procesas daro prielaidą, kad kitas procesas, kurį jis pradeda, vyks sklandžiai, tada jis bando padaryti kažką, kas priklauso nuo to, kad kitas procesas vyks sklandžiai. Pavyzdžiui, įsivaizduokite, kad procesas pradeda kitą procesą, kad uždarytų vieną dokumentą ir atidarytų kitą. Jei pradinis procesas tinkamai nepatikrina, ar antrasis procesas buvo baigtas, tai gali sukelti netikėtų rezultatų. Pavyzdžiui, jei iškilo problema uždarant pirmąjį dokumentą, jis vis tiek gali būti atidarytas, kai pradinis procesas tiesiog įrašo į jį daugiau duomenų.

Esant tokioms lenktynėms, kintamojo reikšmė nuskaitoma antrą kartą prieš įrašant naują reikšmę, todėl gaunamas neteisingas bendras atsakymas.

Šiluminės problemos

Viena iš didžiausių problemų, su kuriomis susiduria kelių branduolių procesoriai, yra karštis. Nors vienas procesoriaus branduolys neišskiria tiek daug šilumos, du išskiria daugiau. Didelio branduolių skaičiaus procesoriuose dėl šios šilumos koncentracijos gali sumažėti padidinimo laikrodis, nes CPU valdo savo temperatūrą. Mažesnis padidinimo laikrodis sumažins vienos gijos programų našumą. Tai dažnai galima pastebėti žaidimų našumo etalonuose. Vaizdo žaidimai dažnai labai priklauso nuo vienos gijos. Vienos gijos našumas dažnai yra labai svarbus žaidimams. Didelio branduolių skaičiaus procesoriai, tokie kaip 16 branduolių modeliai, dažnai yra iš didelio našumo dėžučių. Nepaisant to, galima pastebėti, kad juos reguliariai pranoksta „mažesni“ procesoriai, turintys mažesnį branduolių skaičių vienos gijos etalonuose. Ši problema dar akivaizdesnė ypač didelio branduolių skaičiaus procesoriuose, tokiuose kaip 64 branduolių AMD Threadripper, kur laikrodžio greitis yra pastebimai mažesnis nei aukščiausios klasės stalinių kompiuterių procesorių.

Sėkmės

Daugelis programų gali tinkamai išnaudoti kelis procesoriaus branduolius. Pavyzdžiui, procesoriaus atvaizdavimas yra gana lengva užduotis lygiagrečiai. Našumo patobulinimai gali būti matomi iki 64 branduolių ir daugiau, nors šiuo metu nė vienas CPU nepasiūlo daugiau nei 64 branduolių. Daugelio programų paprasčiausiai negalima sudaryti iš kelių gijų, nes jos priklauso nuo nuoseklios logikos. Nors jie beveik nepaspartina kelių gijų programos spartos, faktas, kad kelių gijų programos ir kitos vienos gijos programos gali naudoti kitus procesoriaus branduolius, atlaisvina procesoriaus laiką ir leidžia geriau spektaklis.

Architektūrinės galimybės

Stalinių kompiuterių procesoriuose kiekvienas kelių branduolių procesoriaus branduolys paprastai buvo identiškas. Šis homogeniškumas palengvina darbo su branduoliais planavimą. Naudojant tą patį pasikartojantį dizainą taip pat galima sumažinti kūrimo išlaidas. Tačiau mobilieji procesoriai jau seniai naudoja nevienalytę pagrindinę architektūrą. Šiame dizaine yra dvi ar net trys procesoriaus branduolio pakopos. Kiekviena pakopa gali vykdyti tuos pačius procesus, tačiau kai kurie yra skirti energijos vartojimo efektyvumui, o kiti yra pritaikyti našumui. Tai pasirodė esąs baterijomis maitinamų įrenginių sėkmės receptas, nes daugelis užduočių gali naudoti lėčiau energiją taupančių branduolių, padidinančių baterijos veikimo laiką, o aukšto prioriteto procesus vis tiek galima vykdyti dideliu greičiu Kai reikia.

Stalinio kompiuterio procesoriaus architektūra taip pat juda heterogeniško pagrindinio dizaino kryptimi. „Intel“ Alder Lake 12th kartos Core CPU linija yra pirmasis darbalaukio procesorius, kuris tai daro. Šiuo atveju pagrindinis mažesnių branduolių veiksnys nebūtinai yra energijos vartojimo efektyvumas, o šiluminis efektyvumas, nors tai yra dvi tos pačios monetos pusės. Kelių galingų branduolių turėjimas užtikrina aukštą našumą, o daugelis efektyvių branduolių gali susidoroti su foninėmis užduotimis per daug nepaveikdami pagrindinių branduolių.

Išvada

Kelių branduolių procesorius yra procesorius, kuriame yra keli apdorojimo branduoliai viename pakete, dažnai, nors ir ne tik tame pačiame štampelyje. Daugiagysliai procesoriai nesuteikia daug tiesioginio daugelio programų našumo padidinimo, tačiau, padidinus branduolių skaičių, vienos gijos programoms nereikia tiek daug konkuruoti dėl procesoriaus laiko. Kai kurios programos gali išnaudoti visas kelių branduolių galimybes, tiesiogiai išnaudodamos tiek, kiek yra. Tai labai padidina našumą, nors dėl šiluminių ir galios apribojimų šis padidėjimas nebūtinai yra tiesioginis našumo padidėjimas dvigubai padvigubėjus branduoliams.