Hyper-threading
Hyper-threading (oficiálně Hyper-Threading Technology, též HT Technology, HTT, HT) je v informatice technologie používaná výrobcem procesorů Intel pro zjednodušené zajištění vícevláknového paralelního zpracování strojových instrukcí. Technologie vytváří z jednoho fyzického procesoru dva virtuální procesory tím, že jsou v něm aktivovány dvě řídící jednotky. Vůči softwaru systém představuje místo jednoho fyzického dva (logické) procesory. Hyper-threading umožňuje lépe využít hardware procesoru, snížit odezvu systému (latenci), zrychlit výpočty (systém s aktivovaným hyper-threadingem je podle typu výpočtů zhruba stejně rychlý nebo až o třetinu rychlejší).
Popis funkce
editovatHyper-threading funguje na principu duplikace té části CPU, která obsahuje registry, což pro aplikace vyvolává dojem, že jader je vícero a zasílají pro zpracování procesorem více instrukcí naráz. Hyperthreading se jeví jako mimořádně efektivní způsob zvýšení výkonu hlavně při početních operacích. Hyper-Threading tedy umožňuje zvýšit výkon aplikačnímu softwaru, který umí pracovat s více vlákny současně (multithreading) nebo je schopný práce v režimu zpracování více úloh naráz (multitasking). Samozřejmě druhý virtuální procesor může využívat pouze ty prostředky skutečného procesoru, které nevyužívá první virtuální procesor. Zvýšení výkonu je tedy způsobeno optimalizací využití všech částí jediného CPU. Hyper-threading byl vytvořen jako odpověď na technologie AMD, protože Intel Pentium 4 dokáže v jednom taktu zpracovat jen jednu instrukci, zatímco Athlon XP až tři.
Technologie je aplikována v procesoru a také v čipové sadě (čipsetu), tedy v základní desce. První čipsety podporující hyperthreading byly čipsety Intel 845GE, Intel 845PE, Intel 845GV a rozšířený čipset Intel 850E. Prvním procesorem Intelu, který podporoval novou technologii Hyper-threading, byl Intel Xeon MP (serverový procesor), z procesorů pro stolní PC to byl Pentium 4 3,06 GHz s jádrem Northwood (v roce 2002).
Historie
editovatTechnologie Hyper-threading má původ u firmy DEC (Digital Equipment Corporation)[1], ale byla uvedena na trh společností Intel. Hyper-threading byl poprvé představen roku 2002 v procesorech Xeon Foster MP. Ve stejném roce se Hyper-threading objevil v procesoru Pentium 4 s jádrem Northwood taktovaným na 3,06 GHz, a posléze byl ve všech typech Pentium 4 HT, Pentium 4 Extreme Edition a Pentium Extreme Edition. Následující generace procesorů Intel založené na mikroarchitektuře Core nemají podporu pro Hyper-threading, protože mikroarchitektura Core byla vyvinuta po mikroarchitektuře P6 s použitím opakování (iterací) v procesorech Pentium, tj. od Pentia Pro až po Pentium III a Celeron (Covington, Mendocino, Coppermine a Tualatin) a modely Pentium II Xeon a Pentium III Xeon.
V listopadu roku 2008 začala společnost Intel prodávat procesory Intel Nehalem (Core i7), ve kterých se vrací k technologii Hyper-Threading. První generace procesorů Nehalem obsahuje čtyři jádra, každé s dvěma vlákny. Brzy se v nabídce také objevily dvou až šestijádrové modely s celkem čtyřmi až dvanácti vlákny.
Procesor Intel Atom je další procesor v pořadí od společnosti Intel s technologií Hyper-Threading. Procesor byl navržen jako úsporný do stolních a mobilních počítačů s nízkou spotřebou elektrické energie.
Procesor Itanium 9300 přišel s osmi vlákny na jeden procesor (dvě vlákna na jádro) prostřednictvím rozšířené technologie Hyper-Threading.
V procesoru Poulson, který je další generací procesorů Itanium, je plánováno, že bude mít další rozšířený a vylepšený Hyper-threading.
Procesory pro serverové aplikace Intel Xeon 5500 server využívají čipy s technologií pro obousměrný Hyper-threading.
Výkon
editovatVýhody technologie Hyper-threading jsou shrnuty takto: vylepšena podpora vícevlákenného (Multi-Threadingového) kódu, který umožňuje simultánní (současný) běh více vláken, včetně rychlejší reakce a snížení času odezvy na požadavky. Internetové webové stránky Tomshardware.com uvádějí: „V některých případech procesor Pentium 4 na taktu 3,0 GHz s HT dokonce může překonat procesor Pentium 4 běžící na taktu 3,6 GHz avšak bez zapnutého HT“.
Stinná stránka historie
editovatKdyž byl uveden od společnosti Intel Pentium 4 s taktem 3,06 GHz Hyper-Threading, tvůrci aplikací se nemohli rozhodnout, jestli Hyper-Threading používat ve svých specifických aplikacích nebo ne, protože někteří z nich stále testovali své programy na operačních systémech nepodporujících Hyper-Threading (např. Windows 2000) a většina počítačů tehdy měla pouze jednovláknové (jednojádrové) procesory (bez HT).
V roce 2006 byl Hyper-Threading kritizován kvůli své energetické náročnosti. Například společnost ARM, specialista na procesory s nízkou spotřebou, tvrdila, že současné vícevlákno (Simultánní multithreading) dokáže využít až o 46 % více energie než navrhované dvoujádrové procesory (dvoujádrové procesory se liší od dvou samostatných procesorů, mají totiž dvě fyzická jádra v jednom procesoru). Dále pak tvrdili, že současné vícevlákno zvyšuje zbytečné zahlcování vyrovnávací paměti o 42 %, kdežto dvoujádrové procesory ho o 37 % snižují.[zdroj?] V roce 2010 společnost ARM ohlásila, že v budoucnu budou její čipy zahrnovat podporu současného vícevlákna (Multi-Threading).
Bezpečnost
editovatV květnu roku 2005 Colin Percival na Pentiu 4 ukázal, jak softwarové vlákno se zlými úmysly může využít časovaného útoku pro sledování výpočtu v jiném vláknu přes sdílenou datovou cache (L1 data cache), což umožňuje například krádež kryptografických (šifrovaných) klíčů.[2] Řešením je změna strategie řízení cache v procesoru nebo modifikace operačního systému, aby neumožnil na jednom procesoru běh více vláken s různými oprávněními.[2]
Reference
editovatSouvisející články
editovatExterní odkazy
editovat- Bezpečnost
- KernelTrap diskuse: poruchovost Hyper-Threading
- Výkon
- ZDnet: Hyper-Threading ublíží serverovému výkonu, říkají vývojáři Archivováno 29. 12. 2005 na Wayback Machine.
- společnost ARM nesouhlasí s Hyper-Threadingem Archivováno 13. 3. 2007 na Wayback Machine. - Nastiňuje problémy SMT řešení
V tomto článku byl použit překlad textu z článku Hyper Threading na slovenské Wikipedii.