Effective Texturing Bandwidth - GigaBytes/sec
Calculations for Effective Texture Bandwidth:
Maximum Main Memory Bandwidth
Xbox has 64 MB of 200 MHz DDR SDRAM with 128-bit access.
GC has 24 MB of 324 MHz 1T-SRAM with 64-bit access.
Xbox: 6.4 GB/sec
GC: 2.6 GB/sec
CPU Bandwidth
Assumption is 1 GB/sec for either console, which is plenty of bandwidth to sustain either CPU.
Xbox: 6.4 GB/sec - 1 GB/sec = 5.4 GB/sec
GC: 2.6 GB/sec - 1 GB/sec = 1.6 GB/sec
Memory Efficiency
There is no question that GC's main memory of 1T-SRAM is much more efficient than the Xbox's DDR SDRAM, as the latency of GC's 1T-SRAM is 10 ns, and the average latency of 200 MHz DDR SDRAM is estimated to be around 30 ns.
Memory efficiency is largely driven by data streaming. What that means is that developers can do optimizations to their data accesses so that they are more linear and thus suffer from less latency. Latency is highest on the first page fetch, and less on subsequent linear accesses. It's random accesses that drives memory efficiency down, as more latency is introduced in all the new page fetches.
It has been brought up that DDR SDRAM is only 65 percent effective, and it is only 65 percent effective when comparing a SDRAM based GeForce2 graphics card with a DDR based GeForce2 graphics card. The Xbox's main memory efficiency should be around 75 percent effective if one considers that the Geforce3 has a much better memory controller than what is on the Geforce2 chipsets. You can see that incredible efficiency of the Geforce3 memory controller versus the Geforce2 at AnandTech's Geforce3 review, where fill-rate is compared, and that is a good measure of memory effectiveness. The comparison at AnandTech's does not just highlight the effectiveness of the GeForce3's Lightspeed Memory Architecture (memory controller), but also highlights the effectiveness of the texture cache, and the visibility subsystem.
The GC's 1T-SRAM main memory is speculated to be 90 percent effective. A significant difference between the two memories!
Xbox: 5.4 GB/sec x 0.75 = 4.05 GB/sec
GC: 1.6 GB/sec x 0.90 = 1.44 GB/sec
Michael Abrash, who is part of the Xbox Advanced Technology Group at Microsoft has also indicated that Xbox's memory efficiency to be 75 percent effective.
Frame Buffer and Z-Buffer Accesses
The GC has a 2 MB on-chip frame (draw) buffer and z-buffer, so reads and writes to that on-chip memory buffer does not effect the main memory bandwidth. The GC still has to send the frame buffer to memory for display each frame.
The Xbox stores it's frame buffer and z-buffer in main memory, and it supports z-buffer compression at a 4:1 ratio, so a 32-bit z-buffer value is only 8-bits in size when compressed. The decompression and compression of z-buffer data, to and from memory, is handled automatically by the Xbox GPU.
Xbox: 640 x 480 (resolution) x 5 (frame buffer write (24-bits) + z-buffer read (1 byte) + z-buffer write (1 byte)) x 3 (overdraw) x 60 FPS = ~277 MB/sec or 0.277 GB/sec. So 4.05 GB/sec - 0.277 GB/sec = 3.77 GB/sec
GC: Only has to write out frame buffer each frame and at 60 FPS is roughly 55 MB/sec or 0.055 GB/sec. So 1.44 GB/sec - 0.055 GB/sec = 1.39 GB/sec.
Sound
Sound accesses on the Xbox should be no more than 2 MB/sec or 0.002 GB/sec for a typical game supporting 8 channels (stereo) 16-bits at 48 KHz. To small to even consider as part of the calculations. On GC sound access is to A-Memory, which has no effect on it's 1T-SRAM main memory.
Polygons
Let's assume a typical game would have a rendering rate of 10 million polygons per second. 10 mpps x 40 bytes (vertex and lighting data) = 400 MB/sec, and we will assume 250 MB/sec if some of the vertex data is represented as bytes (8-bit value) or shorts (16-bit value). This is a form of vertex compression that both the Xbox and GC support.
Xbox: 3.23 GB/sec - 0.25 GB/sec = 3.52 GB/sec
GC: 1.39 GB/sec - 0.25 GB/sec = 1.14 GB/sec
Explanation: The polygon calculation assumes 40 bytes per polygon (vertex and lighting data). Vertex data is represented by a 32-bit floating point number. Both the Xbox and the GC allows that data to be stored as either a byte (8-bit integer value) or short (16-bit integer value).
That kind of compression involves loss of accuracy information, so bytes would be used for objects that can tolerate 8-bit accuracy, and shorts would be used for objects that can tolerate 16-bit accuracy. Some vertices like the game world environment would not use compression but keep it values at 32-bits, as the greater accuracy is needed for better precision.
I assume that developers would compress some of the vertex data as bytes and shorts, so the 400 MB/sec would be an estimated 250 MB/sec for a typical game doing 10 mpps.
Texture Cache
It's difficult to include the bandwidth of the caches as part of our total calculations, because we do not know the Xbox's cache size, bandwidth, and efficiency of both the Xbox and GC caches. The on-chip texture cache on the Xbox GPU is estimated to be 128 KB or 256 KB. The bandwidth of this cache is unknown, but can be estimated:
Xbox: 8 texel/clock (4 pipelines with two texel units a pipeline) x 4 Bytes (32-bit texel) x 4 (bilinear) x 233 Mhz = ~30 Gbyte/s
The on-chip texture cache on the GC "Flipper" GPU is 1 MB in size, and it's bandwidth is 10.4 GB/sec. Using the above calculation:
GC: 4 texel/clock (4 pipelines with two texel units a pipeline) x 4 Bytes (32-bit texel) x 4 (bilinear) x 162 Mhz = 10.368 Gbyte/s
As you can see the result which is the same as the GC quoted spec lends support to the above Xbox cache bandwidth calculation being correct. Maybe this calculation will suffice if we consider how effective the texture caches are with 12 MB of textures, and using pro-rated averages:
Xbox: (0.128/12 x 30 GB/sec) + (11.972/12 x 3.52 GB/sec) = ~3.8 GB/sec
GC: (1/12 x 10.4 GB/sec) + (11/12 x 1.14 GB/sec) = ~1.9 GB/sec
Note that I used the smaller assumption for the Xbox texture cache, and we assumed the same efficiency for both caches. Another thing to consider which is very important, is how efficient is the texture caches at reloading new data from main memory.
Xbox: 32 GB/sec / 4.05 GB/sec = 7.9 times difference
GC: 10.4 GB/sec / 1.44 GB/sec = 7.2 times difference
Above we divided the cache bandwidth with the total effective memory bandwidth (minus CPU bandwidth only) to give us the ratio difference. GC has a slight advantage, since the ratio difference is not as great.
Xbox is better able to keep it's texel units fed with data simply because it can feed 4.05 GB/sec of data compared to GC's 1.44 GB/sec.
What is known:
GC cache is either 8 times to 4 times larger than the Xbox's (128 KB or 256 KB).
Xbox can feed it's cache with 3 times greater data per second than the GC.
There is also speculation that the GC cache can hold compresed textures and the Xbox cache cannot, if so then that can make a huge difference in the comparison as with a 6:1 compression ratio, the cache can hold 6 times more data! 6 MB of data for the GC compared to 128 KB or 256 KB for the Xbox is a huge difference.
Since there is so much speculation on the two different caches for each GPU, and there is no clear calculation for an accurate comparison, the cache will not be included in our result below.
Effective Texture Bandwidth
Xbox: 3.52 GB/sec
GC: 1.14 GB/sec
Ratio difference is 3:1 in the Xbox's favor.
A proportional graph showing the difference:
[graph to come after calculations are figured to be correct] Graph Calculation
Note: the proportional graph was calculated like this: Largest square is 250 x 250 pixels. The smaller square is a ratio of the larger square, based on the values being compared.
So for effective texture bandwidth:
250 x 250 pixels = 62,500 pixels
Xbox 3.52 GB/sec / GC 1.14 GB/sec = ~3 (comparative ratio)
62,500 / 3 = 31,250 pixels
Square Root of 31,250 pixels is 144 pixels. So a square of 144 pixels on each side.
quelle:
http://segatech.com/technical/consolecompare2/
tja, leonie.. so sieht es aber wohl aus...
Robi