By using this site, you agree to our Privacy Policy and our Terms of Use. Close

Aielyn said:

What am I talking about? Look back at the RV770 chip for a moment. The centre of the chip has all of the main GPU stuff, and then there's some stuff around the edges, most of which is easily identified.

Now look at the Wii U's chip. Yes, there's the eDRAM, etc, on the left. And they've identified a heap of things on the right... but the odd part is all of the unmarked area. About a quarter of the entire chip is entirely unaccounted for, including a huge gap near the centre. There are visible details, so we can be fairly confident that it's not just empty space. So what is it? What hasn't been identified, and what impact does it have on the system?

I don't suppose anyone knows if there's an equivalent die image for the Wii's GPU, for comparison?

It's not empty space but it's not GPU (shaders) too... what that can be?

- fixed functions?
- Some special sauce?

There are two bigs theories in GAF right now...

Let's assume, for a minute, that the four blue sections are TMUs, the red sections are shader clusters, and the two yellow sections down at the bottom right are ROP bundles. This would, we assume, produce a core configuration of 320:16:8. Now, if you measure out the sizes of these, you get only 28.9% of the total GPU logic space, just 21.48mm². What's going on with the other 52.9mm² of GPU logic? There's probably a DSP and ARM on there, but that accounts for a couple of mm² at most.

There are basically two possibilities here:

- The 320:16:8 core config is accurate, and there's ~50mm² of custom logic or "secret sauce" (more than twice the size of the conventional GPU logic).

- The 320:16:8 core config isn't accurate.

Here's the interesting thing about the second possibility, it challenges one assumption that has gone unquestioned during our analysis; that all shaders are equal. What if they aren't?

What if Nintendo has gone for an asymmetrical architecture? What if they've decided that some of the shaders will be optimised for some tasks, and some for others? This doesn't necessarily require a complete reworking of the shader microarchitecture, and it could be as simple as having different shader clusters with different amounts of register memory. The ones with lots of register memory would be suited for compute tasks (we can assume that these are the red ones) and the others could be dedicated to graphical tasks with low memory reuse (the blue squares above the red squares might be a fit for these).

Why would I think Nintendo would do something like this? Well, for one, they've done exactly the same thing with the CPU. Although this is pending the CPU die photo, it appears that Nintendo have gone with three identical cores with very different amounts of cache, with two of the cores getting 512KB of L2 each, and the other core getting 2MB of L2. The assumed reason for this is that different threads are naturally going to have different cache requirements, so if developers are writing code specifically for the hardware, they can run cache-intensive threads on the cacheful core, and less cache-intensive threads on the other cores. The logic would be the same in this case. Not all GPU threads are created equal, so why give them all equal resources? Why not have register-heavy shader bundles for compute tasks to run on, alongside register-light shader bundles for other tasks?

I don't know as much about texture units and ROPs, but could the same principle be applied to them? Might there be different texture units specialised for different tasks? Could we have asymmetrical ROPs, for instance with some specialised for the Gamepad?

http://www.neogaf.com/forum/showpost.php?p=47314378&postcount=679

The second theory is harder to belive because I never saw a AMD GPU with asymmetrical shaders units... I can even know if that's possible.

I'm more with the first... some "special sauce" or fixed functions (for the Pad? Maybe).