Как стать автором
Обновить

Все, что вы хотели знать о SD…

Время на прочтение7 мин
Количество просмотров4.5K
Автор оригинала: Mike Calligaro
… но боялись спросить.

Было много вопросов о картах памяти SD. Это большая тема, поэтому я расскажу то, что могу и затем посмотрю, какие вопросы будут в комментариях. Я отвечу на ваши вопросы в комментариях или сделаю еще один обзор.

Что скрывается за названием?

Первоначально аббревиатура SD означала «Secure Digital» («Цифровая Безопасность»), но никто никогда не делал что-либо касаемое «безопасности». Название так и прижилось, не смотря на то, что оно ничего уже не значит. Все типы SD-карточек основаны на NAND флэш-памяти и используются для хранения данных. Для себя можно их представлять, как очень маленькие жесткие диски без движущихся частей, с очень низким потреблением энергии. SD, MiniSD и MicroSD (aka TransFlash) есть суть одно и тоже, и отличаются только внешним видом (размером). Карточки меньшего размера занимают меньше месте в вашем устройстве, что позволяет делать их (устройства) еще меньшими.

Да, меня раздражает, что каждый новый покупаемый телефон требует новую, еще меньшую версию SD. Однако, я не думаю, что телефоны смогут стать еще меньше, и это можно отнести к хорошим новостям. Фактически, нам уже нужен пинцет, чтобы вставить MicroSD-карточку. Нам потребуется микроскоп, если карточки станут еще меньше.

Имеет ли значение объем (вместимость)?

Единственный отрицательный момент карточек большего объема — их цена. Чем больше объем карточки,- тем больше она стОит. Они не потребляют больше энергии, чем карточки малого объема и они ни сколько не медленнее. Я использую карточку объемом 2G в моем устройстве на Windows Mobile, и она работает превосходно. К сожалению, карточки объемом 4G и больше вероятнее всего не будут работать.

Большинство карточек и устройств чтения (кард-ридеры) соответствуют спецификации SD версии 1.1. Эта спецификация ограничивает объем карточки двумя гигабайтами. Существует новая спецификация версии 2.0, которая допускает карточки большего объема, но Windows Mobile в настоящий момент не поддерживает SD 2.0. Не смотря на то, что мы (Прим. переводчика: здесь и далее под словом «мы» будет подразумеваться корпорация Microsoft) не поддерживаем SD 2.0 в явном виде, существует возможность для наших OEM-производителей добавить такую поддержку самостоятельно (однако, я не знаю, сделал ли кто-нибудь это). Таким образом, если ваше устройство на Windows Mobile способно использовать карточки больше 2G, не нужно говорить, что я обманщик. Неосведомленный, — да. Лгун, — нет.

Как насчет скорости?

SD-карточки имеют различные маркетинговые названия — Ultra, 133x, High Speed, и т.д. Нет никаких стандартов, которые бы говорили, что означают эти названия, таким образом, я не могу сказать вам «Ultra» быстрее или медленнее, чем, к примеру, «133x». Но я могу сказать вам, что существуют огромные различия в скоростях для различных SD-карточек. Несколько лет назад я сделал простой тест, в котором я использовал карточку SD в карт-ридере, скопировал около 30M данных (файлов) на нее, засек время копирования секундомером, и затем повторил процедуру с различными SD-карточками. Я обнаружил некоторые карточки, которым потребовалось 30 секунд, в то время как другим необходимо было 80.

Более быстрая карточка может иметь множество преимуществ. Она обнаруживается быстрее при подключении, файлы записываются на нее быстрее, и файлы читаются с нее быстрее. Сможете ли вы обнаружить эти различия будет зависеть от того, на сколько более быстрая ваша карточка и какого размера файлы вы передаете.

Также имеется небольшая возможность сэкономить заряд. Питание на карточку SD подается только в момент передачи данных. Таким образом, вы потратите меньше заряда батареи, если вы сможете передать ваши данные быстрее. Я никогда не тестировал этот факт самостоятельно, но я не думаю, что выигрыш будет на много существенным.

Как это работает?

Каждая карточка SD имеет маленький встроенный микроконтроллер. (Представляйте микроконтроллер, как упрощенный процессор.) Этот микроконтроллер обрабатывает команды между карточкой и устройством, в котором она (карточка) используется, читая данные с карточки и записывая их на карточку. Микроконтроллер также выполняет некоторые специфические задачи, такие как выравнивание и сжатие данных. Весь фокус в том, что микроконтроллер работает только во время передачи данных (на карточку или с нее). Все центральные процессоры и микроконтроллеры работают благодаря частоте задающего генератора, а генератором карточки SD управляет устройство, к которому карточка подключена. Если генератор выключен, микроконтроллер выключен также. Устройство включает генератор только на время передачи данных.

Таким образом, одна карточка может быть быстрее другой, если у нее частота тактового генератора выше. Устройство «спрашивает» у карточки SD, на какой наибольшей частоте она может работать, и затем использует эту частоту для тактового генератора. На более высокой частоте можно передать больше данных в единицу времени. Это подобно тому, как Pentium 3ГГц работает быстрее, чем Pentium 2ГГц. Число ГГц (гигагерц) — есть тактовая частота процессора.

Во-вторых, скорость работы карточки зависти от способа «общения» карточки и устройства. Устройство посылает команду карточке и запускает генератор, пока карточка не ответит. Команда может быть, например, «сохрани эти данные», ответом на которую может быть «сделано, могу принять дальше.» Или команда может быть «найди эти данные», ответом на которую может быть, «вот они!». Вот почему только во время одной из таких команд карточка может выполнить «черновую» работу: только в это время работает генератор. Таким образом, карточка может получить команду «сохрани эти данные», сохранить их, и выполнить какую-то свою специфическую задачу до того, как ответить «сделано!». Чем дольше выполняются такие специфические для карточки задачи (на прямую не связанные с заданной командой), тем больше время передачи данных. Некоторые карточки будут более эффективными в выполнении своих специфических задач, чем другие, и в результате, более быстрыми.

Прим. переводчика: хотелось бы еще заметить, если это еще не стало для вас очевидным, что скорость передачи данных понятие двусторонне, т.е. зависет и от применяемой карточки и от вашего устройства. Даже если карточка будет способна работать при большем значении частоты задающего генератора, но ваш телефон не сможет ее обеспечить, то скорость передачи данных будет наименьшим значением из возможностей устройства и возможностей самой карточки.

Почему мы не можем делать больше с SD-карточками?

Часто задаваемый вопрос: почему мы не поддерживаем размещение некоторых данных на карточке памяти? Например, мы не поддерживаем размещение контактов, расписания встреч, почты на карточке памяти. (Однако, мы позволяем хранить вложения на карточке памяти.) Основная проблема в том, что по своей природе карточка памяти может быть извлечена из устройства. Некоторые типы данных становятся не актуальными после истечения определенного (довольно малого) промежутка времени. Синхронизация была бы затруднительной, если бы в один момент было 300 контактов, а через некоторое время их стало 10, или не стало вообще (потому что вы извлекли карточку памяти из устройства). Можно было бы разработать некоторый интерфейс, который бы позволял обойти и решить данную проблему, однако, он был бы очень сложным как при написании, так и при использовании.

Некоторые данные имеют такое значении и используются так, что это позволяет им в одно время существовать и быть доступными, а в другое время быть недоступными. К таким данным можно отнести почтовые вложения и временные файлы Internet Expoler'а. Прим. переводчика: Именно поэтому мы и позволяем вам сделать самостоятельный выбор относительно места их хранения.

Так происходит всегда: разреши кто-то хранить контакты на карточке памяти, он бы лишился другой возможности. При расставлении приоритетов об использовании SD-карточек, мы принимали во внимание множество факторов, включая возможность внутренней флэш-памяти. Мы уже видели телефоны с несколькими гигабайтами внутренней (встроенной) памяти. Так как такие устройства становятся все более обыденными, то теряется смысл в том, чтобы разрабатывать какой-то интерфейс для возможности хранения контактов на карточке памяти, которая может быть извлечена.

Почему программы перестают работать после входа/выхода в/из режима ожидания?

Когда PocketPC переходит в режим ожидания, питание не подается на большинство из его устройств, включая ту часть SD-карточки, которая говорит находится ли она в слоте. Пока устройство находится в режиме ожидания, вы, теоретически, можете извлечь карту памяти и заменить ее другой. Если вы сделаете это, то программы, имевшие открытые на карточке файлы будут в замешательстве. Фактически, это редко происходит, но мы все же должны обрабатывать такую ситуацию. Таким образом, когда устройство возвращается из режима ожидания, мы проверяем, находится ли карточка в слоте. Если да, мы проверяем, действительно ли это та же самая карточка, что была до входа в режим ожидания. Если карточка памяти не отвечает, или отвечает не так, как мы ожидаем, то, мы выгружаем из памяти все открытые на карточке памяти файлы и закрываем их.

Проблема в том, что мы не можем ждать вечно, пока карточка памяти ответит нам. Если программы пытаются обращаться к этой карточке памяти, мы препятствуем этому. Так, мы установили промежуток время, в течении которого мы будем ждать ответа карточки перед тем, как сделать вывод о ее отсутствии и закрыть все открытые с нее файлы (мы называем это «PnPUnloadDelay»). Важно, что некоторые устройства могут быстро обнаружить карточку памяти, а другим необходимо больше времени. Из-за этого, наши OEM-производители выбирают правильное значение параметра PnPUnloadDelay для своего оборудования самостоятельно, и мы доверяем их установкам. Если из-за чего бы то ни было SD-карточка не отвечает в течении времени, установленного в параметре PnPUnloadDelay, мы считаем, что это новая карточка или карточка не доступна.

К этому может привести многое. Например, карточка памяти, что вы используете может оказаться более медленной, чем та, которую ожидает наш OEM-производитель. Это тот случай, когда покупка более быстрой карточки может помочь. Или, некоторое приложение может выйти из-под контроля и «зависнуть», что приведет к медленной работе системы и все операции будут занимать много времени. Или, возможно, OEM-производитель ошибся и установил время ожидания в параметре PnPUnloadDelay слишком малым.

Значение параметра PnPUnloadDelay хранится в реестре, однако, к сожалению, его изменение не приведет к ожидаемому результату. Только OEM-производитель может изменить это значение.

Заметьте, что смартфоны никогда не переходят в режим ожидания, таким образом, они лишены подобно рода недостатков.

Вопросы?

Я думаю, эта статья покрывает многие из вопросов, которые часто задают о SD-карточках. Если у вас еще остались вопросы,- задавайте их.

— Связанные статьи:
Теги:
Хабы:
+22
Комментарии24

Публикации

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн