Architektúra procesora Cell

Matej Dioszegi 30. 11. 2009

Článok sa venuje popisu architektúry RISCových procesorov pochádzajúcej od spoločnosti Sony, Toshiba a IBM. Procesory tejto architektúry sa označujú ako Cell Broadband Engine. Nájdeme ich v hernej konzole Playstation 3, alebo v superpočítači Roadrunner, ktorý obsahuje najnovšiu verziu PowerXCell 8i.


Práve ich prítomnosť v PS3 otvára spolu s možnosťou inštalovať na PS3 Linux (ktorá už ale bohužiaľ na najnovšom modeli – PS3 Slim, nie je) cestu k zaujímavej a relatívne lacnej výpočetnej sile.

Architektúra bola navrhovaná s cieľom vytvoriť preklenovací mostík medzi “klasickými” procesormi a úzko špecializovanými grafickými procesormi (veľmi podobná téma je CUDA, ktorá tu už popisovaná bola. Rozdiel je v tom, že v našom prípade nie je nutné kupovať a inštalovať žiadne nové zariadenie).

Procesory Cell obsahujú niekoľko výpočetných elementov. Rozdeľujeme ich podľa typu na 2 skupiny:

  1. PPE – Power PC Processor Element

  2. SPE – Synergistic Processor Element

Prvý typ je architektúry PowerPC64, je vhodný na prevádzku OS a aplikácií (32 aj 64 bitových), je to teda bežný procesor z rodiny PowerPC, s ktorým sa stretneme aj mimo Cellov. Druhý typ je optimalizovaný pre výpočetne zložité SIMD aplikácie, ale nehodia sa napríklad na prevádzku OS, keďže prepínanie kontextu nie je ich obľúbená činnosť. V Celloch montovaných do Playstation nájdeme zostavu 1 PPE a 6 (v nainštalovanom PSLinuxe) použiteľných SPE (fyzicky ich je 8, ale 1 je zablokovaný z výroby a druhý je rezervovaný pre účely GameOS).

Uvedené typy sa líšia aj prístupom k pamäti. PPE pracuje s adresami z tzv. efektívneho adresového priestoru, ktorý reprezentuje hlavnú pamäť. SPE pracujú s adresami z lokálnej pamäte (každý SPE disponuje 256K lokálnej pamäte) a s hlavnou pamäťou komunikujú pomocou DMA. Každý SPE má vlastný DMA radič, ktorý je schopný kontrolovať 16 paralelných DMA prenosov.

EIB

Elementy Cell procesoru (PPE, 8×SPE, radič pamäte a 2 I/O rozhrania – dohromady 12) sú prepojené zbernicou EIB (Element Interconnect Bus).

EIB má kruhovú topológiu so 4 “kruhmi” a jedným arbitrom, ktorý prenos po zbernici riadi. Každý kruh má šírku 16 bytov, kruhy sú jednosmerné, po dvojiciach opačne orientované. Takt (doba jedného tiku hodín) EIB je dvojnásobný oproti taktu PPE a SPE, teda je schopná preniesť 16 bytov na 2 takty. Na každom kruhu môžu naraz prebiehať 3 transakcie (1 transakcia trvá 8 taktov hodín t.j. 4 takty EIB, v EIB je zapojených 12 účastníkov. Teda na zbernicu môžu vysielať traja naraz, vo vhodných “vzdialenostiach” – predstavte si 3 tramvaje so 4 vagónmi jazdiacimi dokola po trati dĺžky 12), čo nám dáva maximálny prenos 96 bytov na jeden takt hodín (4 kruhy* 3 transakcie*16 bytov / 2 takty EIB na takt procesora). Z pohľadu aplikácie sa po EIB prenášajú 128bytové kusy dat, 128 bytov zodpovedá šírke jedného riadku v cache PPE.

Ilustrácia architekúry je na nasledujúcom obrázku.

Cell procesor

PPE

Ako už bolo spomenuté, PowerPC Processor Element je RISC-ový procesor architektúry PowerPC, rozšírený o vektorové inštrukcie. Má pod kontrolou celý systém, beží na ňom OS, aplikácie a prideľuje úlohy SPU elementom.

Skladá sa z dvoch časí – PowerPC Processor Unit (PPU) a PowerPC Processor Storage Subsystem (PPSS). Obsahuje 32kB L1 oddelenú inštrukčnú a dátovú cache a 512kB spoločnú L2 cache.

Ich umiestnenie je vidieť na obrázku.

Cell procesor

PPU

PPU sa skladá z niekoľkých funkčných blokov:

1 – Instruction Unit, stará sa o vyzdvihovanie, dekódovanie, rozdeľovanie a ukončovanie inštrukcií. Obsahuje inštrukčnú L1 cache šírky 128 bytov.

2 – Load and Store Unit, stará sa o prístup k dátam, vykonáva load a store inštrukcie (zápis a čítanie z pamäti/cache) a obsahuje spomínanú L1 dátovú cache (write-through).

3 – Fixed Point Unit, ktorá má na starosti aritmetiku celých čísel.

4 – Vector/Scalar Unit, ktorá sa stará o aritmetiku čísel s plávajúcou rádovou čiarkou a aritmetiku so 128-bitovými vektory.

5 – Memory Management Unit, ktorej funkcia je zrejmá z jej názvu. Má na starosti preklady adries pomocou SLB (s kapacitou 64 záznamov) a TLB (s kapacitou 1024 záznamov).

PPSS

Tento subsystém sa stará o prístup do pamäte, komunikáciu s EIB a zaisťuje koherenciu cache (pomocou snoopingu, t.j. sledovaním diania na zbernici a označovaním riadkov v cache na platné, zapísané (s týmito dvoma sa stretneme aj bez použitia snoopingu) a zdieľané). Obsahuje 512 kB L2 cache (write-back) so šírkou 128 bytov.

Detailné usporiadanie PPU a PPSS je na nasledujúcom obrázku.

Cell procesor

Na záver pre úplnosť ešte niečo o registrovej sade PPE. Aplikácia má k dispozícii viacero registrov, väčšinu z nich 64 bitových. Výnimku tvoria registre pre vektory, ktoré majú 128 bitov a niektoré špeciálne registry, ktoré majú iba 32 bitov (napríklad register, do ktorého sa zaznamenávajú informácie o výsledkoch aritmetiky čísel s plávajúcou rádovou čiarkou).

SPE

SPE je 128 bitový RISC procesor určený na intenzívne matematické výpočty. Pozostáva z dvoch častí – synergistic prcessor unit (SPU) a Memory Flow Controller (MFC, viď ďalej). SPE neobsahuje žiadne cache, na SPU je pamäť veľkosti 256kB nazývaná Local Store Area (ďalej len LS). SPU spracováva inštrukcie aj dáta z LS. S hlavnou pamäťou SPU spolupracuje použitím DMA prenosov realizovaných MFC. Schematické znázornenie SPE je na obrázku.

Cell procesor

Prístup do LS

Do LS pristupuje SPU pomocou Load/Store inštrukcií. Takisto má do LS prístup MFC, ktorý zapisuje a číta dáta potrebné pre DMA. Je možný ešte jeden spôsob – aliasing. Software na PPE môže namapovať LS do efektívneho adresového priestoru. Prístupy PPE na tieto adresy potom v skutočnosti znamenajú zápis do LS bez použitia DMA.

SPU

Čo sa týka vnútornej štruktúry SPU, podobá sa zhruba na PPU, jeho registry sú ale všetky dlhé 128 bitov. Štruktúra SPU je na nasledujúcom obrázku. V hornej časti vidíme spomínanú LS pamäť a funkčné bloky sú označené súhrnným názvom SXU – Synergistic Execution Unit.

Cell procesor

MFC

Memory Flow Controller umožňuje SPU prístup do hlavnej pamäti pomocou DMA (inú priamu možnosť SPU nemá). Toto je veľmi potrebné pri náročných výpočtoch, pretože procesor strávi len pár taktov nastavením DMA prenosu a môže sa ďalej venovať svojej pôvodnej práci – MFC dáta prenesie bez jeho účasti. Okrem funkcie DMA radiča má MFC na starosti ešte synchronizáciu dát medzi LS a hlavnou pamäťou a komunikáciu (schránky a signály).

MFC poskytuje tieto služby:

1– Kanály

Software bežiaci na SPE komunikuje so svojim okolím cez kanály. Kanál je jednosmerné rozhranie na prenos správ, schopné prenášať 32 bitové hodnoty.

2 – Schránky a signály

Nad kanálmi sú postavené rozhrania, ktoré reprezentujú schránky (mailbox) a umožňujú posielanie signálov. Každý SPE má k dispozícii 2 schránky na prenos správ smerom k PPE a jednu na prenos správ v opačnom smere. Schránka slúži na posielanie správ medzi PPE a SPE. Správou sa rozumie 32 bitová celočíselná hodnota. Tento mechanizmus je vhodný na prenos malých kusov dát, najčastejšie na parametre funkcií.

Kanály tiež poskytujú rozhranie pre signály (signál je skrátený názov pre signálový kanál, signál je teda len obyčajný kanál so špecifickými dátami – ktoré nazývame signálmi). MFC má vyhradené 2 kanály na príjem signálov od PPE. (poznámka: na signalizáciu od SPE k PPE sa používa jedna zo schránok určených k prenosu správ smerom k PPE.)

3 – Príkazy pre MFC a fronty

Software na PPE aj SPE používa príkazy pre MFC (MFC commands) na vyvolanie DMA prenosu, synchronizáciu, dotazy na DMA status, komunikáciu cez schránky alebo signály. MFC príkaz pre DMA prenos budeme nazývať DMA príkaz.

MFC si udržiava dve fronty príkazov. V jednej fronte čakajú všetky príkazy od SPU, ktorý je súčasťou toho istého SPE ako daný MFC, v druhej potom MFC príkazy od ostatných SPE a PPE.

MFC podporuje vykonávanie DMA príkazov mimo poradia (out of order execution) a umožňuje označovať jednotlivé DMA príkazy tagom. Software vďaka tomu je schopný zistiť stav DMA prenosov pre celú skupinu príkazov. Príkazy v jednej skupine sa dajú synchronizovať pomocou bariéry.

4 – DMA radič

MFC je schopný viesť paralelne až 16 DMA prenosov vyžiadaných od jeho pridruženého SPU.

Týmto by som rád uzavrel prvý diel seriálu. Mali by sme mať predstavu, ako to vo vnútri Cell-u vyzerá, z čoho sa skladá a čím je zaujímavý. V najbližšom dieli si ukážeme, ako na procesoroch Cell programovať s využitím SPE.

Literatúra

1 – Cell Broadband Engine Programming Handbook Including the PowerXCell 8i Processor , v 1.11

Ohodnoťte jako ve škole:

Průměrná známka 2,60

Našli jste v článku chybu?
Zasílat nově přidané příspěvky e-mailem
Lupa.cz: Google navádí, jak krást fotky, stěžuje si ČTK

Google navádí, jak krást fotky, stěžuje si ČTK

Podnikatel.cz: Podal přiznání, má přeplatek. Nevrátí mu ho

Podal přiznání, má přeplatek. Nevrátí mu ho

Root.cz: SourceForge už nebude přidávat adware

SourceForge už nebude přidávat adware

Podnikatel.cz: Daň z příjmů: online formulář

Daň z příjmů: online formulář

Lupa.cz: Vlhký sen vnitra se splnil: vznikl státní podnik pro IT

Vlhký sen vnitra se splnil: vznikl státní podnik pro IT

Podnikatel.cz: Nové lejstro k doložení životního pojištění

Nové lejstro k doložení životního pojištění

Vitalia.cz: Levnější pivo? Babiš neví, co činí

Levnější pivo? Babiš neví, co činí

Podnikatel.cz: Sick day ve hře. Ale s přísnými pravidly

Sick day ve hře. Ale s přísnými pravidly

Vitalia.cz: Ministerstvo: Palmový olej nezakážeme, není důvod

Ministerstvo: Palmový olej nezakážeme, není důvod

Vitalia.cz: Pro otrlé: 42 obrázků, které budou na cigaretách

Pro otrlé: 42 obrázků, které budou na cigaretách

Lupa.cz: Lepší než Google: proč používat DuckDuckGo?

Lepší než Google: proč používat DuckDuckGo?

Lupa.cz: Foto: Jak se skladuje zboží pro Koloniál.cz

Foto: Jak se skladuje zboží pro Koloniál.cz

Vitalia.cz: Nafotila svůj boj s rakovinou

Nafotila svůj boj s rakovinou

Měšec.cz: Vše o dani z nemovitých věcí

Vše o dani z nemovitých věcí

Podnikatel.cz: Není jim to, tak to vrátí. Víme, jak na ně

Není jim to, tak to vrátí. Víme, jak na ně

Podnikatel.cz: Nechtějí vrátit odpočet DPH? Chtějte úrok

Nechtějí vrátit odpočet DPH? Chtějte úrok

Vitalia.cz: Inspekce kontrolovala pesticidy a vodní dýmky

Inspekce kontrolovala pesticidy a vodní dýmky

Podnikatel.cz: Legální fotka za cenu kávy. Na to máte, ne?

Legální fotka za cenu kávy. Na to máte, ne?

Měšec.cz: Velký jističový podfuk

Velký jističový podfuk

Vitalia.cz: Proč si černý kašel cestu zpátky našel

Proč si černý kašel cestu zpátky našel

Ušetřete