ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
«НАУКА. ИННОВАЦИИ. ТЕХНОЛОГИИ», №3, 2015
УДК 681.3 Лавриненко А. В. [Lavrinenko А. V.]
МЕТОД ПРЕОБРАЗОВАНИЯ КОДА СИСТЕМЫ ОСТАТОЧНЫХ КЛАССОВ В ПОЗИЦИОННЫЙ С КОРРЕКЦИЕЙ ОШИБОК НА ОСНОВЕ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ
Method of conversion from residue number system to positional with error correctness based on artificial neural networks
Как предложенный метод представления чисел, обеспечивающий лучшие надежностные характеристики, система остаточных классов широко применяется для синтеза отказоустойчивых модулярных нейрокомпьютеров. Однако высокая эффективность вычисления немодульных операций, являющихся ключевыми компонентами системы остаточных классов, все еще не достигнута из-за необходимости использования дорогостоящих и сложных операторов, которые требуют большого количества вычислительных ресурсов и много времени на выполнение. В данной работе рассмотрены весьма эффективные обратно конвертируемые преобразователи кода системы остаточных классов на основе искусственных нейронных сетей с расширением кодового слова по контрольным основаниям избыточной системы остаточных классов, обеспечивающие определение, местонахождение и коррекцию ошибок в модулярных конструкциях, что позволило заменить дорогостоящие операции, такие как операции вычисления проекций при использовании обобщенной позиционной системы счисления
Ключевые слова: система остаточных классов, китайская теорема об остатках, обобщенная позиционная система счисления, отказоустойчивость, искусственные нейронные сети, синдром ошибки.
Residue number system (RNS) is widely used for failure-tolerant modular neurocomputers development as a method of number representation that allows better reliability. However, high performance of non-modular operations that are key components of RNS has not been achieved yet because of the necessity to use complex operators that are time- and resource-consuming. This work researches effective reverse converters of RNS based on artificial neural networks with code expansion with bases of redundant RNS that allows detection and error correctness in modular systems what allows to substitute resource-consuming operations such as calculating projections for mixed radix conversion.
Key words: residue number system, Chinese remainder theorem, mixed radix conversion, failure-tolerance, artificial neural networks, error correctness.
Проблема высокой надежности не только передачи и обработки информации, но и ее преобразования из одного формата в другой особенно актуальна в современных системах, работающих в реальном времени, где ошибки работы оборудования должны быть обнаружены
и исправлены немедленно. В связи с этим наиболее перспективным путем решения рассматриваемой проблемы является придание вычислительным устройствам свойства устойчивости к отказам и сбоям в процессе функционирования [1, 2]. Принято считать вычислительную систему отказоустойчивой (fault-tolerant system), если при возникновении отказа она сохраняет свои функциональные возможности в полном (fail-save) или уменьшенном (fail-soft) объеме. При этом отказоустойчивость обеспечивается сочетанием избыточности системы и наличием механизма обнаружения ошибок, а также процедур для автоматического восстановления ее правильного функционирования. Fail-save устойчивость к отказам характеризует способность вычислительной системы обеспечивать корректную работу, несмотря на возникновение отказа или сбоя, но с понижением качества, то есть при нахождении в состоянии постепенного снижения эффективности [3, 4].
Избыточная модулярная арифметика, или избыточная система остаточных классов (RRNS), обладает уникальными свойствами относительно обнаружения и коррекции ошибок [5-8]. Во-первых, в ней отсутствует значимость порядка цифр в записи числа, а во-вторых, и коды, и проверяемые числа представляются в виде остатков, что позволяет считать такие коды полностью арифметическими. На основании этих свойств можно сделать вывод о том, что применение модулярной арифметики позволяет эффективно решать проблему построения отказоустойчивых систем и служит мощным инструментом для автоматического обнаружения и коррекции ошибок.
RRNS привлекает многих исследователей в качестве основы для проектирования отказоустойчивых вычислительных структур, и интерес к ней в последнее десятилетие резко возрастает, что подтверждается большим числом публикаций, посвященных практическому применению RRNS в цифровых системах связи, глобальных системах связи [7], в беспроводных сетях, в отказоустойчивых структурах гибридной памяти [9-10] и других.
Свойство корректирующих кодов в СОК применяется при обнаружении и коррекции ошибок на основе метода проекций [1-3]. Проекцией числам по основаниюph называется числом!,, полученное из А вычерки-
ванием соответствующего остатка о.,. По своей сути алгоритм определения ошибочной цифры и сответствующего ей модуля на основе проекций довольно прост. Необходимо вычислить проекции числа А' по каждому из модулей системы, а затем сравнить их с величиной Р. Если какая-либо из проекций А', окажется меньше значения /'. т. с. будет правильным числом, то ошибка произошла в соответствующем модуле р(. Иными словами, если полученное в результате вычислений число А! является правильным, то все его проекции должны быть неправильными числами. Таким образом, метод проекций позволяет установить в цифре, по какому из модулей системы произошла ошибка, т.е. обеспечивает ее локализацию. Однако и сам алгоритм определения ошибочной цифры, и последующая ее коррекция на основе метода проекций представляются малоэффективными и затратными с точки зрения практической реализации. А именно, вычисление каждой из проекций требует выполнения операции восстановления числа из модулярного представления в двоичное и последующих вычислений над числами большой разрядности, что вносит значительный вклад как в аппаратные затраты, так и в задержку работы устройства. Кроме того, такой метод подразумевает исправление лишь ошибочного остатка, а не всего числа, приводя к необходимости восстанавливать число с уже правильными значениями всех остатков. В связи с этим возникает необходимость искать другие методы реализации механизма обнаружения и коррекции ошибок в СОК.
Одной из альтернатив методу проекций для обнаружения и коррекции ошибок в СОК является синдромное декодирование с вычислением так называемых синдромов ошибки по контрольным основаниям системы. В основе этого метода чаще всего лежит так называемая операция расширения системы оснований. Это немодульная операция, позволяющая по известным остаткам числа, соответствующим некоторым модулям СОК, определить значения остатков этого же числа для других оснований. Обычно для реализации операции расширения системы оснований используют ОПСС, переход к которой носит итеративный характер и может привести к ухудшению быстродействия всего устройства.
Методы и алгоритмы коррекции ошибок в избыточной системе остаточных классов.
Развитие высокопроизводительных и надежных вычислительных систем, обладающих свойством отказоустойчивости, базируется на идеях создания вычислительных средств с параллельной структурой, использующих параллельное представление и обработку данных. К их числу относятся непозиционные коды - коды, основанные на модулярной арифметике, то есть коды, в которых данные представляются в системе остаточных классов (СОК) [1-2].
Если фиксированный ряд положительных чиселр , назвать основаниями (модулями) СОК, то под системой остаточных классов понимается такая непозиционная система счисления, в которой любое целое положительной число А представляется в виде набора остатков (вычетов) от деления представляемого числа на выбранные основания системы
А = (ар а2, ..., а) (1)
где а, - наименьшие неотрицательные вычеты (остатки) числа по модулямрх,р2, ....рп. Цифры а, данного представления по выбранным модулям образуются следующим образом
а, = геэ+А(тоёр,) =А- \A\p\ Р, (V/ е[1, л]), (2)
где \^1р\ - целочисленное частное, р, - основания (модули) - взаимно-простые числа.
В теории чисел доказано, что если V/' г / (/;,. /;,) = 1, то в соответствии с Китайской теоремой об остатках, представление (1) является единственным, при условии
0<А<Р
п
где Р = Р\Рг Рп = I IА - диапазон представления чисел,
,=1 Л
то есть существует число А. для которого
А = a, (mod pl),
А = а2 (mod/»2),
A = an(modp„).
Основным преимуществом такого представления является тот факт, что выполнение операций сложения, вычитания и умножения реализуется очень просто, по формуле
А*В = {ах, а2, «„)*(/?,, Д, Д) = (4)
= ((а, * Д )modp1, (а2 /* Д )mod;?2, (ап * Д, )modp„),
где * обозначает одну из операций: сложение, умножение или
вычитание.
Эти операции носят название модульных, так как для их выполнения в СОК достаточно одного такта обработки численных значений, причем эта обработка происходит параллельно, и величина числа в каждом разряде не зависит от других разрядов.
Если в представление (1) добавить разряд а„ + ъ тогда получено
А =(а1,а2,...,ап+1) (5)
которое соответствует некоторому числу из диапазона [0, R). где R = 1' рп |. При передаче информации или выполнении каких-либо операций будем пользоваться теми же представлениями (1), которым соответствуют числа, заключенные в некоторую часть данного диапазона [0, R); это дает возможность корректировать ошибки.
Если представление (5) удовлетворяет условию:
0 <А< — = Рп+1 (6)
Рп+1
то число А однозначно определяется /7-разрядным представлением ец, ..., а„+1). Поэтому разряд с основанием р„ , можно считать избыточным. Оценим корректирующие возможности кодов СОК с одним и двумя избыточными разрядами по основаниям р„+г и р„+2.
Введем понятие ошибки. Под одиночной ошибкой будем понимать искажение какой-либо одной цифры представления (5), причем искажение ограничивается лишь величиной основания. Под ^-кратной ошибкой будем понимать искажение к цифр представления (5).
Пусть А = (аь а2, ..., а„,ая+1) - переданное сообщение. Для принятого сообщения введем обозначение А = (аи аъ ■■■, <хп,а„+1). Сообщение назовем безошибочным, если 0 < А < ]',..■ . Если же А > Р„+ь то соответствующее представление назовем ошибочным.
Если передано сообщение (5), то принятым может оказаться, вообще говоря, любое из Я сообщений. При этом Р„ , из них будут приняты как безошибочные и Я - Р„+1 - как ошибочные, тогда число Я - 1'п \ показывает суммарное количество обнаруживаемых возможных ошибок. Отношение
К-Р«.А =Р»+1 -1
К Рп+1
может служить мерой обнаруживающих способностей кода СОК. При упорядоченной СОК, когда основания расположены по возрастанию их величины, т. е. рх < р2 < ... < р„ ,. тогда числа /',. 1'2- ..., Р„+\ будут удовлетворять неравенствам /', > Р2> ... > Р,. ■. В [1-4] показано, что наличие одного избыточного основания /;,.. является достаточным для обнаружения всех одиночных ошибок, т. е. если ах = а, при / к и о.\ а, (/' = 1, 2, ..., п + 1), то имеет место неравенство А > Р„+и которое обнаруживает ошибку Необходимо отметить, что введение одного контрольного основания позволяет обнаруживать не только любую одиночную ошибку (в цифре по одному основанию) но и 95% двойных (в цифрах по двум основаниям) [1-2].
Процесс обнаружения ошибочности полученного представления может быть проведен в процессоре, работающем в СОК. Для этого достаточно перевести полученное представление в обобщенную позиционную систему счисления (ОПСС) с теми же основаниями, что и в данной СОК.
Если окажется, что старшая цифра ОПСС ап+1 = 0, то представление безошибочное, если же ап+1 ф 0, то полученное представление ошибочно. Если известен разряд СОК, в котором имеется ошибка, то ее легко исправить с помощью алгоритмов, изложенных в [1-3].
Таким образом, искажение цифры по одному какому-либо основанию переводит это число в неправильное, и тем самым нелегетимный диапазон позволяет обнаруживать наличие ошибки. Введение только одного контрольного основания не позволяет в общем случае локализовать ошибочный разряд. Для корректной локализации ошибочного разряда и гарантированного исправления всех одиночных ошибок необходимо введение двух контрольных разрядов р„+1, р„ у Наличие любых избыточных разрядов является достаточным так же для обнаружения любой двоичной ошибки [1-2].
Пусть А = (аг, аъ ..., ап, ая+1, йп 2) - переданное сообщение или результат вычислений в СОК, а А = (аг, а2,..., а^, ав+1, а„+2) - принятое сообщение либо полученный результат вычислений в СОК, тогда одиночная ошибка может быть всегда исправлена, если числовые значения А передаваемых сообщений или точные результаты вычислений в СОК удовлетворяют неравенствам 0 <А<рг,р2, ...,р„, т. е. А входит в допустимую область. Рассмотрим всевозможные (п + 2) разрядные представления А„ составленные из принятого сообщения вычеркиванием одной цифры (их будет п + 2). Если в принятом сообщении нет ошибок, то для всех значений / = 1,2, ..., п + 2 будет А= А= < />,. р2. ..., рп. Если же в принятом сообщении содержится одиночная ошибка, то, за исключением одного, все (п+ ^-разрядные представления А) будут содержать одну ошибочную цифру, следовательно для (п + 1)-го значения ! будет выполнено неравенство А1 > р^р2, ■ ■.,р„, т.е. А1 входит в недопустимую область, и лишь для одного значения г, например, для / = к будет Ак< р .р:. .... ргг Последнее соответствует случаю, когда вычеркнута ошибочная цифра, но тогда, поскольку А < ръ р2, ...,р„, получим А„=А, = А.
Теперь уже можно найти истинное значение цифры ак, для этого достаточной найти остаток от деления Ак на Рк. Далее вычисляем значения (и + 1)-разрядных представлений А„ = А- г /',. где т. е. для выполне-
ния значений А достаточно из числа А вычитать число Pi до тех пор пока не получится число, лежащее в диапазоне [0, Р) [1-2].
При наличии двойной ошибки, по крайне мере, одно из (п + ^-разрядных представлений будет содержать одиночную ошибку и, следовательно, соответствующее ему числовое значение А, выйдет из заданного диапазона [0; /> • р2••• рп\.
Таким образом, кодирование информации в СОК является устойчивым по отношению к возможным случайным искажениям и отказам, что позволяет при необходимости осуществлять коррекцию данных.
Описанное выше свойство корректирующих кодов применяется при обнаружении и коррекции ошибок на основе метода проекций [1-4]. Проекцией числа А по основанию р,. называется число А,, полученное из А вычеркиванием соответствующего остатка а,. По своей сути алгоритм определения ошибочной цифры и сответствующего ей модуля на основе проекций довольно прост. Необходимо вычислить проекции числа А' по каждому из модулей системы, а затем сравнить их с величиной-Р. Если какая-либо из проекций А', окажется меньше значения Р, т. е. будет правильным числом, то ошибка произошла в соответствующем модуле р.. Иными словами, если полученное в результате вычислений число А! является правильным, то все его проекции должны быть неправильными числами. Таким образом, метод проекций позволяет установить в цифре, по какому из модулей системы произошла ошибка, т.е. обеспечивает ее локализацию. Однако, как и сам алгоритм определения ошибочной цифры, так и последующая ее коррекция на основе метода проекций представляются малоэффективными и затратными с точки зрения практической реализации. А именно, вычисление каждой из проекций требует выполнения операции восстановления числа из модулярного представления в двоичное и последующих вычислений над числами большой разрядности, что вносит значительный вклад как в аппаратные затраты, так и в задержку работы устройства. Кроме того, такой метод подразумевает исправление лишь ошибочного остатка, а не всего числа, приводя к необходимости восстанавливать число с уже правильными значениями всех остатков. В связи с этим возникает необходимость искать другие методы реализации механизма обнаружения и коррекции ошибок в СОК.
Одной из альтернатив методу проекций для обнаружения и коррекции ошибок в СОК является синдромное декодирование с вычислением
так называемых синдромов ошибки по контрольным основаниям системы. В основе этого метода чаще всего лежит так называемая операция расширения системы оснований. Это немодульная операция, позволяющая по известным остаткам числа, соответствующим некоторым модулям СОК, определить значения остатков этого же числа для других оснований. Обычно для реализации операции расширения системы оснований используют ОПСС, переход к которой носит итеративный характер и может привести к ухудшению быстродействия всего устройства.
Суть метода синдромного декодирования заключается в следующем. Пусть в результате вычислений в СОК получено некоторое число Л' = (а/, а[, ..., сч'„). Для определения правильности числа А' необходимо по известным остаткам (Х- . а: .....<Хп определить значения его остатков по контрольным основаниям а'п ,, а'п+п, ..., а'п . Затем следует сравнить значения а'п+1, а'п+2,..., а'„+г с ап+1, ап+2, ..., ап+г - остатками по тем же модулям, но образованными уже в ходе вычислений над входными данными, аналогичных тем, в результате которых было получено само число А'. Сравнение остатков по контрольным основаниям можно осуществить их вычитанием:
Я = о' — (7
"П+1 | Л+! П+1 | П+1
где /' 1, .... г.
Числа 3„+1 называются синдромами ошибки, т.е. позволяют определить правильность результата вычислений в СОК. В предположении, что в полученном числе А' оказались искаженными не больше чем / остатков, для кода, имеющего минимальное расстояние с/тт = 21+ 1, можно сформулировать следующие свойства синдромов ошибки:
1) если все значения синдромов равны нулю: 8п+1 = & ^ = ... = ссп+г, то ошибки не возникло и вектор А' является кодовым словом;
2) если j значений синдромов (1 / I) не равны нулю, то ошибки произошли в соответствующих остатках по кон-
трольным модулям, при этом вектор А' не является кодовым словом;
3) если более чем / значений синдромов не равны нулю, то произошла по меньшей мере одиночная ошибка в векторе А'.
Для иллюстрации данного механизма обнаружения и исправления ошибок с применением корректирующих кодов в модулярной арифметике рассмотрим случай построения отказоустойчивой системы с исправлением одиночных ошибок. При этом код должен иметь минимальное расстояние ¿/тш = 3, которое достигается введением в СОК двух контрольных модулей />,.. и />,.. -. Обычно значения синдромов ошибки д„+1 и д„ 2 используют как для обнаружения, так и для коррекции обнаруженных ошибок. Это становится возможным благодаря тому, что каждой паре значений {#я+ь д„+2} соответствует единственное значение вектора ошибки, а значит, и корректирующего слова для ее исправления. Таким образом, коррекция ошибки при использовании данного метода осуществляется сложением числа, содержащего ошибку, и корректирующего слова, вычисленного по значениям синдромов 3„+1 и ёп+2. Стоит также отметить, что при коррекции в данном случае складываются обычные двоичные числа, а поэтому нет необходимости в каких-либо дополнительных преобразованиях.
Так как модулярная арифметика является параллельной структурой, желательно иметь и параллельную вычислительную базу. В качестве параллельной базы выбраны искусственные нейронные сети (ИНС) на основе программируемых логических интегральных схем (ПЛИС) Х'йтх [11].
Поэтому возникает необходимость разработки эффективных методов нейросетевой модулярной реализации основных вычислительных блоков отказоустойчивых систем, позволяющих избежать снижения быстродействия при их проектировании, с одной стороны, и минимизировать аппаратную избыточность - с другой.
Актуальность данных исследований состоит в том, что реализация синдромного кодирования на основе совместного применения СОК
и ИНС позволяет по-новому взглянуть на существующие и новые принципы построения как отдельных отказоустойчивых вычислительных узлов, так и систем в целом, в том числе и систем повышенной надежности и производительности.
Метод и алгоритм построения нейронной сети для преобразования кода системы остаточных классов в позиционный код с коррекцией ошибок.
Преобразование остаточного кода в позиционный код основано на использовании ОПСС.
Принцип обнаружения, локализации и исправления ошибки основан на функциональном объединении всех трех операций в одну операцию. Данный метод основан на определении цифр по избыточным основаниям на основании цифр по рабочим основаниям и сравнении их с изначально известными цифрами по избыточным основаниям
Вычисление а„+1 и а„+2 проведем на основе метода расширения системы оснований, который базируется на использовании китайской теоремы об остатках и обобщенной позиционной системе счисления. Пусть задана система оснований/^, р2, .... рп с диапазоном Р = р] р2 ... рп. ортогональными базисами Вь В ,. ..., Вп. веса которых ми т2, ..., тп и определяются из сравнения -/ = 1,«. Расширим систему оснований, добавляя основание р тогда диапазон системы станет Рп , = рп , ■ Р, ортогональные базисы системы Вь В2, ..., В.. . их веса т . т2, ..., т ■. при— _ р Р -
чем В1 = т1 "+1 , г = \,п+1. Задача состоит в определении цифры шт чис-
Л Р'
ла А по основанию рп \.
Тогда число А в системе основанийрг,р2, .... рп ]
будет иметь вид
п+1 _
Л = 2>Д.тос1Рл+1, (7)
где Рп+1 = П Д - диапазон расширенной системы оснований; — ¡=1
5. ортогональные базисы расширенной системы основа-
ний.
Представим ортогональные базисы В. в обобщенной позиционной системе счисления, тогда
Д. = ъа +Е2р1 + Ьпр1р2+... + Ьтр1р2...рп. (8)
где Ьу - коэффициенты ОПСС; /', у = 1,2,..., п. На основании (8) запишем выражение (7) в виде
А=(аХЬи,Ц2,.,М+а2(Ь21Д2,...,Ь2и)+...+аД1,йи25...,6лл))то(1Р+1. (9)
Из выражения (9) можно определить коэффициенты а, числа Л, тогда
«,=2>Дутос1д. (|0)
¡=1 №
где а, - вычеты числа А по тос! />:
Ьу - ортогональные базисы, представленные в ОПСС.
Так как результат образования цифры в СОК по новому основанию ршл_л зависит только от информационных разрядов, то операцию расширения вычетов можно проводить сразу по нескольким дополнительно введенным основаниям.
Пример 1. Пусть задана система оснований (модулей) СОК р = 2,
р, = 3, ръ = 5. Расширим систему оснований, добавляя р4=1,р5 = 11. Тогда на основании (8) определим Ь,
Ьп= 1 Ь12= 1 ¿,3=2 ¿¡4=3 615 = 5 ¿21 = 0 ¿22 = 2 Ь23 -1 ¿м=2 ¿25 = 7
631=0 ¿32 =0 ¿зз=1 ¿34 =4 ¿з5 = 2
¿41=0 ¿42 =0 ¿«=0 Ъи= 4 -
¿51=0 ¿52=0 ¿53=0 - ¿55=7 (11)
Таблица 1. Процесс вычисления цифр ОПСС
Вычеты числа Модули
А по модулю р, р, = 2 р2 = 3 Рз = 5 |>-и а Р5= 11
1 1 1 2 3 5
2 0 4 2 4 14
3 0 0 2 8 4
И|р.-7 0 0 0 4|А|7 -
И1р5=11 0 0 0 - 7|А|„
Коэффициенты ОПСС числа А а, = 1 а2 = 2 а, =2 а4 = 2 + 4\А\7 = 2 + 7|Л|„
Пусть задано число А = 17 = (1, 2, 2, \А\р |Л|П), необходимо найти остатки по основаниям р. 7. рч 11 (табл. 1).
После сложения цифр по модулю р1 получим
А = [1,2, 2,2 + 4|Л|7,2 + 7|Л|п],
но так как а4 = 2 + 4|Л|7, а а5 = 2 + 1\А\ и по условию а. = 0 и а = 0, тогда
4|А|7 = -2 или\А\,
-Л.
1\А\и = -2 или \Л\ =5
2 1
= -2
7 а 7
= -5
Мультипликативные величины
1 1
= 2 и
4 7 7
= 8
7
Так как |А|7 = -4, а |А|П = -5 возьмем их дополнения, т. е. \А\ = 1 - 4 = 3, а |Л|П = 11-5 = 6.
Тогда расширенное представление числа будет равно информационному числу, т. е. А = (1, 2, 2, 3, 6) и это говорит о том, что число А безошибочное.
Преимущества предложенного метода расширения системы вычетов состоит в том, что:
- все вычисления выполняются в параллельных каналах по отдельным модулям, причем каждый модуль отождествляется с отдельным каналом;
- не требуется вычисления большого количества дополнительных величин, необходимо только наличие констант и мультипликативных величин по расширенным основаниям;
- возможно получение расширенного представления вычетов числа сразу по нескольким дополнительным основаниям, что не влияет на быстродействие всей операции расширения.
Применим этот метод для обнаружения, локализации и исправления ошибки.
Коррекция ошибок в СОК основана на представлении числа в расширенной системе. В качестве расширенных оснований возьмем избыточные (контрольные) основания. Допустим, что в процессе обработки и хранения данных в вычислительной системе остатки чисел по избыточным основаниям, с одной стороны, абсолютно верны, а с другой сторо-
ны, они вычисляются на основе остатков по неизбыточным (информационным) основаниям непосредственно перед контролем данных. Если вычисленные избыточные остатки равны исходным, то ошибки в информационных основаниях не произошло, в противном случае - ошибка по информационным основаниям произошла. На основании этой информации устраняется ошибка и определяется неисправный модуль.
Введем ограничение на абсолютную верность избыточных оснований, которую можно обеспечить известными структурными технологиями (например, использованием обычных корректирующих кодов или мажоритарной схемы).
Пример 2. Исходные данные такие же, как и в примере 1.
Допустим, произошла ошибка по третьему информационному основанию, тогда ошибочное число А будет иметь вид А = (1, 2, 3, 3,6). Ошибочная цифра подчеркнута.
Избыточные разряды по четвертому и пятому основаниям равны соответственно 3 и 6, и они абсолютно верны.
На основании информационных остатков определим синдромы ошибок 3,
Алгоритм коррекции ошибок базируется на методе обнаружения, исправления и локализации ошибок в СОК.
Контролируемое число ОС],ОС^,ОС^,...,ОСп,ОСп ,,(Xп делится на две части: информационную, в которую входят остатки по информационным основаниям ос, ,а2,а,,...,ссп, и контрольную часть, в которую входят остатки по избыточным (контрольным) основаниям ОС ,, ОТ 2
Далее по остаткам информационных каналов определяем остатки по избыточным основаниям. Воспользуемся таблицей 1, тогда третья строка будет иметь вид не [0, 0, 2, 8, 4], а [0, 0, 3, 12, 6].
При выполнении операции, согласно таблице 1, получим
4\А\? + 6 = 0,1\А\п +4 = 0.
Отсюда
«л+1 = \Ai
6 3 = -3 1
4 7 2 7 2
= -12. =-5
а„+2 = \А\п =
4 --4 1
11 7
= -321 =-10
Используя найденные остатки, определяем синдром ошибки:
-«;+1(modA+1) = |3-(-5)|7 =2, (12)
-«в+2 -a:+l(modpn+2) = |6-(-10)|ц = 5. (13)
По величинам ¿) , 8п формируются константы ошибок таким образом, что при их сложении с информационными разрядами контролируемого числа А, имевшая место ошибка в числе устраняется. Заметим, что если контролируемое число не будет содержать ошибки, то величины St, ¿). равны нулю.
Для локализации ошибки необходимо провести сравнение разрядов исходного числа с исправленным числом, и по тому разряду, где сравнение не выполняется, определить ошибочный разряд.
Определим константы ошибок для данного примера и сведем их в таблицу 2.
В соответствии с (12), (13) г)" 2. с), = 5 по таблице 2 определяется величина ошибки (0, 0, 4), которая складывается с контролируемым числом
А = (1, 2, 3) + (0, 0, 4) = (1,2, 2).
По величине ошибки (0, 0, 4) локализуется ошибочный разряд, им будет разряд по mod ру Использование синдрома ошибки позволяет все процедуры по обнаружению, локализации и исправлению ошибок объединить в одну процедуру, что позволяет уменьшить время коррекции ошибок и повысить эффективность.
Таблица 2. Константы ошибок для СОК с основаниями Рх = 2'Рг = 3'Р3 = 5'Л = 7'/>5 = П-
Ошибка по основанию р1 Ошибка по основанию р2 Ошибка по основанию р3
0, 0, 0 0, 0 0, 0, 0 0, 0 0, 0, 0 0, 0
1, 0, 0 6, 7 1, 4 0, 1, 0 1,2 3,10 0, 0, 1 4, 9 6, 6
0, 0, 2 3, 4 5, 1
0, 2, 0 4, 1 6, 9 0, 0, 3 4, 7 2, 10
0, 0, 4 1, 5 3, 2
Нейронная сеть для преобразования кода системы остаточных классов в позиционный с коррекцией ошибок. На рис. 1 приведена нейронная сеть для обратно конвертированного преобразования и коррекции ошибок в системе остаточных классов. Нейронная сеть состоит из входного слоя нейронов 2, 23, входного слоя 24, предназначенного для хранения остатков числа по рабочим и контрольным основаниям в течение времени обнаружения ошибки, вход которой соединен со входами 1 («ь и:. а3, ..., а„) и входами 25 (а„+ь о.п ) нейронной сети; нейронной сети 8, предназначенной для вычисления остатков чисел по контрольным основаниям, входы которой соединены с выходами нейронов 2, хранящими остатки по рабо-
чим основаниям; нейронных сетей конечного кольца 10, 11, предназначенных для вычисления синдромов ошибки по контрольным основаниям, первые входы которых соединены соответственно с выходами нейронной сети вычисления остатков по контрольным основаниям, а вторые - соответственно с выходами нейронов 23, хранящими остатки по контрольным основаниям, входы которых подключены к шине 25; блок памяти 14, предназначенный для хранения констант, вход которого соединен с выходами нейронных сетей конечного кольца 10, 11; нейронных сетей конечного кольца 21, предназначенных для получения исправленного числа путем суммирования неправильного числа с константой ошибки, первые входы которых соединены, соответственно, с выходами блока памяти, шины 15, которые являются выходными шинами 16, 17 и 18, формирующие номера неисправных модулей и входом элемента ИЛИ 19, выход которого формирует сигнал «есть ошибка» выход 20, а вторые с выходами нейронов 2, а выходные сигналы 22 нейронных сетей конечного кольца 21 являются выходами нейронной сети исправления ошибок.
Работа нейронной сети для обнаружения, локализации и исправления ошибок в системе остаточных классов осуществляется следующим образом.
На входы 1, 25 нейронов 2 и 23 нейронной сети для обнаружения, локализации и исправления ошибки в системе остаточных классов подается контролируемое число А = (а1,а2,ОС3,...,ОСп,ап+1,ап+2). С выходов нейронов 2 остатки по рабочим основаниям с весовыми коэффициентами И',, 3 поступают на вход нейронной сети 8 вычисления остатков по контрольным модулям. Нейронная сеть 8 состоит из совокупности нейронных сетей конечного кольца 4, 5, 6. Весовые коэффициенты ш.. 3 и у/ 1 нейронов нейронных сетей конечного кольца, выполняющие роль распределенной памяти, определяются соответственно ц? = Ь и 1. Нейронные сети конечного кольца 4, 5 и 6 реализуют вычислительную модель, представленную в таблице 3.
Выходные сигналы НСКК 5 и 6 последней строки поступают на вход НСКК 27 и 26, с весовыми коэффициентами м?н 29,
Рис. 1.
Нейронная сеть для преобразования кода системы остаточных классов в позиционный с коррекцией ошибок.
равные
'ип+г)
где / - количество расширяемых модулей и принимает значение
1,2, ...
I
Выходные сигналы 9 НСКК 27 и 28 будут отрицательными значениями — ОС и — (X ,, которые поступают на входы 9 НСКК 10 и 11, а на вторые входы поступают значения ОСп+1 и ОС , по шинам соответственно 30 и 31. НСКК 10 и 11 реализуют вычислительную модель
<51 "«^-НС);
Выходные значения НСКК 10 и 11 по шинам 12 и 13, соответствующим синдромам ошибки, поступают на входы блока памяти 14 и выбирают оттуда соответствующую константу, согласно таблице 3. Эти константы с выхода блока памяти 14 по шинам 15 поступают на соответствующую шину 16, 17 и 18, которые показывают номер неисправного модуля, а также на вход элемента ИЛИ 19, выход 20 которого показывает наличие ошибки. На входы НСКК 21 поступает сигнал с выхода блока памяти, а на вторые входы поступают, соответственно, выходные сигналы рабочих каналов, нейроны 2, выходная шина 26, где суммируются с константами ошибок, подобранными таким образом, что при ее сложении е контролируемым числом А имевшая место ошибка в числе устраняется. На выходе НСКК 21 выходная шина 22 формирует исправленное число, представленное в СОК.
Работа нейронной сети в режиме преобразования остаточного кода в позиционный с коррекцией ошибок осуществляется следующим образом.
На входы 1, 25 нейронной сети для обнаружения, локализации и исправления ошибок в системе остаточных классов подается преобразуемое число, представленное в системе остаточных классов А = (а}, а2,..., ,..., ап, ап+1, ап+2 ) . На выходе нейронной сети фор-
мируются коэффициенты ОПСС, поступающие по шинам 32-34, соответственно по модулямр /) ,... р а на выходах 35,36- синдромы ошибок, которые соответственно являются адресами ПЗУ 37 для хранения произведений а1 р р1 ! и ПЗУ 38 для хранения констант поправок, представленных в двоичном коде. На рис. 1 введенные шины 32-34 показаны пунктирными линиями. С выхода ПЗУ выбранные значения по шинам 39, 40 поступают на сумматор 41, на выходе которого формируется исправленное число, представленное в позиционной системе счисления. Таким образом нейронная сеть формирует исправленное число в СОК и в позиционной системе счисления.
Для реализации такого решения в нейронную сеть для обнаружения, локализации и исправления ошибок в системе остаточных классов введены п - постоянных запоминающих устройств 37, где п - число модулей системы остаточных классов, в которых хранятся произведения а1 Ш р,--- р , определяемые формулой обобщенной позиционной системы счисления, и постоянное запоминающее устройство 38 для хранения констант поправок, определяемых синдромом ошибки, равной разности цифр
6х = К , " « , = К :" а„ 2) тос|Л, :- гДе а„+г и а„ 2 ~ известные значения по избыточным основаниям р , и р .. ¿1 п а . вычисленные зна-
г п 1 ' п 2 п 1 п 2
чения по избыточным основаниям, которые могут содержать ошибочные разряды.
Адресом запоминающих устройств 37 и 38 являются коэффициенты обобщенной позиционной системы счисления, которые вычисляются при расширении оснований системы остаточных классов с целью определения остатков по контрольным модулям. В режиме обнаружения, локализации и обнаружения ошибок используются только переносы из младших разрядов в старшие и разряды ОПСС по контрольным модулям для вычисления синдрома ошибок, а в режиме преобразования кода системы остаточных классов в позиционный код будут использованы разряды ОПСС по рабочим и контрольным основаниям.
Итак, исходными данными для получения позиционного исправленного представления числа являются коэффициенты обобщенной позиционной системы счисления а1 а,... а и синдромы ошибок и с),. Рассмотрим метод коррекции ошибок.
Пусть имеем набор модулей/>../).....-Рп-Ри ],Рп+2, в котором/>../>,.....рп рабочие основания, а р ^в» - контрольные основания. Рассмотрим число А = (а15а2,...,ая,ап+1,ап+2), в котором остатки аг,а2,...,ап - остатки по рабочим основаниям. Пусть по одному из рабочих оснований произошла ошибка. Тогда полученное число А = (а].ау....а.. ...,ая,ап1,ап+2), / = 1, 2, ..., п + 2 будет отличаться от исходного числа одним из остатков а. Ф а . Отбросим в числе А все остатки по контрольным основаниям (сужение диапазона):
А = . ..о.),
и у 1' 2' ' I' 'и7'
а затем произведем расширение диапазона по значениям информационных остатков:
А'=(а1,а2,...,ар...,ап,а1М,ап+2).
Очевидно, что остатки §| ,,« ), определенные по остаткам рабочих оснований в представлении числа А„. в случае наличия ошибки а. Ф а. не будут равны остаткам (а ^..Й ,) в представлении числа А, что обеспечивается Китайской теоремой об остатках (КТО) и избыточностью СОК. Более того, это гарантирует однозначную определенность при различных величинах и местоположениях ошибок.
Для пояснения, рассмотрим пример 3. Пусть задана система оснований рг = 2,р2 = 3,р3 = 5,р4 = 7,р = 11, в которой представлено число А = (1, 2, 2, 3, 6). Два последних основания будем считать контрольными. По основанию р1 = 2 может быть только одна ошибка, в результате которой будет получено число А = (0, 2, 2, 3, 6). Сократив основания до информационных, получим А„ = (О, 2, 2). При расширении диапазона вышеуказанным методом получим А '„ = (0, 2,2, 2,2). Аналогичным способом определим остатки по расширенным основаниям по последним контрольным модулям при возникновении ошибок по остальным рабочим основаниям и результаты сведем в таблицу 3. Из полученной таблицы
Таблица 3. Расширенные основания по контрольным основаниям
Величина ошибки Исходные (а4, а5) Полученные при расширении диапазона (а4, а3)
Да, = 1, а, = 0 (3, 6) (2,2)
Да2 = 1, а2 = 0 (3, 6) (6, 5)
Да2 = 2, а2 = 1 (3,6) (0, 7)
Да3 = 1, а3 = 3 (3,6) (5, 5)
Дст3 = 2, а3 = 4 (3,6) (4, 0)
Да3 = 3, а3 = 0 (3,6) (2,1)
Да3 = 4. а, = 1 (3,6) (1,7)
видно, что, для каждой пары значений остатков по контрольным основаниям (а .. а5) и (а4, а5), можно однозначно указать местоположение ошибки. Так как рабочий диапазон представления чисел Р. = 30, а число всевозможных ошибок по информационным основаниям Л/.,„ = 7, то необходимо помнить = 210 корректирующих чисел вида АЛ = (0,0, ..., Да,, ..., 0)
для каждой возможной комбинации ошибок во всем основном диапазоне представления чисел. Аргументами выбора того или иного корректирующего числа А А будут являться пары коэффициентов контрольных оснований (а4, а5) и (а4, а5).
Таблица 4. Местоположение ошибки
Величина ошибки Исходные а5) Полученные при расширении диапазона (а4, а5) Величина ошибки Исходные («4- а5) Полученные при расширении диапазона («4. <У
Дсг4 = 1, сг4 = 4 (4,6) (3, 6) Дсг5= 1, ог4 = 7 (3, 7) (3, 6)
Да4 = 2, аг4 = 5 (5,6) (3, 6) Да5=2, а4 = 8 (3, 8) (3, 6)
Даг4=3, аг4 = 6 (6,6) (3,6) Да5=3, аг4 = 9 (3, 9) (3,6)
Да4 = 4, а4 = 0 (0,6) (3,6) Да5=4, аг4 = 10 (3, Ю) (3,6)
Да4 = 5, а4 = 1 (1,6) (3,6) Да5 = 5, а4 = 0 (3, 0) (3,6)
Да4 = 6, а4 = 2 (2,6) (3,6) Да5 = 6, а4 = 1 (3, 1) (3,6)
Да5=7, а4 = 2 (3, 2) (3,6)
Да5= 8, а4 = 3 (3, 3) (3,6)
Да5= 9, а4 = 4 (3, 4) (3,6)
Да5= 10, а4 = 5 (3, 5) (3,6)
В случае возникновения ошибки по одному из контрольных оснований расширение диапазона автоматически исправит ошибку, т. к. восстановление дополнительных оснований производятся по информационным, которые по условию являются безошибочными. Таким об-
разом, в данном случае пара (а4, %), (6. .. а5) также однозначно определит местоположение ошибки (таблица 4). Число 1'кN,„ 30 16 480, т.е. необходимо помнить 480 корректирующих чисел вида АА = (0,0, ..., Да,, ..., 0) при выбранной системе оснований для коррекции одиночных ошибок по контрольным основаниям.
Рассмотрим численный пример коррекции преобразованного остаточного кода в позиционный двоичный код для набора оснований р1 = 2, р2 = 3, р3 = 5, р4 = 7, р5 = 11, р6 = 13, где р1 - р4 - информационные (рабочие) основания, а р5 р, контрольные.
Предположим, что в результате сбоя или отказа вместо правильного числа А = (1, 1, 2, 5, 0, 5) было получено А = (1, 1, 0, 5, 0, 5), т.е. ошибка произошла по основанию р3. Тогда при переводе из СОК в ОПСС коэффициенты ОПСС (адреса ПЗУ) будут равны а, = 1. а. 0. а. 4, а. 4. а остатки СОК по контрольным модулям - а] = 2 и а.= 2.
Определим синдром ошибки <5 = 0 -2 = 9, = 5 -2 = 3.
В соответствии с выражением А = ® + а2р} + а.р.р. + о.р,рлр. на вход выходного сумматора будут поступать значения а. 1.<7. 0. о .р. р. = 4 ■ 2 ■ 3 = 24 и а4ргр^ръ 4 2 3 5 120.
В результате поступивших значений на выходе сумматора будет число, равное 1 + 24 + 120 = 145.
Величина поправки, представленная в СОК, определяет величину коррекции в ПСС, т.к. 3 = 9, а = 3, то по таблице 6 находим А„ = 42 (в таблице 5 обведено контуром), тогда на выходном сумматоре по модулю Р = р] р,р:.рА = 210. Получим позиционное откорректированное число А = 1145 + 421 = 187. Это соответствует правильному представлению в СОК, как (1, 1,2,5,0,5).
Таким образом, синтезированная нейронная сеть для преобразования кода системы остаточных классов в позиционный с коррекцией ошибок характеризуется минимальными аппаратурными затратами. Предложенный подход предполагает использование до 70% аппаратной избыточности для обнаружения и исправления 100% одиночных ошибок и обнаружения всех двукратных ошибок. Аналогичный подход в позиционной системе счисления потребует 200% аппаратурной избы-
Таблица 5. Таблица поправок в СОК и в ПС С
Основание Глубина ошибки Разность минимального следа и остатка по контрольным основаниям Поправка в ПСС по модулю 210
а5 — Э5 аб~ Э6
2 1 5 12 105 6 1 105
3 17 8 140 8 10 70
3 2 3 3 70 4 5 140
5 16 4 126 7 6 84
5 2 2 10 42 3 12 168
5 3 8 1 168 9 3 42
5 4 4 7 84 5 9 126
7 1 1 10 120 2 12 120
7 2 3 9 180 4 11 30
7 3 4 6 60 5 8 150
7 4 6 5 150 7 7 60
7 5 7 2 30 8 4 180
7 6 9 1 120 1 3 120
11 110 0 1 0 0
Основание Глубина ошибки Разность минимального следа и остатка по контрольным основаниям Поправка в ПССпо модулю 210
а5 — а5 36 — аб
11 2 2 0 0 2 0 0
11 3 3 0 0 3 0 0
11 4 4 0 0 4 0 0
11 5 5 0 0 5 0 0
11 6 6 0 0 6 0 0
11 7 7 0 0 7 0 0
11 8 8 0 0 8 0 0
11 9 9 0 0 9 0 0
11 10 10 0 0 10 0 0
13 10 1 0 0 1 0
13 2 0 2 0 0 2 0
13 3 0 3 0 3 0
13 4 0 4 0 4 0
13 5 0 5 0 5 0
13 6 0 6 0 6 0
13 7 0 7 0 7 0
Основание Глубина ошибки Разность минимального следа и остатка по контрольным основаниям Поправка в ПСС по модулю 210
а5 — а5 36 — аб
13 8 0 8 0 8 0
13 9 0 9 0 9 0
13 10 0 10 0 10 0
13 11 0 11 0 11 0
13 12 0 12 0 12 0
точности. Время преобразования в позиционный код определяется как "псс '■ПЗУ + 1V, (14)
число каналов,
время вычисления модульным сумматором, время выборки из ПЗУ коэффициентов ОПС, время суммирования коэффициентов ОПС.
где п -г1 -
V
'ПЗУ
Для 14 каналов время преобразования составит $псс = 88,8 не при аппаратных затратах 14 ЯАМВЗб, 14ЫАМ18 и 1063 8Ы8ЕЬ.
Заключение.
С помощью метода расширения базы разработан метод построения нейронной сети для преобразования кода системы остаточных классов в позиционный с коррекцией ошибок. Предложенный подход предполагает использование до 70% аппаратной избыточности для обнаружения и исправления 100% одиночных ошибок и обнаружения всех двукратных ошибок. Аналогичный подход в позиционной системе счисления потребует 200% аппаратурной избыточности. Выигрыш в быстродействии по сравнению с известной схемой Гарнера, осуществляющее такое преобразование за 2(п - 1) циклов, равен двум.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Omondi A., Premkumar В. Residue Number Systems: Theory and Implementation. London: Imperial College Press, 2007. 296 p.
2. Szabo N.S., Tanaka R.T, Residue arithmetic and Its Application to Computer Tecnology. McGraw-Hill, 1967.
3. Червяков Н.И. Нейрокомпьютеры и их применение: учеб. пособие для студентов по направлению подгот. бакалавров и магистров «Прикладная математика и информатика» / Н.И. Червяков [и др.]; под ред. А.И. Галушкина, Н.И. Червякова. М., 2003. Сер. кн. 11 Нейрокомпьютеры и их применение: науч. сер. Том «Нейрокомпьютеры в остаточных классах».
4. Макоха А.Н., Сахнюк П.А., Червяков Н.И. Дискретная математика: учебное пособие. М., 2005.
5. Червяков Н.И. Математическая модель нейронной сети для коррекции ошибок в непозиционном коде расширенного поля Галуа/ Н.И. Червяков, И. А. Калмыков, Ю.О. Щел-кунова, В.В. Бережной. URL: http://www.radiotec.ru/catalog. php?cat=jr7&art=4044.
6. Калмыков И. А. Архитектура отказоустойчивой нейронной сети для цифровой обработки сигналов / И. А. Калмыков, Н. И. Червяков, Ю. О. Щелкунс-ва, А. А. Шилов, В. В. Бережной // Нейрокомпьютеры: разработка, применение. 2004. № 12. С. 51-60.
7. Yang L-L. And Hanzo L. Redundant Residue Number System Based Error Correction Codes. In VTC'2001. Atlantic City, USA, 07-10 Oct 2001. P. 1472-1476.
8. Goh V. T. and Siddiqi M. U. Multiple error detection and correction based on Redundant Residue Number System // IEEE Transactions on Communications. Vol. 56. 2008. №3. P. 325-330.
9. James Jilu and Pe Ameenudeen. A novel method for error correction using Redundant Residue Number System in digital communikation systems. IEEE 2015 International Conference on Advances in Computing, Communication and Informatics (ICACCI), 2015. P. 1793-1798.
10. Nor Zaidi Haron and Said Hamdioui. Redundant Residue Number System Code for Fault-Tolerant Hybrid Memories //ACM Journal on Emerging Technologies in Computing Systems. Vol. 7. 2011. №1. Article 4.
11. Червяков H. И., Сахнюк П. А., Шапошников А. В. Пути эффективного использования иерархических структур фрагментов нейронных сетей ПЛИС XILINX при аппаратной реализации цифровых фильтров с параллельной обработкой данных // Нейрокомпьютеры: разработка, применение. 2001. №10. С. 26-33.