Emotion Engine - Emotion Engine

CPU procesoru Sony Emotion

Emotion Engine je centrální procesorová jednotka vyvinula a vyrábí společnost Sony Computer Entertainment a Toshiba pro použití v PlayStation 2 video herní konzola . To bylo také používáno v časných PlayStation 3 modelech prodávaných v Japonsku a Severní Americe (modelová čísla CECHAxx a CECHBxx) poskytovat podporu PlayStation 2 hry. Hromadná výroba Emotion Engine začala v roce 1999 a skončila na konci roku 2012 ukončením PlayStation 2.

Popis

Emotion Engine na základní desce PS2
Architektura Playstation 2

Emotion Engine se skládá z osmi samostatných „jednotek“, z nichž každá plní konkrétní úkol, integrované do stejné matrice . Tyto jednotky jsou: jádro CPU, dvě jednotky pro zpracování vektorů (VPU), 10kanálová jednotka DMA , řadič paměti a jednotka zpracování obrazu (IPU). Existují tři rozhraní: vstupní výstupní rozhraní pro I/O procesor, grafické rozhraní (GIF) pro grafický syntetizátor a paměťové rozhraní pro systémovou paměť.

Jádro CPU je pevně spojeno s první VPU, VPU 0 . Společně jsou zodpovědní za provádění herního kódu a výpočtů modelování na vysoké úrovni. Druhá VPU, VPU 1 , je věnována geometrickým transformacím a osvětlení a pracuje nezávisle, paralelně s jádrem CPU, ovládaná mikrokódem . Pokud není VPU 0 použit, může být také použit pro transformace geometrie. Seznamy zobrazení generované CPU/VPU0 a VPU1 jsou odesílány do formátu GIF, který je upřednostňuje před odesláním do nástroje Graphics Synthesizer k vykreslování.

CPU jádro

Jádro CPU je obousměrný superskalární procesor RISC v pořadí . Na základě MIPS R5900 implementuje architekturu MIPS-III instrukční sady (ISA) a většinu MIPS-IV, kromě vlastní instrukční sady vyvinuté společností Sony, která operovala na 128bitových širokých skupinách buď 32bitových, 16 -bitová nebo 8bitová celá čísla způsobem s jednou instrukcí více dat (SIMD) (tj. čtyři 32bitová celá čísla lze přidat ke čtyřem dalším pomocí jediné instrukce). Definované pokyny zahrnují: sčítání, odčítání, násobení, dělení, min/max, posun, logický počet, počet počátečních nul, 128bitové načítání/ukládání a 256bitový až 128bitový posun trychtýře, kromě některých, které Sony nepopisuje pro konkurenční důvody. Na rozdíl od některých mylných představ tyto schopnosti SIMD nepředstavovaly „128bitový“ procesor, protože ani paměťové adresy, ani celá čísla nebyla 128bitová, pouze sdílené registry SIMD/celá čísla. Pro srovnání, 128bitové široké registry a instrukce SIMD byly v 32bitové architektuře x86 od roku 1999, se zavedením SSE . Interní datové cesty však byly 128bit široké a jeho procesory byly schopné pracovat na 4x32bitových množstvích paralelně v jednotlivých registrech.

Má 6stupňové dlouhé celočíselné potrubí a 15stupňové potrubí s plovoucí desetinnou čárkou. Sortiment registrů se skládá z 32 128bitových registrů VLIW SIMD (pojmenování/přejmenování), jednoho 64bitového akumulátoru a dvou 64bitových obecných datových registrů, 8 16bitových registrů funkcí oprav, 16 registrů 8bitových řadičů. Procesor má také dvě 64bitové celočíselné ALU, 128bitovou ukládací jednotku (LSU), jednotku pro spouštění větví (BXU) a 32bitový koprocesor VU1 FPU (který fungoval jako synchronizační řadič pro VPU0/VPU1) obsahující základní procesorový procesor MIPS s 32 64bitovými registry FP a 15 32bitovými celočíselnými registry. ALU jsou 64bitové a 32bitové FPU není kompatibilní s IEEE 754. Vlastní instrukční sada 107 MMI (Multimedia Extensions) byla implementována seskupením dvou 64bitových celočíselných ALU. Celé číslo i potrubí s pohyblivou řádovou čárkou mají šest stupňů.

K napájení instrukcí a dat prováděcím jednotkám slouží 16 kB obousměrně nastavená asociativní instrukční mezipaměť , 8 KB obousměrná sada asociativní neblokující datová mezipaměť a 16 KB scratchpad RAM . Mezipaměti instrukcí i dat jsou virtuálně indexovány a fyzicky označeny, zatímco RAM zápisníku existuje v odděleném paměťovém prostoru. Pro překlad virtuálních adres je k dispozici kombinovaný 48 dvojitého zadávání instrukcí a vyhledávací paměti pro překlad dat . Předpovídání větví je dosaženo pomocí mezipaměti cílové adresy 64 poboček a tabulky historie větví, která je integrována do mezipaměti instrukcí. Trest za nesprávný odhad pobočky jsou tři cykly kvůli krátkému šestistupňovému potrubí.

Jednotky pro zpracování vektorů

Většinu výkonu s plovoucí desetinnou čárkou Emotion Engine zajišťují dvě jednotky pro zpracování vektorů (VPU), označené VPU0 a VPU1. Jednalo se v podstatě o DSP přizpůsobené pro 3D matematiku a předchůdce hardwarových vertex shader potrubí . Každá VPU obsahuje 32  128bitových vektorových registrů SIMD (držících 4D vektorová data), 16 16bitových registrů s pevnou řádovou čárkou , čtyři jednotky s více akumulačními body s plovoucí desetinnou čárkou (FMAC), jednotku s dělenou čárkou (FDIV) a lokální datovou paměť . Datová paměť pro VPU0 má velikost 4 KB, zatímco VPU1 má 16 KB datovou paměť.

Aby se dosáhlo vysoké šířky pásma, je datová paměť VPU připojena přímo k GIF a obě datové paměti lze číst přímo pomocí jednotky DMA . Jedna vektorová instrukce se skládá ze čtyř 32bitových hodnot s plovoucí desetinnou čárkou s jednoduchou přesností, které jsou distribuovány do čtyř jednotek FMAC s jedinou přesností (32bitové) pro zpracování. Toto schéma je podobné rozšířením SSEx od společnosti Intel.

Jednotkám FMAC trvá provedení jedné instrukce čtyři cykly, ale protože jednotky mají šestistupňové potrubí , mají propustnost jedné instrukce na cyklus. Jednotka FDIV má devítistupňové potrubí a může provést jednu instrukci každých sedm cyklů.

Jednotka zpracování obrazu (IPU)

IPU umožňovala dekódování komprimovaného obrazu MPEG-2 , což umožňovalo přehrávání DVD a herních FMV . Umožnilo také vektorovou kvantizaci pro 2D grafická data.

DMA, DRAM a jednotka pro správu paměti (MMU)

Jednotka pro správu paměti, řadič RDRAM a řadič DMA zpracovávají přístup k paměti v systému.

Interní datová sběrnice

Komunikaci mezi jádrem MIPS, dvěma VPU, GIF, řadičem paměti a dalšími jednotkami zajišťuje 128bitová široká interní datová sběrnice běžící na poloviční hodinové frekvenci Emotion Engine, ale aby nabídla větší šířku pásma, existuje také 128 -bitová vyhrazená cesta mezi CPU a VPU0 a 128bitová vyhrazená cesta mezi VPU1 a GIF. Při 150 MHz poskytuje interní datová sběrnice maximální teoretickou šířku pásma 2,4 GB/s.

Externí rozhraní

Komunikace mezi Emotion Engine a RAM probíhá prostřednictvím dvou kanálů DRDRAM (Direct Rambus Dynamic Random Access Memory) a řadiče paměti , který je propojen s interní datovou sběrnicí. Každý kanál je široký 16 bitů a pracuje na 400 MHz DDR (Double Data Rate). Kombinace obou kanálů DRDRAM má maximální teoretickou šířku pásma 25,6 Gbit/s (3,2 GB/s), což je o 33% větší šířka pásma než interní datová sběrnice. Z tohoto důvodu řadič paměti ukládá do vyrovnávací paměti data odesílaná z kanálů DRDRAM, takže CPU může využít další šířku pásma.

Emotion Engine se připojuje přímo k Graphics Synthesizer prostřednictvím GIF s vyhrazenou 64bitovou sběrnicí 150 MHz, která má maximální teoretickou šířku pásma 1,2 GB/s.

Aby byla zajištěna komunikace mezi Emotion Engine a vstupním výstupním procesorem (IOP), vstupní výstupní rozhraní propojuje 32bitovou šířku, 37,5 MHz vstupní výstupní sběrnici s maximální teoretickou šířkou pásma 150 MB/s do interní datové sběrnice. Rozhraní poskytuje dostatečnou šířku pásma pro rozšiřující konektor PCMCIA, který byl použit pro síťový adaptér s vestavěným rozhraním P-ATA pro rychlejší přístup k datům a online funkce. Výhodou velké šířky pásma bylo, že ji lze snadno použít k zavedení hardwarových rozšíření, jako je síťový adaptér s integrovanou podporou IDE HDD nebo jiná rozšíření pro rozšíření funkcí a životního cyklu produktu, což lze považovat za konkurenční výhodu. V novějších variantách (jako je štíhlá edice) by však rozhraní nabízelo mnohem větší šířku pásma, než jaká je požadována vstupními výstupními zařízeními PlayStation, protože byla odstraněna podpora HDD a návrh konektoru PCMCIA byl upuštěn ve prospěch štíhlejšího designu.

Výroba

Emotion Engine obsahoval 13,5 milionu tranzistorů z oxidu kovu a polovodiče (MOS) na matrice s integrovaným obvodem (IC) o rozměru 240 mm 2 . Byly vyrobeny společnostmi Sony a Toshiba v 0,25 µm ( 0,18 µm efektivním L G ) komplementárním procesu kov -oxid -polovodič (CMOS) se čtyřmi úrovněmi propojení.

Obal

Motor Emotion byl zabalen do 540-kontaktního plastového mřížkového pole (PBGA).

Využití

Primárním využitím Emotion Engine bylo sloužit jako CPU PlayStation 2 . První SKU PlayStation 3 také obsahovaly Emotion Engine na základní desce pro dosažení zpětné kompatibility s hrami PlayStation 2. Druhá revize PlayStation 3 však postrádala fyzický motor emocí, aby se snížily náklady, přičemž všechny její funkce byly prováděny pomocí softwarové emulace prováděné procesorem Cell Broadband Processor spolu s hardwarovým grafickým syntezátorem, který je stále přítomen k dosažení zpětné kompatibility PlayStation 2. Ve všech následujících revizích byl grafický syntezátor odstraněn; emulátor softwaru PlayStation 2 je však k dispozici v pozdějších revizích systémového softwaru pro použití s ​​tituly Sony PS2 Classics, které lze zakoupit v síti Sony Entertainment Network.

Technické specifikace

Teoretický výkon

Viz také

Reference

Reference