Känslomotor
Emotion Engine är en central bearbetningsenhet utvecklad och tillverkad av Sony Computer Entertainment och Toshiba för användning i PlayStation 2- spelkonsolen . Den användes också i tidiga PlayStation 3- modeller som såldes i Japan och Nordamerika (modellnummer CECHAxx & CECHBxx) för att ge PlayStation 2- spelsupport. Massproduktionen av Emotion Engine började 1999 och slutade i slutet av 2012 med att PlayStation 2 lades ner.
Beskrivning
Emotion Engine består av åtta separata "enheter", som var och en utför en specifik uppgift, integrerade på samma form . Dessa enheter är: en CPU-kärna, två Vector Processing Units (VPU), en 10-kanals DMA- enhet, en minneskontroller och en Image Processing Unit (IPU). Det finns tre gränssnitt: ett ingångsutgångsgränssnitt till I/O-processorn, ett grafikgränssnitt (GIF) till grafiksyntesen och ett minnesgränssnitt till systemminnet.
00 CPU-kärnan är tätt kopplad till den första VPU:n, VPU . Tillsammans ansvarar de för att köra spelkod och modelleringsberäkningar på hög nivå. Den andra VPU:n, VPU 1 , är tillägnad geometri-transformationer och belysning och fungerar oberoende, parallellt med CPU-kärnan, styrd av mikrokod . VPU , när den inte används, kan också användas för geometri-transformationer. Visningslistor som genereras av CPU/VPU0 och VPU1 skickas till GIF, som prioriterar dem innan de skickas till grafiksyntesen för rendering.
CPU kärna
CPU-kärnan är en tvåvägs superskalär RISC- processor i ordning . Baserat på MIPS R5900, implementerar den MIPS-III instruktionsuppsättningsarkitekturen (ISA) och mycket av MIPS-IV, förutom en anpassad instruktionsuppsättning utvecklad av Sony som fungerade på 128-bitars breda grupper av antingen 32-bitars, 16 -bitar eller 8-bitars heltal på SIMD-sätt ( single instruction multiple data ) (dvs fyra 32-bitars heltal kan läggas till fyra andra med en enda instruktion). Instruktioner som definieras inkluderar: addera, subtrahera, multiplicera, dividera, min/max, shift, logisk, inledande-nollräkning, 128-bitars laddning/lagra och 256-bitars till 128-bitars trattskifte, förutom några som inte beskrivits av Sony för konkurrensskäl. I motsats till vissa missuppfattningar uppgick dessa SIMD-kapaciteter inte till att processorn var "128-bitars", eftersom varken minnesadresserna eller själva heltal var 128-bitar, bara de delade SIMD/heltalsregistren. Som jämförelse hade 128-bitars breda register och SIMD-instruktioner funnits i 32-bitars x86 -arkitekturen sedan 1999, med introduktionen av SSE . De interna datavägarna var dock 128 bitar breda och dess processorer kunde arbeta på 4x32bitars kvantiteter parallellt i enstaka register.
Den har en 6 steg lång heltalspipeline och en 15 steg lång flyttal. Dess registerutbud består av 32 128-bitars VLIW SIMD-register (namngivning/döpning), en 64-bitars ackumulator och två 64&-bitars allmänna dataregister, 8 stycken 16-bitars fixfunktionsregister, 16 8-bitars styrregister. Processorn har också två 64-bitars heltals ALU:er, en 128-bitars Load-Store Unit (LSU), en Branch Execution Unit (BXU) och en 32-bitars VU1 FPU-samprocessor (som fungerade som en synkkontroller för VPU0/VPU1) som innehåller en MIPS basprocessorkärna med 32 64-bitars FP-register och 15 32-bitars heltalsregister. ALU:erna är 64-bitars, med en 32-bitars FPU som inte är IEEE 754-kompatibel. Den anpassade instruktionsuppsättningen 107 MMI (Multimedia Extensions) implementerades genom att gruppera de två 64-bitars heltals ALU:erna. Både heltals- och flyttalspipelines är sex steg långa.
För att mata exekveringsenheterna med instruktioner och data finns det en 16 KB tvåvägsuppsättning associativ instruktionscache , en 8 KB tvåvägsuppsättning associativ icke-blockerande datacache och en 16 KB scratchpad RAM . Både instruktions- och datacacharna är virtuellt indexerade och fysiskt taggade medan scratchpad-RAM-minnet finns i ett separat minnesutrymme. En kombinerad 48 dubbelinmatningsinstruktioner och dataöversättningsbuffert för att översätta virtuella adresser . Förutsägelse av gren uppnås genom en 64-ingångars grenmåladresscache och en grenhistoriktabell som är integrerad i instruktionscachen. Straffet för att förutsäga grenen är tre cykler på grund av den korta rörledningen i sex steg.
Vektorbehandlingsenheter
Majoriteten av Emotion Engines flyttalsprestanda tillhandahålls av två vektorbehandlingsenheter (VPU), betecknade VPU0 och VPU1. Dessa var i huvudsak DSP:er skräddarsydda för 3D-matematik, och föregångaren till pipelines för vertex shader för hårdvara . Varje VPU har 32 128-bitars vektor SIMD -register (innehåller 4D vektordata), 16 16-bitars fastpunktsregister, fyra flyttalsmultiplicera-ackumulera (FMAC)-enheter, en flyttalsdelningsenhet (FDIV) och ett lokalt dataminne . Dataminnet för VPU0 är 4 KB stort, medan VPU1 har ett 16 KB dataminne.
För att uppnå hög bandbredd kopplas VPU:ns dataminne direkt till GIF:n och båda dataminnena kan läsas direkt av DMA -enheten. En enkel vektorinstruktion består av fyra 32-bitars flyttalsvärden med enkel precision som distribueras till de fyra enkelprecisions (32-bitars) FMAC-enheterna för bearbetning. Detta schema liknar Intels SSEx -tillägg.
FMAC-enheterna tar fyra cykler för att utföra en instruktion, men eftersom enheterna har en sex-stegs pipeline har de en genomströmning på en instruktion per cykel. FDIV-enheten har en pipeline i nio steg och kan utföra en instruktion var sjunde cykel.
Bildbehandlingsenhet (IPU)
IPU:n tillät MPEG-2- komprimerad bildavkodning, vilket möjliggjorde uppspelning av DVD-skivor och spel- FMV . Det tillät också vektorkvantisering för 2D-grafikdata.
DMA, DRAM och Memory Management Unit (MMU)
Minneshanteringsenheten, RDRAM -styrenheten och DMA-styrenheten hanterar minnesåtkomst i systemet.
Intern databuss
Kommunikation mellan MIPS-kärnan, de två VPU:erna, GIF, minneskontroller och andra enheter hanteras av en 128-bitars bred intern databuss som körs med halva klockfrekvensen för Emotion Engine, men för att erbjuda större bandbredd finns det också en 128 -bitars dedikerad väg mellan CPU och VPU0 och en 128-bitars dedikerad väg mellan VPU1 och GIF. Vid 150 MHz ger den interna databussen en maximal teoretisk bandbredd på 2,4 GB/s.
Externt gränssnitt
Kommunikation mellan Emotion Engine och RAM sker genom två kanaler av DRDRAM (Direct Rambus Dynamic Random Access Memory) och minneskontrollern , som ansluter till den interna databussen. Varje kanal är 16 bitar bred och arbetar med 400 MHz DDR (Double Data Rate). Tillsammans har de två kanalerna i DRDRAM en maximal teoretisk bandbredd på 25,6 Gbit/s (3,2 GB/s), cirka 33 % mer bandbredd än den interna databussen. På grund av detta buffrar minnesstyrenheten data som skickas från DRDRAM-kanalerna så att den extra bandbredden kan utnyttjas av CPU:n.
Emotion Engine gränssnitt direkt till Graphics Synthesizer via GIF med en dedikerad 64-bitars, 150 MHz-buss som har en maximal teoretisk bandbredd på 1,2 GB/s.
För att tillhandahålla kommunikation mellan Emotion Engine och Input Output Processor (IOP) kopplar ingångsutgångsgränssnittet en 32-bitars bred, 37,5 MHz ingångsutgångsbuss med en maximal teoretisk bandbredd på 150 MB/s till den interna databussen. Gränssnittet ger tillräckligt med bandbredd för PCMCIA-förlängningskontakten som användes för nätverksadaptern med inbyggt P-ATA-gränssnitt för snabbare dataåtkomst och onlinefunktionalitet. En fördel med den höga bandbredden var att den lätt kunde användas för att introducera hårdvarutillägg som nätverksadaptern med inbyggt IDE HDD-stöd eller andra tillägg för att förlänga funktionalitet och produktlivscykel vilket kan ses som en konkurrensfördel. I nyare varianter (som den slimmade utgåvan) skulle dock gränssnittet erbjuda mycket mer bandbredd än vad som krävs av PlayStations ingångsenheter eftersom hårddiskstödet togs bort och PCMCIA-kontaktdesignen övergavs till förmån för en tunnare design.
Tillverkning
Emotion Engine innehöll 13,5 miljoner metall-oxid-halvledartransistorer (MOS) på en integrerad krets (IC) matris som mätte 240 mm 2 . Den tillverkades av Sony och Toshiba i en 0,25 µm ( 0,18 µm effektiv L G ) komplementär metall-oxid-halvledarprocess (CMOS) med fyra nivåer av sammankoppling.
Förpackning
Emotion Engine var förpackad i en 540-kontakters plastkula ( PBGA) .
Används
Den primära användningen av Emotion Engine var att fungera som PlayStation 2 :s CPU. De första SKU:erna för PlayStation 3 innehöll också en Emotion Engine på moderkortet för att uppnå bakåtkompatibilitet med PlayStation 2-spel. Den andra versionen av PlayStation 3 saknade dock en fysisk Emotion Engine för att sänka kostnaderna, och utförde alla dess funktioner med mjukvaruemulering utförd av Cell Broadband Processor, tillsammans med en hårdvarugrafiksynt som fortfarande finns kvar för att uppnå PlayStation 2 bakåtkompatibilitet. I alla efterföljande revisioner togs Grafiksyntesen bort; dock finns en PlayStation 2-programemulator tillgänglig i senare systemprogramvaruversioner för användning med Sonys PS2 Classics-titlar som kan köpas på Sony Entertainment Network.
Tekniska specifikationer
- Klockfrekvens : 294 MHz , 299 MHz (senare versioner)
- Instruktionsuppsättning : MIPS III, MIPS IV underuppsättning, 107 vektorinstruktioner
- 2-utgåva, 2 64-bitars enheter med fast punkt, 1 flyttalsenhet, 6-stegs pipeline
- Instruktionscache : 16 KB, associativ 2-vägsuppsättning
- Datacache : 8 KB, 2-vägs set associativ
- Scratchpad RAM : 16 KB
- Översättning titta åt sidan buffert : 48-poster kombinerad instruktion/data
- Vektorbehandlingsenhet: 4 FMAC-enheter, 1 FDIV-enhet
- Register för vektorbehandlingsenheter : 128-bitars bredd, 32 poster
- Bildbehandlingsenhet : MPEG2 makroblocklageravkodare _
- Direkt minnesåtkomst : 10 kanaler
- V DD Spänning : 1,8 V
- Strömförbrukning : 15 W vid 1,8 V
- Inbäddat minne: 1 KB RAM , 4 KB FeRAM , 16 KB ROM
Teoretisk prestation
- Flyttal : 6,2 miljarder flyttalsoperationer med enkel precision (32-bitars) per sekund
- Perspektiv transformation : 66 miljoner polygoner per sekund
- Med belysning och dimma : 36 miljoner polygoner per sekund
- Bézier ytfläckar: 16 miljoner polygoner per sekund
- Bilddekomprimering: 150 miljoner pixlar per sekund
Se även
- Grafikkort
- Grafikbehandlingsenhet
- Datorgrafik
- Lista över datorgrafik och beskrivande geometriämnen
- Cellmikroprocessor , en design inspirerad av Emotion Engines CPU+VU0/VU1-arrangemang, som används i PlayStation 3
Referenser
- Hennessy, John L .; Patterson, David A. (29 maj 2002). Computer Architecture: A Quantitative Approach (3 uppl.). Morgan Kaufmann. ISBN 978-0-08-050252-6 . Hämtad 9 april 2013 .
- Diefendorff, Keith (19 april 1999). "Sonys känsloladdade chip". Mikroprocessorrapport . Mikrodesignresurser. 13 (5).