patsu said:
I believe the issue is the LS is not a cache and the SPEs can only work on LS directly.
yes, whereas with cache-reliant archtiectures you want to maximise you cache efficiency, ergo data locality, ergo the 'local storage constrains' matter is not foreign to that class of architectues too. in cell this matter is just way more, erm, prominent. but again, for a good reason too (tm).
see, a classic SMP architecture (especially one with shared, lockabe, fully-associateve cache) can be made to perform
not that differently from a distributed, cell-like collection of individual nodes as in that SMP architecture, too, each cpu could be made to effectively work only in its cache apartment (things like 'io space' aside), given certin discipline on the sw side. it would be rather complicated, but it could have its gains. of course that would not necessily be 'easy', or for that matter, viable/justified. so enter cell.
I also think that I might have focused on the wrong advantages when putting Cell to work in gaming context. It seems that between Deano's far and few comments, the hard requirement is real-time scheduling+execution (as opposed to parallel computation, efficiency, raw power, ...). e.g., Certain effects must start immediately upon specific events, certain tasks must complete within specific timeframe, or both.
i'm sorry, i though we were in the same boat in this regard. but once you've had too many disucssions about cell on these boards, you start to forget in which you have layed out your principal views and in which you have not. so, let me clear this out: determinisim in performance is exactly what i attribute as cell's major advantage - the ability of the cpu to deliver certain oomph at a certain moment (hence my 'high RPM' analogy). or put in other words, its the ability to provide the developer with a reasonable percentage of its theoretical power, subject to current availability, in a timely manner, given the dev has done all the necessery rituals in advance, chanted the right words in latin, facing the right direction of the world. i.e. all those last things being at the dev's expense. but once he's done them right - the deamon is in the pentagram. with SMP the deamon often materialises one foot stepping out, or totally out, or happens to be on vacation.
The Cell architecture has a few traits (predictable run-time, more cores to summon, fast execution path) that allow developers to hit their targets more adequately and consistently regardless of what's happening in the game world. An abstract layer such as prioritized pre-emptive threading has its limitations in this aspect (no matter how good their priority schemes are).
see, i should've gotten that clue - you did mention (issues with) preemptivness in cell and i just let that slip. well, you don't (or should not) really care about preemptivness in a closed, distributed environment doing RT stuff. because..
When I did real-time programming eons ago, we built our own primitive kernel and run-time from the ground up to cater for very specific application requirements. In particular the scheduling policies are tuned/tweaked/fudged to busines-domain needs (but run at the lowest level) to guarantee timeliness.
..you'd take a well-oiled cooperative system for RT purposes over a preemptive one any day of the week ; ) whereas peemptivness is a big deal in desktop/multi-app/multi-user environments, its advantages in closed, well-behaved systems with emphasis on real-time are rather, well, absent.
In any case, I'm happy that the NT guys are doing more SPE stuff today. Please keep up the good work. We all know it's not easy.
i'm happy too (while i'm saving for a cell blade ; )