Vyznejte se v procesoru – velký přehled technologií

Procesor najdete v každém počítači, vyznáte se ale v jeho technologiích? Jak funguje cache, co je to skalární procesor a jak se vlastně mozek každého současného počítače vyrábí?
Kapitoly článku

Jednolitý tok příkazů se nazývá vláknem. Původně uměly procesory zpracovávat jediné vlákno. Pak se objevil termín multithreading, což je skupina technologií, umožňujících zvýšit počet vláken v jednom procesoru. Procesor je pořád jeden, ale předstírá, že jich je více.

VMT neboli vertikální multithreading je postup, kdy se zatížení procesoru zvyšuje zmenšením čekacích časů. Procesor sice zpracovává v jeden okamžik jediné vlákno, ovšem další čeká na příležitost. Jestliže aktuální vlákno na něco čeká, procesor přepíná na další, doposud čekající vlákno. Podle některých pramenů patří VMT mezi technologie CLP (Core-Level Parallelism) i MLP (Memory-Level Parallelism), objevuje se i zkratka TLP (Task-Level Parallelism). Podle mě jde o PMZ (příliš mnoho zkratek).

Coarse-grained Multi-Threading je starší postup VMT. Procesoru ale přepnutí z jednoho vlákna na druhé zabere jeden či několik taktů. Takto postupoval například procesor IBM RS64-IV.

Fine-grained Multi-Threading je novější a dokonalejší metoda. Je známa též pod názvy interleaved multithreading (IMT) či super-threading. Procesor stále přepíná mezi vlákny, ale tentokrát není žádná čekací doba. Tuto technologii používají například procesory Sun UltraSPARC T1 a jeho následníci.

Horizontal Multi-Threading (HMT) je založen na faktu, že procesory mají mnoho výkonných jednotek, ale procesor v jednu chvíli používá jen několik málo. Proto se umožní více než jednomu vláknu, aby bylo vykonáváno v jediný okamžik. HMT navazuje na technologii superscalar, protože umožňuje ještě vyšší vytížení výkonných jednotek procesoru. Používá se také označení SMT (Simultaneous multithreading) nebo Hyper-Threading. Nejslavnějším procesorem s touto technologií byl Intel Pentium 4 s HT. Technologie HMT umožňuje, aby v pomyslné kuchyni pracoval více než jeden kuchař zároveň. Oba mohou pracovat, pokud se nepřetahují o jeden hrnec. Právě v takovém okamžiku se výkon celku nezvýší, dokonce se může i nepatrně snížit.

Frekvence procesoru

Kolem roku 2000 se architektura mikroprocesorů dostala do slepé uličky. Výše uvedené technologie se již rozšířily, nové ale nepřicházely tak rychle, aby to udrželo dosavadní velké zrychlování procesorů jen úpravou architektury. Mnozí výrobci se začali více a více soustředit na dvě strategie – vyšší frekvence a novější výrobní technologie. Nejznámější se stala mikroarchitektura NetBurst (Intel Pentium 4, Pentium D), která byla navržena pro takt až 10 GHz. Obecně platí, že čím vyšší frekvence procesoru, tím rychleji pracuje.

Procesory ale nejsou stejné, a tak vyšší frekvence jednoho ještě neznamená, že je automaticky výkonnější než jiný. To byl také důvod někdejšího označení PR, porovnávajícího procesor s produkty Intelu. Například Cyrix 6x86MX PR200 měl mít výkon, odpovídající Pentiu s MMX na 200 MHz, i když pracoval jen na 188 MHz. Naposledy tuto techniku používala firma AMD v procesorech Athlon XP (např. Athlon XP 3200+, porovnávaný s procesorem Intel Pentium 4 na 3,2 GHz, pracoval jen na 2,2 GHz). Rozdílný vliv frekvence je způsoben jinou architekturou procesoru.

Rostoucí frekvence však neměla jen kladné stránky. Začaly se tím nepříjemně zvětšovat problémy (vyšší produkce tepla, stále větší zdržení RAM pamětí). Produkce tepla totiž stoupá se čtvercem frekvence, jinými slovy když se 2x zvýší frekvence, procesor bude topit 4x tolik. Výpočetní výkon se ale zvýší maximálně dvakrát. Nastala tak krize jednojádrových procesorů. Intel ji částečně vyřešil vytvořením staronové mikroarchitektury (P6M + NetBurst), která nebyla postavena na vysoké frekvenci. Tak vznikla mikroarchitektura Core, kterou známe z dnešních procesorů (mezikrokem byly procesory Pentium M). Nové procesory tak mají vyšší výpočetní výkon, i když pracují na nižším taktu, než mnohé starší modely.

Jádro

Mít výkonnější procesor je pěkné, ale stále obtížnější. Proto se začali výrobci zabývat myšlenkou vložit do počítače ještě více procesorů než doposud. Roku 2000 se povedlo dvěma firmám na jediný čip umístit procesory dva. Mít dva procesory místo jednoho znamená efektivnější zvýšení výpočetního výkonu počítače. A umístění na jediném čipu znamená výrazné snížení ceny a zvýšení efektivity.

Jak ale takovému produktu říkat? Dvouprocesorový procesor? Proto se slovíčko „procesor“ vyměnilo za „jádro“ – a máme dvoujádrový procesor. Pro pořádek – šlo o procesory Sun MAJC 5200 a IBM POWER4. Veřejnosti se ale spíš vybaví pozdější modely AMD Athlon 64 X2 nebo Intel Pentium D 800. Dnes se v počítačích vyskytují procesory s jedním až osmi jádry (Sun UltraSPARC T2). Průmyslové procesory již mají až stovky jader (viz Ambric Am2045 s 360 jádry). Postupně se počet jader stává novým kritériem pro výkon procesorů (málo jader = malá cena a malý výkon, hodně jader = velký výkon za velké peníze). Vícejádrové procesory spadají do technologie CLP (Core-Level Parallelism).

Počet jader se může zvyšovat různě. Tradiční způsob je prosté umisťování více jader na jediný čip. To je případ všech uvedených modelů. Objevilo se také označení chip-level multiprocessor (CMP). Hlavně v počátcích se jednalo o podměrně drahou záležitost, protože to znamená mít velkou plochu čipu. To zvyšuje cenu jak přímo, tak nepřímo zvyšující se pravděpodobností výskytu chyby. Pro dražší počítače se tento postup vyplatil a zřejmě ještě dobu vyplácet bude; dnes přestává být problémem ani pro stolní počítače či notebooky.

Díky příliš velké ploše čipu se ve své době objevily i varianty, kdy se vytvořil malý čip s jedním či dvěma jádry. V jednom procesoru se k sobě dají dva takové čipy. Výsledný procesor se označuje jako Multi-Chip Module (MCM). Tak vznikly procesory Intel Pentium D 900 nebo Core2 Quad, ale také řada procesorů rodiny IBM POWER. Pokud se použil jediný čip, vznikly modely Intel Pentium 4 nebo Core2 Duo. Tento postup může zlevnit výrobu, ovšem neumožňuje mít jedinou cache, společnou pro všechna jádra. To některé programy zpomaluje, hlavně při vyšším počtu procesorů či jader.

Někteří výrobci došli do okamžiku, kdy ani více jader nestačí. Proto se opět oživil multithreading. To je případ IBM POWER6, Intel Core i7, jejich jádra předstírají, že jsou dvojitá. Extrémem jsou procesory Sun UltraSPARC T2, kde každé jádro má 8 vláken. Protože jde o osmijádrový procesor, podporuje celkově 64 vláken.

Více jader na jediném čipu reviduje jejich cache. Hitem je sdílená poslední úroveň cache všemi jádry. Díky tomu je maximálně využitá, umožňuje sdílení dat více jádry, případně i nesymetrické využití cache různými jádry. Všechna jádra z ní mohou číst i zapisovat. Sem spadají například Intel Core2 Duo, Core i7 nebo všechny varianty AMD Phenom.

Vyšší počet jader a/nebo vláken sice zvyšuje teoretický výpočetní výkon, klade ale vyšší nároky na programy a jejich programátory. Ti musí úlohu mezi všechna jádra rozdělit. Navíc některé úkoly k tomu přímo vybízejí, pro jiné je to téměř nemožné. Proto je více jader pro některé programy spásou, pro jiné naopak.

Právě na programy se slabou podporou vícejádrových procesorů pamatoval Intel při tvorbě technologie EDAT (Enhanced Dynamic Acceleration Technology). Jedná se vlastně o automatické přetaktování procesoru ve chvíli, kdy některá jádra nepracují, případně kdy neprodukují tolik tepla. V procesorech „Nehalem“ je EDAT ještě razantnější, a tak se používá nový název Intel Turbo Boost Technology.

Procesor, který není

Posledních několik let se stále dokola objevuje slovo virtualizace (pokud ho korektor chyb neopraví na vizualizace). Princip je vlastně velmi jednoduchý – jediný počítač předstírá, že v něm je více počítačů. Ty se označují jako virtuální počítače. Virtuální počítač však měl své hranice, kdy se jen z dálky přiblížil výkonu skutečného počítače, na kterém byl provozován. Zbytek spolkla režie.

Výrobci procesorů přidali speciální části, které pomohly programům rychleji předstírat virtuální počítač. Jedná se tedy o hardwarovou asistenci virtualizace, jak se tento postup označuje. Procesor umožňuje vložit pod operační systém ještě jednu vrstvu zvanou supervizor nebo virtual machine monitor (VMM). Díky tomu je možné provozovat operační systém (potažmo virtuální počítač) bez jakékoli úpravy a v plné rychlosti.

Nejde o nic nového; poprvé se objevil u sálových počítačů IBM System/360 model S40 (leden 1967). V této řadě mainframe počítačů se používá dodnes (jen se jmenují IBM z/Achitecture). V novodobé historii se jedná o AMD-V a Intel VT z let 2005 až 2006. Firma AMD ji používá od procesorů Athlon 64 pro patici AM2, Intel od procesorů Pentium 4 model 662 / 672 a některých modelů Pentia D řady 900. Lepší procesory virtualizaci podporují; levnějším bývají tyto schopnosti odepřeny.

Procesor a okolí

Procesor komunikuje s okolím, aby získával další příkazy a data pro ně. Čím vyšší výpočetní výkon procesor má, tím obvykle stoupá potřeba rychlé sběrnice s velkým průtokem. Proto AMD ve své době licencovala pro procesory Athlon výkonnou sběrnici EV6, proto Intel vytvořil Front Side Bus pro modely NetBurst. Vysoký průtok se řešil hlavně prostým zvyšováním frekvence i datové šířky. A tak došlo na gigahertzy a na datovou šířku až 128 bitů (Intel Itanium). Šířka dělala stále větší problém tvůrcům základních desek; problém byl tím větší, čím více procesorů se mohlo osadit. Obvykle se to řešilo snížením frekvence (popř. jejím nezvyšováním).

Procesory ale komunikovaly na úrovni sběrnic první generace, kdy se používala paralelní sběrnice s poloduplexním provozem. To znamená, že v jediný okamžik mohla data téct jen jedním směrem. Při požadavku opačného směru se muselo počkat. Ve víceprocesorových strojích se většinou sdílela mezi všechny procesory.

Tvůrci procesorů tak vytvořili sérioparalelní sběrnice, obdoby sběrnic 3. generace (viz PCI Express). Ty mají pro každý směr samostatnou sběrnici, a tak mohou data proudit oběma směry najednou. Používají se extrémně vysoké frekvence, díky čemu postačí jen málo vodičů. Řídicí část sběrnic již nepotřebuje velkou část pro sebe.

Nejvážnější změny nastaly při zapojení více procesorů. Každý z nich může komunikovat s několika obvody přes samostatné sběrnice. To není vůbec nová myšlenka, zřejmě poprvé se objevila u legendárních transputerů se čtyřmi linkami z jediného procesoru. Stejný počet se očekává v tomto či příštím roce jak od Intelu, tak od AMD.

Nové procesorové sběrnice se staly také komunikačním prostředkem čipových sad. Procesor se tak může připojit k jinému procesoru nebo k čipsetu stejným typem sběrnice. Stejně tak obvod čipsetu se může připojit k jinému, stejně tak jako k procesoru.

První takovou sběrnicí se stal HyperTransport, vyvíjený firmou AMD v nedalekých Drážďanech. Intel odpověděl až na podzim 2008 o něco modernější QPI (QuickPath Interconnect). Přenosové rychlosti stouply mnohonásobně v porovnání s předchozím řešením (AMD EV6, Intel FSB).

Operační paměť se tradičně připojovala k severnímu můstku, jednomu z obvodů čipové sady. Díky tomu byl procesor nezávislý na konkrétním typu RAM paměti. Stále větší nevýhodou byla delší cesta k paměti, což prodlužovalo přístupovou dobu. Postupně se mnozí výrobci rozhodli přesunout řadič RAM paměti přímo do procesoru. Díky tomu se výrazně zkrátila přístupová doba, zvýšila se propustnost dat z procesoru do RAM a ještě navíc se přesunem odlehčila procesorová sběrnice. To dnes používají procesory Alpha 21364 z dubna 2001, AMD Athlon 64 a novější, Sun UltraSPARC T1 a novější, z posledních Intel Core i7. Původně však šlo spíš o prostředek jak zmenšit a zlevnit počítač viz procesory ALi M6117C (upravený 386sx), Transmeta Crusoe / Efficeon, DEC Alpha 21066 nebo HP PA-7300LC z první poloviny 90. let.

Jak vyrobit čip

Procesor se stejně jako další obvody vyrábí na křemíkovou destičku. Obvykle se pro popis výrobní technologie používá rozměr, a tak jsme měli v minulosti 3µm technologii, 1,5µm technologii, pak se postupně šlo až po 0,13 µm, kdy se začalo objevovat označení 130 nm. Dnešní procesory jsou vyráběny 45nm technologií, na podzim jsou ohlášeny nové modely vyráběné 32nm technologií. Kam to ještě půjde?

Historie opakovaně dokazovala, že lidstvo je schopno vymýšlet nové a nové způsoby jak neustále zmenšovat tranzistory, aby se jich na stejnou plochu čipu vešlo více a více. Tato rychlost byla natolik stálá, že dala podnět k vytvoření tzv. Mooreova zákona. Gordon Moore roku 1965 předpověděl, že se složitost součástek bude každý rok zdvojnásobovat bez změny ceny. Ten platil zhruba deset let, roku 1975 nastal zlom a složitost se zdvojnásobuje jednou za dva roky.

Kde to jednou skončí? Přece nejde zmenšovat tranzistory do nekonečna. Dokonce i sám Gordon Moore byl poněkud skeptický, například při překračování hranice 1 GHz a 0,13µm technologie. Dnes se vyrábí 45nm technologií, chystá masová produkce 32nm technologií (2009). V laboratořích se již vyrobily čipy pomocí 22 nm (masově 2011) či dokonce 16 nm (masově 2013). Nyní se v laboratořích pokoušení vyrobit první vzorky pomocí 11nm technologie.

Bude tedy 11 nm onou nepřekročitelnou hranicí? Fakt, že se mluví a píše maximálně o 11nm technologii neznamená, že jde o konečnou hranici. Vědci prostě uvádějí jen fakta, na další technologie zatím nedošlo. Až čas pokročí, dozvíme se další. Tak jako tak se pro dobu následujících 5 až 10 let není nutné obávat, že bychom narazili na nepřekročitelnou bariéru. Procesory tak budou mít více a více tranzistorů, což znamená stále větší množství výkonných jednotek v každém jádře, stále více jader i stále větší cache paměti.

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,