Nice article, however, this part seems wrong:
I'm not sure what you mean - even at 32 bits/pixel, a 1080p frame is only around 8 MB.
Yeah and at the very least you need 24 MB for a 1920x1080x32bpp double buffered + 32bpp depth/stencil buffer. That leaves 8 MB for texture cache and sub/super/multi sampling buffers and render to texture buffers and such needed for AA, DoF, stereoscopic 3D, etc, then vertex streams, etc. Suddenly we can see that 32 MB with 1080p is pushing it.
What makes the embedded SRAM terrible is it doesn't even reap the benefit of embedded on die SRAM: it's bandwidth isn't much more than the external RAM on the XBone and is still almost half as fast as the PS4s external RAM.
Even if the memory controller is split and it can access both the embedded and external ram simultaneously (eg: rendering threads have full access to esram without blocking access to external bus), the total bandwidth with both the esram and external ram together used concurrently is still slightly less than the PS4 external.
That in and of itself doesn't really mean much, but the extra memory management on the programmer of when to use what and what is mapped to where, all for no real benefit over a single easier to manage pool.
Lower latency won't be of any benefit either because the operations involved are deeply pipelined and overlapped, especially graphics.
Heh believe me if anyone can figure out a use to exploit the ESRAM it's me, but I'm having a hard time seeing any advantage to embedded RAM that isn't really much faster (+30%?) than the XBones external RAM let alone the PS4s external RAM. Usually when you think embedded ram to have something on the order of 1000s % faster than main memory, or to decouple from the bus to maximize DMA throughput in a multi processor environment to keep the bus free to maximize concurrency if bus traffic is at a premium (which it's not on PS4). It makes sense with something with slow RAM (Gamecube) or heavily bus driven multiprocessor (PS2 VUs, PS3 SPU scratchpad).
On XBone it will simply require mandatory use on part of the programmer to maximize memory throughput on the XBone in order to stay on equal footing with the PS4 which requires no special treatment of memory address space to achieve the same or better results. And that's ONLY if the memory controller can access the ESRAM and external RAM concurrently.
Really weird design decision. It certainly wasn't for a cost advantage with the $100 difference either.