Jednoczesna wielowątkowość

Intel Pentium 4 był pierwszym nowoczesnym procesorem do komputerów stacjonarnych, który zaimplementował jednoczesną wielowątkowość, począwszy od modelu 3,06 GHz wydanego w 2002 r., a od tego czasu wprowadzonego do wielu ich procesorów. Intel nazywa tę funkcjonalność Hyper-Threading Technology, i zapewnia podstawowy dwuwątkowy silnik SMT. Intel twierdzi, że do 30% wzrost prędkości w porównaniu do identycznego, nie SMT Pentium 4. Widoczny wzrost wydajności jest bardzo zależny od aplikacji; jednakże, gdy uruchomione są dwa programy, które wymagają pełnej uwagi procesora, może się wydawać, że jeden lub oba programy lekko zwalniają, gdy Hyper-Threading jest włączony. Jest to spowodowane tym, że system replay Pentium 4 wiąże cenne zasoby wykonawcze, zwiększając rywalizację o zasoby takie jak przepustowość, cache, TLBs, wpisy w buforze re-order, wyrównując zasoby procesora pomiędzy dwoma programami, co dodaje różną ilość czasu wykonania. Rdzeń Pentium 4 Prescott zyskał kolejkę powtórek, która skraca czas wykonania potrzebny dla systemu powtórek. Jest to wystarczające, aby całkowicie zniwelować to uderzenie wydajności.

Najnowsze projekty architektury MIPS firmy Imagination Technologies zawierają system SMT znany jako „MIPS MT”. MIPS MT przewiduje zarówno ciężkie wirtualne elementy przetwarzające, jak i lżejsze mikrowątki sprzętowe. RMI, startup z Cupertino, jest pierwszym dostawcą MIPS, który oferuje procesor SOC oparty na ośmiu rdzeniach, z których każdy obsługuje cztery wątki. Wątki mogą być uruchamiane w trybie fine-grain, gdzie w każdym cyklu może być wykonywany inny wątek. Wątkom można również przypisać priorytety. Procesory MIPS firmy Imagination Technologies mają dwa wątki SMT na rdzeń.

Blue Gene/Q firmy IBM ma 4-kierunkowy SMT.

IBM POWER5, ogłoszony w maju 2004, jest dostępny jako dwurdzeniowy moduł dwuprocesorowy (DCM) lub czterordzeniowy lub ośmiordzeniowy moduł wieloprocesorowy (MCM), z każdym rdzeniem zawierającym dwuwątkowy silnik SMT. Implementacja IBM jest bardziej zaawansowana niż poprzednie, ponieważ może przypisywać różny priorytet poszczególnym wątkom, jest bardziej drobnoziarnista, a silnik SMT może być dynamicznie włączany i wyłączany, aby lepiej wykonywać te obciążenia, w których procesor SMT nie zwiększyłby wydajności. Jest to druga implementacja ogólnie dostępnej sprzętowej wielowątkowości firmy IBM. W 2010 r. IBM wypuścił systemy oparte na procesorze POWER7 z ośmioma rdzeniami, z których każdy ma cztery równoczesne inteligentne wątki (Simultaneous Intelligent Threads). Powoduje to przełączanie trybu wątkowania pomiędzy jednym, dwoma lub czterema wątkami w zależności od liczby zaplanowanych w danym momencie wątków procesowych. Optymalizuje to wykorzystanie rdzenia pod kątem minimalnego czasu odpowiedzi lub maksymalnej przepustowości. IBM POWER8 ma 8 inteligentnych jednoczesnych wątków na rdzeń (SMT8).

IBM z13 ma dwa wątki na rdzeń (SMT-2).

Pomimo, że wiele osób donosiło, że UltraSPARC T1 firmy Sun Microsystems (znany jako „Niagara” do czasu wydania 14 listopada 2005 r.) i nieistniejący już procesor o nazwie kodowej „Rock” (pierwotnie ogłoszony w 2005 r., ale po wielu opóźnieniach anulowany w 2010 r.) są implementacjami SPARC skupiającymi się prawie całkowicie na wykorzystaniu technik SMT i CMP, Niagara w rzeczywistości nie wykorzystuje SMT. Sun określa te połączone podejścia jako „CMT”, a ogólną koncepcję jako „Throughput Computing”. Niagara posiada osiem rdzeni, ale każdy rdzeń posiada tylko jeden potok, więc w rzeczywistości wykorzystuje wielowątkowość drobnoziarnistą. W przeciwieństwie do SMT, gdzie instrukcje z wielu wątków dzielą okno wydawania w każdym cyklu, procesor używa polityki round robin do wydawania instrukcji z następnego aktywnego wątku w każdym cyklu. To czyni go bardziej podobnym do procesora beczkowego. Procesor Rock firmy Sun Microsystems jest inny, ma bardziej złożone rdzenie, które mają więcej niż jeden potok.

Korporacja Oracle SPARC T3 ma osiem drobnoziarnistych wątków na rdzeń, SPARC T4, SPARC T5, SPARC M5, M6 i M7 mają osiem drobnoziarnistych wątków na rdzeń, z których dwa mogą być wykonywane jednocześnie.

Fujitsu SPARC64 VI ma gruboziarnistą wielowątkowość pionową (VMT) SPARC VII i nowsze mają dwukierunkową SMT.

Intel Itanium Montecito używał wielowątkowości gruboziarnistej, a Tukwila i nowsze używają dwukierunkowej SMT (z wielowątkowością dual-domain).

Intel Xeon Phi ma 4-kierunkowe SMT (z wielowątkowością multipleksowaną czasowo) z wątkami sprzętowymi, które nie mogą być wyłączone w przeciwieństwie do zwykłego Hyperthreading. Intel Atom, wydany w 2008 roku, jest pierwszym produktem Intela, który posiada 2-way SMT (sprzedawany jako Hyper-Threading) bez wsparcia dla zmiany kolejności instrukcji, spekulacyjnego wykonywania lub zmiany nazw rejestrów. Intel ponownie wprowadził Hyper-Threading z mikroarchitekturą Nehalem, po jej braku na mikroarchitekturze Core.

AMD Bulldozer mikroarchitektura FlexFPU i Shared L2 cache są wielowątkowe, ale rdzenie integer w module są jednowątkowe, więc jest to tylko częściowa implementacja SMT.

Mikroarchitektura AMD Zen ma dwukierunkowe SMT.

Architektura VISC wykorzystuje wirtualną warstwę oprogramowania (warstwa translacji) do wysyłania pojedynczego wątku instrukcji do Global Front End, który dzieli instrukcje na wirtualne wątki sprzętowe, które są następnie wysyłane do oddzielnych rdzeni wirtualnych. Te wirtualne rdzenie mogą następnie wysyłać je do dostępnych zasobów na dowolnym z fizycznych rdzeni. Wiele rdzeni wirtualnych może przesuwać wątki do bufora zmiany kolejności pojedynczego rdzenia fizycznego, który może rozdzielać częściowe instrukcje i dane z wielu wątków przez porty wykonawcze w tym samym czasie. Każdy rdzeń wirtualny śledzi pozycję względnego wyjścia. Ta forma wielowątkowości może zwiększyć wydajność pojedynczego wątku, umożliwiając pojedynczemu wątkowi wykorzystanie wszystkich zasobów procesora.alokacja zasobów jest dynamiczna na poziomie opóźnień bliskim pojedynczego cyklu (1-4 cykle w zależności od zmiany alokacji w zależności od indywidualnych potrzeb aplikacji. Dlatego, jeśli dwa wirtualne rdzenie konkurują o zasoby, istnieją odpowiednie algorytmy określające, jakie zasoby mają być przydzielone gdzie.