я могу написать на ранее написанную страницу, если я избегаю уже написанных областей?
Если я понимаю р. 16 таблицы данных правильно, это говорит: с этим конкретным чипом, вы не должны писать на ранее написанной странице, даже если вы избегаете уже написанных областей.
Детали
Спецификация чипа флэш-памяти SST25VF064C на стр. 16 гласит: «Инструкция программы Page-Program запрограммирует до 256 байтов данных в памяти. Выбранный адрес страницы должен быть в стертом состоянии (FFH) перед началом операции Page-Program».
Поэтому я предполагаю, что «вся выбранная страница должна быть в стертом состоянии (каждый байт на странице FFh) перед началом операции Page-Program». Выпустил ли SST или Microchip какую-либо документацию, разъясняющую это безумно неоднозначное предложение?
По моему опыту, производитель всех флеш-микросхем MLC и некоторых более новых флеш-микросхем SLC требует, чтобы после того, как страница была написана, страница должна быть стерта перед повторной записью этой страницы, даже если вы хотите изменить только 1 бит на 0 бит (Это называется «правилом однократной записи» в статье YAFFS .)
По моему опыту, все старые флеш-чипы позволяют вам изменять любой 1 бит на 0 бит без цикла стирания, даже если этот бит находится на странице или даже в байте, в котором уже были запрограммированы другие биты на ноль - a Страница вспышки может быть запрограммирована несколько раз между стиранием. (Это называется «множественная запись» в статье YAFFS).
Лист данных производителя - это условное обещание, которое производитель дает вам. Пока вы будете следовать всем рекомендациям таблицы, производитель обещает, что чип будет работать так, как указано. Я подозреваю, что если вы программируете ранее написанную страницу, избегая уже написанных областей, есть большая вероятность, что немедленное обратное чтение может дать ожидаемые вами данные - недавно записанные байты - это значения, которые вы только что написали, и другие байты, вероятно, не изменились. Однако, поскольку это не соответствует рекомендациям таблицы, вы больше не можете полагаться на все обещания в таблице. Я слышал слухи о том, что такая несанкционированная деятельность приводит к ухудшению времени хранения и стойкости данных из-за программных помех, перепрограммирования, перезарядки, эффектов, подобных удару строки DRAM и т. Д.
«Схема использования памяти влияет на частоту ошибок по битам. Программирование частичных страниц, непоследовательное программирование страниц внутри блока, чрезмерное чтение на блок без стирания, а также неравное количество операций чтения в одном блоке увеличивает число операций чтения. беспокоить ошибки. " - Михал Джедрак.
«NAND Flash память во встроенных системах».
«Программный сбой возникает, когда бит непреднамеренно программируется от« 1 »до« 0 »во время события программирования страницы. Эта битовая ошибка может возникать либо на программируемой странице, либо на другой странице в блоке. Условия напряжения смещения в блок во время программирования страницы может привести к тому, что небольшое количество тока будет туннелировать в соседние ячейки памяти. Повторные попытки частичного программирования страницы продолжат усугублять это состояние ». - Дуглас Шелдон и Майкл Фри.
«Тестирование тревог во флэш-памяти» . п. 8, 9.
«Программный сбой происходит, когда бит непреднамеренно запрограммирован (от 1 до 0) во время операции программирования. ... Это условие усугубляется случайным программированием в блоке и применением нескольких частичных записей на страницы».
«Уменьшение сбоя флэш-памяти Yaffs NAND»