• 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?

Talk to me like I'm a total idiot that doesn't know anything about this stuff, because that's what I am. This is something at the heart of lots of discussions and articles, and all of these things are written for people that already understand the basic facts.

Thanks in advance.
 
472-three-stooges-syndrome-1.jpg
 

Gaz_RB

Member
I'm sure you'll get a post that's actually informative eventually...

I'd like to know more about it as well.
 
Xbone has a small amount of very fast eRAM to make up for having slower DDR3 RAM for the main graphics memory.

So for PS4 you dump everything on the DDR5 RAM and its "Really Fast"

But for Xbone you dump most stuff on the DDR3 RAM and its "Kinda Fast" and then you put things you really use a lot on the eRAM and its "Really Really Fast".

So it just means Xbone is harder to program for cause you have to give priority to which stuff gets put on the "Really Really Fast" memory.

Mark Cerny does a talk about both ways of doing things and comes to the conclusion that PS4 approach is better (no shocker there) but I agree.
 

benny_a

extra source of jiggaflops
Xbone has a small amount of very fast eRAM to make up for having slower DDR3 RAM for the main graphics memory.

So for PS4 you dump everything on the DDR5 RAM and its "Really Fast"

But for Xbone you dump most stuff on the DDR3 RAM and its "Kinda Fast" and then you put things you really use a lot and the eRAM and its "Really Really Fast".

So it just means Xbone is harder to program for cause you have to give priority to which stuff gets put on the "Really Really Fast" memory.

Mark Cerny does a talk about both ways of doing things and comes to the conclusion that PS4 approach is better (no shocker there) but I agree.
Except GDDR5 is Really Really Fast and eSRAM is both very little and still not Really Really Fast.

Mark Cerny didn't talk about the Xbox One system, but was using a hypothetical architecture that used something that was 10x as fast as the eSRAM in use by the Xbone.
 

Tsundere

Banned
DDR3 slow. GDDR5 fast

ESRAM fast.

Only 32MB ESRAM.

8GBDDR3 slow + 32MB ESRAM fast vs. 8GB GDDR5 fast

Need use intelligently for things that need be fast, make use of only 32MB fast RAM.

No time to do that, waste of moneyz.
 
It's something that the Xbox One had to have to compete with the PS4's GDDR5 RAM. It's a small bit of RAM which provides high latency to try and provide capability similar to having all the RAM be faster. Since it's small however, it takes quite a bit more work to use effectively while the GDDR5 takes none of that effort since it's all fast. This means the problem will be worst at launch as little time is available to put into using the eSRAM to its fullest and optimizing games to use it as well as possible. The gap will get smaller but obviously eSRAM will never be as effective as just having 8GB of GDDR5, though while it's an obviously large advantage to the PS4 it's not a situation where the Xbox One will have no way of doing similar things (albeit at a lower quality).
 

Farslain

Member
Firstly it is too small, MS' answer is to use regular ram if ESRAM is too small, but the whole point of ESRAM is it is this fast gateway which is useless if nothing fits.

Secondly and perhaps most importantly it requires additional work to write to, unlike for instance PS4's unified 8gb of very fast ram.

Overall we have lovely simple x86 pc based hardware that people are very familiar with, all they're having to learn is the development software, with xbone they're having to go through what they went through with PS3's cell processor all over again, aka more complexity for low pay off.

On the plus side, things will get better, the xbone development software and the game developers, this will close the gap, on the negative side the same thing will happen on PS4 opening the gap again.

ESRAM was a very bad decision for a console that was forced out the door 6-8 months early with immature software and technically weaker hardware.
 
Cerny talks about having the option of going with super fast eDRAM and having 10x the bandwidth of the current PS4 but developers said NO. So that should tell you something. Plus MS could have gone with faster and larger embedded ram since they had already chosen to go that route
 

Gaz_RB

Member
Firstly it is too small, MS' answer is to use regular ram if ESRAM is too small, but the whole point of ESRAM is it is this fast gateway which is useless if nothing fits.

Secondly and perhaps most importantly it requires additional work to write to, unlike for instance PS4's unified 8gb of very fast ram.

Overall we have lovely simple x86 pc based hardware that people are very familiar with, all they're having to learn is the development software, with xbone they're having to go through what they went through with PS3's cell processor all over again, aka more complexity for low pay off.

On the plus side, things will get better, the xbone development software and the game developers, this will close the gap, on the negative side the same thing will happen on PS4 opening the gap again.

ESRAM was a very bad decision for a console that was forced out the door 6-8 months early with immature software and technically weaker hardware.

An attempt by MS to try to get the console's costs down so they could make as much profit as they can and try to recoup their ridiculous Kinect R+D, I imagine.
 
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?
 
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.
relating everything to dbz still makes me giggle
 

USC-fan

Banned
Biggest problem it has to make up for 8GB( 8,192 mb) of gddr5 (176gb/s)that is faster than it.

So you are trying to make .4% (32mb) of slower esram(102 gb/s) keep up. Just an impossible task. Its just so little....


Its like using a band aid on someone after being hit by a cannon ball.
 
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?
Perfection.
 

nictron

Member
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?

I wish this is how they taught high school.

dbz_funny_comic_series___trouble_with_math_by_ssjgoku10-d5sxdz9.jpg
 
An attempt by MS to try to get the console's costs down so they could make as much profit as they can and try to recoup their ridiculous Kinect R+D, I imagine.

I think that's a bit of an oversimplification. Many expected MS to have 8GB of DDR3 RAM along with the eSRAM and Sony to have 4GB of GDDR5 RAM. I don't think it's accurate to say that MS not using 8GB of GDDR5 is cheaping out in any way, Sony for a long time didn't even know if it was possible.

Xbox One's RAM, perhaps besides the size of the eSRAM though I'm not knowledgeable on that subject, is pretty defensible.
 
Imagine the system RAM as a semi truck.

Large, can carry a lot of stuff but is slow.

Now imagine eSRAM as 2 door sports car. Fast but small.

Now... lets say a normal 1080p screen render involves 2 people and a full trunk.

A more advanced screen render needs 3 or maybe even 4 people and a full trunk.

It simply won't work. You can use the semi truck, but that'll be much slower. You can also move 2 people at a time, but you won't be able to achieve things like 60fps.
 

Derpcrawler

Member
I will explain in internet terms - imagine Internet as your RAM pool, now you have 100Mbps for first 100GB downloaded, after that there is a cap and your ISP cuts your internet speed to 5mbps for the rest of the month. That's Xbox One, now PS4 is Google Fiber with no caps and up to 1Gbps on top of that.

So as long as you watch your Netflix and movies in 720p you won't notice the difference.
 

Sakura

Member
To get 1080p with AA, deferred rendering, etc you need faster RAM than what DDR3 is. So the ESRAM is faster than the DDR3 to help. But the problem is, it is only 32MB, and 1080p@60FPS plus numerous technical features cannot fit on 32MB for most games. So devs instead opt for stuff like 720p@60FPS 900p@30FPS etc.

Or at least that is how I understand it.
 

danwarb

Member
Except GDDR5 is Really Really Fast and eSRAM is both very little and still not Really Really Fast.

Mark Cerny didn't talk about the Xbox One system, but was using a hypothetical architecture that used something that was 10x as fast as the eSRAM in use by the Xbone.

eSRAM is really really fast and not shared with the CPU. Cerny's hypothetical PS4 would've had much more memory bandwidth for more complexity. They wanted to make things as straight forward as possible after the PS3.


It may not be ideal, but things will at least definitely get better for the Xbox as the platform matures. The ESRAM won't be a problem . That isn't the only difference between the systems though.

To get 1080p with AA, deferred rendering, etc you need faster RAM than what DDR3 is. So the ESRAM is faster than the DDR3 to help. But the problem is, it is only 32MB, and 1080p@60FPS plus numerous technical features cannot fit on 32MB for most games. So devs instead opt for stuff like 720p@60FPS 900p@30FPS etc.

Or at least that is how I understand it.
You don't have to fit everything in esram, that's why things will improve. Then you'll run into other limitations.
 
Basically:

[PS4]GDDR5 = 176GB/s
vs
[XB1]DDR3 = 68GB/s

Oh shit too slow, need to add something

[PS4]GDDR5 = 176GB/S
vs
[XB1]esRAM = 102 GB/S

Oh few that's better

[PS4]8GBs (~8000MBs) GDDR5
vs
[XB1]32MBs esRAM


Oh shit.
 
The "E" in ESRAM means "embedded"- which is to say, it's embedded directly into the processor, which means your CPU/GPU can access it much faster than 'normal' RAM. Since you're embedding this into the processor itself, there's a limit to how much you can put in, so you can't operate entirely off of ESRAM- you have to use a mix of ESRAM and slower 'normal' RAM.

It's kind of like SSDs vs. normal hard drives- SSDs are too expensive per byte to be viable for all data storage, so you store the data you access frequently and need quickly on the SSD and everything else on the hard drive.

In order to maximize performance, though, you have to be really good at knowing what to use ESRAM for and what to put in normal RAM, when to move data back and forth between them, etc. This makes optimizing for Xbone much more complicated than optimizing for PS4, which only has one pool of memory that's faster than Xbone's normal RAM but (I think) slower than ESRAM- you don't have to worry about shuffling data around between the 'slow' memory and 'fast' memory, because it's all one pool.
 

Norml

Member
To get 1080p with AA, deferred rendering, etc you need faster RAM than what DDR3 is. So the ESRAM is faster than the DDR3 to help. But the problem is, it is only 32MB, and 1080p@60FPS plus numerous technical features cannot fit on 32MB for most games. So devs instead opt for stuff like 720p@60FPS 900p@30FPS etc.

Or at least that is how I understand it.

Skeff had a post on this.

1080p framebuffer using forward rendering and no AA at 32 bits per pixel would be ~24mb IIRC, however using deferred rendering which is far more likely would put it at the total of 2073600 pixels so at differing BPP(Bytes per pixel) we would get:

16 BPP: 31.64mb
20 BPP: 39.55mb
24 BPP: 47.46mb
28 BPP: 55.37mb
32 BPP: 63.28mb

As a reference BF3 (1080p on PC) is 20BPP and KZ:SF is 24BPP both without AA. I can't imagine Next Gen going any lower than 16BPP.

http://www.neogaf.com/forum/showpost.php?p=86115517&postcount=8067
 

benny_a

extra source of jiggaflops
This makes optimizing for Xbone much more complicated than optimizing for PS4, which only has one pool of memory that's faster than Xbone's normal RAM but (I think) slower than ESRAM- you don't have to worry about shuffling data around between the 'slow' memory and 'fast' memory, because it's all one pool.
GDDR5 used in the PS4 is faster than the eSRAM used in the Xbone.

So the fast workaround at size that can't even hold next-gen framebuffers completely is still slower than the main memory of the direct competitor. And if you realize this, you realize what everyone who followed tech has been baffled by for a year.
 

Salex_

Member
On the plus side, things will get better, the xbone development software and the game developers, this will close the gap, on the negative side the same thing will happen on PS4 opening the gap again.

How will the PS4 improve in the future? I heard some things about AOCs and hUMA but how will those help in real world performances? For example, if BF4 was released on PS4 later instead of on launch, could it get to 1080p/60FPS with higher settings?
 

Mouth For Games

Neo Member
PS4 CPU/GPU read/writes directly to GDDR5 RAM (ie, graphics and math and such)

[CPU/GPU] <-- Read/Writes To -- >[8GB GDDR5]
176 GB/s bandwidth (FAST!)



Xbox One needs a little fast ESRAM to carry the info to and fro to make up for the slow DDR3 RAM
(imagine the ESRAM as a little messenger running back and forth, which is the annoying thing devs have to work around)

[CPU/GPU] | <- [32MB ESRAM] |-> [8GB DDR3]
68.3 GB/s bandwidth (SLOW...)
 

NBtoaster

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

Before the rise of deferred rendering, you could have frambuffer sizes exceed the 360s 10MB and tile them in and out of eDRAM (at performance cost). This is either not possible or greatly increases performance cost with deferred renderers.
 
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?
I understand completely now. I'm being absolutely serious.
 

CLEEK

Member
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.
 
Top Bottom