errorrrr said: Basically,
Found this on the PSU forum: PLEASE NOTICE there is no MENTION of MEMORY SIZE, because MEMORY SIZE (your 256MB vs 512MB) doesn't measure HOW FAST memory works in ANYWAY AT ALL. |
That's misleading at best, and outright false at worst. As has been explained by quaiky and Deneidez, things are not as you claim them to be. I'm not an expert in processor architecture by any means, but here's how I understand things:
The PS3 Cell has one PowerPC core and 6 working SPEs. Each SPE has 256 kilobytes of their own, dedicated memory, and that's what each SPE works on. They are completely reliant on other parts of the Cell to actually provide the data for them to process. You can think of it as a factory with 6 workers and one supervisor: the supervisor is responsible for making sure that the workers have work to do, otherwise they will just sit there and do nothing. Now, if you get the workers to do work all the time, you'll get great results, but the problem is that each worker only does what the supervisor assigns to him, and he does it as fast as he can without any regard to what the other workers are doing. So, if one worker is doing something that another worker needs, the supervisor has to manage their schedules so that things work in order. That's the tricky part, as the work done is very complex and things are needed here and there between the workers. Now, to be fair, the problems are pretty much the same in any multithreaded software, but the Cell architecture is designed to allow the maximum amount of asynchronous working, so it's not really helping develops to cope with the complexity.
Now, on to the memory size. 256MB is not much to work with for graphics, not for the resolutions the PS3 is meant to display. Higher resolutions call for higher triangle count models, and as Deneidez explained, each triangle needs 3*3*4 bytes of memory, and triangles are what constitute the geometry of the scene. Crysis, according to the tech demo, can have about 2 million triangles in one scene, so that's about 70MB worth of geometry data. In addition to that come the textures, which consume way more memory than the geometry. That's why you won't see anything in the scale of Crysis on PS3 or X360, there simply isn't enough memory available. And that's because, for the most part, the whole scene has to fit in the memory before rendering, although I'm sure there are pretty nifty tricks to work around some limitations but that goes way beyond the boundaries of my knowledge. Somebody with more knowledge in 3D engines could explain if and how you can work around these limitations, I seem to recall rendering in tiles as an option. Anyway, no matter what you do you have to be able to feed the data into the rendering process and that's where not only the memory bandwidth but also the bandwidth from the HDD and optical media come into play. You have to get the geometry data and the textures into the memory from somewhere, the don't just magically appear there. The more memory you have, the more you can keep things there to be reused in later scenes.