# Hyper-threading

Hyper-threading, of voluit hyper-threading-technologie (afgekort als HTT of HT) is een techniek die uitgedacht werd door Digital Equipment Corporation en in praktijk gebracht door Intel. De eerste processors met hyper-threading verschenen rond 2001 op de markt. Bij hyper-threading-technologie gedraagt een fysieke processorkern zich als twee logische processors die de cache en externe interfaces delen. In de meeste gevallen wordt het hierdoor mogelijk dat de processorkern twee threads tegelijk uitvoert.
Als er bepaalde CPU-onderdelen niet gebruikt worden door thread X, dan kunnen die gebruikt worden om thread Y uit te voeren. Zonder hyper-threading kan het voorkomen dat een thread moet wachten terwijl de meeste CPU-onderdelen niets doen.
Redenen waarom een thread moet wachten kunnen zijn: cache-miss (wachten op gegevens uit het hoofdgeheugen), foutieve voorspelling van het executiepad (branch misprediction) of van elkaar afhankelijke instructies (instructie 1 moet eerst uitgevoerd worden voordat instructie 2 uitgevoerd kan worden).
De door Intel voorspelde prestatiewinst is ongeveer 30%.
Hyperthreading vereist ook dat de software ondersteuning heeft voor een systeem met meerdere processoren: een processor met hyperthreading-technologie wordt door het besturingssysteem meestal als twee losse processoren gezien.
Als opvolger verscheen rond 2005 de multikernprocessor die twee of meer (vier in 2007) volledige processors in één enkele behuizing bevat en die de hyper-threading verdrong. Dit was de start van de race om zo veel mogelijk processorkernen of cores in één enkele chip te krijgen. Er zat namelijk weinig rek meer in de klokfrequentie van processoren.
In 2008 blies Intel nieuw leven in de technologie. Voor draagbare applicaties met laag vermogen en budget-pc's kondigde Intel de Atom-processorreeks (codenamen Silverthorne en Diamondville) aan in 45nm-proces met hi-k metal gate technology. Deze processors die gebruikmaken van de hyperthreading, gaan tussen de 0,6 en 2,5 watt gebruiken (in vergelijking met 35 tot 80 watt voor de toen gangbare mainstreamprocessoren).
Intel gebruikt hyperthreading in hun Nehalem- en Sandy Bridge-microarchitecturen. AMD gebruikt een vergelijkbaar iets genaamd "Simultaneous multithreading" sinds de Zen-architectuur.

## Controverse

De hyper-threading-technologie is niet altijd onverdeeld positief. Zo wordt gezegd dat een processor met deze technologie aanzienlijk meer energie verbruikt. Ook wordt de cache zwaarder gebruikt; doordat er twee processen tegelijk lopen, treden er meer cache-misses op, wat negatief werkt op de performance en het energieverbruik. Het netto performanceresultaat is echter vrijwel altijd positief en vooral merkbaar als er verschillende processen of communicaties op hetzelfde ogenblik lopen.
Zo kan het ook nadelig zijn als de gebruiker één enkele processor met hyperthreading voor 100% wil gebruiken om één enkel probleem op te lossen. Dan moet noodgedwongen gebruikgemaakt worden van parallel programmeren.

## Externe link

* https://www.intel.com/technology/platform-technology/hyper-threading/index.htm
* ↑ Intel hyperthreading shows Digital roots. Gearchiveerd op 24 december 2013.
* ↑ CPU-prestatiestudie Pentium P4