Nand flash что такое


Что такое NAND флэш-память

NAND флэш-память была представлена ​​компанией Toshiba в 1989 году. Устройства, использующие на NAND флэш-память работают по такому же принципу, как жесткий диск: информация записывается страницами по 512, 2048 и 4096 байт. К ним еще добавляются блоки ECC checksum, что как правило, имеют размер 1/32 страницы. Эти страницы объединяются в блоки по 32, 64 и 128 страниц.

Особенность этой памяти в том, что запись выполняется по страницам, а стирать можно только целые блоки по 32, 64 и 128 страниц.

Эта память также требует специального управления битыми секторами с помощью программного обеспечения драйвера устройства, либо с помощью специального контроллера. (Например SD карточки используют ок).

Чтобы компенсировать биты, спонтанно отказывают во время нормального пользования устройством NAND использует ECC (error correcting code). Методы определения контрольной суммы и исправления ошибок (ECC) в памяти NAND обнаруживают ошибку, где «битый» один бит информации в блоке. Типичный ECC исправит однобитные ошибку в каждых 2048 битах (256 байтах), используя при этом 22 биты ECC кода, или 24 бита (в каждой 4096 битах (512 байтах)). При этом, блок обозначается как недобрый в таблице логического размещения, а все его содержимое (еще невредим) копируется в новый блок; таблица логического размещения нормальных блоков при этом перезаписывается. Если в памяти повреждены более чем 1 блок, тогда содержимое блока практически утрачен, и становится невозможно восстановить его содержание. Иногда невозможно выработать безошибочные устройства памяти NAND, поэтому большинство устройств выходят в продажу с уже запрограммированной таблицей плохих блоков от производителя. Это немножко уменьшает объем памяти, однако снижается также и ее стоимость.

Первый физический блок, который не содержит ошибок (блок № 0) всегда гарантирует свою читаемость, и не может быть поврежден. Поэтому все важнейшие указатели для распределения памяти и составление плохих блоков прибора размещаются внутри этого блока (обычно указатель на плохие таблицы блоков и т. Д.). Если прибор используется для загрузки ОС, тогда этот блок также должен содержать таблицу загрузки (Master Boot Record).

laptopsdaily.com

Технологии флэш-памяти

Современному человеку нравится быть мобильным и иметь при себе различные высокотехнологичные гаджеты (англ. gadget — устройство), облегчающие жизнь, да что там скрывать, делающие ее более насыщенной и интересной. И появились-то они всего за 10-15 лет! Миниатюрные, легкие, удобные, цифровые… Всего этого гаджеты достигли благодаря новым микропроцессорным технологиям, но все же больший вклад был сделан одной замечательной технологией хранения данных, о которой сегодня мы и будем говорить. Итак, флэш-память.

Бытует мнение, что название FLASH применительно к типу памяти переводится как «вспышка». На самом деле это не совсем так. Одна из версий его появления говорит о том, что впервые в 1989-90 году компания Toshiba употребила слово Flash в контексте «быстрый, мгновенный» при описании своих новых микросхем. Вообще, изобретателем считается Intel, представившая в 1988 году флэш-память с архитектурой NOR. Годом позже Toshiba разработала архитектуру NAND, которая и сегодня используется наряду с той же NOR в микросхемах флэш. Собственно, сейчас можно сказать, что это два различных вида памяти, имеющие в чем-то схожую технологию производства. В этой статье мы попытаемся понять их устройство, принцип работы, а также рассмотрим различные варианты практического использования.

NOR

Поскольку память с такой организацией считается первой представительницей семейства Flash, с нее и начнем. Схема логического элемента, собственно давшего ей название (NOR — Not OR — в булевой математике обозначает отрицание «ИЛИ»), приведена на рисунке.

С помощью нее осуществляется преобразование входных напряжений в выходные, соответствующие «0» и «1». Они необходимы, потому что для чтения/записи данных в ячейке памяти используются различные напряжения. Схема ячейки приведена на рисунке ниже.

Она характерна для большинства флэш-чипов и представляет из себя транзистор с двумя изолированными затворами: управляющим (control) и плавающим (floating). Важной особенностью последнего является способность удерживать электроны, то есть заряд. Также в ячейке имеются так называемые «сток» и «исток». При программировании между ними, вследствие воздействия положительного поля на управляющем затворе, создается канал — поток электронов. Некоторые из электронов, благодаря наличию большей энергии, преодолевают слой изолятора и попадают на плавающий затвор. На нем они могут храниться в течение нескольких лет. Определенный диапазон количества электронов (заряда) на плавающем затворе соответствует логической единице, а все, что больше его, — нулю. При чтении эти состояния распознаются путем измерения порогового напряжения транзистора. Для стирания информации на управляющий затвор подается высокое отрицательное напряжение, и электроны с плавающего затвора переходят (туннелируют) на исток. В технологиях различных производителей этот принцип работы может отличаться по способу подачи тока и чтению данных из ячейки. Хочу также обратить ваше внимание на то, что в структуре флэш-памяти для хранения 1 бита информации задействуется только один элемент (транзистор), в то время как в энергозависимых типах памяти для этого требуется несколько транзисторов и конденсатор. Это позволяет существенно уменьшить размеры выпускаемых микросхем, упростить технологический процесс, а, следовательно, и снизить себестоимость. Но и один бит далеко не предел: Intel уже выпускает память StrataFlash, каждая ячейка которой может хранить по 2 бита информации. Кроме того, существуют пробные образцы, с 4-х и даже 9-битными ячейками! В такой памяти используются технология многоуровневых ячеек. Они имеют обычную структуру, а отличие заключается в том, что заряд их делится на несколько уровней, каждому из которых в соответствие ставится определенная комбинация бит. Теоретически прочитать/записать можно и более 4-х бит, однако, на практике возникают проблемы с устранением шумов и с постепенной утечкой электронов при продолжительном хранении. Вообще, у существующих сегодня микросхем памяти для ячеек характерно время хранения информации, измеряемое годами и число циклов чтения/записи — от 100 тысяч до нескольких миллионов. Из недостатков, в частности, у флэш-памяти с архитектурой NOR стоит отметить плохую масштабируемость: нельзя уменьшать площадь чипов путем уменьшения размеров транзисторов. Эта ситуация связана со способом организации матрицы ячеек: в NOR архитектуре к каждому транзистору надо подвести индивидуальный контакт. Гораздо лучше в этом плане обстоят дела у флэш-памяти с архитектурой NAND.

NAND

NAND — Not AND — в той же булевой математике обозначает отрицание «И». Отличается такая память от предыдущей разве что логической схемой.

Устройство и принцип работы ячеек у нее такой же, как и у NOR. Хотя, кроме логики, все-таки есть еще одно важное отличие — архитектура размещения ячеек и их контактов. В отличие от вышеописанного случая, здесь имеется контактная матрица, в пересечениях строк и столбцов которой располагаются транзисторы. Это сравнимо с пассивной матрицей в дисплеях :) (а NOR — с активной TFT). В случае с памятью такая организация несколько лучше — площадь микросхемы можно значительно уменьшить за счет размеров ячеек. Недостатки (куда уж без них) заключаются в более низкой по сравнению с NOR скорости работы в операциях побайтового произвольного доступа.

Существуют еще и такие архитектуры как: DiNOR (Mitsubishi), superAND (Hitachi) и пр. Принципиально нового ничего они не представляют, а лишь комбинируют лучшие свойства NAND и NOR.

И все же, как бы там ни было, NOR и NAND на сегодняшний день выпускаются на равных и практически не конкурируют между собой, потому как в силу своих качеств находят применение в разных областях хранения данных. Об этом и пойдет далее речь…

Где нужна память…

Сфера применения какого-либо типа флэш-памяти зависит в первую очередь от его скоростных показателей и надежности хранения информации. Адресное пространство NOR-памяти позволяет работать с отдельными байтами или словами (2 байта). В NAND ячейки группируются в небольшие блоки (по аналогии с кластером жесткого диска). Из этого следует, что при последовательном чтении и записи преимущество по скорости будет у NAND. Однако с другой стороны NAND значительно проигрывает в операциях с произвольным доступом и не позволяет напрямую работать с байтами информации. К примеру, для изменения одного байта требуется:

  1. считать в буфер блок информации, в котором он находится
  2. в буфере изменить нужный байт
  3. записать блок с измененным байтом обратно

Если еще ко времени выполнения перечисленных операций прибавить задержки на выборку блока и на доступ, то получим отнюдь неконкурентоспособные с NOR показатели (отмечу, что именно для случая побайтовой записи). Другое дело последовательная запись/чтение — здесь NAND наоборот показывает значительно более высокие скоростные характеристики. Поэтому, а также из-за возможностей увеличения объема памяти без увеличения размеров микросхемы, NAND-флэш нашел применение в качестве хранителя больших объемов информации и для ее переноса. Наиболее распространенные сейчас устройства, основанные на этом типе памяти, это флэшдрайвы и карты памяти. Что касается NOR-флэша, то чипы с такой организацией используются в качестве хранителей программного кода (BIOS, RAM карманных компьютеров, мобилок и т. п.), иногда реализовываются в виде интегрированных решений (ОЗУ, ПЗУ и процессор на одной мини-плате, а то и в одном чипе). Удачный пример такого использования — проект Gumstix: одноплатный компьютер размером с пластинку жвачки. Именно NOR-чипы обеспечивают требуемый для таких случаев уровень надежности хранения информации и более гибкие возможности по работе с ней. Объем NOR-флэш обычно измеряется единицами мегабайт и редко переваливает за десятки.

И будет флэш…

Безусловно, флэш — перспективная технология. Однако, несмотря на высокие темпы роста объемов производства, устройства хранения данных, основанные на ней, еще достаточно дороги, чтобы конкурировать с жесткими дисками для настольных систем или ноутбуков. В основном, сейчас сфера господства флэш-памяти ограничивается мобильными устройствами. Как вы понимаете, этот сегмент информационных технологий не так уж и мал. Кроме того, со слов производителей, на нем экспансия флэш не остановится. Итак, какие же основные тенденции развития имеют место в этой области.

Во-первых, как уже упоминалось выше, большое внимание уделяется интегрированным решениям. Причем проекты вроде Gumstix лишь промежуточные этапы на пути к реализации всех функций в одной микросхеме.

Пока что, так называемые on-chip (single-chip) системы представляют собой комбинации в одном чипе флэш-памяти с контроллером, процессором, SDRAM или же со специальным ПО. Так, например, Intel StrataFlash в сочетании с ПО Persistent Storage Manager (PSM) дает возможность использовать объем памяти одновременно как для хранения данных, так и для выполнения программного кода. PSM по сути дела является файловой системой, поддерживающейся ОС Windows CE 2.1 и выше. Все это направлено на снижение количества компонентов и уменьшение габаритов мобильных устройств с увеличением их функциональности и производительности. Не менее интересна и актуальна разработка компании Renesas — флэш-память типа superAND с встроенными функциями управления. До этого момента они реализовывались отдельно в контроллере, а теперь интегрированы прямо в чип. Это функции контроля бэд-секторов, коррекции ошибок (ECC — error check and correct), равномерности износа ячеек (wear leveling). Поскольку в тех или иных вариациях они присутствуют в большинстве других брендовых прошивок внешних контроллеров, давайте вкратце их рассмотрим. Начнем с бэд-секторов. Да, во флэш-памяти они тоже встречаются: уже с конвейера сходят чипы, имеющие в среднем до 2% нерабочих ячеек — это обычная технологическая норма. Но со временем их количество может увеличиваться (окружающую среду в этом винить особо не стоит — электромагнитное, физическое (тряска и т. п.) влияние флэш-чипу не страшно). Поэтому, как и в жестких дисках, во флэш-памяти предусмотрен резервный объем. Если появляется плохой сектор, функция контроля подменяет его адрес в таблице размещения файлов адресом сектора из резервной области.

Собственно, выявлением бэдов занимается алгоритм ECC — он сравнивает записываемую информацию с реально записанной. Также в связи с ограниченным ресурсом ячеек (порядка нескольких миллионов циклов чтения/записи для каждой) важно наличие функции учета равномерности износа. Приведу такой редкий, но встречающийся случай: брелок с 32 Мбайт, из которых 30 Мбайт заняты, а на свободное место постоянно что-то записывается и удаляется. Получается, что одни ячейки простаивают, а другие интенсивно исчерпывают свой ресурс. Чтобы такого не было, в фирменных устройствах свободное пространство условно разбивается на участки, для каждого из которых осуществляется контроль и учет количества операций записи.

Еще более сложные конфигурации класса «все-в-одном» сейчас широко представлены такими компаниями как, например, Intel, Samsung, Hitachi и др. Их изделия представляют собой многофункциональные устройства, реализованные в одной лишь микросхеме (стандартно в ней имеется процессор, флэш-память и SDRAM). Ориентированы они на применение в мобильных устройствах, где важна высокая производительность при минимальных размерах и низком энергопотреблении. К таким относятся: PDA, смартфоны, телефоны для сетей 3G. Приведу пример подобных разработок — чип от Samsung, объединяющий в себе ARM-процессор (203 МГц), 256 Мбайт NAND памяти и 256 SDRAM. Он совместим с распространенными ОС: Windows CE, Palm OS, Symbian, Linux и имеет поддержку USB. Таким образом на его основе возможно создание многофункциональных мобильных устройств с низким энергопотреблением, способных работать с видео, звуком, голосом и прочими ресурсоемкими приложениями.

Другим направлением совершенствования флэш является уменьшение энергопотребления и размеров с одновременным увеличением объема и быстродействия памяти. В большей степени это касается микросхем с NOR архитектурой, поскольку с развитием мобильных компьютеров, поддерживающих работу в беспроводных сетях, именно NOR-флэш, благодаря небольшим размерам и малому энергопотреблению, станет универсальным решением для хранения и выполнения программного кода. В скором времени в серийное производство будут запущены 512 Мбит чипы NOR той же Renesas. Напряжение питания их составит 3,3 В (напомню, хранить информацию они могут и без подачи тока), а скорость в операциях записи — 4 Мбайт/сек. В то же время Intel уже представляет свою разработку StrataFlash Wireless Memory System (LV18/LV30) — универсальную систему флэш-памяти для беспроводных технологий. Объем ее памяти может достигать 1 Гбит, а рабочее напряжение равно 1.8 В. Технология изготовления чипов — 0,13 нм, в планах переход на 0,09 нм техпроцесс. Среди инноваций данной компании также стоит отметить организацию пакетного режима работы с NOR-памятью. Он позволяет считывать информацию не по одному байту, а блоками — по 16 байт: с использованием 66 МГц шины данных скорость обмена информацией с процессором достигает 92 Мбит/с!

Что ж, как видите, технология развивается стремительно. Вполне возможно, что к моменту выхода статьи появится еще что-нибудь новенькое. Так что, если что — не взыщите :) Надеюсь, материал был вам интересен.

www.ixbt.com

Аналитика NAND флэш

За долгие годы работы специалисты LSI пришли к пониманию всей важности аналитики взаимодействия с NAND флэш-памятью для оптимизации производительности и увеличения времени ее жизнедеятельности. В связи с этим в компании создали группу, которая занимается изучением поведения NAND флэш и описанием особенностей взаимодействия с контроллерами LSI. Предлагаю вашему вниманию интервью с экспертом в этой области Биллом Хантом, главным инженером аналитического отдела, которое позволяет лучше понять, чем занимается группа. Все ли NAND флэш одинаковы? Конечно, нет. Спецификации NAND флэш, производительность и другие характеристики разнятся не толькоу разных производителей, они также отличаются и между моделями одного семейства. Зачастую разнятся даже чипы одной модели, произведенные в разное время, особенно на самых первых этапах и впоследствии. Порой, производители специально создают различные модели одного чипа, адресованные различным рынкам, например, для корпораций и пользовательских решений. Понимание разницы между типами NAND жизненно необходимо для построения эффективного решения.

Чем чипы NAND отличаются у разных производителей?

Существуют два «уровня» разницы между производителями чипов: различия, обусловленные разницей архитектуры, и различия между производителями, использующими одинаковую архитектуру. У производителей NAND с разным дизайном и производственным процессом отличия кардинальны. Они состоят в разной распиновке, требованиях к питанию, расположении блоков и страниц, схемах адресации, командах, процедурах восстановления при сбоях чтения и многом другом. Некоторые производители используют схожие дизайны и производственные процессы. Но даже в этом случае, их продукция может иметь существенные операционные различия. Каждое устройство может иметь уникальные свойства, зависящие от настроек при производстве, команды, диагностики. Даже при использовании стандартных интерфейсов, таких как ONFI и Toggle, нет гарантии одинаковой работы. У каждого производителя есть своя интерпретация этих стандартов.

Каковы различия между чипами NAND разных поколений?

Уменьшение геометрии при производстве чипов требует новой архитектуры. Новая архитектура приводит к изменениям в работе и спецификациям устройства NAND. Самые большие изменения вызываются ростом плотности чипов памяти. Например, размер и расположение блоков и страниц должны изменяться, чтоб справиться с новой архитектурой и возрастающей емкостью. Поскольку ячейки памяти становятся меньше и плотнее, функции обработки ошибок также должны улучшаться. Растут требования к кодам коррекции ошибок (ECC) и резервным участкам. Также NAND должны адаптироваться к возрастающей скорости появления сбойных блоков. Скорость передачи данных и производительность каждого нового поколения также должна увеличиваться, чтоб удовлетворять потребности пользователей. Это приводит к изменениям в спецификациям тайминга интерфейса и добавлению новых функций. В целом, работоспособность NAND ухудшается по мере уплотнения геометрии, и критически важно понимать эти изменения для разработки более мощных и эффективных механизмов ECC.

Какие тесты проводятся в лаборатории флэш-аналитики LSI?

Лаборатория флэш-аналитики преследует две цели. Первая — мы интегрируем устройства NAND в SSD с контроллером LSI SandForce, чтобы убедиться в том, что они работают вместе. Вторая — мы испытываем устройства NAND, чтобы увидеть, как флэш-память работает на протяжении всего своего жизненного цикла. Мы проводим тестирования в разных рабочих режимах. Понимание поведения непосредственно чипов NAND критически важно для разработки решений с надежностью и производительностью, востребованными рынком.

Проводятся ли испытания флэш-памяти «за пределами» их паспортного жизненного цикла?

Да. Поставщики NAND не всегда делятся результатами и методиками их тестов на выносливость, поэтому мы вынуждены собирать эти данные самостоятельно. Обычно, мы проводим цикли записи/стирания до тех пор, пока уровень ошибок не достигнет очень большой величины, или случится фатальный сбой. Также мы измеряем и другие параметры, например, объемы резервирования. Понимать поведение памяти по мере старения просто необходимо для того, чтобы прогнозировать, как будут вести себя устройства в сценариях реального мира.

Теги:
  • nand flash
  • nand флэш
  • lsi
  • флэш-аналитика
  • чип
  • контроллер

habr.com

Подключение NAND FLASH памяти к процессорам ADSP BF53x Blackfin®

Заказать этот номер

2007 №6

При создании систем цифровой обработки сигналов, особенно в системах обработки и воспроизведения видеоизображений и звука, зачастую возникает необходимость хранения и оперативной перезаписи больших объемов данных. Для таких задач идеально подходят микросхемы NAND флэш-памяти, которые обладают большей логической емкостью и гораздо меньшим временем записи-стирания по сравнению с традиционной NOR флэш-памятью. Поскольку NAND флэш-память имеет сложный внешний интерфейс с мультиплексированной шиной адреса, данных и команд, для работы с ней процессор должен формировать определенные комбинации команд и сигналов управления.

Введение

В ряде новых цифровых сигнальных процессоров, например, в анонсированных к выпуску в 2007 году процессорах семейств Blackfin ADSP-BF54x и ADSP-BF52x, эта возможность реализована на аппаратном уровне при помощи интегрированного контроллера. Предлагаемая статья ориентирована, в первую очередь, на разработчиков, которые применяют или планируют применять не имеющие такой аппаратной поддержки процессоры Blackfin предыдущего поколения ADSP-BF53x в своих устройствах и хотели бы добавить в них возможности записи и воспроизведения объемных файлов с изображениями, аудио-, видеоданными и др.

Технология NAND флэш-памяти зародилась как альтернатива накопителям на жестких дисках для портативных устройств, предъявляющих особые требования к потребляемой мощности. Сегодня в большинстве сотовых телефонов, «карманных» компьютеров (Personal Digital Assistant, PDA), цифровых камер, портативных медиаплееров (Portable Media Player, PMP) и других мобильных вычислительных, коммуникационных и бытовых устройств для хранения больших объемов данных и операционных систем применяется NAND флэш-память.

В свою очередь, процессоры Blackfin хорошо подходят для применения в портативных системах по причине их малой рассеиваемой мощности, высокой производительности и «конвергентной» архитектуры. Поэтому все чаще возникает задача подключения NAND флэш-памяти к процессорам Blackfin.

В этой статье обсуждается подключение к процессорам ADSP BF53x Blackfin NAND флэш-памяти как MLC-, так и SLC-типа. Статья сопровождается примерами функций низкоуровневого драйвера, работоспособность которого была проверена на аппаратной платформе, состоящей из оценочной платы ADSP-BF533 EZ-KIT LITE (ревизия 1.6) и подключенной к ней дочерней платы NAND флэш-памяти в среде VisualDSP++ 4.0 (с обновлением от апреля 2006 года).

Для того чтобы разработчики систем имели бульшую свободу действий, в статье описываются два подхода к реализации интерфейса. В качестве примера использовались микросхемы NAND флэш-памяти SLC-типа K9F2G08U0M производства Samsung и MLC-типа TC58NVG3D4CTG производства Toshiba.

NAND и NOR флэш-память

Микросхемы NOR флэш-памяти широко применяются в электронной индустрии. Они имеют простой интерфейс и годятся для прямого исполнения кода, что позволяет применять их в устройствах, не требующих хранения данных. NOR память обладает высокой скоростью чтения, однако ее быстродействие при записи и стирании невелико. По мере усложнения современных устройств от них требуется хранение все больших объемов данных и кода программ при меньшем времени записи и стирания. Все эти возможности предоставляет NAND флэш-память. Емкость современных микросхем NAND флэш-памяти варьируется от 8 до 512 Мбайт (16 Гбит макс. по данным на 2007 г. — прим. редактора). NAND память представляет собой устройство ввода/вывода, и для выполнения любой операции с ней необходим достаточно сложный драйвер.

Ячейки памяти, обращение к которым происходит чаще, становятся более подверженными возникновению ошибок. Поэтому устройства NAND флэш-памяти обычно имеют дополнительную память, которая может использоваться файловой системой для замещения плохих блоков хорошими без уменьшения доступного объема. Файловые системы для NAND флэш-памяти, такие как JFFS2, обычно стараются обеспечивать равномерный износ по всему объему памяти для увеличения срока действия устройства.

NAND флэш-память: SLC и MLC

Сегодня на рынке представлены два различных типа устройств NAND флэш-памяти: с одноуровневыми (Single-Level-Cell, SLC) и многоуровневыми ячейками (Multi-Level-Cell, MLC). Микросхемы MLC-типа способны хранить в одной ячейке памяти два или более битов, а микросхемы SLC-типа — только один бит данных.

Микросхемы MLC-типа, в отличие от микросхем SLC-типа, обладают намного большей емкостью, однако скорость выполнения операций чтения и записи у них ниже. Кроме того, требования к кодам, исправляющим ошибки (Error Correcting Codes, ECC), для устройств MLC-типа жестче, поскольку они в большей степени подвержены возникновению ошибок. Стоимость MLC флэш-памяти в пересчете на один бит намного меньше аналогичного параметра у SLC. Сравнение характеристик устройств NAND флэш-памяти двух типов приведено в таблице 1.

Таблица 1. Сравнение характеристик технологий SLC и MLC

MLC NAND флэш-память обладает хорошей производительностью, а ее низкая стоимость делает карты NAND флэш-памяти большой емкости более доступными, что позволяет значительно расширить возможности портативных устройств.

SLC NAND флэш-память больше подходит для нетривиальных задач, в которых предъявляются высокие требования к техническим характеристикам. Она имеет большое количество циклов записи-стирания, что обеспечивается за счет высокой износостойкости и надежности. Эти свойства SLC-памяти находят применение в твердотельных накопителях, устройствах, используемых для записи сейсмических данных, сетевом оборудовании, оборудовании HDTV, сканерах штрих-кодов, ударопрочных ПК, авиационных «черных ящиках», портативных устройствах хранения информации, а также «карманных» ПК и цифровых фотокамерах.

К типичным областям применения MLC NAND флэш-памяти относятся карты памяти цифровых видео- и фотокамер, USB флэш-накопители, MP3-плееры, мониторы для автомобильной диагностики, устройства GPS, аниматронные модели (роботы, имитирующие объекты живой природы), карты для видеоигр и различные электронные игрушки. Среди приложений, в которых могут использоваться микросхемы NAND памяти, изготовленные как по MLC, так и по SLC технологии — карты памяти для принтеров (хранение шрифтов), сотовые телефоны, телекоммуникационное оборудование, голосовая почта и телевизионные компьютерные приставки. Разделение областей применения SLC и MLC NAND флэш-памяти показано на рис. 1.

Рис. 1. Типичные приложения памяти SLC- и MLC-типа

В NOR флэш-памяти и других традиционных SRAM-подобных устройствах используются раздельные шины адреса и данных и базовые управляющие сигналы. NAND флэш-память оптимизирована для пересылок больших блоков информации и имеет единый набор выводов I/O (ввода/вывода), который используется как для адреса, так и для данных.

В процессорах Blackfin порты NAND флэш-памяти можно отобразить в пространстве асинхронной памяти и обращаться к ним как к стандартному устройству, отображенному в карте памяти. Аппаратный интерфейс для SLC и MLC NAND флэш-памяти идентичен.

Базовый интерфейс NAND флэш-памяти

В устройствах NAND флэш-памяти выводы I/O используются и для адреса, и для данных, а также для приема команд. Управляющие сигналы и слова команд у устройств NAND флэш-памяти SLC- и MLC-типа совпадают, поэтому интерфейс с микросхемами памяти обоих типов для всех процессоров Blackfin универсален.

Обращение к флэш-памяти осуществляется по столбцам, страницам и блокам. Чтение и программирование (запись) выполняются на уровне страниц, а операции стирания — на уровне блоков.

NAND флэш-память поддерживает базовые команды — стирание блока (block erase), программирование (запись) страницы (page program), чтение состояния (read status) и чтение страницы (page read). Для обращения к устройству необходимо выставить низкий уровень сигнала на выводе разрешения выборки кристалла (CE#). Во время активного сигнала CE# NAND флэш-память может принимать байты от хоста при низком уровне сигнала разрешения записи (WE#) или выдавать данные на хост при низком уровне сигнала разрешения чтения (RE#). При высоком уровне CE# микросхема игнорирует сигналы WE# и RE#, и линии I/O находятся в третьем состоянии. Для посылки команд в устройство при активном сигнале CE# выставляется сигнал разрешения фиксации команды (CLE). Сигнал разрешения фиксации адреса (ALE) используется для фиксации адреса в регистре адреса флэш-памяти. В таблице 2 показано, к каким внутренним регистрам происходит обращение при различных комбинациях CLE и ALE.

Таблица 2. Комбинации ALE/CLE

Микросхема K9F2G08U0M производства Samsung имеет конфигурацию 256 M×8 бит (2 Гбит) с резервной емкостью 64 Мбит. Это устройство памяти является оптимальным решением для больших энергонезависимых запоминающих систем, таких как полупроводниковые файловые запоминающие системы, а также для портативных устройств, требующих применения энергонезависимой памяти.

Микросхема может работать в диапазоне напряжений питания от 2,7 до 3,6 В. Типичное время, затрачиваемое на программирование 2112-байтной страницы, составляет 200 мкс, а операция стирания 128-килобайтного блока может быть выполнена за 2 мс. Чтение любого байта страницы данных может быть выполнено за 30 нс. Выводы I/O служат портами ввода/вывода адреса и данных, а также входами команд. Одна страница в K9F2G08U0M состоит из 2112 байтов, а один блок — из 64 страниц. Структура страниц и блоков микросхемы флэш-памяти K9F2G08U0M показана на рис. 2.

Рис. 2. Внутренняя организация микросхемы флэш-памяти K9F2G08U0M

Микросхема TC58NVG3D4CTG10 производства Toshiba — это единое NAND электрически стираемое и программируемое постоянное запоминающее устройство (NAND E2PROM) емкостью 8 Гбит с напряжением питания 3,3 В. Она имеет внутреннюю организацию из 4160 (4096+64) блоков по 128 страниц, каждая из которых, в свою очередь, содержит 2112 (2048+64) байтов.

Микросхема имеет два 2112-байтных статических регистра, которые позволяют пересылать считываемые и программируемые данные между регистром и массивом ячеек памяти с инкрементом в 2112 байтов. Операция стирания выполняется целыми блоками.

Подключение NAND флэш-памяти к процессору ADSP-BF53x

Поскольку процессоры ADSP-BF53x Blackfin не имеют интегрированного контроллера NAND флэш-памяти, для управления и обращения к подобной памяти используется программный драйвер. При подключении устройств NAND памяти к процессору Blackfin могут применяться два подхода: с использованием выводов GPIO или выводов EBIU.

Использование выводов GPIO для интерфейса с NAND флэш-памятью

Первый подход заключается в формировании всех необходимых сигналов управления при помощи выводов I/O общего назначения (GPIO). Этот подход требует внимательного согласования необходимых задержек для соблюдения требований к времени обращения памяти.

На рис. 3 показаны связи между процессором ADSP-BF533 Blackfin и микросхемой флэш-памяти Samsung K95G08U0M.

Рис. 3. Использование GPIO для интерфейса с NAND флэш-памятью

Второй подход заключается в использовании для связи с NAND флэш-памятью модуля интерфейса внешней шины (External Bus Interface Unit, EBIU) и одного вывода GPIO. Для стандартных устройств NAND флэш-памяти необходимо, чтобы сигнал CE# сохранял достоверное значение во время операции чтения. Поэтому для сохранения совместимости как со стандартной NAND флэш-памятью, так и с NAND флэш-памятью, в которой таких требований к сигналу CE# не предъявляется (CEDC NAND, Chip Enable Don't Care NAND), этот сигнал формируется при помощи вывода GPIO. Все остальные сигналы формируются непосредственно интерфейсом EBIU.

На рис. 4 показаны связи между процессором ADSP-BF533 Blackfin и микросхемой флэш-памяти Samsung K95G08U0M.

Рис. 4. Использование EBIU для интерфейса с NAND флэш-памятью

К EBIU может быть подключено до четырех банков устройств памяти с различными временными характеристиками. Каждый банк, независимо от размера используемого устройства, занимает сегмент размером 1 Мбайт, поэтому разрывов между банками не будет только в том случае, если все они полностью заполнены. Синхронизация EBIU осуществляется сигналом тактовой синхронизации системы (SCLK), на частоте которого работают все устройства синхронной памяти, подключенные к процессору. Поскольку управление EBIU осуществляется автоматически контроллером асинхронной памяти процессора Blackfin, такой способ подключения NAND флэш-памяти прост и позволяет достичь оптимальной скорости обращения.

Разработка драйвера NAND флэш-памяти

Выше рассматривались два варианта построения интерфейса с микросхемами NAND флэш-памяти K9F2G08U0M производства Samsung и TC58NVG3D4CTG производства Toshiba. Этот раздел посвящен описанию базового драйвера для второго варианта и сопровождается примерами временных диаграмм для каждой из команд. В листинге 1 дан пример реализации функции стирания блока.

В листинге 2 приведен пример реализации функции записи страницы.

В листинге 3 приведен пример реализации функции чтения страницы.

Базовые драйверы NAND флэш-памяти строятся на низкоуровневых операциях, таких как Write_Command(), Write_Address(), Wait_NAND_RDY() и Set_CE(). В этих операциях для манипуляции микросхемами флэш-памяти задействуются сигналы GPIO и линий адреса. В листинге 4 приведена реализация функции выдачи команды.

В листинге 5 приведена реализация функции управления сигналом CE#.

В листинге 6 приведена реализация функций записи регистров адреса и команд флэш-памяти.

Для чтения из устройства флэш-памяти и записи в него может использоваться механизм DMA. В данном случае программист должен гарантировать, что одновременно с этим ни к одному из остальных банков внешней памяти не будет производиться обращений, инициируемых ядром или контроллером DMA. Любые подобные обращения могут вызывать выдачу на устройство флэш-памяти ложных импульсов RD# и/или WR#, что приведет к нарушению целостности реализуемого интерфейса и возникновению непредсказуемых результатов.

На рис. 5–8 приведены временные диаграммы для описанного интерфейса, снятые с экрана осциллографа.

Рис. 5. Команда стирания

Рис. 6. Команда записи

Рис. 7. Команда чтения

Рис. 8. Команда чтения ID кристалла

NAND флэш-память типа SLC и MLC для обнаружения и исправления ошибок в битах требует применения кодов, исправляющих ошибки (ECC). Для этих целей хорошо подходит алгоритм Рида-Соломона, который стал стандартным методом кодирования для обоих типов NAND флэш-памяти.

При разработке драйверов чтения-записи NAND флэш-памяти был реализован и интегрирован в драйверы кодер-декодер 72-разрядного кода Рида-Соломона (464,456,4).

Файловые системы NAND флэш-памяти

NAND флэш-память оптимизирована для файловых структур, в которых нет необходимости читать каждое слово по отдельности, а вместо этого производится посекторный обмен данными, как при работе со стандартными накопителями на жестких дисках с файловыми системами, использующими таблицы размещения файлов (FAT).

В отличие от NOR флэш-памяти NAND флэш-память требует наличия механизма учета плохих блоков, такого как TrueFFS.

Для NAND флэш-памяти подходят уже применяемые в компьютерной индустрии файловые системы, такие как JFFS, JFFS2, FAT и т. д. Кроме того, существует единственная в своем роде файловая система, которая предназначена специально для NAND флэш-памяти и может использоваться с любой операционной системой — YAFFS (Yet Another Flash File System). В YAFFS для повышения надежности используется протоколирование коррекции ошибок и методы верификации. Эта файловая система специально разработана для работы в условиях ограничений NAND флэш-памяти и учитывает ее особенности, что позволяет достигать максимальной производительности. В последующих версиях драйвера будет добавлена реализация конкретной файловой системы для NAND флэш-памяти.

Заключение

Несмотря на то, что процессоры ADSPBF53x Blackfin не имеют интегрированного NAND-контроллера, разработчики могут с легкостью подключать NAND флэш-память типа SLC и MLC к EBIU или GPIO. Оба варианта интерфейса не требуют добавления внешней логики. Код драйвера, сопровождающий эту статью, может быть использован разработчиками при реализации драйверов для других микросхем NAND флэш-памяти.

Литература

  1. ADSP-BF533 Blackfin Embedded Processor Data Sheet, Rev. C, May, 2006. Analog Devices, Inc.
  2. MLC NAND Performance for Consumer Applications, Toshiba America Electronic Components, Inc.
  3. K9F2G08U0M 256M×8 Bit/512M×8-Bit NAND Flash Memory Data Sheet, Rev 1.2, October 31, 2005. Samsung Electronics, Inc.
  4. TC58NVG3D4CTG 8 GBIT (1G×8 BIT/512M×16 BIT) CMOS NAND E2PROM (Multi-Level-Cell) Data Sheet, Toshiba Semiconductor Company.
  5. Application Note for NAND Flash Memory, Rev. 2.0, December 1999, Memory Product & Technology Division from Samsung Electronics, Inc.
  6. ADSP-BF533 Blackfin Processor Hardware Reference, Rev. 3.2, July 2006. Analog Devices, Inc.
  7. Interfacing NAND Flash Memory with ADSP-2126x SHARC Processors (EE-279), Rev. 1, November 2005. Analog Devices, Inc.

Скачать статью в формате PDF  

Другие статьи по данной теме:

Сообщить об ошибке

Если Вы заметили какие-либо неточности в статье (отсутствующие рисунки, таблицы, недостоверную информацию и т.п.), просьба сообщить нам об этом. Пожалуйста укажите ссылку на страницу и описание проблемы.

www.kit-e.ru


Смотрите также