Может ли большое количество операций чтения/записи повредить саму флэш-память?

На встроенных микроконтроллерах, таких как STM32/ESP/ARM, вообще существует ли проблема износа в случае большого количества операций ввода-вывода на внешней флэш-памяти?

я говорю о знаменитой флэш-памяти QSPI 4Mb/8Mb/16Mb, где обычно также находятся коды.

Скажем, каждые 30 секунд я, например, буду писать int, и я делаю это в течение всего дня, умрет ли флэш-память раньше или позже?

В этом случае какое аппаратное обеспечение лучше всего подходит для встраиваемой системы, способной выдерживать высокие нагрузки ввода-вывода? Каковы обходные пути?


person Luigi    schedule 31.08.2017    source источник
comment
Просто прочитайте характеристики устройства. короткий ответ да, вы будете носить его. Дни или недели или месяцы? надо читать характеристики...   -  person old_timer    schedule 31.08.2017
comment
Обходной путь - использовать оперативную память, она так не изнашивается, прежде чем отключится питание, вы сохраните состояние во флэш-памяти. конструкция вашей системы такова, что у вас достаточно резервной мощности (объемная емкость, батарея и т. д.), чтобы выжить после обнаружения потери питания в устройстве для сохранения во флэш-память / eeprom / что-то еще.   -  person old_timer    schedule 31.08.2017
comment
другой альтернативой является просто питание от батареи, как в наших ПК.   -  person old_timer    schedule 31.08.2017
comment
вы должны быть осторожны при запуске кода из внешних флэш-памяти (не знаю, как вы вообще это делаете, обратите внимание, что рука - это ядро ​​/ IP, а не микроконтроллер), вы можете получить проблемы с чтением. у памяти в mcu нет тех проблем (иначе товар был бы провальным и быстро удалялся бы из карточки товара).   -  person old_timer    schedule 31.08.2017
comment
Как обнаружить потерю питания системы, если она непредвиденная?   -  person Luigi    schedule 31.08.2017
comment
довольно простой диод и колпачок сделают это. колпачок - это ваша резервная мощность, диод защищает эту мощность от направления к источнику питания, поэтому он пропускает ток. вдали крышка поддерживает часть в рабочем состоянии, но контакт gpio меняет состояние, прерывая все это, чтобы вы знали время записи в худшем случае во флэш-память и имели достаточную емкость, чтобы удерживать этот длинный плюс запас. есть и более сложные способы.   -  person old_timer    schedule 31.08.2017
comment
исходя из вашего вопроса в заголовке, чтение не повредит флэш-памяти, как запись, это будет запись (или, скорее всего, циклы стирания), о которых вам нужно беспокоиться.   -  person old_timer    schedule 31.08.2017
comment
И как вы обрабатываете, например, данные за 2-3/7 дней в ОЗУ? Предположим, что по какой-то причине устройство не может связаться со своей сетью или своей базой, как вы с этим справитесь? Допустима ли такая частота написания?   -  person Luigi    schedule 31.08.2017
comment
размер детали соответствующим образом. все это подпадает под заголовки дизайна системы, у вас есть требования, срок службы продукта, собранные данные, какой процент хранится, стоимость, что угодно. сделай свой дизайн... ты хочешь хорошо писать во флэш-память, спроектируй систему, которая переживет это, если тебе нужно 16 частей флэш-памяти, чтобы каждая из них изнашивалась на 1/16, чтобы в целом продукт выжил, тогда ты делаешь это , если вам нужно больше оперативной памяти, чтобы сэкономить на износе флэш-памяти, вы делаете это. если вы уже пишете программное обеспечение, то вы пропустили 17 шагов вперед. к этому еще не готов. читать инструкции сделать дизайн.   -  person old_timer    schedule 31.08.2017
comment
пока решение соответствует спецификациям, тогда да, это приемлемо ... как часть дизайна или предварительного проекта, вы прорабатываете желаемые и требуемые параметры, и вы сокращаете их до тех пор, пока у вас не будет списка требований, а затем вы разрабатываете чтобы гарантировать, что вы встретите каждого из них. если вы встретите каждый из них, то ясно, что это приемлемый продукт.   -  person old_timer    schedule 31.08.2017
comment
я предполагаю, что вы еще не знаете, каковы возможные решения или проблемы, и проводите исследования в основном, чтобы узнать эти вещи, и это нормально. возьмите флэш-часть, постоянно пишите на нее и периодически проверяйте, посмотрите, сколько часов или дней, прежде чем она выйдет из строя. число в техническом описании — это то, что мы говорим, что все детали будут делать это, некоторые и, возможно, многие пройдут намного дальше этого, но вы не сможете протестировать достаточное количество деталей, чтобы увидеть общее среднее значение или маржу по сравнению с поставщиком, поэтому проектируйте в соответствии с техническое описание, подтвердите с ними напрямую, если вы считаете, что это ошибка.   -  person old_timer    schedule 31.08.2017
comment
вы можете попробовать сжатие в зависимости от ваших данных и т. д., возможно, у вас уже есть, но, возможно, вы можете уменьшить количество байтов, хранящихся на флэш-памяти, но сделать это без потерь, сохраняя износ флэш-памяти, размер флэш-памяти и т. д. за счет еще немного барана и инструкции.   -  person old_timer    schedule 31.08.2017
comment
Я пытаюсь выяснить, как мне разработать решение проблемы полупостоянного сохранения данных, если я не могу использовать соединение, и я изучаю возможность использования флэш-памяти. Спасибо   -  person Luigi    schedule 31.08.2017
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что это явно не программная, а аппаратная проблема.   -  person too honest for this site    schedule 03.09.2017
comment
@Olaf: тогда скорее переместите его в EE, потому что там это все еще будет актуальным вопросом.   -  person followed Monica to Codidact    schedule 03.09.2017
comment
@berendi: Что мешает вам пометить мод для этого? Я не мод!   -  person too honest for this site    schedule 03.09.2017


Ответы (2)


Да, как прокомментировали комментаторы, в конце концов это потерпит неудачу. Посмотрите в техническом описании спецификацию, обычно называемую «Выносливость». Обычные предельные значения выносливости флэш-памяти NAND на кристалле варьируются от 10 000 до 100 000 операций записи, а иногда и выше, но имеют значение только те цифры, которые указаны в техническом описании вашей конкретной детали. Как только вы узнаете срок службы, вы сможете придумать дизайн, который прогнозирует разумный срок службы на основе объема записи, частоты, возможного сжатия, кэширования в ОЗУ и т. д.

person TomServo    schedule 31.08.2017
comment
Не отвечайте на явно не относящиеся к теме вопросы. Это заблокирует roomba и потребует ручного удаления. Вместо этого проголосуйте за закрытие! - person too honest for this site; 03.09.2017

Скажем, каждые 30 секунд я собираюсь писать int, например, и я делаю это> в течение всего дня, флэш-память умрет раньше или позже?

Найдите количество циклов записи в таблице данных и посчитайте. Допустим, ваша часть может выдержать 1000000 циклов записи, тогда запись каждые 30 секунд начнет изнашивать ее за 30 миллионов секунд. Год составляет примерно 31,5 миллиона секунд...

В этом случае, что является лучшим HW для встроенной системы, способной выдерживать > высокий ввод-вывод?

Некоторые FRAM (ферроэлектрическая RAM) могут поддерживать до 1012 операций чтения / циклы записи. Он будет длиться 31689 лет, даже если вы обращаетесь к нему каждую секунду. Обратите внимание, что чтение также учитывается, но это не будет проблемой, если ваше устройство не потеряет питание и не должно загружаться каждую секунду.

Каковы обходные пути?

Выравнивание износа — это то, что делают контроллеры в SD-картах и ​​SSD-накопителях. Но вам понадобится непропорционально большая вспышка, чтобы сделать это для нескольких счетчиков.

Некоторые микроконтроллеры имеют небольшой объем резервной оперативной памяти, которая может питаться от батареи или суперконденсатора через отдельный вывод Vbat. Не забывайте менять батарею каждые несколько лет. Однако по цене батареи и розетки вы получите FRAM.

person followed Monica to Codidact    schedule 31.08.2017
comment
Не отвечайте на явно не относящиеся к теме вопросы. Это заблокирует roomba и потребует ручного удаления. Вместо этого проголосуйте за закрытие! - person too honest for this site; 03.09.2017