Emotion Engine - Emotion Engine

CPU Sony Emotion Engine

Emotion Motorul este o unitate centrală de procesare dezvoltat și fabricat de Sony Computer Entertainment si Toshiba pentru a fi utilizate în PlayStation 2 consola de jocuri video . De asemenea, a fost utilizat în primele modele PlayStation 3 vândute în Japonia și America de Nord (Numere de model CECHAxx și CECHBxx) pentru a oferi suport pentru jocuri PlayStation 2. Producția în masă a Emotion Engine a început în 1999 și s-a încheiat la sfârșitul anului 2012 odată cu întreruperea PlayStation 2.

Descriere

Emotion Engine pe placa de bază a PS2
Arhitectura Playstation 2

Emotion Engine este format din opt "unități" separate, fiecare îndeplinind o sarcină specifică, integrată în aceeași matriță . Aceste unități sunt: ​​un nucleu CPU, două unități de procesare vectorială (VPU), o unitate DMA cu 10 canale , un controler de memorie și o unitate de procesare a imaginii (IPU). Există trei interfețe: o interfață de ieșire de intrare la procesorul I / O, o interfață grafică (GIF) la sintetizatorul grafic și o interfață de memorie la memoria sistemului.

Nucleul procesorului este strâns cuplat la primul VPU, VPU 0 . Împreună, ei sunt responsabili pentru executarea codului de joc și a calculelor de modelare la nivel înalt. Al doilea VPU, VPU 1 , este dedicat transformărilor geometrice și iluminării și funcționează independent, paralel cu nucleul CPU, controlat prin microcod . VPU 0 , atunci când nu este utilizat, poate fi utilizat și pentru transformări geometrice. Listele de afișare generate de CPU / VPU0 și VPU1 sunt trimise către GIF, care le acordă prioritate înainte de a le trimite la sintetizatorul grafic pentru redare.

Nucleul procesorului

Nucleul procesorului este de două căi superscalara în ordine RISC procesor. Bazat pe MIPS R5900, implementează arhitectura setului de instrucțiuni MIPS-III (ISA) și o mare parte din MIPS-IV, pe lângă un set de instrucțiuni personalizat dezvoltat de Sony care funcționa pe grupuri largi de 128 de biți, fie pe 32 de biți, 16 -numere întregi pe 8 biți sau 8 biți într-o singură instrucțiune (SIMD) (adică patru numere întregi pe 32 de biți ar putea fi adăugate la alte patru utilizând o singură instrucțiune). Instrucțiunile definite includ: adăugare, scădere, multiplicare, împărțire, min / max, schimbare, logică, număr zero zero, încărcare / stocare pe 128 de biți și schimbare în pâlnie de 256 de biți pe 128 de biți în plus față de unele nedescrise de Sony pentru motive competitive. Contrar unor concepții greșite, aceste capacități SIMD nu se ridicau la faptul că procesorul era „pe 128 de biți”, întrucât nici adresele de memorie, nici numerele întregi nu erau 128 de biți, doar registrele partajate SIMD / întregi. Pentru comparație, registrele largi pe 128 de biți și instrucțiunile SIMD erau prezente în arhitectura x86 pe 32 de biți din 1999, odată cu introducerea SSE . Cu toate acestea, căile de date interne aveau o lățime de 128 biți, iar procesoarele sale erau capabile să funcționeze pe cantități de 4x32 biți în paralel în registre simple.

Are o conductă întreagă cu 6 trepte și o conductă în virgulă lungă cu 15 trepte. Sortimentul său de registre constă din 32 de registre VLIW SIMD de 128 de biți (denumire / redenumire), un acumulator pe 64 de biți și două registre de date generale pe 64 & biți, 8 registre de funcții de fixare pe 16 biți, 16 registre de controlere pe 8 biți. Procesorul are, de asemenea, două ALU-uri întregi pe 64 de biți, o unitate de stocare de încărcare pe 128 de biți (LSU), o unitate de execuție a ramurilor (BXU) și un coprocesor VU1 FPU pe 32 de biți (care a acționat ca un controler de sincronizare pentru VPU0 / VPU1) un procesor de bază MIPS cu 32 de registre FP pe 64 de biți și 15 registre întregi pe 32 de biți. ALU-urile sunt pe 64 de biți, cu un FPU pe 32 de biți care nu este conform IEEE 754. Setul de instrucțiuni personalizate 107 MMI (Multimedia Extensions) a fost implementat prin gruparea celor două ALU-uri întregi pe 64 de biți. Atât conductele întregi, cât și cele cu virgulă mobilă au o lungime de șase etape.

Pentru a alimenta unitățile de execuție cu instrucțiuni și date, există o memorie cache de instrucțiuni asociative setată în două direcții de 16 KB , o memorie cache de date asociativă care nu blochează seturi bidirecționale de 8 KB și o memorie RAM de 16 KB . Atât instrucțiunile, cât și cache-urile de date sunt practic indexate și etichetate fizic, în timp ce RAM-ul scratchpad există într-un spațiu de memorie separat. Pentru traducerea adreselor virtuale este furnizat un buffer de 48 de instrucțiuni cu intrare dublă și traducere de date . Predicția sucursalei este realizată printr-o memorie cache cu adrese țintă cu 64 de intrări și un tabel cu istoricul sucursalelor care este integrat în memoria cache a instrucțiunilor. Pedeapsa pentru prevenirea greșită a sucursalei este de trei cicluri datorită conductei scurte în șase etape.

Unități de procesare vectorială

Majoritatea performanțelor în virgulă mobilă ale Emotion Engine sunt furnizate de două unități de procesare vectorială (VPU), desemnate VPU0 și VPU1. Acestea au fost în esență DSP-uri adaptate pentru matematica 3D și precursorul conductelor hardware de vertex shader . Fiecare VPU are 32  de registre SIMD vectoriale pe 128 de biți (care dețin date vectoriale 4D), 16 registre cu punct fix de 16 biți, patru unități în virgulă multiplică cu acumulare multiplică (FMAC), o unitate de divizare în virgulă mobilă (FDIV) și o memorie de date locală . Memoria de date pentru VPU0 are o dimensiune de 4 KB, în timp ce VPU1 are o memorie de date de 16 KB.

Pentru a obține o lățime de bandă mare, memoria de date a VPU este conectată direct la GIF și ambele memorii de date pot fi citite direct de unitatea DMA . O instrucțiune cu un singur vector constă din patru valori cu virgulă mobilă de precizie unică pe 32 de biți, care sunt distribuite celor patru unități FMAC de precizie unică (pe 32 de biți) pentru procesare. Această schemă este similară cu extensiile SSEx de la Intel.

Unitățile FMAC necesită patru cicluri pentru a executa o instrucțiune, dar, deoarece unitățile au o conductă în șase trepte , au un randament de o instrucțiune pe ciclu. Unitatea FDIV are o conductă în nouă trepte și poate executa o instrucțiune la fiecare șapte cicluri.

Unitate de procesare a imaginilor (IPU)

IPU a permis decodarea imaginilor comprimate MPEG-2 , permițând redarea DVD-urilor și a jocului FMV . De asemenea, a permis cuantificarea vectorială pentru datele grafice 2D.

Unitatea DMA, DRAM și de gestionare a memoriei (MMU)

Unitatea de gestionare a memoriei, controlerul RDRAM și controlerul DMA gestionează accesul la memorie din sistem.

Magistrală de date internă

Comunicațiile dintre nucleul MIPS, cele două VPU-uri, GIF, controler de memorie și alte unități sunt gestionate de o magistrală de date internă de 128 biți care rulează la jumătate din frecvența de ceas a motorului Emotion, dar, pentru a oferi o lățime de bandă mai mare, există - cale dedicată pe biți între CPU și VPU0 și o cale dedicată pe 128 de biți între VPU1 și GIF. La 150 MHz, magistrala de date internă oferă o lățime de bandă teoretică maximă de 2,4 GB / s.

Interfață externă

Comunicarea dintre motorul emoțional și RAM are loc prin două canale de DRDRAM (Direct Rambus Dynamic Random Access Memory) și controlerul de memorie , care se interfață cu magistrala de date internă. Fiecare canal are o lățime de 16 biți și funcționează la 400 MHz DDR (Double Data Rate). Combinate, cele două canale ale DRDRAM au o lățime de bandă teoretică maximă de 25,6 Gbit / s (3,2 GB / s), cu aproximativ 33% mai multă lățime de bandă decât magistrala de date internă. Din această cauză, controlerul de memorie tamponează datele trimise de pe canalele DRDRAM, astfel încât lățimea de bandă suplimentară să poată fi utilizată de CPU.

Emotion Engine se conectează direct la sintetizatorul grafic prin GIF cu o magistrală dedicată de 64 biți, 150 MHz, care are o lățime de bandă teoretică maximă de 1,2 GB / s.

Pentru a furniza comunicații între motorul emoțional și procesorul de ieșire de intrare (IOP), interfața de ieșire de intrare interfață o magistrală de ieșire de intrare de 32 biți, 37,5 MHz, cu o lățime de bandă teoretică maximă de 150 MB / s la magistrala de date internă. Interfața oferă suficientă lățime de bandă pentru conectorul de extensie PCMCIA care a fost utilizat pentru adaptorul de rețea cu interfață P-ATA încorporată pentru acces mai rapid la date și funcționalitate online. Un avantaj al lățimii de bandă ridicate a fost că ar putea fi ușor utilizat pentru a introduce extensii hardware precum adaptorul de rețea cu suport IDE HDD încorporat sau alte extensii pentru a extinde funcționalitatea și ciclul de viață al produsului, care poate fi văzut ca un avantaj competitiv. În variantele mai noi (cum ar fi ediția slim), interfața ar oferi totuși o lățime de bandă mult mai mare decât cea cerută de dispozitivele de ieșire de intrare PlayStation, deoarece suportul HDD a fost eliminat și designul conectorului PCMCIA a fost abandonat în favoarea unui design mai subțire.

Fabricare

Emotion Engine conținea 13,5 milioane de metal-oxid-semiconductor tranzistori (MOS), pe un circuit integrat (IC) mor de măsurare 240 mm 2 . A fost fabricat de Sony și Toshiba într-un proces complementar metal-oxid-semiconductor (CMOS) de 0,25 µm ( 0,18 µm efectiv L G ) cu patru niveluri de interconectare.

Ambalare

Emotion Engine a fost ambalat într-o rețea cu bile din plastic cu 540 de contacte (PBGA).

Utilizări

Utilizarea principală a Emotion Engine a fost de a servi drept procesor PlayStation 2 . Primele SKU-uri ale PlayStation 3 au prezentat, de asemenea, un motor Emotion pe placa de bază pentru a obține compatibilitatea cu jocurile PlayStation 2. Cu toate acestea, a doua revizuire a PlayStation 3 nu avea un motor Emotion fizic pentru a reduce costurile, îndeplinind toate funcțiile sale folosind emularea software efectuată de procesorul de bandă largă celulară , împreună cu un sintetizator grafic hardware încă prezent pentru a obține compatibilitatea cu PlayStation 2 înapoi. În toate reviziile ulterioare, sintetizatorul grafic a fost eliminat; cu toate acestea, un emulator de software PlayStation 2 este disponibil în versiunile ulterioare ale software-ului de sistem pentru utilizare cu titlurile Sony Classics PS2 disponibile pentru cumpărare în rețeaua Sony Entertainment.

Specificatii tehnice

Performanța teoretică

Vezi si

Referințe

Referințe