Замена флэшки NOR
Хотя флэш-память остается одним из самых популярных хранилищ во встроенных системах из-за ее энергонезависимости , ударопрочности, небольшого размера и низкого энергопотребления, ее применение значительно вышло за рамки ее первоначальной конструкции. Флэш-память NOR по своей оригинальной конструкции предназначена для хранения двоичного кода программ, поскольку поддерживает XIP (eXecute-In-Place) и высокую производительность операций чтения, а флэш-память NAND используется в качестве хранилища данных из-за ее более низкой цены. и более высокая производительность операций записи/стирания по сравнению с флэш-памятью NOR. В последние годы цена флэш-памяти NAND падала гораздо быстрее, чем цена флэш-памяти NOR. Таким образом, чтобы в конечном итоге снизить стоимость оборудования, использование флэш-памяти NAND для замены флэш-памяти NOR (движимое сильным рыночным спросом) становится новой тенденцией в разработке встраиваемых систем, особенно в мобильных телефонах и аркадных играх .
Обзор
[ редактировать ]Замена зависит от хорошо продуманного управления флэш-памятью, которое осуществляется либо программным обеспечением в хост-системе (как необработанный носитель), либо аппаратными схемами/прошивкой внутри ее устройств. Здесь предлагается эффективный механизм прогнозирования с ограниченными требованиями к объему памяти и эффективной реализацией. Механизм прогнозирования собирает шаблоны доступа при выполнении программы для построения графа прогнозирования, принимая концепцию рабочего набора . Согласно графу прогнозирования, механизм прогнозирования предварительно загружает данные (/код) в кэш SRAM , чтобы уменьшить частоту промахов кэша. Таким образом, производительность выполнения программы повышается, а разрыв в производительности чтения между NAND и NOR эффективно заполняется. Использование NAND Flash для загрузочного кода требует использования DRAM для дублирования кода. [1]
Эффективная стратегия предварительной загрузки
[ редактировать ]В отличие от популярных идей кэширования в иерархии памяти , этот подход направлен на механизм кэширования, ориентированный на приложения, который использует предварительную выборку с прогнозированием на основе заданных трассировок выполнения приложений. Рассматриваются конструкции встраиваемых систем с ограниченным набором приложений, таких как набор избранных системных программ в мобильных телефонах или аркадные игры автоматов парков развлечений. Кроме того, при реализации ограничены емкость SRAM и вычислительная мощность.
Аппаратная архитектура
[ редактировать ]В аппаратную конструкцию включены четыре основных компонента: хост-интерфейс, SRAM (кэш), флэш-память NAND и логика управления. Чтобы заполнить разрыв в производительности между NAND и NOR, SRAM служит слоем кэша для доступа к данным через NAND. Хост-интерфейс отвечает за связь с хост-системой через адресные шины и шины данных . Самое главное, что логика управления управляет деятельностью кэширования и обеспечивает эмуляцию службы флэш-памяти NOR с флэш-памятью NAND и SRAM; он должен иметь интеллектуальный механизм прогнозирования, реализованный для улучшения производительности системы. В логике управления есть два основных компонента: преобразователь эмулирует доступ к флэш-памяти NOR через флэш-память NAND с кэшем SRAM, где необходимо выполнить преобразование адресов из байтовой адресации (для NOR) в адресацию адреса логического блока (LBA) (для NAND). Обратите внимание, что каждая страница NAND размером 512 Б/2 КБ соответствует одному и четырем LBA соответственно. Процедура предварительной выборки пытается выполнить предварительную выборку данных из NAND в SRAM, чтобы частота попадания при доступе NOR была выше, чем в SRAM. Процедура должна проанализировать и извлечь поведение целевого приложения с помощью набора собранных трассировок. В соответствии с шаблонами доступа, извлеченными из собранных трассировок, процедура генерирует информацию прогнозирования, называемую графом прогнозирования.
График прогнозов
[ редактировать ]Шаблон доступа при выполнении приложения через NOR (или NAND) состоит из последовательности LBA. Поскольку приложение запускается несколько раз, может появиться «практически» полная картина возможного шаблона доступа при выполнении приложения. Поскольку выполнение большинства приложений зависит от входных данных или управляется данными, за данным LBA может следовать несколько последующих LBA, где каждый LBA соответствует одному узлу в графе. Узлы с более чем одним последующим LBA называются узлами ветвления, а остальные — обычными узлами. Граф, соответствующий шаблонам доступа, называется графом прогнозирования конкретного приложения. Если бы страницы во флэш-памяти NAND могли быть предварительно загружены своевременно и было бы достаточно места в SRAM для кэширования, тогда весь доступ к данным мог бы осуществляться через SRAM.
Чтобы сохранить граф прогнозирования во флэш-памяти с минимальными накладными расходами (емкостью SRAM), последующая информация LBA каждого обычного узла сохраняется в резервной области соответствующей страницы. Это связано с тем, что запасная область страницы в текущих реализациях имеет неиспользуемое пространство, и чтение страницы обычно происходит одновременно с чтением ее данных и запасных областей. Таким образом, доступ к последующей информации LBA обычного узла осуществляется без дополнительных затрат. Поскольку узел ветвления имеет более одного последующего LBA, в запасной области соответствующей страницы может не хватить свободного места для хранения информации. Таким образом, поддерживается таблица ветвей для сохранения последующей информации LBA всех узлов ветвей. Начальный адрес записи таблицы ветвей, соответствующий узлу ветвления, может быть сохранен в резервной области соответствующей страницы. Начальная запись записывает количество последующих LBA узла ветвления, а последующие LBA сохраняются в записях, следующих за начальной записью. Таблицу ветвей можно сохранить во флэш-памяти. Во время Во время выполнения вся таблица может быть загружена в SRAM для повышения производительности. Если места SRAM недостаточно, части таблицы можно загружать по требованию .
Процедура предварительной выборки
[ редактировать ]Целью процедуры предварительной выборки является предварительная выборка данных из NAND на основе заданного графа прогнозирования, чтобы большая часть доступа к данным происходила через SRAM. Основная идея заключается в предварительной выборке данных, следуя порядку LBA на графике. Для эффективного поиска выбранной страницы в кэше циклическая очередь при управлении кэшем используется . С другой стороны, данные, предварительно полученные из флэш-памяти NAND, помещаются в очередь, а данные, переданные на хост, удаляются из очереди. Процедура предварительной выборки выполняется жадным способом: пусть P1 — последняя предварительно загруженная страница. Если P1 соответствует обычному узлу, то страница, соответствующая последующему LBA, предварительно загружается. Если P1 соответствует узлу ветвления, то процедура должна предварительно выбирать страницы, следуя по всем возможным следующим ссылкам LBA равным базовым и циклическим способом.
Замена 2D NAND на 3D NAND
[ редактировать ]С 2021 года началась замена 2D NAND на 3D NAND. [2] Преимуществом 3D NAND является более низкая стоимость бита и новейшая технология контроллера для повышения надежности. Следовательно, даже при низком уровне ГБ 3D NAND является предпочтительным вариантом хранения кода. [3] [4]
Ссылки
[ редактировать ]- ^ Загрузка с флэш-памяти NAND.
- ^ https://media.digikey.com/pdf/PCNs/Delkin/EOL_412-0068-00_Rev-A.pdf [ только URL-адрес PDF ]
- ^ https://www.flashmemorysummit.com/English/Colternals/Proceedings/2013/20130814_204C_Thomson.pdf [ только URL-адрес PDF ]
- ^ «Greenliant > Твердотельный накопитель > eMMC NANDrive > GLS85VM1002E» . www.greenliant.com . Проверено 8 июля 2024 г.