By using this site, you agree to our Privacy Policy and our Terms of Use. Close

Forums - Sony Discussion - HOW PS3 process more than 256MB?? I don´t understand.

I love that there is lots of *Fail* but no one will try to explain in layman's terms why and what the truth really is. That is the real *Fail*, calling out someone and saying you are wrong but i cant be bothered to tell you why. You bothered to say your wrong so obviously you can be bothered.



 

 assumption is the mother of all f**k ups 

Around the Network

ok looking at this from a programming standpoint there is different kinds of data that you need in ram for different amounts of time.

1) the programm code including the the game engine. the game engine itself has to be in memory at all times (if the processor would have to fetch a subroutine that he needs to branch to each time from harddisk before starting it will take times in milliseconds scale and not in nanoseconds), other parts of the programm like situational scripts ai routines... are usually not in memory all time but prefetched in time before they are needed and unloaded after they are no longer needed.
2) geometry data: big arrays with coordinates of the objects that build in the gameworld, these have to be modified each time when you move, or when the object moves.. so that data have to be in memory too to allow the cpu/gpu fast access to do geometery transformations
3) texture data: these are basically pictures that are projected on the geometry, the projection process usually takes part in the gpu, the texture data for all objects that could be visible at same time has to be in memory at the time when its displayed too (but if a object gets destroyed, or if you move so that a object gets out of visibility the texture can be removed and replaced by a new one)
4) framebuffer data: these are the fulyl rendered pictures after the gpu is done rendering that wait to be displayed on next picture swap. they take a fixed amount of data depending on the displayed resolution and the colordepth. ( should be roughly 4mb for one 1080p picture) so thats not too much memory needed for this.
5) sound data: these days sound can be streamed quite good from harddisks or optical drives directly with only a small memory need for the next few milliseconds of sound to cache. so this usually has a low effect on total memory usage.


lets look on the amounts of data we are speaking about:
texture data is definitely the number one here, high resolution textures are the biggest part what fills the game dvds/BDs. (you end up fast with a megabyte for a uncompressed single textures if you want them high res and each displayed gamescene usually has hundreds of textures)
depending on game type and how much objects you display at same time geometry data or program code will be next biggest part.
the rest only plays smaller parts in memory management since you have only fixed needs for this.

ok and to the ram types:
xdr is a latency optimized memory and good optimized for small things that need to be accessed often. it is optimiced for main processor needs to allow fast accessing or random elements in the memory.
gddr is bandwidth optimized, it can do very fast sequential reads, but it usually is slower in access times to a different memory area. it is built for graphic chips that need to read big textures as fast as possible so it needs fast sequential reads

ok after knowing all this we can look at the architectures of ps3 and xbox 360.

xbox360 has the simpler setup with just 512mb gddr ram, it has the advantage that you can dynamically switch how much memory you use for program code and how much for textures. but it has the disadvantage that the mainprocessor has to use bandwidth and not latency optimized ram so the processor might be held back by ram sometimes (which makes optimizing the program code for good usage of the cache memory inside the cpu even more important).

ps3 has split main memory and graphic memory of 256mb each. this means both the cell and the gpu have the optimized memory type for them but you loose the flexibility of allocation (in this part the ps3 is more like a gaming pc which also uses split memory architectures). in the ps3 the cell can read/write very fast to the mainmemory, he can write still quite fast to the graphic memory, but he is very slow when reading from graphic memory. the graphic chip can read and write fast to graphic memory and has also quite good access times to main memory.

so basically both architectures have advantages and disadvantages, both systems are a bit low on memory when compared to pcs. when you look at new pc games then these often already use 512mb graphic ram alone with the biggest part of that being allocated for textures, so both ps3 and xbox cannot run with that high detail textures as a modern game pc. if the developer can keep the game code small then the xbox can effectively use more memory for textures than the ps3. this leads to things like fallout 3 which has highest detail textures on pc, xbox360 as second for texture details and ps3 having lower details on some textures.
if the game has a very complicated game engine then the ps3 might have the advantages with the faster access speeds.



errorrrr said:

Basically,

XDR and Cells works in a way to fetch A LOT of information in rapid manner but in smaller bits.

While the GDDR memory and the Xenon processor in Xbox360 fetches few larger chunks in a slower manner.

When people claim that PS3 have better graphic, technically it's true because in graphical terms, your image are delivered and constructed in bits and pieces called Triangles, and while GDDR can delivered larger chunks, it's not as detailed. The MORE triangles you have the better you graphics. It's like having 10,000 Triangles vs 5,000 Triangles to construct a human model, and of course 10,000 will have smoother lines and less jagged.

Now, theoretically PS3 will have better graphic, but rendering more triangles will mean more work for developer obviously you see the realistic issue here... If the developers are willing to go that far, the graphic is better. Now, for multiplatform games, of course, they are going to go with the lowest common denominator, larger chunks, and less detailed. This of course works AGAINST the PS3's fine small triangle structure, that's probably one of the reason why you see some degrades in multiplat games on the PS3.

 

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.



quaiky said:
 this leads to things like fallout 3 which has highest detail textures on pc, xbox360 as second for texture details and ps3 having lower details on some textures.

 

 It's actually quite the opposite (PS3 version has the more detailed textures and mapping compared to Xbox360 version, while suffering from framerate and AA issues), but you just choose the wrong example, i understand what you're saying.

So basically the more complex the game engine, the more suited the PS3 is for development. 



"You have the right to the remains of a silent attorney"

@quaiky

Very nice text, however you missed the eDram on X360 and 1080p picture takes about 1920×1080*24 bits=~6MB(Of course it depends how many colors you will use, but its usually true color all the way today.). PS3 SPUs also have small amount of memory as well(256kb each, like Plaupius stated).

eDram on X360 acts like larger cache. Its only 10MB, but its also 10 times faster than regular ram so stuff you need more frequently with CPU or GPU go there while they are processing it.

 

@Plaupius

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.

Well, as I also said they usually use triangle strips & fans to minimize amount of geometry data. Depending on complexity of meshes they can save a lot of memory. Lets take a fan for example:

You only have to store ABCDEF thats 3*6*4=72 bytes. If you use only triangles you would have to store EFA, EAD,DAC,ACB and that means 3*4*6*4= 288 bytes which is four times more than with fan.(Of course you have to store the indication, which one is it. Fan or strip, but it doesn't take 4 times more bytes.) :)

@el_rika

It's actually quite the opposite (PS3 version has the more detailed textures and mapping compared to Xbox360 version, while suffering from framerate and AA issues), but you just choose the wrong example, i understand what you're saying.

Actually its tradeoff for some other effects like shadows.

http://www3.telus.net/public/dhwag/FO3360.jpg

http://www3.telus.net/public/dhwag/FO3PS3.jpg

As you can see shadows are blockier on PS3 than on 360. The blockiness comes from technic called shadow maps for dynamic shadows. They are like large textures which indicate where shadows are. So less you have memory for shadow maps blockier they are.(Yeah, you can postprocess it, but with small shadowmaps its quite hard.)

So basically the more complex the game engine, the more suited the PS3 is for development.

Actually its quite opposite. More complex it is harder it is to make work on PS3. On the other hand simpler it is larger the gap between PS3 and X360 versions can be. Thats why for example GT5P works nicely on PS3(and might be impossible to do on X360). Its very simple compared to most of games out there. However both machines cant beat even older PC when it comes to more advanced stuff like logical AI for example. (Strange thing is that original Xbox could do the same as PC.)



Around the Network
Deneidez said:

@quaiky

Very nice text, however you missed the eDram on X360 and 1080p picture takes about 1920×1080*24 bits=~6MB(Of course it depends how many colors you will use, but its usually true color all the way today.). PS3 SPUs also have small amount of memory as well(256kb each, like Plaupius stated).

eDram on X360 acts like larger cache. Its only 10MB, but its also 10 times faster than regular ram so stuff you need more frequently with CPU or GPU go there while they are processing it.

 

 

yes you are right on the memory usage i did not calculate it and somehow had it in my mind that its 4mb. depending on the exact architecture of the gpu its probably even 8mb with 24bit color depth stored in 32 bit. (but still its not such a big amount of the graphic memory that is reserved for this, especially if you think back 10-12 years where the memory on a gfx card was still a blocking factor for what resolutions you could display with it).

 

i really don't want to judge now which ram architecture is superior, both might have their advantages in different situations. on pc's the split architecture is actually quite effective but on the ps3 the amounts of graphic ram are actually on the low end for 1920p resolutions with high res textures in my opinnion. the amount of xdr ram is probably less of a problem, the actual program code is usually not that big. especially with the option to highly optimize your code for the console hardware it should be really no problem to get along with the amount of the main memory.



man I hate reading stuff like this where I almost get what is being said but I fall short by inches. so frustrating.



Not trying to be a fanboy. Of course, it's hard when you own the best console eve... dang it

WHY, WHY when someone asks something about PS3. People always LOV to answer compairing to XBOX360???



PSN: franco-br
MGS4, GH, MW2, GT5p, WipeoutHD, etc..etc..

Ok... Hand me a box of jargons and I'll fucking forget Layman's terms.

 You're messing my MB with your stupid floats. ~_~

 

***Seriously though, I see no light will shed through this topic unless you research the truth yourself. 

 



Deneidez said:

eDram on X360 acts like larger cache. Its only 10MB, but its also 10 times faster than regular ram so stuff you need more frequently with CPU or GPU go there while they are processing it.

As this thread popped up again I will correct some misinformation I posted. eDram isn't anything I wrote. Its made for postprocess effects like AA.

Because of the bandwidth savings and absolutely massive bandwidth to EDRAM, the Xbox 360 should be able to perform frame buffer effects like motion blur, depth of field, or lens flare with incredible speed.

http://www.extremetech.com/article2/0,1697,1818140,00.asp