Mikä on moniytiminen prosessori?

click fraud protection

80-luvun puolivälistä lähtien pöytätietokoneiden suorittimet ovat tarjonneet useita CPU-ytimiä yhdessä paketissa. Tämä on moniytiminen prosessori. Vaikka varhaiset mallit rajoittuivat kahteen tai neljään CPU-ytimeen, nykyaikaiset suorittimet tarjoavat jopa 64 fyysistä ydintä yhdessä prosessorissa. Korkeat ydinmäärät eivät ole vakiona pöytätietokoneiden suorittimille, ja ne on yleensä varattu huippuluokan työasemille tai palvelimille. Tyypillinen ydinmäärä nykyaikaisissa pöytäkoneissa on 4-16. Mutta mitä moniytimisissä prosessoreissa on, mikä tekee niistä hallitsevia nykyaikaisissa tietokoneissa?

Yksiytiminen

Historiallisesti yksi ydinprosessori rajoittui suorittamaan vain yhtä tehtävää kerralla. Tähän liittyy monenlaisia ​​ongelmia. Esimerkiksi nykyaikaisessa tietokoneessa on käynnissä valtava määrä taustaprosesseja. Jos prosessori voi käsitellä vain yhtä asiaa kerrallaan, se tarkoittaa, että näiden taustaprosessien on vietävä käsittelyaika etualalla. Lisäksi välimuistin puuttuminen tarkoittaa, että tiedot on noudettava - suhteellisen - hitaasta RAM-muistista. Sinä aikana, kun tietoja haetaan RAM-muistista, prosessori yksinkertaisesti istuu käyttämättömänä, koska se ei voi tehdä mitään ennen kuin se saa tiedot. Tämä pitää käynnissä käynnissä olevan prosessin sekä kaikki muut prosessit, jotka odottavat sen valmistumista.

Vaikka nykyaikaiset yksiytimiset prosessorit eivät todellakaan ole asia budjettien moniytimisprosessorien nousun ansiosta, ne voisivat käyttää muita moderneja temppuja toimiakseen nopeammin. Liukulinja mahdollistaisi jokaisen käskyn käsittelyn eri osan käytön samanaikaisesti, tarjoaa merkittävän suorituskyvyn lisäyksen käyttämällä vain yhtä liukuhihnan vaihetta kelloa kohden sykli. Leveä liukuhihna näkisi useita käskyjä, jotka voitaisiin käsitellä jokaisessa liukuhihnavaiheessa kellojaksoa kohden. Out Of Order -käsittely mahdollistaisi ohjeiden ajoituksen aikatehokkaammin. Haaraennustaja pystyisi ennustamaan haarautumiskäskyn tuloksen ja suorittamaan ennakoivasti oletetun vastauksen.

Kaikki nämä tekijät toimivat hyvin ja tarjoavat jonkin verran suorituskykyä. Yhden tai useamman ytimen lisääminen kuitenkin mahdollistaa tämän kaiken ja mahdollistaa yhdellä iskulla kaksinkertaisen datan käsittelyn kerralla.

Moniytiminen

Toisen ytimen lisääminen kuulostaa siltä, ​​että sen pitäisi kaksinkertaistaa raaka suorituskyvyn. Asiat ovat valitettavasti tätä monimutkaisempia. Ohjelmalogiikka on usein yksisäikeinen, mikä tarkoittaa, että on vain yksi asia, jonka ohjelma yrittää tehdä kerrallaan. Voi kuitenkin tapahtua, että muut prosessit voivat käyttää toista ydintä samanaikaisesti. Vaikka useimpiin yksittäisiin ohjelmiin ei ole luontaista suorituskyvyn lisäystä, tarjotaan ylimääräistä käsittelyresurssi, vähentää tehokkaasti kilpailua rajoitetusta resurssista, mikä tarjoaa a suorituskyvyn lisäys. Tämä suorituskyvyn lisäys, joka johtuu yksinkertaisesti kilpailun vähentämisestä suorittimen ajasta, on havaittavin, kun hyppäät yksittäisestä kaksiytimisessä prosessorissa tuotto vähenee ydinmäärän lisäämisestä, vaikkakin enemmän paremmin.

Jotta moniytimistä järjestelmiä voidaan hyödyntää kunnolla ja todellisuudessa nähdään vankka suorituskyvyn lisäys, ohjelmat on ohjelmoitava käyttämään useita käsittelysäikeitä. Monisäikeistä logiikkaa on tunnetusti vaikea tehdä luotettavasti, koska sen oppiminen on usein vaikeaa ja siinä on monia mahdollisia sudenkuoppia. Yksi esimerkki sudenkuopista tunnetaan kilpailutilanteena. Kilpailutilanteessa yksi prosessi olettaa, että toinen prosessi, jonka se käynnistää, toimii sujuvasti, ja sitten se yrittää tehdä jotain, joka perustuu siihen, että toinen prosessi on sujunut kitkattomasti. Kuvittele esimerkiksi, että prosessi käynnistää toisen prosessin sulkeakseen yhden asiakirjan ja avatakseen toisen. Jos alkuperäinen prosessi ei tarkista oikein, onko toinen prosessi suoritettu loppuun, tämä voi johtaa odottamattomiin tuloksiin. Jos esimerkiksi ensimmäisen asiakirjan sulkemisessa oli ongelma, se saattaa silti olla auki, kun alkuperäinen prosessi vain kirjoittaa siihen lisää tietoja.

Tässä kilpailutilanteessa muuttujan arvo luetaan toisen kerran ennen kuin uusi arvo kirjoitetaan siihen, mikä johtaa väärään kokonaisvastaukseen.

Lämpöongelmat

Yksi suurimmista ongelmista, joiden kanssa moniytiminen prosessorit päätyvät kamppailemaan, on lämpö. Vaikka yksi CPU-ydin ei tuota niin paljon lämpöä, kaksi luovuttaa enemmän. Korkean ydinmäärän prosessoreissa tämä lämmön pitoisuus voi johtaa alhaisempaan tehostuskelloon, kun prosessori hallitsee lämpötilaansa. Pienempi tehostuskello heikentää suorituskykyä yksisäikeisissä sovelluksissa. Tämä näkyy usein pelien suorituskyvyn vertailuarvoissa. Videopelit ovat usein erittäin riippuvaisia ​​yhdestä säikeestä. Sinänsä yksisäikeinen suorituskyky on usein kriittinen pelaamisessa. Korkean ydinmäärän prosessorit, kuten 16 ytimen mallit, ovat usein peräisin korkean suorituskyvyn säiliöistä. Tästä huolimatta niiden voidaan säännöllisesti havaita ylittävän "pienemmät" prosessorit, joilla on pienempi ydinmäärä yksisäikeisissä vertailuarvoissa. Tämä ongelma on vielä ilmeisempi erittäin korkean ydinmäärän suorittimissa, kuten 64-ytimisessä AMD Threadripperissä, jossa kellonopeus on huomattavasti alhaisempi kuin huippuluokan pöytätietokoneiden suorittimet.

Onnistumisia

Monet sovellukset pystyvät hyödyntämään useita prosessoriytimiä oikein. Esimerkiksi CPU-renderöinti on suhteellisen helppo rinnastaa. Suorituskykyparannuksia voidaan nähdä aina 64 ytimeen asti ja enemmän, vaikka yksikään prosessori ei tällä hetkellä tarjoa enempää kuin 64 ydintä. Monet sovellukset eivät yksinkertaisesti voi olla monisäikeisiä, koska ne ovat riippuvaisia ​​peräkkäisestä logiikasta. Vaikka nämä eivät näe lähellekään monisäikeisen ohjelman nopeutta, se tosiasia, että monisäikeiset ohjelmat ja muut yksisäikeiset ohjelmat voivat käyttää muita prosessoriytimiä vapauttaa prosessoriaikaa, mikä mahdollistaa paremman esitys.

Arkkitehtoniset vaihtoehdot

Pöytäkoneiden prosessoreissa jokainen moniytiminen CPU: n ydin on yleensä ollut identtinen. Tämä homogeenisuus tekee ytimien aikataulutuksesta yksinkertaista. Saman toistuvan mallin käyttö auttaa myös pitämään kehityskustannukset alhaisina. Mobiiliprosessorit ovat kuitenkin pitkään käyttäneet heterogeenisia ydinarkkitehtuureja. Tässä suunnittelussa on kaksi tai jopa kolme tasoa suorittimen ydintä. Jokainen taso voi suorittaa samoja prosesseja, mutta jotkin niistä on suunniteltu tehokkuutta ja toiset suorituskykyä varten. Tämä on osoittautunut akkukäyttöisten laitteiden menestyksen reseptiksi, koska monet tehtävät voivat käyttää hitaampaa enemmän energiatehokkaat ytimet, pidentävät akun käyttöikää, kun taas korkean prioriteetin prosesseja voidaan silti ajaa suurella nopeudella tarvittaessa.

Pöytäkoneen CPU-arkkitehtuuri on myös siirtymässä heterogeenisen ydinsuunnittelun suuntaan. Intelin Alder Lake 12th sukupolven Core CPU -sarja on ensimmäinen työpöytäsuoritin, joka tekee tämän. Tässä tapauksessa pienempien ytimien tärkein tekijä ei välttämättä ole tehon hyötysuhde, vaan lämpötehokkuus, vaikka ne ovatkin saman kolikon kaksi puolta. Useiden tehokkaiden ytimien käyttö tarjoaa korkean suorituskyvyn, kun taas monet tehokkaat ytimet voivat käsitellä taustatehtäviä vaikuttamatta liikaa pääytimiin.

Johtopäätös

Moniytiminen CPU on prosessori, jossa on useita prosessointiytimiä yhdessä paketissa, usein, vaikkakaan ei yksinomaan samassa suulakkeessa. Moniytimiset prosessorit eivät tarjoa paljoakaan suoria suorituskyvyn lisäyksiä monille ohjelmille, mutta lisäämällä ytimien määrää yksisäikeisten ohjelmien ei tarvitse kilpailla yhtä paljon suorittimen ajasta. Jotkin ohjelmat voivat hyödyntää täysimääräisesti useita ytimiä ja hyödyntää suoraan niin montaa kuin on saatavilla. Tämä parantaa suorituskykyä merkittävästi, vaikka lämpö- ja tehorajoitusten vuoksi tämä tehostus ei välttämättä ole suoraa suorituskyvyn kaksinkertaistamista ytimien kaksinkertaistuessa.