I wouldn't necessarily look at it like that.
I don't seem to have much choice, the architecture of the ring is pretty vague. It's hard to discern what priorities might lie in the distribution of clients and the organisation of memory channels...
Plus there is an extra ringstop for PCIe/other I/O.
Hmm, a 3-stop ring, yes I forgot PCI Express, CrossFire. Seems expensive. I'm really struggling to see the benefit of a MC that's in 2 parts (or more) for a "mere" 128-bit bus.
If RV630 didn't have a ring, then the 3 SIMDs and the 2 TUs and the 1 RBE would have to be connected with a crossbar.
The diagrams for R600 seem to show a crossbar which I presume operates between the ring bus and the 4x SIMDs, 1x TU and 1x RBE per ring stop. I presume there's also a crossbar amongst these clients. Or some other kind of bus...
So in designing RV630, perhaps the complexity of implementing a crossbar amongst 4x SIMDs, 2x TUs and 1x RBE makes a ring bus preferable. Or the "overhead" bearable.
As far as drivers go, most of it is done automatically. You can tune the memory channels manually if wanted, but thats not necessarily related to the ring organisation.
It's not the memory channels, per se, that bug me, it's the asymmetric loading patterns across the ring. On the other hand, if the ring has far more bandwidth than the clients (TUs, RBEs, MCs etc.) can use, then maybe the ring is pretty much "invisible". But that brings me back to my first impression, that the ring becomes "expensive" on a die of this size. Maybe it's just that the marginal cost isn't great.
I'm mindful that R6xx is an architecture where the clients of the system bus have many more peers to exchange data with than in older generations of GPUs. Sort of many<->many<->many rather than many<->many. Given that premise, the ring bus might be fundamental even at the scale of only ~16GB/s and up of memory bandwidth.
Also there's the virtualisation in R6xx, where the register file, the constants, textures and other buffers are all virtualised. This requires that the virtualisation system is "fully interconnected" - clients must all have "equal" access to memory. I'm thinking specifically of cache snooping and page table update traffic.
Jawed