Численный метод параллельного вычисления позиционной характеристики для коррекции ошибок в полиалфавитном полиномиальном модулярном коде
Автор: Калмыков И.А., Оленев А.А., Кононова Н.В., Пелешенко Т.А., Чистоусов Н.К.
Журнал: Компьютерная оптика @computer-optics
Рубрика: Численные методы и анализ данных
Статья в выпуске: 1 т.49, 2025 года.
Бесплатный доступ
Тенденция повышения эффективности вычислительных систем и устройств напрямую связана с переходом к параллельным вычислениям. Предлагается осуществлять параллельные вычисления на уровне арифметических операций, используя арифметические полиалфавитные модулярные коды, в которых кодовые комбинации представляют собой набор остатков, полученных при делении целого числа на основания. Различают два вида таких кодов. В полиалфавитном коде системы остаточных классов в качестве оснований используются взаимно простые числа. В полиалфавитном полиномиальном модулярном коде – неприводимые полиномы. Характерная черта этих кодов – выполнение операций сложения, вычитания и умножения параллельно по основаниям. Обмен данными между основаниями не производится. В результате достигается повышение производительности вычислительных систем. Основания полиалфавитных модулярных кодов равноправны, независимы и служат основой для построения арифметических кодов, обнаруживающих и исправляющих ошибки, возникающие в процессе вычислений. В статье представлены теоретические основы построения избыточных полиалфавитных полиномиальных модулярных кодов, способных обнаруживать и корректировать ошибки вычислений. На основе доказанных теорем был разработан численный метод вычисления позиционной характеристики полиномиального интервала в полиалфавитных полиномиальных модулярных кодах. Данный метод требует меньшего количества операций умножения по сравнению с классическим методом вычисления этой позиционной характеристики. Рассмотрены примеры применения данного метода.
Параллельные вычисления, полиалфавитный полиномиальный модулярный код, контрольные основания, численный метод вычисления позиционной характеристики, коррекция ошибок.
Короткий адрес: https://sciup.org/140310453
IDR: 140310453 | DOI: 10.18287/2412-6179-CO-1505
Текст научной статьи Численный метод параллельного вычисления позиционной характеристики для коррекции ошибок в полиалфавитном полиномиальном модулярном коде
Наблюдаемая в настоящее время тенденция к распараллеливанию вычислений связана с необходимостью решения многих практических задач в реальном масштабе времени. В статье рассматривается процесс распараллеливания, выполняемый на уровне арифметических операций, который эффективно реализуется на основе полиалфавитных модулярных кодов (ПМК). Так как в этих кодах кодовые комбинации представляют собой набор остатков, которые получены при делении целого числа на основания, то операции сложения, вычитания и умножения можно выполнять параллельно и независимо друг от друга. В результате этого повышается производительность вычислительных систем (ВС) [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, .