The role of the PPE?

Status
Not open for further replies.

nelg

Veteran
Just a couple of questions.

If the SPEs are as capable as being made out to be what is the role of the PPE? Is there something it does better than the SPEs? Is its role to ease migration with its familiar ISA? Is it able to hide latency better than a SPE would be able to, even a modified one? Would a Cell processor been better with a "master" SPE, perhaps with a large cache, instead of the PPE?
 
Being Power-compliant brings advantages obviously for ease of migration, porting of tools etc. The SPEs aren't Power cores. So that suggestion is correct, yes.

More fundamentally, the SPEs need a processor to kickstart them in the first place - enter the PPE. The PPE's involvement beyond that initial start-up is dependent on the model the developer chooses to use - it could be heavily involved to the point that it is all it does, or it could be involved minimally.

The PPE is also a "fatter" core than the SPEs, with branch prediction etc., so obviously some code may run more easily on it, which may be useful again from a migration POV.

I'm not sure at all on the point about latency..can't say for sure, but I don't see why the latency to main memory (if that's what you're referring to) would be higher for the SPEs than the PPE. The SPEs also have their own local memory with - apparently? - lower latency than PPE cache, but last time this point was raised the numbers didn't seem entirely clear.
 
nelg said:
Just a couple of questions.

If the SPEs are as capable as being made out to be what is the role of the PPE? Is there something it does better than the SPEs? Is its role to ease migration with its familiar ISA? Is it able to hide latency better than a SPE would be able to, even a modified one? Would a Cell processor been better with a "master" SPE, perhaps with a large cache, instead of the PPE?

simply
SPE are SP-FP units
PPE is a General Purpose Central Processing Unit

spe can't run general game code.
that's all, now you understand that without PPE, is like to be without CPU but with 7 Co-Proc
useless
 
RedBlackDevil said:
simply
SPE are SP-FP units
This is only half true; they are as capable running integer code as they are float.

spe can't run general game code.
Actually they can, though being less sophisticated than modern CPU cores they likely wouldn't be particulary efficient at it.
 
Guden Oden said:
Actually they can, though being less sophisticated than modern CPU cores they likely wouldn't be particulary efficient at it.

I think before you even get there you have to ask what "game code" is.

Any code that a game executes on SPEs, including all the things they'll be more suited for, is "game code" as much as anything else.

edit - what is "general" game code, even? What makes one piece of game code "general" and another not? It's a serious question, because I see these terms and adjectives often being thrown about without any specifics as to what that exactly means - and you need to be specific if you want to start classing code into sets that are or more or less suitable for a certain type of processor.
 
Last edited by a moderator:
Titanio said:
I think before you even get there you have to ask what "game code" is.

Any code that a game executes on SPEs, including all the things they'll be more suited for, is "game code" as much as anything else.

I wrote "general game code", you read "game code", I also say that PPE is a general purpose unit
why you lost the most important word in your read?

SPE can run general game code as much a gpu can, no more , no less

can a gpu or spe execute specific routines?
yes
can a gpu or spe execute the whole code of a game?
rotfl :LOL:
 
RedBlackDevil said:
I wrote "general game code", you read "game code", I also say that PPE is a general purpose unit
why you lost the most important word in your read?

SPE can run general game code as much a gpu can, no more , no less

can a gpu or spe execute specific routines?
yes
can a gpu or spe execute the whole code of a game?
rotfl :LOL:

See my edit above.

Regarding your second paragraph, again, as per my edit above, start defining "general game code". It's too fuzzy a term, IMO. If I had to write a game, whose "CPU activity" had to be either coded entirely for a SPE or GPU, I'd much prefer a SPE, any day of the week.

Tim Sweeney's recent presentation had some interesting commentary related to this, and might give you a better insight into the type of code that might be more suited to a PPE, the type of code you're apparently classing as "general game code".
 
Last edited by a moderator:
scooby_dooby said:
All code not suited for a specialized streaming processor like the SPE's?

right


ADEX said:
An SPE is not a GPU, they're quite different.

n SPE acts much like a gpu with n parallel pipelines

ADEX said:
"Can a gpu or spe execute the whole code of a game?
rotfl"

why?

because they lack a lot of the logic to furfill the task, because the spe, as I know, don't have direct access to main memory without PPE but only the tiny local memory
 
I guess a fair definition of 'general code' could, maybe, be 'code with lots of conditionals and unpredictable memory accessing'. If we take user input, maybe there's 8 button checks.

If button1 pressed{

}
If button2 pressed{

}
etc.

If the efficiency of execution varies greatly, the execution speed might be quite pronounced. I suppose a 'general purpose' processor would manage that condition in a few cycles, and whatever branch is taken has the right insturctions available to follow from cache. A SPE on the other hand might default to a fail condition, but when it's true, has to suddenly request the right bit of code is loaded from from with a long delay of hundreds of cycles.

With lots of conditionals it's concievable a fair percentage of a SPE could be lost on
branching. I couldn't hazard a guess what the average game would be like though. Perhaps someone with a strong gras[ of the latencies and frequency of misses could give a rough estimation?

Still, the idea is that where you can focus a prcoess to a streamed maths crunching algorithm, you'd port it to SPE's for optimal performance, but when there's nothing else you can do other than thrash them conditionals, you provide a processor capable of dealing with those more efficiently. Cell attempts to combine the best of both worlds.

RedBlackDevil : You certainly could create a game on a SPE. It wouldn't be as efficient in the code outlined above, but it is possible, unlike a GPU. For example, someone could port 'Manic Miner' to SPE and have it run. You won't get a current GPU running 'Manic Miner'.
 
RedBlackDevil said:
because they lack a lot of the logic to furfill the task, because the spe, as I know, don't have direct access to main memory without PPE but only the tiny local memory
You seem to be confused. The SPE *is* a general processor. It's not a GPU, or a dedicated FP co-processor or anything like that. For all intents and purposes, it IS a CPU. That it can't act as a CPU because it doesn't have direct access to main memory is nonsense, and a non-sequitur anyway. A; even if it was true that it doesn't have access to main memory wouldn't stop it from having CPU-like capabilities, and B; it DOES have access to main memory through its DMA controller.

So, you were saying...? :)
 
The PPE will also have to run any code that can't be synchronized properly across multiple cores.

I think alot of what ends up being 'suitable' for the SPE's will depend mainly on developer skill, experience & budget, and will vary widely.
 
Shifty Geezer said:
RedBlackDevil : You certainly could create a game on a SPE. It wouldn't be as efficient in the code outlined above, but it is possible, unlike a GPU. For example, someone could port 'Manic Miner' to SPE and have it run. You won't get a current GPU running 'Manic Miner'.

yes this is technically possible, but in the real world it's a pain in the ass
my portable phone can run Manic Miner, here we are talking of actual 'next gen' games, I wrote 'rotfl' because I really think that this is impossibile in practice

a thing, as far as I know, spe's need the ppe to gain access to main memory, am I right?
 
RedBlackDevil said:
n SPE acts much like a gpu with n parallel pipelines
No it doesn't. It can read any type of data. It's more efficient at 4 value vectors, but there's nothing stopping it from reading single values of any data type and processing it accordingly.

because they lack a lot of the logic to furfill the task, because the spe, as I know, don't have direct access to main memory without PPE but only the tiny local memory
Wrong on many counts. You need to learn a lot more. SPU's have their own memory management unit and can directly fetch data from memory without needing the PPE. (http://www.research.ibm.com/cell/SMF.html)

SPE's have all the logic needed to perform any programmable task. They lack processor architecture to do some of these tasks particularly efficiently, but they are capable of doing them, unlike GPUs.
 
RedBlackDevil said:
yes this is technically possible, but in the real world it's a pain in the ass
my portable phone can run Manic Miner, here we are talking of actual 'next gen' games, I wrote 'rotfl' because I really think that this is impossibile in practice
Well you were comparing SPE to GPU in abilities. SPE isn't like a GPU because it can run a game, even if a simple one. GPU cannot because it lacks the logic.
a thing, as far as I know, spe's need the ppe to gain access to main memory, am I right?
No, you're wrong. Each SPE has a SMF unit with DMA controller. All data passes around Cell through the ringbus. That includes IO , so IO data coming into Cell can be picked off the EIB. A SPE can read IO, process with any degree of processing, ints, floats, chars and all other formats with differeing degrees of efficiency, and output without needing the PPE other than to start things off. This is very different to a GPU and no different to a CPU.
 
scooby_dooby said:
The PPE will also have to run any code that can't be synchronized properly across multiple cores.

Untrue. Why do I have to take a given task and run it across multiple SPEs? I may well choose to have a task run as a serial, non-parallel program on one SPE (in parallel with any number of other independent tasks, which themselves may or may not be parallelised).
 
Shifty Geezer said:
No it doesn't. It can read any type of data. It's more efficient at 4 value vectors, but there's nothing stopping it from reading single values of any data type and processing it accordingly.

mah, SPE is geared for single-precision SIMD computation. Most of its arithmetic instructions operate on 128-bit vectors of four 32-bit elements.

a gpu as Xenos too, for example, can read any type of data, what's your point?

SPE's have all the logic needed to perform any programmable task. They lack processor architecture to do some of these tasks particularly efficiently, but they are capable of doing them, unlike GPUs.

have all the logic needed to perform any programmable task?
in only 7 milions of transistor?

no, they lack control logic of the instruction window, it doesn't do register renaming or instruction reording, so it needs neither a rename register file or a reorder buffer, it lacks branch prediction and code scheduling logic, and it lack cache, as being a little little celeron

local addressable memory is not cache.

so I think that SPE lacks a lot of logic, of course, remember of the '7 milions trans' number
 
RedBlackDevil said:
have all the logic needed to perform any programmable task?
in only 7 milions of transistor?
First processors had a few Thousands of Transistors, and still are capable of doing any programmable task if given enough memory (and a reasonably big adressspace) - speed being abviously a problem.

Neither of the words you thro around is a *functional* requirement for a CPU, but rather performance-optimizations.

SPEs have alot more than whats needed for a basic ALU, allowing it to emulate any kind of instruction it might miss compared to other processors.
SPEs can kick off DMA Requests, effectively allowing it random access to Memory.
SPEs can access and modify its own programms.

GPUs cant do the later 2 points - at least for now - and thus dont qualify as full CPU
 
There may be some core OS functions that the SPEs are just not permitted to do in the current Cell model.

I don't think they are even connected to the full range of system interrupts, and I am curious about what kind of software permissions the programs on the SPEs are given.

Considering how the LS must be explicitely kept coherent, traffic for piddling system changes might clog the EIB, or it might lead to undesirable behavior.
 
Status
Not open for further replies.
Back
Top