lb wrote:The controller should be able to go faster in theory (with UHS-I cards), but the electrical specifications of the Pi are not compatible to UHS-I - 3.3V signaling only. So it won't get any faster than about 22 MB/s in practice.
As dom already said, it's much more important that the SD card is reasonably fast at random writes. That's the primary bottleneck, and most cards, even fast and expensive ones, are pretty bad at it.
What is it that makes the pi 3.3V signaling only? According to the specification here SD specifications
the sd card is supposed to receive 3.3V power even when it is switched to 1.8V signaling (see page 33). So the 3.3V supply to the SD card is fine. The only other electrical connection is directly to the Broadcom SOC. Since the emmc controller in the SOC supports UHS, i would assume that it can produce the required signal voltages when UHSMODE and maybe some other registers are set correctly. The peripherals sheet for the SOC includes some info for propagation delay tuning as well. Alternately, mode DDR50 could be used so that the clock speed is still 50Mhz but bandwidth is doubled by sampling on rising and falling clock. DDR50 could give up to 50MB/s and is supported by all micro sd cards labeled UHS-I!
UHS should be possible through software with no hardware hacking.