reklama

IBM Cell – procesor budoucnosti

Celý svět si vzrušeně povídá o nových superprocesorech, které trhají výkonnostní rekordy a jejich tvůrci konečně ukázali tradičním výrobcům procesorů, jak se to dělá. Nebo je to trošku jinak? [jen pro předplatitele]

Mít vysoký výkon jen procesoru se pokusil již Intel roku 1988, kdy uvedl téměř 64bitový model i860. Jeho dost brutální výpočetní výkon posiloval nejednu grafickou či jinak náročnou aplikaci, a to včetně superpočítače iPSC/860.

Mít na výpočty matematický koprocesor byla další z cest. Vedle procesoru se osadil další obvod, specializovaný na náročné výpočty. Prvním byl Intel 8087, následovaný dalšími modely Intelu, Motoroly (MC68882) či Weiteku (Abacus 4167).

Procesor s integrovaným matematickým koprocesorem se stal hitem roku 1989, kdy Intel a Motorola přinesly modely i486 a MC68040. Byla to de facto prostá evoluce, kdy se dva čipy spojily v jediný.

Na procesoru stále ležela tíha výpočtu s celými čísly. Proto se toto břímě předalo specializované části. A aby se jeden procesor nenahradil opět jedním malým specializovaným, vytvořil se víckrát vedle sebe. Tak vznikly SIMD instrukce, které přišly do klasických počítačů pět let poté. Hewlett-Packard představil v procesoru PA-7100LC SIMD pro celá čísla s názvem MAX-1. Laická veřejnost se se světem SIMD seznámila až v lednu 1997, kdy byla uvedena obdobná sada, jen s názvem MMX. Obě příkazové rodiny pracovaly s celými čísly; dá se říct, že nahrazovaly výpočetní výkon procesoru. Nejednalo se tedy o náhradu matematického koprocesoru.

Co je výkonnější než jeden matematický koprocesor? Dva koprocesory! Právě na této myšlence jsou postaveny instrukční sady SIMD s plovoucí desetinnou čárkou. Právě ta je velmi potřebná pro 3D výpočty. Doposud se odehrávaly v matematickém koprocesoru. Do SIMD podoby se dostaly se sadami AMD 3DNow!, Intel SSE, Motorola AltiVec, Sun Microsystems VIS, MIPS MIPS-3D ...

Cesta k více jádrům

Tvůrce procesoru má jednoduché zadání – jakýmkoli způsobem dostat z toho kousku křemíku co nejvyšší výpočetní výkon. Měli jsme procesor, postupně jsme přidali matematický koprocesor, SIMD pro celá čísla a SIMD pro plovoucí desetinnou čárku. Jsme vlastně na úrovni mnoha současných procesorů. Co je výkonnější než jeden takto vybavený procesor? Ano, jsou to procesory dva. Právě tak vznikly víceprocesorové počítače. Protože se jedná o úplně stejné procesory, vznikl pojem symetrický multiprocesing. Mezi nejznámější patří Intel Pentium Pro, AMD Opteron, Intel Xeon a další.

Slovníček

Cache – vyrovnávací paměť. Rychlá paměť několika posledně používaných položek, které pak rychlý procesor nemusí číst z pomalé RAM
FLOPS – počet operací v plovoucí desetinné čárce za vteřinu (Floating Point Operations per Second). KFLOPS jsou tisíce, MFLOPS jsou miliony, GFLOPS jsou miliardy

Mít ale pro čtyři procesory také čtyři patice a čtyřnásobný prostor, to není zrovna nejlepší. Proč tedy na jeden kousek křemíku, do jedné patice, do jednoho pouzdra nedat dva procesory (nebo víc)? Právě s takovou myšlenkou byly uvedeny procesory IBM Power4, IBM PowerPC 970MP, Intel Pentium D nebo AMD Opteron Dual-Core.

Protože ani dvoujádrové procesory nám nestačí, začali jsme se ptát. Proč musí mít každý procesor (každé jádro) tolik součástí, nestačí mít nějakou ořezanou verzi, ale vícekrát? Třeba jeden procesor (řídicí) by byl kompletní, ostatní ořezané. Právě to je typickým znakem mnoha průmyslových procesorů včetně IBM Cell.

Zkuste zaměstnat více jader

Vytvořit procesor s desítkami jader (či výkonných částí obecně) není pro návrháře hardwaru žádný problém. Ale dát všem práci, to už je problém stále větší. Záleží totiž na tom co vlastně chceme dělat.

Klepněte pro větší obrázek
IBM Cell je jako Sněhurka a osm trpaslíků; má velký centrální procesor, obklopený osmi miniaturami procesorů
Představme si sebe jako program a počítač jako jádro procesoru. Jeden uživatel samozřejmě pracuje na jednom počítači (který ho zdržuje). Přidáme mu tedy druhý počítač. Pomůže mu zvýšit jeho výkon? Jak kdy? Pokud píše ve Wordu, tak ani omylem. Pokud na jednom počítači třeba píše a zároveň potřebuje defragmentovat/odvirovat druhý počítač, tak ano. A co přidat další dva počítače? Právě jsme se krásně vžili do pocitů programátora, který se snaží mermomocí rozdělit program tak, aby se zaměstnaly všechny části procesoru. Ale pokaždé to prostě nejde. Je to tím obtížnější, čím více je jader v procesoru. A právě to nám prozatím brání, abychom měli třeba 16jádrový procesor v každém počítači.

Doslova brutální výkon shromážděný na několika čtverečních centimetrech křemíku lze tedy využít překvapivě málo. Do kanceláře se hodí asi tak jako formule F1 do pražských silnic. Kdo ale najde způsob, jak výkon využít, může si blahem pomlaskávat. Typicky se jedná o aplikace s extrémním nárokem na 3D výkon. Zde může plesat srdce každého hráče, protože přesně ví, jak výkon využít. Ale nemusíme se omezovat jen tím, miřme daleko výš. Takový výkon je nutný pro profesionální 3D simulace, například v leteckých trenažérech (hlavně vojenských). Stále větší množství superpočítačů má jako základ některý ze zde jmenovaných procesorů, což také něco znamená.

Představte si několik počítačů… a máte Cell

Projekt firem Sony, Toshiba a IBM dostal název Cell (buňka) podle vnitřní architektury tohoto procesoru. Skládá se z devíti jader PowerPC; nejedná se ale o symetrický multiprocessing. Jedno jádro je privilegované a ostatním nadřazené s názvem PPE (Power Processor Element). Ostatní jádra jsou silně ochuzena o nepotřebné části, označují se jako SPE (Synergistic Processing Element). PPE má parametry průměrného 64bitového procesoru. Velikost cache L1 je 32 + 32 KB, L2 má kapacitu 512 KB, podporuje cosi jako Hyper-Threading.

Pojďme se zahloubat do vnitřku výkonných dělníků, do SPE. Jde vlastně o vyfiltrovanou SIMD část pro plovoucí desetinnou čárku s obvyklou šířkou 128 bitů. Uvádí se, že při frekvenci 3,2 GHz vydá teoreticky výkon až 26,5 GFLOPS! A teď si to vynásobte sedmi (protože jich je sedm, osmý SPE je běžně vypnutý). V praxi se toto číslo samozřejmě zmenšuje. Podle IBM lze získat až 76 % teoretického maxima. To je možné hlavně díky 256 KB cache L2 pro každý SPE.

Klepněte pro větší obrázek
IBM Cell má výpočetní výkon 44× vyšší než nVidia Riva 128, případně 18× vyšší, než Intel Pentium 4 3,0 GHz

Protože pomocných procesorů je osm, znamená to 8× 256 kB = 2 MB L2 cache pro tuto část. Celý procesor má tedy 2,5 MB cache druhé úrovně. Že je L2 cache nositelkou výkonu si vzpomene každý, kdo si pořídil úplně první Celeron a s úlevou přešel na jeho „A“ podobu. Rozdíl byl ve 128 kB cache L2 (mít či nemít). IBM tedy neudělala stejnou chybu v návrhu jako spousta jiných. Čím více cache je k dispozici, tím svobodněji lze programovat a o to více aplikací potom vznikne. Cache v Cellu navíc nepracuje jako běžná vyrovnávací paměť procesoru x86, nejsou v ní tedy uloženy poslední položky čtené z paměti, ale je to spíše rychlá lokální paměť každé vektorové jednotky, označení cache tedy pro ni ani není přesné.

Jak si takový procesor představit? Vezměme si počítač Apple PowerMac jednojádrovým PowerPC G5 a přetaktujme jej na 3,2 GHz. K tomu připojme osm zhruba stejně upravených počítačů (ale s menší cache pamětí). Vytvořili jsme tak procesorovou obdobu IBM Cell.

Klíč k rychlosti

Klepněte pro větší obrázek
Procesory typu IBM Cell dláždí cestu do časů, kdy se video překonvertuje z DVD do MPEG-4 při samotném kopírování na pozadí. „Na popředí“ přitom budete hrát nějakou hodně náročnou hru

A proč je právě řešení IBM tak extrémně výkonné? Odpověď tkví ve využití cache paměti. Právě práce s RAM v roli hlavní paměti nebo cache je klíčem k podržení nebo naopak zašlapání výkonu. IBM využila jednu z nejrychlejších pamětí na světě (XDR DRAM) a připojila ji k procesoru Cell. Navíc rozdělila L2 cache tak, aby každé jádro mělo vlastní (přesněji lokální paměť). Procesory si tak svými požadavky na paměť „nelezou do zelí“ a mohou se soustředit na svou práci. Další klad je v tom, že jednotek není mnoho. Sestava 1 + 8 je sice velká, ale stále existují i složitější. A do nekonečna to jít nemůže; čím víc se dělí úloha, tím obtížněji to jde.

SIMD jednotka zvaná VMX (AltiVec) je upravena do podoby VMX-128. Číslo napovídá nejen datovou šířku, ale také počet registrů, který je obrovský (tedy pro SIMD). Opět z toho těží programátor, který nemusí s několika registry šetřit a vše honem ukládat do RAM paměti (která je dnes opravdu daleko i přes všechny ty cache).

To nejlepší na konec – procesor Cell dokáže ze sebe vydat při 3,2 GHz výpočetní výkon až 218 GFLOPS, po přetaktování na 4 GHz až 256 GFLOPS! Pro představu – Clearspeed CSX600 má 25 GFLOPS, nVidia GeForce 6800 na 550 MHz má 106 GFLOPS, GeForce FX 5900 má 40 GFLOPS, Riva 128 má 5 GFLOPS, Intel Itanium 2 na 1,6 GHz s 9 MB cache L3 má špičkový výkon 24,2 GFLOPS, Itanium 300 MHz má 13 GFLOPS, Pentium 4 na 3 GHz až 12 GFLOPS, první modely AMD Opteron měly 11,264 GFLOPS, Athlon XP 2200+ má 7,2 GFLOPS, Athlon 600 MHz má 2,4 GFLOPS.

Jak to řeší Microsoft Xbox 360?

Nároky her jsou stejné, ať jde o jakoukoli platformu. A tak i herní konzole Microsoftu musely posílit. Oproti řešení IBM Cell šly jinou cestou, symetrickou. Procesor má tedy všechna jádra stejná, se stejnými parametry. Netypický je počet jader, tři je pro počítače docela netypické číslo. Pracují na příjemně vysoké vnitřní frekvenci 3,2 GHz.

Výpočetní výkon je založen na matematickém koprocesoru a na dvou jednotkách AltiVec (neboli VMX). Každé jádro má vlastní L1 cache (32 + 32 kB, instrukce + data), všechna dohromady sdílejí L2 cache o velikosti 1 MB. S okolím procesor komunikuje po superrychlé duplexní sběrnici s maximálním přenosovým výkonem 21,6 GB/s. Tvůrcem tohoto procesoru je opět IBM, které tak vlastně může být jedno, jestli u hráče vyhraje Sony PlayStation 3 nebo Microsoft Xbox 360. A teď to nejzajímavější – výkon: maximálně 115,2 GFLOPS.

Procesory na vlastní oči

Není nic těžšího než převádět nadšení do reálného života a snášet se zpět na pevnou zem. Skvělé procesory jako IBM Cell ukázaly, jak se také může získat výpočetní výkon. Není to ale konec současných procesorů, spíš jejich doplnění.

Vícejádrové procesory nás od nynějška budou provázet napořád. Můžete se o tom přesvědčit na nadcházející konferenci zvané multicoreEXPO, chystané na 21. až 23. března 2006. A tak až se budete tou dobou potloukat po Kalifornii, stavte se v Santa Clara Convention Center (5001 Great America Pkwy, Santa Clara, 95054; taková budova s pěti skleněnými pyramidami; kdybyste to nemohli najít, tak z ředitelství AMD i Intelu to je kousek, pár set metrů směrem ke golfovému a tenisovému klubu Santa Clary, než se přejede Tasman Drive).

Pro nás ostatní je blíž bratislavské Slovenské národné múzeum, kde na výstavě „Mikroprocesory – srdcia počítačov“ můžete poprvé vidět dvoujádrový procesor s 24 MB cache L3 (slovy dvacet čtyři) s viditelným čipem rozměrů neuvěřitelných rozměrů 27,72 x 21,5 mm. Šanci máte do 25. února 2006.

Sun UltraSPARC T1 a ostatní

Je tomu pár měsíců, co společnost Sun Microsystems překvapila svým novým procesorem UltraSPARC T1 „Niagara“ s taktem až 1,2 GHz. Má překvapivě mnoho společných rysů s IBM Cell. Jedná se o plně 64bitový procesor (to nepřekvapuje), složený z osmi stejných jader. Každé z nich je navíc schopno pracovat najednou se čtyřmi vlákny (kusy programu), což připomíná dvojnásobný HyperThreading (ale pod názvem CoolThreads). Jediný procesor tak s osmi jádry může pracovat na až 32 vláknech!

Protože jsou všechna jádra stejná, je možné lépe a účinněji využívat jejich potenciál z programátorského hlediska než u nesymetrických sestav. UltraSPARC T1 však nesměřuje do herních konzolí, ale úplně jinam, do pracovních stanic a serverů. Procesor byl navržen pro aplikace typu webový server či obchodní transakce, kde se výkon v plovoucí desetinné čárce tak neužije. Ale právě to zajímá svět 3D (včetně her).

Přestože je to nekonečná paleta nejrůznějších procesorů, omezím se na zmínku o několika z nich. Za pozornost stojí dvoujádrový Broadcom BCM1480, Cavium Octeon NSP 38xx, 96jádrový CSX600 firmy ClearSpeed Technology, procesor Intrinsity FastMATH se šestnácti pomocnými jednotkami či dvoujádrový PMC-Sierra RM11200.

Průmysl vs. stolní počítače

Doposud byla řeč vlastně jen o procesorech pro stolní počítače, pracovní stanice nebo servery. Vedle toho existuje obrovské množství procesorů, určených pro průmyslové aplikace. Tak se říká všemu, co v sobě počítač sice má, ale počítač se tomu neříká (třeba elektronika pro řízení motoru v autě, pračky atd.). Obě kategorie mají velmi odlišný náhled na věc.

Běžné počítače jsou založeny na tom, co umějí jejich procesory (a další části). Jakákoli změna má dalekosáhlé následky („Je sada SSE3 podporována tímto programem?“ nebo „Má tento procesor SSE3, jak to vyžaduje program?“). Změny se totiž musejí promítnout také do operačních systémů a samotných aplikací. Přijít s kompletně novým procesorem, který má vytlačit ty současné, je téměř nemožné.

Průmysl si s tím nemusí dělat těžkou hlavu. Integrovaná elektronika má jediný program, napsaný speciálně pro ni. Jestliže se naskytne lepší a pokud možno i levnější, výrobce může relativně snadno přejít na nový procesor. Na to se spoléhají výrobci procesorů právě pro tuto kategorii, a tak stále vzniká plno vysoce zajímavých záležitostí s neuvěřitelně vysokým výpočetním výkonem s až nechutně nízkou spotřebou (obojí zároveň).

Patrik Veselík

Architektura Cell procesorů

Architekturu Cell vyvinula IBM ve spolupráci s Toshibou a Sony. Měla by přinést revoluční zrychlení do mnoha oblastí – od 3D her, přes multimédia až po distribuované počítání projektů jako SETI.

Cell má mít jedno běžné jádro podobné dosavadním procesorům IBM Power (buď PowerPC 970 známé z Apple G5 nebo následující řady Power5) a osm tzv. APU (Attached Processor Units). To jsou vektorové procesory (jedna instrukce nad množinou dat, SIMD) svou prací připomínající třeba vertex shadery z grafických čipů. Jejich výpočetní síla je sama o sobě úžasná, ale mohou pracovat nejen nezávisle, ale také společně a data lze mezi ně libovolně distribuovat. Každý z nich má vlastní malou paměť a jsou spojeny i s jádrem rychlou vnitřní sběrnicí. Nepleťte si APU s koprocesory (FPU) dnešních procesorů, tyto jednotky jsou samostatnými procesory se vším všudy (kromě vysokorychlostní SRAM zastupující cache obsahují 128 128b registrů a čtyři jednotky pro celočíselné a další čtyři pro desetinné operace). Vektorové APU tak zvládne provést čtyři 32b operace v jediném taktu (a osm operaci násobení-sčítání).

Klepněte pro větší obrázek

Cell má jedno běžné jádro podobné dosavadním procesorům IBM Power a osm tzv. APU (Attached Processor Units, zvané též SPE). To jsou vektorové procesory (jedna instrukce nad množinou dat, SIMD) svou prací připomínající třeba vertex shadery z grafických čipů

Právě nahrazení vyrovnávací paměti (cache) v APU běžnou lokální pamětí je kupodivu jednou z příčin rychlosti a realizovatelnosti návrhu. Cache zvyšuje složitost čipů a pro vektorové jednotky tohoto typu není tak vhodná jako postup, který používá APU: operace provádí výhradně nad registry, které si čte nebo zapisuje do zmíněné lokální paměti. Ta je dostupná pouze pro dané APU a opravdu v ní nehledá posledně používané položky. Další silnou stránkou Cell procesoru je možnost zapojení jednotlivých APU do proudového zpracování, kdy každý krok ze série potřebných operací dělá jedno nebo více APU.

Cell procesory budou rychlé pro všechny aplikace, které mohou být tzv. vektorizovány – tedy aby mohly být operace prováděny s celou množinou hodnot (typicky po sobě jdoucí data ve smyčce). Ale do množiny aplikací patří téměř všechny dnes výkonnostně kritické oblasti a na ty zbývající musí posloužit samotné jádro Power.

Výkon Cell procesorů je natolik slibný, že by mohl vážně ohrozit x86 procesory v PC. Ty sice už přežily několik lepších konkurenčních technologií (RISC procesory, 64b procesory DEC Alpha, procesory z řad IBM Power, ...) a mnohé z nich okopírovaly, ale Cell by měly být výkonem natolik vpředu a architekturou natolik odlišné, že by to mohlo donutit Intel i AMD k vážnému přehodnocení výstavby svých x86 řešení.

Propustnost operační paměti lze asi nejlépe pozorovat oba systémy by v této stránce mohly být podobné. Propustnosti přes 20 GB/s, kterou dnes nabízí jen nejdražší grafické karty, dosáhne jak Xbox 360, tak PS3. Microsoft volil opět konvenčněji. Osvědčené DDR3 paměti a celkovou kapacitu 512 MB bude sdílet celý systém včetně grafiky. Naopak Sony chce využít Samsungem nedávno uvedené paměti XDR, pro které by neměl být problém tikat na frekvenci procesoru – 3,2 GHz. Tento typ paměti bude samozřejmě velmi drahý, a tak se počítá jen s 256 MB připojených 64b sběrnicí. Oněch 256 MB je však vyhrazeno exkluzivně pro systém, grafika má vlastní paměť. Protože DDR3 paměti v Xbox 360 budou připojeny 128b sběrnicí, propustnost by měla být u Sony jen mírně vyšší.

Mirek Jahoda

Témata článku: Procesory, Budoucnost, IBM, Cell, Procesor, Riva, Sony Playstation, Sony Playstation 3, PS3, Niagara, Seti, Sierra, Sram, Evoluce, Floating

4 komentáře

Nejnovější komentáře

  • dvader, dvader 13. 2. 2006 9:10:54
    Jen tam ještě chybí, že IBM má procesory POWER5 i ve 4 jádrovém (tzv. QCM...
  • Tomas 26. 1. 2006 22:48:51
    aha...takze nejenze uvidim reklamu za svoje penize, kterou videt...
  • jsembuh, jsembuh 26. 1. 2006 21:57:15
    Tak konecne se mi povedlo dostat se k tomuto clanku. Myslim, ze mnoho...
reklama
Určitě si přečtěte

UPC překopli páteřní kabel. V Brně i druhý den nejede internet ani kabelovka

UPC překopli páteřní kabel. V Brně i druhý den nejede internet ani kabelovka

** V Brně byl velký výpadek služeb UPC ** Důvodem je překopnutý páteřní kabel ** V některých lokalitách služby stále nefungují

5.  12.  2016 | Jakub Čížek | 103

17 expertek Microsoftu předpovědělo rok 2027. Splní se alespoň něco?

17 expertek Microsoftu předpovědělo rok 2027. Splní se alespoň něco?

** Zmizí klasické vyhledávače ** Budeme programovat buňky ** Kvantové počítače překonají šifry

6.  12.  2016 | Jakub Čížek | 36

11 tipů na dobrý stolní počítač: od základu po herní mašiny

11 tipů na dobrý stolní počítač: od základu po herní mašiny

** Postavte si stolní počítač! Máme pro vás 11 vzorových sestav s rozpisem komponent ** Většina tipů cílí na hráče, věnujeme se ale i základnímu PC a počítačům na střih videa ** Nadělte si nový počítač třeba pod stromeček

5.  12.  2016 | Adam Kahánek | 74

Nejlepší notebooky nad 20 tisíc: poradíme, které teď chcete

Nejlepší notebooky nad 20 tisíc: poradíme, které teď chcete

** V notebooku s cenou nad 20 tisíc nesmí chybět kvalitní displej a rychlé úložiště ** Za dalších deset tisíc můžete dostat navíc styl nebo výkonnější komponenty ** Vybírat můžete z různých velikostí i konstrukcí

8.  12.  2016 | Stanislav Janů | 84


reklama