Monday 23 December 2019

Is it technically impossible for an SD card adapter to degrade performance under any condition?


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.



Answer






  • 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.


No comments:

Post a Comment

How can I VLOOKUP in multiple Excel documents?

I am trying to VLOOKUP reference data with around 400 seperate Excel files. Is it possible to do this in a quick way rather than doing it m...