Полная версия этой страницы:
NAND Flash
Volkov
Mar 17 2012, 14:17
Не могу понять пользы от этой команды.
Если произошла ошибка при записи страницы, не проще ли перезаписать, данные в другой блок, из буфера контроллера?
tAmega
Mar 17 2012, 14:43
CopyBACK насколько я помню, это перемещение страниц внутри девайса, без участия внешнего интерфейса. Скажем есть блок, мы перезаписываем первые две страницы блока.
Тогда мы читаем первые две страницы, меняем там данные, затем пишем эти две страницы в новое место, и остальную часть первого блока перетаскиваем на новое место COPYBACK.
Команда резко сокращает накладные расходы.
Volkov
Mar 17 2012, 14:58
Страницы без ошибок, согласен, будет быстрее перетаскивать CopyBack-ом. А плохие?
Все равно, нужно прочитать страницу в контроллер, исправить ошибку, перезаписать в кеш, и запрограммировать в страницу другого блока.
А если времени перезаписывать все страницы в блоке нет? Можно ли, при появлении ошибки в странице, перезаписать ее в другой блок,
и продолжить запись в другом блоке, не перезаписывая остальные страницы плохого блока?
tAmega
Mar 17 2012, 16:06
Не знаю, это зависит от конкретной реализации чипа NAND, у них протоколы работы слегка отличаются. И честно скажу, давно не поднимал этой темы. Пускай кто другой подскажет. Извините.
Volkov
Mar 17 2012, 17:05
Спасибо. Спаяют плату, буду пробовать.
aaarrr
Mar 17 2012, 21:05
Цитата(Volkov @ Mar 17 2012, 18:58)

Можно ли, при появлении ошибки в странице, перезаписать ее в другой блок,
и продолжить запись в другом блоке, не перезаписывая остальные страницы плохого блока?
Вообще, блоки бракуются и заменяются целиком, и меняются сразу, "не отходя от кассы". Вопрос времени должна снимать буферизация.
Вот еще странная ситуация. Данные с флеш читаются с ошибкой, но при чтении статус регистра флеш не показывает ошибки программирования. А по сути должна.
Цитата(Volkov @ May 4 2012, 14:11)

Данные с флеш читаются с ошибкой, но при чтении статус регистра флеш не показывает ошибки программирования. А по сути должна.
Статус отражает не все типы ошибок, нули на месте единиц будут проигнорированы.
Цитата
А если времени перезаписывать все страницы в блоке нет? Можно ли, при появлении ошибки в странице, перезаписать ее в другой блок,
и продолжить запись в другом блоке, не перезаписывая остальные страницы плохого блока?
Формально нельзя, но реально все работает. Если страницы уже записаны, то ничего с ними не бывает дальше. Нужно только при ближайшем стирании блок выбраковывать.
Mad_max
May 5 2012, 06:33
Цитата(Volkov @ May 4 2012, 14:11)

Вот еще странная ситуация. Данные с флеш читаются с ошибкой, но при чтении статус регистра флеш не показывает ошибки программирования. А по сути должна.
Какой характер ошибки? Если один два бита ошибочные, то это имеет место быть. Производители nand чипов рекомендуют использовать на стороне хост софта
коды исправляющие ошибки. Это может быть простой Хемминг или более крутые коды, например, BCH.
Если ошибок гораздо больше, то блок деградировал в процессе эксплуатации, такое тоже может быть. В этом случае в этот блок нужно пометить как "плохой" и исключить его из работы.
Случайно зашил зацикленный процесс записи/чтения, после этого в первые 32 блока данные совсем не пишутся.
После 32 го все окей. А писал нули в 0-4095, дальше шли 24 байта "ff" - ECC.
Так теперь, если игнорятся нули на месте едениц, то и статус не выдает ошибку.
Только вот неужели все ячейки деградировали, сколько не пытаюсь записать в эти битые блоки, читаются нули, ну и ECC с ошибками.
Получается, если я не могу записать, так и ERASE наверное не сотрет эти блоки
Вы страницы и блоки не путаете случайно?
Нет, пишу в первую страницу блоков.
Цитата(Volkov @ May 5 2012, 18:02)

Получается, если я не могу записать, так и ERASE наверное не сотрет эти блоки
Стоп. А как можно писать без предварительного стирания, если в странице уже нули сплошь?
RN3DHR
Dec 21 2012, 07:29
Доброго времени суток. А кто применял copy-back, можете уточнить процесс... у меня никак не хочет копировать ( мс HY27UT088G2M ).
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.