Mikä on heterogeeninen moniytiminen ja miten se parantaa tehokkuutta

Heterogeeninen moniytiminen

Viime aikoina heterogeeninen tietojenkäsittely on kaikkien laitteistoharrastajien huulilla, koska sillä on vahvat lupaukset tehokkuuden parantaminen nykyaikaisia ​​tietokoneita. Tässä artikkelissa puhumme liittyvästä, mutta paljon tarkemmasta termistä, heterogeeninen moniydin , paradigma, jota yhä useammin käyttää prosessori valmistajat ja että näemme varmasti hyvin usein tulevilla CPU-sukupolvilla.

On tunnustettava, että heterogeeninen moniydin ei ole uusi käsite, kaukana siitä, koska mobiililaitteiden maailmassa se on ollut olemassa jo jonkin aikaa, ja varmasti tulet olemaan tuttu nimellä big.LITTLE alkaen ARM tai Intel Lakefield-arkkitehtuuri, jota hän myös käyttää. Joka tapauksessa tässä artikkelissa aiomme syventyä käsitteeseen, jotta voit ymmärtää kaikki sen sisäiset ja huonot puolet yksinkertaisimmalla tavalla kuin pystymme.

Mikä on heterogeeninen moniydin?

Intel 8700K kuolee

Olemme jo puhuneet muissa tilanteissa tästä järjestelystä prosessorien sisäisessä suunnittelussa, joka koostuu siitä, että kaikki ytimet eivät ole samat, mutta että eri ytimiä on erilaisia ​​klustereita (ryhmiä, yhteenvetona siitä), juuri siksi tätä kutsutaan heterogeeniseksi monisydämeksi. Kuvittele tämän näkökulmasta esimerkiksi Intel Core i7-8700K -prosessori, jolla on kuusi fyysistä ydintä; tässä kuusi ydintä ovat täsmälleen samat, ne työskentelevät samassa tahdissa ja suorittavat määrätyt tehtävät tasaisesti jakamalla työn kaikkien kesken.

Ero "normaalista" prosessorista, jota olemme käyttäneet tietokoneissa toistaiseksi, heterogeenisen moniytimisen prosessorin, on se, että jälkimmäisessä kaikki ytimet eivät ole samat, mutta siinä on useita ytimien ryhmiä Täysin erilainen fyysisen koon (ja sen myötä myös transistoreiden lukumäärän) suhteen toiminnassa nopeus ja kerroin , mutta myös (kuten selitämme seuraavaksi) kuormituksen tasapainottamisen kannalta.

Näin näet esimerkiksi alla olevan kuvan a MediaTek Helio X20 -prosessori, jolla on erittäin vähän kulutusta vaativa neliytiminen Cortex-53 ULP -klusteri, toinen tehokkaampi, mutta erittäin tehokas neliytiminen Cortex-A53 -klusteri ja lopuksi kolmas klusteri, jossa on kaksi korkean suorituskyvyn Cortex-A72-ydintä.

Mediatek helio deca -ydin

Tämä on heterogeeninen moniydinprosessori, ja sitä kutsutaan kirjaimellisesti, koska sillä on useita ytimiä (monisydämisiä), jotka ovat erilaisia ​​(heterogeenisiä) sen sijaan, että ne olisivat homogeenisiä laskelmia, joissa kaikki ytimet ovat samat. Kuten olemme aiemmin sanoneet, kukin näistä klustereista on fyysisesti ja myös empiirisesti nopeuden, kertojan ja jopa jännitteen kannalta erilainen ja voi jopa käyttäytyä ikään kuin ne olisivat eri jalostajia .

Miksi tämä muotoilu on tehokkaampi?

iso.LITTLE-kaavio

Esimerkki heterogeenisestä laskennasta on ARM: n big.LITTLE -arkkitehtuurissa, jossa käytetään heterogeenisiä moniydinsysteemejä, joissa kaikilla on sama ISA, toisin sanoen kaikki ytimet voivat suorittaa samat ohjeet ja suorittaa kaikki heille uskotut tehtävät. . Tämä tarkoittaa, että kun järjestelmä on tyhjäkäynnillä, prosessori voi deaktivoida tehokkaimmat ytimet energian säästämiseksi ja siten vähentää kulutusta ja lämpötilaa parantamalla merkittävästi tehokkuutta.

Aikana, jolloin keskusyksiköltä vaaditaan enemmän virtaa, se aktivoi seuraavan ytimien klusterin siten, että saavutettu suorituskyky on odotettua, ja tarvittaessa se voi aktivoida korkean suorituskyvyn ytimet tarjoamaan täyden potentiaalinsa. Tämä järjestelmä on erittäin tehokas, koska kun prosessoria tarvitaan, se voi toimittaa kaiken tehonsa, mutta koska jokainen klusteri voi toimia itsenäisenä prosessorina, se pystyy ydinryhmien deaktivointi kun niitä ei tarvita. säästää paljon energiaa.

Varmasti monet teistä sanovat, että prosessorissa, jossa on homogeeniset ytimet, ytimet voidaan myös deaktivoida, mutta heterogeenisten prosessoreiden "salaisuus" on, että ytimet ovat alhaiset, riittävät perustehtäviin, jotka eivät vaadi paljon virtaa ja jotka kuluttavat vähemmän kuin yleiskäyttöiset ytimet, jotka ovat tähän mennessä varustaneet prosessorit; Toisin sanoen, kun tietyt ytimet ovat vähäisiä, saavutetaan paljon parempi hyötysuhde.

Toinen heterogeenisen laskennan mahdollistava asia on, että kaikilla ytimillä ei tarvitse olla samaa ISA: ta (käskyjoukko), joten ne voisivat esimerkiksi sisällyttää tekoälyyn tiettyjä ytimiä, jotka tulevat toimintaan vasta, kun heidän on suoritettava tiettyjä tehtäviä, deaktivoituna lopun ajan. Tämä mahdollistaisi prosessorit, joilla on valtava ytimien määrä, kuten näytönohjaimissa tapahtuu, ja että kukin ytintyyppi (tai niiden klusteri) huolehtii tietyistä toiminnoista, joille se on suunniteltu, parantamalla taas tehokkuutta.

Heterogeeninen moniydin ei ole ongelmitta

Pila-suorittimet

Heterogeenisten moniydinprosessorien kanssa PC: n kaltaisella alustalla on kaksi melko spesifistä ongelmaa. Ensimmäinen liittyy Ylikellotus , koska jos kukin ytimyklusteri toimii nopeudella ja eri kertoimella, emme voi ylikellottaa koko prosessoria sellaisenaan, vaan yksinkertaisesti tiettyä ytimien ryhmää (klusteri). Vaikka on totta, että Intel ja AMD eivät ole vielä paljastaneet tätä koskevia teknisiä tietoja. Joka tapauksessa näyttää loogiselta ajatella, että korkeintaan on mahdollista ylikellottaa vain tiettyjä ytimien klustereita eikä kaikkia, koska ne eivät ole homogeenisia.

Toinen ongelma heterogeenisten arkkitehtuurien kanssa on ohjelmistotuki , koska loppujen lopuksi käyttöjärjestelmän on pystyttävä tukemaan tämän tyyppistä toteutusta, jotta työmäärä voidaan osoittaa oikeille ytimille. Jos kyseessä on a Linux ydin, on moduuleja, jotka vastaavat prosessorin kellotaajuuksien hallinnasta tai ytimien aktivoimisesta ja deaktivoinnista vastaavasti, mutta näiden moduulien ongelmana on, että ne toimivat itsenäisesti ja voivat aiheuttaa ristiriitoja niiden välillä, vähentämällä joissakin tapauksissa tehokkuutta tai vähentämällä suorituskykyä toisissa.

Ilmeisesti tämän tyyppisen arkkitehtuurin on määrä tulla suosituksi ennemmin tai myöhemmin (muistetaan Intel Lakefield ja että AMD myös "pelaa" sen kanssa), joten ottaen huomioon, että eniten käytetty käyttöjärjestelmä on Microsoft Windows, meidän on odotettava, että Microsoft "laittaa akut" omaksumaan tämän tyyppisen arkkitehtuurin ja nähdä, miten se lopulta toimii.