billidean 0 6 сентября, 2013 Опубликовано 6 сентября, 2013 · Жалоба Добрый день всем. Недавно занимался разработкой контроллера для NADN-Flash, при этом стояла задача минимальной потери данных вследствие "битости" ячеек. Т.е. пришлось реализовывать алгоритм контроля целостности используемых ячеек флэшки. В результате получился довольно серъезный алгоритм. Сейчас стоит задача использования обычной флэшки(её еще предстоит выбрать) для хранения каких-то данных, и будет нехорошо, если часть данных пропадет. На сколько мне известно у флэшек периодически бъются ячейки, и после этого с ними нельзя работать. Вопрос к тем, кто работал с флэшками в подобных проектах: Вы также занимались контролем целостности используемых ячеек флэшки? Неужели и здесь придется городить эту немалую систему контроля? З.Ы.: с Flash-памятями мало знаком, буду благодарен за полезные ссылки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corner 0 6 сентября, 2013 Опубликовано 6 сентября, 2013 · Жалоба Добрый день всем. Недавно занимался разработкой контроллера для NADN-Flash, при этом стояла задача минимальной потери данных вследствие "битости" ячеек. Т.е. пришлось реализовывать алгоритм контроля целостности используемых ячеек флэшки. В результате получился довольно серъезный алгоритм. Сейчас стоит задача использования обычной флэшки(её еще предстоит выбрать) для хранения каких-то данных, и будет нехорошо, если часть данных пропадет. На сколько мне известно у флэшек периодически бъются ячейки, и после этого с ними нельзя работать. Вопрос к тем, кто работал с флэшками в подобных проектах: Вы также занимались контролем целостности используемых ячеек флэшки? Неужели и здесь придется городить эту немалую систему контроля? З.Ы.: с Flash-памятями мало знаком, буду благодарен за полезные ссылки. Обычно если сектор побился, его блочат целиком и используют следующий. Список битых секторов обычно пишут в несколько секторов. Это так называемая "неперемещаемая память". Блочить отдельные ячейки это очень странно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 9 сентября, 2013 Опубликовано 9 сентября, 2013 · Жалоба Да само собой не отдельные ячейки блокирую, а страницу. И вопрос вообще не про это, а про то: кто как работает с флэшками??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 12 сентября, 2013 Опубликовано 12 сентября, 2013 · Жалоба Народ, 160 просмотров, и ни одного посетителя, кто работал с флэш-памятью??? Что успел накопать: 1. NAND - память применяется при работе с большими объемами данных, имеет малую стабильность сохранности ячеек, поэтому необходим дополнительный контроллер, завязанный на контроль данных. Имеет большие времена записи/чтения/стирания по причине больших блоков/секторов. Также довольно небольшой ресурс около 10,000 записей. 2. NOR - довольно быстрая память, имеет не большие блоки для записи/чтения, НО имеет относительно малые объемы, из-за чего для больших объемов данных придется ставить несколько корпусов. А самое интересное, что я вычитал на эту память - она не нуждается в контроле битых ячеек!!! Вот эту последнюю информацию я не понимаю, ведь ресурс у них тоже ограничен, около 100,000 записей. (Кто что может сказать по этому вопросу, прошу высказаться, чем больше инфы, тем лучше!!!) Прошу поделиться опытом использования тех или иных флэшек для хранения/перезаписи данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 12 сентября, 2013 Опубликовано 12 сентября, 2013 · Жалоба Вот эту последнюю информацию я не понимаю, ведь ресурс у них тоже ограничен, около 100,000 записей. Просто NOR крайне редко используется для оперативного хранения информации в силу медленного стирания (2-3 порядка по сравнению с NAND), поэтому ресурс просто не будет выбран. Там, где NOR используется в качестве оперативного хранилища, используют и wear leveling и контроль целостности данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 12 сентября, 2013 Опубликовано 12 сентября, 2013 · Жалоба Ресурс NAND очень различается в зависимости от типа. SLC, которые хранят по одному биту в ячейке, выдерживают тоже сто тысяч записей. Сектор там 528 байт. Кажется туда помещается 512 байт, завёрнутые в код Рида-Соломона, исправляющий две ошибки. Как мы конфигурили Рида-Соломона под чётное число символов - не помню, кажется извращались с длиной символа. Поэтому если вам не надо делать SSD (то есть иметь неограниченный лимит записи) то вероятно вы без перемещения секторов сможете обойтись. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 13 сентября, 2013 Опубликовано 13 сентября, 2013 · Жалоба Спасибо за отклики. По SLC/MLC я прочитал в Вики. Далее по существу моей задачи. Мне необходимо постоянно писать данные в энергонезависимую память, т.е., как сказал aaarrr, использовать память в качестве оперативного хранилища. Объем, который должен быть сохранен после сброса питания, не очень большой, около 10МБайт. Почитав в инете, я понял, что выбирать придется между NAND с однобитной структурой(т.е. SLC), NOR и FRAM. Кстати, последняя по своим характеристикам очень даже хороша, практически неограниченный ресурс, высокое быстродействие. НО очень малые объемы на одном кристалле. Вывод: при использовании любого из этих типов необходимо городить контроллер памяти для анализа целостности данных, что очень огорчает, так как чем сложнее система, тем сложнее её отладка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Enthusiast 0 13 сентября, 2013 Опубликовано 13 сентября, 2013 (изменено) · Жалоба Мне необходимо постоянно писать данные в энергонезависимую память, т.е., как сказал aaarrr, использовать память в качестве оперативного хранилища. Объем, который должен быть сохранен после сброса питания, не очень большой, около 10МБайт. Почитав в инете, я понял, что выбирать придется между NAND с однобитной структурой(т.е. SLC), NOR и FRAM. Кстати, последняя по своим характеристикам очень даже хороша, практически неограниченный ресурс, высокое быстродействие. НО очень малые объемы на одном кристалле. Вывод: при использовании любого из этих типов необходимо городить контроллер памяти для анализа целостности данных, что очень огорчает, так как чем сложнее система, тем сложнее её отладка. Если необходимо записывать всего 10 МБ данных, то я бы использовал NOR-флэш: предсказуемое и постоянное время записи в ячейку памяти; ячейки памяти не портятся так быстро как у NAND-флэшки, поэтому проверять целостность данных нужды нет; алгоритм записи в ячейку памяти довольно простой; на рынке присутствует несколько производителей совместимых по выводам микросхем. Успехов! Изменено 13 сентября, 2013 пользователем Enthusiast Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 13 сентября, 2013 Опубликовано 13 сентября, 2013 · Жалоба Если необходимо записывать всего 10 МБ данных, то я бы использовал NOR-флэш: предсказуемое и постоянное время записи в ячейку памяти; ячейки памяти не портятся так быстро как у NAND-флэшки, поэтому проверять целостность данных нужды нет; алгоритм записи в ячейку памяти довольно простой; на рынке присутствует несколько производителей совместимых по выводам микросхем. Успехов! Спасибо за совет. Посмотрю повнимательней в этом направлении. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 16 сентября, 2013 Опубликовано 16 сентября, 2013 · Жалоба Я бы ещё посмотрел PRAM - она уже бывает подходящих вам размеров, и выдерживает миллион перезаписей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ADA007 0 16 сентября, 2013 Опубликовано 16 сентября, 2013 · Жалоба ячейки памяти не портятся так быстро как у NAND-флэшки.... Но ведь ячейки памяти не портятся просто так, а портятся в зависимости от количества перезаписей...т.е. все зависит от частоты перезаписи данной информации...туту уже вопрос к ТС..насколько часто ему надо скидывать эти 10 Мб...если один раз - то и проверять ничего не надо, как мне кажется.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 17 сентября, 2013 Опубликовано 17 сентября, 2013 · Жалоба Но ведь ячейки памяти не портятся просто так, а портятся в зависимости от количества перезаписей...т.е. все зависит от частоты перезаписи данной информации...туту уже вопрос к ТС..насколько часто ему надо скидывать эти 10 Мб...если один раз - то и проверять ничего не надо, как мне кажется.... При работе со страницами/блоками перед записью нужно стереть записываемую область памяти, а стирание+запись это и есть "нехорошие" факторы, влияющие на долговечность ячейки. Для моей же задачи необходимо скидывать информацию может всего один раз, но вот перезаписывать нужно постоянно. Я конечно пока не расчитываю общее время жизни флэшки в моем проекте, т.е. частоту записей в секунду/минуту/час; пока я разбираюсь с вариантами выбора в целом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MSL 0 17 сентября, 2013 Опубликовано 17 сентября, 2013 · Жалоба При работе со страницами/блоками перед записью нужно стереть записываемую область памяти, а стирание+запись это и есть "нехорошие" факторы, влияющие на долговечность ячейки. Для моей же задачи необходимо скидывать информацию может всего один раз, но вот перезаписывать нужно постоянно. Я конечно пока не расчитываю общее время жизни флэшки в моем проекте, т.е. частоту записей в секунду/минуту/час; пока я разбираюсь с вариантами выбора в целом. Если вы выбираете флэш, то зачем вам весь этот цирк. Используйте нанд с eMMC интерфейсом, нужно будет вам две команды - читать и писать, всем остальным за вас будет заниматься контроллер... пример. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться