That Darn Memory Bus

Among the entire GTX 600 family, the GTX 660 Ti’s one unique feature is its memory controller layout. NVIDIA built GK104 with 4 memory controllers, each 64 bits wide, giving the entire GPU a combined memory bus width of 256 bits. These memory controllers are tied into the ROPs and L2 cache, with each controller forming part of a ROP partition containing 8 ROPs (or rather 1 ROP unit capable of processing 8 operations), 128KB of L2 cache, and the memory controller. To disable any of those things means taking out a whole ROP partition, which is exactly what NVIDIA has done.

The impact on the ROPs and the L2 cache is rather straightforward – render operation throughput is reduced by 25% and there’s 25% less L2 cache to store data in – but the loss of the memory controller is a much tougher concept to deal with. This goes for both NVIDIA on the design end and for consumers on the usage end.

256 is a nice power-of-two number. For video cards with power-of-two memory bus widths, it’s very easy to equip them with a similarly power-of-two memory capacity such as 1GB, 2GB, or 4GB of memory. For various minor technical reasons (mostly the sanity of the engineers), GPU manufacturers like sticking to power-of-two memory busses. And while this is by no means a true design constraint in video card manufacturing, there are ramifications for skipping from it.

The biggest consequence of deviating from a power-of-two memory bus is that under normal circumstances this leads to a card’s memory capacity not lining up with the bulk of the cards on the market. To use the GTX 500 series as an example, NVIDIA had 1.5GB of memory on the GTX 580 at a time when the common Radeon HD 5870 had 1GB, giving NVIDIA a 512MB advantage. Later on however the common Radeon HD 6970 had 2GB of memory, leaving NVIDIA behind by 512MB. This also had one additional consequence for NVIDIA: they needed 12 memory chips where AMD needed 8, which generally inflates the bill of materials more than the price of higher speed memory in a narrower design does. This ended up not being a problem for the GTX 580 since 1.5GB was still plenty of memory for 2010/2011 and the high pricetag could easily absorb the BoM hit, but this is not always the case.

Because NVIDIA has disabled a ROP partition on GK104 in order to make the GTX 660 Ti, they’re dropping from a power-of-two 256bit bus to an off-size 192bit bus. Under normal circumstances this means that they’d need to either reduce the amount of memory on the card from 2GB to 1.5GB, or double it to 3GB. The former is undesirable for competitive reasons (AMD has 2GB cards below the 660 Ti and 3GB cards above) not to mention the fact that 1.5GB is too small for a $300 card in 2012. The latter on the other hand incurs the BoM hit as NVIDIA moves from 8 memory chips to 12 memory chips, a scenario that the lower margin GTX 660 Ti can’t as easily absorb, not to mention how silly it would be for a GTX 680 to have less memory than a GTX 660 Ti.

Rather than take the usual route NVIDIA is going to take their own 3rd route: put 2GB of memory on the GTX 660 Ti anyhow. By putting more memory on one controller than the other two – in effect breaking the symmetry of the memory banks – NVIDIA can have 2GB of memory attached to a 192bit memory bus. This is a technique that NVIDIA has had available to them for quite some time, but it’s also something they rarely pull out and only use it when necessary.

We were first introduced to this technique with the GTX 550 Ti in 2011, which had a similarly large 192bit memory bus. By using a mix of 2Gb and 1Gb modules, NVIDIA could outfit the card with 1GB of memory rather than the 1.5GB/768MB that a 192bit memory bus would typically dictate.

For the GTX 660 Ti in 2012 NVIDIA is once again going to use their asymmetrical memory technique in order to outfit the GTX 660 Ti with 2GB of memory on a 192bit bus, but they’re going to be implementing it slightly differently. Whereas the GTX 550 Ti mixed memory chip density in order to get 1GB out of 6 chips, the GTX 660 Ti will mix up the number of chips attached to each controller in order to get 2GB out of 8 chips. Specifically, there will be 4 chips instead of 2 attached to one of the memory controllers, while the other controllers will continue to have 2 chips. By doing it in this manner, this allows NVIDIA to use the same Hynix 2Gb chips they already use in the rest of the GTX 600 series, with the only high-level difference being the width of the bus connecting them.

Of course at a low-level it’s more complex than that. In a symmetrical design with an equal amount of RAM on each controller it’s rather easy to interleave memory operations across all of the controllers, which maximizes performance of the memory subsystem as a whole. However complete interleaving requires that kind of a symmetrical design, which means it’s not quite suitable for use on NVIDIA’s asymmetrical memory designs. Instead NVIDIA must start playing tricks. And when tricks are involved, there’s always a downside.

The best case scenario is always going to be that the entire 192bit bus is in use by interleaving a memory operation across all 3 controllers, giving the card 144GB/sec of memory bandwidth (192bit * 6GHz / 8). But that can only be done at up to 1.5GB of memory; the final 512MB of memory is attached to a single memory controller. This invokes the worst case scenario, where only 1 64-bit memory controller is in use and thereby reducing memory bandwidth to a much more modest 48GB/sec.

How NVIDIA spreads out memory accesses will have a great deal of impact on when we hit these scenarios. In the past we’ve tried to divine how NVIDIA is accomplishing this, but even with the compute capability of CUDA memory appears to be too far abstracted for us to test any specific theories. And because NVIDIA is continuing to label the internal details of their memory bus a competitive advantage, they’re unwilling to share the details of its operation with us. Thus we’re largely dealing with a black box here, one where poking and prodding doesn’t produce much in the way of meaningful results.

As with the GTX 550 Ti, all we can really say at this time is that the performance we get in our benchmarks is the performance we get. Our best guess remains that NVIDIA is interleaving the lower 1.5GB of address while pushing the last 512MB of address space into the larger memory bank, but we don’t have any hard data to back it up. For most users this shouldn’t be a problem (especially since GK104 is so wishy-washy at compute), but it remains that there’s always a downside to an asymmetrical memory design. With any luck one day we’ll find that downside and be able to better understand the GTX 660 Ti’s performance in the process.

The GeForce GTX 660 Ti Review Meet The EVGA GeForce GTX 660 Ti Superclocked
Comments Locked

313 Comments

View All Comments

  • Nfarce - Thursday, August 16, 2012 - link

    The GTX 680 is 20% higher in performance than the 660Ti but it comes at a lofty 67% higher price tag. The 670 is just 10% faster but still comes at a 33% price premium. I was upset after dropping 5 Benjamins on an EVGA 680 Superclocked when the 670 came out. I should have waited on THAT card and saved a hundred. Now this card is out and two of these in SLI will slaughter my 680 by a 35% margin for just another 20% in cost (according to Guru3D's SLI tests). Just damn on my timing and decisions. Methinks I'm selling the 680 for a $50 loss and get two of these for $600. Sure beats the original plan of spending $1,000 in a 680 SLI setup.
  • CeriseCogburn - Sunday, August 19, 2012 - link

    This place and Tom's very conveniently left out the 680 in all the charts but made biased assured that the 7970 was in every single one of them.
  • TheJian - Monday, August 20, 2012 - link

    Another 680 at newegg is $499 (lots of choices). Two 680's will smoke the two 660's for $100 less. Since you already own one ;) If you buy two of either, I hope you're going to run them at 5760x1200 (3 monitors or 3840x1200? two monitors?). Wasted power otherwise. 1920x1200 is already 100fps+ in almost everything on a GTX 680.

    But sorry about you jumping early :) That's the price any of us pay for being first on the block to have the latest toys :) Also note, you can turn down both 680's and have a silent seriously butt kicking machine until you actually need the power. No heat or noise until you actually need it. Let's face it, two 680's is a LOT of freaking performance.

    Congrats if you've got an extra $500 laying around in these times :) Might want to wait for labor day specials though ;)
  • xKrNMBoYx - Thursday, August 16, 2012 - link

    Is that a typo or is the Zotac GTX 660 Ti AMP! memory clock 600 MHz faster
  • Ryan Smith - Thursday, August 16, 2012 - link

    That's not a typo. They are offering a factory memory overclock; the only such vendor to do so according to the list I have.
  • Jaguar36 - Thursday, August 16, 2012 - link

    I'd love to see SC2 come back, particularly with the new Arcade games. Some of them can easily bring even a top card to its knees. The final battle of a Desert Strike game will crush even the best cards.
  • TheJian - Tuesday, August 21, 2012 - link

    Nah, I'm sure people would whine because it's another victory for Nvidia at 1920x1200 and below (heck I think above also). They could have benched it as before but Ryan probably wanted to leave it out :) He might have had to make a conclusion then, even at 2560x1600... ;)
    http://www.anandtech.com/show/6025/radeon-hd-7970-...
    Note that article is from 6/22/2012. and they used it again here:
    http://www.anandtech.com/show/6096/evga-geforce-gt...
    7/22/2012...
    You see, at 1920x1200 ULTRA + 4xMSAA the GTX670 already scores 121.2 vs. 108.3 for the 7970GE (7970 only gets 99, and the 7950 gets 88.2fps). So you would have the GTX 660 TI smoking the 7970Ghz edition. That wouldn't look too good when it's supposed to be competing against the 7850/7950...LOL. The GTX 670 even beats the 7970GHZ edition in the 2% market share 2560x1600 also. So it may have looked pretty bad against the 660 here also. It would have made his 2560x1600 digs and conclusion even worse and hard to even argue there. Ryan was smart here...Just not quite smart enough if you look at the big picture of evidence.

    Understand why they won't bench SC2 again now? Why not run the last version patch that works fine? Did 1.51 not work too (released 8th? a week ago from review date). Instead he keeps in Warhead from 2008 and an engine from 2007 that was only used in 7 games vs. the much more TAXING Crysis 2 (not 1) with DX11 patch and Ultra res patch which turns on a crapload of stuff like:hardware tessellation, soft shadows with variable penumbra, improved water rendering, particle motion blur and shadowing, Parallax Occlusion Mapping, full-resolution High Dynamic Range motion blur, & hardware-based occlusion culling.
    "can it run crysis?"...Wrong question, can it run crysis 2! :) I still think it would be close or a loss for NV though with 660. It would be a close call, probably a wash...But that wouldn't help ryan either :) Hence the 2008 game.
  • CeriseCogburn - Thursday, August 23, 2012 - link

    This place for these vidcards is goners man. Good job.
  • Stas - Thursday, August 16, 2012 - link

    Disappointed. Was hoping to see it match 7950 to drive the prices down... But it actually loses to 7950. Let alone o/c potential. Ugh... keep waiting.
  • TheJian - Tuesday, August 21, 2012 - link

    I'm not even going to waste my time with this BS comment. But see my response to Ryan's lame excuse over 2560x1600 for all the details you SHOULD have seen in his review (and some that he SHOULD have put IN the review). It only one ONE game @1920x1200. In my response to ryan I prove you can't run at 2560x1600 and stay above 30fps.

    Nice try though. :) Slower my butt.

Log in

Don't have an account? Sign up now