|
Надёжность NAND flash |
|
|
|
 |
Ответов
|
Sep 8 2005, 16:23
|

Участник

Группа: Свой
Сообщений: 55
Регистрация: 9-04-05
Из: г. Минск
Пользователь №: 3 984

|
Цитата(bmf @ Sep 8 2005, 10:07) c YAFFS работал скажу про недостатки: она не доделана (по тексту много замечаний) и больше не развивается (замещена пользу YAFFS2) сразу расчитайте сколько надо RAM - для 128M NAND при кластере в 8KB - 128K, а в оригинале кажется для 2K нужно - 512K это минимум Время запуска (ускоренная вычитка всех областей) для 128M - около 4sec Непредсказуемые задержки в процессе выполнения (при накоплении данных в gabrage collection происходит их длительная очистка и перемещение) для YAFFS2 структуры в памяти и требовательность к ресурсам еще больше соответствнно для 512M NAND - все в 4 раза больше и дольше единственное преимущество это нечувствительность к пропаданию питания как по мне - она (что YAFFS, что YAFFS2) только для ресурсоемких систем, а по времени старта вообще сомнительна для embedded Принцип работы - просто загрузить всю информацию о всех секторах и блоках в RAM и работать с ней, поэтому и такая ресурсоемкость и монстровитость. С YAFFS2 (direct-mode, ARM CPU 90 Mhz) работаю и сейчас (раньше использовал портированную jffs - это небо и земля) и не совсем с Вами согласен. 1. Расход памяти (RAM) - зависит от конфигурирования (исходных параметров). 2. Gabrage collection - медленноват для NOR-flash, для NAND - очистка сектора (страницы) достаточно быстра (~ 2 ms) и тормозов практически нет 3. перемещение - в этом же суть ФС для флеш-памяти! Благодаря этому, сохраняется ресурс секторов на запись - нет их быстрого "убивания" (идет равномерное использование)! 4. Для обеспечения быстродействия - разумный компромис между RAM и Flash диском (используя все ту же YAFFS2). 5. Приблизительно - у меня в embedde-system - 3 раздела/диска (1 RAM, и 2 - на разных чипах - flash) темп поступления инфо - не менее 500-800 байт в 20-100 мс, все прекрасно (размер конечного файла - не менее 6-8 МБ + 30-40 статичных БД/ИФ файлов, из к-рых читается инфа) 6. Небольшую чистку исх. файлов YAFFS2 можно сделать - с точки зрения оптимизации. Нормальный расход флеш (мой опыт): максим. использование объема - не более 60-70% (т.е., если, например, файлы совокупно будут использовать до 1 МБ, желательна флеш объемом не менее 1.6 МБ) P.S. 1. Для NAND - приведено время очистки блока, а не страницы. Например, если размер страницы 2К, то размер блока м.б. 128К - т.е. 64 страницы, и время очистки блока - порядка 2 миллисекунд 2. YAFFS работает с NAND со страницами в 512 байт (+ 16), YAFFS2 - с NAND со страницами в 2К
|
|
|
|
|
Sep 9 2005, 08:08
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 6-01-05
Из: Украина
Пользователь №: 1 831

|
Цитата(si21 @ Sep 8 2005, 19:23) Расход памяти (RAM) - зависит от конфигурирования (исходных параметров). Особо не наконфигурируешь - на каждый сектор NADN надо как минимум 30 байт (точно не помню) RAM для хранения служебной информации. Проще сказать так, если у вас OS типа Linux (и соответственно камень), то и эта файловая система для вас. Для себя я выход нашел в следующем. Информация всегда пишется по кольцу и cтарая просто замещается новой. Логическая целостность обеспечивается link, прописанными в spare. При таком допущении требования к дополнительной памяти, сложности и объема кода, быстродействие всей системы получается более чем на порядок! Время старта - доли секунды. И все эти навороты полноценной файловой системы мне не к чему, т.к. задача архивирования актуальной информации решена, при полном использовании специфики NAND (одноктартное программирование, исправление однобитовых ошибок, учет битых блоков, стирание целым блоком).
|
|
|
|
|
Sep 9 2005, 11:16
|

Участник

Группа: Свой
Сообщений: 55
Регистрация: 9-04-05
Из: г. Минск
Пользователь №: 3 984

|
Цитата(bmf @ Sep 9 2005, 10:08) Особо не наконфигурируешь - на каждый сектор NADN надо как минимум 30 байт (точно не помню) RAM для хранения служебной информации. Проще сказать так, если у вас OS типа Linux (и соответственно камень), то и эта файловая система для вас. Для себя я выход нашел в следующем. Информация всегда пишется по кольцу и cтарая просто замещается новой. Логическая целостность обеспечивается link, прописанными в spare. При таком допущении требования к дополнительной памяти, сложности и объема кода, быстродействие всей системы получается более чем на порядок! Время старта - доли секунды. И все эти навороты полноценной файловой системы мне не к чему, т.к. задача архивирования актуальной информации решена, при полном использовании специфики NAND (одноктартное программирование, исправление однобитовых ошибок, учет битых блоков, стирание целым блоком). Да нет, как раз Linux и не пользую - слишком много гробится времени в переключателе задач/обработке пр-ий и относительно много RAM жрет. Здесь меня пока выручает uCOS (минимальные накладные расходы и время отклика). В YAFFS1/2 как раз и нет "наворотов полноценной файловой системы" - т.к. собственно сам интерфейс файловой системы (для direct-mode) реализован буквально в одном примитивном файле с набором вызовов к ядру ФС, но тем не менее, реализовано все, что требуется - например, я работаю с полнофункциональной СУБД собственной разработки ("минималистская" реализация) и не испытываю никаких ограничений. Но, естественно, это мой опыт и мое мнение
|
|
|
|
|
Sep 9 2005, 12:01
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 6-01-05
Из: Украина
Пользователь №: 1 831

|
Цитата(si21 @ Sep 9 2005, 14:16) Да нет, как раз Linux и не пользую Так у вас проц нехилый и видно NAND маленкая. А в других (не 32-x разрядных) работа с выделяемой heap памятью (а вся YAFFS интенсивно использует malloc), будет проблематична. И если heap > 64K ? При использовании YAFFS это так. Например 128M/2048= 64.536 секторов, на каждый сетор надо хранить как минимум link 4 байта + еще флаги. Хотя конечно в перспективе, нужно просто переходить на более мощные процы и не заморачиваться с этим.
|
|
|
|
|
Sep 9 2005, 13:11
|

Участник

Группа: Свой
Сообщений: 55
Регистрация: 9-04-05
Из: г. Минск
Пользователь №: 3 984

|
Цитата(bmf @ Sep 9 2005, 14:01) Так у вас проц нехилый и видно NAND маленкая. А в других (не 32-x разрядных) работа с выделяемой heap памятью (а вся YAFFS интенсивно использует malloc), будет проблематична. И если heap > 64K ? При использовании YAFFS это так. Например 128M/2048= 64.536 секторов, на каждый сетор надо хранить как минимум link 4 байта + еще флаги. Хотя конечно в перспективе, нужно просто переходить на более мощные процы и не заморачиваться с этим. Процессор по нынешним понятиям - середнячек  и загружен при работе до 70% (больше не даю, т.к. должен обязательно быть запас на обработку пиковых ситуаций), а в отношении более мощных - Вы правы, ведь сейчас это уже стоит "копейки" и новые МК по энергетике хороши. P.S. Просто я достаточно долго выбирал ФС, прошел и jffs, и jffs2 (были и другие в течение 5 лет) - в результате с точки зрения ресурсов/надежности/удобства - для меня это лучший выбор
|
|
|
|
Сообщений в этой теме
Серокой Надёжность NAND flash Aug 29 2005, 09:53 bmf Только начал использовать и статистики по надежнос... Aug 29 2005, 12:32 Серокой Спасибо!
Я подключаю к ПЛИС флешку, поэтому мн... Aug 29 2005, 12:58 bmf spare никак не отличается от обычной области. Можн... Aug 29 2005, 14:03 vvvvv На мой взгляд подключить к NAND MSP430 а ПЛИСину у... Aug 29 2005, 15:27 Серокой bmf, спасибо... Буду думать, просто в этой флеши о... Aug 29 2005, 15:54 si21 Если потребуется файловая система для NAND-флеш, н... Sep 5 2005, 18:18 Серокой А чем отличается yaffs от yaffs2? Sep 7 2005, 10:16 Evgeny_CD Цитата(Серокой @ Sep 7 2005, 14:16)А чем отли... Sep 7 2005, 10:30  Evgeny_CD Цитата(si21 @ Sep 8 2005, 20:23)....ARM CPU 9... Sep 8 2005, 17:13   si21 Цитата(Evgeny_CD @ Sep 8 2005, 19:13)А что эт... Sep 8 2005, 19:56
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|