Wielowątkowość współbieżna
Simultaneous multithreading, akronim SMT, to technika poprawy ogólnej wydajności procesorów superskalarnych z wielowątkowym sprzętem. SMT pozwala na wykonywanie wielu niezależnych wątków w celu lepszego wykorzystania zasobów dostarczanych przez nowoczesne architektury komputerowe.
Wielowątkowość jest podobna w koncepcji do wielozadaniowości, ale jest realizowana na poziomie wykonania wątku w nowoczesnych procesorach superskalarnych.
W projektowaniu procesorów istnieją dwa sposoby na zwiększenie równoległości w układzie przy mniejszym zapotrzebowaniu na zasoby:
- Technika Superscalar: która próbuje zwiększyć paralelizm poziomu instrukcji (ILP) poprzez jednoczesne wykonywanie wielu instrukcji (określane jako: jednoczesne); poprzez "jednoczesne" wysyłanie instrukcji (określane jako: wysyłanie instrukcji) do wielu nadmiarowych jednostek wykonawczych wbudowanych wewnątrz procesora.
- Technika wielowątkowości na poziomie chipa (CMT): zastosowanie równoległości poziomu gwintu (TLP) w celu wykonywania instrukcji z wielu wątków w jednym chipie procesora w tym samym czasie.
Istnieje wiele sposobów na podparcie więcej niż jednej nitki wewnątrz chipa, a mianowicie:
- Wielowątkowość przenikająca się (IMT) : Przenikające się wydanie wielu instrukcji z różnych wątków, zwane również wielowątkowością czasową. Można go podzielić na drobnoziarniste wielowątkowe lub gruboziarniste wielowątkowe, w zależności od częstotliwości występowania przeplatanych spraw. Drobno-ziarnisty multitreading wydaje instrukcje dla różnych wątków po każdym cyklu, natomiast gruboziarnisty multitreading przełącza się na wydawanie instrukcji z innego wątku tylko wtedy, gdy aktualnie wykonywany wątek powoduje jakieś długie opóźnienia (np. usterka strony itp.). Gruboziarnista wielowątkowość jest bardziej powszechna dla mniej kontekstowego przełączania między wątkami. Dla procesorów z jednym potokiem na rdzeń, przeplatanie wielowątków jest jedynym możliwym sposobem, ponieważ może wydać tylko do jednej instrukcji na cykl.
- Równoczesne wielowątkowość (SMT): Wydawanie wielu instrukcji z wielu wątków w jednym cyklu. Procesor musi być superskalarny, aby to zrobić.
- Chip-level multiprocessing (CMP lub Multi-core processor): integruje dwa lub więcej procesorów superskalarnych w jednym chipie, każdy wykonuje wątki niezależnie.
- Każda kombinacja IMT/SMT/CMP
Kluczem do ich rozróżnienia jest sprawdzenie, ile instrukcji procesor może wydać w jednym cyklu i ile wątków, z których pochodzą instrukcje.
Przykłady nowoczesnych procesorów SMT
- Intel Pentium 4 był pierwszym nowoczesnym procesorem do komputerów stacjonarnych, który wdrożył jednoczesną wielowątkowość, począwszy od modelu 3.06GHz wprowadzonego na rynek w 2002 roku, a od tego czasu wprowadzonego do wielu ich procesorów. Intel nazywa funkcjonalność Hyper-Threading Technology (HTT), i zapewnia podstawowy silnik SMT z dwoma wątkami. Intel twierdzi, że do 30% poprawa prędkości w porównaniu do identycznego, nie-SMT Pentium 4.
- Najnowsze projekty architektury MIPS obejmują system SMT znany jako "MIPS MT".
- IBM POWER5, ogłoszony w maju 2004 r., jest dostępny jako dwurdzeniowy DCM, cztero- lub ośmiordzeniowy MCM, a każdy z nich zawiera dwugwintowy silnik SMT. Implementacja IBM jest bardziej zaawansowana niż poprzednie, ponieważ może ona przypisać inny priorytet różnym wątkom, jest bardziej drobnoziarnista, a silnik SMT może być włączany i wyłączany dynamicznie, aby lepiej wykonywać te zadania, w których procesor SMT nie zwiększyłby wydajności. Jest to druga implementacja IBM w zakresie ogólnie dostępnego wielowątkowego sprzętu.
- Intel Atom, wprowadzony na rynek w 2008 roku, jest pierwszym produktem Intela, w którym zastosowano technologię SMT (wprowadzoną na rynek jako Hyper-threading) bez obsługi zmiany kolejności instrukcji, spekulacyjnego wykonania lub zmiany nazwy rejestracji.
Powiązane strony
- Wątek (informatyka)
- Obliczenia równoległe
- Równoległość na poziomie instrukcji
- Procesory wielordzeniowe
Pytania i odpowiedzi
Q: Co to jest wielowątkowość równoczesna?
O: Simultaneous multithreading (SMT) jest techniką poprawiającą ogólną wydajność superskalarnych procesorów z Hardware multithreading. Umożliwia ona wykonywanie wielu niezależnych wątków w celu lepszego wykorzystania zasobów oferowanych przez nowoczesne architektury komputerowe.
P: Jak SMT ma się do wielozadaniowości?
O: Wielowątkowość jest podobna do multitaskingu, ale w nowoczesnych procesorach superskalarnych jest realizowana na poziomie wątku, podczas gdy multitasking jest realizowany na poziomie procesu.
P: Jakie są dwa sposoby zwiększenia równoległości w układzie scalonym?
O: Dwa sposoby zwiększenia równoległości w układzie scalonym to technika superskalarna i wielowątkowość na poziomie układu scalonego (CMT).
P: Jakie są różne rodzaje wielowątkowości na poziomie chipu?
O: Różne rodzaje wielowątkowości na poziomie chipa to Interleaved Multithreading (IMT), Fine-Grain Multithreading, Coarse Grain Multithreadin i Simultaneous Multithreadin (SMT).
P: Jak można rozróżnić IMT/SMT/CMP?
O: Kluczowym czynnikiem dla rozróżnienia IMT/SMT/CMP jest sprawdzenie, ile instrukcji procesor może wydać w jednym cyklu i z ilu wątków pochodzą instrukcje.
P: Jakiego typu procesor musi być użyty do SMT?
O: Do SMT musi być użyty procesor superskalarny.
P: Jakiego typu procesora używa Chip Level MultiProcessing?
O: Chip Level MultiProcessing wykorzystuje procesory wielordzeniowe, które integrują dwa lub więcej procesorów superskalarnych w jednym układzie, z których każdy wykonuje wątki niezależnie.