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

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?

Best (non-serious) post in the thread.


This makes it easier to understand the Xbone resolution issues.
 

Mohonky

Member
I'm still a little surprised by the 32mb part, is there a physical limitation to its size, surely they could have gone 64 or 128mb.
 
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?
What is it about Dragon Ball Z analogies that makes every thing make sense?
 

androvsky

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

The graphics chip on the Xbox One has to draw the picture somewhere. The main memory is slow, so it's like picking up pens and doing the drawing underwater. The ESRAM is like a tiny dry spot out of the pool where the graphics chip can work faster, but the problem is it has to find room for both the pens and do the drawing in that little spot, so it's got helpers constantly swapping in and out pens and papers from the pool. It can only fit a few papers at full resolution, so if it's trying to draw a fancy picture with lots of layers it could run out of room and have to reduce the size (resolution) of the drawing. Keep in mind this is how the 360 worked, but the dry spot was faster and larger in relative terms and the swapping more automatic.

With the PS4, everything's laid out in a giant gymnasium with a waxed floor so everything happens faster than even the dry spot in the Xbox One, and there's no real need to shuffle things around in it. The main drawback is that everybody, including Sony, thought the gym was going to be half the size of the pool the Xbox was using up until the last minute of the design phase. There's also suggestions that the waxed floor might make people slip a little when changing directions (latency) compared to the pool, but the GPU doesn't change directions much, and the CPU walks slower and more carefully anyway (different memory controller).

Hope that makes sense.
 
Can the eSRAM be used by the GPU? I mean I can't really see why you'd wanna with such a tiny amount, but inquiring minds just gotta know.
 

Demon Ice

Banned
ibceOGhhqpbBRe.gif



Serious response: It's a bottleneck. The XB1 has 8 GB of slow DDR3 RAM and 32 MB of fast ESRAM, vs the PS4's 8 GB of fast GDDR5 RAM.
 
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.

Hey, I tell you what is. Big city, hmm? Live, work, huh? But not city only. Only peoples. Peoples is peoples. No is buildings. Is tomatoes, huh? Is peoples, is dancing, is music, is potatoes. So, peoples is peoples. Okay?
 
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.

Yes!
 

Sakura

Member
So in the 360 they estimated the correct amount they needed for that generation but got the estimations wrong this gen and its too small? I am assuming 1080p and 60fps was MSs target this gen.

I think it was more a situation of them being unable to get higher than 32mb of ESRAM. So they could have not had it at all, and just stuck with slow 8GB DDR3, or they could add the ESRAM as well. I'm sure the system is better with the ESRAM than without, it's just not good enough.
 
Esram size isn't big enough...nothing will overcome that...

Even if it was...time spent on the Xbox one's esram is the ps4 team could be using to take advantage of huma or use the additional GPU compute units to offset some of the CPUs load further improving the ps4 version.
 
Imagine that you are the owner of a top secret messaging service. Your messengers transport sensitive information from the central headquarters for storage to and from satellite offices all around the state.

To save money you come up with a great idea. You realize that most of the messages only access a small number of satellite offices during any one week period. So instead of buying high speed and expensive motorcycles to transfer your messages, you get a fleet of cheaper slower mopeds. Ahh... but the trick is that you set up a separate much smaller storage facility really close to your headquarters.

You then look ahead and try to guess what type of messages will be needed in the upcoming week. You tell your messengers to take those messages to your much closer storage facility instead. So even though your mopeds are very slow, as long as they only have to go to and from that nearby storage facility they can actually make better time than if they had motorcycles and had to travel all the way to the satellite offices.

Problems occur because you can't fit everything you might need for the week in the nearby storage facility. Occasionally a messenger has to travel all the way out to the suburbs to get or store something that isn't located in your special storage. To make sure that doesn't happen too often, you try to optimize the business's workflow so that it behaves like you predicted. You make sure that for any given week, you try to focus your attentions on a limited number of satellite offices so that you can use your special storage for those offices instead.

In order to do this you might have to limit the amount of work that your office can do in a week, because if you took bigger jobs, they would require you to access more satellite offices during a week than your special storage could handle. If that happened then your mopeds would be running around the state all the time and that would slow the main business down to a halt.

In contrast, another company spends the extra money on motorcycles. They don't have that special storage facility nearby, but because they can go faster, they don't need it. They can zip out to the satellite offices and back almost as quick as you can go to your special storage facility. Because of this they don't have to worry about limiting how many satellite offices they can access in a week. They don't have to take the extra effort to optimize their business a certain specific way to limit the number of offices they service a week.

So if you haven't guessed, that special storage facility is the eSRAM. Games for the XB1 have to make sure that they only access a small amount of memory at a time so that the quick eSRAM can stand in for the slower DDR3 main memory. The 720p resolution issues with the XB1 is the restrictions that games impose on themselves so that they don't have to access large amounts of main memory. By limiting the screen resolution it makes it more likely that most of what the game needs to access at any given time will fit in their special local storage, the eSRAM.
 

nib95

Banned
I'm still a little surprised by the 32mb part, is there a physical limitation to its size, surely they could have gone 64 or 128mb.

Too large a wafer size, too many transistors and too expensive. Problem is, with deferred rendering, 32mb is simply not large enough for 1080p frame buffer. Hence why 720p/900p will be common place on the Xbox One. Can't really avoid it altogether because the DDR3 doesn't really have the bandwidth to compete.

Non layman post about it here.

My understanding is the 128MB memory in haswell is a system managed general cache - whereas the 32MB in xb1 is a user managed scratch pad.

If this is the case, the implication of this is subtle but important. For example, if you wanted to use the 32MB as a temporary location for render target data (pixel storage, effectively) then you are going to potentially run out of space - just like the 10MB edram buffer in the 360 limited resolution.

Hypothetical examples for a 1920x1080 frame buffer:

forward rendered FP16 HDR with 2x MSAA:
(8b colour + 4b depth/stencil) x 2 x 1920 x 1080 = 47MB

typical (eg frostbite) deferred renderer g-buffer, 4 MRTs each at 32bpp (no MSAA):
(4b mrt x 4 + 4b depth/stencil) x 1920 x 1080 = 39MB


This doesn't necessarily mean these cases are impossible - you could render the scene in tiles or leave some buffers in DDR - but it does add a significant layer of complexity (it won't 'just work' efficiently and automatically like the haswell cache).

The other concern I have is that it doesn't mitigate the need to copy data in/out of ESRAM - which still will be limited by DDR bandwidth. So using ESRAM will only make sense in cases where you are reading/writing the memory a large number of times within the frame - *and* those reads are often missing the on-chip caches (which in a well designed renderer isn't as common as you'd think).
 

Gaz_RB

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

Thanks, didn't know that.
 

Mouth For Games

Neo Member
I think it was more a situation of them being unable to get higher than 32mb of ESRAM. So they could have not had it at all, and just stuck with slow 8GB DDR3, or they could add the ESRAM as well. I'm sure the system is better with the ESRAM than without, it's just not good enough.

Exactly. They just upgraded the 360, which had 10mb of eSRAM and 512mb of system RAM. Instead of thinking about innovation, they just went with what they knew.
 
So in the 360 they estimated the correct amount they needed for that generation but got the estimations wrong this gen and its too small? I am assuming 1080p and 60fps was MSs target this gen.

They had to "balance" that system and 32MBs was all they could fit. It makes it difficult for developers but MS engineers have to find a new solution with what they have, they invented directX.
 

Mohonky

Member
No. They could not fit anymore than 32. Too hot.
Explains that then. I am really surprised they didnt opt for gddr5, they would surely have had to have known 32mb wouldnt cut it at 1080p. They arent (entirely) incompotent, they would have seen this. Maybe they were expecting to have development tools already at a stage of leveraging more performance at this point in time.

It seems so odd that the Xbox360 was a well thought out machine with its pooled memory and more streamlined architecture than the PS3 and yet this time round its like they just werent paying any attention.

I wonder if they approached developers with their architecture concepts. Surely they would have had devs saying nope, not going to work with the way our engines are being designed and from that they would have had a better understanding of what devs wanted which seems to be what they did with Xbox 360. This time its like they locked themselves into a room, sheltered themselves out of what was happening all around them and just cobbled shit together.

Its so unusal.
 

coldone

Member
is eSRAM really slower than GDDR5? I can't imagine that's true. Isn't SRAM generally a lot faster than DRAM?

Data bus has two parameters. Width and Clock speed.

- GDDR5 is very wide so you can get more data transferred at the same time.
- Xbox one uses a narrow eSRAM.

This is a slide for GDDR5 vs DDR3.
http://www.amd.com/US/PRODUCTS/TECHNOLOGIES/GDDR5/Pages/gddr5.aspx#2

eSRAM is used to bridge the gap. eSRAM + DDR3 will never be able to match DDR5. But it comes half way.

Worst: DDR3
Best: GDD5
Half way point: eSRAM + DDR3
GDDR5-Memory.png
 
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).

Wrong on eSRAM latency, its actually low.
 
I'm still a little surprised by the 32mb part, is there a physical limitation to its size, surely they could have gone 64 or 128mb.
There's a physical limitation, which is that on One the CPU, GPU, and eSRAM are all on the same chip. This alone makes it very large, and the larger the chip the more have faults during manufacture. What's more, eSRAM uses lots of space just by itself. Of the ~5 billion transistors in the One's unified APU, ~1.6 billion are just the eSRAM. That means the entire CPU and GPU together are only about twice the size of that measly 32MB.

The 360 had a similar thing as esram and it worked well. Why then does it not work well on xbox one?
It was similar, but it's not the same. For one thing, it was a larger percentage of the whole memory: 10MB versus 512MB, as opposed to 32MB versus 8192MB. More importantly, the eDRAM on 360 was used in very specific ways, which were pre-programmed into the development libraries. On One, the eSRAM is more flexible regarding what it can do, but that also means each dev has to create their own code to tell it exactly what they want.

Xbox One uses an APU meaning the CPU and GPU are on the same chip. They both use the ESRAM.
Actually, it seems the CPU may not be able to read from eSRAM directly (it can write there using the Move Engines).
 

KMS

Member
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


Forward rendering performance tanks with dynamic lighting(Thats why Forza is prebaked) while deferred rendering is fast with dynamic lighting but won't fit into 32MB esram well. Unless they create a new type of forward rendering that is fast with dynamic lighting most all games will be limited to 900p or less on XBO that have dynamic lighting.
 

Demon Ice

Banned
Explains that then. I am really surprised they didnt opt for gddr5, they would surely have had to have known 32mb wouldnt cut it at 1080p. They arent (entirely) incompotent, they would have seen this. Maybe they were expecting to have development tools already at a stage of leveraging more performance at this point in time.

It seems so odd that the Xbox360 was a well thought out machine with its pooled memory and more streamlined architecture than the PS3 and yet this time round its like they just werent paying any attention.

I wonder if they approached developers with their architecture concepts. Surely they would have had devs saying nope, not going to work with the way our engines are being designed and from that they would have had a better understanding of what devs wanted which seems to be what they did with Xbox 360. This time its like they locked themselves into a room, sheltered themselves out of what was happening all around them and just cobbled shit together.

Its so unusal.

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.
 

benny_a

extra source of jiggaflops
is eSRAM really slower than GDDR5?
Bus width multiplied by clock rate. Do that calculation yourself if you don't believe the numbers that are cited everywhere.

The eSRAM that was alleged to help out the PS4 has a bus width of 128 and the PS4 GPU is clocked at 800 MHz.
 

Archaix

Drunky McMurder
is eSRAM really slower than GDDR5? I can't imagine that's true. Isn't SRAM generally a lot faster than DRAM?


It's true. Not even Penello's nonsense claim was that the eSRAM was faster, just that if you added the speeds of the eSRAM and DDR3 it was faster.
 

whitehawk

Banned
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.

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.
Thanks! These are both quality explanations.
 
I have learned a lot from this thread. The whole ESRAM thing makes a lot more sense now. If Sony had gone with the 4GB of GDDR5 would the consoles be more comparable or is the unified pool of memory still able to overcome the speed of the ESRAM combined with the weaker GDDR3?
 
PS4's set up is like trying to build a house of cards. Simple and easy

Xbone's set up is like trying to build a house of cards in front of a fan. But you do get like 10 squirts of super glue.
 
Explains that then. I am really surprised they didnt opt for gddr5, they would surely have had to have known 32mb wouldnt cut it at 1080p. They arent (entirely) incompotent, they would have seen this. Maybe they were expecting to have development tools already at a stage of leveraging more performance at this point in time.

It seems so odd that the Xbox360 was a well thought out machine with its pooled memory and more streamlined architecture than the PS3 and yet this time round its like they just werent paying any attention.

I wonder if they approached developers with their architecture concepts. Surely they would have had devs saying nope, not going to work with the way our engines are being designed and from that they would have had a better understanding of what devs wanted which seems to be what they did with Xbox 360. This time its like they locked themselves into a room, sheltered themselves out of what was happening all around them and just cobbled shit together.

Its so unusal.

You realize they knowingly sacrificed precious GPU space... So...
 

PAULINK

I microwave steaks.
Face the facts guys.

PS4 has 8gb of ddr 5 ram (wow)

Xbox one has 8 gb of ddr 3 ram AND 32mb of es ram.

It doesn't take a nerd scientist to tell you which one has more ram.
 

Sakura

Member
I have learned a lot from this thread. The whole ESRAM thing makes a lot more sense now. If Sony had gone with the 4GB of GDDR5 would the consoles be more comparable or is the unified pool of memory still able to overcome the speed of the ESRAM combined with the weaker GDDR3?

I think before the reveal early this year, there were some people saying it would still be better because of the sheer amount of extra bandwidth, but there was lots of argument and I'm not sure myself. I think it would also depend on how much of the memory was reserved.
 
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.
 

GorillaJu

Member
Think of it like two chutes. One chute is Sony's chute, it's really large and a circular shape which is important because everything you need to put down the chute will fit within that shape. You're free to dump in whatever you want and not really have to worry about it getting clogged up. It'll all go in smoothly.

Microsoft went with a chute that's about the same size, but stuff is much slower to go down because it's rectangular shaped. In order to help the situation they added a second chute, but made it super tiny. You can throw down really small things you need to get rid of right away, but it complicates things because you have a whole lot of stuff you need to put down the chute and now you have to worry about separating the big stuff from the small stuff.

In the end you conclude that one big chute that everything goes down quickly is a better method. There's really no benefit to having a big slow chute and a small faster one.
 

gemoran4

Member
Bus width multiplied by clock rate. Do that calculation yourself if you don't believe the numbers that are cited everywhere.

The eSRAM that was alleged to help out the PS4 has a bus width of 128 and the PS4 GPU is clocked at 800 MHz.

No I believe you, just initially was kinda caught off guard by it
 
Exactly. They just upgraded the 360, which had 10mb of eSRAM and 512mb of system RAM. Instead of thinking about innovation, they just went with what they knew.

I don't think so, the non gaming features are at fault and Kinect. eSRAM just require more time with a focus on memory optimization. Embedded memory can have higher bandwidth with bus size and clock.
 

gemoran4

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.
 

Obscured

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?
 
Top Bottom