Nand флэш памяти что такое. Программирование NAND FLASH. Flash-память, типы NAND-памяти

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

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

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

Недостатки

Множество флэш-дисков и карт памяти выходят из строя по самым различным причинам.

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

    логические неисправности

    механические поломки

    электрические и тепловые повреждения

    сбои контроллера

    сбои и износ флэш-памяти

    конечное число циклов стирания и записи

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

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

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

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

Однако, износ флэш-памяти ускоряется лишь в случае неправильного её использования - постоянного стирания и удаления небольших файлов. Кстати, в этом кроется причина якобы более низкой надёжности USB-флэш-драйвов по сравнению с карточками различных форматов. Всё дело в том, что, к примеру, в фотоаппаратах или в плеерах ёмкость карты заполняется полностью и постепенно, в то время как у флэш-драйвов нередко более "рваный" режим эксплуатации - "записал - стёр - записал". При этом в последнем случае, несмотря на все алгоритмы и технологии, повышенному износу подвергаются одни и те же участки микросхемы. Совет здесь может быть только один: старайтесь по возможности полностью заполнять флэш-драйвы и не удалять немедленно ставшие ненужными файлы - тем самым вы продлите срок службы накопителя.

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

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

Например, в Intel уже несколько лет занимается разработкой твёрдотельной памяти на аморфных полупроводниках (Ovonic Unified Memory, OUM). В основу работы такой памяти положена технология фазового переход, аналогичная принципу записи на перезаписываемые диски CD-RW или DVD-RW, при котором состояние регистрирующего слоя изменяется с аморфного на кристаллическое, и одно из этих состояний соответствует логическому нулю, а другое - логической единице. Принципиальное отличие - способ записи: если в оптических носителях применяется нагрев лазером, то в OUM нагрев производится непосредственно электрическим током.

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

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

ВИДЫ И ТИПЫ КАРТ ПАМЯТИ И ФЛЕШ-НАКОПИТЕЛЕЙ

CF (на англ. Compact Flash ): один из старейших стандартов типов памяти. Первая CF флеш-карта была произведена корпорацией SanDisk еще в 1994 году. Данный формат памяти очень распространён и в наше время. Чаще всего он применяется в профессиональном видео- и фото-оборудовании, так как ввиду своих больших размеров (43х36х3,3 мм) слот для Compact Flash физически проблематично установить в мобильные телефоны или MP3-плееры. Кроме того, ни одна карта не может похвастаться такими скоростями, объемами и надежностью. Максимальный объём Compact Flash уже достиг размера в 128 Гбайт, а скорость копирования данных увеличена до 120 Мбайт/с.

MMC (на англ. Multimedia Card ): карта в формате MMC имеет небольшой размер - 24х32х1,4 мм. Разработана совместно компаниями SanDisk и Siemens. MMC содержит контроллер памяти и обладает высокой совместимостью с устройствами самого различного типа. В большинстве случаев карты MMC поддерживаются устройствами со слотом SD.

RS-MMC (на англ. Reduced Size Multimedia Card ): карта памяти, которая вдвое меньше по длине стандартной карты MMC. Её размеры составляют 24х18х1,4 мм, а вес - порядка 6 гр., все остальные характеристики и параметры не отличаются от MMC. Для обеспечения совместимости со стандартом MMC при использовании карт RS-MMC нужен адаптер.

DV-RS-MMC (на англ. Dual Voltage Reduced Size Multimedia Card ): карты памяти DV-RS-MMC с двойным питанием (1,8 и 3,3 В) отличаются пониженным энергопотреблением, что позволит работать мобильному телефону немного дольше. Размеры карты совпадают с размерами RS-MMC, 24х18х1,4 мм.

MMCmicro : миниатюрная карта памяти для мобильных устройств с размерами 14х12х1,1 мм. Для обеспечения совместимости со стандартным слотом MMC необходимо использовать специальный переходник.

SD Card (на англ. Secure Digital Card ): поддерживается фирмами SanDisk, Panasonic и Toshiba. Стандарт SD является дальнейшим развитием стандарта MMC. По размерам и характеристикам карты SD очень похожи на MMC, только чуть толще (32х24х2,1 мм). Основное отличие от MMC - технология защиты авторских прав: карта имеет криптозащиту от несанкционированного копирования, повышенную защиту информации от случайного стирания или разрушения и механический переключатель защиты от записи. Несмотря на родство стандартов, карты SD нельзя использовать в устройствах со слотом MMC.

SDHC (на англ. SD High Capacity , SD высокой ёмкости ): Старые карты SD (SD 1.0, SD 1.1) и новые SDHC (SD 2.0) и устройства их чтения различаются ограничением на максимальную ёмкость носителя, 4 Гб для SD и 32 Гб для SDHC. Устройства чтения SDHC обратно совместимы с SD, то есть SD-карта будет без проблем прочитана в устройстве чтения SDHC, но в устройстве SD карта SDHC не будет читаться вовсе. Оба варианта могут быть представлены в любом из трёх форматов физических размеров (стандартный, mini и micro).

miniSD (на англ. Mini Secure Digital Card ): От стандартных карт Secure Digital отличаются меньшими размерами 21,5х20х1,4 мм. Для обеспечения работы карты в устройствах, оснащённых обычным SD-слотом, используется адаптер.

microSD (на англ. Micro Secure Digital Card ): в 2011 году являются самыми компактными съёмными устройствами флеш-памяти (11х15х1 мм). Используются, в первую очередь, в мобильных телефонах, коммуникаторах и т. п., так как, благодаря своей компактности, позволяют существенно расширить память устройства, не увеличивая при этом его размеры. Переключатель защиты от записи вынесен на адаптер microSD-SD. Максимальный объём карты microSDHC, выпущенной SanDisk в 2010 году, равен 32 Гб.

Memory Stick Duo : данный стандарт памяти разрабатывался и поддерживается компанией Sony. Корпус достаточно прочный. На данный момент - это самая дорогая память из всех представленных. Memory Stick Duo был разработан на базе широко распространённого стандарта Memory Stick от той же Sony, отличается малыми размерами (20х31х1,6 мм).

Memory Stick Micro (M2) : данный формат является конкурентом формата microSD (по размеру), сохраняя преимущества карт памяти Sony.

xD-Picture Card : карта используются в цифровых фотоаппаратах фирм Olympus, Fujifilm и некоторых других.

Применение

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

Распространение получили, так называемые, USB-Flash накопители, эмулирующие работу внешних винчестеров. Эти устройства подключается, обычно, к шине USB и состоит из собственно флэш-памяти, эмулятора контроллера дисковода и контроллера шины USB. При включении его в систему (допускается "горячее" подключение и отключение) устройство с точки зрения пользователя ведет себя как обычный (съемный) жесткий диск. Конечно, производительность его меньше, чем у жесткого диска.

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

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

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

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

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

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

Как правило, массив NAND делится на множество блоков. Каждый байт в одном из этих блоков может быть индивидуально написан и запрограммирован, но один блок представляет наименьшую стираемую часть массива. В таких блоках каждый бит имеет двоичное значение 1. Например, монолитное устройство NAND флэш-памяти объемом 2 Гб обычно состоит из блоков по 2048 Б (128 КБ) и 64 на каждый блок. Каждая страница вмещает 2112 Б, и состоит из 2048 байт данных и дополнительной зоны в 64 байта. Запасные области обычно используется для ECC, информации об износе ячеек и другие накладные функции программного обеспечения, хотя физически он не отличается от остальной части страницы. NAND устройства предлагаются с 8-битным или 16-битным интерфейсом. Узел данных подключен к NAND памяти через двунаправленную шину данных 8 или 16 бит. В 16-битном режиме команды и адреса используют 8 бит, остальные 8 бит приходятся на использование во время циклов передачи данных.

Типы флэш-памяти NAND

Флэш-память NAND, как мы уже отмечали, бывает двух типов: одноуровневая (SLC) и многоуровневая (MLC). Одноуровневая флэш-память – SLC NAND (single level cell) хорошо подойдет для приложений, которые требуют высокую и среднюю плотность. Это простейшая в использовании и удобная технология. Как описано выше, SLC NAND хранит один бит данных в каждой ячейке памяти. SLC NAND предлагает относительно высокую скорость чтения и записи, хорошую производительность и алгоритмы коррекции простых ошибок. SLC NAND может быть дороже других технологий NAND в расчете на один бит. Если приложению требуется высокая скорость чтения, например, высокопроизводительная медиа карта, некоторые гибридные диски, твердотельные устройства (SSD) или другие встроенные приложения — SLC NAND может стать единственным подходящим выбором.

Многоуровневая флэш-память – MLC NAND (multilevel cell) предназначена для приложений более высокой плотности и с медленным циклом.

В отличие от SLC NAND многоуровневые ячейки MLC NAND хранят два или больше бит на одну ячейку памяти. Чтобы определить место для каждого бита, применяется напряжение и ток. В устройствах SLC требуется только один уровень напряжения. Если ток обнаружен, то значение бита равно 1; если ток не обнаружен, то бит обозначается как 0. Для устройства MLC для определения значений битов используются три разных уровня напряжения.

Как правило, MLC NAND предлагает объем в два раза больше, чем SLC NAND для одного устройства и стоит также дешевле. Поскольку SLC NAND в три раза быстрее, чем MLC NAND и предлагает производительность выше, более чем в 10 раз; но для многих приложений, MLC NAND предлагает правильное сочетание цены и производительности. В самом деле, MLC NAND представляет почти 80% от всех поставок флэш-памяти NAND. И флэш-память MLC NAND доминирует по выбору потребителя по классу SSD потому, как их производительность превосходит магнитные жесткие диски.

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

История NAND-флэш

Флэш-память NAND – это энергонезависимый твердотельный накопитель, что внес значительные изменения в индустрии хранения данных, возраст которой на сегодняшний момент составляет уже 26 лет. Флэш-память была изобретена доктором Фуджио Масуока (Fujio Masuoka) во время работы в компании Toshiba приблизительно в 1980 году. По словам Toshiba имя «флэш» было предложено коллегой доктора Масуока, г-ном Шо Цзи Аризуми (Sho-ji Ariizumi), в виду того, что процесс стирания содержимого памяти напомнил ему вспышку камеры.

Копания Toshiba поставила NAND флэш-память на коммерческую ногу в 1987 году; многое изменилось с тех пор. Рынок NAND флэш-памяти вырос быстро при продажах, в восемь раз превышающих объемы продаж памяти DRAM (Dynamic random access memory — динамическая память с произвольным доступом). NAND память стала высокопрочным устройством хранения данных и выбором многих пользователей. Такая память сегодня используется в различных картах памяти и USB-накопителях, облачных хранилищах встречается у многих пользователей, как в промышленности и предпринимательстве, так и в домашних устройствах. Устройства Apple’s iPhone, iPod и iPad, а также телефоны и планшеты на базе Android также широко используют NAND флэш-память. С тех времен это нововведение пробилось в новую эпоху, в которой потребители могут всегда воспользоваться своими файлами: видео, музыкой, книгами и документами, где бы Вы ни находились.

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

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

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

Ключевые факты, касающиеся NAND Flash

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

Флэш-чипы: увеличение объемов и более низкая цена флэш-памяти и твердотельных накопителей напрямую зависят от процесса производства микросхем флэш-памяти NAND. SanDisk и Toshiba теперь предлагают линию MLC на 128 ГБ и чип с ячейкой в 3 бита каждая. Среди крупных мировых производителей флэш-памяти находятся такие компании, как: Intel, Samsung, Seagate, Nvidia, LSI, Micron и Western Digital.

Флэш-ключи (или флэшки): первые USB-флэш были разработаны в конце 1990-х годов компанией M-Systems, которая позже была приобретена компанией SanDisk. В 2001 году в США компания IBM начала производить версию памяти объемом в 8 Мб, называемую «память ключей». Сейчас объем такой памяти достигает 128 ГБ и цены были значительно снижены.

Та же компания M-Systems стала первым производителем SSD в 1995 году. С 1999, SN.com зафиксировали 590 разных моделей, запущенных в производство 97 компаниями. Среди остальных, BiTMICRO Networks в 1999 выпустили модель E-Disk SNX35 размером в 3.5 дюйма и объемами от 128MB до 10GB, временем доступа в 500 мс и со скоростью чтения и записи в 4MБ/с с помощью интерфейса SCSI-2. В следующий год M-Systems произвели FFD SCSI объемом в 3 ГБ, 2,5 дюймовый SSD с максимальной скоростью чтения в 4 МБ/с и записи в 3 МБ/с.

Сегодня же можно получить память объемом 16 ТБ (PCIe SSD от компании OCZ) со скоростью чтения до 4 ГБ/с и записи до 3,8 ГБ/с. Компания OCZ также объявила в 2012 году о максимально малом времени записи и чтения информации: 0.04 мс для чтения и 0.02 мс для операций записи.

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

Критерии выбора устройства с NAND-флэш

Итак, когда дело доходит до выбора устройства (на примере SSD) с технологией NAND-флэш необходимо учитывать несколько критериев выбора:

Убедитесь в том, что SSD устройство, операционная и файловая система поддерживает TRIM, особенно, если карта использует контроллер жёсткого диска, что усложняет процесс сбора «мусора», ненужных данных:

— узнайте о том, поддерживает ли Ваша ОС трим можно узнать в любом источнике информации; — существуют приложения, которые способствуют добавлению трим-технологии для Вашей ОС, если такова не поддерживается. Но прежде узнайте, не повредит ли это общей производительности устройства. SSD с памятью NAND станет отличным выбором, когда нужна высокая производительность, отсутствие шума, устойчивость к внешним факторам влияния или малое потребление энергии: — непоследовательное считывание даст возможность увеличить производительность по сравнению с HDD; — узнайте о максимально возможной производительности устройства, чтобы не превысить пределы; Для лучшего выполнения операций и круглосуточного их проведения лучше выбирать SLC, чем MLC: — SSD на базе NAND отлично ускоряет работу серверов, но помните, что для этого также понадобиться запасное место для «мусора» и/или трим. — Система RAID с SSD даст высокие показатели производительности и устойчивости, но используйте специально разработанные для SSD рэйд-контроллеры, иначе накопиться столько «мусора», что не справиться даже трим или система сбора. Устройства SSD с большими показателями выносливости, конечно же, прослужат дольше: — Например, выбирайте устройство объемом в 100 ГБ вместо 128 ГБ, 200 ГБ вместо 256 ГБ и так далее. Тогда Вы будете точно знать, что 28 или 56 и так далее гигабайт памяти это, возможно, зарезервированное место для расчета износа, реорганизации файлов и дефектных ячеек памяти. Для использования в промышленности, на производстве или в офисах, лучше выбирать устройства бизнес-класса, например, PCI Express (PCIe) SSD устройство:

Карты PCIe со специально настроенным контроллером SSD может дать очень высокую производительность ввода-вывода данных и хорошую выносливость.

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

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

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

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

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


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

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

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

Опять мы имеем двумерный массив, который необходимо заполнить 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 памяти

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

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


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

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

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


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

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

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

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


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

Послесловие

Помимо тех ссылок, что раскиданы по тексту, на мой взгляд, довольно интересен

Для успешной работы с микросхемами NAND FLASH (нанд флэш) необходимо, как минимум:

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

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

Программатор для NAND FLASH должен быть очень быстрым . Программирование или чтение микросхемы обьемом в несколько Гбит на обычном программаторе по времени занимает несколько часов. Очевидно, что для более или менее регулярного программирования NAND Flash нужен специализированный быстрый программатор, адаптированный для работы с мс. высокой плотности. На сегодняшний день, самый быстрый программатор Flash NAND - ChipProg-481.

Программирование NAND FLASH на программаторах ChipProg

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

Окно "Редактор параметров микросхемы и алгоритма программирования" в интерфейсе программатора при программировании NAND Flash .

Большое количество настраиваемых параметров, формирующих алгоритм работы программатора NAND Flash продиктовано желанием предоставить универсальный инструмент, позволяющий пользователю максимально полно реализовать все особенности присущие структуре NAND Flash . Для облегчения жизни, программаторы ChipProg-481 предоставляют следующие возможности при выборе любой микросхемы NAND Flash :

  • Все параметры принимают значения заданные в предшествующем сеансе (сессии) программирования выбранной NAND Flash . (количество сохраненных сессий неограниченно).
  • Все параметры принимают значения заданные для данной NAND Flash в рамках "проекта" (количество "проектов" неограниченно)
  • Все параметры автоматически принимают необходимые значения после запуска "скрипта". "Скрипты" пишутся на встроенном в оболочку программатора C подобном языке.
  • Все (или выборочно) параметры принимают значения по умолчанию.
  • Значения всех параметров доступны для редактирования в графическом интерфейсе программатора.

Рассмотрим режимы и параметры программирования реализованные в программаторе.

Режимы программирования.

  1. Invalid Block Management
  2. Spare Area Usage
  3. Guard Solid Area
  4. Tolerant Verify Feature
  5. Invalid Block Indication Option

1. Работа с плохими блoками .

Перед программированием NAND Flash можно/нужно выбрать один из способов работы с плохими блоками.

2. Использование области Spare Area.

Do Not Use

Spare Area в микросхеме не используется. В микросхеме программируются страницы памяти без учета Spare Area.

User Data

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

User Data with IB Info Forced

Spare Area интерпретируется аналогично предыдущему случаю за исключением того, что маркеры плохих блoкoв прописываются вместо информации пользователя.

3. Guard Solid Area

Режим использования специальной области без плохих блoкoв. Обычно такие области используются в качестве загрузчиков микропроцессоров. В этой области недопустимо использование плoxих блoкoв.
Опция используется совместно с параметрами:

  • Solid Area - Start Block - начальный блoк области без плoxих блoкoв.
  • - количество блoкoв в этой области.

В случае, если внутри заданного диапазона Solid Area попадется плохой блoк, программатор выдаст ошибку.

4. Не чувствительность к ошибкам сравнения.

Эта опция позволяет включить режим не чувствительности к ошибкам сравнения.
Обычно, эту опцию имеет смысл использовать, если в устройстве пользователя применяются алгоритмы контроля и коррекции ошибок (ECC). В этих случаях допускается наличия определенного количества ошибок на определенный размер массива данных. Эти параметры и указываются в параметрах алгоритма программирования NAND Flash :

  • ECC Frame size (bytes) - размер массива данных.
  • Acceptable number of errors - допустимое количество однобитных ошибок.

5. Invalid Block Indication Option.

В этой опции выбирается информация, которая используется в качестве маркера плохих блоков. Допускается выбрать либо значение 00h, либо 0F0h.

  • IB Indication Value ~ 00 или F0

Параметры программирования.

  1. User Area
  2. Solid Area
  3. RBA Area
  4. ECC Frame size
  5. Acceptable number of errors

a. Пользовательская область.

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

Пользователю необходимо установить параметры:

  • User Area - Start Block - начальный блoк пользовательской области.
  • User Area - Number of Blocks - количество блoков в пользовательской области.

b. Область без ошибок.

Параметры режима Guard Solid Area.

  • Solid Area - Start Block - начальный блoк области без плoхих блоков.
  • Solid Area - Number of Blocks - количество блоков в этой области.

c. Область размещения RBA.

  • RBA Area - Start Block - начальный блок таблицы RBA.
  • RBA Area - Number of Blocks - количество блоков в таблице RBA.

d. Размер фрейма ECC .

  • ECC Frame Size - параметр определяющий размер массива данных, в котором допускаются однобитные ошибки.

e. Допустимое количество ошибок .

  • Acceptable number of errors - параметр определяет количество однобитных ошибок, допустимых в массиве, размер, которого определяется параметром ECC Frame size.

Карта плохих блоков

Карта плохих блоков создается в подслое Invalid Block Map. Карта блоков представляется как непрерывный массив бит. Хорошие блоки представляются значением 0, плохие блоки - 1.

Например, значение 02h по нулевому адресу говорит о том, что 0,2,3,4,5,6,7 блоки являются хорошими, 1-ый блок является плохим. Значение 01h по первому адресу говорит о том, что только 8-ой блок является плохим из группы блоков 8..15.

Копирование NAND Flash

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

  1. Получить прошивку работающей микросхемы. Как правило, для этого считывается содержимое из микросхемы-оригинала.
  2. Прошить новую аналогичную микросхему.
  3. Сравнить содержание запрограммированной мс. с прошивкой "оригинала". Если сравнение прошло, микросхема - копия готова.

В случае, когда требуется программировать NAND Flash , не все так просто и однозначно.

  1. Прошивка Nand Flash , полученная при считывании программатором из "оригинала" - существенным образом зависит от установленных в программаторе режимов и параметров.
  2. Для того что бы корректно запрограммировать новую NAND Flash и получить полную копию, необходимо перед программированием установить в программаторе режимы и параметры соответствующие прошивке "оригинала". При этом, необходимо учитывать возможность существования плохих блоков.

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

Подготовка к копированию.

Для копирования необходимы микросхема-оригинал и микросхема-копия (мс. в которую предполагается записать образ оригинала). Обязательные требования:

  1. Обе микросхемы NAND Flash и оригинал и копия должны быть одного типа.
  2. Микросхема-копия не должна иметь плохих блоков.

Чтобы определить, имеет ли микросхема-копия плохие блоки, необходимо установить микросхему в программатор, и в окне “Редактор параметров микросхемы” задать параметры микросхемы по умолчанию - кнопка "All Default".

Запускается процедура контроля на стертость (для экономии времени можно сразу же отменить эту процедуру, считывание карты плохих блоков осуществляется в самом начале). В окне "Программирование" интерфейса программатора, в поле “Информация об операциях” появляется информация о плохих блоках.


Копирование.

Перед копированием микросхемы NAND Flash в программаторе обязательно должны быть сделаны следующие настройки параметров в окне “Редактор параметров микросхемы”:

Invalid Block(IB) Management

Do NOT USE

Spare Area Usage

User Data

User Area – Number of Blocks

Максимальное значение блоков в микросхеме

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

Структура памяти NAND Flash.

NAND Flash память * подразделяется на блоки (Block) памяти, которые в свою очередь делятся на страницы (Page). Страницы бывают большие (large page) и маленькие (small page). Размер страницы зависит от общего размера микросхемы. Для маленькой страницы обычно характерны микросхемы объемом от 128Kбит до 512Кбит. Микросхемы с большим размером страницы имеют объем от 256Кбит до 32Гбит и выше. Маленький размер страницы равен 512 байтам для микросхем с байтной организацией и 256 словам для микросхем со словной организаций шины данных. Большая страница имеет размер 2048 байт для байтных микросхем и 1024 для словных. В последнее время появляются микросхемы с еще большим размером страницы. Она уже составляет 4096 байт для байтных микросхем.

Структура памяти микросхем NAND Flash с малым размером страницы фирмы STMicroelectronics.

Структура памяти микросхем с большим размером страницы фирмы STMicroelectronics.

Плохие блоки NAND Flash

Характерной особенностью микросхем NAND Flash является наличие плохих (дефектных) блоков (Bad blocks) как в новых микросхемах, так и появление таких блоков в процессе эксплуатации. Для маркирования плохих блоков, а также для сохранения дополнительной служебной информации или кодов коррекции, в архитектуре NAND Flash в дополнении к каждой странице памяти данных предусмотрена добавочная область Spare area. Для микросхем с малой страницей эта область имеет размер 16 байт / 8 слов. Для микросхем с большой страницей - 64 байта / 32 слова.

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

Маркирование плохих блоков в микросхемах NAND Flash осуществляется записью обычно значения 0 по определенному адресу в области Spare Area нулевой страницы плохого блока. Маркеры плохих блоков лежат в определенных адресах области Spare Area.

Организация памяти

Адрес маркеров плохих блоков в Spare Area

Байтная организация, размер страницы - 512 байт.

Словная организация, размер страницы - 256 слов.

Байтная организация, размер страницы - 2048 байт и больше.

Словная организация, размер страницы - 1024 слов и больше.

Нужно иметь ввиду, что маркеры плохих блоков помещаются в обычные ячейки Flash памяти Spare Area, которые стираются при стирании всего блока памяти. Поэтому для сохранения информации о плохих блоках перед стиранием обязательно нужно сохранить эту информацию, а после стирания ее - восстановить.
В программаторах ChipProg при установке опции InvalidBlockManagement в любое значение кроме Do Not Use сохранение и восстановление информации о плохих блоках происходит автоматически.

Существует три наиболее распространенных способа обработки плохих блоков:

  1. Skip Bad Blocks (Пропуск плохих блоков. )
  2. Reserved Block Area (Резервирование блоков)
  3. Error Checking and Correction (Контроль и коррекция ошибок. )

1. Пропуск плохих блоков .

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

2. Резервирование блоков.

В этом методе память всей микрохемы делится на три области: User Block Area (UBA) - пользовательская область, Block Reservoir - резервная область, следуемая сразу за пользовательской областью, и таблицу соответствия плохих блоков хорошим (Reserved Block Area - RBA).

Алгоритм замены плохих блоков в этом методе таков: при выявлении плохого блока из области UBA блок переносится в область Block Reservoir, при этом в таблице RBA делается соответствующая запись замены блока.

Формат таблицы RBA:

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

3. Контроль и коррекция ошибок .

Для увеличения достоверности данных могут использоваться алгоритмы контроля и коррекции ошибок (Error Checking and Correction - ECC). Эта дополнительная информация может помещаться в свободное пространство Spare Area.

*) Примечание: NAND ~ Not AND - в булевой математике обозначает отрицание «И»

65 нанометров - следующая цель зеленоградского завода «Ангстрем-Т», которая будет стоить 300-350 миллионов евро. Заявку на получение льготного кредита под модернизацию технологий производства предприятие уже подало во Внешэкономбанк (ВЭБ), сообщили на этой неделе «Ведомости» со ссылкой на председателя совета директоров завода Леонида Реймана. Сейчас «Ангстрем-Т» готовится запустить линию производства микросхем с топологией 90нм. Выплаты по прошлому кредиту ВЭБа, на который она приобреталась, начнутся в середине 2017 года.

Пекин обвалил Уолл-стрит

Ключевые американские индексы отметили первые дни Нового года рекордным падением, миллиардер Джордж Сорос уже предупредил о том, что мир ждет повторение кризиса 2008 года.

Первый российский потребительский процесор Baikal-T1 ценой $60 запускают в массовое производство

Компания «Байкал Электроникс» в начале 2016 года обещает запустить в промышленное производство российский процессор Baikal-T1 стоимостью около $60. Устройства будут пользоваться спросом, если этот спрос создаст государство, говорят участники рынка.

МТС и Ericsson будут вместе разрабатывать и внедрять 5G в России

ПАО "Мобильные ТелеСистемы" и компания Ericsson заключили соглашения о сотрудничестве в области разработки и внедрения технологии 5G в России. В пилотных проектах, в том числе во время ЧМ-2018, МТС намерен протестировать разработки шведского вендора. В начале следующего года оператор начнет диалог с Минкомсвязи по вопросам сформирования технических требований к пятому поколению мобильной связи.

Сергей Чемезов: Ростех уже входит в десятку крупнейших машиностроительных корпораций мира

Глава Ростеха Сергей Чемезов в интервью РБК ответил на острые вопросы: о системе «Платон», проблемах и перспективах АВТОВАЗа, интересах Госкорпорации в фармбизнесе, рассказал о международном сотрудничестве в условиях санкционного давления, импортозамещении, реорганизации, стратегии развития и новых возможностях в сложное время.

Ростех "огражданивается" и покушается на лавры Samsung и General Electric

Набсовет Ростеха утвердил "Стратегию развития до 2025 года". Основные задачи – увеличить долю высокотехнологичной гражданской продукции и догнать General Electric и Samsung по ключевым финансовым показателям.