Поддерживает ли файловая система YAFFS ECC более 1 бита на 256-байтовую страницу?

Из источника YAFFS2 (yaffs_ecc.c): «ECC может исправлять однобитовые ошибки в 256-байтовой странице данных».

Но для некоторых флэш-памятей требуется код ECC, который, например, должен исправлять 8 бит на 540 байт или 4 бита на 528 байт и т. д.

Может ли алгоритм ECC от YAFFS исправить более 1 ошибки? Пожалуйста, дайте мне ссылку на реализацию алгоритма ECC, который может исправить более 1 ошибки и работать быстрее.


person Ivan    schedule 29.09.2015    source источник
comment
Не могли бы вы добавить ссылку на исходный код, на который вы ссылаетесь?   -  person JoErNanO    schedule 29.09.2015
comment
не могли бы вы указать, какую флэш-память вы используете   -  person Dilip Kumar    schedule 29.09.2015
comment
yaffs.net/downloads   -  person Ivan    schedule 30.09.2015


Ответы (1)


YAFFS — это файловая система на базе Nand. Файловая система спроектирована на основе архитектуры nand flash.

Может ли алгоритм ECC от YAFFS исправить более 1 ошибки?

Нет, он не может исправить более 1 битовой ошибки.

В соответствии с архитектурой nand для каждой страницы поддерживается один ECC, и он может обрабатывать до 1-битной ошибки. Если ECC показывает более чем 2-битную ошибку, это неисправимая ошибка, и страница помечается как плохой блок.

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

Чтобы изменить файловую систему, вы можете проверить лист данных флэш-памяти, которую вы пытаетесь внедрить. И большая часть флэш-памяти имеет внутренний контроллер генерации ECC, то есть аппаратный контроллер.

может поправить 8 бит на 540 байт?

Реализовать такой алгоритм для flash будет слишком сложно.

Вот некоторые алгоритмы ECC, используемые для флэш-памяти.

  1. Алгоритм Хэмминга
  2. Алгоритм Рида-Соломона
  3. Алгоритм Боуза-Чоудхури-Хоквенгема (BCH)

Существует возможность исправления большего количества ошибок с использованием алгоритма BCH, этот алгоритм реализован в основном в аппаратном контроллере.

person Dilip Kumar    schedule 29.09.2015