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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> NANDFlash + микроконтроллер - как бороться с битыми секторами?
aaarrr
сообщение May 18 2016, 20:30
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ May 18 2016, 21:26) *
Неужто такое именно с параллельными FLASH происходит???

Именно. И чем тоньше технологические нормы и больше объем, тем большие требования предъявляются к механизму коррекции - до 100 бит/кБайт для MLC.
Go to the top of the page
 
+Quote Post
yanvasiij
сообщение May 19 2016, 04:02
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Цитата(jcxz @ May 18 2016, 23:26) *
...
Это решается самой ФС.
...


Что-то не совсем пойму, как ФС без нижнего уровня может решать где битый блок, а где нет, когда она понятия не имеет о том, с какой памятью она работает? В yaffs этот механизм реализован и специально заточен под NANDFlash, эта ФС по-сути и не умеет другие флешки, поэтому она наперед знает про битые блоки и умеет их.
Go to the top of the page
 
+Quote Post
sonycman
сообщение May 23 2016, 09:22
Сообщение #18


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(jcxz @ May 18 2016, 22:26) *
В обычных SD размер стирания тоже как правило гораздо больше размера блока записи. И ничего - работает FatFS.
Хотя не разбирался как там это реализовано.

Правильно, потому что стиранием, бэдами и wear-leveling в SD карте занимается встроенный контроллер.
А FatFS делает только Read() и Write().

Цитата(jcxz @ May 18 2016, 22:26) *
Неужто такое именно с параллельными FLASH происходит???

А в SPI Flash разве вообще бэды бывают?
Имхо - nand flash и spi flash это разные вещи...
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 23 2016, 09:35
Сообщение #19


Гуру
******

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



Цитата(sonycman @ May 23 2016, 15:22) *
А в SPI Flash разве вообще бэды бывают?
Имхо - nand flash и spi flash это разные вещи...

А в чём отличие (на физ. уровне ячеек хранения)?
Раз указано максимальное кол-во циклов стирания - значит могут быть и бэды.
Go to the top of the page
 
+Quote Post
sonycman
сообщение May 23 2016, 09:44
Сообщение #20


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(jcxz @ May 23 2016, 13:35) *
А в чём отличие (на физ. уровне ячеек хранения)?
Раз указано максимальное кол-во циклов стирания - значит могут быть и бэды.

Отличие в разных технологиях.
Битые ячейки в nand - норма и неизбежность, а в spi flash - признак износа и исчерпания ресурса?
Смотря какая флеш, наверное.
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение May 23 2016, 17:10
Сообщение #21


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



У меня похожая задача, только нужно реализовать на ПЛИС.
Вопросец такой: а то, что первый блок NAND флешки всегда не битый - это стандарт или фича отдельного производителя? Например, микрон это в даташите не указывает.


--------------------
Go to the top of the page
 
+Quote Post
_3m
сообщение May 23 2016, 18:05
Сообщение #22


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(_Ivan_33 @ May 23 2016, 20:10) *
Вопросец такой: а то, что первый блок NAND флешки всегда не битый - это стандарт или фича отдельного производителя? Например, микрон это в даташите не указывает.

Первый блок никак не стандартизирован. Гарантия исправности первого блока - инициатива части производителей в некоторых моделях чипов.
Go to the top of the page
 
+Quote Post
sonycman
сообщение May 24 2016, 03:26
Сообщение #23


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



А вот по поводу ECC (Error Correction Code).
Как правило - NAND и ECC идут всегда рядом.

Интересуют исходники энкодера и декодера для ECC по Хафману (1 бит) и Риду-Соломону (4 бита).
Особенно совместимые с энкодером контроллера NAND процессора OMAP-L137.
Если вдруг кто занимался...

Для четырехбитного варианта хочу попробовать использовать библиотеку Schifra.
Go to the top of the page
 
+Quote Post
yanvasiij
сообщение Jun 27 2016, 04:00
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Удалось мне поднять yaffs на моем STM32F429. Единственное эта файловая система требует много памяти и выделяет себе эту память с помощью malloc. Поэтому пришлось выделить большую кучу и разместить ее во внешней SDRAM. Но в целом работает, бэды отлавливает.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jun 27 2016, 19:26
Сообщение #25


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



А как решили хранить таблицу бэдов?
Какой используете код коррекции ошибок?

И сколько, к примеру, оперативной памяти требуется файловой системе для работы с разделом в 16 мегабайт (как я понял вы используете NAND128?).
Go to the top of the page
 
+Quote Post
yanvasiij
сообщение Jun 28 2016, 04:33
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Цитата(sonycman @ Jun 28 2016, 00:26) *
А как решили хранить таблицу бэдов?


Если поднять YAFFS, то мне нужно этим заниматься - это делает за меня файловая система. Бэды она учитывает размещая в spare area флешки данные отличные от FF. Определяет бэдовый ли блок по результатам записи.

Цитата
Какой используете код коррекции ошибок?


Коррекция ошибок ECC по Хаффману. Опять же это реализовано в самой файловой системе.

Цитата
И сколько, к примеру, оперативной памяти требуется файловой системе для работы с разделом в 16 мегабайт (как я понял вы используете NAND128?).


Да я работаю NAND128. Мне понадобилось порядка 30 kB в общей сложности.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 28 2016, 05:00
Сообщение #27


Гуру
******

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



Цитата(yanvasiij @ Jun 28 2016, 10:33) *
Коррекция ошибок ECC по Хаффману. Опять же это реализовано в самой файловой системе.

Хм.. А какой-же тогда размер секторов в этой NAND-флешь? Получается - не равный степени двойки?
Go to the top of the page
 
+Quote Post
yanvasiij
сообщение Jun 28 2016, 05:15
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Сектор 16 kB без учета spare.

Я хотел сказать размер блока 16 k без учета spare. 1024 блока по 32 страницы, в каждой странице 512 байт данных и еще 16 байт дополнительная область (spare area).
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 28 2016, 06:04
Сообщение #29


Гуру
******

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



Цитата(yanvasiij @ Jun 28 2016, 11:15) *
Сектор 16 kB без учета spare.
Я хотел сказать размер блока 16 k без учета spare. 1024 блока по 32 страницы, в каждой странице 512 байт данных и еще 16 байт дополнительная область (spare area).

Ясно. Значит в этой spare-area и хранится избыточная контрольная информация.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Jun 28 2016, 06:51
Сообщение #30


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

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата(jcxz @ Jun 28 2016, 08:00) *
Хм.. А какой-же тогда размер секторов в этой NAND-флешь? Получается - не равный степени двойки?

Полистайте на досуге любой (!) даташит на параллельную NAND.
Там размер страницы 528, 2112 и прочие "некратные".


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 15th June 2025 - 23:55
Рейтинг@Mail.ru


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