Emotion Engine - Emotion Engine

Sonyn Emotion Engine -suoritin

Emotion Engine on keskusyksikkö kehittämä ja valmistama Sony Computer Entertainment ja Toshiba käytettäväksi PlayStation 2 pelikonsoli . Sitä käytettiin myös Japanissa ja Pohjois -Amerikassa myydyissä PlayStation 3 -malleissa (mallinumerot CECHAxx & CECHBxx) PlayStation 2 -pelituen tarjoamiseksi. Emotion Engine -tuotannon massatuotanto alkoi vuonna 1999 ja päättyi vuoden 2012 lopulla PlayStation 2: n lopettamisen jälkeen.

Kuvaus

Emotion Engine PS2: n emolevyllä
Playstation 2 -arkkitehtuuri

Emotion Engine koostuu kahdeksasta erillisestä "yksiköstä", joista jokainen suorittaa tietyn tehtävän ja joka on integroitu samaan muottiin . Näitä yksiköitä ovat: CPU-ydin, kaksi vektoriprosessointiyksikköä (VPU), 10-kanavainen DMA- yksikkö, muistiohjain ja kuvankäsittelylaite (IPU). Liitäntöjä on kolme: tulo- ja lähtöliitäntä I/O -prosessorille, grafiikkarajapinta (GIF) grafiikansyntetisaattorille ja muistiliitäntä järjestelmämuistille.

CPU -ydin on tiukasti kytketty ensimmäiseen VPU -laitteeseen, VPU 0 . Yhdessä he ovat vastuussa pelikoodin suorittamisesta ja korkean tason mallinnuslaskennoista. Toinen VPU, VPU 1 , on omistettu geometrian muunnoksille ja valaistukselle ja toimii itsenäisesti, rinnakkain CPU-ytimen kanssa, jota ohjaa mikrokoodi . VPU 0 , kun sitä ei käytetä, voidaan käyttää myös geometriamuunnoksissa. Näyttö luettelot tuottaman CPU / VPU0 ja VPU1 lähetetään GIF, joka priorisoi ne ennen lähettämistä ne Graphics syntetisaattorin hävitettäviksi.

CPU -ydin

Suorittimen ydin on kaksisuuntainen superskalaarinen järjestyksessä oleva RISC- prosessori. Perustuu MIPS R5900: een, se toteuttaa MIPS-III- käskyjoukkoarkkitehtuurin (ISA) ja suuren osan MIPS-IV: stä Sonyn kehittämän mukautetun käskysarjan lisäksi, joka toimi 128-bittisissä 32- tai 16-bittisissä ryhmissä. -bit tai 8-bittisiä kokonaislukuja yhden käskyn usean datan (SIMD) tavalla (eli neljä 32-bittistä kokonaislukua voitaisiin lisätä neljään muuhun käyttämällä yhtä käskyä). Määritettyjä ohjeita ovat: lisää, vähennä, kerro, jaa, min/max, siirto, looginen, nolla-alkulaskenta, 128-bittinen lataus/tallennus ja 256-bittinen-128-bittinen suppilonsiirto joidenkin lisäksi, joita Sony ei ole kuvannut kilpailullisista syistä. Toisin kuin jotkut väärinkäsitykset, nämä SIMD-ominaisuudet eivät tarkoittaneet prosessorin olevan "128-bittinen", koska muistiosoitteet tai kokonaisluvut eivät olleet 128-bittisiä, vain jaetut SIMD/kokonaislukurekisterit. Vertailun vuoksi 128-bittiset rekisterit ja SIMD-ohjeet olivat olleet mukana 32-bittisessä x86- arkkitehtuurissa vuodesta 1999 SSE: n käyttöönoton myötä . Sisäiset datapolut olivat kuitenkin 128 bitin leveitä ja sen prosessorit pystyivät toimimaan 4x32 bitin määrillä rinnakkain yksittäisissä rekistereissä.

Siinä on 6 -vaiheiset kokonaislukuiset putkilinjat ja 15 -vaiheinen liukulukukanava. Sen rekisterivalikoima koostuu 32 128-bittisestä VLIW SIMD -rekisteristä (nimeäminen/nimeäminen uudelleen), yhdestä 64-bittisestä akusta ja kahdesta 64-bittisestä yleisestä datarekisteristä, 8 16-bittisestä korjaustoimintorekisteristä, 16 8-bittisestä ohjainrekisteristä. Suorittimessa on myös kaksi 64-bittistä kokonaislukuista ALU-yksikköä, 128-bittinen kuorman tallennusyksikkö (LSU), haara-suoritusyksikkö (BXU) ja 32-bittinen VU1-FPU-rinnakkaisprosessori (joka toimi VPU0/VPU1-synkronointiohjaimena), joka sisältää MIPS-perusprosessorin ydin, jossa on 32 64-bittistä FP-rekisteriä ja 15 32-bittistä kokonaislukurekisteriä. ALU: t ovat 64-bittisiä, ja 32-bittinen FPU ei ole IEEE 754 -yhteensopiva. Muokattu käskysarja 107 MMI (Multimedia Extensions) toteutettiin ryhmittelemällä kaksi 64-bittistä kokonaislukuista ALU: ta. Sekä kokonaisluku ja liukulukuja putkilinjat ovat kuusi vaihetta pitkä.

Suoritusyksiköiden syöttämiseksi käskyillä ja tiedoilla on 16 kt kaksisuuntainen yhdistetty käskyvälimuisti , 8 kt kaksisuuntainen assosiatiivinen estovälimuistivälimuisti ja 16 kt raaputuslevymuisti . Sekä käsky- että datavälimuistit on käytännössä indeksoitu ja fyysisesti merkitty, kun taas raaputuslevyn RAM -muisti on erillisessä muistitilassa. Virtuaalisten osoitteiden kääntämiseen on yhdistetty 48 kaksoismerkintäkäskyä ja datan kääntämisnäkymäpuskuri . Haaraennustuksen saavutetaan 64-merkintä haara kohdeosoite välimuisti ja haara historia taulukko , joka on integroitu käskykätkömuistista. Haarakonttorin virheennusterangaistus on kolme sykliä lyhyen kuusivaiheisen putkilinjan vuoksi.

Vektorin prosessointiyksiköt

Suurin osa Emotion Enginein liukulukuominaisuuksista saadaan kahdesta vektoriprosessointiyksiköstä (VPU), jotka on nimetty VPU0: ksi ja VPU1: ksi. Nämä olivat pohjimmiltaan 3D -matematiikkaan räätälöityjä DSP -laitteita ja laitteiden kärkipään varjostinputkien edeltäjä . Jokaisessa VPU: ssa on 32  128-bittistä vektori-SIMD- rekisteriä (joissa on 4D-vektoritietoja), 16 16-bittistä kiinteäpisterekisteriä, neljä liukuluku-kertolaskuyksikköä (FMAC), liukulukujako (FDIV) ja paikallinen datamuisti . VPU0: n datamuisti on kooltaan 4 kt, kun taas VPU1: ssä on 16 kt.

Suuren kaistanleveyden saavuttamiseksi VPU: n datamuisti on kytketty suoraan GIF -tiedostoon, ja DMA -yksikkö voi lukea molemmat datamuistit suoraan . Yhden vektorin käsky koostuu neljästä 32-bittisestä yhden tarkkuuden liukulukuarvosta, jotka jaetaan neljälle yhden tarkkuuden (32-bittiselle) FMAC-yksikölle käsiteltäväksi. Tämä malli on samanlainen kuin Intelin SSEx -laajennukset.

FMAC-yksiköillä kestää neljä sykliä yhden käskyn suorittamiseen, mutta koska yksiköillä on kuusivaiheinen putkilinja , niiden suoritusteho on yksi käsky jaksoa kohden. FDIV-yksikössä on yhdeksän vaiheen putkilinja, ja se voi suorittaa yhden käskyn seitsemän jakson välein.

Kuvankäsittelylaite (IPU)

IPU salli MPEG-2- pakatun kuvan dekoodauksen, mikä mahdollisti DVD-levyjen ja pelien FMV- toiston . Se mahdollisti myös vektorikvantisoinnin 2D -grafiikkatiedolle.

DMA-, DRAM- ja muistinhallintayksikkö (MMU)

Muistinhallintayksikkö, RDRAM -ohjain ja DMA -ohjain käsittelevät muistin käyttöä järjestelmässä.

Sisäinen tietoväylä

MIPS-ytimen, kahden VPU: n, GIF: n, muistiohjaimen ja muiden yksiköiden välistä viestintää hoitaa 128-bittinen sisäinen dataväylä, joka toimii puolet Emotion Engine -kellotaajuudesta, mutta suuremman kaistanleveyden tarjoamiseksi on myös 128 -bitin oma polku CPU: n ja VPU0: n välillä ja 128-bittinen omistettu polku VPU1: n ja GIF: n välillä. 150 MHz: n sisäinen tietoväylä tarjoaa teoreettisen enimmäiskaistanleveyden 2,4 Gt/s.

Ulkoinen käyttöliittymä

Tiedonsiirto Emotion Engine -muistin ja RAM -muistin välillä tapahtuu kahden DRDRAM -kanavan (Direct Rambus Dynamic Random Access Memory) ja muistiohjaimen kautta , joka liitetään sisäiseen tietoväylään. Jokainen kanava on 16 bittiä leveä ja toimii 400 MHz: n DDR (Double Data Rate) -taajuudella. Yhdessä näiden kahden DRDRAM -kanavan teoreettinen enimmäiskaistanleveys on 25,6 Gbit/s (3,2 GB/s), mikä on noin 33% enemmän kaistaa kuin sisäinen dataväylä. Tämän vuoksi muistiohjain puskuroi DRDRAM -kanavilta lähetetyn datan, jotta CPU voi hyödyntää ylimääräistä kaistanleveyttä.

Emotion Engine liitetään suoraan GIF-grafiikkasyntetisaattoriin erillisellä 64-bittisellä, 150 MHz: n väylällä, jonka teoreettinen enimmäiskaistanleveys on 1,2 GB/s.

Tiedonsiirron aikaansaamiseksi Emotion Engine ja Input Output Processor (IOP) välillä tulolähtörajapinta liittää 32-bittisen, 37,5 MHz: n tulolähtöväylän, jonka suurin teoreettinen kaistanleveys on 150 MB/s, sisäiseen tietoväylään. Käyttöliittymä tarjoaa riittävän kaistanleveyden PCMCIA-laajennusliittimelle, jota käytettiin verkkosovittimessa, jossa on sisäänrakennettu P-ATA-liitäntä, nopeampaan tiedonsaantiin ja online-toimintoihin. Suuren kaistanleveyden etuna oli, että sitä voidaan helposti käyttää laitteistolaajennusten, kuten sisäänrakennetulla IDE-kiintolevytuella varustetun verkkosovittimen, tai muiden laajennusten käyttöönotolla toiminnallisuuden ja tuotteen elinkaaren pidentämiseksi, mikä voidaan nähdä kilpailuetuna. Uudemmissa versioissa (kuten ohut versio) käyttöliittymä tarjoaisi kuitenkin huomattavasti enemmän kaistanleveyttä kuin mitä PlayStationin tulolähtölaitteet edellyttävät, kun kiintolevyn tuki poistettiin ja PCMCIA -liittimen rakenne hylättiin ohuemman mallin sijaan.

Valmistus

Emotion Engine sisälsi 13,5 miljoonaa metallioksidipuolijohdetransistoria (MOS), 240 mm 2 : n integroidulla piirillä . Sen valmistivat Sony ja Toshiba 0,25 µm ( 0,18 µm tehokas L G ) -komplementatiivisella metalli -oksidi -puolijohde (CMOS) -prosessilla, jossa on neljä yhteenliittämistasoa.

Pakkaus

Emotion Engine pakattiin 540-kontakti muovi BGA (PBGA).

Käyttää

Emotion Engine -ohjelman ensisijainen käyttötarkoitus oli toimia PlayStation 2 : n suorittimena. PlayStation 3: n ensimmäisissä SKU -malleissa oli myös Emotion Engine emolevyllä, jotta ne olisivat yhteensopivia PlayStation 2 -pelien kanssa taaksepäin. Kuitenkin, toinen tarkistaminen PlayStation 3 puuttui fyysinen Emotion Engine jotta alentaa kustannuksia, suorittaa kaikki toiminnot käyttämällä ohjelmistoemuloinnilla suoritetaan Cell Broadband prosessori , yhdessä laitteiston Graphics Synthesizer edelleen läsnä saavuttamiseksi PlayStation 2 taaksepäin yhteensopivuus. Kaikissa myöhemmissä versioissa Graphics Synthesizer poistettiin; PlayStation 2 -ohjelmistoemulaattori on kuitenkin saatavana myöhemmissä järjestelmäohjelmistoversioissa käytettäväksi Sonyn PS2 Classics -pelien kanssa, joita voi ostaa Sony Entertainment Networkista.

Tekniset tiedot

Teoreettinen suoritus

Katso myös

Viitteet

Viitteet