emotion engine a look at the microprocessor at the center of the playstation2 gaming console charles...

21
Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

Upload: buddy-woods

Post on 24-Dec-2015

224 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

Emotion Engine

A look at the microprocessor at the center of the PlayStation2 gaming console

Charles Aldrich

Page 2: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

The PlayStation2

Unlike many of the devices we have looked at, the PS2 seeks to do a specific task very well, namely 3D Gaming

As a result the construction of the platform is different from most computers

The EmotionEngine is also quite different as a result of this

Page 3: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

The PlayStation2

EmotionEngine is specifically designed to handle several tasks (in order of importance)– Geometry Calculations– Behaviour/World Simulation– System Functions

Page 4: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

Creating Graphics

The EmotionEngine is not responsible for creating and displaying graphics, rather it is responsible for passing a list of rendering commands to the graphics synthesizer

The graphics synthesizer, in the PS2 is a souped up video accelerator

Page 5: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

EmotionEngine basic architecture

MIPS III core A Vector Unit (actually made up of 2, VU0

and VU1) Floating Point Image Processing Unit (does mpg2) Graphics Interface Unit RDRAM interface I/O interface DMA Controller (10 channel)

Page 6: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

*Image courtesy of arstechnica.com

Page 7: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

Architecture, cont.

All components are connected via a 128-bit internal bus

Toshiba, who developed the EmotionEngine (and licensed it to Sony) decided, early on, that the EmotionEngine was not going to be a general purpose microprocessor rather it was only going to be designed to run 3D games

This allowed the design team to determine the roles of the various internal devices during design

Page 8: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

Architecture, cont.

The idea was to set up the various components to work in groups to accomplish set tasks– CPU + FPU: basic program control, housekeeping, etc– CPU + FPU + VU0: behavior, physics calculations, etc– VU1: simple geometry calculations that produce display

lists which are sent directly to the Graphics Synthesizer – IPU: image decompression

Next we’ll look at how each of these groups work together

Page 9: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

CPU/FPU/VU0 group

Both the FPU and the VU0 have a dedicated 128-bit bus, so they do not need to use the shared system bus

The dedicated bus allows the VU0 to function as a MIPS III coprocessor

The VU0 and the CPU share the ScratchPadRam (16k of very fast RAM)

The SPRAM functions as a workspace where both the CPU and the VU0 work together on a piece of data before sending it out over the system bus

Page 10: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

VU1/Graphics Synthesizer

Similar to the VU0 and the CPU, the VU1 has a dedicated 128-bit bus connection to the Graphics Interface

Do not work as closely as the VU0 and CPU, neither controls the other

Page 11: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

MIPS III Core details

The EmotionEngine uses a specialized version of the MIPS architecture– 32 128-bit registers– 2 64-bit integer ALUs– 128-bit load/store unit– Branch execution unit– FPU Coprocessor– Vector Coprocessor

Page 12: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

MIPS III Core details, cont.

Cache– 16k instruction– 8k data

Capable of speculative execution– 2 part branch-prediction mechanism– Fairly simple

Page 13: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

MIPS III Core details, cont.

Pipeline– Relatively short, 6 stage pipeline

• 1. PC Select• 2. Instruction fetch• 3. Instruction decode and register read• 4. Execute• 5. Cache access• 6. Write back

FPU coprocessor is fairly standard

Page 14: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

SIMD

The emotion engine takes advantage of SIMD (Single Instruction stream, Multiple Data stream)

Page 15: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

SIMD, cont.

As the picture shows, parallel streams of data all have the same instructions done to it

The EmotionEngine supports (using both ALUs) 128-bit integer SIMD in several configurations– 16 8-bit ops/cycle– 8 16-bit ops/cycle– 4 32-bit ops/cycle

Page 16: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

Visual Power

The EmotionEngine is best suited for precision graphics, and the power of the processor comes from the Vector Processing units

As we’ve discussed already, there are two vector units

The two are similar on an architectural level, but very different on a functional level

Page 17: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

VU0

128-bit SIMD/VLIW design Works as a coprocessor with the CPU Has its own set of 32 128-bit FPRs

(floating point registers) Also has 16 16-bit integer registers for

integer operations

Page 18: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

VU1

Has all the architectural features of VU0 Also has some additions which pertain

to geometry functions in coordination with the Graphics Synthesizer

This includes the addition of the EFU (Elementary Functional Unit) which does basic math essential to geometric processing

Page 19: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

Basic Stats

Clock Speed - 300 Mhz Transistors - 10.5 Million Memory - 32MB (Direct RDRAM) Memory Bandwidth - 3.5GB/sec

Page 20: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

Performance Numbers

Floating Point - 6.2 Gigaflops Perspective Transformation - 66 Million

Polygons/sec Lighting - 38 Million Polygons/sec Fog - 36 Million Polygons/sec Curved Surface Generation (Bezier) - 16

Million Polygons/sec

Page 21: Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich

Conclusion

The EmotionEngine is clearly a very capable graphics processor, but its true power is most evident when placed in the context of the PS2 which was designed to take advantage of the processors specific architecture