В последнее время исследования в вопросах реализации модулярной арифметики на различных вычислительных средствах (от интеллектуальных карт до параллельных вычислительных систем) фактически сформировали отдельное направление. Перспективным является разработка сопроцессора, функционирующего в модулярной арифметике.
Основные требования, предъявляемые к процессору:
-
обеспечение требуемой вычислительной мощности;
-
достоверность обработки информации;
-
надежность функционирования.
Применение модулярного кодирования информации (использование системы остаточных классов (СОК)) в нейрокомпьютерах обусловлено прежде всего адекватностью СОК и нейронных сетей (НС), которое заключается в следующем:
-
основные операции нейросетевого логического базиса просто реализуются в СОК;
-
выполнение арифметических операций в СОК может быть сопоставлено многослойной нейронной сетью;
-
семантическое сходство китайской теоремы об остатках и нейрона.
Таким образом, предлагается соединить возможности непозиционных модулярных кодов СОК и нейронные способы обработки информации для создания высокопроизводительного отказоустойчивого сопроцессора, который может быть выполнен в виде отдельных тактов по числу оснований СОК. Применение СОК обеспечивает независимую и параллельную обработку информации, повышая тем самым скорость работы. Один из подходов к решению проблемы повышения надежности сопроцессора, функционирующего в СОК, основан на перераспределении его каналов при отказах части рабочих и контрольных каналов. Наиболее важным свойством СОК является возможность обеспечения обменных операций между точностью, быстродействием и надежностью. Избыточное кодирование в СОК позволят использовать информационную избыточность для обнаружения и коррекции ошибок.
Обеспечение требуемой достоверность обработки информации можно разбить на три задачи:
-
Обнаружение ошибки.
-
Локализация ошибки.
-
Коррекция ошибки.
Система остаточных классов характеризуется рядом k парных взаимно простых чисел {p1, p2,…, pn}, то есть (pi, pj)=1, для i¹j. Интервал [0, P) при является динамическим диапазоном СОК. Операции в остатках определяются выражением (1), * - обозначает сложение, вычитание или умножение.
(1)
Избыточные СОК обладают свойствами, которые можно использовать для контроля ошибок и устранения отказов [1]. Избыточная СОК имеет k – рабочих и r – контрольных оснований. Для обеспечения единственности представления каждого состояния системы СОК все основания p1, p2,…, pk, …, pk+1 должны быть взаимно простыми. Рабочие основания p1, p2,…, pk представляют собой неизбыточные основания, а контрольные r оснований pk+1, …, pk+r – избыточные. В избыточной СОК число представляется k+r остаточными цифрами x1, x2, …, xk являются неизбыточными цифрами, а xk+1, …, xk+r – избыточными. Полный диапазон избыточной СОК обозначим [0, P), где охватывает полное множество состояний, представленных всеми k+r остаточными цифрами. Весь диапазон разбивается на смежные области. Определяемые неизбыточными и избыточными основаниями. Область [0, P) представляет собой полный диапазон.
Рассмотрим методы обнаружения переполнения динамического диапазона и методы обнаружения и коррекции ошибок в избыточной СОК. Переполнение относительно сложно обнаружить в СОК, так как для этого необходимо определить величину результата. В избыточной СОК переполнение легко обнаружить путем перехода к обобщенной позиционной системе счисления (ОПСС) и проверки условия попал ли результат в область разрешенных значений. Если x¢1, x¢2, …, x¢k+r является числами упорядоченной ОПСС, то есть pk+j³pi для всех j=1,…, r и i=1,…, k, тогда X лежит в диапазоне разрешенных значений, если избыточные цифры ОПСС являются нулевыми.
для j= 1,…, r.
Это позволяет определить переполнение рабочего диапазона путем вычисления цифр ОПСС и использования для этого избыточных ненулевых цифр. Известно, что для определения переполнения динамического диапазона и для определения и коррекции ошибки используется избыточный модуль. В связи с этим возникает необходимость одновременного определения переполнения динамического диапазона и ошибки, и уметь их различать для правильной оценки ситуации.
Пример:
Выберем систему p1=2, p2=3, p3=5, p4=7, p5=11 для которой диапазон правильных величин (рабочий диапазон) R=2×3×5×7×1=2310.
Вычислим ортогональные базисы системы и переведем их в ОПСС:
В1=1155, А1 = [1, 1, 2, 3, 5],
В2=1540, А2 = [0, 2, 1, 2, 7],
В3=1386, А3 = [0, 0, 1, 4, 6],
В4=330, А4 = [0, 0, 0, 4, 1],
В5=210, А5 = [0, 0, 0, 0, 1].
Передано число А= (1, 1, 0, 4, 3). Найдем представление этого числа в ОПСС, тогда А= (1, 1, 0, 4, 3) ® (½1×А1+1×А2+0×А3+4×А4+3×А5½рi).
Итак, число А в СОК равно (1, 1, 0, 4, 3), а в ОПСС равно [1, 0, 4, 0, 0]. Проведем проверку путем перехода от ОПСС и СОК к обычному позиционному представлению.
А = (a1×В1+a2×В2+a3×В3+a4×В4+a5×В5) mod2310 =
= (1×1155+1×1540+0×1386+4×330+3×210) mod 2310=25,
А = а1+а2×p1+а3×p1×p2 +а4×p1×p2×p3 +а5×p1×p2×p3×p4 = = 1+0×2+4×6+0×30+0×210=25.
Из приведенного примера видно, что ОПСС и СОК дают одно и тоже позиционное число – 25. Для иллюстрации локализации ошибки выберем те же основания СОК, что и в предыдущем примере, причем в качестве рабочих оснований примем p1, p2, p3, p4, а в качестве избыточного – основания p5. Тогда диапазон правильных величин (рабочий диапазон) R=2×3×5×7=210, а полный диапазон определяется как: P=210×11=2310.
Вместо числа А= (1, 1, 0, 4, 3) принято = (1, 1, 4, 4, 3). Найдем представление этого числа в ОПСС, тогда = (1, 1, 4, 4, 3) ® (½1×А1+1×А2+4×А3+4×А4+3×А5½рi).
а5 =4¹0Þ произошла ошибка
Вычислим проекции числа по каждому из оснований.
По основанию p1=2.
Для системы с основаниями: p2=3, p3=5, p4=7, p5=11 вычислим ортогональные базисы и представим в ОПСС
В2=385, А21 = [1, 3, 4, 3],
В3=231, А31 = [0, 2, 1, 2],
В4=330, А41 = [0, 0, 1, 3],
В5=210, А51 = [0, 0, 0, 2].
а5 =9¹0Þ число по основанию p1=2 правильное.
По основанию p2=3.
Для системы с основаниями: p1=2, p3=5, p4=7, p5=11 вычислим ортогональные базисы и представим в ОПСС
В1=385, А12 = [1, 2, 3, 5],
В3=616, А32 = [0, 3, 5, 8],
В4=330, А42 = [0, 0, 5, 4],
В5=210, А52 = [0, 0, 0, 3].
а5 =2¹0Þ число по основанию p2=3 правильное.
По основанию p3=5.
Для системы с основаниями: p1=2, p2=3, p4=7, p5=11 вычислим ортогональные базисы и представим в ОПСС
В1=231, А13 = [1, 1, 3, 5],
В2=154, А23 = [0, 2, 4, 3],
В4=330, А42 = [0, 0, 6, 7],
В5=210, А52 = [0, 0, 0, 5].
а5 =0Þ произошла ошибка по основанию p3=5.
Представленный алгоритм локализации ошибок может быть, применим для локализации не только одиночной ошибки, но и при некоторых условиях также двойных и тройных ошибок, обеспечивает реальную возможность повышения информационной надежности НК. Это обусловлено специфическими способностями представления и обработки непозиционных кодовых структур в СОК. Следовательно, внедрение чисел в модулярном коде, является одним из наиболее перспективных путей повышения отказоустойчивости и быстродействия вычислительных средств.
Использование системы остаточных классов для обработки информации позволяет относительно легко обеспечить высокую производительность, помехоустойчивость систем обработки информации, необходимую точность, разрешающую способность и ряд других преимуществ из-за ее способности поддерживать высокоскоростную арифметику при параллельной обработке данных [2].
Недостатки реализации системы остаточных классов могут быть устранены за счет придания системе остаточных классов адаптивных свойств нейронных сетей (НС), эффективно эмулируемых современными нейрокомпьютерами (НК).
Между нейронными сетями и модулярной арифметикой существует интересная связь. Если количество синапсов, используемых между нейронами, согласовано с количеством оснований системы остаточных классов, то нейронная сеть становится натуральным представлением системы остаточных классов. Структура нейронной сети и структура алгоритма решения задачи, представленные в системе остаточных классов, обладают естественным параллелизмом. Алгоритмы вычислений при использовании непозиционной арифметики, соответствуют алгоритмам вычислений с помощью базовых процессорных элементов. По этой причине схемы в остаточных классах адекватны схемам, которые реализованы с помощью искусственных нейронов [3].
В этом плане перспективным оказывается использование искусственных нейронных сетей, для которых остро встают такие вопросы как: выбор числа слоев НС, выбор числа входов одного нейрона, выбор вида и параметров возбуждающей функции [4].
Область идентификации или распознавания образов традиционно считается наиболее перспективной областью применения модулярного НК. Это связано с тем, что задачи распознавания образов относятся к классу, так называемых, нерегулярных, случайных и плохо формализуемых задач, для которых крайне сложно построить алгоритм решения. В этих условиях НК, способные автоматически формировать алгоритмы решения поставленных задач путем реализации процедуры обучения, являются весьма перспективными, а во многих случаях и уникальным средством эффективного решения таких задач.
Сочетание достоинств модулярной арифметики и положительных свойств нейронных сетей позволяет проектировать специализированные процессоры цифровой обработки сигналов принципиально нового класса, которые по сравнению с традиционными, обеспечивают более высокое быстродействие.
Библиографический список
- Червяков Н. И., Сивоплясов Д. В., Горденко Д. В. Нейронная сеть для преобразования полиадического кода в код системы остаточных классов // Нейрокомпьютеры: разработка, применение. 2003. № 10-11. с. 10.
- Горденко Д. В., Горденко Н. В. Локализация ошибок в устройствах цифровой обработки сигналов на основе алгебры полиномов // Вестник Сев-Кав ГТИ. 2009. № 9. с. 56-61.
- Горденко Д. В., Резеньков Д. Н., Яйлаханов С. В. Высоконадежные комплексы и средства связи на нейросетевых элементах. Москва, 2010.
- Горденко Д. В., Горденко Н. В., Павленко Н. А., Павлюк Д. Н., Ткачук Р. В. Коррекция ошибок в системе остаточных классов с минимальной временной сложностью на основе метода расширения оснований // Известия высших учебных заведений. Северо-Кавказский регион. Серия: технические науки. 2007. № 4. с. 12-14.