Флэш-программирование NAND: детализация записи? - PullRequest
2 голосов
/ 09 сентября 2010

Кто-нибудь в курсе о доступе к записи на современных больших NAND-чипах? Какова минимальная гранулярность для записи? У меня тут микроконтроллер флеш который требует как минимум 1 и максимум 4 слов (то есть 16-битных слов) чтобы написать состояние машины сразу. Я думаю, что большой (> 1 Гбит) мигает ведут себя по-другому здесь из соображений производительности записи.

slarti

Ответы [ 2 ]

3 голосов
/ 09 сентября 2010

Итак, чтобы очистить, чтобы записать 1 бит, вы должны очистить целый блок памяти, чтобы записать 0 бит, вам нужно записать только одну ячейку памяти. Вы говорите об однократной записи (меняя некоторые биты с 1 на 0 по существу) или вы говорите об удалении фрагментов и перезаписи фрагмента, чтобы вы могли сделать некоторые биты из 0 в a? 1

Самый простой способ узнать это просто получить лист данных для рассматриваемой детали или для нескольких из них от разных поставщиков. Самый последний, который я использовал, который был основан на spi, имел что-то вроде блока стирания размером 0x10000 (65536). Более старые параллельные, которые я называю ими, с традиционной адресной шиной и шиной данных, имели что-то вроде 256 байт или 512 байт страниц, но это были не новые технологии (nand).

EDIT

Глядя на случайно выбранный документ Samsung, память размером в мегабайт имела страницы размером 256 и 512 байт, но размеры страниц в 1 и 2 гигабайта не были задокументированы (это был тип данных семейства, а не таблица спецификаций деталей). Размеры блоков находятся в диапазоне от 4K до 16K для памяти размером в МБ.

Это вырезано из веб-страницы, я гуглил и размер флеш-страницы:

"Другим важным изменением в 25-нм NAND является увеличение размера страницы. При 50 и 34 нм размер страницы IMFT составлял 4 КБ. При 25 нм на устройстве 8 ГБ размер страницы теперь составляет 8 КБ. Размер блока также увеличился от 128 до 256 страниц. "

В Википедии также есть интересная информация для nand flash:

«Пока чтение и программирование выполняются на основе страниц, стирание может выполняться только на основе блоков. Другое ограничение NAND flash - данные в блоке могут быть записаны только последовательно.»

Так что это звучит довольно плохо, вы смотрите записи 1s, требующие стирания 2MByte. Я использую эти вещи для загрузки встроенных процессоров, поэтому обычно стираю один раз и пишу один раз каждую голубую луну или около того, в идеале - одно стирание и один проход записи - и это делается на протяжении всего срока службы продукта. Для использования в качестве диска как носителя это болезненно.

Также обратите внимание, что nand и / или меньшие плотности имеют проблемы с чтением, когда слишком простое чтение местоположения может стереть соседние местоположения. Что не может быть проблемой для дисков, таких как носители, но если вы хотите запустить (выполнить) встроенный процессор из nand flash, вы можете загрузиться и с помощью минимальных циклов скопировать небольшую программу в ram, переходить в ram, у этой маленькой программы / функции есть цикл, который копирует остальную часть программы в оперативную память, и у вас заканчивается оперативная память.

0 голосов
/ 09 сентября 2010

Это полностью зависит от устройства, но обычно это мощность 2.

...