Cell broadband engine architecture
Semestrální práce z předmětu 31SCS
Martin Černý
Abstrakt Specifikace procesoru ukazují při zachování nízké pořizovací ceny na velké výpočetní kapacity. Procesor kombinuje výkonné jádro s vysokým výkonem jemu podřízených procesorů značně urychlujích aplikace, které zpracovávají vektory, stejně jako aplikace zaměřené na monotónně se opakující výpočty. První větší komerční využití našel tento procesor v herní konzoli Playstation 3 od Sony, načež se rozhodlo využít ho i v jiných aplikacích, z nichž nektěré jsou ještě ve vývoji.
Úvod Koncepce vzešla z nápadu počítače, kde by procesory fungovaly jako buˇnky v biologických systémech. Architekturu zdokonalila firma STI (spolek Sony, Toshiba a IBM ),čímž se původní užití „Cellu“ (hry) změnilo na procesor s všeobecným použitím pro libovolnou platformu a operační systém. Postavením továren s možností výroby technologií 65nm a revolučním přístupem k nové architektuře, se náklady na výzkum a výrobu vyšplhali velice vysoko.Architektura se výrazně liší od všech ostatních známých mikroprocesorových architektur, blíží se topologiím multiprocesorových vektorových superpočítačů. Cílem je produkce nízkonákladových systémů s masivním nárůstem výkonu oproti dnešním systémům, přesto se nezdá pravděpodobné, že by se v nejbližsí době objevil další výrobce, který by se vydal tímto směrem.
Struktura procesoru Cell obsahuje jeden řídící procesor (Power Processor Element) a několik koprocesorů (Synergistic Processor Elements ). Ty jsou mezi sebou navzájem propojeny vnitřní vysokorychlostní sběrnicí (Element Interconnect Bus). Dál se skládá z Direct Memory Access Controller, Rambus XDR Memory Controllers a IO rozhraní. Tyto části podrobněji popíši později. Vzhledem k povaze aplikací je mikroprocesor Cell nejvhodnější pro aplikace se single precision výpočty (32 bitů s plovoucí čárkou). Je schopný provádět i výpočty s double precision (64 bitů), ale to mu výrazně ubírá na počtu uskutečněných výpočetních operací za sekundu. Vnitřní struktura procesoru je k nahlédnutí na obrázku č.1
1. cell broadband engine architecture ( obrazek převzat z internetu )
Power Processor Element (PPE) PPE je v základní nabídce řady power firmy IBM. Je postaven na dvoucestné simultánní multithreading architektuře. PPE není určen pro primární výpočty systému, ale je využíván jako master (nadřazený) pro zbylých osm procesorů SPE. PPE jádro tedy slouží pro obsluhu jednotlivých SPE a rozděluje početně náročné úkoly mezi ně, zatímco sám je vytížený jen minimálně (může obsluhovat až dvě úlohy najednou, dokonce dva samostatné operační systémy). PPE může díky podobnosti s běžnými 64-bitovými procesory pracovat s libovolným operačním systémem, zatímco SPE jádra jsou optimalizována pro počítání s vektory čísel v plovoucí čárce. PPE obsahuje 32 kB instrukční a datové cache (level 1) a 512 kB cache (level 2) . Navíc byl do procesoru implementována technologie VMX, která obsahuje rutiny zaměřené na hry, jako jsou akcelerace 3D grafiky a herní fyziky. S touto technologií je možné dosáhnout 6,4 GFLOPS operací v double precision za sekundu nebo 25,6 GFLOPS v single precision (takt 3,2 GHz). Maximální taktovací kmitočet je 4 Ghz, ale je nutné uvést na pravou míru, že PPE, na rozdíl od SPE, ovlivní výpočty jen nepatrně. Synergistic Processing Element (SPE) Těchto (slave) procesorů najdeme v architektuře osm (viz obr.1), z nich každý funguje jako samostatný procesor. Každý SPE je složen z Synergistic Processor Unit a Memory Flow Controler, což je k nahlédnutí na obrázku č.2. Samotný SPE je procesor s architekturou Reduced Instruction Set Computer (RISC) se 128 bitovou Single Instruction Mutliple Data (SIMD) organizací určenou pro single a double precision výpočty. V současné generaci obsahuje každý SPE 256 kB instrukční a místní datové paměti (local store), která je přístupná pro PPE zároveň adresovatelná přímo softwarovým vybavením. Každá SPE může adresovat až 4GB local store paměti. Local store neplní funkci cache paměti jako u běžného CPU, protože není pro software transparentní ani neobsahuje hardwarové struktury, které by určovaly, jaká data mají být zpracována. Výkon jednoho SPE je při správné aplikaci stejný jako u nejvyšších jednojádrových procesorů současnosti při spotřebě okolo 5 W. Vector Processing SPE jsou vektorové (SIMD) procesory, což znamená, že dokáží v jednom okamžiku pracovat s jednou instrukcí vícero operací najednou. V moderních procesorech jsou tyto instukční sady známy jako MMX, SSE, VMX/AltiVec a jejich nástupci. Aby bylo možné tuto funkci využít, tak je nutné běžící aplikace ”vektorizovat”. Toto je možné udělat v oblastech videa, audia, 3D grafiky a vědeckých výpočtů. Podpora ”vektorizace” může být zabudována v kompileru, takže ji nemusí provádět vývojář sám. Double precision (64 bit) data s plovoucí čárkou se používají při zpracování velkého množství malých čísel nebo potřebujeme-li pracovat s vysokou přesností. V první generaci Cell procesorů nebyla zabudována zvláštní podpora pro tyto výpočty, a to hlavně z důvodu použití v Playstation 3, kde jich nebylo potřeba. IBM však vydalo prohlášení, že se pracuje na další generaci, která tuto podporu obsahovat bude. To by i nadále zvýšilo výkon celého procesoru v double precision výpočtech. Absencí cache jak ji známe se SPE liší od konvenčních CPU. Namísto toho je použita tzv. local store. Má velikost 256 kB a je u každého SPE. Fyzicky jsou navrženy přímo na čipu jako cache, ale chovají se jinak. Pro SPE se tváří jako druhá vrstva registrů a má propustnost až 64 GB/s. Protože každý SPE má vlastní paměť, odpadá řešení problému s přístupem např. jedné společně sdílené paměti a i skládání jednotek je pak mnohem snažší. Velkou výhodou SPEs v procesoru Cell je možnost jejich řetězení s tím, že každé SPE vykonává jinou úlohu v řetězci. Dokonce není omezeno sdružování několika SPE k práci na jednom stejném úkolu s tím, že se výsledek předá dalším SPE. Zpracovávání streamu většinou nevyžaduje velkou propustnost, ale v některých případech by se mohly jednotlivé části řetězce blokovat. Tomuto se předchází znásobením komunikačních cest uvnitř procesoru.
2. Synergistic Processing Element architecture ( obrázek převzat z internetu )
Element Interconnect Bus (EIB) Sběrnice vychází z koncepce DMA (přímý přístup k paměti), která spojuje procesor PPE, MIC (Memory controler), osm SPE koprocesorů a dvě vstupně/výstupní interfacy. EIB je implementována ve formě kruhu složeného ze 4 jednosměrných kanálů o šířce 16 B a umožˇnuje tři současné přenosy. Do budoucna se počítá s přenosem pomocí optických signálů. S polovičním taktem sběrnice než je takt strojového cyklu je možné přenášet na jeden strojový cyklus 96 B dat. Tyto teoretické výpočty jsou však nereálné, protože se počítá s ideálními daty a reálná je asi jen dvoutřetinová rychlost. Nicméně je tu znát optimalizace pro zpracování velkého množství dat. I/O rozhraní Systémové rozhraní použité v procesoru Cell je označován jako FlexIO. FlexIO je organi zován v 12 jednosměrných 8-bitových kanálech. Pět je jich vstupních a sedm výstupních. Jejich maximální teoretická propustnost je 62,4 GB/s (36,4 GB/s směrem ven a 26 GB/s dovnitř) při frekvenci 2,6 GHz. Rozhraní FlexIO může být taktováno nezávisle na zbytku procesoru, typicky však na 3,2 GHz. Dovoluje také spojení dvou Cell procesorů bez dodatečných čipů, pro spojení více procesorů je nutné použít řadič. 3.5 Externí pamět’ Při návrhu procesoru Cell bylo myšleno i na návrh fyzické desky. U běžných technologií je nutné upravovat datové cesty, aby mely stejnou délku a tedy aby i přenášené signály docházely ve stejný časový okamžik. XDR RAM obsahuje technologii FlexPhase, která dovoluje docházet signálům mimo synchronizaci a tím zlehčuje i vlastní návrh procesorové desky. Orientace celého návrhu procesoru na rychlost se projevila i u pamětí. Nízká latence a vysoká propustnost byly požadavkem a proto byly použity paměti XDR RAM. Propustnost pamětí je 25,6 GB/s což je mnohem více než u dnešních běžných počítačů.
Využití Superpočítače - Firmou IBM plánovaný superpočítač (IBM Roadrunner) má být hybridem složeným z procerorů RISC stejně jako Cell procesorů. Bylo avizováno, že by to měl být počítač, který by jako první dosáhl rychlosti výpočtu v řádech PFLOPS(1015). Tohoto výkonu má dosáhnout inovovaný procesor vyrobený technologií 65nm a s vylepšenými SPU. Videohry - Velikého komerčního nasazení se procesor Cell dočkal v podobě herní konzole Playstation 3 firmy Sony. V její útrobách se nachází proce sor taktovaný na 3,2 GHz s omezeným počtem SPE jednotek na 7. šest je jich přístupných vývojářům her a aplikací, jeden je rezervovaný pro systém samotný. Blade server - Firma IBM prezentovala Blade server QS20 založený na dvou Cell procesorech (zásuvná karta s dvěma jednotkama) s operačním systémem Linux s jádrem 2.6.11. Prototyp běžel na 2,4 GHz, současné systémy dosahují rychlosti 3,2 GHz, s výkonem 205 GFLOPS v single precision výpočtech na jeden procesor. Výhledově chce IBM spojit sedm takovýchto karet do jednoho racku, čímž by mohlo být teoreticky dosaženo výkonu 2,8 TFLOPS. Tyto očekávání jsou však čistě teoretická a budou se v reálných aplikacích lišit. Mercury Computer Systems vyrobila a pustila do prodeje zásuvné karty, běžná racková řešení a dokonce kcelerátory pro sběrnici PCI Express založené na procesorech Cell. Domácí kina - Firma Toshiba zvažuje využití procesoru do High Definition Televisions (HDTV). Bylo pre- zentováno dekódování 48 MPEG-2 streamů zároveˇn s výstupním rozlišením 1920x1080.
Shrnutí V jistém přiblížení jsou dvě hlavní cesty jak zvýšit výkonnost procesoru. Jedna možnost je zvýšení taktovacího kmitočtu procesoru, druhou je pak snaha zvýšení počtu instrukcí za strojový cyklus. Obojí vede na z ekonomického důvodu na přidávání dalších struktur do již existujících procesorů a tomu úměrné zvýšování příkonu zařízení, které si ale u mikroprocesorů dovolit nemůžeme. Přestože tato architektura měla původně jasné a úzké uplatnění v herním průmyslu, je několik výsledných vlastností, pro které nelze skrývat obdiv. Nejsou zde problémy s chlazením ani napájením 240ti milionů tranzistorů, ikdyž je použita výroba „hustší“ technologií oproti standardním PC procesorům, a konstrukce nevyžaduje žádné zvláštní jednotky pro určité výpočty. Za tím stojí již zmíněny princip použítí vícejádrového systému. Přesto už vzhledem k ekonomickým výdajům na vývoj dnes „starých“ technologií nelze zřejmě očekávat, alespoň v blízké době, výraznější uplatnění či snad útlak procesorů např. firmy Intel v oblasti PC.
Odkazy [1] http://en.wikipedia.org/wiki/Cell_microprocessor [2] http://www.ibm.com [3] http://www.svethardware.cz [4] http://www.cdr.cz [5] http://www.sony.com [6] http://arstechnica.com [7] http://www.blachford.info [8] http://www.mc.com