Emotion Engine
Download
Report
Transcript Emotion Engine
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
The PlayStation2
EmotionEngine is specifically designed
to handle several tasks (in order of
importance)
– Geometry Calculations
– Behaviour/World Simulation
– System Functions
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
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)
*Image courtesy of arstechnica.com
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
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
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
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
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
MIPS III Core details, cont.
Cache
– 16k instruction
– 8k data
Capable of speculative execution
– 2 part branch-prediction mechanism
– Fairly simple
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
SIMD
The emotion engine takes advantage of
SIMD (Single Instruction stream,
Multiple Data stream)
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
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
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
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
Basic Stats
Clock Speed - 300 Mhz
Transistors - 10.5 Million
Memory - 32MB (Direct RDRAM)
Memory Bandwidth - 3.5GB/sec
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
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