I'm not sure I follow. If your camera supports UHS-I at 50MB/s, and you have a UHS-I card that's good for 36MB/s, and you're only getting 22MB/s between the two, how can you tell that the bottleneck is the camera and not the card, or vice versa?
Well, I assume that the camera writes out the images as sequential writes, i.e., the SD card should be able to achieve its peak write performance (of 36 MB/s, in this case). This may be affected by write block size, but I am sure that the camera would be writing in large blocks.
We also know that the interface is 50 MB/s, although I have no figures on what the "real world" bandwidth of that interface would be. Again, I am assuming that the card can do at least 36 MB/s on that interface.
This causes me to suspect that the camera is the bottleneck, i.e., it cannot move the data to the card quickly enough. There are many possible reasons, including:
1. Insufficient memory bandwidth / bus bandwidth. The camera is receiving data from the sensor at a rate of about 31 MB per image. This has to be processed (lightly), formatted and packed into the RAW format (which includes Huffman coding in .NEF files, I suspect). Then it has to build a JPEG too, but this is probably handled by a custom encoder, but it still requires some memory bandwidth.
2. Sub-optimal handling of data flow, i.e., no dedicated DMA-like controller for moving data from the main buffer to the SD card interface. If the SD card interface is handled in software, then this has to be balanced with other processing duties (such as in point 1 above). Peak SD card throughput will be limited by processing power and interupt frequency.
All of this has to be balanced against power consumption. I do not really know enough about the camera's internal architecture to speculate further, but I am reasonably convinced that the camera is not able to utilize the SD card interface at full speed (which may be 50 MB/s on UHS-I).
Lastly, the UHS-I cards only started appearing around the time that the D7000 launched. It is entirely possible that they decided to support the UHS-I interface electrically, but that the D7000 architecture was never designed to handle more than say 25 MB/s on the SD card interface.
That is why the D800 would make such an interesting subject for these experiments. If it can sustain faster speeds on CF than on SD, then we would be able to tell (partially) whether the SD interface is holding us back.
Edit: I see Rob did all the hard work already. (http://www.robgalbraith.com/bins/camera_wb_multi_page.asp?cid=6007-12451). On the D800, the CF cards are much faster than the SD cards. Incidentally, Rob's results show that my card (the 45 MB/s Sandisk) gets 30 MB/s on the D800, but only 24 MB/s on the D7000, which supports my argument, I think.
Last edited: