N64 RSP similarity to Cell SPU

Discussion of development of software for any "obsolete" computer or video game system. See the WSdev wiki and ObscureDev wiki for more information on certain platforms.
Post Reply
calima
Posts: 1745
Joined: Tue Oct 06, 2015 10:16 am

N64 RSP similarity to Cell SPU

Post by calima »

Looking into the N64's reprogrammable vertex processor, the RSP, it reminded me of early Radeons in some ways, but then it hit me: it's way more similar to the Cell SPUs in PS3.

- highly performant streaming processor with native 128-bit vector operations
- can only access small local memory, requiring data to be DMA'd in and out
- runs in parallel, with somewhat similar notifications
- fully reprogrammable
- fast but hard to program, and so not many titles made proper use of it

Kinda funny. I wonder if Sony knew when designing it.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: N64 RSP similarity to Cell SPU

Post by tepples »

For comparison, how similar are the RSP and the Cell SPEs to the vector units in the PlayStation 2 Emotion Engine, the Tom CPU in the Jaguar, or the second SH-2 in the Sega Saturn? Because those are the comparisons I make when discussing programmable vertex shaders on fifth and sixth generation consoles.
calima
Posts: 1745
Joined: Tue Oct 06, 2015 10:16 am

Re: N64 RSP similarity to Cell SPU

Post by calima »

I have no experience with any that you listed, but at least SH-2 did not have vector instructions according to quick googling.
User avatar
Fisher
Posts: 1249
Joined: Sat Jul 04, 2015 9:58 am
Location: -29.794229 -55.795374

Re: N64 RSP similarity to Cell SPU

Post by Fisher »

tepples wrote:Because those are the comparisons I make when discussing programmable vertex shaders on fifth and sixth generation consoles.
Could you please share some links of these comparisons?
Sounds interesting!
calima
Posts: 1745
Joined: Tue Oct 06, 2015 10:16 am

Re: N64 RSP similarity to Cell SPU

Post by calima »

It appears it's a great match to the Emotion Engine vector units as well, so there's the Sony continuity. The SPU similarity is useful though, as there is a great amount of public literature on SPU techniques, many of which should be transplantable here.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: N64 RSP similarity to Cell SPU

Post by tepples »

Fisher wrote:
tepples wrote:Because those are the comparisons I make when discussing programmable vertex shaders on fifth and sixth generation consoles.
Could you please share some links of these comparisons?
I haven't done any detailed comparison among these architectures, only mentioned them in passing as early examples of platforms that run what we now refer to as vertex shader programs.
mic_
Posts: 922
Joined: Thu Oct 05, 2006 6:29 am

Re: N64 RSP similarity to Cell SPU

Post by mic_ »

or the second SH-2 in the Sega Saturn?
The second SH-2 in the Saturn/32X didn't have any specific purpose. It's identical to the main CPU.
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: N64 RSP similarity to Cell SPU

Post by rainwarrior »

From what I understand, the original plan for the PS3 was to have 2 cells, one of which would have taken the place of the GPU as a fully programmable renderer. They worked on writing the default SPU renderer implementation for a while, but failed to come up with something useful enough, so they gave up on the idea and use the nVidia GPU instead.

Intel still continued research along those lines, though, and the project was called Larrabee, but they never really got it up to snuff and was eventually abandoned.

The PS3's SPUs were very good for doing vector geometry processing, and eventually a lot of games basically used them to mostly replace the GPU's vertex shaders to let the GPU spend more resources on pixel shaders. However, I don't think this technique was widespread at first. That was more of a thing that was discovered to be effective over the lifetime of the console, and a technique that Sony disseminated to developers later on.

The SPUs were not good at pixel shading (the lack of an effective texture cache is, I believe, the big reason the Cell GPU idea never took off), but they did happen to be very effective for full screen post-processing e.g. bloom/blur effects), or compositing "deferred rendering" passes, etc. stuff that could access the whole screen buffer in linear order. That kind of technique was another thing that Sony started to recommend later in the life of the PS3.

I don't think they really foresaw either of these uses, though. The initial assumption seemed to be that the GPU would be most efficient for rendering tasks. Actually a lot of time at earlier conferences I attended was focused on ways to structure your gameplay code in SPU parallelizable ways. Unfortunately this was also not very helpful advice if you were already deep into your project, most of this advice wasn't effective without up-front planning.


As far as similarity to other vector processing units that preceded it, I think that had been gradually developing over about 10 years already, I don't really know the N64 architecture but around the same time you had MMX being introduced to Intel CPUs, marketed explicitly for "multimedia". It was clear for a long time that there were a lot of media related things that could be effectively parallelized with vectors.


I think Sony was sold on the idea of the Cell because it was demonstrably a very powerful processor, and I don't think they really knew that it was going to be quite as difficult as it turned out to work with for games. I think they assumed developers would get used to it and eventually that power would shine through, but that ended up being very slow going, especially since so much became cross-platform (esp. both being PowerPC architectures and having somewhat similar GPUs it was more viable than ever to develop for both of these platforms at once), I think that stifled research for most and left it mostly in the hands of PS3 exclusive developers. That learning period was probably a whole lot longer than Sony was planning for.

Sony launched a folding@home client for PS3 at one point, and for a while it was a huge contributor to the project. It was a pretty good PR demonstration of the Cell's power at the time. (Eventually PC GPUs took back the crown on that one.)
Post Reply