tronix286 0 19 марта, 2015 Опубликовано 19 марта, 2015 · Жалоба Привет, Есть обычная SPI флешка 64 мбита (8 Mb), на которую постоянно, фактически ежеминутно, пишутся данные. Соответственно часто происходят операции очистки (erase) и программирования секторов. Я склонен к тому, что при такой интенсивной работе не исключено появление через год-два "битых" страниц. Поэтому хотел узнать, кто как решает эту проблему? Довольно странно, но гугль на тему "SPI flash defect list", "spi flash ecc" и подобных запросов толком ничего не знает. Сделать дефект-лист, куда заносить номера дефектных страниц? А если запорится страница, в котором лежит этот самый дефект-лист? Сделать в начале каждой страницы флажек - исправна страница или нет? А если я не смогу записать флажек, что вот эта страница не исправна, потому что она не исправна и не пишется в нее ничего? Такой вот простой, но внезапно не имеющий решений в лоб вопрос у меня. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CrimsonPig 0 19 марта, 2015 Опубликовано 19 марта, 2015 · Жалоба Есть обычная SPI флешка 64 мбита (8 Mb), на которую постоянно, фактически ежеминутно, пишутся данные. Соответственно часто происходят операции очистки (erase) и программирования секторов. Я склонен к тому, что при такой интенсивной работе не исключено появление через год-два "битых" страниц. Поэтому хотел узнать, кто как решает эту проблему? Довольно странно, но гугль на тему "SPI flash defect list", "spi flash ecc" и подобных запросов толком ничего не знает. Сделать дефект-лист, куда заносить номера дефектных страниц? А если запорится страница, в котором лежит этот самый дефект-лист? Сделать в начале каждой страницы флажек - исправна страница или нет? А если я не смогу записать флажек, что вот эта страница не исправна, потому что она не исправна и не пишется в нее ничего? Какое отношение имеет SPI к FLASH вообще? Гуглить-то наверное надо по "flash wear levelling" или "eeprom wear levelling" в зависимости от того, что такое "обычная spi флешка". Данные как пишутся ? Линейно, по случайному алдресу или в одно и тоже место ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 192 20 марта, 2015 Опубликовано 20 марта, 2015 · Жалоба Есть обычная SPI флешка 64 мбита (8 Mb), на которую постоянно, фактически ежеминутно, пишутся данные. Соответственно часто происходят операции очистки (erase) и программирования секторов. Я склонен к тому, что при такой интенсивной работе не исключено появление через год-два "битых" страниц. Поэтому хотел узнать, кто как решает эту проблему? Надо не бороться с последствиями, а лечить саму проблему. Пути решения: 1. Переделать алгоритм записи так, чтобы писалось не в одно место, а каждая запись - в новое. Чтобы флешь равномерно изнашивалась. И, при необходимости, увеличить её объём с запасом, произведя элементарный расчёт с учётом: срока службы изделия, частоты стираний, максимального допустимого кол-ва циклов стирания ИС. 2. Заменить флешь на другой тип памяти (например FRAM или батарейное ОЗУ или просто ОЗУ с монитором питания). Даже если необходим большой объём записи, то с помощью FRAM может быть возможно уменьшить кол-во циклов стирания флешь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tronix286 0 24 марта, 2015 Опубликовано 24 марта, 2015 · Жалоба Какое отношение имеет SPI к FLASH вообще? Гуглить-то наверное надо по "flash wear levelling" или "eeprom wear levelling" в зависимости от того, что такое "обычная spi флешка". Данные как пишутся ? Линейно, по случайному алдресу или в одно и тоже место ? Ну, просто выразился я не правильно. Под SPI-Flash подразумевал serial flash, навроде 25df161, w25q64... За "правильные" запросы в гугл спасибо, изучаемс.. Данные разные. Какие-то было бы проще всего писать в одно и то же место. Это некоторые флаги, в том числе об предыдущем состоянии устройства и счетчики. Некоторые можно писать линейно, "по кругу", так как если не успели обработать последние, то первые уже теряют актуальность. Надо не бороться с последствиями, а лечить саму проблему. Пути решения: 1. Переделать алгоритм записи так, чтобы писалось не в одно место, а каждая запись - в новое. Чтобы флешь равномерно изнашивалась. И, при необходимости, увеличить её объём с запасом, произведя элементарный расчёт с учётом: срока службы изделия, частоты стираний, максимального допустимого кол-ва циклов стирания ИС. 2. Заменить флешь на другой тип памяти (например FRAM или батарейное ОЗУ или просто ОЗУ с монитором питания). Даже если необходим большой объём записи, то с помощью FRAM может быть возможно уменьшить кол-во циклов стирания флешь. Я понимаю, что писать нужно не в одно место, я про это говорил в первом посте. Менять железо - не вариант. Нужно просто продумать алгоритм, при котором устройство бы продолжало нормально функционировать даже при ~80% битой памяти у флеши (но сигнализировало бы о том, что не плохо было бы при случае пройти ремонт). Я просто думал, что есть уже какие-то open-source решения, что бы можно было бы хотя-бы от чего то оттолкнуться. Но видимо ничего нет, и впереди меня ждет увлекательный путь велосипедостроения... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gerber 8 24 марта, 2015 Опубликовано 24 марта, 2015 · Жалоба Я просто думал, что есть уже какие-то open-source решения, что бы можно было бы хотя-бы от чего то оттолкнуться. Но видимо ничего нет, и впереди меня ждет увлекательный путь велосипедостроения... Отчего же, есть такие. JFFS Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 30 марта, 2015 Опубликовано 30 марта, 2015 · Жалоба Довольно странно, но гугль на тему "SPI flash defect list", "spi flash ecc" и подобных запросов толком ничего не знает.Ищите на тему "NAND flash ecc". Для простых SPI коррекцию применяют редко, а для NAND это must-have вещь. А уж применить то, что найдется, можно и к SPI FLASH Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться