NAND флэш-память: особенности строения и функционирования. С какой памятью лучше SSD — MLC или TLC

Твердотельные жесткие диски с каждым годом становятся все дешевле, а вместе с тем и все популярнее. На рынке появляется больше моделей подобных накопителей, и это связано не только с предложением своего ассортимента новыми производителями, но и с использованием новых технологий «старыми игроками». Компании в данный момент выпускают на рынок SSD-диски с двумя основными типами памяти: MLC и TLC. В рамках данной статьи рассмотрим, чем они отличаются друг от друга, и какой вариант лучше купить для домашнего использования.

Обратите внимание: Также можно встретить в продаже твердотельные жесткие диски, память в которых обозначена V-NAND или 3D NAND. Данная память все равно относится к типу MLC или TLC, о подобных обозначениях также расскажем ниже.

Оглавление: Рекомендуем прочитать:

Типы памяти SSD дисков

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

  • По методу чтения и записи. Современные твердотельные накопители используют тип памяти NAND;
  • По способу хранения данных. Разделить по способу хранения данных SSD накопители можно на SLC и MLC. Расшифровать аббревиатуры можно как «одноуровневая ячейка» или «многоуровневая ячейка». В случае с памятью SLC в одной ячейке может содержаться не более одного бита данных, тогда как во второй ситуации в одной ячейке может храниться более одного бита. В потребительских твердотельных накопителях используется MLC технология хранения данных.

TLC – это подвид MLC памяти. Если в стандартной MLC памяти хранится 2 бита информации в одной ячейке, то в варианте TLC может хранить три бита информации в одной ячейке памяти. То есть, TLC – это тоже многоуровневая ячейка.

Обратите внимание: Некоторые производители твердотельных дисков указывают не TLC, а 3- bit MLC или MLC-3. По сути, все эти три варианта означают одно и то же.

TLC или MLC: что лучше

Если не рассматривать детали, то можно сказать, что в общем случае тип памяти MLC лучше, чем TLC, вот несколько его преимуществ:

  • Память подобного типа прослужит дольше, в среднем, на 20-30%;
  • MLC работает быстрее, чем TLC;
  • Твердотельные накопители на базе памяти MLC требуют меньше энергии для работы.

За лучшее качество нужно платить, и наличие памяти типа MLC сказывается на стоимости твердотельных жестких дисков – они дороже, чем варианты на TLC.

Но если вдаваться в детали и рассматривать использование SSD-дисков с данными типами памяти на пользовательском уровне, стоит сказать, что отличия между ними не столь велики, и далеко не всегда есть смысл переплачивать за MLC память. Многое в их работе зависит от других факторов, например от интерфейса подключения. Рассмотрим пару вариантов наглядно:

Подводя итог, можно сделать вывод, что однозначно MLC или TLC вариант не выигрывает. Факторов, которые влияют на скорость работы твердотельного накопителя, огромное множество. Если приобрести емкий SSD-диск на основе TLC памяти, он может оказаться лучше от одного производителя, чем модель на MLC от другого производителя, при этом по стоимости они будут одинаковыми. На потребительском уровне покупателю следует ориентировать не на тип памяти, а на показатели того или иного диска в тестах, которые производители всегда публикуют. Разниться показатели в тестах могут даже у моделей одной компании, выпускаемой в разных линейках, несмотря на одинаковый тип памяти в них.

Что такое 3D NAND, 3D TLC и V-NAND в SSD-памяти

Еще один параметр, который может заметить покупатель при выборе твердотельного жесткого диска – это 3D NAND, 3D TLC или V-NAND. В зависимости от производителя данное свойство носит различные названия, но суть одна. При наличии подобного обозначения следует знать, что в данной модели накопителя ячейки флэш-памяти расположены на чипах в несколько слоев, тогда как при отсутствии такого обозначения, скорее всего, они наложены в один слой.

NAND и NOR: что они такое, и с чем их едят

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

Итак, сокращения NOR и NAND обозначают тип логических элементов, используемых в данной единице флэш-памяти. NOR обозначает логический элемент ИЛИ-НЕ (NOT OR), а NAND - И-НЕ (NOT AND). Но, поскольку мне сейчас не хочется читать вам курс булевой алгебры и основ цифровой логики, которая вам, к тому же, и не нужна, остановимся лишь на результатах использования этих технологий.
Основная функция накопителей на флэш - хранить информацию. И отсюда вытекает первое различие: достигнутые сегодня плотности записи для технологии NAND превосходят достигнутые в NOR, причем разница измеряется в порядках. И требования хранения больших объемов и компактности однозначно определяют технологию используемой флэш-памяти. Впрочем, это не единственный критерий. Не менее важной является возможность выполнять в памяти записанный программный код, т.е. так называемая XIP Capability (XIP - eXecute In Place). Такая возможность существует у NOR-технологии и отсутствует у NAND. Так получается, что основным назначением памяти, произведенной по технологии NAND, является хранение данных, а по технологии NOR - хранение исполнимого программного кода и, в меньшей степени, данных (что обусловлено не только доступным малым объемом - чуть позже мы вернемся к этому).

Флэш-устройства делятся на части, которые называются блоками. Это необходимо делать для преодоления некоторых физических ограничений и из ценовых соображений. Запись в любом устройстве флэш определенного блока может быть произведена только если этот блок пуст или очищен. В большинстве случаев получается так, что операции записи должна предшествовать операция стирания. И если в NAND-устройствах операция стирания блока может быть произведена сразу, то в NOR-устройствах необходимо предварительно установить все байты блока в ноль. Нужно также сказать что типичное значение размера блока в NOR-устройствах составляет 64 или 128 Кб (8-32 Кб у NAND), что в сочетании с и так невысокими скоростями работы флэш приводит к тому, что операции записи со стиранием могут занимать до нескольких секунд. Это и является сдерживающим фактором применения NOR-флэша в качестве носителя данных. А применение его для хранения исполнимого кода возможно в том случае, если он устраивает в плане производительности - требования не должны быть высокими. Время стирания памяти NAND измеряется в миллисекундах и имеет первый порядок. А малый размер блока в случае неблагоприятных внешних условий гарантирует потерю минимального объема данных. Итак, подводя итог по этому абзацу: операции чтения NOR несколько быстрее NAND; операции же записи, наоборот, быстрее у NAND, причем значительно; благодаря малому размеру блока NAND в единицу времени нуждается в меньшем числе стираний (что, как мы увидим ниже, еще и способно продлить срок ее функционирования в устройстве), которые она проводит приблизительно на три порядка быстрее, чем NOR.

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

Но у любой технологии не могут быть только положительные стороны. В этом смысле NAND тоже не исключение. Как и при эксплуатации любых накопителей, возможны случайные ошибки чтения и порча накопителя в целом. Для устройств памяти флэш-типа актуально говорить о безошибочном чтении, обработке плохих блоков и числе циклов чтения/записи. Явление ошибочного вычитывания битов (называется bit-flipping) больше характерно для NAND-памяти, чем для NOR. Вред от одного ошибочного бита определяется типом данных, к которым он принадлежит. Так, для мультимедийных данных это окажется несущественным, но подобная ошибка в программном коде или критически важных данных может привести к весьма трагическим результатам. Как я уже сказал, для NOR-памяти это явление менее характерно, а память на технологиях NAND нуждается в использовании какого-то дополнительного механизма обнаружения и коррекции ошибок.

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

Рабочий ресурс микросхем флэш выражается в минимально и максимально возможном числе циклов стирания каждого отдельного блока (а мы уже знаем, что каждая запись блока обязательно сопровождается его предварительным стиранием). Для памяти на технологиях NOR оно составляет 10.000 и 100.000 циклов соответственно, для NAND - 100.000 и 1.000.000 циклов. Все предельно просто, и комментировать нечего.
Использование NOR-памяти отличается сравнительной простотой. Она не нуждается в каких-либо дополнительных драйверах, а может быть просто установлена и использована. C NAND сложнее, так как разные производители используют разные интерфейсы, и для нее скорее всего понадобится драйвер. Впрочем, несмотря на то, что у NAND-памяти много преимуществ, вы не должны думать, что NOR - это вчерашний день. NOR-память сегодня находит применение в многочисленных устройствах, не нуждающихся в больших объемах и некритичных к производительности. NAND находит применение в тех областях, где бОльшая сложность по применению оправдывается большИми доступными объемами и производительностью.

По материалам компаний - производителей флэш
M-Systems, Samsung и др.

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

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

NOR

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

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

NAND

Устройство и принцип работы ячеек у нее такой же, как и у 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 Мбит/с!

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

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

Начнем с того, что рассмотрим два типа NAND-памяти – а именно SLC-(single-level cell ) и MLC-(multi-level cell ) устройства. В SLC приборах одна ячейка памяти хранит один бит информации – именно такие устройства мы обсуждали в предыдущей статье. Возможно только два состояния ячейки памяти (полевого транзистора с плавающим затвором). Первое состояние соответствует заряженному затвору, а второе, соответственно, разряженному. Тут все просто – подаем пороговое напряжение и по наличию или отсутствию тока стока можем определить, какой бит записан в данную ячейку памяти.

MLC приборы отличаются тем, что одна элементарная ячейка может хранить несколько бит информации, чаще всего два бита. В таких устройствах различают 4 уровня заряда плавающего затвора, что соответствует 4 возможным сохраненным состояниям:

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

MLC-память имеет меньшее количество максимально возможных циклов перезаписи по сравнению с SLC. Кроме того, SLC быстрее – то есть операции чтения/записи/стирания выполняются за меньшее количество времени. А поскольку для определения состояния ячейки памяти используется только одно пороговое значение напряжения, при использовании SLC-памяти меньше вероятность возникновения ошибки. Но это не значит, что MLC хуже. MLC-память, во-первых позволяет сохранять большее количество информации, а во-вторых дешевле. То есть с точки зрения отношения цена/качество MLC, в принципе, выглядит предпочтительнее.

Переходим к структуре NAND-памяти 😉

Как мы помним, в отличие от NOR-памяти, при использовании NAND мы не имеем доступа к произвольной ячейке памяти. Все ячейки объединены в страницы. А страницы объединены в логические блоки. Каждая страница помимо сохраненной пользователем информации содержит некоторые дополнительные данные – информация о “плохих” блоках, дополнительная служебная информация для коррекции ошибок.

Сложность при работе с NAND заключается в том, что невозможно получить доступ к какой-то конкретной ячейке информации. Запись данных можно производить только постранично, то есть если мы хотим изменить какой-то бит, то нам нужно перезаписать все страницу целиком. А стирать данные и вовсе можно только блоками. Вот для примера характеристики микросхемы NAND-памяти NAND128W3A: размер страницы – 512 байт + 16 байт дополнительной служебной информации, размер блока – 16 кБайт, то есть 32 страницы.

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

Со структурой разобрались, напоследок я бы еще хотел немного рассказать о том, как осуществляется подключение микросхем NAND-памяти.

А для этого используется параллельная шина передачи данных, Ширина шины – 8 или 16 байт, в зависимости от конкретного устройства. Линии данных объединены с линиями адреса, что позволяет уменьшить количество занятых выводов. Вот тут хорошо описаны управляющие сигналы и их назначение:

Если мы хотим подключить память к микроконтроллеру, то лучше всего выбрать контроллер, в котором есть аппаратная поддержка передачи данных по параллельному интерфейсу. Например, многие STM32 оснащены модулем FSMC, который позволяет подключить внешнее устройство памяти. Но в это мы сейчас не будем углубляться, лучше оставим эту тему до будущих статей 😉 Возможно, в ближайшее время как раз и попробуем соорудить небольшой пример для STM32, в котором будем записывать и считывать данные из NAND-памяти, так что до скорых встреч!)

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

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

рис.1 Структура NOR рис.2 Структура NAND

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

Основные отличия в параметрах флэш-памяти, изготовленной по различным технологиям, приведены в таблице 1.

Таблица 1. Сравнительные характеристики модулей памяти на основе ячеек NAND и NOR

Параметр NAND NOR
Емкость ~ 1 Гбит (2 кристалла в корпусе) ~ 128 Мбит
Напряжение питания 2.7 – 3.6 В 2.3 – 3.6 В
Ввод/вывод х8 / х16 х8 / х16
Время доступа 50 нС (цикл последовательного доступа)
25 мкС (случайный доступ)
70 нС (30 пФ, 2.3 В)
65 нС (30 пФ, 2.7 В)
Скорость программирования (типовая) -
200 мкС / 512 байт
8 мкС / байт
4.1 мС / 512 байт
Скорость стирания (типовая) 2 мС / блок (16 кБ) 700 мС / блок
Совокупная скорость
программирования и стирания (типовая)
33.6 мС / 64 кБ 1.23 сек / блок (основной: 64 кБ)

Ведущим лидером в производстве NAND-флэш микросхем является фирма Hynix. Она производит несколько разновидностей микросхем памяти, различающихся по следующим ключевым параметрам:

  • емкость (256 Мбит, 512 Мбит и 1 Гбит);
  • ширина шины, 8 или 16 бит (х8, х16);
  • напряжение питания: от 2.7 до 3.6 В (3.3 В устройства) или от 1.7 до 1.95 В (1.8 В устройства);
  • размер страницы: в х8 устройствах (512 + 16 запасных) байт, в 16х – (256 + 8 запасных) слов;
  • размер блока: в х8 устройствах (16 К + 512 запасных) байт, в 16х – (8 К + 256 запасных) слов;
  • время доступа: случайный доступ 12 мкС, последовательный 50 нС;
  • время программирования страницы 200 мкС;

Все микросхемы NAND-флэш от Hynix характеризуются типичным временем стирания блока 2 мС, имеют аппаратную защиту данных при переходных процессах по питанию и позволяют выполнять 100000 циклов записи/стирания. Гарантированное время сохранности данных составляет 10 лет. Важной особенностью микросхем памяти Hynix является их повыводная совместимость вне зависимости от емкости. Это позволяет очень легко улучшать потребительские характеристики конечного изделия. В таблице 2 приведены базовые параметры всех микросхем NAND-флэш фирмы Hynix.

Таблица 2. Сравнительный перечень микросхем NAND-флэш фирмы Hynix

Об"ем Тип Организаця Напряжение
питания
Диапазон
рабочих
температур*
Сккорость
(ns)
Корпус
256Mbit 32Mx8 1.8V C,E,I 50 TSOP/WSOP/FBGA
32Mx8 3.3V C,E,I 50 TSOP/WSOP/FBGA
16Mx16 1.8V C,E,I 50 TSOP/WSOP/FBGA
16Mx16 3.3V C,E,I 50 TSOP/WSOP/FBGA
512Mbit 64Mx8 1.8V C,E,I 50 TSOP/WSOP/FBGA
64Mx8 3.3V C,E,I 50 TSOP/WSOP/FBGA
32Mx16 1.8V C,E,I 50 TSOP/WSOP/FBGA
32Mx16 3.3V C,E,I 50 TSOP/WSOP/FBGA
1Gb 128Mx8 1.8V C,E,I 50 TSOP/WSOP/FBGA
128Mx8 1.8V C,E,I 50 TSOP/WSOP/FBGA
128Mx8 3.3V C,E,I 50 TSOP/WSOP/FBGA
128Mx8 3.3V C,E,I 50 TSOP/WSOP/FBGA
64Mx16 1.8V C,E,I 50 TSOP/WSOP/FBGA
64Mx16 1.8V C,E,I 50 TSOP/WSOP/FBGA
64Mx16 3.3V C,E,I 50 TSOP/WSOP/FBGA
64Mx16 3.3V C,E,I 50 TSOP/WSOP/FBGA

* - Диапазоны температур
C - Коммерческий диапазон рабочих температур 0...+70°C
E - Расширенный диапазон рабочих температур -25...+85°C
I - Индустриальный диапазон рабочих температур -40...+85°C

Более детально особенности микросхем памяти Hynix можно рассмотреть на примере кристаллов серии HY27xx(08/16)1G1M. На рис.3 показана внутренняя структура и назначение выводов этих приборов. Линии адреса мультиплексированы с линиями ввода/вывода данных на 8-ми или 16-ти разрядной шине ввода/вывода. Такой интерфейс уменьшает количество используемых выводов и делает возможным переход к микросхемам большей емкости без изменения печатной платы. Каждый блок может быть запрограммирован и стерт 100000 раз. Для увеличения жизненного цикла NAND-флэш устройств настоятельно рекомендуется применять код корректировки ошибок (ECC). Микросхемы имеют выход «чтение/занят» с открытым стоком, который может использоваться для идентификации активности контроллера PER (Program/Erase/Read). Поскольку выход сделан с открытым стоком, существует возможность подключать несколько таких выходов от разных микросхем памяти вместе через один «подтягивающий» резистор к положительному выводу источника питания.


Рис.3 Внутренняя организация микросхем NAND-флэш Hynix

Для оптимальной работы с дефектными блоками доступна команда «Copy Back». Если программирование какой-либо страницы оказалось неудачным, данные по этой команде могут быть записаны в другую страницу без их повторной отправки.

Микросхемы памяти Hynix доступны в следующих корпусах:

  • 48-TSOP1 (12x20x1.2 мм) – рис.4;
  • 48-WSOP1 (12х12х0.7 мм)
  • 63-FBGA (8.5х15х1.2 мм, 6х8 массив шаровых контактов, 0.8 мм шаг)


Рис.4 NAND-флэш Hynix

Массив памяти NAND-структуры организован в виде блоков, каждый из которых содержит 32 страницы. Массив раздел на две области: главную и запасную (рис.5). Главная область массива используется для хранения данных, в то время как запасная область обычно задействована для хранения кодов коррекции ошибок (ECC), программных флагов и идентификаторов негодных блоков (Bad Block) основной области. В устройствах х8 страницы в главной области разделены на две полустраницы по 256 байт каждая, плюс 16 байт запасной области. В устройствах х16 страницы разделены на главную область объемом 256 слов и запасную объемом 8 слов.


Рис.5 Организация массива NAND-памяти

NAND-флэш устройства со страницами 528 байт / 264 слова могут содержать негодные блоки, в которых может быть одна и более неработоспособных ячеек, надежность которых не гарантируется. Помимо этого, дополнительные негодные блоки могут появиться в ходе эксплуатации изделия. Информация о плохих блоках записывается в кристалл перед отправкой. Работа с такими блоками выполняется по процедуре, детально описанной в справочном руководстве по микросхемам памяти Hynix.

При работе с микросхемами памяти выполняются три основных действия: чтение (рис.6), запись (рис.7) и стирание (рис.8).

Процедура чтения данных


Рис.6 Диаграмма процедуры чтения

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

Чтение страницы выполняется после доступа в режиме случайного чтения, при котором содержимое страницы переносится в буфер страницы. О завершении переноса информирует высокий уровень на выход «Чтение/занят». Данные могут быть считаны последовательно (от выбранного адреса столбца до последнего столбца) по импульсу сигнала на Read Enable (RE).

Режим последовательного построчного чтения активен, если на входе Chip Enable (CE) остается низкий уровень, а по входу Read Enable поступают импульсы после прочтения последнего столбца страницы. В этом случае следующая страница автоматически загружается в буфер страниц и операция чтения продолжается. Операция последовательного построчного чтения может использоваться только в пределах блока. Если блок изменяется, должна быть выполнена новая команда чтения.

Процедура записи данных


Рис.7 Диаграмма процедуры записи

Стандартной процедурой записи данных является постраничная запись. Главная область массива памяти программируется страницами, однако допустимо программирование части страницы с необходимым количеством байт (от 1 до 528) или слов (от 1 до 264). Максимальное число последовательных записей частей одной и той же страницы составляет не более одной в главной области и не более двух в резервной области. После превышения этих значений необходимо выполнить команду стирания блока перед любой последующей операцией программирования этой страницы. Каждая операция программирования состоит из пяти шагов:

  1. Один цикл на шине необходим для настройки команды записи страницы.
  2. Четыре шинных цикла требуются для передачи адреса.
  3. Выдача данных на шину (до 528 байт / 264 слов) и загрузка в буфер страниц.
  4. Один цикл на шине необходим для выдачи команды подтверждения для старта контроллера PER.
  5. Выполнение контроллером PER записи данных в массив.

Процедура стирания блока


Рис.8 Диаграмма процедуры стирания

Операция стирания выполняется за один раз над одним блоком. В результате её работы все биты в указанном блоке устанавливаются в «1». Все предыдущие данные оказываются утерянными. Операция стирания состоит из трех шагов (рис.8):

  1. Один цикл шины необходим для установки команды стирания блока.
  2. Только три цикла шины нужны для задания адреса блока. Первый цикл (A0-A7) не требуется, поскольку верны только адреса с А14 по А26 (старшие адреса), А9-А13 игнорируются.
  3. Один цикл шины необходим для выдачи команды подтверждения для старта контроллера PER.

Помимо Hynix микросхемы NAND-памяти выпускаются еще несколькими производителями, среди которых весьма большую номенклатуру и объем продаж изделий имеет компания Samsung. Она производит две базовые линейки микросхем памяти NAND Flash и One NAND™. Модули памяти семейства One NAND™ представляют собой одиночный кристалл памяти со стандартным интерфейсом NOR-флэш, основанный на массиве ячеек NAND-флэш.

Ассортимент выпускаемых компанией Samsung изделий более широк, чем у Hynix. Представлены модули емкостью от 4 Мбит до 8 Гбит, работающие в коммерческом и индустриальном температурных диапазонах. Доступны как 8-ми, так и 16-разрядные модификации на разные диапазоны питающих напряжений: 1,65…1,95 В или 2,7…3,6 В. Выпускаемые Samsung изделия имеют развитые аппаратные возможности защиты данных: защиту от записи для BootRAM, защитный режим для Flash-массива и защиту от случайной записи при включении и выключении.

В остальном устройство микросхем памяти Hynix и изделий семейства NAND Flash от Samsung практически идентично. В этой ситуации предпочтительным для потребителя вариантом является продукция того производителя, рыночная стоимость изделий которого наиболее приемлема.

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

Таблица 3. Преимущества и недостатки использования NAND-флэш в твердотельных накопителях

Категория Содержимое
Возможности Преимущества Хранилище данных, которые могут быть переданы через USB
Малый размер, легкость создания портативных устройств
Нет ограничений в объеме памяти
Безопасное хранение данных, физически более надежное в сравнении в HDD
Поддержка функции «горячей» установки Plug&Play
Быстрая скорость передачи:
USB 1.1: максимум до 12 Мбод, USB 2.0: максимум 480 Мбод
Превосходная совместимость со стандартизованным USB интерфейсом
Возможность питания от USB порта (500 мА, 4,5…5,5 В)
Недостатки Необходимость в программном обеспечении в операционной системе хост-контроллера
Необходимость в использовании чипсета USB-хоста
Высокая стоимость в сравнении с HDD сравнимой емкости
Емкость продукта От 16 Мбит до 8 Гбит
Скорость передачи Запись До 13 Мб/с под USB 2.0 у карты CF от SanDisk
Чтение До 15 Мб/с под USB 2.0 у SanDisk
Применение ПК (настольные, переносные), DVC,PDA, сотовые телефоны и пр.
Ведущие производители, использующие флэш-память M-Systems, Lexar Media, SanDisk и др.
Ассоциации USB-IF (форум конструкторов USB), UTMA (ассоциация универсальной транспортабельной памяти)