Hyper -threading - Hyper-threading

V tomto vyobrazení HTT na vysoké úrovni jsou instrukce načteny z RAM (různě barevné rámečky představují instrukce čtyř různých procesů ), dekódovány a přeuspořádány front-endem (bílá políčka představují bublinky potrubí ) a předány do jádra provádění schopného provádění pokynů ze dvou různých programů během stejného hodinového cyklu .

Hyper-threading (oficiálně nazývá Hyper-Threading Technology nebo HT Technology a zkrátil jako HTT nebo HT ) je Intel ‚s proprietární simultánní multithreading (SMT) implementace používají ke zlepšení paralelizaci výpočtů (dělat více úkolů najednou) provádí na x86 mikroprocesory. Byl představen na serverových procesorech Xeon v únoru 2002 a na stolních procesorech Pentium 4 v listopadu 2002. Od té doby Intel zahrnul tuto technologii mimo jiné do procesorů řady Itanium , Atom a Core 'i' .

Pro každé fyzicky přítomné procesorové jádro adresuje operační systém dvě virtuální (logická) jádra a pokud je to možné, sdílí mezi nimi pracovní zátěž. Hlavní funkcí hypervlákna je zvýšit počet nezávislých instrukcí v kanálu; využívá výhody superskalární architektury, ve které více instrukcí pracuje souběžně na samostatných datech . U HTT se jedno fyzické jádro jeví jako dva procesory operačního systému, což umožňuje souběžné plánování dvou procesů na jádro. Kromě toho dva nebo více procesů může používat stejné prostředky: Pokud nejsou k dispozici prostředky pro jeden proces, může pokračovat další proces, pokud jsou k dispozici jeho prostředky.

Kromě toho, že je v operačním systému vyžadována souběžná podpora více vláken, lze hypervlákna správně využít pouze s operačním systémem, který je pro něj konkrétně optimalizován.

Přehled

3 GHz model procesoru Intel Pentium 4 s technologií Hyper-Threading

Technologie Hyper-Threading je formou simultánní vícevláknové technologie zavedené společností Intel, zatímco koncept této technologie byl patentován společností Sun Microsystems . Architektonicky se procesor s technologií Hyper-Threading skládá ze dvou logických procesorů na jádro, z nichž každý má svůj vlastní stav architektury procesoru. Každý logický procesor může být jednotlivě zastaven, přerušen nebo nasměrován k provedení zadaného vlákna nezávisle na jiném logickém procesoru, který sdílí stejné fyzické jádro.

Na rozdíl od tradiční konfigurace dvou procesorů, která používá dva samostatné fyzické procesory, logické procesory v jádře s vysokým vláknem sdílejí prostředky pro provádění. Mezi tyto prostředky patří modul pro provádění, mezipaměti a rozhraní systémové sběrnice; sdílení zdrojů umožňuje efektivnější spolupráci dvou logických procesorů a umožňuje logickému procesoru vypůjčit si prostředky ze zablokovaného logického jádra (za předpokladu, že obě logická jádra jsou spojena se stejným fyzickým jádrem). Procesor se zastaví, když čeká na odeslaná data, aby mohl dokončit zpracování aktuálního vlákna. Míra prospěchu při používání hypervláknového nebo vícejádrového procesoru závisí na potřebách softwaru a na tom, jak dobře je tento a operační systém napsán pro efektivní správu procesoru.

Hyper-threading funguje tak, že duplikuje určité části procesoru-ty, které ukládají stav architektury- ale neduplikuje hlavní prostředky spouštění . To umožňuje, aby se procesor s hypervlákny zobrazoval jako obvyklý „fyzický“ procesor a navíc jako „ logický “ procesor v hostitelském operačním systému (operační systémy bez vědomí HTT vidí dva „fyzické“ procesory), což umožňuje operačnímu systému naplánovat dvě vlákna nebo zpracovává současně a přiměřeně. Pokud by aktuální úloha v procesoru bez hypervlákna nevyužila prostředky ke spuštění, a zvláště když je procesor zablokován, může procesor vybavený vysokým vláknem tyto prostředky spouštění použít k provedení jiné naplánované úlohy. (Procesor se může zablokovat kvůli chybě mezipaměti , chybné předpovědi větve nebo závislosti na datech .)

Tato technologie je transparentní pro operační systémy a programy. Minimum, které je nutné k využití výhod hypervlákna, je podpora symetrického vícenásobného zpracování (SMP) v operačním systému, protože logické procesory vypadají jako standardní samostatné procesory.

Je možné optimalizovat chování operačního systému na víceprocesorových systémech podporujících hypervlákna. Zvažte například systém SMP se dvěma fyzickými procesory, které mají oba hypervláknové (celkem čtyři logické procesory). Pokud plánovač vláken operačního systému neví o hypervláknech, bude se všemi čtyřmi logickými procesory zacházet stejně. Pokud jsou ke spuštění způsobilá pouze dvě vlákna, může se rozhodnout naplánovat tato vlákna na dva logické procesory, které patří do stejného fyzického procesoru; procesor by byl extrémně zaneprázdněn, zatímco druhý by byl nečinný, což by vedlo k horšímu výkonu, než je možné naplánováním vláken na různé fyzické procesory. Tomuto problému se lze vyhnout vylepšením plánovače, který bude logické procesory zpracovávat odlišně od fyzických procesorů; v jistém smyslu se jedná o omezenou formu změn plánovače, které jsou vyžadovány pro systémy NUMA .

Dějiny

První publikovaný článek popisující to, co je nyní v počítači pro obecné účely známé jako hypervlákno, napsali Edward S. Davidson a Leonard. E. Shar v roce 1973.

Společnost Denelcor, Inc. představila vícevláknové zpracování pomocí Heterogenního elementového procesoru (HEP) v roce 1982. Plynovod HEP nemohl pojmout více instrukcí ze stejného procesu. V potrubí bylo v kterémkoli časovém okamžiku povoleno být přítomno pouze jeden pokyn z daného procesu. Pokud by instrukce z daného procesu zablokovala potrubí, pokyny z jiných procesů by pokračovaly i po vyčerpání potrubí.

Americký patent na technologii za hyper-threading byl udělen Kennethovi Okinovi ve společnosti Sun Microsystems v listopadu 1994. V té době nebyla procesní technologie CMOS dostatečně pokročilá, aby umožňovala nákladově efektivní implementaci.

Intel implementována hyper-threading na architektuře procesoru x86 v roce 2002 Foster MP založené na Xeon . Ve stejném roce to bylo také zahrnuto na 3,06 GHz Pentium 4 se sídlem v Northwoodu a poté zůstalo jako funkce v každém procesoru Pentium 4 HT, Pentium 4 Extreme Edition a Pentium Extreme Edition. Procesorové řady Intel Core & Core 2 (2006), které následovaly po modelové řadě Pentium 4, nevyužívaly hypervlákna. Procesory založené na mikroarchitektuře Core neměly hypervlákno, protože mikroarchitektura Core byla potomkem starší mikroarchitektury P6 . Mikroarchitektura P6 byla použita v dřívějších iteracích procesorů Pentium, konkrétně Pentium Pro , Pentium II a Pentium III (plus jejich deriváty Celeron a Xeon v té době).

Společnost Intel vydala v listopadu 2008 mikroarchitekturu Nehalem (Core i7), ve které se hypervlákno vrátilo. První generace procesorů Nehalem obsahovala čtyři fyzická jádra a byla efektivně škálována na osm vláken. Od té doby byly vydány jak dvoujádrové, tak šestijádrové modely se škálováním čtyř, respektive dvanácti vláken. Dřívější jádra Intel Atom byly procesory v pořadí, někdy s možností hypervláknování, pro mobilní počítače s nízkou spotřebou a stolní počítače za nízkou cenu. Itanium  9300 zahájila s osmi závity na procesor (dvě vlákna na jádro) přes rozšířené technologii hyper-threading. Další model, Itanium 9500 (Poulson), je vybaven 12-problémovou architekturou s osmi jádry CPU s podporou dalších osmi virtuálních jader prostřednictvím hypervláknování. Serverové čipy Intel Xeon 5500 také využívají obousměrné hypervlákno.

Tvrzení o výkonu

Podle společnosti Intel první implementace hypervláken používala pouze o 5% větší plochu matrice než srovnatelný nehyperthreaded procesor, ale výkon byl o 15–30% lepší. Intel tvrdí až o 30% zlepšení výkonu ve srovnání s jinak identickým, nesimultánním vícevláknovým Pentiem 4. Tom's Hardware uvádí: „V některých případech může P4 běžící na 3,0 GHz se zapnutým HT dokonce porazit P4 běžící na 3,6 GHz s HT vypnutý." Společnost Intel také tvrdí, že v některých algoritmech s umělou inteligencí došlo k významnému zlepšení výkonu s procesorem Pentium 4 s podporou hypervláken.

Celkově byla historie výkonu hypervlákna na začátku smíšená. Jeden komentář k vysoce výkonným počítačům z listopadu 2002 uvádí:

Hyper-Threading může zlepšit výkon některých aplikací MPI , ale ne všech. V závislosti na konfiguraci klastru a hlavně na povaze aplikace běžící na klastru se přírůstky výkonu mohou lišit nebo mohou být dokonce záporné. Dalším krokem je pomocí výkonnostních nástrojů pochopit, které oblasti přispívají ke zvýšení výkonu a které oblasti přispívají ke snižování výkonu.

Výsledkem je, že vylepšení výkonu jsou velmi závislá na aplikaci; při spuštění dvou programů, které vyžadují plnou pozornost procesoru, se však ve skutečnosti může zdát, že jeden nebo oba programy se při zapnutí technologie Hyper-Threading mírně zpomalí. To je způsobeno systémem přehrávání Pentium 4, který spojuje cenné prostředky pro provádění a vyrovnává prostředky procesoru mezi těmito dvěma programy, což přidává různou dobu provádění. Procesory Pentium 4 „Prescott“ a Xeon „Nocona“ obdržely frontu na přehrání, která snižuje dobu potřebnou k provedení systému přehrávání a zcela překonává výkonnostní trest.

Podle analýzy společnosti Intel z listopadu 2009 má vliv na výkon hypervláknových vláken za následek zvýšení celkové latence v případě, že provádění vláken nevede k výraznému celkovému zvýšení propustnosti, které se liší podle aplikace. Jinými slovy, celková latence zpracování se v důsledku hypervláknování výrazně zvyšuje, přičemž negativní efekty se zmenšují, protože existuje více simultánních vláken, která mohou efektivně využívat další využití hardwarových prostředků poskytované hypervláknami. Podobná analýza výkonu je k dispozici pro účinky hypervlákna, když se používá ke zpracování úkolů souvisejících se správou síťového provozu, například pro zpracování požadavků na přerušení generovaných řadiči síťového rozhraní (NIC). Jiný článek tvrdí, že při zpracování přerušení se používá zlepšení výkonu při použití hypervlákna.

Nevýhody

Když byly vydány první HT procesory, mnoho operačních systémů nebylo optimalizováno pro technologii hyper-threading (např. Windows 2000 a Linux starší než 2.4).

V roce 2006 byla hyper-threading kritizována za energetickou neefektivnost. Například specializovaná společnost ARM pro návrh CPU s nízkým výkonem uvedla, že simultánní vícevláknové zpracování může spotřebovat až o 46% více energie než běžné dvoujádrové konstrukce. Dále tvrdili, že SMT zvyšuje vyprázdnění mezipaměti o 42%, zatímco dvoujádrové výsledky mají za následek 37% pokles.

V roce 2010 společnost ARM uvedla, že do svých budoucích čipů může zahrnovat simultánní multithreading; toto však bylo odmítnuto ve prospěch jejich 64bitového designu z roku 2012.

V roce 2013 společnost Intel upustila od SMT ve prospěch provedení mimo pořadí u svých procesorových jader Silvermont , protože zjistili, že to dává lepší výkon s lepší energetickou účinností než nižší počet jader se SMT.

V roce 2017 bylo odhaleno, že procesory Intel Skylake a Kaby Lake mají chybu s implementací hypervlákna, která by mohla způsobit ztrátu dat. K vyřešení problému byly později vydány aktualizace mikrokódu .

V roce 2019, s Coffee Lake , se Intel začal odklánět od zahrnování hypervlákna do běžných desktopových procesorů Core i7 s výjimkou nejvyšších částí Core i9 nebo CPU Pentium Gold. Začalo také doporučovat zakázání hypervláknových vláken, protože byly odhaleny nové útoky na zranitelnost CPU, které by bylo možné zmírnit deaktivací HT.

Bezpečnostní

V květnu 2005 Colin Percival prokázal, že škodlivé vlákno na Pentiu 4 může pomocí útoku postranního kanálu založeného na časování sledovat vzorce přístupu do paměti jiného vlákna, se kterým sdílí mezipaměť, což umožňuje krádež kryptografických informací. Ve skutečnosti se nejedná o načasovací útok , protože škodlivé vlákno měří čas pouze jeho vlastního spuštění. Mezi potenciální řešení patří procesor měnící svou strategii vystěhování z mezipaměti nebo operační systém zabraňující současnému spouštění vláken s různými oprávněními na stejném fyzickém jádru. V roce 2018 operační systém OpenBSD deaktivoval hypervlákna „aby se zabránilo potenciálnímu úniku dat z aplikací do jiného softwaru“ způsobených zranitelnostmi Foreshadow/L1TF . V roce 2019 vedla sada zranitelností k tomu, že bezpečnostní experti doporučili zakázat hypervlákna na všech zařízeních.

Viz také

Reference

externí odkazy