Heterogeeninen moniydin arkkitehtuuri

Rinnakkaisprosessoinnissa käytettävän prosessorin moniydin arkkitehtuuri voi olla rakenteeltaan homogeeninen tai heterogeeninen. Homogeenisessa arkkitehtuurissa kaikki prosessorin ytimet ovat arkkitehtuuriltaan identtisiä keskenään, kun puolestaan heterogeenisessa erilaisia ytimiä on vähintään kahdenlaisia. Erilaisen arkkitehtuurin omaavat ytimet voivat olla erilaisiin tehtäviin erikoistuneita prosessoreita, osa on esimerkiksi ns. yleisprosessoreita (CPU) ja osa grafiikka prosessoreita (GPU) tai digitaalisia signaaliprosessoreita (DSP). Vaihtoehtoisesti ytimet voivat jakaa samanlaisen arkkitehtuurin (ISA, instruction set architecture), mutta ydinten tehossa tai energiankulutuksessa on eroja. Heterogeenisella arkkitehtuurilla onkin näin mahdollista saavuttaa rinnakkaisprosessoinnissa homogeeniseen moniydin arkkitehtuuriin verrattuna prosessorin suunnitellusta tehtävästä riippuen esimerkiksi parempi laskentatehokkuus tai energiankulutus.[1]

CPU/GPU moniydin arkkitehtuuri

muokkaa

Suosittu vaihtoehto heterogeenisessä arkkitehtuurissa on ollut sisällyttää samalle mikropiirille ns. yleisprosessoreita (CPU) ja grafiikkaan erikoistuneita prosessoreita (GPU). Grafiikka prosessorit sopivat hyvin laskentaan, jossa käsitellään suuria määriä vektori ja matriisi dataa, kuten grafiikan käsittelyyn, pelaamiseen ja tieteelliseen laskentaan.[1] Vaikka erillisinä komponentteina CPU:sta olevat GPU:t ovat tehokkaita, ne kärsivät CPU:lta GPU:lle datan siirtoon kuluvasta ajasta. Kun samalle mikropiirille sisällytetään sekä CPU että GPU, ne voivat jakaa yhteisiä muistialueita ja tällöin vältytään myös datan kopiointiin kuluvasta ajasta muistialueiden välillä.[2]

CPU:n ja GPU:n yhdistelmäpiiristä on esimerkkinä AMD:n A10 5800K mikropiiri, jossa on yhdistelmä grafiikka prosessoreita ja x86-prosessoreita. Mikropiirillä on neljä yleisydintä (CPU) ja SIMD-prosessori, joka koostuu grafiikka ytimistä. Yleisprosessorissa kellotaajuus on 3,8 GHz, ydinten määrä 4 ja rinnakkaisia liukulukuoperaatioita voidaan suorittaa 8/ydin/sekunti. Vastaavasti grafiikka prosessorissa kellotaajuus on 0,8 GHz, ytimiä 384 ja rinnakkaisia liukulukuoperaatioita 2/ydin/sekunti. Prosessorien kokonaislaskentatehoksi saadaan yleisprosessoreille 121,6 GFLOPS (miljardia liukulukuoperaatiota/sekunti) ja grafiikka prosessoreille 614,4 GFLOPS.[1]

CPU/DSP moniydin arkkitehtuuri

muokkaa

Toinen tyypillinen heterogeenisen moniydin arkkitehtuurin omaava mikropiiri on sellainen, jossa on yleisprosessoreita (CPU) ja digitaalisia signaaliprosessoreita (DSP). Digitaalisia signaaliprosessoreita käytetään usein tehokasta laskentaa vaativissa digitaalisen signaalin käsittely tehtävissä, joissa sen nopeaa kerto- ja yhteenlasku ominaisuutta pystytään hyödyntämään. DSP prosessoreita hyödynnetään lukuisissa laitteissa, kuten kännyköissä, TV:ssä ja modeemeissa.[1]

Esimerkkinä DSP mikropiiristä on Texax Instruments K2H, jota voidaan käyttää esimerkiksi teollisuus automatisoinnissa tai videovalvonnassa. Kyseen omaisella mikropiirillä on ARM:n neljä ytiminen Cortex-A15 prosessori ja kahdeksan ytiminen digitaalisen signaalinprosessori TI C66x. TI:n moniydin prosessorin laskentatehoksi voidaan ilmoittaa 352 GMACS tai 198 GFLOPS.[1]

Epäsymmetrinen moniydin arkkitehtuuri

muokkaa

Epäsymmetrisessä moniydin arkkitehtuurissa prosessorin ydinten tehossa tai energiankulutuksessa on eroja. Kaikki ytimet kuitenkin jakavat samanlaisen arkkitehtuurin (ISA). Etuna tässä on se, että tällöin samaa ohjelmaa voidaan ajaa kaikilla prosessorin eri ytimillä ilman ylimääräistä ohjelmointia. Kuitenkin ohjelmien tai ohjelmien eri osien optimaalisimman tehon- ja energiankulutuksen kannalta prosessorin eri ydinten käyttö täytyy järjestelmässä olla määriteltynä.[2]

Staattisessa epäsymmetrisessä moniydin arkkitehtuurissa eri ydinten tyypit on määritelty jo prosessorin valmistus vaiheessa. Esimerkkinä staattisesta epäsymmetrisestä moniydin arkkitehtuurista on puhelimiin ja tabletteihin suunniteltu big.Little arkkitehtuuri, joka soveltuu hyvin näiden laitteiden vaihtelevaan prosessointi tarpeeseen. Eräässä big.Little prosessorin versiossa on kaksi tehokkaampaa ydintä (A15) ja kaksi heikompaa ydintä (A7). Tehokkaampia ytimiä käytetään raskaampia tehtäviä suoritettaessa, kuten videon katselussa ja pelien pelaamisessa, ja heikompia ytimiä esim. viestittelyssä ja puheluissa. Näiden laitteiden kasvaneesta prosessointi vaatimuksesta huolimatta laitteiden akkujen kapasiteetit eivät ole nousseet yhtä nopeasti, jolloin prosessorin virrankulutuksen minimointi on tarpeeseen.[1] Yksi big.Little arkkitehtuurista saatava hyöty onkin heikompi tehoisten ydinten pienempi energiankulutus. Ja koska ytimiä voidaan pitää juuri sen verran käytössä kuin suorituskykyä sillä hetkellä tarvitaan, niin epäsymmetrisen moniydin arkkitehtuurin tuoma tehon- ja energiankulutuksen suhde säilyy.[2]

Staattinen epäsymmetrinen moniydin arkkitehtuuri tarjoaa selviä etuja homogeeniseen moniydin arkkitehtuuriin nähden, mutta siltikään se ei ole ihanteellisin ratkaisu prosessorin toiminnan kannalta. Tämä johtuu siitä, että prosessorin ydinten rakennetta (ja ominaisuuksia) ei pysty muuttamaan enää niiden valmistuksen jälkeen. Näin ollen prosessori ei voi täysin joustavasti mukautua tarvittavaan työmäärään, vaan käytettävät ytimet ja niiden lukumäärä on kompromissi mikropiiriltä löytyvistä. Dynaamisen epäsymmetrisen moniydin arkkitehtuurin on tarkoitus tulla vaihtoehdoksi mahdollisimman monipuolisesti muuttuvaksi prosessoriksi tarvittavaan työmäärään nähden. Erilaisia dynaamisia arkkitehtuureja on esitetty jo, joiden toiminta idea on pääpiirteissään seuraavanlainen. Prosessori koostuu joukosta homogeenisia ytimiä, joista voidaan luoda prosessorin käytön aikana yhdistelmiä eri kokoisia virtuaalisia prosessoreita. Esimerkiksi 16:sta “perus” ytimestä voidaan luoda tarvittaessa yksi isompi virtuaalinen kuuden ytimen prosessori ja yksi pienempi kahden ytimen virtuaalinen prosessori. Ja vastaavasti virtuaaliset ytimet voidaan purkaa käytön aikana aina tarvittaessa, ja prosessorin toimintaa voidaan muovata uudelleen tarvittavan tehon- ja energiankulutuksen suhteen. Näin ollen yksinkertaisilla prosessorin ydinten uusilla kokoonpanoilla voitaisiin luoda monipuolinen joukko virtuaalisia ytimiä.[2]

Takaisin sivulle Rinnakkaisprosessointi


Lähteet

muokkaa
  1. 1,0 1,1 1,2 1,3 1,4 1,5 Stallings, W. (2016) Computer Organization and Architecture: Designing for Performance. 10th Global edition. New York: Pearson.
  2. 2,0 2,1 2,2 2,3 Mitra, T. (2015) Heterogeneous multi-core architectures. IPSJ Transactions on System LSI Design Methodology, 8, s. 51-62