No thats not what I said.
Originally Posted by Ryunosuke
I said one bus for ESRAM, one for DDR3.
Whos said anything about concurent read and write back to the Esram?
The only way you can get 102GB/s write with 170GB/s read concurrently is if there are two buss's between the ESRAM and GPU. Edit: Actually I take this part back. Even with two buss's the ESRAM is not capable of 204GB/s bandwidth (102GB/s write and 102GB/s read at the same time).
Of course you cant do that, a bus is either reading or writing.
You can concurrently read form DDR3, and write to the ESRAM.
This is the exact same system they use on the 360.
You can whatever combination you like:
If there was a bus between the GPU<->ESRAM and the GPU<->DDR3 then you would have 68GB/s read and 102GB/s write, not 170GB/s read and 102GB/s write.
read/read=170 gbs in
read/write=68 gb/s in 102gb/s out. (practically that 68 gb/s because that as fast as DDR3 can go except in framebuffer cases)
write/read=102gb/s in / 68gb/s out (practically that 68 gb/s because that as fast as DDR3 can go -except in framebuffer cases)
Look they even blimmin state it when moving data from ESRAM->DDR3
Although ESRAM has 102.4 GB/s of bandwidth available, in a transfer case, the DRAM bandwidth limits the speed of the transfer.
ESRAM-to-DRAM and DRAM-to-ESRAM scenarios are symmetrical.
I dont know why you keep arguing otherwise, its there in black and white.
The whole thing is ideally setup to read/write, just like the 360 with zero wait states.
Not one part of this system is desgined to handle 170gb/s that not at all true.
The memory bus is capable of handling at least 170GB/s bandwidth.
You ever heard of ram timings? Wave cycles?
There is no reason why the GPU can not read the 32MB of ESRAM at 102GB/s and whatever portion of DDR3 is allocated to graphics at 68GB/s concurrently on a single bus that is capable of handling the bandwidth of the two pools of memory.
Of course you cant just bung different spec ram together and ask it all to just "read from the bus".
Or you can use the GPU to move the stuff for you.
The move engine has a bus of its own but only with a bandwidth of 25.6GB/s and it is only used for moving/copying data within the two pools of memory. It only has one path so it has to choose if it is going to move the data between DDR3->DDR3 or DDR3->ESRAM or ESRAM->ESRAM or ESRAM->DDR3.
Have you even read these documents?
This table shows an example of the maximum memory-bandwidths that the GPU can attain with different types of memory transfers.
Source memory Destination memory Maximum read bandwidth (GB/s) Maximum write bandwidth (GB/s) Maximum total bandwidth (GB/s)
ESRAM ESRAM 51.2 51.2 102.4
ESRAM DRAM 68.2* 68.2 136.4
DRAM ESRAM 68.2 68.2* 136.4
DRAM DRAM 34.1 34.1 68.2
The only time DRAM->ESRAM makes any sense is if the ESRAM is used as a framebuffer with multiple render targets, or multiple buffers, such as the obligatory depth and stencil buffers.
i.e. 1 source in multiple writes out.
It also doesn't show a second bus between the GPU->DDR3. The other diagram also had a bus to the NB but only at 30GB/s bandwidth. I believe the PS4 also has the same 30GB/s bus.