Численный метод параллельного вычисления позиционной характеристики для коррекции ошибок в полиалфавитном полиномиальном модулярном коде
Автор: Калмыков И.А., Оленев А.А., Кононова Н.В., Пелешенко Т.А., Чистоусов Н.К.
Журнал: Компьютерная оптика @computer-optics
Рубрика: Численные методы и анализ данных
Статья в выпуске: 1 т.49, 2025 года.
Бесплатный доступ
Тенденция повышения эффективности вычислительных систем и устройств напрямую связана с переходом к параллельным вычислениям. Предлагается осуществлять параллельные вычисления на уровне арифметических операций, используя арифметические полиалфавитные модулярные коды, в которых кодовые комбинации представляют собой набор остатков, полученных при делении целого числа на основания. Различают два вида таких кодов. В полиалфавитном коде системы остаточных классов в качестве оснований используются взаимно простые числа. В полиалфавитном полиномиальном модулярном коде – неприводимые полиномы. Характерная черта этих кодов – выполнение операций сложения, вычитания и умножения параллельно по основаниям. Обмен данными между основаниями не производится. В результате достигается повышение производительности вычислительных систем. Основания полиалфавитных модулярных кодов равноправны, независимы и служат основой для построения арифметических кодов, обнаруживающих и исправляющих ошибки, возникающие в процессе вычислений. В статье представлены теоретические основы построения избыточных полиалфавитных полиномиальных модулярных кодов, способных обнаруживать и корректировать ошибки вычислений. На основе доказанных теорем был разработан численный метод вычисления позиционной характеристики полиномиального интервала в полиалфавитных полиномиальных модулярных кодах. Данный метод требует меньшего количества операций умножения по сравнению с классическим методом вычисления этой позиционной характеристики. Рассмотрены примеры применения данного метода.
Параллельные вычисления, полиалфавитный полиномиальный модулярный код, контрольные основания, численный метод вычисления позиционной характеристики, коррекция ошибок.
Короткий адрес: https://sciup.org/140310453
IDR: 140310453 | DOI: 10.18287/2412-6179-CO-1505
A numerical method for parallel calculation of the positional characteristic for error correction in a polyalphabetic polynomial modular code
The trend toward increasing the efficiency of computing systems and devices is directly related with the transition to parallel computing. We propose that parallel calculations should be conducted at the level of arithmetic operations using arithmetic composite modular codes (CMC), in which code combinations represent a set of residues obtained by dividing an integer into bases. There are two types of such codes. In the polyalphabetic code of the residual number system (PCRNS), mutually prime numbers are used as bases. In polyalphabetic polynomial modular code (PPMC) there are irreducible polynomials. A characteristic feature of these codes is that addition, subtraction and multiplication operations are implemented in parallel in bases. There is no data exchange between the bases. As a result, an increase in the productivity of computing systems is achieved. The bases of polyalphabetic modular codes are equal, independent, and serve as a basis for constructing arithmetic codes that detect and correct errors that occur in the calculation process. The article presents theoretical foundations for constructing a redundant PPMC capable of detecting and correcting computational errors. On the basis of the proved theorems, a numerical method for calculating the positional characteristic (PH) of the polynomial interval in PPMC was developed. This method requires fewer multiplication operations compared to the classical method of calculating this PH. Examples of the application of this method are considered.
Текст научной статьи Численный метод параллельного вычисления позиционной характеристики для коррекции ошибок в полиалфавитном полиномиальном модулярном коде
Наблюдаемая в настоящее время тенденция к распараллеливанию вычислений связана с необходимостью решения многих практических задач в реальном масштабе времени. В статье рассматривается процесс распараллеливания, выполняемый на уровне арифметических операций, который эффективно реализуется на основе полиалфавитных модулярных кодов (ПМК). Так как в этих кодах кодовые комбинации представляют собой набор остатков, которые получены при делении целого числа на основания, то операции сложения, вычитания и умножения можно выполнять параллельно и независимо друг от друга. В результате этого повышается производительность вычислительных систем (ВС) [1 –5]. Полиалфавит- ные модулярные коды являются непозиционными арифметическими кодами, в которых алфавиты остатков не совпадают друг с другом и определяются основаниями кода. Если в качестве оснований применяются взаимно простые целые числа, то получается полиалфавитный код системы остаточных классов (ПКСОК). Если в качестве оснований взять неприводимые полиномы, то получается полиалфавитный полиномиальный модулярный код (ППМК) [6, 7]. Так как вычисления в этих кодах выполняются параллельно с малоразрядными остатками, то ПКСОК и ППМК нашли применение в системах реального времени, в частности при цифровой обработке сигналов.
Однако широкое использование параллельных вычислительных систем способствовало появлению следующего противоречия. С одной стороны, посто- янный рост требований к скоростным характеристикам ВС приводит к необходимости организации параллельных вычислений, а с другой стороны, при этом увеличивается частота возникновения отказов и возрастает время простоя процессоров, вызванного трудностью отыскания и ликвидации неисправности. Для решения данного противоречия была разработана теория построения корректирующих ПКСОК [2, 5, 6]. В отличие от помехоустойчивых кодов избыточные ПКСОК способны обнаруживать и исправлять ошибки, которые возникают в процессе вычислений. Для этого применяются позиционные характеристики (ПХ). Так как ошибка, возникшая по одному основанию, не может оказать влияние на другие основания, то обнаружение и коррекция ошибки производится в конце всех вычислений.
Однако несмотря на то, что принципы построения данных кодов подобны, теория обнаружения и коррекции ошибок в ППМК на основе использования ПХ находится в стадии становления и еще далека от своего окончательного решения. Актуальность решения данной задачи определяется тем, что разработка численного метода вычисления ПХ в ППМК позволит осуществлять коррекцию результатов линейного и нелинейного биективного преобразований, реализуемых в блочных SPN-шифрах. Благодаря этому будут устранены последствия атак «на основе сбоя», проводимых в шифрах AES и Кузнечик. Поэтому разработка численного метода вычисления ПХ для коррекции ошибок в полиалфавитном полиномиальном модулярном коде является актуальной задачей.
1. Арифметические принципы получения полиалфавитных модулярных кодов
Арифметические коды бывают позиционные и непозиционные. Среди последних особое место занимают ПМК, в которых базовые элементы кода генерируются на основе разных базисов (алфавитов) [7]. Началом развития теории построения ПМК считается работа чешского ученого Миро Валах [1], в которой для повышения скорости вычислений было предложено кодировать целые числа в кольце вычетов, которое было получено с помощью взаимно простых чисел. Базовые принципы модулярной арифметики были рассмотрены советскими учеными И.Я. Акушским и Д.И. Юдицким в [2]. Вопросы повышения скорости выполнения немодульных операций нашли отражение в работе В.М. Амербаева [3]. Повышение надежности вычислительных систем за счет применения модулярных кодов показано в работе В.А. Торгашова [6]. Современные исследователи [7– 10] решают задачи по применению ПМК в цифровой обработке сигналов, фильтрации, криптографии, нейронных сетях. Основная цель данных исследований – повысить скорость вычислений и отказоустойчивость ВС за счет применения ПМК.
Если в качестве базисов такого кода выбрать числа m1, m2,…, mk, для которых выполняются m1 < m2 < ... < mk, (mi . mj-) = 1,
то получается полиалфавитный код системы остаточных классов. В этом случае кодовая комбинация целого числа S будет иметь вид
S = ( S i , s 2 ,..., S k ),
где S º s i ,mod m i ; i = 1,…, k .
Для реализации вычислений в ПКСОК необходимо, чтобы операнды и результат вычисления не выходили за пределы рабочего диапазона
k
Р раб = П m i . (4)
i =1
Пусть заданы два целых числа S и G , тогда в ПКСОК можно выполнить аддитивные и мультипликативные арифметические операции [8, 9]
S + G = (Si + g 1 mod mi,..., Sk + gk mod mk),(5)
S - G = (Si - gi mod mi,..., Sk - gk mod mk),(6)
S ■ G = (Si ■ gi mod mi,..., Sk ■ gk mod mk),(7)
где G º g i mod m i ; i = 1,…, k .
Если в качестве базисов полиалфавитного кода выбрать неприводимые полиномы p1(x), p2(x),…, pk(x), для которых справедливо deg Pi (x) ^ deg P2(x) ^... ^ deg Pk (x), (8)
то получается полиалфавитный полиномиальный модулярный код (ППМК) [6, 7]. В этом случае кодовая комбинация двоичного числа S будет иметь вид
S ( х ) = ( S i ( х ), s 2 ( х ),..., S k ( х )), (9)
где S(x) – полиномиальная форма числа S ;
S ( x ) º s i ( x ) mod p i ( x ); i = 1,…, k .
Как и в ПКСОК, в данном коде необходимо, чтобы степень операндов и результатов вычисления не превышали степень рабочего диапазона
k
Р раб ( х ) = П P i ( х ). (i0)
i =i
Пусть заданы два полинома S ( х ) и G ( х ), тогда в ППМК можно выполнить модульные операции
S ( х ) ° G ( х ) =
= s i( х ) ° g i( х )L ы ,.., к ( х ) ° g k ( х )|„ ы , (i i)
р 1 ( х ) р k ( х )
где о - модульные операции сложения, вычитания и умножения; G ( x ) º g i ( x ) mod p i ( x ); i = 1,…, k .
Анализ равенств (5–7) и (11) показывает, что ППМК и ПСОК обладают одинаковыми достоинствами. Очевидно, что переход к вычислениям на основе полиалфавитных модулярных кодов позволяет увели- чить скорость выполнения модульных операций. Данный положительный результат связан с тем, что:
- арифметические операции выполняются параллельно по базисам кода;
- операнды si, gi имеют меньший размер по сравнению с числами S и G.
2. Теоретические основы обнаружения и коррекции ошибок в ППМК
Поэтому полиалфавитные модулярные коды были применены в вычислительных системах реального времени, таких как спецпроцессоры цифровой обработки сигналов [8– 10], цифровые фильтры [11 – 15], системы аутентификации низкоорбитальных спутников [16, 17], системы шифрования [18 – 20]. Так, в работе [20] представлена архитектура СБИС для реализации криптосистемы с открытым ключом RSA с использованием системы остаточных классов. Проведенные исследования показали, что использование ПСОК позволило увеличить скорость выполнения на 35 % по сравнению с существующими реализациями RSA.
Следует также отметить и другую особенность модулярных кодов. Равноправность и независимость оснований полиалфавитных модулярных кодов служит основой для построения арифметических кодов, способных обнаруживать и исправлять ошибки в процессе вычислений. В этом случае применение по-лиалфавитных кодов обеспечит вычислительным системам свойство устойчивости к отказам и сбоям.
Известно, что для построения кодов, способных противостоять ошибкам, возникающим в комбинациях, необходимо увеличивать их избыточность. Для этого в кодовую комбинацию добавляют контрольные разряды. Как правило, для двоичных позиционных кодов эти разряды получаются путем суммирования по модулю двух соответствующих информационных разрядов [21, 22]. В результате этого для таких избыточных кодовых комбинаций наблюдается ситуация, когда информационная часть поддерживает выполнение арифметических операций, а контрольная – нет. Таким образом, при построении кодов, способных корректировать ошибки вычислений, необходимо обеспечить равноправность информационной и контрольной частей. Другими словами, с этими частями избыточной кодовой комбинации должны одинаково выполняться модульные операции.
В настоящее время теория построения корректирующих кодов системы остаточных классов достаточно глубоко проработана [9, 23, 24]. В этих кодах обнаружения и исправления ошибок в код ПСОК вводится n дополнительных контрольных модулей mk+1, mk+2,…, mk+n, для которых mk < mk+i < ... < mk+n . (12)
В этом случае избыточная кодовая комбинация целого числа S будет иметь вид
S ( s 1 , s 2 , ..., s k , s k +1 , ..., s k + n ) , (13)
где S º s i ,mod m i ; i = 1,…, k + n .
При введении n контрольных модулей происходит расширение количества возможных кодовых комбинаций, которое образует полный диапазон
Рпол = П Pi =Рраб П Pi =Рраб Ркон •(14)
i=1
Избыточная комбинация кода ПСОК (13) считается разрешенной, если число S принадлежит рабочему диапазону, то есть
S < Рраб .(15)
Поэтому в основу большинства методов обнару жения и исправления ошибок ( МОИО ) положены по зиционные характеристики ( ПХ ), которые однознач но показывают положение числа S относительно ра бочего диапазона без перевода в позиционный код .
Воспользуемся этим подходом для разработки концепции построения избыточных полиалфавитных непозиционных кодов , способных обнаруживать и корректировать ошибки вычислений .
Рассмотрим код ППМК с минимальной избыточ ностью . Данный результат можно достичь за счет введения дополнительного контрольного остатка
S(x) = (s1(x),..., Sk(x), Sk+1(x)), где S(x) º sk+1(x) mod pk+1(x).
То есть необходимо добавить контрольное основание pk+1(x), для которого выполняется условие deg P1(x), ^... ^ deg Pk(x) ^ deg Pk+1(x) •
При введении контрольного основания произошло увеличение диапазона возможных кодовых комбина ций до полного диапазона
Рпол (X) = П Pi (х) = Рраб (x)Pk+1 (x) .(18)
i =1
Для избыточного ППМК комбинация (16) считается разрешенной только при условии, что deg S (х) < deg РРаб (x).(19
Ошибка вычислений приводит к искажению остатка кодовой комбинации s * (х) = sj (x) + Asj (x),(20)
где + - суммирование по модулю два; A s j ( x ) - глубина ошибки;
A s j ( х ) = { 1, ..., x M 1 + x MJ 2 + ... + 1 } ; M j = deg P j ( x ).
Тогда ошибочная комбинация ППМК представляется
S * ( x ) = ( S ! ( x ),..., s J ( x ),..., S k + 1( x )). (22)
Теорема 1 . Если в избыточном полиалфавитном полиномиальном модулярном коде, основания которого удовлетворяют условию (18), для кодовой комбинации S * (x) не выполняется условие (19), то такая комбинация является запрещенной.
Доказательство.
Известно, что разрешенная комбинация S ( x ) = ( s i ( x ),^, s k ( x ), s k +i ( x )) удовлетворяет условию (20). Выполним обратный перевод из ППМК в позиционный код (ПК) с помощью Китайской теоремы об остатках в полиномах (КТОП)
S ( x ) = ( s 1 ( x ), В 1 ( х ) + ... + sJ ( x ) В ( х ) + ... + + s k +1 ( x ) В ( х ))mod Р пол ( х ),
где B j (x) - ортогональный базис основания p j (x) ;
B j ( x ) = m j ( x ) P пол ( x ) / p j ( x ) = m j ( x ) P j ( x ); B j ( x ) ° 1mod p j ( x );
mj(x ) = P 4 x )|j x )- вес ортогонального базиса.
Пусть в комбинации S ( x ), глубина которой равна A s j ( x ) / 0, произошла ошибка в j -м остатке. Тогда комбинация будет иметь вид (22). Выполним обратный перевод из ППМК в позиционный код
S * ( x ) =
k +1
^ s i ( x ), B i ( х ) + s j ( x ) В ( х )
i =1
Однако введение одного контрольного остатка (основания) позволяет только обнаруживать однократные ошибки в коде. Под такими ошибками в по-лиалфавитных кодах понимается искажение одного остатка в комбинации. Чтобы обеспечить коррекцию такой ошибки, необходимо увеличить избыточность кода. Для этого необходимо ввести второе контрольное основание pk+2(x), для которого справедливо deg P1(x), < ... < deg pg+1(х) < deg pg+2 (х) . (27)
Докажем теорему, определяющую требования к контрольным основаниям ППМК, способным корректировать однократную ошибку.
Теорема 2. Если в избыточном полиалфавитном полиномиальном модулярном коде, для которого справедливо соотношение (27), выполняется условие deg(рк—1 (x)pk (x)) < deg(pk+1 (x)pk+2 (x)), (28) то данный код может корректировать однократную ошибку.
Доказательство. Пусть задана разрешенная кодовая комбинация, которая удовлетворяет условию (19). Введем в данную комбинацию однократную ошибку. Допустим, что в данной комбинации исказился j -й и g -й остатки, где j * g . Тогда получаем
S j ( x ) = ( s 1 ( x ),..., s j ( x ),..., s k + 2( x )), (29)
S g ( x ) = ( s 1 ( x ),..., s g ( x ),..., s k + 2( x )), (30)
Р пол ( х )
= § s , ( x ), B i ( х ) + ( s j ( x ) + A s J ( x )) В ( х ) = (24)
i =1
i * j Р пол ( х )
= S ( x ) + A s j ( x )) В j ( х ).
где s j ( х ) = sJ ( x ) + A sJ ( x ); s g ( х ) = sg ( x ) + A sg ( x ).
Разделим обе комбинации на рабочий диапазон. Полученные полиномиальные интервалы должны отличаться друг от друга как минимум в одном младшем разряде. Тогда согласно (26) имеем
Разделим комбинации S(x) и S * (x) на рабочий диапазон. Если комбинация ППМК является разрешенной и выполняется условие (19), то частное от деления будет равно нулю.
H ( x ) = _ S ( х )/ Р раб ( x ) ] = 0, (25)
где [_] - целая часть числа.
Для ошибочной комбинации S * (x) получаем
H ( x ) =
S * ( х )
Р раб ( x )
S ( х ) + A s j ( x ) B j ( x ) Р раб ( x )
A s j ( x ) B j ( x )
Р раб ( x )
* 0.
Теорема доказана.
В кодах ПСОК с помощью выражения (25) вычисляют ПХ, которая называется интервалом числа. Учитывая подобие между кодами ПСОК и ППМК, можно сделать вывод, что в качестве ПХ для последнего можно выбрать полиномиальный интервал (ПИ).
S * ( х ) . Рраб ( x )
s g ( х ) . Рраб ( x )
Согласно (26) имеем
A s j ( x ) B j ( x ) Р раб ( x )
> 1.
A s g ( x ) B g ( x ) Р раб ( x )
> 1.
Известно, что ортогональные базисы вычисляются
m j ( x ) Р пол ( x ) = m j ( x ) Р раб ( x ) Р к О н ( х ) p j( x ) p j( x )
R x m g ( x ) Р пол ( x ) _ ms ( x ) Р раб ( x ) Р к О н ( х )
Bg(x) r \ \ pg(x) pg(x)
где P кон ( x ) = p k +1 ( x ) p k +2 ( x ).
Подставим (33) и (34) в выражение (32) и сократим на Р раб (х).
A s j ( x ) m j ( x ) Р К о Н ( x ) + A s g ( x ) m g ( x ) Р К о Н ( x ) . pj( x ) _ _ pg ( x ) .
> 1.(35)
Известно, что число полиномиальных интервалов будет равно NПИ =2d es P «»( x ) . Это позволяет перейти к вычислениям по модулю Р кон (х). Получаем
Р кон ( х )
A s j ( x ) m j ( x ) A s g ( x ) m g ( x ) P j (.x ) P g ( x )
Рассмотрим второй сомножитель (36)
A s j ( x ) m j ( x ) P g ( x ) + A s g ( x ) m g ( x ) P j ( x )
P j ( x ) P g ( x )
> 1.
> 1.(37)
Р кон ( х )
Так как P j ( x ), P g ( x ) - неприводимые полиномы, а |A s j ( x ) m j ( x )| Pj( x ) = s j ( x ) ,
|A s g ( x ) m g ( x )l ( = s g ( x ), I I P g ( x )
где deg s j ( x ) < deg P j ( x ), deg S g ( x ) < deg P g ( x ), то
I A s j ( x ) m j ( x ) P g ( x ) + A s g ( x ) m g ( x ) P3 ( x )| * 0 . (38)
1 1 Ркон ( х )
Положим, что j = k -1, g = k . В этом случае получаем
Р кон ( Х У ( Pk -1( x ) Pk ( x ) ) > 1. (39)
Тогда справедливо, deg(рк-1(x)Pk (x)) < deg(Pk+1(x)Pk+2(x)) .
Теорема доказана.
3. Разработка численного метода вычисления позиционной характеристики полиномиального интервала в ППМК
В избыточных кодах ПСОК во многих МОИО используется ПХ - интервал [8]. Выбор данной позиционной характеристики определяется тем, что данная она имеет простое описание
H = _ S/ Р б ] . (40)
Если выполняется условие (15), то комбинация S =( s 1 , s 2,.., sk + 2) не содержит ошибки и Н = 0. Значит, она будет находиться внутри рабочего диапазона, то есть значение Н = 0. При возникновении ошибки позиция комбинации S * = ( s i ,. s 2,.., sk +2) изменится и она будет находиться вне Рра6 . В результате интервал Н # 0.
Но такой подход, в котором учитывается размещение числа S относительно Рраб , нельзя использовать в полиалфавитных полиномиальных модулярных кодах. Поэтому необходимо разработать численный метод вычисления позиционной характеристики полиномиальный интервал без перевода кода ППМК в позиционный код и выполнения операции деления. Для решения данной задачи воспользуемся Китайской теоремой об остатках в полиномах, которая применяется, когда необходимо выполнить преобразование ППМК-ПК
S ( x ) =
k + n
Е s i ( x ), B i ( х )
i =1
Р пол ( х )
где B j (x) - ортогональный базис модуля P j (x) ; i =1,2,..., k + n .
Воспользуемся подобием кодов ПСОК и ППМК и вычислим полиномиальный интервал, используя выражение (41). Получаем
H ( x ) = S ( x )
_ Р р а6 ( x )
k + n
Е s i ( x ) B i ( x )
Р пол ( Х )
Р раб ( x )
Разделим ортогональные базисы на Р р аб( x ) до получения частного Q i (x) и остатка R i (x) . Тогда
B i ( x ) = Q i ( x ) Р раб ( x ) + R i ( x ), (43)
где
I B i ( x ), i = 1,...., k
R i ( x ) — |
[ 0, i — k + 1,..., k + n
; Bi ( x ) -
ортогональный базис кода с информационными основаниями.
Так как число полиномиальных интервалов равно N пи =2deg P 1 x ) , то выражение (42) можно свести к вычислениям по модулю Ркон(х) . Тогда
Н ( х ) =
где
W ( x ) =
k + n
Е s i ( x ) Q i ( x ) + W ( x )
i =1
£«( x ) B i ( x )
i =1 _________________________
Р раб ( х )
Р кон ( x )
ранг полинома при использовании информационных оснований.
Основным недостатком выражения (44) является вычисление по составному модулю Р кон (х) . Воспользуемся изоморфизмом КТОП и преобразим выражение (44) к виду
L k +1 ( х ) =
Lk + n ( х ) =
k + n
E s i ( x ) Q i ( x ) + U ( x ) i =1
P k + 1 ( x )
k + n
E s i ( x ) Q i ( x ) + U ( x )
i =1
Pt + n ( x )
Анализ выражения (45) показывает, что предложенный численный метод вычисления ПХ не является оптимальным с точки зрения количества выпол-
ненных арифметических операций. Чтобы вычислить полиномиальный интервал кода ППМК, необходимо выполнить ( k + n ) операций умножений остатков s i ( x ) на константы Q i ( x ), где i = 1,…, k , и одно сложение. Чтобы уменьшить вычислительную сложность численного метода вычисления ПХ, рассмотрим код ППМК, состоящий из k информационных оснований и одного контрольного основания p k +1 ( x ). Для данного набора остатков необходимо вычислить ортогональные базисы B 1k +1 ( x ),..., B k +1 ( x ), B k ++11 ( x ). Верхний индекс показывает, какое контрольное используется в данном избыточном коде. Полученные ортогональные базисы делятся на рабочий диапазон до получения частного Q i ( x ) и остатка R i ( x ) согласно (43). При поступлении на вход декодера избыточной комбинации ППМК с одним контрольным основанием производится вычисление полиномиального интервала по модулю p k +1 ( x ).
L k +i( х) =
k
= £ s i (x ) Q i (x ) + s k +i( x ) Q k +i( x ) + U ( x ) i =1
Оставим в коде ППМК k информационных основания и заменим только контрольное основание p k +1 ( x ) на p k +2 ( x ). Для данного набора остатков необходимо вычислить ортогональные базисы B k + 2 ( x ),..., B k + 2 ( x ), B k +k(x ). Полученные ортогональные базисы делятся на рабочий диапазон до получения остатка согласно (43). Тогда выражение (46) примет вид
L k +2 ( х) =
k
£ S i ( x ) Q i ( x ) + S k +2 ( x ) Q k +2 ( x ) + U ( x ) i =1
P k + 2 ( x )
Реализуем данную процедуру для всех остальных контрольных оснований. Тогда численный метод вычисления ПХ кода ППМК можно представить, как
k
L k +i( х ) = £ s i ( x ) Q ( x ) + s k +i( x ) Q k +i( x ) + U ( x )
i =1
,
P k + 1 ( x )
L k + n ( х ) =
k
£ s i ( x ) Q ( x ) + s k + n ( x ) Q k + n ( x ) + U ( x ) i =1
P k + n ( x )
Анализ выражения (48) показывает, что в разработанном численном методе вычисления ПХ было сокращено количество операций умножения, что позволяет уменьшить временные затраты на коррекцию ошибочной комбинации кода ППМК. Так, при вычислении данной ПХ требуется выполнить ( k+n ) операций умножения по модулю
Р кон ( х ) = П P i (х ).
i = k +1
А при использовании разработанного численного метода для вычисления ПХ интервальный полином требуется выполнить ( k+ 1) операцию умножения по модулю контрольного основания.
4. Результаты исследования и их обсуждение
Рассмотрим пример использования разработанного численного метода вычисления позиционной характеристики полиномиальный интервал ППМК. Пусть информационными основаниями будут p 1 ( x ) = x 5 + x 3 + x 2+ x + 1, p 2 ( x ) = x 5+ x 4+ x 2+ x + 1. Тогда рабочий диапазон будет равен P раб ( x ) = x 10+ x 9+ x 8+ x 7+ x 6+ x 4+ x 3 + x 2+ 1. В качестве контрольных оснований в данном коде используются два пятиразрядных неприводимых полинома. Рассмотрим первый кортеж кода ППМК с минимальной избыточностью. Пусть первым контрольным основанием будет полином p 3 ( x ) = x 5+ x 4+ x 3+ x +1. Для компактной записи используем шестнадцатеричную систему счисления. Тогда p 3 ( x ) = x 5+ x 4+ x 3+ x + 1 = 111011 2 = 3 B 16 . Полный диапазон данного кода ППМК равен
P™ ( x ) = x 15 + x 14 + х 12 + x 8 + x 7 + x 6 + x 5 + x 4 + x 3 +
+ x 2 + x + 1 = 1101000011111111 = B 0 FF .
Воспользуемся методом вычисления ортогонального базиса [5]. Для получения первого ортогонального базиса необходимо выполнить:
-
1. Вычислить константу
C 1123 ( x ) = П p j ( x ) = 100 01110001 = 471.
-
2. Найти остаток константы по модулю p 1 ( x )
-
3. Найти вес ортогонального базиса m 1 123 ( x ), для которого справедливо
-
4. Вычислить ортогональный базис
B 1123 ( x ) = m 123 ( x ) C 1123 ( x ) =
= 110 000011101001 = 60 E 9.
j =1 j *1
d 1123 ( x ) = C 1123 ( x ) mod p 1 ( x ) = 01011 = х 3 + х + 1.
d 123 ( x ) m 123 ( x ) = 1 mod p 1 ( x ). (49)
Получили m 1123 ( x ) = х 4 + х 3 + 1 = 11001.
Аналогичным образом получаем два оставшихся ортогональных базиса
B 223 ( x ) = 101000101011 = A 2 B ,
B 323 ( x ) = 110101011000011 = 6 AC 3 .
Для выполнения разработанного численного метода вычисления позиционной характеристики в ППМК представим ортогональные базисы в виде (43)
B 123 ( x ) = R 1123 ( x ) P pa6 ( x ) + B * ( x ) =
= ( x 4 + x 2 ) Р раб ( x ) + ( x 9 + x 6 + x 3 + x 2 + 1).
B 223 ( x ) = R 123 ( x ) Р раб ( x ) + B * ( x ) =
= ( x + 1) Рраб ( x ) + ( x 9 + x 6 + x 3 + x 2 ).
B 323 ( x ) = R 123 ( x ) Р раб ( x ) = ( x 4 + x 2 + x + 1) Р раб ( x ).
Тогда имеем
Q 123 ( x ) = x 4 + x 2 = 10100.
Q 223 ( x ) = x + 1 = 00011.
Q 1123 ( x ) = x 4 + x 2 + x + 1 = 10111.
Данные значения будут использоваться при вычислении значения полиномиального интервала по модулю p 3 ( x ) = x 5 + x 4+ x 3 + x + 1.
Рассмотрим второй кортеж кода ППМК. В качестве второго контрольного основания выбираем p 4 ( x ) = x 5 + x 2 + 1. Тогда код ППМК имеет p 1 ( x ) = x 5+ x 3 + x 2+ x + 1, p 2 ( x ) = x 5+ x 4+ x 2+ x + 1, а информационные основания и контрольное основание p 4 ( x ) = x 5 + x 2 + 1. Тогда полный диапазон равен
P 3 ( x ) = x 15 + x 14 + х 13 + x 9 + x 8 + x 3 + 1 =
= 1110001100001001 = E 309.
Произведем вычисление первого ортогонального базиса для данного кортежа оснований. Для получения первого ортогонального базиса необходимо выполнить:
-
1. Вычислить константу
С 1124 ( x ) = р 2 ( х ) р 4 ( х ) = 110 00001011 = 70 D .
-
2. Найти остаток константы по модулю p 1 ( x )
-
3. Найти вес ортогонального базиса m 1124 ( x ), для которого справедливо
d 1124 ( x ) m J43 ( x ) = 1mod p 1 ( x ).
-
4. Вычислить ортогональный базис
В 324 ( x ) = m l24 ( x ) C 1124 ( x ) = 100111011001111 = 4 ECF .
d 124 ( x ) = C 124 ( x )mod p 1 ( x ) = 10010 = х 4 + х .
Получили т™( x ) = х 4 + х 3 + х 2 + 1 = 11101.
Аналогичным образом получаем другие ортогональные базисы
В 224 ( x ) = 10 0100 00001101 = 240 D ,
В 324 ( x ) = 110101011000011 = 6 AC 3.
Воспользуемся выражением (43) и представим ортогональные базисы в виде
B 124 ( x ) = R 124 ( x ) Р раб ( x ) + B * ( x ) =
= ( x 4 + x 3 + x ) Рраб ( x ) + ( x 9 + x 6 + x 3 + x 2 + 1).
B 224 ( x ) = R 224 ( x ) Р раб ( x ) + B * ( x ) =
= ( x 3 + x 2 + 1) Рраб ( x ) + ( x 9 + x 6 + x 3 + x 2 ).
B 224 ( x ) = R 3124 ( x ) Р раб ( x ) = ( x 4 + x 2 + x + 1) Р раб ( x ).
Тогда имеем
Q 1124 ( x ) = x 4 + x 2 + х = 10110.
Q 224 ( x ) = x 3 + х 2 + 1 = 01101.
Q 324 ( x ) = x 4 + x 2 + x + 1 = 101 1 1.
Выберем в качестве полинома S(x) = x 7, который удовлетворяет условию (19). Представим полином в коде ППМК с двумя контрольными основаниями
S ( x ) = ( x 4 + x + 1, x 2 + 1, х 4 + х 3 + х , x 4 + x 2 ).
Для обнаружения и коррекции ошибки в ППМК сначала используем первый кортеж, состоящий из p1(x) = x5+ x3+ x2+ x + 1, p2(x) = x5 + x4+ x2+ x + 1, p3(x) = x5 + x4+ x3 + x + 1 оснований. Тогда имеем комбинацию
S ( x ) = ( x 4 + x + 1, x 2 + 1, x 4 + x 3 + x ) =
= (10011,00101,11010).
Вычислим ранг полинома при использовании информационных оснований. Получаем
W ( x ) =
( х 4 + х + 1) В * + ( x 2 + 1) В 2*
x 10 + x 9 + х 8 + x 7 + x 6 + х 4 + x 3 + x 2 + 1
= x 3 + x 2 + x + 1.
Вычислим значение полиномиального интервала, представленного по первому контрольному основанию, используя выражение (46). Представим аргументы выражения (46) в виде элементов поля Галуа GF(25), порожденных p 3 ( x ) = x 5 + x 4 + x 3 + x + 1.
51 (х) = 10011 = p29, s 2( х) = 00101 = P13, s 3( х) = 11010 = P7, W (х) = 01111 = p8,
Q 1123 ( x ) = x 4 + x 2 = 10100 = P 9 ,
Q 223 ( x ) = x 2 + 1 = 00101 = в 8 ,
Q 1123 ( x ) = x 4 + x 2 + x + 1 = 10111 = P 26 .
Тогда
L ( х ) =
^ S i ( x ) Q i ( x ) + s 3 ( x ) Q 3 ( x ) + U ( x ) i =1
p 3 ( х )
= |p29 -P 28 +P 26 -P 13 +P 7 -P 19 +P 8| = 0.
I i x + x + x +1
Представим заданный полином в коде ППМК, используя второй кортеж, состоящий из оснований p 1 ( x ) = x 5+ x 3+ x 2+ x + 1, p 2 ( x ) = x 5 + x 4+ x 2+ x + 1, p 3 ( x ) = x 5 + x2 + 1. Тогда имеем комбинацию
S ( x ) = ( x 4 + x + 1, x 2 + 1, x 4 + x 2 ) =
= (10011,00101,10100).
Вычислим значение полиномиального интервала, представленного по второму контрольному основанию, используя выражение (46). Представим аргу- менты выражения (46) в виде элементов поля Галуа GF(25), порожденных p3(x) = x5 + x2 + 1.
5 1 ( х ) = 10011 = в 17 , s 2 ( х ) = 00101 = Р 5 , s 3( х ) = 10100 = в 7 , W ( х ) = 01111 = в 23 , Q 124 ( x ) = x 4 + x 2 + х = 10110 = в 9 , Q 224 ( x ) = x 3 + х 2 + 1 = 01101 = в 8 Q 324 ( x ) = x 4 + x 2 + x + 1 = 10111 = в 26 .
Тогда
L 4 ( х ) =
£ s, ( x ) Q ( x ) + s 4 ( x ) Q 4 ( x ) + U ( x ) i =1
p 4 ( х )
^ 'в 9 +в 5 'в 8 +₽ ’ 'в 26 +в 23 | x 4 + x 2 +1 = 0.
Так как значение полиномиального интервала равно L 3 ( x ) = L 4 ( x ) = 0, то комбинация
S ( x ) = ( x 4 + x + 1, x 2 + 1, х 4 + х 3 + х , x 4 + x 2 )
не содержит ошибки.
Пусть ошибка возникла в первом остатке, а ее глубина равна Л s 1 ( x ) = 1. Тогда искаженный остаток
s * ( x ) = s 1 ( x ) + Л s 1 (x) = x 4 + x .
В результате этого ошибочная комбинация кода ППМК примет вид
S ( x ) = ( x 4 + x , x 2 + 1, х 4 + х 3 + х , x 4 + x 2 )
Воспользуемся разработанным численным методом вычисления ПХ. Для обнаружения и коррекции ошибки в ППМК сначала используем первый кортеж, состоящий из p1(x) = x5 + x3 + x2 + x + 1, p2(x) = x5+ x4+ x2+ x + 1, p3(x) = x5+ x4+ x3+ x + 1 оснований. Тогда имеем комбинацию
S * ( x ) = ( x 4 + x , x 2 + 1, x 4 + x 3 + x ) = (10010,00101,11010).
Вычислим ранг полинома при использовании информационных оснований. Получаем
W ( x ) =
( х 4 + х + 1) В * + ( x 2 + 1) В 2*
x 10 + x 9 + х 8 + x 7 + x 6 + х 4 + x 3 + x 2 + 1
= x 3 + x 2 + x + 1.
Представим аргументы выражения (46) в виде элементов поля Галуа GF(25), порожденных p 3 ( x ) = x 5+ x 4+ x 3 + x + 1.
s1 (х) = 10010 = в24, s 2( х) = 00101 = в13, s 3 (х) = 11010 = в7, W (х) = 01111 = в8.
Тогда
L 3 ( х ) =
£ s i ( x ) Q .( x ) + s 3 ( x ) Q 3 ( x ) + U ( x ) i =1
p 3 ( х )
= в 24 'в 28 + в 26 'в 13 +в 7 'в 19 + в 8|4 з = 01110. I I x 4 + x 3 + x +1
Представим аргументы выражения (46) в виде элементов поля Галуа GF(25), порожденных p 3 ( x ) = x 5 + x 2 + 1.
s (х) = 10010 = в30, s 2( х) = 00101 = в5, s 3( х) = 10100 = в7, W (х) = 01111 = в23.
Тогда
L 4 ( х ) =
£ s i ( x ) Q i ( x ) + s 4 ( x ) Q 4 ( x ) + U ( x ) i =1
p 4 ( х )
= |в 30 'в 9 +в 5 'в 8 +в 7 'в 26 + в 23| x 4 + x 2 + 1 = 11010.
В результате получили, что позиционная характеристика отлична от нуля, что свидетельствует о том, что комбинация ППМК содержит ошибку. Значению ПХ L3(x) = 11010, L4(x) = 11010 соответствует вектор ошибки e = (00001,00000,00000,00000,00000).
Чтобы исправить ошибку, необходимо к искаженной комбинации прибавить вектор ошибки.
S ( x ) = S * ( x ) + e = ( x 4 + x , x 2 + 1, x 4 + x 3 + x ) +
+ (00001,00000,00000,00000,00000) =
= (10011,00101,11010).
Используя разработанный численный метод вычисления ПХ полиномиальный, ошибка в коде ППМК была обнаружена и исправлена.
Заключение
В статье рассмотрены основные принципы построения полиалфавитных полиномиальных модулярных кодов. Показано, что благодаря распараллеливанию таких арифметических операций, как сложение, вычитание и умножение, применение кодов ППМК позволяет повысить производительность вычислительных систем. При этом коды ППМК обладают потенциальными возможностями по обнаружению и коррекции ошибок, возникающих в процессе вычислений. Это обусловлено равноправностью и независимостью оснований ППМК. В статье представлены теоретические основы построения избыточных ППМК, способных обнаруживать и корректировать ошибки вычислений. На основе доказанных теорем был разработан численный метод вычисления позиционной характеристики полиномиальный интервал в ППМК, который требует меньших временных затрат. Так, при вычислении данной ПХ на основе Китайской теоремы об остатках в полиномах требовалось выполнить ( k+n ) операций умножения по модулю
P (х) =П Pi( х), i=k+1
а при использовании разработанного численного метода для вычисления ПХ требуется выполнить ( k+ 1)
операцию умножения по модулю контрольного основания. Представленный в статье пример подтвердил выводы.
Работа выполнена при поддержке Министерства науки и высшего образования в рамках работ Российского научного фонда (проект №23-21-00036, .