SMT (tietotekniikka)

Samanaikainen monisäikeistäminen (Simultaneous multithreading, lyhenne SMT) on tekniikka, jolla parannetaan superskalaaristen suorittimien kokonaistehokkuutta laitteiston monisäikeistämisen avulla. SMT mahdollistaa useiden itsenäisten suoritussäikeiden käytön, jotta nykyaikaisten tietokonearkkitehtuurien tarjoamia resursseja voidaan hyödyntää paremmin.

Monisäikeistäminen on samankaltainen käsite kuin moniajo, mutta se on toteutettu säikeiden suoritustasolla nykyaikaisissa superskaalarisissa prosessoreissa.

Prosessorisuunnittelussa on kaksi tapaa lisätä piirin sisäistä rinnakkaisuutta pienemmillä resurssivaatimuksilla:

  1. Superskalaarinen tekniikka: jolla pyritään lisäämään käskytason rinnakkaisuutta (Instruction level parallelism, ILP) suorittamalla useita käskyjä samaan aikaan (termi: samanaikaisesti); lähettämällä käskyjä "samanaikaisesti" (termi: instruction dispatching) useisiin prosessorin sisälle rakennettuihin redundanteihin suoritusyksiköihin.
  2. Sirutasoinen monisäikeistystekniikka (CMT): käytetään säikeistystason rinnakkaistekniikkaa (TLP), jotta useiden säikeiden käskyjä voidaan suorittaa samanaikaisesti yhdellä prosessorisirulla.

On monia tapoja tukea useampaa kuin yhtä säiettä piirin sisällä, nimittäin:

  1. Interleaved multithreading (IMT) : Useiden ohjeiden antaminen lomittain eri säikeistä, jota kutsutaan myös temporaaliseksi monisäikeistykseksi. Se voidaan jakaa edelleen hienojakoiseen monilukuistamiseen (fine-grain multithreading) tai karkeakokoiseen monilukuistamiseen (coarse-grain multithreading) lomitettujen kysymysten taajuuden mukaan. Hienojakoinen monilukuistaminen antaa ohjeita eri säikeille jokaisen syklin jälkeen, kun taas karkearakeinen monilukuistaminen siirtyy antamaan ohjeita toisesta säikeestä vain silloin, kun nykyinen suorittava säie aiheuttaa joitakin pitkän viiveen tapahtumia (kuten sivuvika jne.). Karkearakeinen monisäikeistäminen on yleisempää, kun säikeiden välinen kontekstinvaihto on vähäisempää. Prosessoreissa, joissa on yksi putkisto ydintä kohti, lomitettu monisäikeistäminen on ainoa mahdollinen tapa, koska se voi antaa enintään yhden käskyn sykliä kohti.
  2. Samanaikainen monisäikeistäminen (SMT): Annetaan useita ohjeita useista säikeistä yhdessä syklissä. Prosessorin on oltava superskalaarinen, jotta se voi tehdä näin.
  3. Sirutasoinen moniprosessointi (CMP tai moniydinprosessori): Yhdistää kaksi tai useampia superskalaarisia prosessoreita yhdelle sirulle, joista kukin suorittaa säikeitä itsenäisesti.
  4. Mikä tahansa IMT/SMT/CMP-yhdistelmä

Keskeinen tekijä niiden erottamiseksi toisistaan on tarkastella, kuinka monta ohjetta prosessori voi antaa yhdessä syklissä ja kuinka monesta säikeestä ohjeet tulevat.

Esimerkkejä nykyaikaisista SMT-suorittimista

  1. Intel Pentium 4 oli ensimmäinen nykyaikainen pöytäprosessori, joka toteutti samanaikaisen monisäikeistyksen vuonna 2002 julkaistussa 3,06 GHz:n mallissa, ja se on sittemmin otettu käyttöön useissa prosessoreissa. Intel kutsuu toimintoa Hyper-Threading Technology (HTT) -tekniikaksi, ja se tarjoaa kahden säikeen perus-SMT-moottorin. Intel väittää jopa 30 prosentin nopeusparannusta verrattuna muuten samanlaiseen Pentium 4:ään ilman SMT:tä.
  2. Uusimmat MIPS-arkkitehtuurin mallit sisältävät SMT-järjestelmän, joka tunnetaan nimellä "MIPS MT".
  3. Toukokuussa 2004 julkistettu IBM POWER5 on saatavana joko kaksiytimisenä DCM:nä tai neliytimisenä tai kahdeksanytimisenä MCM:nä, jossa kussakin ytimessä on kahden säikeen SMT-moottori. IBM:n toteutus on edellistä kehittyneempi, koska se voi määrittää eri säikeille eri prioriteetit, se on hienojakoisempi ja SMT-moottori voidaan kytkeä dynaamisesti päälle ja pois päältä, jotta voidaan paremmin suorittaa sellaisia työtehtäviä, joissa SMT-prosessori ei parantaisi suorituskykyä. Tämä on IBM:n toinen yleisesti saatavilla olevan laitteiston monisäikeistyksen toteutus.
  4. Vuonna 2008 julkaistu Intel Atom on ensimmäinen Intelin tuote, jossa on SMT (jota markkinoidaan nimellä Hyper-threading) ilman tukea käskyjen uudelleenjärjestämiselle, spekulatiiviselle suoritukselle tai rekisterien uudelleennimeämiselle.

Aiheeseen liittyvät sivut

  • Kierre (tietojenkäsittelytiede)
  • Rinnakkaislaskenta
  • Käskytason rinnakkaisuus
  • Moniydinprosessorit

Kysymyksiä ja vastauksia

K: Mitä on samanaikainen monisäikeistäminen?


V: Samanaikainen monisäikeistäminen (SMT, Simultaneous Multithreading) on tekniikka, jolla parannetaan superskalaaristen suorittimien kokonaistehokkuutta laitteiston monisäikeistämisen avulla. Se mahdollistaa useiden itsenäisten suoritussäikeiden käytön nykyaikaisten tietokonearkkitehtuurien tarjoamien resurssien paremman hyödyntämisen.

Kysymys: Miten SMT vertautuu monitehtävään?


V: Monisäikeistäminen on käsitteeltään samanlainen kuin moniajo, mutta se toteutetaan nykyaikaisissa superskaalarisissa prosessoreissa suoritussäikeiden tasolla, kun taas moniajo toteutetaan prosessitasolla.

K: Mitkä ovat kaksi tapaa lisätä piirin sisäistä rinnakkaisuutta?


V: Kaksi tapaa lisätä piirin sisäistä rinnakkaisuutta ovat superskalaaritekniikka ja sirutason monisäikeistäminen (CMT).

K: Mitä erilaisia sirutason monisäikeistystekniikoita on?


V: Sirutason monilukuistamisen eri tyyppejä ovat Interleaved Multithreading (IMT), Fine-Grain Multithreading, Coarse Grain Multithreadin ja Simultaneous Multithreadin (SMT).

K: Miten voit erottaa IMT/SMT/CMP:n toisistaan?


V: Keskeinen tekijä IMT/SMT/CMP:n erottamisessa toisistaan on tarkastella, kuinka monta ohjetta prosessori voi antaa yhdessä syklissä ja kuinka monesta säikeestä ohjeet tulevat.

K: Minkä tyyppistä prosessoria on käytettävä SMT:tä varten?


V: SMT:tä varten on käytettävä superskalaarista prosessoria.

K: Minkä tyyppistä prosessoria käytetään Chip Level MultiProcessing -prosessoinnissa?


V: Chip Level MultiProcessing käyttää moniydinprosessoreita, jotka integroivat kaksi tai useampia superskalaarisia prosessoreita yhdelle piirille, joista kukin suorittaa säikeitä itsenäisesti.

AlegsaOnline.com - 2020 / 2023 - License CC3