Структура для списка номеров во флэш памяти

Обсуждаем цифровые устройства...
Ответить
Прорезались зубы
Сообщения: 214
Зарегистрирован: Чт май 23, 2013 18:31:58

Сообщение Али777 »

Добрый день. Разбираюсь с флэш памятью w25q32. 4MB. Хочу хранить массив карт mifare. На одну карту 10 байт. В общем будет отведено 100 тыс байт. Карты будут храниться в отсортированном массиве, для быстрого поиска. Если нужно будет добавить новую карту в середину массива. Получается, остальные карты нужно сдвигать, т.е. нужно время на перезапись большого числа ячеек памяти. Можно ли каким то образом этого избежать?
Реклама
Мучитель микросхем
Сообщения: 437
Зарегистрирован: Пн май 27, 2019 07:18:28
Откуда: ВВХ-ск

Сообщение mont-oriol »

Как вариант: Хранить два массива. Один большой, сортированный. Второй - маленький, не сортированный. Когда нужно добавить новую запись, добавлять во второй массив. Когда там накопится более N значений, то массивы сливаются сортировкой в первый, второй становится пустым.
Итог: Поиск быстрый, т.к. почти все значения лежат в сортированном массиве. Поиск по второму массиву то же быстрый, т.к. там мало значений. Ну и количество стираний уменьшается в N раз.

Добавлено after 17 minutes 49 seconds:
Если те 10 байт, что нужно хранить - это просто ID, то можно применить "фильтр Блума", что может свести количество page erase к нулю.
Реклама
Ответить

Вернуться в «Цифровая техника»