Cell (procesor)
Cell este un microprocesor dezvoltat de o alianță formată din Sony împreună cu IBM și Toshiba denumită "STI".
Designul arhitectural și prima punere în aplicare au fost efectuate la STI Design Center din Austin, Texas, pe o perioadă de patru ani începând din martie 2001 cu un buget conform Sony ce se apropie de 400 de milioane de dolari americani.[1] Cell este prescurtarea de la Cell Broadband Engine Architecture, prescurtat frecvent CBEA sau Cell BE. Procesorul Cell este format dintr-un nucleu de procesare de uz general cu arhitectură PowerPC cu performanțe relativ modeste și mai multe co-procesoare pentru accelerarea execuției aplicațiilor de tip multimedia, a calculelor vectoriale sau a altor tipuri de aplicații specializate. [2]
Prima aplicație comercială importantă Cell a fost încorporarea lui în consola de jocuri video PlayStation 3 a celor de la Sony. Toshiba a anunțat că are planuri pentru încorporarea microprocesorului Cell în televizoare HD, dar se pare că a abandonat idea. Caracteristici deosebite ca memoriile XDR și interconexiuni coerente Element Interconnect Bus (EIB)[3] vor fi folosite probabil pentru viitoarele aplicații la supercalculatoare.
Prezentare generală
modificareCell Broadband Engine a fost conceput ca un microprocesor specializat pentru aplicații multimedia, în special pentru jocuri și conținut video în format HD. În afara utilizării lui ca microprocesor în PlayStation 3 se poate preta foarte bine și în procesarea imaginilor digitale în medicină sau în domeniul științific sau pentru simularea comportării fizice a unor modele virtuale complexe.
Privit din punct de vedere al arhitecturii procesoarelor actuale el este o combinație între un procesor de uz general(precum Seria I de la Intel sau Athlon 64 de la AMD ) și unul grafic din seria GeForce de la Nvidia sau Radeon de la ATI.
Până la apariția sa creșterile de performantă ale unui procesor de uz general erau obținute din mărirea frecvenței de funcționare, folosirea unui număr mai mare de unități de calcul puse în paralel în interiorul unui nucleu(arhitectură super-scalară) sau a unei linii de execuție cu mai multe etape(arhitectură super-pipeline). Cu toate acestea, fără o creștere proporțională a vitezei memoriei, aceste abordări au dus doar la creșterea timpilor de acces la memorie. Mai mult, datorită imposibilității de a avea unui număr mare de accesări concurente la memorie, nucleele de procesare complexe ajung să nu folosească la maxim banda de asamblare(engleză:pipeline) și lățimea de bandă maximă a memoriei. Aceste neajunsuri duc la utilizarea deficitară a spațiului pe pastila de siliciu și o creștere disproporționată a puterii disipate în raport cu performanța generală.
Abordarea adoptată de către "STI" pentru Cell a fost concentrarea pe îmbunătățirea raportului între performanță și suprafață și a raportului între performanță și puterea disipată. Aceste obiective sunt în mare parte realizate prin utilizarea unor nuclee puternice dar simple ce folosesc suprafața pastilei de siliciu mai eficient și cu o putere disipată mai mică. Susținute de o interconectare cu lățime de bandă mare, aceste nuclee pot lucra atât independent cât și împreună. Prin suportarea unui număr mare de accesări simultane de memorie de către nuclee, lățimea de banda disponibilă poate fi folosită mai eficient. Această filosofie de design este oarecum similară cu tendințele actuale de a avea mai multe nuclee de uz general în același cip,însă în Cell nucleele sunt mai simple, dar mai multe și specializate pe diferite tipuri de calcule.[4]
Arhitectură
modificareCell Broadband Engine include un nucleu de uz general pe 64 de biți ce poartă numele de POWER Processing Element(PPE) și opt Synergistic Processing Elements(SPEs) interconectate printr-o magistrală de mare viteză numită Element Interconnect Bus(EIB). Această implementare inițială a Cell BE este proiectată pentru a rula la 3,2GHz.
Unitățile SIMD(engleză: single instruction-multiple data) din cele opt SPE-uri furnizează majoritatea puterii de calcul a microprocesorului. Când se utilizează instrucțiuni în virgulă mobilă cu precizie simplă, cele opt entități SPE din Cell pot efectua un total de 64 de operații în virgulă mobilă pe ciclu de ceas.
Controlerul de memorie integrat ce poartă numele de Memory interface controller(MIC) oferă o lățime de bandă de vârf de 25,6 GB/s către o memorie XDR externă, în timp ce controlerul de intrare/ieșire asigură lățimi de bandă de vârf de 25 GB/s (pentru intrare) și 35 GB/s (pentru ieșire). EIB suportă o lățime de bandă maximă de 204,8 GB/s pentru transferul de date în interiorul cipului între PPE, SPE-uri, memorie și controlerul de intrare/ieșire.[4]
Power Processor Element (PPE)
modificarePPE constă dintr-un POWER Processing Unit (PPU), conectat la un cache L2 de 512KB. PPE este procesorul principal al Cell BE și este responsabil pentru rularea sistemului de operare și coordonarea SPE-urilor. Obiectivele cheie de proiectare ale PPE au fost maximizarea raportului performanta/putere disipată, precum și a raportului performanță/suprafață ocupată. PPU este un procesor cu execuție a instrucțiunilor în ordine și suport "dual-threading".
Nucleul PPE poate aduce patru și emite două instrucțiuni într-un ciclu de ceas. Pentru a îmbunătăți performanța pipeline-ului său cu execuție în ordine, PPE utilizează pipeline cu execuție întârziată și permite execuție limitată de tip "ordine aleatoare"(engleză: out-of-order execution) pentru instrucțiuni de încărcare din memorie. Acest lucru permite PPE să obțină unele dintre avantajele execuției de tip "ordine aleatoare", fără nici o creștere semnificativă în complexitate. [4]
Synergistic Processing Elements (SPE)
modificareSPE este un design modular constând dintr-un Synergistic Processing Unit(SPU) și un Memory Flow Controller(MFC). Un SPU este un motor de calcul cu suport SIMD(engleză: single instruction-multiple data) și 256KB de memorie dedicată locală. MFC conține un controler DMA(engleză:Direct memory access) cu un Memory Management Unit(MMU) asociat, precum și o unitate ce se ocupă de operațiunile de sincronizare cu alte unități SPU și cu PPU.[4]
O unitate SPU dispune de execuție în ordine cu o lățime a datelor de intrare de 128 de biți și cu spațiu de registre pe 128 de biți utilizate atât pentru operațiuni în virgulă mobilă cât și pe întregi. SPU operează direct pe instrucțiuni și date din memoria locală dedicată, și se bazează pe o interfață de canal pentru a accesa memoria principală, și memoriile locale. Interfața de canal, se afla în MFC, rulează independent de SPU și este capabilă de a traduce adrese și de a face transferuri DMA în timp ce SPU continuă cu execuția programului.[5]
Datorită suportului pentru SIMD(engleză: single instruction-multiple data) unitățile SPU pot efectua într-un singur ciclu de ceas șaisprezece operații cu întregi pe 8 biți, opt operații cu întregi pe 16 biți, patru operații cu întregi pe 32 de biți, sau patru operații cu numere în virgulă mobilă cu precizie simplă. La 3,2GHz, fiecare SPU este capabil să execute până la 51,2 miliarde de operații cu întregi pe 8 biți sau 25.6 GFLOPs în precizie simplă pe secundă.[4]
Element Interconnect Bus (EIB)
modificareElement Interconnect Bus(EIB), permite comunicarea între PPE, SPE, memoria RAM, și dispozitivele de intrare/ieșire. EIB este format dintr-o magistrală de adrese și patru inele de date cu lățime de 16 octeți, dintre care două funcționează în sensul acelor de ceasornic, iar celelalte două în sensul invers acelor de ceasornic. Fiecare inel poate permite maxim până la trei transferuri simultane de date, atâta timp cât căile lor nu se suprapun. BEI funcționează la jumătate din viteza procesorului.[5]
Fiecare unitate din BEI poate trimite și primi simultan 16 octeți de date în fiecare ciclu de magistrala. Deoarece fiecare cerere de adresa poate transfera până la maxim 128 de octeți, teoretic lățimea de bandă maximă a EIB la 3,2GHz este de 128 octeți x 1,6GHz = 204,8GB/s.[4]
Controlere de memorie și intrare/ieșire
modificareMemory interface controller(MIC) din Cell este conectat la memoria principală RAMBUS XDR prin două canale XIO care funcționează la o frecvență efectivă maximă de 3,2GHz. Ambele canale RAMBUS poate avea opt bancuri de memorie concurente și o dimensiune maximă de 256MB, pentru un total de 512MB.
Există șapte legături de transmisie și cinci de primire RAMBUS RRAC FlexIO ce au o lățime de 1 octet fiecare. Aceste legături pot fi configurate ca două interfețe logice. Cu ajutorul legăturilor FlexIO ce funcționează la 5GHz, interfața de intrare/ieșire asigură o lățime de bandă brută de 35GB/s pentru ieșire și 25GB/s pentru intrare. O configurație tipică poate avea o interfața de intrare/ieșire configurată cu lățimi de bandă brute de 30GB/s pentru ieșire și 20GB/s pentru intrare, și cealaltă interfață de intrare/ieșire cu lățimi de bandă brute de 5GB/s la ieșire și 5GB/s la intrare.[4]
Aplicații ale procesorului Cell
modificareCea mai cunoscută utilizare a microprocesorului Cell este în consola de jocuri video PlayStation 3. Lansată pe 11 noiembrie 2006 în Japonia, consola celor de la Sony s-a lovit în prima parte a existenței sale de probleme cu portarea de pe alte platforme a jocurilor sau cu dezvoltarea exclusiv a acestora pentru PlayStation 3 datorită modului complicat de programare a procesorului Cell. La început, programatorii au întâmpinat dificultăți în programarea și optimizarea pentru folosirea la maxim a resurselor disponibile în dezvoltarea de jocuri. Aceasta a fost și principala critică adusă procesorului, însă în prezent aceste probleme au fost depășite și unele jocuri video dezvoltate exclusiv pentru PlayStation 3 au impresionat print calitatea efectelor vizuale și a simulării fizicii.
Vezi și
modificareReferințe
modificare- ^ „Cell Designer talks about PS3 and IBM Cell Processors”. Arhivat din original la . Accesat în .
- ^ Synergistic processing in Cell's multicore architecture , IEEE.
- ^ Cell Broadband Engine Interconnect and Memory Interface Arhivat în , la Wayback Machine., IBM.
- ^ a b c d e f g Cell Broadband Engine Architecture and its first implementation, IBM.
- ^ a b The Cell project at IBM Research , IBM.