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:

  1. 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.
  2. 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:

  1. 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.
  2. Równoczesne wielowątkowość (SMT): Wydawanie wielu instrukcji z wielu wątków w jednym cyklu. Procesor musi być superskalarny, aby to zrobić.
  3. 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.
  4. 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

  1. 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.
  2. Najnowsze projekty architektury MIPS obejmują system SMT znany jako "MIPS MT".
  3. 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.
  4. 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

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.

AlegsaOnline.com - 2020 / 2023 - License CC3