Внедрение Fpga-корректировки ошибок в устройствах хранения данных
Table of Contents
Растущая потребность в усовершенствованной коррекции ошибок в хранении
Современные устройства хранения лежат в основе всего: от гипермасштабной облачной инфраструктуры до краевых датчиков IoT. Поскольку масштабы вспышки NAND до QLC и далее, частота ошибок необработанных битов (RBER) выросла примерно с 10 -4 до более 10 -2 для изношенных ячеек. Жесткие диски сталкиваются с аналогичным давлением от сжатой магнитной записи и записи с тепловым покрытием, которые вводят ошибки разрыва и дефекты среды. -15 является отраслевым стандартом для корпоративных дисков, что означает, что блок 4KB должен выживать с менее чем одной необнаруженной ошибкой. 15 требует кодов коррекции ошибок (ECC), которые являются мощными и гибкими. Фиксированные функции ASIC блокируют код при производстве, но массивы ворот для хранения данных (FPGA) предлагают убедительную альтернативу: они обеспечивают аппаратный параллел
Сдвиг в тройной уровень ячейки (TLC) и четырехуровневой ячейки (QLC) архитектур увеличил количество состояний напряжения на ячейку, уменьшив запас и повысив скорость ошибок. Потери удержания после месяцев хранения и программы/удаления циклов еще больше ухудшают надежность. Без надежного ECC современный SSD потеряет данные всего через несколько сотен циклов. Расширенные коды, такие как проверка четности низкой плотности (LDPC) и полярные коды могут приближаться к пределу Шеннона, но их итеративные алгоритмы декодирования являются вычислительно интенсивными. ЦПУ общего назначения и графические процессоры могут запускать эти алгоритмы в программном обеспечении, но им не хватает детерминированной низкой задержки и энергоэффективности, которые обеспечивают аппаратные ускорители. FPGA заполняют этот пробел, реализуя массивно параллельные пути передачи данных, которые работают с линейной скоростью, все при сохранении способности быть перепрограммированными по мере появления новых кодов.
Основные концепции ECC и современные алгоритмы
Коды коррекции ошибок добавляют структурированную избыточность к данным перед хранением. При чтении обратно информация о четности позволяет обнаруживать и исправлять ошибки до предела проектирования. Коды Хамминга исправляют одну ошибку на блок и распространены в памяти ECC. Коды Рида-Соломона обрабатывают ошибки лопастей и используются в оптических дисках и старых HDD. Коды BCH годами были рабочей лошадкой для вспышки NAND, предлагая сильную коррекцию с умеренными накладными расходами аппаратного обеспечения. Однако по мере увеличения плотности BCH начинает бороться с требуемой силой коррекции ошибок без возникновения высокой сложности.
Коды проверки четности низкой плотности (LDPC) теперь доминируют в высокопроизводительном хранилище. Они используют разреженную матрицу проверки четности и итеративное распространение убеждений (алгоритм sum-product) для декодирования мягкой информации из канала - например, распределение напряжения флэш-ячейки. Каждая итерация передает сообщения по краям двухстороннего графа между переменными узлами (представляющими биты) и контрольными узлами (представляющими уравнения четности). Декодеры LDPC достигают производительности почти емкости и могут быть реализованы с высоким параллелизмом на FPGA. Скорость кода (отношение данных пользователя к общим закодированным данным) настраивается конструкцией. Например, код скорости - 0,9 LDPC может исправить 30 ошибок на блок 4 КБ, в то время как код скорости - 0,8 исправляет более 100 ошибок за счет снижения емкости хранения. компромисс между мощностью коррекции и накладными расходами имеет решающее значение в проектировании системы.
Полярные коды, принятые в сетях 5G, привлекают внимание к хранению из-за их низкого уровня ошибок и эффективного последовательного декодирования списков отмены. Их алгебраическая структура хорошо отображается на конвейерных архитектурах FPGA. Хотя они еще не получили широкого распространения в серийных твердотельных накопителях, исследования показывают, что они могут соответствовать производительности LDPC с более низкой сложностью декодера для определенных размеров блоков. Другим перспективным классом являются коды лестниц, которые сочетают простые коды компонентов с итеративным декодированием, предлагая низкую сложность реализации и хорошую производительность по разрывным каналам.
Выбор правильного алгоритма требует моделирования профиля ошибки целевого канала. Такие инструменты, как Bit Error Rate Tester (BERT) или Monte Carlo, симуляции с моделями каналов от производителей флеш-памяти помогают сузить кандидатов в код. Окончательный выбор балансирует возможности коррекции, задержки, площади и мощности. В архиве холодного хранения приемлем сильный код с более высокой задержкой; в базе данных финансовой торговли обязательна субмикросекундная декодировка. FPGA позволяют инженерам развертывать разные коды на одном и том же оборудовании и даже переключаться между ними динамически на основе рабочей нагрузки.
Почему FPGA идеально подходят для внедрения ECC
FPGA занимают уникальное среднее положение между ASIC с фиксированной функцией и процессорами общего назначения. Современная FPGA содержит десятки тысяч логических элементов, сотни фрагментов DSP и мегабайт блоковой ОЗУ, все они связаны между собой через программируемую структуру маршрутизации. Эта архитектура обеспечивает несколько ключевых преимуществ для исправления ошибок:
- Масштабный параллелизм:] Декодеры LDPC требуют одновременного обновления тысяч узлов. FPGA может инстанцировать сотни обрабатывающих элементов, которые работают параллельно, достигая многогигабитной пропускной способности в секунду. Для SSD на 1 ТБ с интерфейсом PCIe Gen4 декодер должен обрабатывать 64 Гбит/с пользовательских данных. Частично параллельный декодер LDPC на FPGA среднего диапазона может удовлетворить это требование, оставляя место для других функций.
- Перенастраиваемая гибкость:] Когда новое поколение флэш-памяти демонстрирует различные характеристики ошибок, такие как большая потеря удержания или повышенное нарушение чтения, алгоритм ECC может быть обновлен путем загрузки нового битового потока. Это продлевает срок полезного использования платформ хранения и позволяет улучшить после развертывания. Например, диск, первоначально оснащенный BCH, может быть обновлен до LDPC через обновление прошивки, если FPGA имеет запасную логику.
- Ультранизкая и детерминированная задержка: Аппаратные трубопроводы устраняют накладные расходы на операционную систему и переключение контекста. Хорошо разработанный декодер FPGA может доставлять исправленные данные с однозначным микросекундным временем ожидания, необходимым для систем хранения в реальном времени. В SSD NVMe низкая задержка напрямую влияет на IOPS и качество обслуживания.
- Прямая интеграция данных:] FPGA могут находиться в ряде между интерфейсом хоста (PCIe, NVMe, CXL) и контроллером вспышки NAND. Закаленный IP для PCIe, DDR4/5 и ONFI снижает потребность во внешних чипах, упрощая конструкцию платы и снижая мощность.
- Энергоэффективность:] Приспособляя траекторию передачи данных точно к алгоритму, FPGA избегают накладных расходов на получение и декодирование инструкций. Декодер LDPC на современном FPGA потребляет около 2-4 Вт при полной пропускной способности по сравнению с 15-20 Вт для процессора, работающего по тому же алгоритму в программном обеспечении. Для центров обработки данных это энергосбережение приводит к значительному снижению затрат.
Для более глубокого изучения ускорения хранения на основе FPGA, страница вычислительного хранения Xilinx подробно описывает, как программируемая логика загружает исправление ошибок и обработку данных. Аналогично, семейство Agilex FPGA Intel предлагает закаленные блоки DSP, оптимизированные для алгоритма LDPC с минимальной суммой, проталкивая пропускную способность за пределы 200 Гбит/с на устройство.
Разработка системы ECC на основе FPGA
Внедрение производственного ускорителя ECC на FPGA следует структурированной методологии, которая превращает абстрактный код в рабочую кремниевую логику. Процесс включает в себя выбор алгоритма, аппаратную архитектуру, моделирование, синтез и системную интеграцию.
Алгоритм выбора и настройки параметров
Первый шаг - это характеристика канала хранения. Для NAND flash скорость необработанной ошибки варьируется в зависимости от циклов программы/удаления, температуры и хранения данных. Используя такие инструменты, как данные тестирования надежности NAND Vendor или модели с открытым исходным кодом (например, от Flash Memory Summit), инженеры моделируют ожидаемое семейство RBER в течение срока службы накопителя. Затем они выбирают семейство кодов и настраивают его параметры: длина блока, скорость кода и квантование. Для LDPC критически важны распределение степеней и структура матрицы проверки четности. Квазициклические (QC) коды LDPC популярны, потому что они могут быть реализованы с простыми регистрами сдвига и снижение сложности маршрутизации. Скорость кода часто выбирается динамически; например, диск может начинаться со скоростью 0,93 и после 10 000 циклов падать до скорости 0,88 для поддержания целевого UBER.
Архитектурный дизайн
С фиксированным алгоритмом архитектура FPGA разработана с использованием языков описания аппаратного обеспечения (VHDL/Verilog) или высокоуровневого синтеза (HLS) из C/C++. Типичный декодер LDPC состоит из:
- Канал Буфера Вероятности: Хранит мягкие метрики (соотношение лог-вероятности, LLR) от канала чтения NAND. Обычно 6-битное квантование балансирует точность и использование ресурсов.
- Переменный узел (VNU): Обрабатывает входящие сообщения от контрольных узлов и обновляет переменные узлы LLR.
- Узел проверки (CNU): выполняет операцию min-sum или sum-product для генерации исходящих сообщений.
- Сеть межсоединений: Реализует подключение матрицы с проверкой четности. Для QC-LDPC это сеть переключателей ствола, которую можно проложить по трубопроводу.
- Контроллер: Управляет количеством итераций, ранним прекращением на основе проверки синдрома и рукопожатием с хозяином.
Дизайнеры принимают решение об уровне параллелизма: полностью параллельные декодеры достигают максимальной пропускной способности, но потребляют огромные ресурсы маршрутизации; частично параллельные декодеры разделяют блоки обработки по нескольким узлам, скорость торговли для области. Большинство практичных SSD используют многоуровневый график декодирования, который последовательно обрабатывает строки матрицы проверки четности, уменьшая требования к пропускной способности памяти и улучшая скорость конвергенции. Кодер обычно проще, часто схема на основе сдвига регистра, которая умножает пользовательские данные матрицей генератора.
Моделирование и проверка
Перед тем, как приступить к аппаратному обеспечению, моделирование проверяет, что декодер соответствует заданной способности коррекции ошибок. Испытательные стенды вводят шум канала в соответствии с целевой RBER и измеряют частоту ошибок кадра (FER). Угловые случаи, такие как наборы ловушек - конкретные шаблоны ошибок, где итеративный декодер не может сходиться - идентифицируются и рассматриваются с помощью методов постобработки, таких как переключение битов или перезапуск с различными параметрами. Инструменты, такие как Siemens Questa или Cadence Xcelium, имитируют RTL. Кроме того, тестирование аппаратного обеспечения в цикле на небольшом прототипе FPGA с реальными частями NAND проверяет дизайн в реальных условиях. Функциональное покрытие обеспечивает каждый переход машины состояния и путь передачи данных.
Синтез, место и маршрут, и временное закрытие
После проверки RTL синтезируется в нет-лист уровня ворот, нацеленный на конкретный FPGA. Врата карты места и маршрута к логическим блокам, блок-RAM и DSP-срезам. Для декодеров с высокой пропускной способностью закрытие времени - обеспечение того, чтобы все пути соответствовали целевой тактовой частоте - является наиболее сложным шагом. Широкие пути передачи данных и длинные межсоединения требуют тщательного планирования пола, трубопроводирования и иногда замера часов. Анализируются отчеты об использовании ресурсов; декодер LDPC мягкого решения для блоков 4KB может занимать 40% LUT и 60% блок-RAM в устройстве Xilinx Ultrascale +. Анализ мощности направляет дизайнерские решения, такие как тактовая частота, масштабирование напряжения и режимы сна.
Интеграция систем
Заключительным этапом является интеграция FPGA в путь хранения. FPGA обычно подключается к контроллеру NAND через интерфейс ONFI или Toggle DDR, а к хосту через PCIe или NVMe. Закаленные процессорные ядра (например, ARM Cortex-A53 в SoC FPGA) запускают прошивку, которая управляет очередей команд, передачами DMA и телеметрией. Двигатель ECC может быть сконфигурирован для работы в реальном времени во время обычных считываний или в фоновой скруббинг для обнаружения и исправления ошибок до их накопления. Интеграционное тестирование измеряет сквозную задержку, пропускную способность и энергопотребление. Мониторинг BER в реальном времени позволяет системе прогнозировать износ мультимедиа и проактивно удалять неисправные блоки или регулировать скорость кода.
Сравнение FPGA, ASIC и Software ECC
Каждая платформа реализации имеет сильные и слабые стороны. Программный ECC на процессоре является наиболее гибким — любой код может быть реализован, а обновления тривиальны. Однако серийное исполнение ограничивает пропускную способность: одно ядро может декодировать не более нескольких сотен мегабит в секунду, что намного ниже десятков гигабит, требуемых современными твердотельными накопителями. Ускорение GPU улучшает пропускную способность, но добавляет мощность и задержку, и не практично внутри устройства хранения.
ASIC ECC - это самое высокопроизводительное и наиболее энергоэффективное решение для продуктов с большим объемом. После завершения ленточного выпуска код фиксируется. Если позже требуется более сильный алгоритм (например, для поддержки нового поколения флэш-памяти), требуется новая доработка кремния, которая занимает месяцы и стоит миллионы. Для продуктов среднего объема (например, корпоративных SSD с годовым объемом в сотни тысяч), стоимость неповторяющейся инженерной (NRE) ASIC может быть непомерной.
FPGA ECC обеспечивает аппаратную производительность, близкую к ASIC (особенно для LDPC и полярных декодов) с программируемостью программного обеспечения. Стоимость единицы выше, чем ASIC, но для малых и средних объемов общая стоимость владения ниже, потому что не требуется NRE, а обновления поля могут продлить срок службы продукта. Возможность динамически переключаться между схемами ECC - например, с помощью быстрого декодера BCH для условий с низкой степенью ошибки и мощного декодера LDPC для изношенных блоков - дополнительно оптимизирует производительность и мощность. Многие операторы гипермасштабирования теперь развертывают ускорители хранения на основе FPGA, которые выгружают ECC из процессора, повышая общую эффективность системы.
Реальные приложения
Синергия между FPGA и исправлением ошибок уже используется в различных отраслях, где целостность данных имеет решающее значение.
Предприятие и гипермасштабные SSD: Ведущие поставщики SSD создают прототипы новых архитектур ECC на FPGA перед тем, как перейти на ASIC. Например, недавняя статья IEEE описывает декодер на основе FPGA LDPC, который достигает пропускной способности 13,5 Гбит/с при потреблении всего 1,2 Вт, позволяя дискам следующего поколения. Операторы гипермасштабирования, такие как Microsoft и AWS, используют серверы хранения данных с поддержкой FPGA для выполнения встроенной коррекции ошибок, освобождая ядра процессора для рабочих нагрузок приложений. Эти системы могут повторно кодировать данные с разными скоростями кода в зависимости от возраста вспышки, сохраняя надежность без ущерба для емкости.
Высокоплотные жесткие диски:] Современные HDD полагаются на итеративное выравнивание турбо и декодирование LDPC в канале чтения. Сжатая магнитная запись и магнитная запись с тепловым усилителем (HAMR) требуют адаптивной обработки сигнала, которая первоначально была доказана на прототипах FPGA. На дисках Seagate HAMR, например, используются каналы чтения на основе FPGA для обработки увеличенных частот ошибок бита, присущих новой физике записи. Возможность обновления прошивки декодера в этой области позволила производителям дисков улучшить процедуры восстановления ошибок в течение срока службы продукта.
Аэрокосмические и оборонные: Спутники и зонды дальнего космоса используют закаленные радиацией FPGA для реализации тройной модульной избыточности и усовершенствованной ECC для твердотельных регистраторов. Марсовозы NASA используют защищенное FPGA хранилище, которое можно перенастроить с Земли для адаптации к неожиданным радиационным событиям. Эта гибкость невозможна с фиксированными ASIC.
Промышленные и IoT: Встроенные системы в суровых условиях — производственные полы, нефтяные вышки, автономные транспортные средства — используют модули хранения на основе FPGA, которые сочетают вибрационное сопротивление с мощным ECC. Например, скважинные буровые инструменты, работающие при 200°C, используют специализированные FPGA-платы, которые адаптируют исправление ошибок в реальном времени для компенсации повышенных течений утечки. Ядра ECC с открытым исходным кодом из проекта OpenCores были использованы для создания недорогих промышленных SSD с полевой модернизируемой надежностью.
Преодоление проблем реализации
Хотя FPGA ECC предлагает очевидные преимущества, инженеры должны решить несколько препятствий для достижения надежных и экономически эффективных проектов.
Проектная сложность: Создание эффективного декодера LDPC с нуля требует опыта в теории кодирования и цифровом дизайне. Решение заключается в использовании предварительно проверенных IP-ядеров от поставщиков FPGA (например, Xilinx LDPC IP, Intel LDPC core), которые являются параметризируемыми и готовыми к производству. Инструменты синтеза высокого уровня (HLS) также снижают барьер, позволяя алгоритмическим дизайнерам прототипировать на C++ и постепенно совершенствовать архитектуру.
Сдерживающие факторы:] Высокопроизводительные FPGA могут стоить сотни долларов за единицу, что делает их непригодными для потребительских товаров большого объема. Однако для систем хранения с низким и средним объемом (например, корпоративных систем хранения) гибкость FPGA и более низкая NRE часто делают общую стоимость конкурентоспособной. Оптимизированные по стоимости семьи, такие как Xilinx Artix или Intel Cyclone, предлагают достаточную логику для ECC средней мощности, а появление FPGA среднего класса с закаленными блоками DSP, специфичными для LDPC, сужает разрыв.
Мощность и термоуправление:] Полностью параллельный декодер LDPC может вытягивать несколько ватт. Методы для смягчения этого включают в себя замеры часов для отключения трубопроводов при холостом режиме, динамическое напряжение и частотное масштабирование (DVFS) и алгоритмические оптимизации, такие как раннее прекращение, когда синдром равен нулю. Некоторые конструкции используют двухступенчатый подход: простой декодер BCH обрабатывает большинство считываний, а более мощный двигатель LDPC активируется только при выходе из строя BCH, экономя мощность в обычном случае.
Интеграция с существующей экосистемой: Для взаимодействия FPGA с контроллером хранения требуется соблюдение стандартов, таких как PCIe, NVMe и ONFI. Использование предоставленных поставщиком эталонных конструкций и каталогов IP ускоряет интеграцию. Например, Xilinx предлагает PCIe DMA IP, который может быть сопряжен с пользовательской логикой ECC. Проекты с открытым исходным кодом, такие как OpenChip Design, предоставляют модули межсоединения, проверенные сообществом.
Инструменты и отладка: Длительные сроки выполнения синтеза (часы для крупных конструкций) медленная итерация. Подход симуляции-первый с комплексными тестбеншами, в сочетании с аппаратным обеспечением в цикле на небольших платах, улавливает большинство проблем на ранней стадии. Интегрированные логические анализаторы (например, Xilinx ILA, Intel Signal Tap) позволяют в реальном времени зондировать внутренние сигналы без повторного компиляции. Функции дополнительной компиляции сокращают время оборота для небольших изменений.
Впереди: инновации в FPGA ECC
Будущее коррекции ошибок на основе FPGA формируется новыми технологиями, которые требуют еще большей гибкости и производительности от оборудования для хранения данных.
Нейронные сети могут изучать конкретные модели ошибок чипа NAND в течение его срока службы. FPGA может содержать легкий механизм вывода, который прогнозирует вероятные места ошибок, позволяя декодеру фокусировать итерации коррекции там, где они наиболее необходимы. Недавние исследования показывают, что распространение нейронных убеждений может улучшить пропускную способность LDPC на 15% при одновременном снижении итераций. Этот адаптивный подход расширяет жизнь медиа за пределы того, что могут достичь статические коды.
Постквантовая безопасность и ECC: Квантовые вычисления угрожают современной криптографии, но также влияют на безопасность хранения. Будущим устройствам хранения может потребоваться поддержка коррекции ошибок, которая интегрирует коды на основе решёток для квантово-безопасного шифрования. FPGA предлагают четкий путь обновления: то же самое оборудование может быть перепрограммировано с новыми постквантовыми кодеками долго после развертывания, защищая данные на следующее десятилетие.
Интеграция чипов:] Переход к многодисковым пакетам позволяет интегрировать FPGA-ткань вместе с контроллерами ASIC, DRAM и NAND-контроллерами на одной подложке с использованием Universal Chiplet Interconnect Express (UCIe). Это сочетает в себе высокую эффективность ASIC с небольшой, перепрограммируемой плиткой FPGA для адаптивной ECC. Такие компании, как Intel и TSMC, активно разрабатывают такие решения, позволяющие создавать продукты хранения, которые могут развиваться без замены аппаратного обеспечения.
Открытый источник ECC IP экосистема: Движение аппаратного обеспечения с открытым исходным кодом производит высококачественные, настраиваемые ядра ECC для LDPC, полярных и лестничных кодов. исследовательский проект ECCTool обеспечивает набор реализаций Verilog с открытым исходным кодом, которые могут быть адаптированы к конкретным каналам хранения. По мере того, как эти ядра созревают через экспертную оценку, они демократизируют доступ к расширенной коррекции ошибок, позволяя стартапам и исследователям внедрять инновации без дорогостоящего лицензирования.
Заключение
Внедрение FPGA-коррекции ошибок в устройствах хранения данных - это не просто техническая тенденция - это стратегический ответ на неустанное увеличение плотности хранения и соответствующее увеличение частоты ошибок. Сочетание аппаратного параллелизма, гибкости, перепрограммируемой на местах, и прямой интеграции с траекторией передачи данных позиционирует FPGA как идеальную платформу для развертывания передовых алгоритмов ECC, таких как LDPC и полярные коды, а также позволяет будущим инновациям, таким как декодирование с помощью машинного обучения и постквантовая безопасность. Хотя проблемы, связанные с сложностью проектирования, стоимостью и мощностью, сохраняются, постоянные улучшения в архитектуре FPGA, инструментарии и IP с открытым исходным кодом, неуклонно снижают эти барьеры. От гипермасштабных центров обработки данных до миссий в глубоком космосе, FPGA-коррекция ошибок гарантирует, что огромные объемы данных, вверенные устройствам хранения, остаются нетронутыми, некоррумпированными и немедленно доступными. По мере того, как индустрия переходит в эпоху адаптивного, интеллектуального хранения, способность обновлять аппаратную логику после развертывания перейдет от