Исследования методов выполнения немодульных операций в системе остаточных классов Н.И. Червяков, М.А. Дерябин, А.А. Зайцев, Е.В. Воробьева, Е.С. Карнаухова Введение В настоящее время в связи бурным развитием инфокоммуникационных технологий появляются новые подходы к решению задач обработки и передачи информации. Исследования современных подходов отечественных и зарубежных специалистов показывают, что одним из наиболее перспективных способов решения задач, связанных с уменьшением времени обработки данных и увеличением надежности вычислительных средств, является использование различных методов параллельной обработки данных, в том числе и систем счисления с естественным параллелизмом. Одно из ведущих направлений исследований в этой связано с созданием отказоустойчивых высокопроизводительных средств обработки информации на основе использования системы остаточных классов (СОК) [1-5]. Основным преимуществом СОК является параллельная обработка информации, что позволяет выполнять арифметические операции без переноса данных между каналами с различными основаниями и способствует сокращению задержек сигналов [6]. Основным сдерживающим фактором СОК можно считать трудность выполнения немодульных операций, таких как деление, определение знака числа, сравнение и расширение системы оснований [7-9]. Точные методы определения позиционных характеристик числа в системе остаточных классов СОК определяется набором взаимно-простых чисел называемых модулями. Наибольшее число, которое p1 , p 2 , ..., p n , может быть n представлено в СОК с данным набором модулей, равно P 1, где P pi i 1 диапазон СОК [1]. Исследования показывают, что эффективная реализация СОК с использованием технологий параллельной обработки данных позволяет в несколько раз ускорить выполнение модулярных операций. Однако модулярный подход добавляет ряд ограничений на возможности действий с числами, что приводит к так называемым немодульным операциям [2,3]. Немодульные операции в СОК, в отличие от модульных, предполагают взаимосвязь разрядов по различным основаниям системы, что приводит к возникновению обменов между параллельными каналами обработки данных. Рассмотрим далее основные точные методы определения позиционных характеристик чисел. Метод ортогональных базисов. Пусть число A задано в СОК: A1 , 2 , ..., n . Основная идея метода ортогональных базисов [1, 10] состоит в том, что число A представляется в виде A 1 B1 2 B2 ... n Bn P где B1 , B 2 , …, B n являются базисными элементами и имеют следующий вид в СОК: B1 1, 0, ..., 0 , B2 0,1, ... , 0 , …, Bn 0, 0, ... , 1 . Для вычисления величин B1 , B 2 , …, B n используется формула Bi mi P , i 1, 2, ..., n , где pi n P pi – диапазон СОК, m i – целое положительное число, называемое i 1 весом базиса и определяемо из сравнения Пример. Пусть дана mi P 1mod p i . pi система оснований p1 2, p 2 3, p3 5, p 4 7, p5 11, объем диапазона P 2 3 5 7 11 2310. Перевести число A (1,2,1,4,7) в позиционную систему. Вычислим ортогональные базисы. Для этого найдем величины P1 Pi : P P P P P 1155, P2 770, P3 462, P4 330, P 210. p1 p2 p3 p4 p5 Далее находим веса базисов: 1155 m1 1(mod 2), m1 1(mod 2). 770 m2 1(mod 3), m2 2(mod 3). 462 m3 1(mod 5), m3 3(mod 5). 330 m4 1(mod 7), m4 1(mod 7). 210 m5 1(mod 11), m5 1(mod 11). Вычисляем базисы: B1 m1 P1 1 1155 1155, B2 m2 P2 2 770 1540 , B3 m3 P3 3 462 1386 , B4 m4 P4 1 330 330, B5 m5 P5 1 210 210 . Далее вычисляем число A : A 1 1155 2 1540 1 1386 4 330 7 210 2310 8411 2310 1481 . Метод функций Эйлера. Суть метода преобразования кортежа 1 , 2 , ..., i в позиционное число A , основанного на применении функций Эйлера, описана далее. Число A представляется следующим способом: A p1l1 1 , где l1 показывает, сколько раз число p1 укладывается в числе A . Обозначим разность между основаниями p1 и p 2 как p 2,1 p 2 p1 . В этом случае A p 2 l1 p 2,1l1 1 . (1) A 2 mod p 2 . (2) С другой стороны, Сравнение (2) с учетом (1) можно переписать как p 2 l1 p 2,1 1 2 mod p 2 . Учитывая что p 2 l1 0 mod p 2 , то получим l1p 2,1 1 2 mod p 2 (3) Решением сравнения (3) является выражение p2 1 l1 1 2 p 2,1 mod p2 , (4) где p 2 - функция Эйлера. В случае, когда p 2 является простым числом (что не является обязательным условием при построении СОК), выражение (4) примет вид l1 1 2 p 2,12 p 2 mod p2 . (5) Переписывая (4) с учетом (5), получим p 2 A1 p1 p 2,12 p 2 где p 2,12 p2 1 2 p 1 , 2 – константа, определяемая выбором системы оснований СОК, A – наименьший неотрицательный вычет по модулю p1 p 2 . Далее запишем A1 p 2 p 2 l 2 A , где l2 показывает, сколько раз p1 p2 укладывается в числе A , и т. д. После ряда преобразований, получим Ai p i 1 i i 1 Ai 1 i pj j 1 i pj i i 1 , где i p j p j 1 j 1 i p j 1 j 1 . i pj j 1 j 1 Пример. Пусть основания СОК p1 3, p 2 5, p3 7, p 4 11. Диапазон системы P 1155 . Найдем число A (1,2,0,8). A1 p1 ( p1 p2 ) 3 2 3 5 ( p2 ) 1 p2 (1 2 ) 1 3 (5 3) p2 (1) 1 3 3 (1) 5 1 3 2 1 7. 5 ( 5) 1 5 (1 2) 1 5 A2 p1 p2 ( p1 p 2 p3 ) ( p3 )1 7 7 p3 ( 3 A1 ) 7 7 A1 3 5 (3 5 7) ( 7 )1 (0 7) 7 p3 15 85 (7) 7 15 0 7 7. A3 p1 p 2 p3 ( p1 p2 p3 p 4 ) ( p4 )1 p4 ( 4 A2 ) A2 p4 11 11 11 3 5 7 (3 5 7 11) (11)1 (8 7) 7 105 94 9 1 7 105 2 7 217. 11 Получаем A 217. Метод обобщенной (полиадической) системы счисления. Данный метод предполагает использование в качестве оснований взвешенной позиционной системы счисления [6] чисел, равных произведениям модулей СОК [3]. Число X P имеет вид x1 , x2 , ..., xk , 0 xi pi в обобщенной k 1 позиционной системе счисления, если: X x1 x 2 p1 x3 p1 p 2 ... x k pi , i 1 где xi 0, pi есть цифры числа X в обобщенной позиционной системе счисления, которые равны: x3 x3 x1 c13 x2 c23 mod p3 , x1 x1 mod p1 , …, x 2 x 2 x1 c12 mod p 2 , xk ... xk x1 c1k x2 c2 k ... xk 1 ck i , k mod pk . Константы cij являются мультипликативными обратными величинами для pi по модулю p j при всех 1 i j k , то есть cij pi 1mod p j для 1 i n , и могут быть вычислены, например, с помощью обобщенного алгоритма Евклида. Пример. Дана система оснований p1 2, p 2 3, p3 5, p 4 7, p5 11. Диапазон P 2310. Необходимо перевести число A (1,2,1,4,7) в ОПСС. Вычислим константы cij : c12 c23 1 1 1 3; c14 2; c13 25 2 23 1 1 2; c 24 35 3 5; c 25 7 4; c15 7 1 4; 3 11 1 6; 2 11 c34 c 45 1 5 3; c35 7 1 9; 5 11 1 8; 7 11 Далее, пользуясь алгоритмом, описанным выше, получаем: x1 A 2 1; x5 A p1 p 2 p3 p 4 A x 2 p1 p2 A 2; x3 p1 p 2 1; x 4 p3 A p1 p 2 p3 0; p4 7. p5 Таким образом A a5 p1 p 2 p3 p 4 a 4 p1 p 2 p3 a3 p1 p 2 a 2 p1 a1 7 2 3 5 7 0 2 3 5 1 2 3 2 2 1 1481 . Все перечисленные методы обладают существенным недостатком, сильно замедляющим их выполнение и ухудшающим возможности реализации. При обработке чисел в СОК при помощи точных методов происходит обработка значительного объема избыточной информации. Так, например, при сравнении чисел, нам не требуется знать, насколько одно число больше или меньше другого, а достаточно лишь получить ответ «больше» или «меньше» [8]. Применение известных точных методов обработки модулярных чисел неизбежно приводит к накоплению избыточных сведений о величине числа в целом и существенно замедляет скорость вычислений. Приближенные методы определения позиционных характеристик числа в системе остаточных классов Метод интервальных оценок. Данный метод является приближенным [2]. Суть метода состоит в том, что числовой диапазон P разбивается на pi P P интервалов j , j 1 , при pi pi j 1, 2, ... , pi 1. Определение номера интервала, в котором находится рассматриваемое число, позволяет получить оценку данного числа по его величине с точностью до величины интервала. Процедура определения знака числа в свою очередь сводится к операции выявления принадлежности интервала, в котором находится представленное в СОК число, к группе положительных или отрицательных интервалов по заданному pi , на которые разбит диапазон P . При этом число интервалов определяется величиной P . Если в набор оснований не входит ни одного pi четного числа, то диапазон разбивается на нечетное число интервалов по выбранному модулю pi . В данном случае имеется критический интервал, являющийся границей между положительными и отрицательными числами. Данный критический интервал необходимо разделить на две части, а процесс определения знака числа при этом сводится к сравнению остатка по модулю pi , что резко усложняет процесс выполнения немодульных операций. Метод относительных величин. Основная идея приближенного метода определения позиционной характеристики числа в СОК заключена в использовании относительных величин анализируемых чисел к полному диапазону Китайской теоремой об остатках [7]. Данная теорема является главной теоремой модулярной арифметики и устанавливает связь позиционного числа А с его модулярным представлением 1 , 2 , ..., n , где i – наименьшие неотрицательные вычеты числа относительно модулей системы остаточных классов p1 , p2 , ..., pn , следующим выражением A n P p i 1 Pi1 i , pi i n где P p i , pi - модули СОК, Pi 1 i 1 относительно pi , и Pi pi (6) P – мультипликативная инверсия Pi P p1 p2 ... pi 1 pi 1... pn . Если в выражении (6) pi правую и левую части разделить на константу P , соответствующую диапазону чисел, то получим приближенное значение A P n Pi 1 pi pi i 1 i n k i i i 1 , 1 1 где k i Pi1 pi pi – константы выбранной системы, а i – разряды числа, представленного в СОК, при этом значение каждой суммы будет в интервале 0, 1 . Пример. Пусть дана система оснований p1 = 2, p2 = 3, p3 = 5, p4 = 17, p5 = 19, объем диапазона P 2 3 5 17 19 9690 . Величины P1 P2 P 4845, p1 P P P P 3230, P3 1938, P4 570, P5 510 . p2 p3 p4 p5 Восстановим число A = (0, 0, 2, 6, 8) в позиционной системе счисления, точное значение этого числа A = 312. Найдем его приближённое значение и округлим его до ближайшего целого числа. Решение. Найдем константы k i 1 4845 k1 2 2 Pi 1 pi pi : 1 3230 1 0,5; k 2 3 2 3 2 0,66667 ; 3 1 1 1938 5 2 570 17 2 k3 0,4; k 4 0,11765; 5 5 17 17 1 510 19 6 k5 0,31579 . 19 19 Далее получаем A 0 0,5 0 0,66667 2 0,4 6 0,11765 8 0,31579 1 4,03222 1 0,03222 . P Умножим A на объем диапазона P=9690: P A P 0,03222 9690 312,2118 312 . P Преимуществами данного метода при использовании в цифровой технике являются высокая скорость, малые аппаратные затраты и универсальность. В отличие от точных методов, для его реализации не требуется обработка избыточной информации. В зависимости от поставленных задач, возможно варьирование точности вычислений (путем добавления или убавления знаков после запятой при вычислениях). Сравним скорость выполнения немодульных операций сравнения [8] и деления [9] чисел для метода ОПСС, как самого быстрого из точных методов, и приближенного метода относительных величин. В ходе тестирования использовались многоразрядные числа размером в диапазоне от 255 бит до 512 бит, сгенерированные функцией random из состава математического пакета PARI/GP. Проводилось по 1000 испытаний в программной реализации на C#. Данные занесены в таблицу 1. Таблица № 1 Время выполнения проблемных операций в СОК (в миллисекундах). Немодульная операция ОПСС Приближенный метод Сравнение чисел 1,83 0,87 Деление чисел 7,37 4,77 Из результатов, полученных при реализации исследуемых методов выполнения немодульных операций в системе остаточных классов, можно сделать вывод, что приближенный метод выигрывает для операции сравнения в 2,1 раза, а для операции деления в 1,5 раза относительно метода ОПСС. Заключение В ходе вышеизложенного анализа в статье показано, что все методы могут быть разделены на две группы: – методы точного вычисления позиционных характеристик; – методы приближенного вычисления позиционных характеристик. При использовании точных методов неизбежно возникает необходимость обработки больших объемов избыточной информации, что сильно замедляет скорость вычислений. С целью устранения данного нежелательного явления были разработаны методы приближенного определения позиционной характеристики числа в СОК. В результате чего при программной реализации некоторых проблемных операций в системе остаточных классов приближенный метод выигрывает для операции сравнения в 2.1 раза, а для операции деления в 1,5 раза относительно метода ОПСС. Работа выполнена при поддержке гранта РФФИ 13-07-00478-а. Литература: 1. Акушский, И.Я., Юдицкий Д.И.. Машинная арифметика в остаточных классах [Текст] Монография / И.Я. Акушский, Д.И. Юдицкий. – М.: Советское радио, 1968. – 440 с. 2. Червяков, Н.И., Сахнюк П.А., Шапошников А.В., Ряднов С.А. Модулярные параллельные вычислительные структуры нейропроцессоных систем [Текст] Монография / Н.И. Червяков, П.А. Сахнюк, А.В. Шапошников, С.А. Ряднов – М.: ФИЗМАТЛИТ, 2003. – 288 с. 3. Червяков, Н.И., Сахнюк П.А., Шапошников А.В., Макоха А.Н. Нейрокомпьютеры в остаточных классах [Текст] Монография / Н.И. Червяков, П.А. Сахнюк, А.В. Шапошников, А.Н. Макоха. – М.: Радиотехника, 2003. – 272 с. 4. Бабенко М.Г., Вершкова Н.Н., Кучеров Н.Н., Кучуков В.А. Разработка генератора псевдослучайных чисел на точках эллиптической кривой [Электронный ресурс] // «Инженерный вестник Дона», 2012, №1 (ч. 1). – Режим доступа: http://ivdon.ru/magazine/archive/n4p2y2012/1408 (доступ свободный) – Загл. с экрана. – Яз. рус. 5. Вартаньян С.А. Алгоритм и программное обеспечение декодирования свёрточных вестник турбокодов Дона», [Электронный 2009, №2. ресурс] – // Режим «Инженерный доступа: http://ivdon.ru/magazine/archive/n2y2009/132 (доступ свободный) – Загл. с экрана. – Яз. рус. 6. Omondi, A. Premkumar. Residue Number Systems. Theory and Implementation [Текст] Монография / A. Omondi. - London. Imperial College Press, 2007. – 295 p. 7. Червяков, Н.И. Методы, алгоритмы и техническая реализация основных проблемных операций, выполняемых в системе остаточных классов [Текст] // Инфокоммуникационные технологии, 2011. – №4. – С.4-12. 8. Brönnimann H., Emirisa I. Z., Panb V. Y., Piona S. Sign determination in residue number systems [Текст] // Theoretical Computer Science, 1999. – Volume 210, Issue 1. – P.173-197. 9. Hariria A., Navib K., Rastegarc R. A new high dynamic range moduli set with efficient reverse converter [Текст] // Computers & Mathematics with Applications, 2008. – Volume 55, Issue 4. – P.660-668. 10. Малиновский Б.Н., Александров В.Я. Справочник по цифровой вычислительной технике [Текст] Монография / Б.Н. Малиновский, В.Я. Александров. – К.: Технiка, 1974. – 512 с.