[svlug] Re: Sony puts Linux on PlayStation 2 <- MIPS and SIMD and Emotion, oh my!
Bryan J. Smith
b.j.smith at ieee.org
Sun Apr 29 07:33:01 PDT 2001
"David E. Fox" wrote:
> beowulf :)
> Actually, how does this processor compare to Athlon? I hear G4s are
> better at integer stuff even at lower clock speeds, but what about
> MIPS cores?
The MIPS design was the first bi-endian microprocessor meaning it
can be either big or little endian ordered (e.g., although Linux can
do either, Windows NT was little endian-only). The PowerPC and
Intel Itanium processors are also bi-endian.
Several series of MIPS processors have come out, with at least a
half-dozen major licensees. The 3000, 4000, 5000, 8000, 10000 and
12000. The MIPS 3000 processors were popular in a variety of
platforms in the early '90s because many of the major CPU design
houses considered rallying around MIPS. Once Intel did it's Intel
thing, IBM and Motorola joined forces, and Digital considered
everyone's ideas to be more complex than RISC should be, SGI and the
licensees were left to themselves (and SGI would gobble up MIPS
The N64, Sony Playstation and many other consoles were based on the
64-bit MIPS 4000 series. While Sega moved to Hitachi's SH-series,
Sony stuck with the MIPS. But instead of using a newer MIPS
rendition, Sony did something interesting.
Sony took their existing MIPS 4000 core, and slapped on a 128-bit,
SIMD (single instruction, multiple data) core onto it. This new
"Emotion Engine" core is paired with a video controller of original
design. Both chips are phenomally large at 0.25um, even for a x86
CPU, at 220mm^2 and 242mm^2. The Sony Playstation 2 could have
easily maintained backward compatibility via the Emotion Engine
chip, but Sony figured it would cost them peanuts to add the true,
PS1 MIPS 4000 chip to the board, ensuring 100% backward
The bus design is typical of a console. Even though the MIPS 4000
sports a 64-bit ALU (arithmetic logic unit) and internal, 64-bit
datapaths, most implementations use a 32-bit external data path.
The Emotion chip runs at 300MHz, and the video controller runs at
150MHz -- synchronous with a clock divider. Memory is 32MB of
Rambus RDRAM (also used in the N64) to keep trace counts on the PCB
to a minimum (yes, wider SDRAM might be faster, but more expensive
and push shielding requirements higher, yet adding more cost). I
can only assume the RDRAM runs at 600MHz with the clock virtually
"quad pumped" with RDRAM's common packet signalling (150MHz FSB like
the video controller).
Comparing processors these days is difficult. Do you compare raw
clock? Raw ALU (e.g., SPECint)? FPU (e.g., SPECfp)? Which
benchmarks? Also, does power/performance matter (which really puts
x86 at the far bottom)? In the case of embedded systems, yes. And
what can the 128-bit SIMD instructions of the Emotion Engine do?
Can the do double-precision FP like real FPUs? Or is it more
approximation type SIMD math, using interpolated 32-bit integers
like Intel's SSE2 (e.g., the MPEG-4 "quality" difference between a
P4 doing SSE2 encoding and raw FPU encoding is quite noticable)?
Bryan "TheBS" Smith chat:thebs413 @AOL/MSN/Yahoo
Engineer mailto:b.j.smith at ieee.org
"Linux will do for applications what the Internet did to
networks" -- Sam Palmisano, IBM Chief Operating Officer
More information about the svlug