УДК 004.312.26+629.78 Б01: 10.18287/2541-7533-2017-16-4-130-136
ПРИМЕНЕНИЕ СВЁРТОЧНЫХ КОДОВ ДЛЯ ЗАЩИТЫ ПРОГРАММИРУЕМЫХ ЛОГИЧЕСКИХ ИНТЕГРАЛЬНЫХ СХЕМ
ОТ ЕДИНИЧНЫХ ОТКАЗОВ, ВЫЗВАННЫХ РАДИАЦИОННЫМ ВОЗДЕЙСТВИЕМ КОСМИЧЕСКОГО ПРОСТРАНСТВА
© 2017
А. А. Никитин инженер-электроник;
Ракетно-космическая корпорация «Энергия» имени С.П. Королёва, г. Королёв; [email protected]
Ю. Н. Жигулёвцев кандидат технических наук, доцент;
Московский государственный технический университет имени Н.Э. Баумана
(национальный исследовательский университет);
Рассматривается вопрос повышения стойкости системы, состоящей из нескольких программируемых логических интегральных схем (ПЛИС), к радиационному воздействию космического пространства. Рассматриваются только некатастрофические сбои, свойственные радиационно стойким ПЛИС типа Antifuse. В качестве решения предложен алгоритм свёрточного кодирования, кодер которого усовершенствован заменой сдвигового регистра на циклически перезаписываемый регистр. Для декодирования используется алгоритм Витерби. Рассматриваемый алгоритм позволяет исправлять ошибки не только в канале с помехами, но и ошибки внутри кодера и декодера, возникающие в результате попадания тяжёлых заряженных частиц. Результаты покрывающих тестов реализации математической модели алгоритма доказали 100%-ю вероятность исправления одиночных ошибок во всех блоках.
Свёрточные коды; алгоритм Витерби; единичный радиационный сбой; циклически записываемый регистр; ПЛИС; локальный протокол.
Цитирование: Никитин А.А., Жигулёвцев Ю.Н. Применение свёрточных кодов для защиты программируемых логических интегральных схем от единичных отказов, вызванных радиационным воздействием космического пространства // Вестник Самарского университета. Аэрокосмическая техника, технологии и машиностроение. 2017. Т. 16, № 4. С. 130-136. DOI: 10.18287/2541-7533-2017-16-4-130-136
В настоящее время в качестве основного элемента систем управления космического аппарата (КА) всё чаще выступают программируемые логические интегральные схемы. Они являются универсальным решением, позволяющим реализовывать на основе одного кристалла различные схемы, включающие в себя необходимые периферийные блоки, любые алгоритмы управления и даже реализованные в качестве блоков микроконтроллерные структуры. Но основным плюсом ПЛИС является возможность реализовывать схемы многоканального управления с высокой степенью синхронности.
Бортовые системы КА во время полёта подвергаются воздействию различных специальных факторов космического пространства, но наиболее сложно предсказуемым фактором является радиационное воздействие. Поэтому в системах управления используются только радиационно стойкие ПЛИС. Все из доступных на сегодняшний день ПЛИС российского производства построены по технологии плавких перемычек Antifuse. Однако данная радиационно стойкая технология не позволяет полностью избавиться от единичных сбоев и отказов, а лишь значительно повышает значение линейной передачи энергии (ЛПЭ) тяжёлых заряженных частиц (ТЗЧ), необходимой для появления единичного события. По этой причине разработчик схемы на ПЛИС должен организовать защиту, повышающую стойкость кристалла к радиационным воздействиям.
Главным условием реализуемой защиты является снижение вероятности перехода единичных радиационных воздействий (радиационное защёлкивание (SEL), переходная
ионизационная реакция (SET) или однократный восстанавливаемый сбой памяти (SEU)) в одиночный эффект функционального прерывания или в «залипание» бита (SEFI). То есть не происходит переноса ошибки с уровня единичного логического элемента на уровень функционального блока.
На сегодняшний день разрешённых для применения в бортовых системах управления ПЛИС крайне мало и они имеют очень скромные объёмы логических элементов (1,5-2 тысячи). Поэтому для определённых многоканальных задач приходится объединять несколько кристаллов в одну схему для увеличения общего объёма вентилей. При этом один кристалл является центром системы, а остальные локальные ПЛИС содержат в себе определённое количество каналов управления. При этом организовать дополнительные алгоритмы защиты на локальных ПЛИС довольно сложно из-за малого объёма кристалла. Поэтому необходимо разработать алгоритм, повышающий стойкость кристалла к единичным сбоям на всех этапах обмена между ПЛИС. В качестве одного из вариантов принят алгоритм свёрточного кодирования.
Свёрточное кодирование является одним из наиболее распространённых видов помехоустойчивого кодирования. На рис. 1 представлена упрощённая структурная схема системы с применением свёрточного кодирования. В ней источником информации является функциональный модуль, генерирующий входную последовательность m = m1,m2,..,mi,..., где mi - двоичный бит. Входная последовательность поступает во входной буфер, в классической реализации выполняющийся в виде сдвигового регистра. На выходе буфера появляется последовательность F = H (m), подготовленная для кодирования кодером. Задачей кодера является преобразование каждой последовательности F в последовательность кодовых слов U = G (F). Так как исходной информацией кодера является входной буфер, то каждое кодовое слово входной последовательности является зависимым от соседних бит.
Рис. 1. Структурная схема локального протокола с применением свёрточного кодирования
При классическом применении свёрточного кодера ошибки возникают только в канале передачи информации. Но под действием ТЗЧ в схеме работы ПЛИС могут происходить сбои, вызывающие временное изменение состояния регистров на всех этапах работы локального протокола, начиная от входного буфера и заканчивая свёрточным декодером.
Расчёт частоты сбоев для каждого прибора производится отдельно. Однако анализ данных по приборам, участвующим в программе международной космической станции (МКС), показал, что частота сбоев достигает нескольких десятков в сутки. При этом
можно сделать вывод, что вероятность возникновения двух сбоев одновременно или в соседних тактах при стандартной тактовой частоте работы ПЛИС в единицы мегагерц и условии слабо изменяющейся плотности потока ТЗЧ галактических космических лучей настолько мала, что может не рассматриваться.
Таким образом, необходимо реализовать алгоритм свёрточного кодирования устойчивого для единичных сбоев, возникающих во входном буфере и свёрточных кодере и декодере.
Основным недостатком классической реализации входного буфера и кодера, представленного на рис. 2, а, является то, что при единичном сбое (SET, SEU или SEL) в сдвиговом регистре во время следующего такта произойдёт перезапись ошибочного бита в следующий бит регистра. Таким образом, ошибка повлияет не только на формируемое в настоящее время кодовое слово, но и на следующие К слов (К - кодовое ограничение):
ti:H {mi) = (mi, mj_1, т_2) - сбоя нет;
t2: H (mi+1) = (mi+1, mt, mi_1) - сбой во втором бите mt;
t3:H (+2) = (+2 ,mi+1 ,mt) - сбой перезаписан в третий бит.
Проблемой является и то, что во время сбоя бит входной последовательности mi инвертируется и оба бита выходной последовательности становятся скомпрометированными:
m : Gi (H (m+2)) = 02 (m+2 ,m,+i,m,), m: G2 (h (m+2)) = 02 (m+2,m,).
а б
Рис. 2. Схема входного буфера и кодера: а - классическая схема; б - для единичного сбоя от ТЗЧ
Для решения этой проблемы было решено применить в качестве входного буфера не сдвиговый регистр, а циклически записываемый регистр, представленный на рис. 2, б. Основная идея состоит в том, что каждый следующий такт запись происходит в новый бит, а при переполнении происходит перезапись наиболее старых записей. При этом выходные слова кодируемой последовательности равны:
^ : Н (т{) = (, т_2, ) - сбоя нет;
t2: Н (тм) = (mi, тм, т1 _1) - сбой в первом бите т{;
/3: Н (т{+2) = (тп шг+1, шг+2) - перезапись бита не производилась.
Как видно, в третьем такте за счёт отсутствия перезаписи сбой был восстановлен.
Свёрточный кодер был упрощён, так как имеющийся объём логических элементов в ПЛИС очень мал и не рассматривались двойные ошибки в связи с их малой вероятностью.
Декодер строится на основе упрощённого алгоритма Витерби, в качестве меры расстояния используется метрика Хэмминга. Основная суть декодера заключается в рассмотрении возможных путей и отбрасывании тех, которые согласно принципу максимального правдоподобия не могут быть оптимальными.
Для полного анализа работы кодера и декодера в среде МайаЬ была реализована их математическая модель
Я = -, (1)
п
где к показывает количество входных символов, поступающих за один такт на вход свёрточного кодера; п - характеризует общее количество разрядов в соответствующем кодовом слове на выходе кодера.
Рассмотрим реализацию кодера на примере одного решения, приведённого в таблице.
Результаты работы кодера в среде МаНаЪ
т. i н т) р, {т.._1) О {^) О {^ {т1_))
1 100 100 10 10
1 110 110 11 11
0 110 100 11 10
1 110 110 11 11
0 100 100 10 10
В результате работы кодера входная последовательность т = 11010 была закодирована в и = 1011101110. Таким образом видно, что в соответствии с (1) скорость кода снизилась в два раза. Для снижения избыточности кода было решено организовать параллельную передачу символов одного кодового слова. Это увеличит в два раза количество связей между центральной и локальной ПЛИС. Однако реализуемых в одной системе локальных протоколов не так много, и в тех реализациях, где применялся данный алгоритм, имелся запас по свободным контактам.
С помощью полного покрывающего тестирования было выявлено, что для любого сбоя (или в буфере, или в самом кодере) расстояние Хемминга между О {( {т^ _)) и
О (^). будет не больше 1. Также подтверждено, что ошибки, возникшие во входном
буфере, не распространяются дальше одного кодового слова.
Работу реализованной в среде МайаЬ математической модели декодера рассмотрим на примере последовательности слов О(Fi {)), представленной в таблице. Алгоритм работы реализованного декодера Витерби представлен на рис. 3, 4.
00 с*
10 о
01 о
11 о
Рис. 3. Определение вариантов состояний выходного буфера
11 Ь *з ъ ^
Ъ 11 ъ ^
Рис. 4. Последовательность действий декодера: а - расчёт кодовых слов; б - вычисление расстояний Хемминга
Каждый такт декодер определяет два равновероятных пути, соответствующие каждому новому состоянию входной последовательности. Далее, как показано на рис. 3, алгоритм формирует возможные состояния входного буфера и кодирует их в вероятностные кодовые слова (рис. 4, а). Далее алгоритм рассчитывает кодовые расстояния Хемминга, как показано на рис. 4, б. Последним шагом является определение пути с наименьшим весом, который и признаётся истинным. В случае, если пути имеют одинаковый вес, то они считаются равновероятными и в следующем пути рассматриваются все 4 варианта, из которых также выбирается имеющий наименьший вес.
Анализ результатов
Результаты покрывающего тестирования кодера используются как входные данные для проверки алгоритма декодирования. Тестирование подтвердило, что во всех 100% входных данных, имеющих единичную ошибку, декодер исправил её.
И кодер, и декодер реализовывались на радиационно-стойкой ПЛИС 5576ХС7Т производства ОАО «ВЗПП-С», имеющего 1728 логических элементов.
Оптимизированная версия заняла 432 логических элемента, что равно 24% объёма кристалла. Кодер занял 48 логических элементов, что равно 3% объёма кристалла.
Задержка информационного обмена на ширине данных из-за необходимости декодирования составила два такта, что при используемой частоте 2 МГц составляет 1 мкс. Данное значение значительно меньше задержки, полученной в результате использования межмодульного интерфейса.
Заключение
Декодер занял довольно значительный объём, потому что построен по защищён-ной схеме с дополнительным дублированием некоторых элементов. Его использование должно вестись при строгом учёте ресурсов кристалла. В свою очередь, разработанная
реализация радиационно-стойкого свёрточного кодера занимает на 18% меньше объёма по сравнению с классической схемой защиты (троирование и последующее мажорирование выходных сигналов). Главным результатом является то, что кодер при таком занимаемом объёме может быть использован при большой загруженности ПЛИС и позволяет полностью избежать переноса ошибки с уровня единичного логического элемента на уровень функционального блока. Выбранный кристалл является первым в линейке ПЛИС российского производства, следующие модели радиационно стойких ПЛИС будут обладать большей ёмкостью, что позволит использовать разработанный декодер более эффективно и свободно.
Библиографический список
1. Синицин Д.В. Повышение помехоустойчивости радиотехнических систем передачи информации с использованием свёрточных алгоритмов обработки сигналов. Дис. ... канд. техн. наук. Владимир, 2014. 127 с.
2. Таперо К.И., Улимов В.Н., Членов А.М. Радиационные эффекты в кремниевых интегральных схемах космического применения. М.: БИНОМ. Лаборатория знаний, 2014. 305 с.
3. Блейхут Р. Теория и практика кодов, контролирующих ошибки. М.: Мир, 1986.
576 с.
4. Радиационная стойкость изделий ЭКБ / под ред. А.И. Чумакова. М.: НИЯУ МИФИ, 2015. 512 с.
APPLICATION OF CONVOLUTIONAL CODES FOR THE PROTECTION
OF FPGA AGAINST SINGLE FAILURES CAUSED BY OUTER SPACE RADIATION EFFECTS
Electronics Engineer;
S.P. Korolyov Rocket and Space Corporation "Energia", Korolyov, Moscow Region, Russian Federation; [email protected]
Candidate of Science (Engineering), Associate Professor; Bauman Moscow State Technical University, Moscow, Russian Federation; [email protected]
Increasing the resistance of a system consisting of several programmable logic integrated circuits (FPGA) to space radiation effects is discussed in the paper. Only upsets (non-catastrophic failures) peculiar to the radiation-resistant FPGAs of the Antifuse type are considered. An algorithm of convolutional coding is proposed as a solution. The coder in this case is improved due to the replacement of a shift register by a cyclically rewritable register. The Viterbi algorithm is used for decoding. The algorithm considered in the article allows correcting errors not only in a noisy channel but also errors in the coder and decoder resulting from heavy ions hitting. The results of covering tests of implementation of a mathematical model of the algorithm proved one hundred per cent probability of correcting single errors in all units. The data obtained in the physical implementation of the algorithm in FPGA confirms the estimated reliability.
Convolutional code; Viterbi algorithm; single radiation-caused failure; cyclically rewritable register; FPGA; local protocol.
Citation: Nikitin A.A., Zhigulevtsev Yu.N. Application of convolutional codes for the protection of FPGA against single failures caused by outer space radiation effects. Vestnik of Samara University. Aerospace and Mechanical Engineering. 2017. V. 16, no. 4. P. 130-136. DOI: 10.18287/2541-7533-2017-16-4-130-136
© 2017
А. A. Nikitin
Yu. N. Zhigulevtsev
References
1. Sinitsin D.V. Povyshenie pomekhoustoychivosti radiotekhnicheskikh system peredachi informatsii s ispol'zovaniem svertochnykh algoritmov obrabotki signalov. Dis. ... kand. tekhn. nauk [Increasing noise immunity of radio engineering data transfer systems using convolution algorithms of signal processing. Dissertation of a Candidate of Science (Engineering)]. Vladimir, 2014. 127 p.
2. Tapero K.I., Ulimov V.N., Chlenov A.M. Radiatsionnye effekty v kremnievykh inte-gral'nykh skhemakh kosmicheskogo primeneniya [Radiation effects in silicon logic integrated circuits of space-related application]. Moscow: BINOM. Laboratoriya Znaniy Publ., 2014. 305 p.
3. Blahut R.E. Theory and Practice of Error Control Codes. Boston: Addison-Wesley, 1983. 500 p.
4. Radiatsionnaya stoykost' izdeliy EKB / pod red. A.I. Chumakova [Radiation resistance of ECB products / edited by A.I. Chumakov]. Moscow: National Research Nuclear University MEPhI Publ., 2015. 512 p.