NAND или NOR… какую флэш-память выбрать для проекта?


PDF версия

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

С момента появления в 70-х гг. прошлого века встраиваемых систем на этом рынке все время ожидали закулисного персонажа под названием «универсальная память», который, наконец, выйдет на сцену и заменит всю иерархию памяти, доставшуюся в наследство от больших ЭВМ, мини-ЭВМ и настольных компьютеров.

Эти ожидания усилились с появлением встраиваемых, мобильных, портативных компьютеров, и кандидаты на роль универсальной памяти появились на сцене. Некоторые персонажи — такие как EEPROM, EPROM, УФ-EPROM, ферроэлектрическое RAM и др. варианты псевдо-RAM — были отклонены. Другие кандидаты — например, магнитные RAM, рассматривались, однако их перспективы были сомнительны по ряду экономических и технических причин.

В то же время некоторые действующие лица «пьесы», в частности, различные типы флэш-памяти NAND и NOR, рекламируются производителями как кандидаты на роль универсальной памяти или, по крайней мере, как родственники или близкие друзья этого персонажа. К этим разновидностям флэш-памяти относятся следующие типы устройств: OneNAND, OrNAND, iNAND, GBNAND, moviNAND, ManagedNAND и NANDrive.

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

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

Полностью управляемая подсистема памяти может содержать интерфейс стандартной памяти RAM (PSRAM или SDR/DDR SDRAM). Такая подсистема памяти обеспечивает интеграцию с процессором хоста и исключает необходимость контроля памяти со стороны системы.

NOR-память появилась раньше NAND-памяти и в настоящее время широко применяется во встраиваемых системах. NOR-память используется как для хранения кода программы, так и данных. Основным ее преимуществом является непосредственное исполнение кода из флэш-памяти (execute-in-place — XIP). К тому же NOR-память можно непосредственно соединить с хост-процессором, что упрощает проект и уменьшает время разработки.

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

NAND-память для хранения данных и кода

NAND-память удобна для использования в приложениях, требующих хранения кода значительной величины (такого, как операционная система (ОС) или приложение) и больших объемов данных, т.к. NAND-память не дорога, а ее емкость достигает 16 Гбит на кристалл. В отличие от NOR-памяти, NAND-память не поддерживает непосредственное выполнение кода (XIP) или произвольную выборку. В результате в некоторых системах, использующих NAND-память, требуется также NOR-память малой емкости для системной загрузки и выполнения кода BIOS. В других системах функции начальной загрузки может выполнять контроллер NAND-памяти или встроенная загрузочная ROM хост-процессора. После загрузки системы на базе NAND-памяти для выполнения кода используется либо затенение кода (shadowing), либо выделение страниц по запросу (demand paging). В случае затенения вся ОС и приложения копируются из NAND-памяти в системную RAM, а во втором случае — ОС и приложения копируются в системную RAM по частям и выполняются по мере необходимости.

Хотя NAND-память недорога и имеет большую емкость, чем NOR-память, она менее надежна и требует применения технологии контроля дефектов, включая обнаружение и коррекцию ошибок, а также механизм выравнивания износа (wear-leveling) во многих приложениях. Для реализации этих функций управления флэш-памятью требуются сложные аппаратные и программные средства. На рисунке 1 изображена система, в которой управляющий чипсет (хост) связан с NAND-памятью. В такой системе функции контроля ошибок должны выполняться этим чипсетом. Запуск функций управления на хосте требует некоторой доработки программного обеспечения, а также использования ресурсов ЦП и памяти хоста, что снижает общую производительность системы.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Рис. 1. Система, состоящая из чипсета хоста, соединенного с автономной NAND-памятью

С уменьшением проектных норм длина кода коррекции ошибок для NAND-памяти с одноуровневыми ячейками (single-level cell — SLC) увеличилась с 1 до 4 бит на 512-байт сектор, а для NAND-памяти с многоуровневыми ячейками (multi-level cell — MLC) — с 4 до 8 бит на 512-байт сектор. Размер страницы увеличился с 512 до 4096 байт. Ресурс некоторых типов SLC NAND-памяти с уменьшенными проектными нормами снижен со 100 тыс. до 50 тыс. циклов перезаписи, а для MLC NAND-памяти — с 10 тыс. до 5 тыс. циклов (в некоторых случаях до 3 тыс. циклов). Для того чтобы снизить количество элементов в системе, многие производители интегрируют контроллер NAND-памяти в чипсет, который непосредственно подключается к отдельной NAND-памяти. Однако из-за длительного цикла проектирования производителю чипсета довольно сложно отслеживать изменения в технологии NAND-памяти. Поэтому функциональные возможности встроенного в чипсет контроллера NAND-памяти будут всегда отставать от технологии NAND-памяти.
Существует несколько решений, подобных NAND-памяти, которые по­зво­ляют улучшить производительность и функциональные возможности стандартной NAND-памяти. Например, флэш-память OneNAND является разновидностью NAND-памяти, которая сочетает в одном устройстве RAM и отдельную SLC NAND-память для обеспечения начальной загрузки и увеличения скорости выборки. OneNAND-память требует 1-бит код коррекции ошибок для каждого 512-байт сектора и управление функциями, реализованное либо на чипсете, либо с помощью отдельного контроллера.
Другая разновидность NAND-памяти — OrNAND-память содержит MirrorBit NOR-память с интерфейсом NAND-памяти, что обеспечивает уменьшение времени записи по сравнению с обычной NOR-памятью. OrNAND-память также требует применения системы коррекции ошибок с длиной кода 1 бит, реализованной на чипсете или на отдельном контроллере для обеспечения надежной загрузки системы. Кроме того, максимальная емкость OrNAND-памяти в настоящее время ограничена 1 Гбит, что уступает емкости NAND-памяти.

Управляемая NAND-память для хранения данных

Из-за ограниченных возможностей встроенного контроллера NAND-памяти многие системные разработчики используют решения на основе управляемой (managed) NAND-памяти. Некоторые производители предложили продукты на основе управляемой NAND-памяти, которые позволяют снизить сложность обычной подсистемы памяти во встраиваемом приложении. Варианты управляемой NAND-памяти включают iNAND, GBNAND, moviNAND, Managed NAND и NANDrive. Они используются в основном для хранения данных. Эти решения позволяют уменьшить сложность системы благодаря эффективному управлению NAND-памятью с помощью встроенного контроллера и файловой системы флэш-памяти (flash file system — FFS), как показано на рисунке 2.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Рис. 2. Система с управляемой NAND-памятью для хранения данных

Эти устройства используют стандартные интерфейсы, например Secure Digital (SD), MultiMediaCard (MMC) или Advanced Technology Attachment (ATA). Например, iNAND и GBNAND используют интерфейс SD, moviNAND и Managed NAND — интерфейс MMC, а NANDrive — интерфейс ATA. Эти устройства не поддерживают непосредственное выполнение кода (XIP), поэтому для обеспечения загрузки в таких системах необходима NOR-память.

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

Гибридные решения на основе управляемой NAND-памяти

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

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Рис. 3. Система с гибридным устройством памяти, содержащим RAM и управляемую NAND-память

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

С другой стороны, гибридная NAND-память имеет большее время загрузки, поскольку необходимо скопировать загрузочный код из NAND-памяти в загрузочную RAM после включения питания. Кроме того, гибридная NAND-память более сложна, ее трудно интегрировать в систему, а для работы с ней требуется ОС, которая поддерживает выделение страниц по запросу (demand paging) на хосте.
Флэш-память mDOC H3 использует шину NOR-типа для связи с процессором хоста и обеспечивает более быстрое считывание, чем NAND-память, и более быструю запись, чем NOR-память. Из-за большей скорости записи эти устройства подходят для хранения мультимедийных данных.

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

Разработчики нуждаются в подсистеме памяти, которая обеспечивает хранение сотен Мбит кода с возможностью непосредственного выполнения (XIP), а также удовлетворяет растущим требованиям по хранению мультимедийных данных. Такая система должна сочетать преимущества NOR-памяти (быстрое чтение), NAND-памяти (низкая стоимость и большая емкость) и RAM (удобное обращение по шине). Это решение также должно быть простым в использовании и не сложным при проектировании. Такая система требует минимальной дополнительной разработки аппаратных и программных средств, имеет стандартный интерфейс связи с чипсетом хоста или процессором без использования дополнительной логики и обеспечивает такой же простой и удобный доступ, как к SRAM.
Встроенный контроллер этой подсистемы памяти должен обеспечивать коррекцию ошибок, управление дефектными блоками и выравнивание износа (wear-leveling) NAND-памяти. Контроллер должен иметь возможность также управлять встроенной памятью всех типов (NOR, NAND и RAM) для того, чтобы полностью освободить хост-систему от выполнения этих функций.

Подсистема памяти следующего поколения

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

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Рис. 4. Пример системы в одном корпусе, состоящей из контроллера памяти со встроенной загрузочной NOR-памятью, NAND-памяти и RAM: а) блок-схема, б) распределение памяти

Блок RAM разделен на две части, которые доступны со стороны хоста и могут быть сконфигурированы пользователем: кэш для псевдо NOR-памяти (PNOR) и системная RAM для хоста. Блок NAND-памяти используется для энергонезависимого хранения данных для области PNOR и отображения в памяти ATA NAND-диска. Конфигурируемый PNOR-блок эмулирует функцию NOR, используя кэш RAM и NAND-память. Поскольку NAND-память используется как основной блок энергонезависимой памяти, это решение обеспечивает хранение достаточно крупного XIP-кода и способно эффективно заменить традиционное решение на базе более дорогой NOR-памяти большой емкости. С помощью стандартного протокола ATA по стандартной шине RAM (PSRAM или SDR/DDR SDRAM) это решение обеспечивает достаточную емкость для хранения данных в мультимедийных приложениях, использующих интерфейс ATA. Кроме того, кэш RAM в PNOR-блоке также способствует увеличению ресурса флэш-памяти и надежности хранения кода и данных посредством минимизации циклов чтения/записи NAND-памяти.

Поскольку устройство предлагается в компактном корпусе, такая подсистема управляемой памяти способна упростить построение интерфейса и системы, уменьшает время разработки, снижает общую стоимость решения и улучшает качество и надежность. К другим преимуществам относятся конфигурируемая пользователем псевдо NOR-память для хранения XIP-кода; надежная система детектирования и коррекции ошибок MLC и SLC NAND-памяти и возможность масштабирования системы для увеличения емкости памяти. Не требующая серьезных затрат на разработку аппаратных и программных средств, такая подсистема памяти может стать тем долгожданным персонажем из пьесы Беккета.

Литература
1. Employ the proper flash memory in your design, Vijay Devadiga//www.embedded.com.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *