Введение

Для электронной аппаратуры космических систем, и в первую очередь устройств памяти, актуальна задача защиты от воздействия ионизирующего космического излучения и других внешних факторов, искажающих хранимую и обрабатываемую информацию. Радиационные эффекты и космические частицы создают большое число накапливающихся в устройствах памяти ошибок. Использование известных методов помехоустойчивого кодирования информации дает эффект в течение ограниченного времени, пока число ошибок не становится слишком большим. В ответственных системах используется ECC-память – (error-correcting code memory, память с коррекцией ошибок) – тип компьютерной памяти, которая автоматически распознаёт и исправляет спонтанно возникшие изменения (ошибки) битов памяти – одну ошибку в одном машинном слове. При длине машинного слова 64 бита количество исправляемых ошибок < 1,5%.

Для повышения надежности хранения информации представляет интерес форма записи данных, обеспечивающая восстановление блока информации по его фрагменту – голографический метод записи, использующий свойство делимости голограммы (возможность восстановления полного изображения объекта по фрагменту голограммы).

 Голографический метод восстановления информации

Голографический метод помехоустойчивого кодирования, исправляющий многократные ошибки, заключается в математическом моделировании цифровой голограммы виртуального объекта, представляющего собой блок входных данных. В процессе кодирования k-разрядный двоичный код входного блока данных преобразуется во вторичный блок – единичный позиционный код с числом позиций n=2k. При этом закладывается информационная избыточность с числом разрядов r=n-k. Вторичный блок имеет (n-1) нулей и одну единицу в позиции, заданной исходными данными. Таким образом, входной блок данных используется как адрес позиции единицы в последовательности нулей единичного позиционного кода вторичного блока. Голографическое кодирование заключается в формировании линейной голограммы вторичного блока, рассматриваемого как виртуальный оптический объект. Процедура формирования голограммы и восстановления исходного объекта по голограмме описана здесь. Рассмотрим возможность и эффективность применения голографического метода помехоустойчивого кодирования в устройствах памяти, подверженных воздействию внешних факторов, приводящих к появлению случайных и детерминированных (пакетных) ошибок.

 Результаты моделирования

Исследование корректирующей способности голографического кода проведено путем моделирования в среде MATLAB процесса искажения голограммы  HO  случайными и пакетными ошибками.

На рисунке 1 показан вид линейной голограммы 8-разрядного входного блока данных со значением X=99. При этом размер записываемой в память голограммы – 256 бит, коэффициент избыточности 32.

Рис. 1. Голограмма HO для X=99
Рис. 1. Голограмма HO для X=99

На рисунке 2 приведен результат декодирования AR, в котором позиция максимума Y=99 несет информацию о закодированном значении. В полученном массиве присутствует небольшой шум декодирования, обусловленный конечным числом дискретных значений голограммы, и не препятствующий выделению информационного значения.

Рис. 2. Восстановленный массив AR при n=256, Y=99
Рис. 2. Восстановленный массив AR при n=256, Y=99

Рассмотрим устойчивость кода к стираниям, случайным и пакетным ошибкам.

Вид голограммы на входе декодера при стирании (потере) 75% голограммы размером n=256 приведен на рисунке 3.

Рис. 3. Голограмма HR для X=99. Потери 75%
Рис. 3. Голограмма HR для X=99. Потери 75%

Результат восстановления блока данных по оставшимся 25% приведен на рисунке 4. Точка максимума в позиции Y=99 соответствует переданному значению X=99 и однозначно определяет значение кодируемого блока.

Рис. 4. Восстановленный массив AR при потерях 75%, n=256, Y=99=X
Рис. 4. Восстановленный массив AR при потерях 75%, n=256, Y=99=X

Голографическое кодирование обеспечивает устойчивость не только к потерям информации, но и к случайным ошибкам. Возникновение ошибок смоделировано путем замены части голограммы двоичной случайной последовательностью (шумом). Массив, восстановленный по голограмме размером n=256, содержащей 75% шума, приведен на рисунке 5. Переданное значение успешно восстановлено.

Рис. 5. Восстановленный массив AR  при длине шумовой последовательности 75%, n=256, Y=99=X
Рис. 5. Восстановленный массив AR  при длине шумовой последовательности 75%, n=256, Y=99=X

Увеличение размера голограммы приводит к возрастанию помехоустойчивости. При n=214=16394 успешное восстановление информации происходит при длине шумовой последовательности до 95% от размера голограммы.

При замене части голограммы двоичным шумом число возникающих ошибок меньше числа шумовых позиций, так как около половины шумовых позиций совпадут с информационными битами и не создадут ошибок. Поэтому максимальное возможное число независимых случайных ошибок в достаточно большой голограмме  составляет 50% от количества бит в голограмме. Если число ошибок больше 50%, ошибки являются зависимыми, а 100% ошибок соответствует полностью детерминированному случаю – побитной инверсии голограммы.

Наиболее сложная для декодирования ситуация – число случайных ошибок, приближающееся к 50%. Корректирующая способность голографического кода зависит от размера голограммы n. Статистика результатов моделирования показывает, что при n=256 вероятность ошибки декодирования составляет 10-3 при количестве ошибок на входе декодера 30%. При числе ошибок 25% и количестве испытаний 10 000 ошибки декодирования не зафиксированы. При n=1024 вероятность ошибки декодирования 10-3  достигается при 41% ошибок в голограмме.

Рассмотренные примеры восстановления информации характерны для случаев с независимыми случайными ошибками. В то же время для большинства двоичных информационных систем характерно наличие корреляции между ошибками и объединение их в пакеты. Пакетные ошибки возникают при интенсивном воздействии ионизирующего излучения, при записи информации на носителях данных, а также в каналах связи.

Для коррекции ошибок, возникающих при хранении информации широко используются помехоустойчивые коды. Одним из самых эффективных является код Рида-Соломона (РС-код), широко применяемый  в системах восстановления данных с компакт-дисков, при создании архивов с информацией для восстановления в случае повреждений, в помехоустойчивом кодировании. Предел корректирующей способности РС-кода определен границей Синглтона, в соответствии с которой для исправления  ошибок код должен иметь не менее  двух проверочных символа на одну ошибку. При большой степени избыточности число исправляемых ошибок приближается к 50% от длины кодового слова. Особенностью РС-кода является то, что столь высокую исправляющую способность он демонстрирует только для пакетных ошибок, уступая, например, коду Рида-Маллера (РМ-код) в исправлении независимых случайных ошибок. РМ-код с длиной кодового слова n=2m  исправляет  2m-2-1  ошибок любого вида, занимающих почти  25% кодовой комбинации.

Базовый декодер голографического кода, так же как и РС-код, устраняет ошибки, занимающие не более 50% кодового слова. Однако в силу специфики голографического метода представления информации возможно построить универсальный декодер, исправляющий любое количество группирующихся пакетных ошибок вплоть до 100% размера голограммы, то есть, когда искажены все символы.

Сама по себе задача исправления 100% ошибок является тривиальной – для этого достаточно инвертировать каждый разряд кодового слова. Однако здесь для всех кодов, кроме голографического, возникает проблема выбора одного из двух равновероятных результатов декодирования – прямого или инвертированного. Голографический же код дает совпадающий результат декодирования, как для неискаженного кодового слова, так и для кодового слова, содержащего 100% ошибок. На рисунке 6 приведен результат декодирования инвертированного блока, содержащего 100% ошибок. Отсюда видно, что пакетные ошибки приводят к инверсии максимума в восстановленном массиве, но позиция его сохраняется, поэтому восстановление информации происходит правильно.

Рис. 6. Восстановленный массив AR (Y=100), число ошибок – 256 (100%)
Рис. 6. Восстановленный массив AR (Y=100), число ошибок – 256 (100%)

Сложнее происходит восстановление при количестве пакетных ошибок около 50%. Для решения этой задачи декодируемый блок данных разбивается на две равные части и каждая часть декодируется в прямом и инвертированном виде. Каждый из четырех вариантов декодирования формирует полный выходной массив, при этом все реализации имеют разные уровни шума (рисунок 7). Совместный анализ этих массивов позволяет определить значение декодируемого блока данных.

Рис. 7. Результаты работы четырех декодеров
Рис. 7. Результаты работы четырех декодеров

На рисунок 8 показан фрагмент одного из четырех массивов при декодировании голограммы, содержащей 128 ошибок при n=256 (50% ошибок), кодируемое значение Y=100. Из него видно, что, несмотря на отсутствие экстремума в точке Y=100, значение входного блока  можно восстановить по характерной комбинации симметрично расположенных четырех боковых максимумов.

Рис. 8. Фрагмент гистограммы восстановленного массива AR (Y=100)

Моделирование показало, что универсальный декодер, содержащий 4 декодера и блок выделения максимума, исправляет любое количество пакетных ошибок – от 0 до 100% записанного блока данных. Этот декодер эффективен при устранении случайных и пакетных ошибок. При числе ошибок менее 50% они являются случайными и декодер обеспечивает восстановление информации при 41% ошибок в кодовом слове. При числе ошибок более 50% они  являются зависимыми и формируют правую часть графика (рисунок 9). 

Рис. 9. Вероятность ошибки на выходе декодера в зависимости от числа ошибок на входе декодера для голограмм размером n=256 и n=1024
Рис. 9. Вероятность ошибки на выходе декодера в зависимости от числа ошибок на входе декодера для голограмм размером n=256 и n=1024

Таким образом, голографическое кодирование исправляет ошибки, если их количество составляет менее 40 или более 60 процентов от длины кодового слова при n = 1024 (рисунок 9). Это позволяет повысить надежность восстановления данных в системах хранения информации, подверженных воздействию ионизирующего излучения, температуры и других факторов, вызывающих деградацию параметров элементной базы.

 Заключение

Система хранения информации, устойчивая к ионизирующему излучению, представляет собой массив памяти увеличенной емкости с учетом выбранного коэффициента избыточности, и контроллер памяти, осуществляющий голографическое кодирование при записи информации и декодирование с автоматическим исправлением ошибок при чтении информации. Алгоритм работы самого контроллера может быть реализован в виде программируемой логической интегральной схемы, либо хранится в постоянном запоминающем устройстве, не подверженном влиянию ионизирующего излучения.

Использование возможно в компьютере любой архитектуры. Для этого необходимо модифицировать контроллер памяти, введя в него модуль кодирования/декодирования.

Комментарии (2)


  1. gaussssss
    28.11.2025 14:47

    одну ошибку в одном машинном слове. При длине машинного слова 64 бита количество исправляемых ошибок < 1,5%.

    Вы 1.5 процента получили из 1/64? Насколько мне известно ошибки в 1 бите на слово встречаются чаще чем в 2, в 2 - чаще чем в 3 и так далее. Поэтому процент исправляемых ошибок не 1.5, иначе смысла использовать такую коррекцию было бы мало.


    1. ALT0105 Автор
      28.11.2025 14:47

      Это свойство используемого в ECC-памяти кода Хэмминга. Ошибки могут встречаться с любой частотой, но код Хэмминга исправляет только одну ошибку в блоке. Если размер блока 4 бита, то число исправляемых ошибок - 25% от длины слова (при избыточности 75%), если блок 64 бита, то исправляется 1,56% при избыточности 11%. Корректирующих кодов много и все разные, выбрать можно любой. Я предлагаю голографический.