• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Can someone explain this eSRAM issue in layman's terms?

Vooduu

Member
PS4's GDDR5 RAM is faster and has a "larger road" to move things between the CPU and GPU.

Xbone's DDR3 RAM does the same functions but is too slow and is a "narrow road". eSRAM comes into the picture to help speed things along but is far too "narrow" to really make a significant comparison to the PS4.

Simple.
 

tazz3

Member
Ms should have bumped up this ram even more so its not a pain to make a game .its a bottle neck or ms should have put ddr5 in it
 

Hazaro

relies on auto-aim
Turns 1080p into 720p
HO, I AM SLAIN
Vegeta wants to fight Goku on even terms, so he's allowed himself to become a Majin for the sake of unleashing his potential. Unfortunately, he doesn't realize that Goku has already reached another tier beyond SSJ2 and is only humoring him; the Majin transformation is a dead-end that will never allow Vegeta to reach power comparable to a SSJ3.

Someone had to do it, right?
This is good, but doesn't really explain it.
Layman's terms, obviously taking liberties with the technical terms.

Legacy memory set-up in consoles:

System RAM + Video RAM.

System RAM is accessed by the CPU, VRAM accessed by the GPU.

Current gen memory set-up:

Xbox 360 came along and had unified memory + a tiny amount of embedded memory (eDRAM). One single pool of fast RAM, accessed by both CPU and GPU. The eDRAM very expensive, very fast and is used for the frame buffer (the final image to be displayed on screen). Allowed to 'free' AA.

The PS3 has the old style split RAM. 256MB for CPU + 256MB for GPU. The lack of embedded RAM meant that many PS3 games didn't have AA. Weakness of the split memory pool is if you games was graphically intensive, you were limited to the VRAM and couldn't use the system RAM. This was the main bottleneck in open world games, compared to the 360 versions.

Next gen memory:

PS4 has a unified pool of ultra fast GRRD5 RAM. This is used for everything, and access by both the CPU and GPU, for system, graphics and frame buffer. The speed of the RAM negates the need for embedded RAM. Devs choose how much memory to assign to graphics, AI, physics etc.

Xbox One as unified memory + embedded memory. This differs from the PS4 in that the main 8GB of memory is slow, cheap DDR3, which isn't suited for graphical tasks. So the Xbox needs a small chunk of fast embedded RAM (ESRAM).

Both the PS4 and Xbox One are APUs. Their CPU and GPU are on the same chip. In the case of the Xbox, also on the chip is the embedded memory (ESRAM). The ESRAM is huge, so the maximum amount they could responsible fit on the APU was 32MB, which isn't enough for 1080p + MSAA, or 1080p and deferred rendering (e.g. a modern games engine).

Another issue is based on dev comments, devs manually have to fill and flush to/from the ESRAM, rather than it being handled by the APIs, which is a huge ball ache.

The tools will improve over time, which will make optimising use of the ESRAM better. Devs can get around the 32MB size being unsuited for 1080p + effects by tiling and jumping through a bunch of other hoops, which aren't ideal.

The PS4 design is better all around. Gives better results, is more flexible, and is far easier to developer for.
Winner! (I think this is correct).

MS got fucked over by end of life DDR3 and the factory going up as well which hiked the price so their savings is lower than they expected vs going GDDR5 maybe too? (Not sure how OEM pricing and supply works in these kinds of deals)
 

Demon Ice

Banned
Just don't be mislead by the graph posted back there. The Y Axis starts at 80%, so the biggest differences in power are just over 20%, not double.
 
Imagine that you are the owner of a top secret messaging service. Your masengers transfer sensitive information from the central headquarters for storage to and from satellite offices all around the state. ..
I like this explanation a lot. Laymen's terms right here to describe a logistics issue.

...The ESRAM is huge, so the maximum amount they could responsible fit on the APU was 32MB, which isn't enough for 1080p + MSAA, or 1080p and deferred rendering (e.g. a modern games engine).
Can you elaborate on this at all? How is something like Forza 5 managing to output native 1080p at 60fps? No AA and no deferred rendering? Is this a permanent bottleneck, or do you think new techniques will be developed during this gen to overcome it?
 
There is way too much focus on esram when the real issue is MS going with ddr3 for their overall memory architecture. CBOAT said despite devs getting better tools and overcoming issues with esram expect 900p-720p games in the future.

ddr3 ram is simply too slow for 1080p gaming without significant sacrifices.

No, its enough for storing textures, gamecode, etc. Those items don't need a lot bandwidth. Its plain and simple, PS4 has a developer friendly memory setup, that's straight to the point.
 

Foxix Von

Member
The 360 had a similar thing as esram and it worked well. Why then does it not work well on xbox one?
The main system memory in the xbone is slower. Also the similar chunk of memory in the 360 was veeerrrrry easy to use but a bit more fixed in its functionality. It was like driving a car with an automatic transmission. The esram in the bone is more like driving a stick. It's versatile, and very fast but it requires more work from the driver and a little bit more practice.
 

Codeblew

Member
You have to move stuff from point A to point B, and while Sony got a huge truck to haul stuff back and forth, MS got a sportscar (eSRAM) that can theoretically make up for its small trunk by making several trips very quickly. You can sort of catch up with the truck if you pack stuff really tightly and there's no traffic (optimization).

Except eSRAM can't do 1080p because that's like moving a grand piano.

The only problem with your analogy is that Sony's large truck is faster than Microsoft's sports car.
 

coldone

Member
Is Esram better than gddr5 on a 1:1 basis?

8GB eSRAM would be better than 8GB GDDR5 for sure.

But the issue is, the eSRAM is very small. Only 32 MB.

Two issues hampering the Xbox one:
- GPU is very weak. 12 Compute Units vs 18 Compute Units
- Small eSRAM

PS4 also has 32 ROPs. ROPs are very important to provide higher memory bandwidth for GPU.
 

Hazaro

relies on auto-aim
Is the limit if 32mb esram a matter of a limitation of what can be used or a matter of cost? I've read some stuff on here that part of the problem is that 32mb isn't big enough to stick in a whole frame(sorry, probably using the wrong terminology here) for 1080p resolutions. Would 64mb of esram have fixed that issue or is that something that doesn't even make sense from an architectural or cost perspective?
More reading here:
http://www.anandtech.com/show/6972/xbox-one-hardware-compared-to-playstation-4/3

Handy chart:
2ATZHEl.png
 
Is the limit if 32mb esram a matter of a limitation of what can be used or a matter of cost? I've read some stuff on here that part of the problem is that 32mb isn't big enough to stick in a whole frame(sorry, probably using the wrong terminology here) for 1080p resolutions. Would 64mb of esram have fixed that issue or is that something that doesn't even make sense from an architectural or cost perspective?

I've heard it explained as all the parts inside the machine are all vying for space. (I don't know technical terms). So if MS were to put 64mb esram in the Xbox One something else would have to be reduced, like the GPU. And yes, more esram would have solved the current issues.
 

Biker19

Banned
The 360 had a similar thing as esram and it worked well. Why then does it not work well on xbox one?

They used eDRAM on the Xbox 360, not eSRAM. eDRAM is a benefit, eSRAM isn't. It just makes things further complicated for 3rd party developers that are trying to port games or make games for the Xbox One within a budget & a deadline.
 

viveks86

Member
Is the limit if 32mb esram a matter of a limitation of what can be used or a matter of cost? I've read some stuff on here that part of the problem is that 32mb isn't big enough to stick in a whole frame(sorry, probably using the wrong terminology here) for 1080p resolutions. Would 64mb of esram have fixed that issue or is that something that doesn't even make sense from an architectural or cost perspective?

AFAIK 64 MB is feasible on paper and would go some ways in alleviating the issue you have pointed out (though there still remains the issue of programming for it). But it would be prohibitively expensive and would take up much more die space. They are already pushing the limits of the number of transistors. This would drastically reduce yields and increase cost.
 

Jobbs

Banned
The question is why did Xbone do things this way? It sounds convoluted to me.

Did they at some point think this was a superior configuration, or was it cost savings? Cost savings doesn't make a great deal of sense, because the console costs a lot more than the PS4. Even if you take away the Kinect, you can imagine the cost of the console is about the same as the PS4.
 
Never thought id be able to learn so much about system architectures and programming as i have from a gaming forum site...wow. NeoGaf...I love you
 

bLaiSe

Member
Good to know these things, I wasn't interested in this RAM thingy enough to look it up. Thanks for the info guys!
Can anyone give me the estimated (or correct) price of 32MB ESRAM + 8GB DDR3 and 8GB GDDR5?
 

Sakura

Member
The question is why did Xbone do things this way? It sounds convoluted to me.

Did they at some point think this was a superior configuration, or was it cost savings? Cost savings doesn't make a great deal of sense, because the console costs a lot more than the PS4. Even if you take away the Kinect, you can imagine the cost of the console is about the same as the PS4.

I imagine when they were planning the system, they wanted 8GB from the get go, and as GDDR5 was not an option then, they designed the architecture based around DDR3. The PS4 however went from 2GB to 4GB to 8GB of GDDR5 as it became a reality, or at least that's what it sounds like.
 

viveks86

Member
Can you elaborate on this at all? How is something like Forza 5 managing to output native 1080p at 60fps? No AA and no deferred rendering? Is this a permanent bottleneck, or do you think new techniques will be developed during this gen to overcome it?

I'd like to know this too. What I have learnt so far is that tile based rendering is the most popular technique to overcome the bottleneck. But it's not as easy to program for. My guess is that forza uses tile based rendering. Will this become mainstream, only time will tell.

This is how devs fit a 720p image in the 360's frame buffer. I'd imagine similar techniques being used going forward

Xbox 360 (2005): the GPU contains an embedded 10 MiB framebuffer; this is not sufficient to hold the raster for an entire 1280×720 image with 4× anti-aliasing, so a tiling solution is superimposed when running in HD resolutions.

http://en.wikipedia.org/wiki/Tiled_rendering

The post below explains the difficulties of this technique for next gen quite nicely.
 

Zarx

Member
Might as well throw my hat in the ring, I will try and be comprehensive while keeping it simple.

Basically RAM is used as a temporary cache for data that the game uses (textures, sounds, animations, etc basically everything that makes up the game) so the the processors can access it when needed and also to store any temporary data that is generated (things like the current health of NPCs, where all the objects are in the game world, frame-buffer (basically it's the image that is going to be displayed on the screen) etc). Think about it as a table to hold all the tools and materials you will need for a project you are working on next to your workspace, so that you have quick easy access to them as you work. In this analogy the disc would be like a storage shed out back that you store everything when you don't need it. So when you load a game it's basically grabbing the materials it needs and lays them out on the table ready.

Now the Xbox One has 8GB of DDR3 RAM (A big table lol) but unfortunately it's not super fast (basically it's like having the table in the next room so you have too keep walking back and forth to grab things as you work and you can only grab a couple things at a time) so to try and make up for that MS have added a small amount of RAM on the APU (basically it's a chip with a CPU and a GPU on it) or in other words they put a tiny table right next to their workspace. Now the problem with this is that while anything that is on the table can be accessed really quickly, it only holds a small number of small things.

Now as others have already posted the frame-buffer especially for higher resolutions is quite big so if you are using a resolution like 1080p it wont fit in the eSRAM all at once. And as the main RAM is slow if you can't fit in the eSRAM it really slows things down too much, so many developers have decided to lower the resolution of the games (and the size of the frame-buffer) so that they can fit it into eSRAM. Now it gets more complicated as developers need fast access to different types of data, for example textures (they are the assets that are used to define the look of different objects in case you didn't know) require a lot of bandwidth. And as there is only a little eSRAM you can only have a handful of assets on hand at any one time, to get around this the One has several DMAs (basically little helpers that can move things between the eSRAM and main RAM) but developers have to give them instructions on when to move things so that they are in the eSRAM before they are needed. This can be challenging as you can't always predict exactly what data you will need when. Now some of the issues can theoretically be mitigated by techniques like tiling, which breaks up the frame-buffer and textures into small chunks that can be moved around more easily but they have their own issues. In comparison the PS4 has one big chunk of RAM that has quite a lot of bandwidth so developers can put everything in one place.
 
Can you elaborate on this at all? How is something like Forza 5 managing to output native 1080p at 60fps? No AA and no deferred rendering? Is this a permanent bottleneck, or do you think new techniques will be developed during this gen to overcome it?

baked lighting.
 

nib95

Banned
I made a previous post explaining the ram differences to layman a while back.

---

Xbox One and PS4 ram water pump analogy

Imagine the ram types on these consoles as rooms with pumps that are used to pump water (textures or whatever else) in and out of them.

The Xbox One has two rooms (DDR3 and Esram).

The DDR3 room (Room 1) is 8192 square foot in size and has a pump attached to it that is 68 cm in circumference and can only pump water in one direction at a time (read or write), in or out.
The Esram room (Room 2) is 32 square foot in size and has a pump attached to it that is 102(?) cm in circumference and can pump water in and out at the same time.

- Room 2 can pump water in and out of it's room far quicker than Room 1 can in it's room, however, Room 2 is substantially smaller than Room 1 so it has order of magnitude less water to work with at any given time.
- Both of these rooms can operate pumping at the same time (adding together bandwidth), but both are still limited to their respective room sizes.

The PS4 has one room (GDDR5).

The GDDR5 room (Room 3) is 8192 square foot in size and has a pump attached to it that is 176 cm in circumference and can pump water in and out at the same time.

The PS4's one room is both very large and very fast at the same time. With over 2.5x the water pumping speed as the Xbox One's equally sized 8192 square foot room. Whilst the Xbox One does have that secondary room with a large pump, it's still only 32 square foot in size. 256 times less space than the larger rooms.

---


EDIT: In-case you missed it, swap square foot for mb and cm for GB/s for the real figures regarding ram amount and memory bandwidth.
 

benny_a

extra source of jiggaflops
Isn't eSRAM faster than GDDR5 in terms of raw speed?
If it had a higher clock speed and/or bus width, then yes.

The eSRAM configuration used in the Xbone is not faster than the GDDR5 in the PS4, so for this discussion the answer is no: eSRAM is not faster than GDDR5.
 

benny_a

extra source of jiggaflops
really? because crytek said they're using the full 204 gbps. it's considerably faster than gddr5, but 32 mb vs 8 gb? not even close.
GDDR5 can also read and write at the same time. I don't think we should encourage companies to start changing the way bandwidth specification is presented and has been presented in the past, just because one company made a poor decision for the hardcore gaming market.

And CryTek using the full 204GB/s is quite funny given that Microsoft's own technical fellows said they could only get it up to 150GB/s in their tests.
 
Really informative thread, pretty cool, knew a lot of this, but still learned some new stuff.

One question though, what exactly is deferred rendering, and how does it fit in? I assume its a newer style of rendering, but what was used before, and what are the advantages? Finally, what does that mean for the consoles?
 
GDDR5 can also read and write at the same time. I don't think we should encourage companies to start changing the way bandwidth specification is presented and has been presented in the past, just because one company made a poor decision for the hardcore gaming market.

apparently due to possible overheating issues, microsoft is targeting 130-140 gbps. major ouch. didn't one ps4 dev already say they got up to 97% efficiency of gddr5 speed, which is around 170 gbps? double ouch.
 

coldcrush

Neo Member
I made a previous post explaining the ram differences to layman a while back.

---

Xbox One and PS4 ram water pump analogy

Imagine the ram types on these consoles as rooms with pumps that are used to pump water (textures or whatever else) in and out of them.

The Xbox One has two rooms (DDR3 and Esram).

The DDR3 room (Room 1) is 8192 square foot in size and has a pump attached to it that is 68 cm in circumference and can only pump water in one direction at a time (read or write), in or out.
The Esram room (Room 2) is 32 square foot in size and has a pump attached to it that is 102(?) cm in circumference and can pump water in and out at the same time.

- Room 2 can pump water in and out of it's room far quicker than Room 1 can in it's room, however, Room 2 is substantially smaller than Room 1 so it has order of magnitude less water to work with at any given time.
- Both of these rooms can operate pumping at the same time (adding together bandwidth), but both are still limited to their respective room sizes.

The PS4 has one room (GDDR5).

The GDDR5 room (Room 3) is 8192 square foot in size and has a pump attached to it that is 176 cm in circumference and can pump water in and out at the same time.

The PS4's one room is both very large and very fast at the same time. With over 2.5x the water pumping speed as the Xbox One's equally sized 8192 square foot room. Whilst the Xbox One does have that secondary room with a large pump, it's still only 32 square foot in size. 256 times less space than the larger rooms.

---

Ok this was a really good way of putting it, I understood the concept but I think this really helps you visualize it . Thanks, threads like this really make me glad that I read this site
 
If it had a higher clock speed and/or bus width, then yes.

The eSRAM configuration used in the Xbone is not faster than the GDDR5 in the PS4, so for this discussion the answer is no: eSRAM is not faster than GDDR5.

They could have gone with much faster and larger embedded ram right??
 

Bsigg12

Member
This is gonna sound real dumb, but would it be possible to do a partial frame buffer in the esram and the rest on DDR3 then bring them together?
 

viveks86

Member
really? because crytek said they're using the full 204 gbps. it's considerably faster than gddr5, but 32 mb vs 8 gb? not even close.

This. There has been a lot of confusion around this. The ESRAM that is being used is touted to be fully bi-directional, which boosted the originally rumored 109 GBps to 204 GBps (some bandwidth lost in dead cycles). This has nothing to do with artificially adding up bandwidth of DDR3 and ESRAM. At least that's the official speed on paper. The actual issue has to do with it being small. Cerny had mentioned in an interview that it couldn't be properly utilized even if they went for a 1000GBps EDRAM.

This is gonna sound real dumb, but would it be possible to do a partial frame buffer in the esram and the rest on DDR3 then bring them together?

The point of the frame buffer in ESRAM is to exploit it's bandwidth and low latency. Splitting it to the DDR3 and combining it again would add overhead that completely negates the advantage of the ESRAM. I think...
 

Shengar

Member
So much thing I learned from this thread. Now I know exaclty what's wrong with Esram. But to parrot other question people have asked: why did Microsot fo gor DDR3? Isn't that quite obsolete already? Why not 2 or 4 GB of GDDR5?
 
wow I've been under the assumption that eSRAM could outpace GDDR5 but was way too small to be efficient, but if all 8GBs of PS4 RAM runs faster than XO's 32MBs of fast RAM then this is just silly.
 
They knew they wouldn't be hitting 1080p with it, they just expected Sony would also be in a position where they would not be able to hit 1080p, since everyone was expecting Sony to put 2-4 GB of GDDR5 in the PS4 tops.

That February reveal where they announced 8 GB GDDR5 was probably one of the worst days to be a member of the XBox division at Microsoft.

Indeed. When the PS4 specs were leaked and revealed to have 4GB of GDDR5, I was impressed by the tech, but greatly disappointed by the amount. If they didn't get 8GB at least, they would be in trouble (and we gotta thank that dev that told them so).
When they said 8GB in february, I was completely blown away, I couldn't believe they had done it. I think someone said even most of Sony's teams didn't know about the upgrade, they found out during the reveal. Maybe it was Cerny, or someone at GG.


Now imagine the faces of the people in the XB1 team...
 

benny_a

extra source of jiggaflops
They could have gone with much faster and larger embedded ram right??
Yes, but due to the way the manufacturing and die-space works it would have necessitated a further reduction in GPU compute capabilities.

There are lots of factors, but as Cerny once showed in a talk they could have developed a memory architecture that was 1000GB/s of very fast embedded memory paired with 8GB of slow memory.

What the real life implication for the graphics compute power would have been is just conjecture but based on the Xbone it wouldn't have been good.
No need for a very fast memory setup if you don't have the necessary GPU to take advantage of that fast memory.
 
So much thing I learned from this thread. Now I know exaclty what's wrong with Esram. But to parrot other question people have asked: why did Microsot fo gor DDR3? Isn't that quite obsolete already? Why not 2 or 4 GB of GDDR5?

Snap, Media, TV, Kinect

And Apps
 

darkwing

Member
So much thing I learned from this thread. Now I know exaclty what's wrong with Esram. But to parrot other question people have asked: why did Microsot fo gor DDR3? Isn't that quite obsolete already? Why not 2 or 4 GB of GDDR5?

with Kinect + DDR5, it will be much higher than $499
 

Duxxy3

Member
So much thing I learned from this thread. Now I know exaclty what's wrong with Esram. But to parrot other question people have asked: why did Microsot fo gor DDR3? Isn't that quite obsolete already? Why not 2 or 4 GB of GDDR5?

They wanted 8GB of ram. They didn't want to take a chance that GDDR5 prices would be low enough, so they went for the safe road. Sony took a chance that GDDR5 prices would be low enough.

It almost plays into the specialty of each manufacturer. Sony is more confident in their hardware, Microsoft more confident in their software.
 
Top Bottom