reklama
Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Technologie: Hyper-Threading

25.6.2002, Zdeněk Kabát, článek
Technologie: Hyper-Threading
Ozvaly se hlasy, že by se na SHW mohly objevovat detailní rozbory existujících technologií. Proto zakládáme rubriku „technologie“, ve které se budou objevovat popisy některých technologií dneška či budoucnosti. Výběr popisovaných technologií bude ovlivněn i vašimi ohlasy. Pro začátek jsem si tedy vybral Hyper-Threading od společnosti Intel.

Úvod

Jako odpověď na poptávku trhu po vyšším výkonu a rychlejší práci procesorů vyvinula společnost Intel technologii nazvanou Hyper-Threading. Systémové prostředky procesorů jsou často nevytížené a roste mezera mezi frekvencí procesoru a rychlostí paměti, což způsobuje růst poptávky po zrychlení paměťové latency (=“zpoždění“, ale dále použiji raději anglický ekvivalent). Technologie Hyper-Threading způsobuje, že jediný fyzický procesor se systému hlásí jako dva logické, ale se sdílenými prostředky. Tím umožní paralelní spuštění dvou úkolů, vzrůst vytíženosti procesoru a snižuje efekt paměťové latency . Tím samozřejmě roste výkon převážně multi-threaded aplikací (aplikace s více vstupy), ale nezaniká kompatibilita se single-threaded aplikacemi. Jak tato technologie pracuje, jak ovlivňuje výkon a další informace se dozvíte na následujících řádcích.

Architektura

V současnosti je výkon procesoru ovlivňován třemi základními faktory: taktovací frekvence, ILP (instruction-level parallelism) a cache, a dále pak například spotřebou energie a velikostí čipu. Růst výkonu ovšem není úměrný růstu či vývoji těchto hodnot, a proto se musí najít jiná cesta zrychlování. Jednou možností je TLP, nebo-li Thread-Level Parallelism . Jednotlivé postupy jsou např. prosté přidání více procesorů, CMP ( Chip Multiprocessing – dva procesory na jednom čipu), přepínání jednotlivých spuštěných procesů na jednom procesoru a konečně simultánní multi-threading, který používá technologie Hyper-Threading.

Jak bylo řečeno, díky technologii Hyper-Threading vypadá jeden fyzický procesor jako dva logické, prostředky jsou sdílené a stav architektury je duplikován. Z architektonického a softwarového hlediska to znamená, že operační systém a aplikace naplánují své procesy a vstupy na logické procesory, jako by to provedly na více fyzických procesorů. Z mikro-architektonického hlediska jsou instrukce z obou logických procesorů spouštěny současně na sdílených systémových prostředcích.

Obrázek znázorňuje multi-procesorový systém bez možnosti Hyper-Threading a s touto technologií:



Obr. 1 – Dual-procesorový systém bez a s Hyper-Threadingem

Aplikace Hyper-Threadingu u procesorů Intel Xeon způsobila pouze 5% zvětšení čipu, zatímco výkon vzrostl mnohem výrazněji (viz dále). Z obrázku lze poznat, že jeden fyzický procesor uchovává duplicitní kopii architektonického stavu, který se skládá z registrů – univerzálních, kontrolních , APIC (pokročilý programovatelný řadič přerušení) a některých stavových registrů. Počet tranzistorů k uložení duplikovaného stavu je minimální. Logické procesory sdílí cache, výkonné jednotky, větvené predikátory a sběrnice. Naopak každý logický procesor má vlastní řadič přerušení nebo APIC. Většinu plochy čipu tedy tvoří samotné logické procesory.

Intel Xeon

Podívejme se na konkrétní technologii Hyper-Threading u procesoru Intel Xeon. Kromě minimalizace počtu tranzistorů určených k implantaci technologie byla snaha dosáhnout dalších cílů. Jedním z nich bylo navázání činnosti druhé logické jednotky v případě zaseknutí první. Nerušený chod procesu při zastavení jednoho logického procesoru (např. čekání na výsledky instrukcí, servis cache apod.) je zajištěn ovládáním vyrovnání front tak, že žádný logický procesor nemůže použít všechny vstupy, když probíhají dva softwarové thready (včetně nečinných procesů operačního systému). Dalším cílem bylo umožnit procesoru s jediným aktivním threadem běžet na stejné rychlosti jako bez Hyper-Threadingu. Toho bylo dosaženo rekombinací rozdělených systémových prostředků.



Obr. 2 – Intel Xeon Pipeline

Výše je uveden obrázek mikro-architektury pipeline procesoru Intel Xeon. Je vidět, že vyrovnávací fronty oddělují hlavní logické bloky. Vyrovnávací fronty jsou buď oddělené nebo duplikované k zajištění nezávislého pokračování každého logického bloku. Jinými slovy: Pokud se vyrovnávací fronta jednoho logického procesoru zasekne, převezme její funkci fronta druhá. Detailní rozbor pipeline je poměrně složitý a naleznete ho zde.

Softwarové využití

Single-Task & Multi-Task - k optimalizaci výkonu při jediném aktivním threadu slouží dva módy operací: Single-Task (ST) a Multi-Task (MT). V MT-módu jsou dva aktivní logické procesory a některé prostředky jsou rozdělené. ST-mód existuje ve dvou formách: single task pro logický procesor 0 (ST0) a single task pro logický procesor 1 (ST1). V těchto ST-módech je aktivní pouze jeden logický procesor a systémové prostředky rozdělené při MT-módu jsou rekombinovány, aby mohl jediný aktivní logický procesor využít veškeré prostředky.

IA-32 Intel Architecture (popisovaná na výše uvedené adrese) obsahuje instrukci HALT, která zastaví běh procesoru a umožní přejít do módu s nižší spotřebou ( lower-power mode ). Tato instrukce je privilegovaná pouze pro operační systémy a jiné procesy ring-0, uživatelské aplikace instrukci HALT nepovolují.

Logický dopad této funkce u procesoru s technologií Hyper-Threading způsobí změnu operačního módu z MT na ST0/ST1, podle toho, z kterého logického procesoru byla instrukce vyvolána (pak zůstane aktivní opačný logický procesor). V případě vyvolání funkce HALT v MT-módu tedy dojde k rekombinaci systémových prostředků a přechodu do ST-módu, při druhém vyvolání přejde fyzický procesor do módu s nižší spotřebou. V ST-módu dojde při poslání přerušení k zastavenému logickému procesoru ke zpětnému přechodu do MT-módu. Za správu všech přechodů je zodpovědný operační systém.

Zde je grafické vyjádření celého problému:



Obr. 3 – Single-Task a Multi-Task módy

Operační systémy a aplikace

Systém s procesory používajícími Hyper-Threading vypadá v operačním systému či jiných aplikacích jako kdyby měl dvojnásobný počet procesorů. Správa systému proto probíhá jako u multi-procesorových systémů, operační systém přiřazuje úkoly či thready logickým procesorům. Pro ideální výkon je ale nutné provést dvě optimalizace.

První z nich je použití instrukce HALT, když je aktivní pouze jeden logický procesor, aby došlo k přechodu do ST0-/ST1-módu. Pokud není instrukce použita, spouští operační systém na nečinném logickém procesoru sekvence instrukcí, které opakovaně kontrolují jeho činnost. Tento stav, tzv. „idle loop “, způsobuje značné plýtvání systémovými prostředky, které by byly v případě použití instrukce HALT rekombinovány a použity aktivním logickým procesorem.

Druhá optimalizace je přiřazování softwarových threadů logickým procesorům. V multi-procesorovém systému je totiž výhodnější převádět nové thready na jiný fyzický procesor, než zatěžovat logickou jednotku používaného procesoru. Optimalizace by umožnila mapovat fyzické i logické jednotky a přiřazovat k nim jednotlivé thready.

Výkon

Pro nás je ale přes všechny technologické a architektonické detaily nejdůležitější výsledný výkon. Podle společnosti Intel přináší Intel Xeon výrazné zvýšení výkonu všech serverových systémů s procesorem architektury IA-32. Oproti procesorům Pentium III Xeon se díky technologii Hyper-Threading zvýšil výkon high-endových aplikací u 4-cestných serverů až o 65%.



Obr. 4 – Nárůst výkonu v systémech a aplikacích

První graf znázorňuje výkon při onlinovém přenosu na jedno- až čtyřprocesorové konfiguraci a s technologií Hyper-Threading. V případě single- a dual-procesorového serveru je nárůst výkonu až 21% (graf je normalizován pro single-procesorový server). Druhý graf ukazuje výhody technologie Hyper-Threading při použití serverových testů. Výkon zde vzrostl až o 16 – 28%. Výkon v testech je pouze relativní, nikoli absolutní. Je vidět, že Hyper-Threading je v praxi poměrně účinný.

Závěr

Technologie Hyper-Threading je účinným způsobem, jak zvyšovat výkon procesorů bez nárůstu počtu tranzistorů, zvětšení cache či zvyšování spotřeby energie. Aplikací této technologie dojde pouze k 5% zvětšení plochy čipu, zatímco výkon se zvedne až o 20-30%. Při nutnosti používat pouze jeden thread je procesor schopný přecházet díky instrukci HALT architektury IA-32 mezi třemi módy – ST0-/ST1- a MT-mód. V současnosti je technologie úspěšně implantována do procesorů Intel Xeon MP pro servery a pracovní stanice. Plný popis technologie Hyper-Threading naleznete technologickém deníku Intelu z prvního čtvrtletí tohoto roku (Volume 06 Issue 01 [ PDF]).

Pozn.: Další existence a vývoj této rubriky závisí mimo jiné na Vašich ohlasech. Jestli se vám tedy článek líbil, a chtěli byste, abychom v popisu technologií pokračovali, tak napište zprávu do diskuse k tomuto článku. Můžete si i vybrat oblast, která Vás nejvíce zajímá a k tomu pak při výběru tématu také přihlédneme (např. procesory, grafika, optická média apod.).


Zdroj: Intel Corp.
reklama