Программатор UFPI Инструкция 4.2.12 Приложение. ECC
- Информация о материале
- Обновлено: 19.04.2023, 20:17
- Опубликовано: 17.04.2023, 23:22
- Автор: DeniS
4.2.12 Приложение. ECC
Назначение.
ECC - (error-correcting code) код коррекции ошибок. Не вдаваясь в физические тонкости образования ошибок, стоит лишь понимать, что количество ошибок увеличивается с течением времени, а чем больше циклов стирания блок флеш, тем быстрее эти ошибки могут в нем накапливаться. Флеш NAND изначально предполагает применение кода коррекции. Для поддержания работы NAND применяется коды коррекции Hamming, BCH, Reed-Solomon с различными опциями и производные от них с применением шифрований и прочих стандартных и нестандартных приемов. Полный размер страницы NAND состоит из page и spare. Обычно в page содержатся данные, а в spare код коррекции.
Никаких изменений, патчей, пересчётов BBT без пересчета кода ECC сделать невозможно. Никаких гарантий на дамп и его запись в NAND (даже если в ней нет ни одного ББ) без проверки
ECC давать невозможно.
Выбор ECC.
Обычному пользователю сложно или даже невозможно определить параметры и алгоритм ECC, поэтому в UFPI упростили задачу, введя автоопределение алгоритма. Для этого достаточно при выставленной схеме «Автоопределение» вставить флеш (имеющую нужный дамп) и прочитать ID. В логе будет название алгоритма:
NAND ECC коррекция Автоопределение MSTAR_P8K_SP436_CW8_S12L42 (нет ECC ошибок на странице #0)
Либо при выбранном нужном файле дампа двойным кликом по полю «Чтение в» или «Запись из» выбрать в контекстном меню проверить или исправить ECC.
Таким образом можно проверить файл на корректность еще до прошивки и установки флеш в аппарат.
NAND ECC коррекция MSTAR_P8K_SP436_CW8_S12L42 (Автоопределение)
Проверка ECC в 'E:\temp\delete\111\NAND_Samsung_K9GAG08U0E_2021-05-16_23-20.bin'...
ECC проверено в 36767 страницах, 228940 пустых страниц пропущено, 7 пустых кодовых слов, 168 кодовых слов с пустым ECC
Обнаружено 1 ECC битовых ошибок, 1 в данных ECC
Не редкость файлы, которые в файлообменниках, с пометкой «проверенный» или ими делятся на форумах, имеют некорректируемые ошибки. Файлы с некорректируемыми ошибками не могут дать гарантии на корректную работу.
Обозначение.
Для облегчения и визуального восприятия для схем ECC введены названия, по которым можно ориентироваться не вникая в сложности алгоритма. Для примера приведен дамп от Samsung D5500.
При чтении ID определяется алгоритм автоматически:
NAND ECC коррекция Автоопределение MSTAR_P8K_SP436_CW8_S12L42 (нет ECC ошибок на странице #0)
MSTAR — производитель процессора «Mstar». Можно узнать по надписи на процессоре или описании в интернете.
P8K — размер page 8192 байта. Можно увидеть из параметров NAND или лога при чтении ID в программаторе.
SP436 — размер spare 436 байт. Можно увидеть из параметров NAND или лога при чтении ID в программаторе.
S12 — количество байт от начала spare до начала кода коррекции.
L42 — количество байт самого кода коррекции.
CW8 — количество частей на которые разбита страница. Примерная иллюстрация в документации Micron выглядит так:
Только в дампе от D5500 страница 8192 байт, spare 436 и разделена страница на 8 частей. Это наглядно можно увидеть, посчитав сколько частей кода коррекции для полной страницы в spare, разделенных друг от друга, байтами 0xFF.
Остальные добавки к названию алгоритма для пользователя не несут полезной информации.