реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> NAND Flash, COPYBACK command
Volkov
сообщение Mar 17 2012, 14:17
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 284
Регистрация: 21-01-05
Пользователь №: 2 104



Не могу понять пользы от этой команды.
Если произошла ошибка при записи страницы, не проще ли перезаписать, данные в другой блок, из буфера контроллера?
Go to the top of the page
 
+Quote Post
tAmega
сообщение Mar 17 2012, 14:43
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 474
Регистрация: 20-01-09
Из: НН
Пользователь №: 43 639



CopyBACK насколько я помню, это перемещение страниц внутри девайса, без участия внешнего интерфейса. Скажем есть блок, мы перезаписываем первые две страницы блока.
Тогда мы читаем первые две страницы, меняем там данные, затем пишем эти две страницы в новое место, и остальную часть первого блока перетаскиваем на новое место COPYBACK.
Команда резко сокращает накладные расходы.


--------------------
пользователь отключен
Go to the top of the page
 
+Quote Post
Volkov
сообщение Mar 17 2012, 14:58
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 284
Регистрация: 21-01-05
Пользователь №: 2 104



Страницы без ошибок, согласен, будет быстрее перетаскивать CopyBack-ом. А плохие?
Все равно, нужно прочитать страницу в контроллер, исправить ошибку, перезаписать в кеш, и запрограммировать в страницу другого блока.
А если времени перезаписывать все страницы в блоке нет? Можно ли, при появлении ошибки в странице, перезаписать ее в другой блок,
и продолжить запись в другом блоке, не перезаписывая остальные страницы плохого блока?
Go to the top of the page
 
+Quote Post
tAmega
сообщение Mar 17 2012, 16:06
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 474
Регистрация: 20-01-09
Из: НН
Пользователь №: 43 639



Не знаю, это зависит от конкретной реализации чипа NAND, у них протоколы работы слегка отличаются. И честно скажу, давно не поднимал этой темы. Пускай кто другой подскажет. Извините.


--------------------
пользователь отключен
Go to the top of the page
 
+Quote Post
Volkov
сообщение Mar 17 2012, 17:05
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 284
Регистрация: 21-01-05
Пользователь №: 2 104



Спасибо. Спаяют плату, буду пробовать.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 17 2012, 21:05
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Volkov @ Mar 17 2012, 18:58) *
Можно ли, при появлении ошибки в странице, перезаписать ее в другой блок,
и продолжить запись в другом блоке, не перезаписывая остальные страницы плохого блока?

Вообще, блоки бракуются и заменяются целиком, и меняются сразу, "не отходя от кассы". Вопрос времени должна снимать буферизация.
Go to the top of the page
 
+Quote Post
Volkov
сообщение May 4 2012, 10:11
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 284
Регистрация: 21-01-05
Пользователь №: 2 104



Вот еще странная ситуация. Данные с флеш читаются с ошибкой, но при чтении статус регистра флеш не показывает ошибки программирования. А по сути должна.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 4 2012, 10:22
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



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

Статус отражает не все типы ошибок, нули на месте единиц будут проигнорированы.
Go to the top of the page
 
+Quote Post
Alex11
сообщение May 4 2012, 15:53
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Цитата
А если времени перезаписывать все страницы в блоке нет? Можно ли, при появлении ошибки в странице, перезаписать ее в другой блок,
и продолжить запись в другом блоке, не перезаписывая остальные страницы плохого блока?

Формально нельзя, но реально все работает. Если страницы уже записаны, то ничего с ними не бывает дальше. Нужно только при ближайшем стирании блок выбраковывать.
Go to the top of the page
 
+Quote Post
Mad_max
сообщение May 5 2012, 06:33
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 377
Регистрация: 23-12-06
Из: Зеленоград
Пользователь №: 23 811



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

Какой характер ошибки? Если один два бита ошибочные, то это имеет место быть. Производители nand чипов рекомендуют использовать на стороне хост софта
коды исправляющие ошибки. Это может быть простой Хемминг или более крутые коды, например, BCH.
Если ошибок гораздо больше, то блок деградировал в процессе эксплуатации, такое тоже может быть. В этом случае в этот блок нужно пометить как "плохой" и исключить его из работы.
Go to the top of the page
 
+Quote Post
Volkov
сообщение May 5 2012, 14:02
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 284
Регистрация: 21-01-05
Пользователь №: 2 104



Случайно зашил зацикленный процесс записи/чтения, после этого в первые 32 блока данные совсем не пишутся.
После 32 го все окей. А писал нули в 0-4095, дальше шли 24 байта "ff" - ECC.
Так теперь, если игнорятся нули на месте едениц, то и статус не выдает ошибку.
Только вот неужели все ячейки деградировали, сколько не пытаюсь записать в эти битые блоки, читаются нули, ну и ECC с ошибками.
Получается, если я не могу записать, так и ERASE наверное не сотрет эти блоки
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 5 2012, 14:25
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Вы страницы и блоки не путаете случайно?
Go to the top of the page
 
+Quote Post
Volkov
сообщение May 5 2012, 15:00
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 284
Регистрация: 21-01-05
Пользователь №: 2 104



Нет, пишу в первую страницу блоков.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 5 2012, 15:11
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Volkov @ May 5 2012, 18:02) *
Получается, если я не могу записать, так и ERASE наверное не сотрет эти блоки

Стоп. А как можно писать без предварительного стирания, если в странице уже нули сплошь?
Go to the top of the page
 
+Quote Post
RN3DHR
сообщение Dec 21 2012, 07:29
Сообщение #15





Группа: Новичок
Сообщений: 1
Регистрация: 21-12-12
Пользователь №: 74 926



Доброго времени суток. А кто применял copy-back, можете уточнить процесс... у меня никак не хочет копировать ( мс HY27UT088G2M ).

Сообщение отредактировал RN3DHR - Dec 21 2012, 07:29
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 22:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.0147 секунд с 7
ELECTRONIX ©2004-2016