реклама на сайте
подробности

 
 
> SD-card: выход из строя, не определяется компьютером, Выработан ресурс? как проверить?
Ruslan1
сообщение May 24 2018, 09:08
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Здравствуйте!

В одном из устройств произошел массовый выход из строя SD-карточек (8 из 10 тестируемых), причем странно себя ведут:
в устройстве (интерфейс SDIO, софт на базе FatFs)- карточка детектируется, файлы с них считываются корректно, но при попытке записи выдает ошибку.
В компьютере- карточка вообще не детектируется. (проверено на разных компьютерах с разными ридерами).

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

Главный вопрос: как можно загнать карточку в такое "окирпичивание?"

Похоже на выработку ресурса: проблемы на всех карточках начались практически одновременно с разницей в 1-2 дня, после примерно 2 месяцев работы.
Как проверить эту версию? Есть ли какие-то средства чтобы проверить внутреннее здоровье SD-карточки, вроде того как это на SSD делается?

Ну и еще вопрос: Почему в устройстве эти SD карточки читаются (но не пишуться), а в компьютере даже не детектируется?

Каким софтом их поковырять? я кроме WinHex и не помню ничего приличного для внутреннего ковыряния дисков.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
k155la3
сообщение May 30 2018, 10:22
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Маловероятно, конечно, но.
- Нет ли "просадки" питания на карту в момент записи и не находится ли оно на пороге работоспособности по напряжению.
- Соблюдаются ли временные диаграммы (если таковые имеются) при записи.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение May 31 2018, 08:48
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Я понимаю, что внутренние используемые механизмы в карточке могут значительно увеличить время жизни карточки. Но мне нужно понять на что минимально рассчитывать, как это оценить.


Вопрос №1
как можно посчитать степень износа, если предположить что :
размер стираемого блока-128К
размер используемого диска- 16GB, то есть 125К блоков
время жизни блока - 1000 стираний

Тогда в худшем случае (на каждое обновление переносится целый блок):
количество обновлений = 125К блоков * 1000 стираний = 125M = 125e6

при количестве обновлений 1 в секунду: получаем время жизни карточки 125e6 секунд, это 1446 дней.

Это правильная оценка?
-------------------------------------------

Вопрос: №2
Что именно я должен считать обновлением, чтобы определить насколько сильно я изнашиваю эту карту?

Ведь нельзя считать таким обновлением просто добавление информации на то место сектора/страницы/блока, которое до этого было 0xFF ?

Я считаю, что обновление- это изменение, которое требует стирания блока. Я прав?
(Хороший пример такого обновления- это запись в FAT при изменении файла)
-------------------------------------------

Вопрос №3:
А как контроллер Флеш поймет, что данные в хвосте блока это мусор, а не данные, которые нужно переносить? Видимо, никак. И тогда получается, что на каждую запись сектора карточка будет тащить целый новый блок?
Как этого можно избежать? Почистить неиспользуемые сектора в FF? Дать команду стирания чего-нибудь там?
Есть какой-то способ помочь карточке, иначе ведь совсем катастрофа с ресурсом?

У меня, кстати, получается именно эта проблема: я писал по 40 секторов в секунду. Если предположить что контроллер карточки каждый раз занимался переносом блоков, то получаю ресурс 36 дней, что очень похоже на мой случай (у меня вышло немного больше, но может и ресурс блока немного больше чем 1К стираний).
-------------------------------------------

Вопрос №4:
Кэширование и запись на карточку большими кусками, скажем, 128К, поможет?
Upd: поиск помог найти вот это, буду копать туда:
Цитата
Alex11, Jul 14 2014, 22:27
Мы довольно много экспериментировали с SD в разных режимах. Во-первых, там есть команда мультисекторной записи. При этом небольшая пауза возникает только после записи многих секторов (но не факт, что после всех, запрошенных в команде). Кроме того, особенно при работе с не свежеформатированной карточкой, у нее возникают паузы до 0.5 сек на внутренние нужды - стирание блоков и переписывание частично заполненных. Реально помогает только запись блоками по 64 - 128 кБ в зависимости от карты.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 31 2018, 11:29
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Ruslan1 @ May 31 2018, 11:48) *
(Хороший пример такого обновления- это запись в FAT при изменении файла)

Не факт.
Почему Вы думаете что переназначение по износу делается на уровне блоков стирания, а не на уровне страниц?
Имхо: вполне возможно что карта имеет массив логических страниц, переназначаемых на физические страницы. Когда вы даёте команду "запись в страницу" и контроллер определяет что "поверх" запись выполнить нельзя, то он будет метить физ.страницу, связанную с данной логической как "грязную". И назначать для данной физ.страницы пустую (и неназначенную) страницу внутри какого либо блока. И стираться блок будет только когда всего его страницы "грязные". Естественно тогда необходима или периодическая или по необходимости "сборка мусора", когда блоки содержащие мало физ.страниц связанных с лог.страницами, и много "грязных" страниц и ни одной пустой: все связанные страницы будут перемещены в свободные страницы другого блока, а данный блок будет стёрт.
Тогда при записи FAT пишутся и изнашиваются только занимаемые ей страницы.

Цитата(Ruslan1 @ May 31 2018, 11:48) *
А как контроллер Флеш поймет, что данные в хвосте блока это мусор, а не данные, которые нужно переносить? Видимо, никак.

Какой "хвост блока"? Блок весь разбит на страницы, чтение/запись на карту выполняется страницами, а значит для карты всё что внутри страниц - полезные данные. И размер блока ведь кратен странице, так что "хвоста" быть не может.

Цитата(Ruslan1 @ May 31 2018, 11:48) *
Почистить неиспользуемые сектора в FF?

Откуда Вы знаете какое начальное состояние ячеек флешь? Может там FF, а может 00.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение May 31 2018, 12:04
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(jcxz @ May 31 2018, 13:29) *
Почему Вы думаете что переназначение по износу делается на уровне блоков стирания, а не на уровне страниц?

Это только предположение. Просто если оно верно, то мои теоретические расчеты похожи на мою реальность (40 записей секторов в секунду убили флеш за пару месяцев.
Если говорить про страницу, а не про стираемый блок страниц, то ресурс должен быть примерно в сотню раз больше, что не подтверждается моей практикой.

Я с Вами полностью согласен, используемые алгоритмы сложнее (очень неплохо несколько вариантов описаны в упомянутой мною статье). Я просто хочу хоть как-то прикинуть, на сколько чего я должен выйти по записям, если мне нужно, например, 3 года жизни этой карточки.
Я думаю, что самым правильным будет если я буду считать число "длинных записей" (многосекторная запись), при условии что эта запись не выходит за границы страницы или стираемого блока (нужное подчеркнуть).

Кстати, наконец-то проверил карточки на скорость. Получил скорость записи около 31 МБ/c и чтения 73 МБ/с, вроде бы неплохо (нужно софтинку менять, у этой экран под малые скорости заточен):
Прикрепленное изображение
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ruslan1   SD-card: выход из строя, не определяется компьютером   May 24 2018, 09:08
- - jcxz   Цитата(Ruslan1 @ May 24 2018, 12:08) Есть...   May 24 2018, 11:17
|- - Ruslan1   Цитата(jcxz @ May 24 2018, 13:17) А в чём...   May 24 2018, 13:49
|- - Ruslan1   Скажите пожалуйста, какие могут быть варианты для ...   May 29 2018, 15:56
|- - aaarrr   Цитата(Ruslan1 @ May 29 2018, 18:56) Как ...   May 29 2018, 16:25
|- - jcxz   Цитата(Ruslan1 @ May 29 2018, 18:56) Если...   May 29 2018, 20:07
- - aaarrr   Цитата(Ruslan1 @ May 24 2018, 12:08) Глав...   May 29 2018, 20:46
|- - Ruslan1   Цитата(aaarrr @ May 29 2018, 22:46) Вообщ...   May 30 2018, 07:52
|- - aaarrr   Цитата(Ruslan1 @ May 30 2018, 10:52) Сдел...   May 30 2018, 08:22
||- - jcxz   Цитата(aaarrr @ May 30 2018, 11:22) Нет т...   May 30 2018, 08:43
||- - aaarrr   Цитата(jcxz @ May 30 2018, 11:43) Тогда л...   May 30 2018, 08:53
||- - Ruslan1   Точно. Сильно стормозил. Флеш-то про сектора не зн...   May 30 2018, 09:30
|- - HardEgor   Цитата(Ruslan1 @ May 30 2018, 14:52) Про ...   May 30 2018, 09:16
- - Alex11   У современных карточек снаружи не нужно следить за...   May 30 2018, 08:19
- - controller_m30   Цитата(Ruslan1 @ May 31 2018, 11:48) Вопр...   May 31 2018, 17:13
- - aaarrr   Цитата(controller_m30 @ May 31 2018, 20:1...   May 31 2018, 18:14
- - jcxz   Цитата(aaarrr @ May 31 2018, 21:14) но ло...   May 31 2018, 19:42
|- - aaarrr   Цитата(jcxz @ May 31 2018, 22:42) ...вмес...   May 31 2018, 20:02
|- - Ruslan1   Цитата(jcxz @ May 31 2018, 21:42) А может...   Jun 1 2018, 09:18
|- - jcxz   Цитата(Ruslan1 @ Jun 1 2018, 12:18) Дейст...   Jun 1 2018, 09:47
|- - controller_m30   Цитата(Ruslan1 @ Jun 1 2018, 12:18) С пус...   Jun 1 2018, 12:20
- - controller_m30   Цитата(aaarrr @ May 31 2018, 21:14) Думае...   May 31 2018, 21:25


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2025 - 07:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.0146 секунд с 7
ELECTRONIX ©2004-2016