4

Что произойдет, если SDHC-карта получит ошибку записи (поврежденная ячейка / поврежденный сектор)?

Будет ли вся карта непригодной для использования (к сожалению, все данные, записанные в этот сектор сейчас и в будущем, будут потеряны)? Или перезаписать сектор (флэш-память повреждена при записи, поэтому, возможно, есть какая-либо функция, позволяющая проверить, был ли сектор записан успешно), в другой и пометить как неисправный как непригодный, что будет рассматриваться как уменьшение емкости, но потеря данных не будет.

Я должен провести некоторое исследование о SD-картах на бездисковых компьютерах.

2 ответа2

2

Как правило, SD-карты работают с файловой системой FAT. Это обнаружит и пометит / пометит поврежденные сектора, поэтому в результате данные не будут потеряны, но объем доступного места на карте будет немного уменьшен. Это не идеально, конечно. Некоторые новые карты имеют встроенный код исправления ошибок (ECC), который выполняет аналогичную работу на более низком уровне, поэтому теоретически это должно снизить вероятность потери информации при записи на карту. Это все еще возможно, просто менее вероятно.

2

Флэш-память NAND работает путем предоставления нескольких "eraseblocks" - каждый "eraseblock" имеет несколько "страниц". Как правило, вы смотрите на стираемые блоки размером 128 КБ, разделенные на 64 страницы по 2 КБ. Каждая страница может быть записана, изменяя биты от 1 до 0. Если вы хотите изменить какие-либо биты обратно с 0 на 1, вы должны выполнить команду стирания всего блока стирания, который сбрасывает все биты на 1 (если блок не изношен).

Запись не идеальна, и некоторые биты могут не измениться с 1 на 0 или перевернуться сами по себе.

Существует также "вне области", или дополнительная страница, для каждого eraseblock. Там могут быть написаны коды ECC, и это то, что используется для флэш-памяти SLC . Для флэш-памяти MLC они используют коды BCH, которые могут восстанавливать больше битов.

Внутренне так все и работает. SD-карты не обеспечивают доступ к NAND-сырью, но проходят через внутренний микроконтроллер, который отвечает за выравнивание износа и все такое хорошее. Хост-устройство никогда не видит необработанный NAND, а только блочное устройство. Но SD использует ECC или BCH AFAIK.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .