Hyper-Threading 0
Hyper-Threading

W normalnym procesorze jeden rdzeń wykonuje sekwencyjnie pojedynczy strumień instrukcji, ale podczas wykonywania instrukcji obliczania np. liczby całkowitej, układ obliczający liczbę zmiennoprzecinkową ulega awarii. Wewnątrz procesora, który obsługuje hiperwątkowość, liczba obwodów używanych do interpretacji (dekodowania) i składania (harmonogramu) instrukcji jest zwiększona w porównaniu z normalną dla obwodów takich jak arytmetyczne, a jeśli obwód używany przez następną instrukcję jest wolny, jest ona wykonywana równolegle bez czekania na zakończenie poprzedniej instrukcji.

Nie tylko zmniejsza to liczbę obwodów, które są bezczynne, ale także pozwala na wykonywanie coraz większej liczby instrukcji, które nie wymagają odczytu/zapisu pamięci, podczas gdy jedna instrukcja czeka na powolne wejście/wyjście pamięci. Ponieważ paralelizacja instrukcji jest całkowicie kontrolowana przez stronę sprzętową, od strony systemu operacyjnego wygląda to tak, jakby istniały dwa rdzenie, z których każdy może wykonywać niezależne wątki i programy.

Jeśli jednak istnieją zależności, np. wyniki przetwarzania poprzedniej instrukcji są wykorzystywane przez następną instrukcję, paralelizacja nie jest możliwa (tak jest również w przypadku zwykłych multicores). Ponadto, jeśli istnieją następujące po sobie instrukcje, które używają tego samego układu, np. niekończąca się seria obliczeń całkowitych, nastąpi oczekiwanie.

Szybka pamięć cache (L1 cache / L2 cache) dołączona do rdzenia jest również współdzielona i nie jest tak szybka jak dwurdzeniowa lub dwuprocesorowa z dwoma układami wszystkich obwodów arytmetycznych. W najlepszym przypadku, mówi się, że jest to około 20-30% szybsze na zegar.

 

Komentarze do wpisu (0)

do góry
Sklep jest w trybie podglądu
Pokaż pełną wersję strony
Sklep internetowy od home.pl