Программатор UFPI Инструкция 4.2.12 Приложение. ECC

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.

Программатор UFPI Инструкция 4.2.12 Приложение. 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 до начала кода коррекции.

Программатор UFPI Инструкция 4.2.12 Приложение. ECC


L42 — количество байт самого кода коррекции.

Программатор UFPI Инструкция 4.2.12 Приложение. ECC


CW8 — количество частей на которые разбита страница. Примерная иллюстрация в документации Micron выглядит так:

Программатор UFPI Инструкция 4.2.12 Приложение. ECC

Только в дампе от D5500 страница 8192 байт, spare 436 и разделена страница на 8 частей. Это наглядно можно увидеть, посчитав сколько частей кода коррекции для полной страницы в spare, разделенных друг от друга, байтами 0xFF.

Остальные добавки к названию алгоритма для пользователя не несут полезной информации.

You have no rights to post comments