Решение о типе памяти обычно принимают один раз, на раннем этапе, и затем живут с ним весь жизненный цикл изделия. Смена решения позже означает переработку платы, новую конфигурацию загрузки и новый цикл валидации программного обеспечения.
Три варианта покрывают большинство встраиваемых проектов: «сырая» NAND-память, eMMC и UFS. Это не просто три точки на шкале скорости. Они различаются тем, кто управляет флеш-памятью, как с ней взаимодействует процессор и что происходит, когда блок в конце концов изнашивается.
Три варианта — по одному абзацу на каждый
«Сырая» NAND — это чистый кристалл флеш-памяти. Процессор или контроллер внутри процессора должен взять на себя коррекцию ошибок, управление бэд-блоками, выравнивание износа и файловую систему. Это самый дешёвый вариант в пересчёте на гигабайт и самый требовательный к проектированию.
eMMC объединяет кристалл NAND и управляющий контроллер в одном корпусе BGA со стандартным параллельным интерфейсом. Контроллер скрывает бэд-блоки, выполняет коррекцию ошибок и выравнивание износа и предоставляет простое блочное устройство. Это рабочая лошадка встраиваемых систем хранения.
UFS — архитектура-преемник: та же идея управляемого контроллера, но с последовательным полнодуплексным интерфейсом и очередью команд. Она обеспечивает в несколько раз более высокую пропускную способность, чем eMMC, при более высокой цене и более жёстких требованиях к проектированию платы.
Типовые позиции: KIOXIA 16GB eMMC, Samsung 64GB eMMC и FORESEE 64GB eMMC для управляемых решений, а также Micron industrial-temperature eMMC, когда решающим фактором становится рабочий диапазон температур.
Сравнительная таблица
| Параметр | «Сырая» NAND | eMMC | UFS |
|---|---|---|---|
| Интерфейс | Параллельная или последовательная шина NAND с линиями управления и состояния | Параллельная шина: команда, тактирование и данные, а также загрузка и сброс | Последовательный полнодуплексный интерфейс, дифференциальные линии и опорная частота |
| Типовая последовательная скорость чтения | Сильно зависит от контроллера | Около 200-400 MB/s для современных массовых изделий | Около 800-2,000 MB/s и выше |
| Очередь команд | Нет | Нет; фактически одна незавершённая операция | Да; несколько команд одновременно |
| Кто управляет бэд-блоками | Вы — в программном обеспечении или в NAND-контроллере SoC | Встроенный контроллер | Встроенный контроллер |
| Коррекция ошибок | Ваша ответственность; сила ECC должна соответствовать кристаллу | Обрабатывается внутри | Обрабатывается внутри |
| Выравнивание износа | Ваша ответственность | Обрабатывается внутри | Обрабатывается внутри |
| Число выводов и топология | Умеренное, но критичное по таймингам | Умеренное, с группами равной длины | Высокое; требуются дифференциальные пары и контроль импеданса |
| Поддержка загрузки | Через путь загрузки NAND в SoC | Стандартные загрузочные разделы eMMC | Стандартная поддержка загрузки UFS в современных SoC |
| Стоимость за GB | Самая низкая | Низкая | Выше |
| Жизненный цикл и наличие | Долгий и с несколькими поставщиками, но ревизии кристаллов меняются быстро | Долгий, много поставщиков, широкий диапазон ёмкостей | Более короткая история; определяется флагманскими смартфонами |
| Типичное применение | Потребительские изделия с приоритетом цены, очень большие объёмы, простое ПО | Промышленная автоматика, HMI, автомобильные мультимедийные системы, шлюзы IoT | Смартфоны, планшеты, высокопроизводительные встраиваемые системы, ИИ-устройства на периферии |
Когда eMMC — правильный выбор
eMMC остаётся выбором по умолчанию для промышленных и встраиваемых проектов, и причина не в скорости, а в сочетании простого интерфейса, управляемого стека флеш-памяти и очень широкой базы поставщиков.
1. У процессора есть интерфейс eMMC, а писать драйвер флеш-памяти не хочется
Большинство SoC, применяемых в промышленных изделиях, загружаются напрямую с eMMC. Операционная система видит блочное устройство, сверху ставится файловая система, и проектирование закончено. Ни настройки коррекции ошибок, ни таблицы бэд-блоков, ни кода выравнивания износа, который нужно валидировать.
2. Один и тот же сокет должны поставлять несколько производителей
eMMC стандартизован достаточно, чтобы компоненты разных производителей были совместимы по выводам для данного корпуса и расположения шариков. Квалификация всё равно требуется, но наличие трёх источников для изделия с десятилетним сроком службы — коммерческое преимущество, которое «сырая» NAND даёт редко, а UFS часто не даёт.
3. Приложению нужно меньше нескольких сотен мегабайт в секунду
Панели управления, регистраторы данных, шлюзы, приводы двигателей, медицинские приборы и POS-терминалы почти никогда не насыщают пропускную способность eMMC. Покупать UFS для таких изделий — значит платить за производительность, которую изделие не сможет использовать.
4. Важны промышленный температурный диапазон и долгий жизненный цикл
Промышленные и автомобильные компоненты eMMC выпускаются в расширенных температурных диапазонах с определёнными долгосрочными обязательствами по поставкам. Такую комбинацию гораздо проще обеспечить в eMMC, чем на рынке UFS, который определяется циклами флагманских смартфонов.
Когда UFS — правильный выбор
UFS оправдывает свою стоимость, когда пропускная способность, задержки при смешанной нагрузке или параллелизм действительно ограничивают изделие.
- Запись или воспроизведение видео высокой чёткости на периферии, где узким местом становится устойчивая скорость записи.
- Машинное зрение и ИИ-инференс на периферии, где модели и буферы изображений читаются непрерывно, а накопитель должен успевать за ускорителем.
- Устройства с несколькими приложениями, которые должны обслуживать несколько потоков данных одновременно; очередь команд — это разница между отзывчивой системой и системой с рывками.
- Изделия, где накопитель — часть пользовательского опыта, например портативные приборы, которые загружаются и подгружают наборы данных на глазах у оператора.
Издержки реальны: UFS требует аккуратной трассировки с контролем импеданса, опорной частоты и SoC с поддержкой этого интерфейса. Кроме того, проект сильнее привязывается к тем производителям, которые всё ещё выпускают выбранные вами ёмкость и температурный класс.
Когда «сырая» NAND всё ещё оправдана
«Сырая» NAND сохраняет позиции в двух ситуациях: при экстремальном давлении по цене и очень больших объёмах, а также в проектах, где у SoC есть зрелый аппаратный NAND-контроллер и команда разработчиков ПО готова с ним работать.
Будьте реалистичны в отношении скрытых издержек. Сила коррекции ошибок должна соответствовать поколению кристалла, управление бэд-блоками должно выдерживать потерю питания, а выравнивание износа нужно валидировать. Эти требования не исчезают оттого, что кристалл был дешевле.
Ресурс: как подобрать компонент
Ресурс выражается в циклах программирования и стирания либо в терабайтах записи для всего устройства. Для подбора важен суточный объём записи, а не общая ёмкость.
- Оцените объём записываемых за сутки байт в нормальном режиме работы, включая журналы, базы данных и временные файлы.
- Добавьте усиление записи, которое вносят файловая система и шаблон записи приложения.
- Добавьте процедуру обновления прошивки: обновление, перезаписывающее большой раздел, составляет заметную долю бюджета ресурса.
- Умножьте на ожидаемый срок службы в днях, а затем добавьте коэффициент запаса на поведение в реальных условиях, отличающееся от стендовых.
Проект, который пишет файл журнала каждую секунду, израсходует ресурс накопителя гораздо быстрее, чем изделие, записывающее тот же суммарный объём крупными и редкими блоками. Шаблон записи значит не меньше, чем объём записи.
Ошибки, которые проявляются в эксплуатации
- Неконтролируемое отключение питания. Внезапное снятие питания во время записи — самая частая причина повреждения файловой системы на управляемых накопителях. Либо проектируйте контролируемое выключение, либо выбирайте компоненты с надёжной обработкой потери питания и проверяйте это.
- Отношение к eMMC как к неисчерпаемой памяти. У управляемой флеш-памяти тоже конечный ресурс. Непрерывная запись журналов в течение нескольких лет его исчерпает.
- Выбор ёмкости только по цене. Большая ёмкость распределяет износ по большему числу блоков, поэтому чуть более крупный компонент может прожить дольше, чем более дешёвый и меньший.
- Игнорирование температурного класса. Накопитель коммерческого класса в корпусе, который внутри нагревается до 70 °C, не обеспечит заявленный ресурс.
- Уверенность в том, что замена «вывод в вывод» действительно такова. Два компонента eMMC с одинаковой ёмкостью и корпусом могут различаться поведением загрузочного раздела, таймингами и требованиями к подаче питания.
Короткий путь принятия решения
- Поддерживает ли процессор UFS и нужно ли приложению реально больше примерно 300 MB/s? Если да на оба вопроса, оцените UFS.
- Нужны ли изделию несколько квалифицированных источников и долгий жизненный цикл при умеренной пропускной способности? Если да, выбирайте eMMC.
- Зрелый ли NAND-контроллер у SoC, опытна ли команда разработчиков ПО и достаточно ли велик объём, чтобы стоимость кристалла была определяющей? Если да, «сырая» NAND оправдана.
- В любом случае рассчитывайте ресурс исходя из реального суточного объёма записи, прежде чем фиксировать ёмкость.
Чем мы можем помочь
Пришлите нам требуемую ёмкость, температурный класс, корпус и интерфейс, и мы вернёмся с компонентами, которые можем поставить, и информацией об их наличии. Если вы заменяете снятый с производства компонент, укажите исходный номер, и мы проверим совместимость по корпусу и загрузке, а не только по ёмкости.
Для планирования производства сообщите годовой объём и целевой срок службы. Накопитель — один из немногих компонентов, где правильный ответ меняется вместе с шаблоном записи, а не только с данными даташита.