Полная версия этой страницы:
NAND Flash K9F1208U0B
tsvtsvtsv
May 3 2007, 11:39
Уважаемые, если после Page Programm Operation, Status сообщает об ошибке, то можно перейти к новой странице и опять повторить запись из своего буфера (внешнего), но у NAND Flash есть команды Copy-Back Programm (Duammy) и Copy-Back Programm (True). Вопросы 1.Можно-ли применить эти команды, и какова последовательность кодов в данной ситуации? 2.Есть-ли у кого статистика таких отказов, как часто возникают?. 3. Данную страницу пометить как Bad, или пометить весь блок как ВAD. Заранее благодарен!
Copy-back при ошибке работать не будет. В описании черным по белому написано, что только повторная команда полностью с передачей данных из внешнего буфера, хотя во внутреннем все данные есть. Я давно хотел ее обмануть - ан нет. Конкретно для этого чипа статистики нет, но в среднем 2-5 bad'ов на кристалл, причем это мало зависит от объема кристалла. Помечать как bad по уставу положено весь блок. Максимум, что можно сделать - это не переписывать предыдущие страницы в блоке, которые записались правильно, до стирания блока. Затем он весь переводится в bad.
tsvtsvtsv
May 4 2007, 10:26
Спасибо Alex 11!
Вопросы далее.
1. Если после Page Programm Operation сообщается об ошибке, то
а. Возникла какая-то системная ошибка не связанная с плохой ячейкой и можно попробовать
повторить попытку?
б. Нет, ошибка всегда означает плохую ячейку и тогда-
б1. Пометить страничку как BAD, перейти на следующую страницу.
б2. Пометить весь блок как BAD, перейти на следующий блок.
2. Метит-ли внутренний контроллер NAND Flash сам в SPARE AREA новые BAD блоки
3. Каково назначение остальных областей в SPARE AREA? (LSN, ECC, S-ECC)
1. При отлаженной программе - ошибка записи это ошибка записи. Она может появиться, конечно, в результате воздействия внешних факторов типа просадки питания при записи, но, как правило, это плохой блок. В любом случае без стирания блока повторно писать в эту же страницу смысла нет. Следует пометить страницу как bad и перейти на следующий блок. При стирании этого блока, следует весь его пометить как bad и не писать в него никогда более (это по инструкции). На практике мы иногда не помечали блок bad'ом и пытались писать снова (после стирания). Иногда работает.
2. Нет.
3. Если не использовать команды типа copy-back, то можно использовать по своему разумению. Если использовать - то нужно, чтобы ECC поля совпадали с datasheet'ом, т.к. встроенный контроллер будет перевычислять ECC, чтобы не множить ошибки.
tsvtsvtsv
May 7 2007, 08:18
Alex11, делали Вы тестирование NAND Flash?
Пишем все нули, 0x55, 0хАА, достаточно этого будет, или
стоит запустить бегущий 0 и бегущюю 1?
Тестирование для чего? Когда я только начинал с ними работать (лет 5 назад), то при форматировании писал 55, АА - в результате время форматирования стремилось к бесконечности, а проку никакого. Поскольку обещано, что в процессе работы bad'ы будут образовываться, то предварительное тестирование бесполезно. Заводские bad-блоки уже помечены так, что не стираются, даже если подать команду стирания на них. А дальше в зависимости от требуемой надежности устройства можно либо отслеживать ошибку записи и прописывать сигнатуру с корректирующим кодом или проверять запись последующим чтением, либо делать и то и другое вместе. Невозможно сделать тестирование, которое бы гарантировало, что при следующей записи все что прошло тест запишется без ошибок.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.