Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Программируемые логические схемы и их применение»

NAND flash initial invalid block(s). Как с ними борятся?

Отправлено Гяук 22 января 2007 г. 17:54


Цитата №1 из datasheet на NAND flash K9WAG08U1A:
[quote]An initial invalid block(s) does not affect the performance of valid block(s) because it is isolated from the bit line and the common source line by a select transistor.[/quote]
Из чего я делаю вывод: в структуре NAND при производстве могут возникать некоторые глюки, которые отлавливаются на этапе заводского тестирования и после их нахождения блок, который их содержит отключается от шины IO. Обращение к этим блокам должно возвращать какое-то значение (скорее всего 0х00). При стирании этих блоков возвращаемое значение меняться не должно: они ж отключены (..is isolated from the bit line and the common source line by a select transistor)!!
Цитата №2 из datasheet на NAND flash K9WAG08U1A:
[quote]The initial invalid block(s) status is defined by the 1st byte in the spare area. Samsung makes sure that either the 1st or 2nd page of every initial invalid block has non-FFh data at the column address of 2048. Since the initial invalid block information is also erasable in most cases, it is impossible to recover the information once it has been erased. Therefore, the system must be able to recognize the initial invalid block(s) based on the original initial invalid block information and create the initial invalid block table[..]. Any intentional erasure of the original initial invalid block information is prohibited.
[/quote]
Тут уже неувязочка получается... Как же они отключены, если информацию о них можно стереть? И какие же они invalid block, если они стираемые? :(

Переходя от теории к практике... Есть платка - на ней одна flash на гиг, ПЛИС, которую научили писать, читать, стирать эту flash. Самопальное тестирование этой flash производится следующим образом:
а. Стираем всю flash.
б. Пишем в нее (в каждую ячейку) 0хАА.
в. Читаем и стравниваем. Если считанное значение не совпало - пишем в лог адрес ячейки в котором есть несовпадение.
г. Стираем всю flash.
д. Пишем в нее (в каждую ячейку) 0х55.
е. Читаем и стравниваем. Если считанное значение не совпало - пишем в лог адрес ячейки в котором есть несовпадение.
ж. Стираем всю flash.

Результат - все пространство flash чувствует себя прекрасно за исключением четырех блоков. Именно блоков - проверяли адресацию. Так вот - значение КАЖДОЙ ячейки в этих блоках - 0х00! И оно не стирается!

Вот, подобрался к вопросам: :)

1. Если кто работал с flash - расскажите пожалуйста, всегда ли bad block возвращает значения 0х00 для каждой ячейки блока?
2. Эти самые initial invalid block'и - они если не работают - они всегда не работают? Или все дело в том, что через раз? (то есть один раз считывает правильно, но после стирания и записи может прочесться что-то не то, а потом опять нормально?)

Пока вроде все... Заранее спасибо за ответы.

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 89:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru