Прошивка Nand flash
Обновлено: 21.11.2024
В этом документе представлена основная информация о флэш-памяти NAND, используемой во встраиваемых системах. В нем обсуждаются различные аспекты этого носителя данных, такие как интерфейс, архитектура, источник ошибок и исправление ошибок, а также программное обеспечение, необходимое для создания приложения.
Введение
Флэш-память стала очень популярной в электронных системах. Они используются для хранения информации о программах и данных, они позволяют обновлять прошивку в полевых условиях, когда продукт уже развернут. Они позволяют хранить огромное количество файлов на одном маленьком чипе.
Флэш-память NOR широко используется в качестве прямой замены обычной памяти ПЗУ, с другой стороны, флэш-память NAND не так популярна, возможно, из-за другого подхода к доступу, другого интерфейса и особых требований к работе, хотя они являются отличным решением при больших объемах. требуется хранение. Они могут хранить данные, а также программную информацию с высокой надежностью данных. Они могут служить заменой вращающимся устройствам хранения носителей, где последние нецелесообразны, например, в условиях сильных механических ударов.
История
Именно Toshiba впервые представила NAND Flash в конце 80-х годов прошлого века. Это стало следствием работы над технологией Flash, которая привела к значительному уменьшению размера одной ячейки. Однако за это пришлось заплатить удобством для пользователя. Здесь нет такого интерфейса, как в памяти NOR или SRAM, есть только шина данных и протокол связи для передачи команд и данных в микросхему памяти.
Ячейка NAND Flash состоит из одного полевого транзистора, оснащенного дополнительным затвором, называемым плавающим затвором, который хранит дополнительный заряд вместе с информацией. Набор транзисторов последовательно подключается по одному стоку к истоку, образуя вентиль И – для считывания информации с выбранной страницы битовая линия тока протекает через все транзисторы. Тот, что на выбранной странице, определяет фактическое значение бита.
MLC и SLC
В начале ячейка памяти хранила только один бит информации. Однако зарядом плавающего затвора можно управлять с некоторой степенью точности, что позволяет хранить больше информации, чем просто 0 и 1. На основе такого предположения появилась память MLC (Multi Level Cell). Чтобы отличить старые воспоминания, их назвали SLC - Single Level Cell.
Решение о выборе между SLC и MLC зависит от многих факторов, таких как производительность памяти, количество целевых циклов стирания/программирования и уровень надежности данных. Срок службы памяти MLC значительно ниже (около 10 000 циклов стирания/программирования) по сравнению с ресурсом памяти SLC (около 100 000 циклов).
Интерфейс
Как и любая другая память, флэш-память NAND имеет интерфейс с внешним миром. Его основное отличие от NOR Flash заключается в отсутствии выделенных адресных линий, так как адрес хранится во внутреннем регистре памяти и передается в память вместе с командами и дополнительными данными.
В настоящее время существует два типа интерфейса NAND Flash. Асинхронный похож на обычный интерфейс SRAM, другой — на синхронный интерфейс DDR; он доступен в двух вариантах — Source Synchronous DDR и Toggle Mode DDR. Source Synchronous DDR — это решение, предложенное ONFI, в то время как Toggle Mode DDR используется Samsung в их памяти. Интерфейс DDR обеспечивает гораздо более высокую производительность, чем асинхронный интерфейс, но требует использования выделенного контроллера.
Асинхронный интерфейс
Рис. 1. Операция чтения страницы в асинхронном интерфейсе
Исходный синхронный интерфейс
Исходный синхронный интерфейс, представленный в стандарте ONFI 2.0, аналогичен интерфейсу DDR SRAM. Имеется двунаправленный стробирующий сигнал (DQS), сигналы чтения и записи объединены в один сигнал. Данные по шине данных передаются на обоих краях сигнала DQS, поэтому при работе DQS на частоте 100 МГц мы можем получить 200 МТ/с (мегапередачи в секунду).
Рис. 2. Операция чтения страницы в исходном синхронном интерфейсе
Команды
Флэш-память NAND управляется набором команд; набор, который варьируется от памяти к памяти. В соответствии со стандартом ONFI (5) приведенный ниже список представляет собой базовый обязательный набор команд с соответствующими кодами команд (первый/второй байт).
- Чтение, 00:30
- Изменить столбец чтения, 05h/E0h
- Стирание блока, 60 ч./D0 ч.
- Статус чтения, 70 ч.
- Страница, 80/10 ч.
- Изменить столбец записи, 85 ч.
- Чтение идентификатора, 90 ч.
- Чтение страницы параметров, ECh
- Сброс, FFh
Внутренняя архитектура
Как было сказано в начале, флэш-память NAND не позволяет произвольно обращаться к любому месту в памяти. Вместо этого существуют запрашиваемые группы байтов, называемые страницами.В случае чтения запрошенная страница внутренне переносится из флэш-матрицы в регистр страницы, и только оттуда данные страницы могут быть доступны последовательно, байт за байтом, начиная с байта в указанном месте на странице. Адрес в пределах активной страницы может быть свободно изменен для чтения других байтов с данной страницы памяти. Изменение адреса страницы требует повторного выполнения команды чтения матрицы.
Страницы сгруппированы в блоки, которые представляют собой наименьшую область, которую можно стереть, а отдельная страница — это наименьшая область, которую можно запрограммировать. Блоки организованы в плоскости, а плоскости - в логические устройства (LUN).
На диаграмме ниже представлен пример архитектуры памяти со следующими параметрами:
- Размер страницы: 4320 Б (4096 + 224 Б)
- Размер блока: 128 страниц.
- Размер плоскости: 512 блоков.
- Размер LUN: 4 плоскости
Также важно отметить, что страницы должны быть записаны в последовательном порядке внутри блока, сначала должна быть записана страница с номером 0, а затем страница 1. Запись последовательности не допускается, так как нарушение этого правила увеличивает частоту битовых ошибок. Отдельный блок не нужно записывать сразу. То есть блок может быть записан страницами от 0 до 11, а потом, например, страницами от 12 до 32. Как правило, страницы необходимо записывать сразу целиком, хотя некоторые типы памяти поддерживают так называемое «программирование частичной страницы», что позволяет записывать подстраницу размером 512 байт + соответствующую резервную область (см. ниже). Допускается ограниченное количество частичных операций записи.
Организация страницы
Страницы размером в два килобайта (2 КБ, 4 КБ, 8 КБ…), расширенные дополнительным пространством. Основная область называется областью данных, а расширенная часть может называться вспомогательной или запасной областью. Эта резервная область предназначена для хранения кодов исправления ошибок и метаданных. Метаданные содержат управляющую информацию, такую как счетчик циклов стирания, метка сбойного блока, информация о логическом адресе. Эти два пространства — информационное и вспомогательное — не были четко разграничены по форме доступа, поэтому реальная организация страницы остается на усмотрение дизайнера. Они могут выбрать то, что им удобнее. Дополнительно пользовательские данные разбиты на подстраницы, то есть кодовые слова для отдельного вычисления ECC. Самый распространенный способ — хранить данные в нижней части страницы, а метаданные вместе с контрольными суммами исправления ошибок — в верхней части, как показано ниже.
Некоторые реализации предпочитают другую организацию для повышения производительности или удобства использования. На приведенной ниже диаграмме показана ситуация, когда контрольная сумма исправления ошибок сохраняется сразу после каждой подстраницы.
Однако во многих случаях пользователю не нужно заботиться об организации страницы, так как за него это сделает специальный контроллер или программное обеспечение для управления флеш-памятью.
Источник и тип ошибки
Источником ошибки может быть перепрограммирование, нарушение программы, потеря заряда, утечка заряда между соседними ячейками или ловушка заряда в оксиде с плавающим затвором.
Не все из них неисправимы, поэтому они были разделены на две группы — серьезные и программные ошибки. Жесткие ошибки — это те, которые не подлежат восстановлению; ловушка заряда принадлежит им. Ловушка заряда отвечает за износ ячеек памяти с течением времени и проявляется при стирании или программировании.
Другая группа, программные ошибки, могут быть исправлены циклом стирания/перепрограммирования блока. Обычно они появляются при операции чтения и могут быть невидимы для пользователя, поскольку ECC может их исправить.
Схема использования памяти влияет на частоту ошибок по битам. Неполное программирование страниц, непоследовательное программирование страниц внутри блока, избыточное чтение на блок без стирания, а также неравное количество операций чтения в одном блоке увеличивают количество ошибок нарушения чтения. (2)
Исправление ошибок
Чтобы соответствовать коэффициенту битовых ошибок приложений, то есть стать менее уязвимыми и защищенными от ошибок, требуется исправление ошибок. Это еще более важно при работе с памятью типа MLC из-за присущей им более высокой уязвимости к потере заряда. В то время, когда на рынке преобладали небольшие SLC-памяти, простого алгоритма Хэмминга было достаточно. Его способность исправлять однобитовую ошибку и обнаруживать двухбитовую ошибку подходит для большинства систем, и ее можно даже реализовать в программном обеспечении. В настоящее время с памятью высокой плотности и MLC более сложные алгоритмы начали использоваться в гораздо более широком масштабе. Два из них должны быть перечислены здесь: Reed-Salomon и BCH (Bose, Ray-Chaudhuri и Hocquenghem); последний встречается гораздо чаще, в основном из-за лучшей производительности с точки зрения скорости, а также площади кремния. Настоятельно рекомендуется использовать аппаратное ускорение алгоритма BCH.
Многие готовые контроллеры памяти содержат различные варианты ECC, включая Hamming и BCH.Аппаратная реализация ECC снижает нагрузку на процессор и позволяет лучше оптимизировать алгоритм за счет увеличения его производительности, поскольку программная реализация операций с полем Галуа нецелесообразна из-за отсутствия аппаратной поддержки умножения конечного поля (1). Аппаратная реализация поддерживает также параллельную обработку шагов алгоритма.
Плохой блок и выравнивание износа
Для повышения производительности и снижения производственных затрат флэш-память NAND может содержать ограниченное количество сбойных блоков при отправке с завода. Плохой блок — это блок, содержащий больше битовых ошибок, которые может исправить рекомендованный ECC. Плохие блоки не влияют на производительность памяти, поскольку блоки изолированы друг от друга.
Согласно стандарту ONFI, метка сбойного блока должна располагаться по первому адресу первой или последней страницы сбойного блока (5). Продавцы, которые не соблюдают стандарт ONFI, могут использовать другое расположение плохой отметки.
Поскольку процедуры заводского тестирования очень строгие и проводятся в различных условиях, очень важно просканировать всю память и создать начальную таблицу сбойных блоков, прежде чем произойдет какая-либо операция стирания/программирования. Первоначальную информацию о сбойных блоках следует тщательно записывать и поддерживать, поскольку количество сбойных блоков увеличивается с течением времени.
Информация о неисправных блоках обычно хранится в каждом блоке памяти и в специальной системной таблице. В системной таблице хранится живая копия таблицы плохих блоков. В случае, когда живая копия признана недействительной, ее можно восстановить, прочитав метки плохих блоков со всех блоков в памяти. Очень важно, чтобы все метки плохих блоков были актуальными, действительными и неповрежденными. Кроме того, система может сохранить резервную копию таблицы сбойных блоков и использовать ее для восстановления активной копии.
Циклы стирания/программирования вызывают дополнительный заряд ячеек памяти (задерживают электроны); накопление этого заряда со временем приводит к износу ячеек памяти. Для смягчения этого эффекта требуется выравнивание числа циклов стирания/записи по всей памяти, что называется выравниванием износа. Таким образом, срок службы памяти может быть значительно продлен при одновременном уменьшении количества плохих блоков. Просто чтобы проиллюстрировать (4), давайте предположим, что у вас есть память NF размером 2048 блоков с выносливостью 10 000 циклов стирания/программирования. Система обновляет 3 файла по 20 блоков каждый, каждый файл обновляется 3 раза в час, всего 9 обновлений в час. Следующее уравнение (4) можно использовать для расчета срока службы памяти.
Без выравнивания износа эффективно используются только 80 блоков. Рассчитаем время жизни для этого случая:
При выравнивании износа используется вся память, поэтому повторно используются 2048 блоков — посчитаем время жизни этих 2048 блоков:
Эти простые расчеты доказывают, что выравнивание износа необходимо и стоит усилий по его внедрению.
Программное обеспечение
Для управления различными аспектами и характеристиками флэш-памяти NAND требуется поддержка специального программного обеспечения. Ниже представлены краткие пояснения по Flash Translation Layer, Bad block management, Wear-leveling и Garbage collection.
FTL, управление дефектными блоками и выравнивание износа
Уровень трансляции флэш-памяти отвечает за преобразование логического адреса сектора в физический адрес страницы памяти. Это необходимо, поскольку флэш-память требует подхода стирания перед записью и «не любит» чрезмерную многократную запись в одно и то же место. FTL тесно связан с управлением неисправными блоками и выравниванием износа. Как объяснялось ранее, управление плохими блоками гарантирует, что плохие блоки не используются, поэтому, если запрашивается доступ к поврежденному местоположению, оно перемещается в правильное место.
Существует два метода управления выравниванием износа: статический и динамический. Основное отличие заключается в размере пула блоков. Динамическое выравнивание износа выравнивает только блоки с динамическими данными, то есть блоки, в которых хранятся файлы, которые часто обновляются. Следовательно, пул управляемых блоков — это всего лишь часть всей памяти. Предположим, что 60% памяти из предыдущего примера содержат статические данные (такие как операционная система, медиафайлы и т. д.), а 40% — динамические данные (журналы, счетчики использования файлов, таблица FAT и т. д.). Эти 40 % переводятся в 819 блоков в динамическом пуле со следующим временем жизни:
Статическое выравнивание износа оптимизирует износ всей памяти. Блоки, хранящие динамические, а также статические данные, управляются, когда разница в счетчиках использования между блоками, содержащими статические и динамические данные, достигает определенного уровня, тогда данные меняются местами между блоками, а блоки с наименьшим износом используются для хранения динамических данных. Следовательно, теоретический срок службы составляет более 13 лет.
Увеличение срока службы памяти в условиях динамического износа достигается за счет увеличения нагрузки на программное обеспечение. Другие преимущества и недостатки обоих методов представлены в (4)
Сборка мусора
Сборка мусора — это процесс очистки памяти.В результате записи и обновления данных в памяти некоторые страницы становятся недействительными. Это вызывает фрагментацию памяти с течением времени. Сборщик мусора должен выбрать соответствующий блок, переместив все его действительные страницы в новый блок и удалив выбранный блок. Таким образом, свободные блоки становятся доступными для записи.
Сборка мусора обычно запускается при низком уровне свободных блоков. Он также может выполняться как периодическая задача или как фоновая операция операционной системы. Сборка мусора гарантирует, что система не будет голодать из-за нехватки свободных блоков для записи данных. Важность сбора мусора возрастает по мере эскалации операций обновления данных.
Файловая система
Эта файловая система находится на вершине пирамиды программного обеспечения NAND Flash. Он предоставляет механизм для доступа к файлам простым и привычным способом. Файловая система может быть выделена для флэш-памяти NAND (JFFS2, SafeFLASH), и в этом случае она включает поддержку управления флэш-памятью, или это может быть файловая система более общего назначения, такая как FAT16/32. В последнем случае требуется выделенный уровень управления флэш-памятью с FTL и сборкой мусора. Выбор файловой системы определяется многими факторами, которые выходят за рамки этой статьи.
Файловая система содержит процедуры для хранения местоположения файла и обеспечения целостности данных на носителе. Пользовательский интерфейс прикладного программирования (API) обычно состоит из набора стандартных функций C, таких как fopen, fread, fwrite, ferase, fclose.
Строительная система — элементы, которые следует рассмотреть в качестве резюме
Построение системы с флэш-памятью NAND — непростая и непростая задача. Это требует анализа многих факторов и условий не только производителя памяти и плотности памяти, но и размера страницы и резервной области, интерфейса и его производительности, алгоритма исправления ошибок и программного обеспечения. Для оптимизации использования памяти необходимо оценить схему подключения с учетом сценария использования, который сильно влияет на производительность и уровень сложности системы. (1)
Некоторые системы могут работать с флэш-памятью NAND, подключенной напрямую к шине данных микропроцессора, в то время как другие не могут работать без специального контроллера. Это особенно применимо для высокоскоростной памяти с синхронным интерфейсом DDR. Контроллер разгружает работу памяти с основного микропроцессора, он обрабатывает исправление ошибок, конкретную схему работы памяти и выполняет автоматические передачи между системной памятью и чипами NAND Flash. В более сложных решениях контроллер может оптимизировать последовательность операций с памятью для достижения максимальной производительности. Во многих случаях использование относительно простого контроллера позволяет значительно упростить конструкцию и снизить нагрузку на микропроцессор.
Некоторые контроллеры также поддерживают загрузку с флэш-памяти NAND, то есть некоторые выделенные страницы загружаются в ОЗУ при запуске системы. При таком подходе можно избежать использования выделенного программного ПЗУ.
Программная часть решения также очень важна. Обычно система, использующая флэш-память NAND, использует какую-либо файловую систему (FAT16/32, JFFS2, SafeFLASH). В более простом приложении, не требовательном к файловой системе, может быть достаточно только Flash Translation Layer.
Отказоустойчивость
Очень важная тема, которую необходимо здесь упомянуть, — отказоустойчивость приложения NAND Flash. Если требуется сохранить стабильное состояние памяти, то отказоустойчивость необходимо учитывать на каждом уровне приложения снизу вверх от флэш-памяти NAND до пользовательского приложения (3). Необходимо принимать во внимание такие моменты, как стабильность питания, порядок записи данных и информация о стабильности метаданных.
Библиография
<р>1. ЛЕЙЛЕЙ СОН, КЕШАБ К. ПАРХИ, ИЧИРО КУРОДА И ТАКАО НИШИТАНИ. Проектирование аппаратного и программного обеспечения пути передачи данных с конечным полем для кодеков Рида-Соломона с низким энергопотреблением. ТРАНЗАКЦИИ IEEE В СИСТЕМАХ КРУПНОМАСШТАБНОЙ ИНТЕГРАЦИИ (СБИС). Апрель 2000 г., Том. 8, № 2, с. 160. <р>2. ДЖИМ КУК, MICRON TECHNOLOGY, INC. Направление технологии флэш-памяти. WinHEC, 2007 г. <р>3. ДЕЙВ ХЬЮЗ. Проектирование отказоустойчивых систем хранения для встраиваемых приложений. Встроенное управление Европа. Сентябрь 2009 г., с. 6-7. <р>4. MICRON TECHNOLOGY, INC. Методы выравнивания износа в устройствах флэш-памяти NAND. Micron Technology, Inc., октябрь 2008 г. <р>6. MICRON TECHNOLOGY, INC. Вопросы проектирования и использования флэш-памяти NAND. август 2008 г.Как вы относитесь к этой статье? Помогите нам улучшить контент для вас.
Спасибо! Ваш отзыв получен.
Не удалось отправить отзыв. Повторите попытку позже.
Что вы думаете об этой статье?
Что такое флэш-память NAND?
Флэш-память NAND – это технология энергонезависимого хранения данных, не требующая питания для хранения данных. Повседневным примером может служить мобильный телефон с флэш-памятью NAND (или микросхемой памяти, как ее иногда называют), где файлы данных, такие как фотографии, видео и музыка, хранятся на карте microSD.Чипы флэш-памяти NAND имеют размер примерно с ноготь и могут хранить огромные объемы данных.
Некоторые примеры флэш-памяти NAND приведены ниже: SD-карта слева и USB-карта справа.
Для чего используется флэш-память NAND?
Флэш-память NAND окружает нас повсюду: в смартфонах, современных телевизорах, компьютерах и планшетах дома и в офисе. Он также встречается снаружи, во всех видах оборудования, от светофоров до цифровых рекламных щитов, систем оповещения пассажиров и дисплеев. Все, что имеет искусственный интеллект (ИИ) и нуждается в сохранении данных, скорее всего, содержит флэш-память NAND.
Флеш-память NAND доступна в различных классах; промышленные и потребительские. Существуют значительные различия между NAND промышленного и потребительского класса, поэтому важно учитывать влияние этих различий на надежность, выносливость, соответствие требованиям и общую стоимость владения (TCO), прежде чем выбирать флэш-память NAND, подходящую для вашего приложения.
Производственный процесс
Способ изготовления флэш-памяти NAND может существенно повлиять на характеристики производительности.
Флэш-память NAND проходит более 800 различных производственных процессов, и на изготовление одной пластины (размером с большую пиццу, как правило, диаметром 300 мм) уходит около 30 дней, см. изображение ниже. Фабрики NAND или «FABS» огромны, работают 24/7, 365 дней в году для максимальной эффективности и в 100 раз чище, чем операционные больниц. FABS может производить различные типы флэш-памяти NAND (SLC, MLC, 3D — подробнее об этом ниже) и разных размеров. Некоторые из крупнейших FABS могут производить более 100 000 пластин в месяц.
После того, как пластина разделена или нарезана на отдельные чипсы, они анализируются и оцениваются как 1, 2, 3 или 4, где 1 означает наивысшее качество. Затем чипы отправляются поставщику, например Kingston Technology, который использует NAND в своих продуктах.
Чипы самого высокого качества будут иметь наилучшие характеристики производительности и, следовательно, более высокую цену.
Типы флэш-памяти NAND
Проще говоря, данные, хранящиеся во флэш-памяти NAND, представлены электрическими зарядами, хранящимися в каждой ячейке NAND. Разница между одноуровневой ячейкой (SLC) и многоуровневой ячейкой (MLC) NAND заключается в том, сколько бит каждая ячейка NAND может хранить одновременно. SLC NAND хранит только 1 бит данных на ячейку. Как следует из их названий, 2-битная память MLC NAND хранит 2 бита данных на ячейку, а 3-битная MLC NAND хранит 3 бита данных на ячейку. 3-битный MLC называется трехуровневой ячейкой (TLC) и четырехуровневой ячейкой (QLC). Чем меньше битов на ячейку, тем меньше емкость, но данные записываются и извлекаются быстрее, а микросхема NAND имеет более высокий уровень надежности, поэтому прослужит намного дольше. Таким образом, SLC является самым быстрым и имеет самую высокую надежность, но меньшую емкость (обычно до 64 ГБ). TLC намного медленнее, с низкой выносливостью, но имеет гораздо более высокий порог емкости.
На приведенном ниже графике показано количество битов на ячейку и их основные характеристики.
Новинка в мире — 3D NAND
На рынке флэш-памяти NAND появился новый игрок — 3D NAND. Хотя концепция 3D NAND не нова (она существует уже почти десятилетие), она широко вышла на рынок только в последние пару лет. Возможно, это самая крупная разработка NAND с момента ее создания в 1980-х годах, но заставить 3D NAND стабильно работать было проблемой. Однако теперь эти проблемы преодолены, и 3D NAND, несомненно, будет основной флэш-памятью NAND на долгие годы
.С точки зрения непрофессионала, 3D NAND — это размещение микросхем памяти друг над другом. Некоторые производители называют это V (от вертикального) NAND. Цель этой NAND — заставить приложения и устройства работать быстрее и эффективнее, хранить больше информации и потреблять меньше энергии. Первой компанией, запустившей технологию 3D NAND, была Samsung. Это известная всем компания, крупнейший в мире производитель флэш-памяти NAND, на долю которой приходится более 40 % мирового рынка NAND.
Получить стабильную работу 3D NAND в широком диапазоне рабочих температур (от -40 °C до 85 °C) было непростой задачей для некоторых производителей, поставляющих данные на промышленные рынки. Стандартная рабочая температура от 0°C до 70°C достаточна для потребительского класса, рабочего места, сервера и центров обработки данных, но для приложений, работающих в суровых условиях или удаленных местах, этого температурного диапазона недостаточно. У поставщиков промышленных хранилищ теперь было время проанализировать и протестировать 3D NAND до такой степени, что она стабильно работает в широком диапазоне рабочих температур, и теперь она доступна для промышленных приложений.
Различия между типами флэш-памяти NAND
У каждого типа флэш-памяти NAND есть свои плюсы и минусы. SLC хранит меньше данных, но очень быстр и обладает максимальной надежностью. Однако он самый дорогой. Другие типы NAND могут хранить больше данных и дешевле, но имеют гораздо более низкий уровень надежности и часто медленнее.Поэтому при принятии решения о том, какая флэш-память NAND подходит для приложения, важно тщательно учитывать эти характеристики и их влияние на производительность приложения.
Вероятно, ключевым отличием между типами NAND является долговечность или циклы программного стирания (P/E). Из-за того, как работает флэш-память NAND, требуется, чтобы ячейка была стерта, прежде чем в нее можно будет записать. Процесс стирания, а затем записи ячейки называется циклом P/E. Каждый раз, когда ячейка стирается, она повреждается или изнашивается, поэтому у каждой ячейки есть время жизни. Это усугубляется составом NAND Flash. Ячейка может быть стерта только как блок и записана как страница. Размер каждого блока и страницы определяется конструкцией чипа NAND Flash, но блок состоит из многих страниц. Если информация в ячейке изменяется, она записывается в другую ячейку, а старые данные помечаются как «готовые к удалению». Затем «хорошие» данные в блоке перемещаются в другое место, а весь блок стирается.
Поэтому часто, даже если данные в ячейке не изменяются, они все равно проходят цикл P/E. Ячейки изнашиваются максимально равномерно с использованием технологии выравнивания износа. Весь этот процесс увеличивает количество циклов P/E и гарантирует, что флэш-память NAND не будет заполнена избыточными данными. Срок службы устройства определяется как выносливость и пропорционален циклам P/E флэш-памяти NAND. Помните ранее о хранении битов данных в каждой ячейке?
При сравнении различных типов NAND типичные циклы P/E выглядят следующим образом:
- 60 000 сомони
- MLC от 1 500 до 3 000 (более низкая износостойкость для потребительских товаров и более высокая для промышленных)
- 3D TLC от 500 до 3000 (более низкая износостойкость для потребительских товаров и более высокая для промышленных)
Как видно, существует значительная разница в долговечности NAND, и выбор неправильного типа повлияет на производительность приложения.
3D XPoint (произносится как точка пересечения) — это новый тип памяти, совместно разработанный Intel и Micron. Intel и Micron заявили, что 3D XPoint будет в 1000 раз быстрее и в 1000 раз более долговечным, чем флэш-память NAND, а также будет иметь в 10 раз большую плотность хранения по сравнению с обычной памятью. Ранние продукты, безусловно, быстрее и надежнее, чем NAND, и более плотные, чем обычная память, но они еще не в полной мере соответствуют этим требованиям.
3D XPoint можно найти в линейке продуктов Intel Optane, которые постепенно проникают на рынок настольных компьютеров и ноутбуков.
Преодоление разрыва с помощью режима SLC
Режим SLC представляет собой гибрид MLC с 2 битами на ячейку, в котором используется интеллектуальная прошивка для эмуляции состояний хранения SLC. Это приводит к увеличению срока службы MLC (20–30 000 циклов P/E) всего за небольшую часть стоимости по сравнению с SLC. Для промышленных применений, где стоимость и надежность имеют одинаковое значение, это предлагает хорошую золотую середину. На рынке режим SLC часто называют pSLC, а у некоторых производителей есть собственные торговые марки, например iSLC и aMLC, но по сути это одно и то же.
В приведенной ниже сравнительной таблице показаны различия между основными типами флэш-памяти NAND и их основные характеристики.
Различия между NAND потребительского и промышленного класса
NAND промышленного класса обычно представляет собой SLC, режим SLC и MLC, а до недавнего времени — 3D TLC. Промышленный класс допускает широкие возможности настройки и работает в широком диапазоне рабочих температур от -40 °C до 85 °C. Он используется в аэрокосмической, оборонной, транспортной, медицинской, морской, энергетической и информационно-развлекательной отраслях, и это лишь некоторые из них.
Потребительский сорт не может быть изменен и работает при температуре от 0 °C до 70 °C. обычно он используется в телефонах, ноутбуках, планшетах, ПК и телевизорах.
После 2020 года
3D NAND — это огромная разработка, которая, несомненно, имеет свои преимущества. Но действительно ли он идеален для промышленного применения? Ответ заключается в том, что это действительно зависит от того, для чего он используется.
Поскольку 3D NAND становится все более популярным в промышленных секторах, есть некоторые опасения, что производство SLC и MLC прекратится, поэтому инженеры стремятся перейти на технологию 3D NAND. SLC и MLC не исчезнут в одночасье, на самом деле спрос и предложение по-прежнему высоки, учитывая их уникальные характеристики производительности и атрибуты настройки.
Конечно, нет необходимости немедленно переходить на 3D NAND, поскольку эта технология все еще является относительно новой для промышленного рынка и будет развиваться в течение следующих нескольких лет по мере того, как специализированные промышленные производители, такие как Innodisk и ATP Electronics, будут расширять границы этого. технология. Его, безусловно, стоит рассматривать вместе с продуктами SLC и MLC, но он находится в нижней части диапазона цен, долговечности и производительности.
Разнообразие архитектур флэш-памяти NAND, постоянная миграция на новые, более продвинутые технологические процессы и постоянное внедрение новых функций сделали разработку подсистем флэш-памяти NAND более сложной, чем когда-либо.
Текущая ситуация на рынке флэш-памяти NAND предоставляет разработчикам три возможности. Они могут создавать свои собственные дискретные решения, используя флэш-контроллеры и отдельные устройства NAND. Они могут использовать встроенные контроллеры NAND (в чипсетах/процессорах) вместе с отдельными устройствами NAND. Или они могут купить управляемые решения NAND, которые предлагают всю подсистему памяти NAND в готовом решении.
Контроллеры NAND решили эту проблему, предложив простой стандартизированный интерфейс между хост-системой и блоком флэш-памяти независимо от источника. В дискретном решении OEM-производители обычно покупают контроллеры и микросхемы памяти NAND у разных поставщиков, а затем монтируют устройства на плате. После включения системы файловая система флэш-памяти в контроллере распознает устройства памяти, выполняет все необходимые процедуры установления связи для поддержки флэш-носителей и выполняет низкоуровневое форматирование.
В последнее время поставщики начали решать эту проблему, предлагая управляемые решения NAND, которые выводят простоту конструкции на новый уровень за счет объединения встроенного контроллера ATA с одним или несколькими флэш-памятью NAND в многокристальном корпусе. Предлагая полное готовое решение хранения NAND в компактном корпусе, этот подход обеспечивает привлекательную экономию средств и места и оказался очень популярным во встраиваемых приложениях, использующих стандартный протокол ATA/IDE.
Как дискретные, так и управляемые решения NAND используют микроконтроллер (MCU) для декодирования всех команд хоста и преобразования их в команды флэш-памяти. Для повышения производительности MCU обычно поддерживается небольшим буфером SRAM между хостом и флэш-устройствами. Чтобы устранить любую задержку, которая может возникнуть из-за накладных расходов MCU, в этих решениях обычно используется блок DMA для интерфейса между MCU и каналом данных, работающим между шиной ATA IDE хоста и флэш-памятью. Блок DMA перемещает данные между буфером SRAM и флэш-памятью, чтобы уменьшить нагрузку на микроконтроллер.
Ключевым отличием любой подсистемы флэш-памяти NAND, будь то управляемая или дискретная, является встроенная файловая система флэш-памяти, которая управляет механизмом квитирования между хостом и флэш-памятью. С точки зрения разработчика, эта возможность значительно упрощает задачу записи данных в память за счет автоматической компенсации многих уникальных архитектурных различий между флэш-устройствами от разных поставщиков, таких как требования к исправлению ошибок, размер страницы или количество битов в ячейке. Его также можно использовать для хранения уникальных пользовательских функций или добавления исправлений ошибок, когда это необходимо. Наконец, файловая система флэш-памяти также обычно содержит ряд важных функций управления носителями, которые помогают обеспечить целостность данных и увеличить срок службы подсистемы флэш-памяти NAND.
Однако не все реализации файловой системы флэш-памяти одинаковы. Многие контроллеры реализуют файловую систему флэш-памяти в более дешевом программируемом по маске ПЗУ. Контроллеры других производителей, например SST, используют встроенную перепрограммируемую флэш-память для выполнения этой задачи. Учитывая высокую скорость изменений в технологии NAND, это различие имеет решающее значение. Разработчики, использующие контроллер, который хранит прошивку в ПЗУ, должны генерировать трудоемкую и дорогостоящую смену маски, чтобы перепрограммировать устройство каждый раз, когда им нужно обновить прошивку. Эта проблема также относится к SoC со встроенными контроллерами NAND. Разработчики, использующие эти устройства, неизбежно не успевают за большим количеством изменений, происходящих в конструкции ИС памяти NAND, и поэтому должны ограничивать выбор компонентов. С другой стороны, разработчики, использующие контроллеры, которые хранят свои микропрограммы во встроенной флэш-памяти, могут быстро и недорого модифицировать свои устройства по мере того, как поставщики флэш-памяти внедряют новые функции. Эта возможность дает системным разработчикам больше гибкости при проектировании подсистемы памяти за счет использования компонентов от более широкого круга поставщиков для быстрого выхода на рынок, лучшей доступности и экономической эффективности.
Основные функции
Независимо от того, планирует ли разработчик использовать управляемый или дискретный подход, он или она должен обратить внимание на ряд ключевых функций, обеспечивающих максимальную производительность, долговечность ИС памяти NAND и целостность данных. Одной из ключевых особенностей является встроенная схема кода исправления ошибок (ECC). Случайные ошибки чтения обычно возникают при использовании флэш-памяти NAND из-за ошибок, вызванных операциями чтения/записи, выполняемыми в соседних ячейках. Схемы ECC решают эту проблему, проверяя и корректируя точность данных при их передаче в память и из памяти.
Управление поврежденными блоками — еще одна важная функция любой подсистемы памяти NAND.В то время как флэш-память NOR гарантирует целостность всех битов памяти, устройства NAND предназначены для работы с поврежденными блоками для достижения высокой производительности при производстве. Производители микросхем памяти обычно указывают, какие блоки неисправны в их устройствах. При инициализации встроенные функции управления поврежденными блоками определяют расположение этих поврежденных блоков и автоматически отображают их из массива памяти. Затем микропрограмма указывает контроллеру не использовать указанные блоки для хранения. Если по мере использования памяти обнаруживаются какие-либо дополнительные сбойные блоки, микропрограмма обновляет карты сбойных блоков.
Уровни выносливости
Выносливость представляет собой еще одну проблему для разработчиков, создающих подсистемы флэш-памяти. Каждая микросхема флэш-памяти имеет ограничения по стойкости к записи. После повторных циклов стирания и программирования память больше не сохраняет данные. По мере того, как производители памяти перешли на меньшую геометрию кремния и многоуровневые ячейки, уровень выносливости снизился. Например, в то время как производители ИС памяти указали для своих устройств SLC 100 000 циклов, более новые устройства MLC теперь указывают только 10 000 циклов.
Контроллеры флэш-памяти компенсируют это ограничение, встраивая в свою прошивку сложные функции выравнивания износа. Эти алгоритмы отслеживают использование памяти по блокам или страницам, сопоставляя счетчик возраста, который увеличивается с каждым циклом записи, с картой логических и физических секторов на флэш-носителе. Алгоритмы выравнивания износа увеличивают срок службы ИС памяти, автоматически предписывая контроллеру чередовать записи памяти в блоки с меньшим использованием. Эта функция позволяет контроллеру максимизировать срок службы ИС памяти, гарантируя, что все сектора во флэш-ИС одновременно достигают предела записи.
Он также предоставляет механизм оповещения пользователя о том, что носитель достигает предела выносливости, что может помочь предотвратить потерю данных.
Энергосбережение также является ключевой проблемой, особенно с учетом того, что многие решения памяти NAND используются в портативных устройствах с батарейным питанием. Чтобы максимально повысить эффективность энергопотребления, как управляемые, так и дискретные флэш-памяти NAND обычно оснащены блоком управления питанием (PMU), который сканирует подсистему памяти и отключает все неактивные функции. Когда функция необходима, контроллер немедленно активирует функцию и начнет доступ к данным с хоста.
Твердотельные диски SSD стали крупным шагом вперед в технологии хранения данных за последние годы, что привело к радикальным изменениям в основной памяти компьютера . Модернизация SSD — это не только незначительное улучшение аспекта производительности, но и изменение опыта использования компьютера с революционной скоростью произвольного доступа, отличной многозадачностью, отличной долговечностью и надежностью. Нет никаких сомнений в том, что SSD будет играть ведущую роль в хранении данных будущего. Теперь кратко представлены состав SSD, сопутствующие технологии, связанные с SSD, и навыки использования SSD, чтобы помочь большему количеству пользователей понять, что такое настоящий SSD.
Во-первых, мы должны понимать самые основные компоненты SSD, контроллер, флэш-память NAND и алгоритм прошивки.
Традиционный жесткий диск (HDD) в основном управляется механической приводной головкой, включая необходимые механические детали, такие как двигатель, диск, магнитная головка и коромысло, которые должны быть перемещены в положение доступа на быстро вращающемся диск, и не менее 95% времени уходит на работу механических компонентов.
Однако твердотельный накопитель отличается от механической конструкции, которая не требует движущихся частей. Тип SSD, который в основном состоит из основных элементов управления и микросхем флэш-памяти, может посещать любое место на дисках с большей скоростью и большей точностью. В то время как традиционный жесткий диск должен полагаться на главный вал, магнитную головку и магнитную головку, чтобы найти свое положение, твердотельные накопители заменяют физические вращающиеся диски интегральными схемами, а время и задержка доступа к данным намного превосходят жесткий диск. SSD обладает такой «удивительной скоростью», полностью благодаря внутренним компонентам: мастер-контролю, флеш-памяти и алгоритму прошивки.
Взаимосвязь контроллера, флэш-памяти и алгоритма прошивки
Три наиболее важных компонента твердотельного накопителя — это флэш-память NAND, контроллер и встроенное ПО. NAND отвечает за важные задачи хранения, а контроллеры и встроенное ПО работают вместе для выполнения сложных и одинаково важных задач, таких как управление хранением данных, поддержание производительности SSD и использование ресурса.
Контроллер — это своего рода встроенный микрочип (например, ЦП в компьютере), чья функция аналогична командному центру и может отправлять все рабочие запросы SSD — от чтения и записи данных до выполнения сборки мусора и алгоритм баланса потребления, чтобы гарантировать скорость и чистоту SSD. Можно сказать, что основной контроль — это мозговой центр SSD.
Marvell эффективен во всех отношениях, особенно в плане производительности и скорости.Типичной моделью является главный блок управления Marvell 88SS9187, который в основном используется на твердотельных накопителях Plextor, SanDisk и Critical.
Производительность Sand Force хорошая, а его характеристики позволяют сжимать данные. Например, сжимаемые данные размером 10 МБ могут быть сжаты до 5 МБ при записи на жесткий диск, но все равно занимают место размером 10 МБ, что может увеличить скорость записи. Самая большая характеристика - это может продлить срок службы SSD, но загрузка ЦП будет высокой, а скорость будет постепенно снижаться по мере использования жесткого диска. Репрезентативной моделью является SF-2281, которая используется на твердотельных накопителях, включая Intel, Kingston, ADATA и другие бренды.
Мастер управления Samsung используются только на их собственных SSD и очень мощные по производительности, которые не хуже, чем Marvell. В настоящее время мастер управления Samsung был разработан до пятого поколения MEX, в основном используется в Samsung 840EVO.
После того, как OCZ приобрела Indilinx, он в основном использовался в твердотельных накопителях OCZ, которые имели хорошую производительность чтения и записи. Его типичная модель — Barefoot 3.
Прошивка твердотельного накопителя — это наиболее важный компонент, обеспечивающий производительность твердотельного накопителя, который используется для управления контроллером. Главный контроллер будет использовать программу управления в алгоритме прошивки SSD для выполнения автоматической обработки сигналов, балансировки потерь, кода исправления ошибок (ECC), управления плохими блоками, алгоритма сборки мусора, связи с хост-оборудованием (например, компьютером) и данными. шифрование. Поскольку резервная прошивка хранится во флэш-памяти NAND, когда производитель SSD выпускает обновление, необходимо вручную обновить прошивку, чтобы улучшить и расширить функциональность SSD.
Разработка высококачественного встроенного ПО требует не только сложной инженерии, но и идеальной интеграции флэш-памяти NAND, контроллера и остальных компонентов SSD. Кроме того, должны быть освоены самые передовые технологии в области характеристик NADN, полупроводниковой техники и характеристик контроллеров. Чем качественнее прошивка, тем точнее и производительнее работает весь SSD. В настоящее время не многие производители твердотельных накопителей проводят независимые исследования и разработку прошивок, только Intel/Creative/Plextor/OCZ/Samsung и некоторые производители.
N И флэш-память:
Данные пользователей SSD хранятся во флэш-памяти NAND, которая является носителем данных SSD. Основная стоимость SSD сосредоточена на флэш-памяти NAND. Флэш-память NAND определяет не только срок службы SSD, но и его производительность. Структура частиц флэш-памяти NAND и принципы ее работы очень сложны, и мы продолжим публиковать серию статей, посвященных флэш-памяти. Здесь мы в основном имеем общее представление о флэш-памяти SLC, MLC и TLC, которую обычно приобретают клиенты.
S Флэш-память LC/MLC/TLC:
Виды состояния флэш-памяти
В последние несколько лет технология флэш-памяти NAND быстро развивается. За короткое время мы стали свидетелями значительного прогресса в технологии NAND: от флэш-памяти SLC корпоративного уровня до флэш-памяти MLC потребительского уровня, а также к новой появляющейся флэш-памяти TLC. Как
Читайте также: