Samanaikainen moniajo

Intel Pentium 4 oli ensimmäinen nykyaikainen pöytäprosessori, joka toteutti samanaikaisen moniajon, alkaen vuonna 2002 julkaistusta 3,06 GHz:n mallista, ja sittemmin se otettiin käyttöön useissa niiden prosessoreissa. Intel kutsuu toiminnallisuutta Hyper-Threading Technologyksi, ja se tarjoaa perus kahden säikeen SMT-moottorin. Intel väittää, että nopeus paranee jopa 30 prosenttia verrattuna muuten samanlaiseen Pentium 4:ään ilman SMT:tä. Suorituskyvyn paraneminen on hyvin riippuvainen sovelluksesta; kun käynnissä on kaksi ohjelmaa, jotka vaativat prosessorin täyden huomion, voi kuitenkin tuntua siltä, että toinen tai molemmat ohjelmat hidastuvat hieman, kun Hyper-threading on käytössä. Tämä johtuu siitä, että Pentium 4:n toistojärjestelmä sitoo arvokkaita suoritusresursseja, lisää kilpailua resursseista, kuten kaistanleveydestä, välimuisteista, TLB:stä, puskurimerkintöjen uudelleenjärjestämisestä ja prosessorin resurssien tasaamisesta kahden ohjelman välillä, mikä lisää vaihtelevasti suoritusaikaa. Pentium 4 Prescott -ydin sai uusintajonon, mikä vähentää uusintajärjestelmän tarvitsemaa suoritusaikaa. Tämä riittää voittamaan tuon suorituskykyhaitan kokonaan.

Uudemmat Imagination Technologiesin MIPS-arkkitehtuurimallit sisältävät SMT-järjestelmän, joka tunnetaan nimellä ”MIPS MT”. MIPS MT tarjoaa sekä raskaita virtuaalisia prosessointielementtejä että kevyempiä laitteistomikrosäikeitä. Cupertinolainen startup-yritys RMI on ensimmäinen MIPS-toimittaja, joka tarjoaa prosessori-SOC:n, joka perustuu kahdeksaan ytimeen, joista kukin käyttää neljää säiettä. Säikeitä voidaan ajaa hienojakoisessa tilassa, jossa joka syklissä voidaan suorittaa eri säie. Säikeille voidaan myös määrittää prioriteetit. Imagination Technologiesin MIPS-suorittimissa on kaksi SMT-säiettä per ydin.

IBM:n Blue Gene/Q:ssa on nelisuuntainen SMT.

Toukokuussa 2004 julkistettu IBM:n POWER5 on saatavana joko kaksiytimisenä kaksisirumoduulina (DCM) tai neli- tai kahdeksanytimisenä monisirumoduulina (MCM), jossa kussakin ytimessä on kahden säikeen SMT-moottori. IBM:n toteutus on edellistä hienostuneempi, 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 suorittaa paremmin sellaisia työtehtäviä, joissa SMT-prosessori ei lisäisi suorituskykyä. Tämä on IBM:n toinen yleisesti saatavilla olevan laitteiston monisäikeistyksen toteutus. Vuonna 2010 IBM julkaisi POWER7-prosessoriin perustuvia järjestelmiä, joissa oli kahdeksan ydintä, joissa jokaisessa oli neljä samanaikaista älykästä säiettä. Tämä vaihtaa säikeistystilaa yhden säikeen, kahden säikeen tai neljän säikeen välillä sen mukaan, kuinka monta prosessisäiettä kulloinkin on ajastettu. Näin optimoidaan ytimen käyttö mahdollisimman lyhyen vasteajan tai maksimaalisen suoritustehon saavuttamiseksi. IBM POWER8:ssa on 8 älykästä samanaikaista säiettä ydintä kohti (SMT8).

IBM z13:ssa on kaksi säiettä ydintä kohti (SMT-2).

Vaikka monet ovat ilmoittaneet, että Sun Microsystemsin UltraSPARC T1 (joka tunnettiin nimellä ”Niagara” 14. marraskuuta 2005 tapahtuneeseen julkaisuunsa asti) ja nykyään lakkautettu prosessori koodinimeltään ”Rock” (joka alun perin julkistettiin vuonna 2005, mutta joka monien viivästysten jälkeen peruttiin vuonna 2010) ovat SPARC-toteutuksia, joissa keskitytään lähes kokonaan SMT- ja CMP-tekniikoiden hyödyntämiseen, Niagara ei todellisuudessa käytä SMT:tä. Sun kutsuu näitä yhdistettyjä lähestymistapoja nimellä ”CMT” ja kokonaiskonseptia nimellä ”Throughput Computing”. Niagarassa on kahdeksan ydintä, mutta jokaisessa ytimessä on vain yksi putki, joten se käyttää itse asiassa hienojakoista monisäikeistystä. Toisin kuin SMT:ssä, jossa useiden säikeiden antamat ohjeet jakavat jakoikkunan jokaisessa syklissä, prosessori käyttää round robin -käytäntöä antaessaan ohjeita seuraavasta aktiivisesta säikeestä jokaisessa syklissä. Tämä tekee siitä enemmän tynnyriprosessorin kaltaisen. Sun Microsystemsin Rock-prosessori on erilainen, sillä siinä on monimutkaisempia ytimiä, joissa on useampi kuin yksi putkijohto.

Oracle Corporationin SPARC T3:ssa on kahdeksan hienojakoista säiettä ydintä kohti, SPARC T4:ssä, SPARC T5:ssä, SPARC M5:ssä, M6:ssa ja M7:ssä on kahdeksan hienojakoista säiettä ydintä kohti, joista kahta voidaan suorittaa samanaikaisesti.

Fujitsu SPARC64 VI:ssa on karkearakeinen vertikaalinen monisäikeistäminen (VMT) SPARC VII:ssä ja uudemmissa on kaksisuuntainen SMT.

Intel Itanium Montecito käytti karkearakeista monisäikeistämistä ja Tukwila ja uudemmat käyttivät kaksisuuntaista SMT:tä (kaksoistoiminnolla).

Intel Xeon Phi:ssä on 4-tie SMT (aikamultipleksatulla monilukuistamisella) laitteistopohjaisilla säikeillä, joita ei voi poistaa käytöstä toisin kuin tavallista Hyperthreadingia. Vuonna 2008 julkaistu Intel Atom on ensimmäinen Intelin tuote, jossa on 2-suuntainen SMT (jota markkinoidaan nimellä Hyper-Threading) tukematta käskyjen uudelleenjärjestämistä, spekulatiivista suoritusta tai rekisterien uudelleennimeämistä. Intel otti Hyper-Threadingin uudelleen käyttöön Nehalem-mikroarkkitehtuurin myötä sen jälkeen, kun se ei ollut käytössä Core-mikroarkkitehtuurissa.

AMD Bulldozer -mikroarkkitehtuurin FlexFPU ja jaettu L2-välimuisti ovat monisäikeistettyjä, mutta moduulin kokonaislukuytimet ovat yksisäikeistettyjä, joten kyseessä on vain osittainen SMT-toteutus.

AMD Zen -mikroarkkitehtuurissa on kaksisuuntainen SMT.

VISC-arkkitehtuuri käyttää virtuaalista ohjelmistokerrosta (käännöskerrosta) lähettämään yksittäisen käskysäikeen globaaliin etupäähän (Global Front End), joka jakaa käskyt virtuaalisiin laitteistosäikeisiin (hardware threadlets), jotka sitten lähetetään erillisille virtuaalisille ytimille. Nämä virtuaaliytimet voivat sitten lähettää ne minkä tahansa fyysisen ytimen käytettävissä oleviin resursseihin. Useat virtuaaliytimet voivat työntää säikeitä yhden fyysisen ytimen uudelleenjärjestämispuskuriin, joka voi jakaa osittaisia ohjeita ja tietoja useista säikeistä yhtä aikaa suoritusporttien kautta. Kukin virtuaaliydin pitää kirjaa suhteellisen ulostulon sijainnista. Tämä monisäikeistyksen muoto voi lisätä yhden säikeen suorituskykyä, kun yksi säie voi käyttää kaikkia suorittimen resursseja. resurssien jakaminen on dynaamista lähes yhden syklin latenssitasolla (1-4 sykliä riippuen jakamisen muutoksesta yksittäisen sovelluksen tarpeiden mukaan. Jos siis kaksi virtuaalista ydintä kilpailee resursseista, käytössä on asianmukaiset algoritmit, joilla määritetään, mitkä resurssit jaetaan mihin.