Как работает кристалл памяти

Обновлено: 04.07.2024

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

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

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



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

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

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

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

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

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

И будет флэш…

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

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


Собственно, выявлением бэдов занимается алгоритм 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 Мбит/с!

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

Принцип работы NAND-памяти

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

Полевой транзистор с плавающим затвором — основа ячейки памяти

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


Перед нами обычный полевой транзистор, у которого, помимо управляющего, появился еще один затвор. Так вот в этом затворе, называющемся «плавающий», как раз и кроется вся особенность технологии.

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


То есть, мы можем подать напряжение и тем самым «затащить» электроны в плавающий затвор. Они там останутся, когда мы включим транзистор в следующий раз ­— заряд, сосредоточенный на плавающем затворе окажет влияние на расположенный под ними канал между стоком и истоком: пропустит или не пропустит ток через транзистор независимо от напряжения на управляющем затворе. В самом простом случае мы получаем два состояния — ток есть или тока нет. Ноль и единицу. Что нам и требовалось.


Причем это состояние может сохраняться достаточно долго. Конечно, это время не бесконечно. Постепенно заряд на «плавающем» затворе потеряется. Но этого времени вполне достаточно для хранения информации в реальных условиях применения, так как речь идет о годах.

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


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


Кроме того, сейчас используют не только металлические плавающие затворы. Появились технологии изготовления кристаллов микросхем, повышающие их надежность и позволяющие удерживать заряд в течение большего времени. Например, компания Samsung использует для захвата зарядов и работы в качестве «плавающего затвора» изолированные области из непроводящего материала нитрида кремния SiN. Они называются 3D Charge Trap Flash — «ловушки заряда». Их применение увеличивает срок хранения заряда, а, следовательно, и информации в ячейке, а также делает микросхемы экономичнее в плане энергопотребления.

NAND и NOR ячейки памяти — как они работают

Транзисторы с плавающим затвором соединяются в матрицы, хранящие слова данных по нужным адресам, разными способами. Основными являются NAND и NOR. Эти аббревиатуры представляют собой сокращения словосочетаний «Not AND» и «Not OR» — соответственно «И-НЕ» и «ИЛИ-НЕ».

Схематично способ построения матриц в двух случаях выглядит так:


Как видите из представленных схем, построение матрицы по схеме NOR удобно тем, что можно просто получить доступ к любой конкретной ячейке и записать информацию именно в нее. В случае с NAND несколько одиночных ячеек памяти соединены последовательно и для того, чтобы записать состояние «ноля» в одну из них, надо, чтобы все другие были открыты и пропускали ток.

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

Как в одной ячейке удается хранить до 4 бит данных

Небольшими размерами преимущества ячеек NAND-памяти не ограничивается. Еще один интересный и полезный момент заключается в том, что в них можно записать не один, а несколько (до четырех) битов информации. Теоретически можно и больше, но пока реально можно говорить только о четырех, так как дальше начинаются серьезные технические сложности. Тем не менее, на мероприятии Flash Memory Summit 2019 представители компании Toshiba уже представили идею записи по пять бит данных в каждую ячейку. Но пока до практического применения дело ещё не дошло.


Разберемся, как работает запись нескольких бит информации в одну ячейку. Транзистор с плавающим затвором представляет собой элемент, который может находиться не только в двух состояниях — закрытом и открытом, но и в промежуточных. Фактически это аналоговый элемент, способный пропускать по цепи сток-исток ток разной величины в зависимости от того, какой заряд имеется на затворах и какое поле им создается.

Это значит, что можно «загнать» в плавающий затвор (в 3D NAND — в «ловушку зарядов») столько электронов, сколько понадобится, чтобы пропускать определенный ток через транзистор при определенном значении порогового напряжения. Таких пороговых напряжений может быть несколько, так как есть возможность накопить заряд больше или меньше — столько, сколько потребуется, чтобы в ячейке записалась нужная информация. Далее, подавая на транзистор напряжение и контролируя ток, можно судить о его состоянии, то есть о том, какие данные он хранит.

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

С SLC-ячейками все просто. Это классические элементы памяти, которые хранят один бит с двумя состояниями, одно из которых соответствует заряженному затвору, а второе — разряженному.


MLC-ячейки в свою очередь подразделяются на:

  • MLC-ячейки. Это элементы памяти, в которых может храниться два бита информации. Соответственно, для этого надо точно фиксировать четыре режима работы транзистора, чтобы понять, какая из четырех комбинаций данных хранится — 00, 01, 10, 11.
  • TLC-ячейки. TLC — сокращение от Triple Level Cell, трехуровневая ячейка. В них может храниться три бита данных, а, следовательно, потребуется точно фиксировать уже восемь режимов работы транзистора.
  • QLC-ячейки. QLC — сокращение от Quad Level Cell, четырехуровневая ячейка. В ней помещается уже четыре бита данных. Но при этом надо фиксировать уже 16 режимов работы транзистора.

Такое увеличение плотности записи с одной стороны повышает объемы накопителей. Но с другой снижается надежность, так как требуется высокая точность записи состояния и последующего чтения данных. Увеличивается и время, которое тратится на чтение и запись данных, так как надо понять, в каком из 4, 8 или 16 режимов находится транзистор.

Дальнейшие перспективы технологии

Чтобы еще больше увеличить плотность хранения данных в одной ячейке и перейти на хранение пяти бит информации, потребуется контролировать уже 32 режима работы транзистора. Учитывая, что питание микросхем составляет единицы вольт, речь идет о том, чтобы соблюдать точность измерения и установки пороговых напряжений в сотые доли вольта. И это только одна из сложностей, которые надо решить.


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



Новый Год – приятный, светлый праздник, в который мы все подводим итоги год ушедшего, смотрим с надеждой в будущее и дарим подарки. В этой связи мне хотелось бы поблагодарить всех хабра-жителей за поддержку, помощь и интерес, проявленный к моим статьям (1, 2, 3, 4). Если бы Вы когда-то не поддержали первую, не было и последующих (уже 5 статей)! Спасибо! И, конечно же, я хочу сделать подарок в виде научно-популярно-познавательной статьи о том, как можно весело, интересно и с пользой (как личной, так и общественной) применять довольно суровое на первый взгляд аналитическое оборудование. Сегодня под Новый Год на праздничном операционном столе лежат: USB-Flash накопитель от A-Data и модуль SO-DIMM SDRAM от Samsung.

Теоретическая часть

Постараюсь быть предельно краток, чтобы все мы успели приготовить салат оливье с запасом к праздничному столу, поэтому часть материала будет в виде ссылок: захотите – почитаете на досуге…

Какая память бывает?

На настоящий момент есть множество вариантов хранения информации, какие-то из них требуют постоянной подпитки электричеством (RAM), какие-то навсегда «вшиты» в управляющие микросхемы окружающей нас техники (ROM), а какие-то сочетают в себе качества и тех, и других (Hybrid). К последним, в частности, и принадлежит flash. Вроде бы и энергонезависимая память, но законы физики отменить сложно, и периодически на флешках перезаписывать информацию всё-таки приходится.

Тут можно подробнее ознакомиться с ниже приведённой схемой и сравнением характеристик различных типов «твердотельной памяти». Или тут – жаль, что я был ещё ребёнком в 2003 году, в таком проекте не дали поучаствовать…



Современные типы «твердотельной памяти». Источник

Единственное, что, пожалуй, может объединять все эти типы памяти – более-менее одинаковый принцип работы. Есть некоторая двумерная или трёхмерная матрица, которая заполняется 0 и 1 примерно таким образом и из которой мы впоследствии можем эти значения либо считать, либо заменить, т.е. всё это прямой аналог предшественника – памяти на ферритовых кольцах.

Что такое flash-память и какой она бывает (NOR и NAND)?

Начнём с flash-памяти. Когда-то давно на небезызвестном ixbt была опубликована довольно подробная статья о том, что представляет собой Flash, и какие 2 основных сорта данного вида памяти бывают. В частности, есть NOR (логическое не-или) и NAND (логическое не-и) Flash-память (тут тоже всё очень подробно описано), которые несколько отличаются по своей организации (например, NOR – двумерная, NAND может быть и трехмерной), но имеют один общий элемент – транзистор с плавающим затвором.



Схематическое представление транзистора с плавающим затвором. Источник

Итак, как же это чудо инженерной мысли работает? Вместе с некоторыми физическими формулами это описано тут. Если вкратце, то между управляющим затвором и каналом, по которому ток течёт от истока к стоку, мы помещаем тот самый плавающий затвор, окружённый тонким слоем диэлектрика. В результате, при протекании тока через такой «модифицированный» полевой транзистор часть электронов с высокой энергией туннелируют сквозь диэлектрик и оказываются внутри плавающего затвора. Понятно, что пока электроны туннелировали, бродили внутри этого затвора, они потеряли часть энергии и назад практически вернуться не могут.

NB: «практически» — ключевое слово, ведь без перезаписи, без обновления ячеек хотя бы раз в несколько лет Flash «обнуляется» так же, как оперативная память, после выключения компьютера.

Там же, на ixbt, есть ещё одна статья, которая посвящена возможности записи на один транзистор с плавающим затвором нескольких бит информации, что существенно увеличивает плотность записи.

В случае рассматриваемой нами флешки память будет, естественно, NAND и, скорее всего, multi-level cell (MLC).

Если интересно продолжить знакомиться с технологиями Flash-памяти, то тут представлен взгляд из 2004 года на данную проблематику. А здесь (1, 2, 3) некоторые лабораторные решения для памяти нового поколения. Не думаю, что эти идеи и технологии удалось реализовать на практике, но, может быть, кто-то знает лучше меня?!

Что такое DRAM?

Если кто-то забыл, что такое DRAM, то милости просим сюда.

Опять мы имеем двумерный массив, который необходимо заполнить 0 и 1. Так как на накопление заряда на плавающем затворе уходит довольно продолжительное время, то в случае RAM применяется иное решение. Ячейка памяти состоит из конденсатора и обычного полевого транзистора. При этом сам конденсатор имеет, с одной стороны, примитивное физическое устройство, но, с другой стороны, нетривиально реализован в железе:


Устройство ячейки RAM. Источник

Опять-таки на ixbt есть неплохая статья, посвящённая DRAM и SDRAM памяти. Она, конечно, не так свежа, но принципиальные моменты описаны очень хорошо.

Единственный вопрос, который меня мучает: а может ли DRAM иметь, как flash, multi-level cell? Вроде да, но всё-таки…

Часть практическая

Flash

Те, кто пользуется флешками довольно давно, наверное, уже видели «голый» накопитель, без корпуса. Но я всё-таки кратко упомяну основные части USB-Flash-накопителя:



Основные элементы USB-Flash накопителя: 1. USB-коннектор, 2. контроллер, 3. PCB-многослойная печатная плата, 4. модуль NAND памяти, 5. кварцевый генератор опорной частоты, 6. LED-индикатор (сейчас, правда, на многих флешках его нет), 7. переключатель защиты от записи (аналогично, на многих флешках отсутствует), 8. место для дополнительной микросхемы памяти. Источник

Пойдём от простого к сложному. Кварцевый генератор (подробнее о принципе работы тут). К моему глубокому сожалению, за время полировки сама кварцевая пластинка исчезла, поэтому нам остаётся любоваться только корпусом.



Корпус кварцевого генератора

Случайно, между делом, нашёл-таки, как выглядит армирующее волокно внутри текстолита и шарики, из которых в массе своей и состоит текстолит. Кстати, а волокна всё-таки уложены со скруткой, это хорошо видно на верхнем изображении:



Армирующее волокно внутри текстолита (красными стрелками указаны волокна, перпендикулярные срезу), из которого и состоит основная масса текстолита

А вот и первая важная деталь флешки – контроллер:



Контроллер. Верхнее изображение получено объединением нескольких СЭМ-микрофотографий

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

После обработки этой картинки я кричал: «Яяяяязь!» и бегал по комнате. Итак, Вашему вниманию представляет техпроцесс 500 нм во всей свой красе с отлично прорисованными границами стока, истока, управляющего затвора и даже контакты сохранились в относительной целостности:



«Язь!» микроэлектроники – техпроцесс 500 нм контроллера с прекрасно прорисованными отдельными стоками (Drain), истоками (Source) и управляющими затворами (Gate)

Теперь приступим к десерту – чипам памяти. Начнём с контактов, которые эту память в прямом смысле этого слова питают. Помимо основного (на рисунке самого «толстого» контакта) есть ещё и множество мелких. Кстати, «толстый» < 2 диаметров человеческого волоса, так что всё в мире относительно:



СЭМ-изображения контактов, питающих чип памяти

Если говорить о самой памяти, то тут нас тоже ждёт успех. Удалось отснять отдельные блоки, границы которых выделены стрелочками. Глядя на изображение с максимальным увеличением, постарайтесь напрячь взгляд, этот контраст реально трудно различим, но он есть на изображении (для наглядности я отметил отдельную ячейку линиями):



Ячейки памяти 1. Границы блоков выделены стрелочками. Линиями обозначены отдельные ячейки

Мне самому сначала это показалось как артефакт изображения, но обработав все фото дома, я понял, что это либо вытянутые по вертикальной оси управляющие затворы при SLC-ячейке, либо это несколько ячеек, собранных в MLC. Хоть я и упомянул MLC выше, но всё-таки это вопрос. Для справки, «толщина» ячейки (т.е. расстояние между двумя светлыми точками на нижнем изображении) около 60 нм.

Чтобы не лукавить – вот аналогичные фото с другой половинки флешки. Полностью аналогичная картина:



Ячейки памяти 2. Границы блоков выделены стрелочками. Линиями обозначены отдельные ячейки

Конечно, сам чип – это не просто набор таких ячеек памяти, внутри него есть ещё какие-то структуры, принадлежность которых мне определить не удалось:



Другие структуры внутри чипов NAND памяти

Всю плату SO-DIMM от Samsung я, конечно же, не стал распиливать, лишь с помощью строительного фена «отсоединил» один из модулей памяти. Стоит отметить, что тут пригодился один из советов, предложенных ещё после первой публикации – распилить под углом. Поэтому, для детального погружения в увиденное необходимо учитывать этот факт, тем более что распил под 45 градусов позволил ещё получить как бы «томографические» срезы конденсатора.

Однако по традиции начнём с контактов. Приятно было увидеть, как выглядит «скол» BGA и что собой представляет сама пайка:



«Скол» BGA-пайки

А вот и второй раз пора кричать: «Язь!», так как удалось увидеть отдельные твердотельные конденсаторы – концентрические круги на изображении, отмеченные стрелочками. Именно они хранят наши данные во время работы компьютера в виде заряда на своих обкладках. Судя по фотографиям размеры такого конденсатора составляют около 300 нм в ширину и около 100 нм в толщину.

Из-за того, что чип разрезан под углом, одни конденсаторы рассечены аккуратно по середине, у других же срезаны только «бока»:



DRAM память во всей красе

Если кто-то сомневается в том, что эти структуры и есть конденсаторы, то тут можно посмотреть более «профессиональное» фото (правда без масштабной метки).

Единственный момент, который меня смутил, что конденсаторы расположены в 2 ряда (левое нижнее фото), т.е. получается, что на 1 ячейку приходится 2 бита информации. Как уже было сказано выше, информация по мультибитовой записи имеется, но насколько эта технология применима и используется в современной промышленности – остаётся для меня под вопросом.

Конечно, кроме самих ячеек памяти внутри модуля есть ещё и какие-то вспомогательные структуры, о предназначении которых я могу только догадываться:



Другие структуры внутри чипа DRAM-памяти

Послесловие

Помимо тех ссылок, что раскиданы по тексту, на мой взгляд, довольно интересен данный обзор (пусть и от 1997 года), сам сайт (и фотогалерея, и chip-art, и патенты, и много-много всего) и данная контора, которая фактически занимается реверс-инжинирингом.

К сожалению, большого количества видео на тему производства Flash и RAM найти не удалось, поэтому довольствоваться придётся лишь сборкой USB-Flash-накопителей:

P.S.: Ещё раз всех с наступающим Новым Годом чёрного водяного дракона.
Странно получается: статью про Flash хотел написать одной из первых, но судьба распорядилась иначе. Скрестив пальцы, будем надеяться, что последующие, как минимум 2, статьи (про биообъекты и дисплеи) увидят свет в начале 2012 года. А пока затравка — углеродный скотч:



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


Во-первых, полный список опубликованных статей на Хабре:

В-третьих, если тебе, дорогой читатель, понравилась статья или ты хочешь простимулировать написание новых, то действуй согласно следующей максиме: «pay what you want»

Наши клиенты часто интересуются внутренним устройством твердотельных накопителей. Чем определяется надежность накопителей? Почему нельзя хранить важные данные на флешках, и бывают ли надежные флешки? Зачем в контроллеры SSD-накопителей ставят многоядерные процессоры? Почему флешки больших объемов пишут быстро, а малых объемов медленно? Многие вопросы требуют длительного погружения в тему, а некоторые отпадают сами собой после небольшого ликбеза по внутреннему устройству твердотельных накопителей, о том и пойдет речь.

image

USB-флеш-накопитель, карта памяти microSD/SD, SSD-накопитель представляют собой, на первый взгляд, разные устройства, хотя на самом деле являются «близкими родственниками». Все три типа устройств относятся к твердотельным накопителям на основе NAND флеш-памяти. Забавный факт, именуемые в быту «SSD-диски» не являются дисками в прямом смысле. Название «диск» исторически унаследовано от жестких магнитных дисков (Hard Disk Drive — HDD).

Несмотря на разницу в применении, архитектура всех твердотельных накопителей в общем виде выглядит одинаково.

В состав твердотельных накопителей входят:

  • Контроллер – основной элемент твердотельного накопителя, выполняющий функции чтения, записи, контроля целостности данных и исправления битовых ошибок, возникающих в структуре NAND флеш-памяти. С одной стороны, контроллер подключается к хосту через внешний интерфейс SATA / USB / SD / PCIe, с другой – к микросхемам NAND флеш-памяти через интерфейс подключения ONFI / Toggle
  • NAND флеш-память – массив микросхем, формирующих объем памяти накопителя

image

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

NAND флеш-память

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

Остановимся на вопросах интерфейса доступа к данным и актуальных для твердотельных накопителей проблемах сохранности информации в NAND флеш-памяти.

Микросхему NAND флеш-памяти можно сравнить с архивом бумажных документов. Наподобие того, как бумаги хранятся в архиве, также электронные документы хранятся в памяти микросхем.

image

Важнейшими функциями любой системы хранения данных и архива являются:

  • Хранение данных — архив должен иметь условия, обеспечивающие сохранность бумаг
  • Доступ к информации — библиотекарь должен иметь возможность поработать с нужным документом, иначе архив бесполезен

Однако система хранения данных во флеш-памяти имеет следующие особенности:

  1. Заряд с затвора способен «утекать» со временем, что рано или поздно приведет к изменению данных. Например, как чернила на архивных бумагах со временем выцветают или растекаются, превращаясь в неразборчивые пятна. Чем дольше хранятся данные, тем меньше вероятность их потом прочитать.
  2. После записи одними и теми же цепями одинакового логического уровня заряда в разные ячейки из-за технологического разброса параметров транзисторов появится вероятность прочитать оттуда разные по величине значения заряда. (Бумага может иметь разные свойства впитывания и растекания чернил. Мелкий текст, написанный фломастером, не на каждой бумаге удастся прочитать.)
  3. Цепи записи и чтения заряда также не идеальны и имеют технологический разброс уровней напряжения программирования и порогов чтения логических уровней. (Похоже на то, как на бумажных носителях разные библиотекари по-разному могут разобрать текст, записанный разными авторами, потому что почерк у всех разный.)

image

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

Понятия интерфейса доступа и правила доступа к NAND флеш-памяти:

Контроллер

Контроллер обеспечивает подключение к хосту, и, собственно, представляется накопителем. В общем виде архитектура любого контроллера любого накопителя выглядит типично: имеются аппаратные блоки интерфейсов для обмена данными с хостом (EXT_IF) и NAND-памятью (FLASH_IF). Между блоками интерфейсов в обязательном порядке присутствует буферная оперативная память (MEM_BUF), предназначенная для оперативного кэширования данных и сглаживания потока записи/чтения данных. В контроллерах USB-накопителей буферная память составляет десятки килобайт и размещается непосредственно в самом контроллере. В высокопроизводительных системах, таких как SSD-накопители, используются внешние микросхемы памяти. Данные между интерфейсными блоками и буферной памятью передаются без непосредственного участия процессора по каналам прямого доступа к памяти (DMA, direct memory access). Участие процессора в передаче данных заключается в настройке каналов DMA и синхронизации работы блоков.

image

Любой из подключаемых накопителей является «блочным устройством». Блочное устройство – это устройство, в котором данные хранятся в виде последовательной цепочки логических блоков, обращение к которым возможно по адресу Logical Block Address (LBA). Большинство устройств поддерживает размер блока в 512 байт, который называется «сектор». Сектор является минимальной дискретной информацией, которая может быть перезаписана на блочном устройстве. То есть для замены одного байта хост должен передать целиком сектор на устройство хранения.

Для программистов, работающих с накопителями на физическом уровне (запись/чтение по физическим адресам), вполне очевидно, что запись и чтение одного сектора не должны затрагивать ни коим образом данные других секторов. Также это очевидно для пользователя блочного устройства, но NAND флеш-память, как было сказано ранее, не предоставляет такой возможности. Для того, чтобы заменить один сектор в массиве памяти NAND, необходимо перезаписать весь блок NAND флеш-памяти, размер которого составляет мегабайты. Такой метод решения задачи крайне неэффективен, так как приводит к недопустимому снижению скорости записи в NAND флеш-память относительно ее потенциальных возможностей. К тому же так как операционная система часто пишет в одни и те же адреса устройства (например, записи FAT), то блоки NAND флеш-памяти быстро придут в негодность из-за ограниченного ресурса на стирание. Чтобы увеличить скорость записи/чтения данных и продлить срок службы NAND флеш-памяти, применяются более хитрые методы адресации, переводящие логические адреса (LBA) накопителя в физические адреса NAND флеш-памяти. Алгоритм трансляции адресов NAND флеш-памяти в зарубежной литературе называется Flash Translation Layer (FTL). Если посмотреть описание контроллеров SSD (например, компании Marvell), то можно увидеть, что в состав контроллера входит до 4 процессорных ядер. Такая высокопроизводительная система в SSD необходима в первую очередь для расчета адресов трансляции.

FTL, логическая и физическая адресация

Не существует единого универсального алгоритма FTL, удовлетворяющего все запросы пользователя, в которые входят:

  • скорость записи/чтения данных по последовательным адресам
  • скорость записи/чтения данных по случайным адресам
  • срок службы накопителя
  • надежность хранения данных
  • объем и тип применяемой памяти

Суть FTL – преобразование логических адресов устройства в физичеcкие адреса NAND флеш-памяти.

image

Каждому логическому LBA ставится область памяти в NAND. Это называется Logical Unit Number Table (LUN table). Для перезаписи логического блока стираются данные свободного физического блока, после чего происходит замена в LUN table, что создает для пользователя видимость перезаписи. От того, какого размера выбираются логические блоки, зависит размер LUN table (не во всех устройствах целесообразно иметь большие объемы памяти). Существуют два принципиально разных подхода в реализации FTL: блочная адресация и страничная адресация.

Блочная адресация

В блочной адресации размер логического блока соответствует размеру физического блока. В свою очередь в массиве LUN table с индексом, равным адресу логического блока, указывается значение, соответствующее адресу физического блока. Для изменения части блока необходимо переписать весь блок целиком.

Преимуществом блочной адресации является малый размер LUN table, что актуально для устройств с малым объемом оперативной памяти, таких как USB-флеш-накопитель или карта памяти microSD. Недостатком является то, что размер блока довольно большой (порядка мегабайтов), и для перезаписи малых объемов данных (например, 512 байт) приходится переписывать весь блок.

Страничная адресация

В страничной адресации в LUN table сохраняются адреса физических страниц. Размер логического блока при этом составляет порядка десятков килобайт.

Преимуществом страничной адресации является высокая скорость перезаписи данных, как последовательно, так и в случайном порядке. Недостатком является большой размер LUN table. Поэтому в состав большинства SSD входит микросхема оперативной памяти, объемом более 100 Мбайт.

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


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

Читайте также: