Egyidejű többszálú futás

Az Intel Pentium 4 volt az első modern asztali processzor, amely a 2002-ben megjelent 3,06 GHz-es modelltől kezdve, és azóta számos processzorában bevezette az egyidejű többszálú futást. Az Intel a funkciót Hyper-Threading Technology-nak nevezi, és egy alapvető két szálas SMT-motort biztosít. Az Intel azt állítja, hogy akár 30%-os sebességnövekedés érhető el az egyébként azonos, SMT nélküli Pentium 4-hez képest. A tapasztalt teljesítménynövekedés erősen alkalmazásfüggő; azonban két, a processzor teljes figyelmét igénylő program futtatásakor valóban úgy tűnhet, hogy a Hyper-threading bekapcsolása esetén az egyik vagy mindkét program kissé lelassul. Ez annak köszönhető, hogy a Pentium 4 újrajátszási rendszere értékes végrehajtási erőforrásokat köt le, növeli a versenyt az erőforrásokért, például a sávszélességért, a gyorsítótárakért, a TLB-kért, az újrarendező pufferbejegyzésekért, kiegyenlíti a processzor erőforrásait a két program között, ami változó mennyiségű végrehajtási időt ad hozzá. A Pentium 4 Prescott mag kapott egy visszajátszási várólistát, ami csökkenti a visszajátszási rendszerhez szükséges végrehajtási időt. Ez elegendő ahhoz, hogy ezt a teljesítménycsökkenést teljesen kiküszöbölje.

Az Imagination Technologies MIPS architektúra legújabb tervei tartalmaznak egy “MIPS MT” néven ismert SMT rendszert. Az MIPS MT mind a nagy súlyú virtuális feldolgozóelemeket, mind a kisebb súlyú hardveres mikroszálakat biztosítja. A cupertinói székhelyű RMI az első MIPS-gyártó, amely nyolc magon alapuló processzor SOC-ot kínál, amelyek mindegyike négy szálat futtat. A szálak finomszemcsés üzemmódban is futtathatók, ahol minden ciklusban más-más szál hajtható végre. A szálakhoz prioritások is rendelhetők. Az Imagination Technologies MIPS CPU-iban magonként két SMT szál van.

Az IBM Blue Gene/Q négyutas SMT-vel rendelkezik.

A 2004 májusában bejelentett IBM POWER5 kétmagos, kétchipes modul (DCM), illetve négy- vagy nyolcmagos, többchipes modul (MCM) formájában készül, és mindegyik mag két szálas SMT-motort tartalmaz. Az IBM megvalósítása kifinomultabb, mint az előzőeké, mivel a különböző szálakhoz eltérő prioritást tud rendelni, finomabb a finomhangolás, és az SMT-motor dinamikusan ki- és bekapcsolható, hogy jobban lehessen végrehajtani azokat a munkaterheket, ahol egy SMT processzor nem növelné a teljesítményt. Ez az IBM második megvalósítása az általánosan elérhető hardveres többszálú feldolgozásnak. Az IBM 2010-ben a POWER7 processzoron alapuló rendszereket adott ki nyolc maggal, amelyek mindegyikében négy szimultán intelligens szál található. Ez egy szál, két szál vagy négy szál között váltogatja a szálkezelési módot az éppen ütemezett folyamatszálak számától függően. Ez optimalizálja a mag használatát a minimális válaszidő vagy a maximális áteresztőképesség érdekében. Az IBM POWER8 magonként 8 intelligens egyidejű szálat tartalmaz (SMT8).

Az IBM z13 magonként két szálat tartalmaz (SMT-2).

Noha sokan arról számoltak be, hogy a Sun Microsystems UltraSPARC T1 (2005. november 14-i megjelenéséig “Niagara” néven ismert) és a mára már megszűnt “Rock” kódnevű processzor (eredetileg 2005-ben jelentették be, de sok csúszás után 2010-ben törölték) a SPARC szinte teljes egészében az SMT és CMP technikák kihasználására összpontosító implementációi, a Niagara valójában nem használ SMT-t. A Sun ezeket a kombinált megközelítéseket “CMT”-nek, az átfogó koncepciót pedig “Throughput Computing”-nak nevezi. A Niagara nyolc maggal rendelkezik, de minden magnak csak egy pipeline-ja van, így valójában finom szemcsés többszálú feldolgozást használ. Az SMT-vel ellentétben, ahol több szál utasításai minden ciklusban osztoznak a kiadási ablakon, a processzor körkörös kiadási politikát alkalmaz, hogy minden ciklusban a következő aktív szál utasításait adja ki. Ezáltal jobban hasonlít egy hordós processzorhoz. A Sun Microsystems Rock processzora ettől eltérő, összetettebb magokkal rendelkezik, amelyek egynél több csővezetékkel rendelkeznek.

Az Oracle Corporation SPARC T3 magonként nyolc, a SPARC T4, SPARC T5, SPARC M5, M6 és M7 magonként nyolc finom szemcsés szálzal rendelkezik, amelyek közül kettőt lehet egyszerre végrehajtani.

A Fujitsu SPARC64 VI durva szemcsés vertikális többszálúsággal (VMT), a SPARC VII és újabbak kétutas SMT-vel rendelkeznek.

Az Intel Itanium Montecito durva szemcsés többszálúságot használt, a Tukwila és újabbak pedig kétutas SMT-t (kettős tartományú többszálúsággal).

Az Intel Xeon Phi 4-utas SMT-t használ (időmultiplexelt többszálúsággal) hardveralapú szálakkal, amelyeket nem lehet kikapcsolni, ellentétben a hagyományos Hyperthreadinggel. A 2008-ban megjelent Intel Atom az első Intel termék, amely 2-utas SMT-vel (Hyper-Threading néven forgalmazott) rendelkezik, anélkül, hogy támogatná az utasítások átrendezését, a spekulatív végrehajtást vagy a regiszterek átnevezését. Az Intel a Hyper-Threadinget a Nehalem mikroarchitektúrával vezette be újra, miután a Core mikroarchitektúrán nem volt.

AMD Bulldozer mikroarchitektúra FlexFPU és Shared L2 cache többszálú, de a modulban lévő integer magok egyszálúak, így csak részleges SMT implementációról van szó.

AMD Zen mikroarchitektúra 2-utas SMT-vel rendelkezik.

VISC architektúra a Virtual Software Layer (fordítási réteg) segítségével egyetlen utasításszálat küld a Global Front Endnek, amely az utasításokat virtuális hardveres szálakra osztja, amelyeket aztán különálló virtuális magokba küld. Ezek a virtuális magok aztán elküldhetik őket a fizikai magok bármelyikének rendelkezésre álló erőforrásához. Több virtuális mag is tolhat threadleteket egyetlen fizikai mag átrendezési pufferébe, amely egyszerre több threadletből származó részutasításokat és adatokat oszthat fel a végrehajtási portokon keresztül. Minden virtuális mag nyomon követi a relatív kimenet pozícióját. A többszálúságnak ez a formája növelheti az egyszálas teljesítményt, mivel lehetővé teszi, hogy egyetlen szál a CPU összes erőforrását használja. az erőforrások kiosztása dinamikus, közel egyciklusos késleltetési szinten történik (1-4 ciklus a kiosztás változásától függően, az egyedi alkalmazási igények függvényében. Ezért, ha két virtuális mag verseng az erőforrásokért, megfelelő algoritmusok állnak rendelkezésre annak meghatározására, hogy melyik erőforrás hova kerüljön kiosztásra.