Чи правда, що карта SD / MMC має вирівнювання зносу за допомогою власного контролера?


51

Я не можу знайти жодної достовірної інформації про це. У мене немає повної специфікації обладнання SD / MMC Card.

Це правда? Мій додаток високого рівня не повинен стосуватися вирівнювання зносу під час роботи з цими картками?

EDIT

Чи може хтось підтвердити, що вирівнювання зносу гарантується специфікацією SD? Я хочу бути впевненим, тому що, схоже, це робить більшість продавців, але це не вимагається специфікацією.


5
Не всі виробники флеш-медіа інвестують в алгоритми вирівнювання зносу. Вирівнювання зносу є більш поширеним на SSD, де виробники лідирують на ринку через алгоритми.
Четан Бхаргава

Відповіді:


43

Я працюю в компанії, яка раніше була членом асоціації SD, ми знайомі зі специфікацією 2.0 (SDHC). Специфікація на SD-картці не містить жодного входу для вирівнювання зносу. Це повністю залежить від виробника SD, який впорається, якщо вони захочуть. Ми бачили, що деякі, швидше за все, так і роблять, а інші - ні про що (будьте обережні супердешеві нокаути SD-карти). SDXC, можливо, змінив це на включення вирівнювання зносу, але я не впевнений у цьому. На жаль, єдиний спосіб реально показати, що це отримати свої руки на офіційній специфікації. Ви можете знайти його в Інтернеті, швидше за все, але асоціація SD дуже хоче, щоб ви заплатили за це.

Як бічне зауваження, якщо взяти карту 2 Гб і записати її, починаючи знов і знов, вона в середньому становить близько 10 ТБ до того, як карта загине і вже не підлягає запису. Крім того, SD-карти не дадуть вам знати, коли дані погані, тобто не повертатиметься помилка вводу-виводу, як і жорсткий диск ПК. Це може не бути проблемою для вбудованих конструкцій, оскільки 10 ТБ - це багато даних, але це може бути фактором для когось.


2
Я припускаю, що, хоча цього немає в специфікації, компанії все ще хочуть зробити це, щоб зберегти свою репутацію. Хоча супердешеві нокаути не цікавляться репутацією, вони продають людям, які хочуть дешево на все. Це звучить розумно?
Kellenjb

1
@Kellenjb Це дуже розумне припущення, і я особисто погодився б з вами. Однак, оскільки це не в специфікації, і це малоймовірно отримати доступ до будь-якої конкретної конструкції контролера SD-виробника, це реально не може бути доведено. Ми багато робили тестування протягом багатьох років, деякі основні бренди працюють набагато краще, ніж інші. Це можуть бути відмінності у внутрішніх алгоритмах або повна їх відсутність.
Кріс Бансен

4
Дешеві підрядники не піклуються, навіть якщо це в специфікації. Це не відразу видно замовнику, це БУДЬ БУТИ відсутні. Ми говоримо про людей, які продають свинцеві пробки як ІС. Я не чув про карту фірмового імені, на якій не було вирівнювання зносу, але, мабуть, це можливо.
Даррон

@KrisBahnsen чи можете ви детальніше пояснити, що насправді повертає SD-карта, коли виникає помилка, яку не можна відновити? Мене це дуже цікавить. Чи взагалі немає способу виявити цей стан?
Фред Бассет

3
@fredbasset, спосіб зомбі потоку;) Пройшов час, коли я робив будь-яку роботу з SD-карткою. Однак, самі карти IIRC SD фізично повернуть все, що вони відчувають. Деякі з новіших у поєднанні з гідними драйверами можуть виявити помилку вводу-виводу. Однак, можливо, старші карти SD просто повернуть погані дані, які зберігалися в NAND, і назвуть їх хорошими. Хоча, якщо запис не вдається завершити, це поверне помилку вводу-виводу.
Кріс Бансен

23

Це правда! Карти MicroSD містять флеш-чіп NAND, приєднаний до мікроконтролера (ARM), інкапсульованого в чорний пластик. http://www.bunniestudios.com/blog/?p=898 пояснює.

Наприкінці подальшої публікації http://www.bunniestudios.com/blog/?p=918 Бані займає інтеграцію контролера, ймовірно, коштує менше, ніж тестування спалаху до часу.

Цитуючи посібник із продукту для SD-карти SanDisk: "1.9 Вирівнювання зносу. Вирівнювання зносу - це невід'ємна частина функціонального об'єднання стирань SD-картки з використанням пам'яті NAND". Ви можете прочитати все про це у таблиці даних для карти марки SanDisk .


1
Бані Хуан для мене, безумовно, достатньо надійний!
vicatcu

Це добре знати, але я зачекаю на когось, хто зможе просвітлити це питання на основі формальної специфікації цієї технології.
ivarec

2
Digikey показав мені цю марну брошуру SanDisk, коли я намагався шукати таблицю даних. У Wintec і Swissbit радіокомпоненти були краще, і як зазначалося вирівнювання зносу. Чи можете ви зв’язатись із цим таблицею даних, розміщеним у Digikey?
Кевін Вермер

Це набагато краще, ніж старий SanDisk.
joeforker

Wintec не був чудовим, але новий SanDisk - найкращий з групи! Дякуємо за редагування
Кевін Вермер

19

Так, SD / MMC-карти мають контролери, які вирівнюють зношення. Якщо вони цього не зробили, ви можете знищити його за лічені хвилини з неправильними шаблонами запису.

Це фактично проблема деяких вбудованих проектів. Немає жодного способу (мабуть) дізнатися, які сектори можуть бути зрівняні в будь-який час, тому цикл живлення в неправильний час може знищити дані в будь-якій точці карти, незалежно від того, де ви думаєте, що пишете. (не питайте, як я знаю :))

SD-картки повинні використовуватися в системі, яка гарантує чисте відключення системи (або принаймні те, що запис дозволено завершити), інакше втрата даних призведе (зрештою) до результату.

EDIT

Проблема полягає в тому, що процес вирівнювання зносу повністю прихований. Будь-який сектор на диску може бути переміщений у будь-який час (поміняється сторінкою, написаною на сторінці), і якщо в середині цього процесу не вдається живлення, то випадковий сектор може зіпсуватися.

Хоча існують досить безпечні способи здійснити цей крок, це не в якійсь специфікації, тому ви не можете вірити, що карта це зробить. Ви можете протестувати одну карту, щоб вона працювала, то виробник міг би змінити реалізацію, не змінюючи номер деталі, і ви накрутили.

Після тестування, контролер моїх SD-карт взагалі НЕ робить це безпечно.

Я можу заглянути в SD-карту "високої надійності", яку я бачив, рекламовану спеціально для допуску відключення електроенергії ... але тоді вам доведеться довіряти виробнику, щоб це зробити правильно, а я цього не роблю. Я дуже хочу прямого контролю над стираннями сторінок. Я все ще намагаюся розібратися в цьому.


4
Дивіться мою відповідь. Оскільки алгоритми вирівнювання зносу залежать від виробника, вони, можливо, не підтягуються. Хороший алгоритм вирівнювання зносу спочатку перемістить дані, потім позначить ці дані хорошими, потім сміття збирає вихідні дані. Це може бути проблемою на деяких картках, а може бути, не на інших. SD - це дуже некрасивий дизайн, коли ви добираєтесь до його нижньої частини.
Кріс Бансен

2
Так, це стосується норми, коли я стосуюся. Дуже прикро, що такий всюдисущий стандарт зберігання пам’яті був би таким по суті ненадійним.
darron

2
@jpc: Можливо, тоді я зароблю запис у блозі. У мене складається враження, що це розглядається не часто. Я сам не усвідомлював наслідків, поки не пізно. Я боровся з цим, спілкувався з моїм виробником SD-карт тощо. Немає іншого рішення, як мінімізувати час запису. Тепер я пишу у флеш-пам'ять NAND і копіюю на SD раз на день так швидко, як тільки можу. Є SD карти, розроблені таким чином, щоб вони були "стійкими" до випадкових збоїв живлення, але я не впевнений, що навіть вони є повністю надійними.
darron

2
@fred basset Як не дивно, специфікації на промислових картках, схоже, змінилися з моменту написання цієї відповіді. Я був бачити карти MicroSD з гарантією на записи (журнал, я думаю) ... тепер, вони не роблять такого вимоги. Розмовляючи з виробником, вони зараз використовують суперкапки ... але лише компактні флеш-карти мають для них місце. Безпечне виконання речей занадто сильно знижує продуктивність. Вони говорять, щоб якось забезпечити достатню потужність резервного копіювання, щоб завершити запис. Зважаючи на те, наскільки складні сучасні ARM SBC, це справді важко зробити, якщо посилання дизайну постачальника цього не зробить. Жодного, що я знаю.
darron

2
@freq basset Я використовую UBI та UBIFS. Це, здається, працює добре ... У мене вже багато років працює без проблем.
Даррон

12

Будь-який тип SD-карти, що використовує будь-який тип звичайної флеш-пам’яті NAND, повинен буде використовувати певний тип віртуалізації сектору, оскільки жоден звичайний флеш-пристрій NAND не може підтримувати стирання окремих 512-байтових секторів і жоден звичайний флеш-пристрій NAND значного розміру змогли б отримати продуктивність, яка була на порядок навіть незначно прийнятною, якби кожна спроба написати сектор вимагала, щоб пристрій скопіював усі сектори в блоку стирання цього сектора (навіть в оперативну пам’ять), а потім видалить блок і запише всі сектори назад. Більшість методів віртуалізації в секторі по своїй суті дещо вирівнюють зношення. Я б очікував, що найбільша розбіжність між якісними пристроями та нокаутами буде те, наскільки пристрій активно намагається вирівняти рівень між блоками, проти простого використання псевдовипадкового розподілу блоку та сподіваючись, що це дасть прийнятні близькі до однорідних результатів. На практиці я б очікував, що навіть випадкове розподіл / надія на найкраще в більшості випадків буде адекватним.


Дуже добре, що деякі виробники впроваджують рівень «зносу» викликаний самим інтерфейсом NAND та блоком для сектора / сектору для блокування віртуалізації.
Кріс Бансен

1
@KrisBahnsen: Я б очікував, що виробники, які заявляють про вирівнювання зносу, будуть активно контролювати відносний знос різних блоків і вік даних, що містяться в них, і якщо блоки з тривалими даними виявляться в блоках із значно меншим зносом, ніж у середньому, дані з цих блоків будуть переміщені в блоки, які мають більший знос (щоб, швидше за все, мінімізувати майбутній знос цих блоків). Це може поліпшити в 10 разів термін корисного використання пристрою, який на 95% заповнюється даними, які ніколи не змінюються, а решта 5% місця часто вибивається.
supercat

Я погоджуюсь, якщо вони рекламують це, я думаю, що вони зробили б якісь справжні вирівнювання зносу. Я трохи негативно висловлююся з усієї теми, за яку я вибачаюся; Мене кілька разів покусали примхи SD.
Кріс Бансен

1
@KrisBahnsen: Найбільшою проблемою, на мою думку, є модель віртуалізації, яка передбачає лінійну купу послідовно пронумерованих 512-байтових секторів. Можливо, було зручно взаємодіяти з DOS, але це не дуже добре поєднується з обладнанням, яке існує, ні з тим, що хост-програмне забезпечення дійсно хоче. Відкрийте номери блоків до 64 біт і дозвольте їм бути довільно непослідовними, а потім організуйте, щоб файли завжди зберігалися в логічно послідовних блоках. Щоб видалити файл, видаліть його коло блоків.
supercat

2
Це, можливо, найкраща відповідь. Я підозрюю, що так це роблять усі вони. Якщо ви подумаєте про це, немає можливості зробити детермінований вирівнювання зносу за допомогою будь-якого справді витонченого алгоритму, оскільки саме історію зносу потрібно було б зберігати десь на одній і тій же картці, і ця частина вийде з ладу першою. Випадкове вирівнювання є єдиною практичною можливістю. Я не переконаний, що SSD є розумнішими. Вони можуть просто мати більше замінних буферів, хоча, безумовно, можливо, що вони зберігають дуже грубу (і, отже, нечасто оновлену) інформацію про зношування.
Німрод

7

Sandisk має білий документ, який пояснює логіку вирівнювання зносу на їх картах, і він надає оцінку життєдіяльності картки за рядом сценаріїв. Короткий підсумок: якщо ви не забите карту без перерви, вона триватиме десятиліттями.


Посилання мертве, а вміст, здається, викреслено - тому що він виявив занадто багато, можливо?
Куадуе

6
@Cuadue Посилання доступне. На всякий
Lekensteyn

2

Цікаво зазначити, що незважаючи на це, багато пристроїв пошкоджують карти SD та microSD, особливо з високою щільністю, якщо акумулятор розряджений або телефон виходить з ладу / вимикається / тощо. Я підозрюю, що проблема полягає в недостатньому регулюванні подачі напруги, оскільки це добре відомо на деяких картках (кашель Ad t / кашель), що призводить до явища нечитабельної карти на певних зовнішніх читачах, але добре працює на мікро різноманітті, що постачається деякими комп'ютерні магазини.

На даний момент я маю відновлення картки з такою помилкою, як не дивно, більшість даних підлягає відновленню, але деякі сектори, хоча це не змінюється в кожній спробі. Чи може бути винна сама вирівнювання зносу? (так, пробували кілька читачів, одна і та ж вина!)


0

Також мав певний успіх "занурення" карт зомбі, тобто тих, які не завершать формат або є лише для читання. Працює лише з невеликим відсотком, але вони набагато чутливіші, ніж більшість "офіційних" вказівок до цього ефекту.

Оброблена таким чином тестова картка тривала цілі чотири місяці, перш ніж знову вийти з ладу, якби не пристрій, яким воно було використано для подачі шумної напруги, життя могло б бути довше.


1
Під "нукінг" ви маєте на увазі покласти його в мікрохвильову піч? При якій потужності і як довго?
0x6d64

Ні, ні :-) Також навіщо це робити, коли блискучі виділення (РЧ) матимуть аналогічний ефект і становитимуться набагато менш небезпечними, ніж метод, який я застосовував? Виявляється, що карти USD набагато чутливіші через відсутність металевої оболонки з одного боку.
Conundrum5642Z

Я не можу підтвердити або заперечити, що нукінг стосується використання "гаджета" 5642 + HVPS з юридичних причин. Однак він працював неодноразово, і методика тепер відома, як я публікував її на HaD тощо.
Conundrum
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.