MRAM storage для Wiren Board

С огромным удивлением обнаружил у новой линейки овнов MRAM storage. А ребята-то не дураки, хранить переменные на чипе, не подверженном износу.

Предлагаю подумать о сходном решении.

Если, судя по фото ВБ7 на главной, разъем “disp” убрать еще не успели, можно выпустить сверхмелкий субмодуль с spi-ным чипом MRAM мегабит на 8 для втыкновения именно туда. Особой гиперскорости от него не требуется, как раз держать файлик persistence москиты… м?!
Заодно и к 6.7 подойдет.

SPI можно и в MOD4 воткнуть. Но да, разъем тоже подойдет.

Ну тогда вообще шоколад. Считаю, надо пробовать.

Только цена на чипы от $27 за 8 Мбит не радует
https://www.digikey.com/en/products/filter/memory/774?s=N4IgjCBcpgLATFUBjKAzAhgGwM4FMAaEAeygG0R4BOWAZisQF0iAHAFyhAGU2AnASwB2AcxABfInCpIQqSJlyES5ELQAcABlgA2RJJDMQ7TjwEjxRAKwB2DTLkL8RUpAq1YDS7AOsOkbnxCohKUWrT26NhOyq4gsBraYAk%2BRn4BZsFiYkA

Дык это в розницу. Причем субмодуль можно будет купить или не покупать. Я б купил.
Зато получите возможность избежать вала контроллеров с вытертыми флешками, которые рано или поздно приедут в ремонт. Хотите, считайте это моим персональным бзиком, но я топлю за роскошь поставить устройство - и забыть о нем лет на двадцать, пускай себе молотит.

1 лайк

Пока что мне кажется, что это всё неоптимальные решения проблемы, которой, возможно, и не существует.

Начинать, думаю, нужно с анализа расходования ресурса eMMC. Счётчик использованных блоков доступен через extcsd и mmc-utils, можно измерять его напрямую и смотреть, как он увеличивается. Можно измерять объём I/O средствами линукса и оценивать из него.

Если в вашем сценарии использования действительно почему-то очень быстро расходуется ресурс eMMC, то первым приходящим в голову решением будет использовать внешнюю (индустриальную) microSD карту.

Вторым - заказать WB с бОльшим объёмом eMMC на борту (как опция скоро будет 64ГБ) и, возможно, настроить часть eMMC в режим pSLC, который увеличивает надёжность за счёт места.

Самая главная мысль, почему я считаю внешние странные технологии избыточными: в eMMC и SD-картах применяются алгоритмы выравнивания износа. Это значит, что с ресурс растёт линейно с объёмом флеш-накопителя и измеряется не годами эксплуатации, не количестами перезаписи ячейки, а только объёмом записанных данных. Так что самый простой способ увеличить надёжность в два раза - поставить флешку вдвое большей ёмкости.

Собственно в контроллере конкурентов MRAM поэтому и стоит: у них флеш-памяти в 1000 раз меньше, чем в WB6, она без выравнивания износа, поэтому им и нужен отдельный внешний чип.

Не знаю точно как в eMMC но, SD-карты очень часто приносят с “вытертым” напрочь началом партиции. Там, где в FAT-е собственно фат и дериктории лежат. Т.е. данные в блоках файлов меняются а добавить или удалить уже нельзя. :frowning:

А про флеш в WB, Из 8 ГБ под систему вырезано 1Гб, и собственно туда в основном всё и льётся. Логи systemd, скачанные пакеты, кэш apt, и т.д. И всё это в раздел, который, по идее должен быть RO. Одно неверное движение на системном разделе и куку… Восстановление к заводским, тот ещё квест.
Хотя красивое, на мой взгляд, решение существует давно. Применяется в маршрутизаторах.

Позвольте мне согласиться не со всем.
Один контроллер, стоящий в богами забытой водокачке в Дальних Пердях я, если, допустим, в отпуске, менять не поеду. А коллега мой - местный кип - получает подмосковную зарплату и ему, естественно, подтаскивать свои скиллы до моего уровня, мягко говоря, deep purple; соответственно, с вероятностью минимум 50%, эта водокачка будет дожидаться моего приезда в ручном режиме.
Множим эту водокачку на 500. Морщим ум, вспоминая теорвер. Ставим log2ram и лишний раз на флешку не дышим.

В одном из соседних топиков я предположил 30% износа накопителя в одном из контроллеров, работающих у меня чуть больше полугода.

Овны не дураки и деньгами обычно не разбрасываются. Я чинил некоторые их произведения, там всё по урезу разумного.

Где-то так.

А вот это попробовать можно, но я вижу в ВБ7 пустое место под картовод. :slight_smile:

Вот нет. /var - на 6 разделе лежит.

Ну, во-первых можно Модуль расширения: MicroSD, WBE2S-MICROSD — Wiren Board
или разработать “более другой” модуль.

В свободное от отдыха время попрошу у вас аутлайн модуля в каком-нибудь каде. :slight_smile:

Отлично, дзенькую!

SD-карты с “оптимизацией” FAT действительно были, но, это всегда были совсем убогие карточки.

Те данные, которые вы пишете в одно и то же место eMMC реально оказываются размазаны по всему флешу. Так что нет разницы, пишете ли вы в одну партицию или в другую - записи всё-равно размазываютсся по всей ёмкости. Контроллер eMMC полностью скрывает это от процессора.

Максимальная поддерживаемая скорость интерфейса: 10Mbit/s (1,25MB/s)

И чего на такой скорости, кроме логов можно писать/читать?

Ну тут бутылка именно в однопроводном SPI, тот же QSPI даст 40Мбит, что в общем хоть под своп отдавай… ))
Но у меня очередь mqtt апдейтится с существенно меньшей скоростью, ДАЖЕ если ее сразу писать на носитель (на самом деле - не сразу). Мне за глаза и уши, главное - 20 лет не лазить в узел.

Только посмотрел дефолтный WB6.
на 6-ом разделе лежит /var/log, а весь остальной /var на корневом. вместе с cache, spool, run…