Silnik emocji — Emotion Engine

Procesor silnika emocji Sony

Emotion silnika jest jednostka centralna opracowany i wyprodukowany przez firmę Sony Computer Entertainment i Toshiba do użytku w PlayStation 2 konsola do gier wideo . Był również używany we wczesnych modelach PlayStation 3 sprzedawanych w Japonii i Ameryce Północnej (numery modeli CECHAxx i CECHBxx), aby zapewnić obsługę gier PlayStation 2. Masowa produkcja Emotion Engine rozpoczęła się w 1999 roku, a zakończyła pod koniec 2012 roku wraz z zaprzestaniem produkcji PlayStation 2.

Opis

Silnik emocji na płycie głównej PS2
Architektura PlayStation 2

Silnik emocji składa się z ośmiu oddzielnych „jednostek”, z których każda wykonuje określone zadanie, zintegrowanych na tej samej kości . Te jednostki to: rdzeń procesora, dwie jednostki przetwarzania wektorowego (VPU), 10-kanałowa jednostka DMA , kontroler pamięci i jednostka przetwarzania obrazu (IPU). Istnieją trzy interfejsy: interfejs wejścia-wyjścia do procesora we/wy, interfejs graficzny (GIF) do syntezatora graficznego oraz interfejs pamięci do pamięci systemowej.

Rdzeń procesora jest ściśle powiązany z pierwszym VPU, VPU 0 . Razem odpowiadają za wykonywanie kodu gry i wysokopoziomowe obliczenia modelowania. Drugi VPU, VPU 1 , jest dedykowany do transformacji geometrii i oświetlenia i działa niezależnie, równolegle do rdzenia procesora, sterowany mikrokodem . VPU 0 , gdy nie jest używany, może być również używany do transformacji geometrii. Listy wyświetlania generowane przez CPU/VPU0 i VPU1 są wysyłane do GIF-a, który nadaje im priorytet przed wysłaniem ich do syntezatora grafiki w celu renderowania.

Rdzeń procesora

Rdzeń procesora to dwukierunkowy, superskalarny, uporządkowany procesor RISC . Oparty na MIPS R5900, implementuje architekturę zestawu instrukcji MIPS-III (ISA) i wiele MIPS-IV, oprócz niestandardowego zestawu instrukcji opracowanego przez Sony, który działał na 128-bitowych grupach 32-bitowych, 16-bitowych. -bitowe lub 8-bitowe liczby całkowite w postaci pojedynczej instrukcji z wieloma danymi (SIMD) (tj. cztery 32-bitowe liczby całkowite można dodać do czterech innych za pomocą pojedynczej instrukcji). Zdefiniowane instrukcje obejmują: dodawanie, odejmowanie, mnożenie, dzielenie, min./maks., przesunięcie, logiczne, zliczanie zera wiodącego, 128-bitowe ładowanie/zapisywanie i 256-bitowe do 128-bitowego przesunięcia lejka, a także niektóre nieopisane przez Sony dla z powodów konkurencyjnych. Wbrew niektórym błędnym przekonaniom, te możliwości SIMD nie oznaczają, że procesor jest „128-bitowy”, ponieważ ani adresy pamięci, ani same liczby całkowite nie były 128-bitowe, tylko wspólne rejestry SIMD/całkowite. Dla porównania, rejestry o szerokości 128 bitów i instrukcje SIMD były obecne w 32-bitowej architekturze x86 od 1999 roku, wraz z wprowadzeniem SSE . Jednak wewnętrzne ścieżki danych miały szerokość 128 bitów, a jego procesory były zdolne do równoległej pracy na wielkościach 4x32 bity w pojedynczych rejestrach.

Posiada 6-stopniowy rurociąg całkowitoliczbowy i 15-stopniowy rurociąg zmiennoprzecinkowy o długości 15 stopni. Jego asortyment rejestrów składa się z 32 128-bitowych rejestrów VLIW SIMD (nazywanie/zmiana nazwy), jednego akumulatora 64-bitowego i dwóch 64&-bitowych rejestrów danych ogólnych, 8 16-bitowych rejestrów funkcji stałej, 16 8-bitowych rejestrów kontrolera. Procesor ma również dwie 64-bitowe jednostki ALU, 128-bitową jednostkę pamięci obciążenia (LSU), jednostkę wykonawczą oddziału (BXU) i 32-bitowy koprocesor VU1 FPU (który działał jako kontroler synchronizacji dla VPU0/VPU1) zawierający rdzeń procesora bazowego MIPS z 32 64-bitowymi rejestrami FP i 15 32-bitowymi rejestrami całkowitymi. Jednostki ALU są 64-bitowe, z 32-bitową jednostką FPU, która nie jest zgodna ze standardem IEEE 754. Niestandardowy zestaw instrukcji 107 MMI (rozszerzenia multimedialne) został zaimplementowany przez zgrupowanie dwóch 64-bitowych jednostek ALU o liczbie całkowitej. Zarówno rurociągi całkowite, jak i zmiennoprzecinkowe mają sześć etapów.

Aby zasilić jednostki wykonawcze instrukcjami i danymi, istnieje 16 KB dwukierunkowej asocjacyjnej pamięci podręcznej instrukcji , 8 KB dwukierunkowej asocjacyjnej nieblokującej pamięci podręcznej danych oraz 16 KB pamięci RAM na notatnik . Zarówno pamięć podręczna instrukcji, jak i danych są wirtualnie indeksowane i fizycznie oznaczone, podczas gdy pamięć RAM notatnika znajduje się w oddzielnej przestrzeni pamięci. Do tłumaczenia adresów wirtualnych przewidziano połączony 48 podwójnych instrukcji wprowadzania i bufor podręczny translacji danych . Przewidywanie rozgałęzień jest osiągane przez 64-wejściową pamięć podręczną adresów docelowych rozgałęzień i tabelę historii rozgałęzień, która jest zintegrowana z pamięcią podręczną instrukcji. Kara za błędne przewidywanie oddziału wynosi trzy cykle z powodu krótkiego, sześcioetapowego rurociągu.

Jednostki przetwarzania wektorów

Większość wydajności silnika emocji zmiennoprzecinkowych jest zapewniana przez dwie jednostki przetwarzania wektorowego (VPU), oznaczone jako VPU0 i VPU1. Były to zasadniczo procesory DSP dostosowane do matematyki 3D i prekursory sprzętowych potoków cieniowania wierzchołków . Każdy VPU zawiera 32  128-bitowe wektorowe rejestry SIMD (przechowujące dane wektorowe 4D), 16 16-bitowych rejestrów stałoprzecinkowych, cztery jednostki zmiennoprzecinkowe mnożenia (FMAC), jednostkę dzielenia zmiennoprzecinkowego (FDIV) i lokalną pamięć danych . Pamięć danych dla VPU0 ma rozmiar 4 KB, podczas gdy VPU1 posiada 16 KB pamięci danych.

Aby osiągnąć wysoką przepustowość, pamięć danych VPU jest podłączona bezpośrednio do GIF, a obie pamięci danych mogą być odczytywane bezpośrednio przez jednostkę DMA . Pojedyncza instrukcja wektorowa składa się z czterech 32-bitowych wartości zmiennoprzecinkowych o pojedynczej precyzji, które są rozdzielane na cztery jednostki FMAC o pojedynczej precyzji (32-bitowe) w celu przetworzenia. Ten schemat jest podobny do rozszerzeń SSEx firmy Intel.

Jednostki FMAC wykonują cztery cykle, aby wykonać jedną instrukcję, ale ponieważ mają sześciostopniowy potok , mają przepustowość jednej instrukcji na cykl. Jednostka FDIV ma dziewięciostopniowy potok i może wykonywać jedną instrukcję co siedem cykli.

Jednostka przetwarzania obrazu (IPU)

IPU umożliwiało dekodowanie skompresowanego obrazu MPEG-2 , umożliwiając odtwarzanie płyt DVD i gier FMV . Umożliwiło to również kwantyzację wektorową dla danych graficznych 2D.

Jednostka zarządzania DMA, DRAM i pamięcią (MMU)

Moduł zarządzania pamięcią, kontroler RDRAM i kontroler DMA obsługują dostęp do pamięci w systemie.

Wewnętrzna magistrala danych

Komunikacja między rdzeniem MIPS, dwoma VPU, GIF, kontrolerem pamięci i innymi jednostkami jest obsługiwana przez 128-bitową wewnętrzną magistralę danych działającą z częstotliwością o połowę mniejszą niż Emotion Engine, ale aby zapewnić większą przepustowość, istnieje również 128-bitowa magistrala danych. -bitowa dedykowana ścieżka pomiędzy CPU i VPU0 oraz 128-bitowa dedykowana ścieżka pomiędzy VPU1 i GIF. Przy 150 MHz wewnętrzna magistrala danych zapewnia maksymalną teoretyczną przepustowość 2,4 GB/s.

Interfejs zewnętrzny

Komunikacja między silnikiem Emotion i pamięcią RAM odbywa się za pośrednictwem dwóch kanałów DRDRAM (Direct Rambus Dynamic Random Access Memory) i kontrolera pamięci , który jest połączony z wewnętrzną magistralą danych. Każdy kanał ma szerokość 16 bitów i działa z częstotliwością 400 MHz DDR (podwójna szybkość transmisji danych). Łącznie, dwa kanały DRDRAM mają maksymalną teoretyczną przepustowość 25,6 Gbit/s (3,2 GB/s), około 33% większą przepustowość niż wewnętrzna magistrala danych. Z tego powodu kontroler pamięci buforuje dane wysyłane z kanałów DRDRAM, dzięki czemu dodatkowa przepustowość może być wykorzystana przez procesor.

Silnik emocji łączy się bezpośrednio z syntezatorem graficznym za pośrednictwem GIF z dedykowaną 64-bitową szyną 150 MHz o maksymalnej teoretycznej przepustowości 1,2 GB/s.

Aby zapewnić komunikację między silnikiem Emotion a procesorem wejścia-wyjścia (IOP), interfejs wejścia-wyjścia łączy 32-bitową magistralę wejściową wyjściową 37,5 MHz o maksymalnej teoretycznej przepustowości 150 MB/s z wewnętrzną magistralą danych. Interfejs zapewnia wystarczającą przepustowość dla złącza rozszerzenia PCMCIA, które zostało użyte dla karty sieciowej z wbudowanym interfejsem P-ATA dla szybszego dostępu do danych i funkcjonalności online. Zaletą wysokiej przepustowości było to, że można ją było łatwo wykorzystać do wprowadzenia rozszerzeń sprzętowych, takich jak karta sieciowa z wbudowaną obsługą dysków IDE HDD lub innych rozszerzeń w celu wydłużenia funkcjonalności i cyklu życia produktu, co może być postrzegane jako przewaga konkurencyjna. W nowszych wariantach (takich jak wersja slim) interfejs oferowałby jednak znacznie większą przepustowość niż wymagana przez urządzenia wejściowe PlayStation, ponieważ usunięto obsługę dysków twardych i zrezygnowano ze złącza PCMCIA na rzecz smuklejszej konstrukcji.

Produkcja

Emotion silnika zawarte 13500000 metal-tlenek-półprzewodnik (MOS) tranzystorów na układzie scalonym (IC) matrycy o wymiarach 240 mm 2 . Został on wytworzony przez Sony i Toshiba w 0,25 um ( 0,18 um skuteczne L G ) komplementarne metal-tlenek-półprzewodnik procesu (CMOS) o czterech poziomach połączeniowy.

Opakowania

Silnik Emotion został zapakowany w 540-stykową plastikową siatkę kulkową (PBGA).

Zastosowania

Głównym zastosowaniem silnika emocji było służenie jako procesor PlayStation 2 . Pierwsze jednostki SKU PlayStation 3 zawierały również silnik emocji na płycie głównej, aby uzyskać wsteczną kompatybilność z grami na PlayStation 2. Jednak w drugiej wersji PlayStation 3 brakowało fizycznego silnika emocji w celu obniżenia kosztów, wykonującego wszystkie jego funkcje za pomocą emulacji programowej wykonywanej przez procesor Cell Broadband , w połączeniu z wciąż obecnym sprzętowym syntezatorem graficznym, aby uzyskać kompatybilność wsteczną PlayStation 2. We wszystkich kolejnych wersjach usunięto syntezator grafiki; jednak emulator oprogramowania PlayStation 2 jest dostępny w późniejszych wersjach oprogramowania systemowego do użytku z tytułami Sony PS2 Classics dostępnymi do zakupu w sieci Sony Entertainment Network.

Specyfikacja techniczna

Wydajność teoretyczna

Zobacz też

Bibliografia

Bibliografia