1

This question is an off-shoot of Will there be a performance degradation when using a SD card with an adapter for a camera. That question asked whether using a microSD to SD adapter would degrade performance.

That appeared to be a trivial question with an obvious answer, but it turned out not to be the case. This question is intended to ferret out and explain the underlying technical details.

Some brief context:

  • The adapter is just a passive device, a plastic shell and some metal contact extensions. In theory, it should make no difference in performance, and the conventional answer is that it doesn't, which is true under normal conditions.

  • There have been anecdotal reports of the adapter degrading performance. For example this article based on the author's observations. In the DSLR camera world, the are a few people like this poster on Quora who have arrived at the conclusion that the adapter "tends" to degrade performance. Other anecdotal reports can be found.

    None of the reports are based on rigorous scientific analysis, and it would be easy to dismiss them. The point here isn't to prove or refute the reports; it could be that every one of them is based on faulty information.

    What they have in common is multiple people independently reporting cases of non-trivial degradation (i.e., a noticeable magnitude, not nanoseconds for electrons to travel through a few extra millimeters of wire).

  • Given the number of adapters in use and the minimal number of such reports, this symptom is an exception rather than normal operation. This implies that if the symptom is real, the cause is something other than how things work under typical conditions.

People will probably agree that under normal conditions, the adapter does not affect performance. Discussion on the linked question identified two perspectives on atypical conditions (which would apply to the anecdotal cases):

  1. The adapter can not possibly degrade performance under any condition.
  2. There are conditions in which degraded performance would be explainable and perhaps not surprising.

The purpose of this question is to examine our conventional wisdom. We could stick with the first perspective and refute every anecdote reported until there's an acceptable level of proof that the perspective is incorrect. This question seeks to apply our knowledge to those perspectives to understand why either would be the case. The question:

Is it technically impossible for the adapter to degrade performance under any condition (and why or why not)?

Note that this can be answered by a valid technical explanation for either why it is impossible, or a plausible case where it would be possible.

In the linked thread, I suggested this possibility: a normal mode of failure for this type of adapter could result in a marginal electrical connection to the microSD card inside the adapter. That could produce some level of data transfer failures or errors. Resending data could eat into performance and explain the reported degradation.

Comment discussion on the linked thread seemed to boil down to these possibilities:

  • The protocol contains no resend mechanism, so a transmission error or failure produces an immediate I/O error and the process stops. This implies that the process either works or it doesn't, it is impossible for it to work at a degraded speed, which means that none of the reports of degradation can be correct.

  • A mechanism outside of the transfer protocol, like the OS, could trigger retries, implying that degradation is possible and the suggested mechanism could be a plausible explanation.

  • There are actually several possible transfer modes and speeds. Some suboptimal condition with the adapter could cause transfer speeds to be reduced.

  • Some other mechanism not yet suggested?

We obviously can't know what was going on in the reported cases of performance degradation. The objective here is not to speculate, or build a list of every possible theoretical cause.

The objective of this question is to distinguish whether performance degradation is technically impossible, or something that can't be ruled out and there are known mechanisms that could account for it.

We're looking for answers with sufficient explanation to be a plausible response to the question, but not a textbook of technical detail. Authoritative citations are encouraged.

7
  • You're asking for answers to "How can X happen?" Why should we even assume that X does happen at all? What evidence is there that X does actually occur? IOW provide links to these "reported cases of performance degradation" that you mentioned. – sawdust Dec 31 '18 at 8:22
  • @sawdust, I reframed the question a bit. – fixer1234 Jan 1 '19 at 3:40
  • There are IMO no credible reports of degraded performance with an adapter. The Michael Crider article is seriously flawed, and uses a bogus apples-to-oranges comparison to infer reduced performance is caused by the adapter. Comments to that article point out numerous other possible sources for the speed difference. That Quora post is an opinion disguised as a factual statement, and has no substantiation whatsoever. My google search turns up nothing worthwhile. Where are these "reports (that) have come from people with enough technical background" that you claim to exist? – sawdust Jan 2 '19 at 0:20
  • @sawdust, 1. I agree that none of the reports is very credible (and added a disclaimer in the question that they could all be bad). 2. The reports from people with "some" technical background don't refer to different reports, and the authors aren't technical experts. They are mainly bloggers who have at least some technical background, and are very involved with their subject, so they are familiar with a range of associated characteristics. I'm just differentiating them from "the man on the street" who has absolutely no background on which to base an opinion, or understand what they're seeing. – fixer1234 Jan 2 '19 at 1:05
  • (cont'd) My perspective is that the quality or accuracy of each claim isn't even all that relevant to the question. The mere existence of similar anecdotes from independent people is just a trigger to question the conventional wisdom. Based on actual technical knowledge, we may be able to either say that none of those anecdotes or other similar ones can possible be true, or that there could possibly be exceptions, situations where the adapter could conceivably affect performance. (cont'd) – fixer1234 Jan 2 '19 at 1:06
1
  • A mechanism outside of the transfer protocol, like the OS, could trigger retries, implying that degradation is possible and the suggested mechanism could be a plausible explanation.

  • There are actually several possible transfer modes and speeds. Some suboptimal condition with the adapter could cause transfer speeds to be reduced.

Both of these are applicable. SD clock rates start out slow while querying the device for its capabilities, and normally the host then switches to the maximum permitted clock (The maximum speed named by the card, rounded down to the nearest clock rate the host can generate).

But some hosts may have local configuration settings to force a lower speed. Besides that, it's perfectly possible for the host to respond to errors with either retries or reduction in clock speed. Reduction in clock speed would allow the transfer to tolerate increased series resistance and shunt capacitance, which the adapter will affect (should be a small effect, but a low-quality one could be larger).

Because the SD protocol doesn't specify what a host should do to recover from repeated errors, it's likely that the effective reduction in transfer rate would vary from device to device.

5
  • Just to clarify, during the initial handshaking, is there any form of speed vs. error testing that affects the clock rate selected, or does the host simply query the card to read a capability code and then set that rate? – fixer1234 Jan 2 '19 at 1:53
  • 1
    @fixer1234: The standard specifies a capability field (CSD, CID blocks). It doesn't call for any speed vs error testing, but some hosts could implement one. – Ben Voigt Jan 2 '19 at 1:56
  • CSD only has information on the standard speeds, then there are optional registers to also enable High Speed and UHS modes. – Ben Voigt Jan 2 '19 at 2:01
  • So the different speeds means that there are slower speeds available for problem situations (which would be degradation compared to the card's rated speed). The adapter, itself isn't detectable as a device. But in a situation like a marginal connection between the card and the adapter that produced errors or transfer failures, the host could detect the problem and take measures like retries or reducing the selected speed (or potentially attaching at a reduced speed)? Also, do we know if that's typically implemented (or specific examples where it's been implemented)? Thanks. – fixer1234 Jan 2 '19 at 3:05
  • 1
    @fixer1234: I expect that retries are more common, but it's certainly possible for the host to automatically reduce its speed. It has to have a programmable clock to support different class cards anyway, so dialing back the speed is just a bit of extra error-handling in software. – Ben Voigt Jan 2 '19 at 3:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.