ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
«Наука. Инновации. Технологии», №2, 2017
удк 004.272 Ирхин В.П. [Irhin V.P.],
Мельник В.А. [Melnik V.A.], Шведов Д.С. [Shvedov D.S.]
СОВМЕЩЕНИЕ РАЗНОТИПНЫХ БИНАРНЫХ ОПЕРАЦИЙ В НЕПОЗИЦИОННЫХ ВЫЧИСЛИТЕЛЯХ
Combining different types of binary operations in the nonposition calculators
Рассмотрен ряд методов выполнения арифметических операций в непозиционной системе счисления. Для совмещения всех операций базового набора предложен алгоритм и реализующее его схемотехническое решение. Работа устройства рассмотрена в различных режимах его функционирования. Одновременное выполнение аддитивных и мультипликативных операций базируется на использовании теории индексов, а также разложении в ряд одного из операндов по степени числа два. Предложен оригинальный подход к построению непозиционных вычислителей, основанный на синтезе цифровой и аналоговой техники. Данные варианты проектирования будут способствовать унификации вычислительного оборудования, а следовательно, повышению надежности полученных устройств. Одной из трудностей совмещения бинарных операций является объединение коммутативных с некоммутативными. В заключении работы намечен путь ее преодоления.
A number of methods are offered for performing arithmetic operations in nonpositional numeral system. The algorithm and its circuit solution are proposed to combine all operations of basic set. Operation of device is discussed in various modes of functioning. Simultaneous execution additive and multiplicative operations are based on the use of index theory, as well as the expansion the number of the operands for the two degree. The original approach was proposed to build nonpositional calculators based on the synthesis of digital and analog techniques These design options will facilitate the unification of computer equipment and, consequently, improve the reliability of the devices. One of the difficulties of combining binary operation is commutative association with non-commutative. At the end of the work is scheduled path to overcome it.
Ключевые слова: параллельное вычисление, модулярная система счисления, спецвычислитель, совмещение операций. Key words: parallel computation, modular number system, special calculator, combination of operations.
Введение
Непрерывное развитие информационных технологий сегодня наталкивается на ограничения в совершенствовании базовых элементов автоматизированных систем, в первую очередь связанные с приближением к физическому пределу полупроводниковых приборов.
В последнее время наблюдается рост числа публикаций по разработке и совершенствованию непозиционных вычислительных структур, основанных на базе модулярной системы счисления (МСС). В отличие от позиционных, они отличаются высокой надежностью и производительностью. Применение
вычислительных трактов (ВТ) в МСС возможно и в традиционных ЭВМ для увеличения глубины контроля (например, по группе модулей [1, 2]), так и для построения непозиционных вычислителей.
Одним из направлений их реализации является разработка нетрадиционных методов кодирования информации и соответствующих им вариантов машинной арифметики. В рамках данного подхода особое место занимают системы с параллельной структурой, в частности МСС. Основная идея, предопределяющая использование теоретико-числовых методов в вычислительных структурах, состоит в распараллеливании обрабатываемой информации в независимых каналах, количество и характеристики которых связаны с числовым диапазоном точностью вычислений.
Материалы и методы исследований
Вычислительный процесс в МСС отличает малоразряд-ность остатков, представляющих число, что дает возможность использования табличного варианта реализации. В этом случае остатки от деления операндов на модули системы представляются однопозиционным кодом и операции базового набора (сложение, вычитание и умножение) выполняются за один такт. Недостатком данного метода является существенный рост аппаратурных затрат при увеличении разрядности операндов.
Для разработки рациональных структур ВТ в МСС требуется дальнейшее улучшение их основных характеристик с целью реализации модульных операций базового набора. При табличном варианте их реализации основу, выполняющую операции по модулю, составляет матрица, построенная на двухвходовых элементах И, расположенных в местах пересечения горизонтальных и вертикальных шин (аппаратный образ таблицы Кэли) [3]. После поступления на них операндов в унитарном коде, на входе одного из элементов появляется сигнал. Каждой операции соответствует своя коммутация входных шин элементов И. Следовательно путем соответствующего соединения возможно выполнение различных бинарных операций на одной матрице.
Оптимизация структуры подобного вычислительного тракта возможна при использовании различных симметрий арифметической таблицы Кэли. При этом примерно на порядок уменьшаются аппаратные затраты [4]. Дальнейшее существенное сокращение используемого оборудования требует многоуровневого построения матрицы при определенной потере производительности.
Рассмотрим вариант выполнения модульных операций в МСС, основанный на методе кольцевого вращения. Он основан на использовании кольцевых регистров сдвига (КРС). Особенность данного метода заключается в том, что результат арифметической операции и, ± Р, |ш. по произвольному основанию МСС из совокупности оснований {т ¡(1 = 1 .Ы). определяется путем циклических сдвигов в двоичных регистрах заданной структуры. Поэтому
ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
Совмещение разнотипных бинарных операций в непозиционных вычислителях
для формирования модульной суммы (разности) в унитарном коде достаточно унитарный код вычета а сдвинуть влево (право) на Р двоичных разрядов. Если вычеты представляются в двоичной системе счисления, то каждая из аддитивных операций по основанию МСС реализуются с помощью дешифраторов, осуществляющих формирование унитарного кода операндов, КРС и шифраторов, преобразующих унитарный код результата операции в двоичный код. Операция умножения в методе кольцевого вращения выполняется с использованием теории индексов, в рамках которой мультипликативные операции заменяются аддитивными подобно замене умножения в аргументе логарифма сложением логарифмов
Отсутствие междурядных связей в ходе реализации кольцевых операций является одной из главных и наиболее привлекательных особенностей МСС. В [5] рассмотрены структуры для выполнения операции модульного сложения методом кольцевого вращения. Однако существует возможность их использования и для других операций [6]. Идея расширения функциональных возможностей вычислителя заключается в следующем. Согласно теории индексов
1А-В =|*А ,-!.
где т - модуль,
\ Л.1; - индекс произведения числа А и В,
1 а/в - индекс частного от деления числа А на число В, ¡А, ¿в - соответственно индексы чисел А и В.
Из приведенной формулы вытекает возможность замены умножения чисел сложением их индексов по модулю (ш-1), а деления чисел - вычитанием их индексов по модулю (ш-1). Для перехода от индексов к фактическому числу используются антииндексы Ы(ь). N(¡1.,).
Технической основой для подобного метода реализации являются кольцевые регистры сдвига (КСР), представляющие замкнутый в кольцо набор триггеров, число которых кратно модулю ш проводимой операции.
Перспективный метод построения непозиционных вычислителей МСС основан на получении результата аддитивной операции путем кодирования чисел дискретными состояниями фазы периодического колебания [7].
Одним из методов построения вычислительных трактов в модулярной системе счисления (МСС) является вариант, использующий набор корреляторов и управляющих фазовращателей. Суть его заключается в использовании при реализации операции модульного сложения свойства периодичности гармонической функции. Если гармонический сигнал ч(1) = исояШ проходит че-
рез N последовательно соединённых фазовращателей, то на выходе последнего сигнал будет описываться выражением
и,ч,(1:) = и сое
аА - * &<р{
где Д^, - сдвиг фазы в ?-м фазовращателе, 1 = 1, N.
Если в ¡-м фазовращателе сдвиг фазы А<р, прямо пропорционален значению ¿-го слагаемого
2 к
А1 (А. ::(). т-1), то Л<£> =—А
111
где т - величина модуля.
Таким образом, после прохождения гармонического сигнала через N фазовращателей, фаза сигнала на выходе последнего будет прямо пропорциональна значению модуля суммы N чисел
а =
Таким образом для определения суммы N чисел по модулю т достаточно измерить сдвиг фазы гармонического колебания на выходе устройства относительно входа. При этом происходит существенное повышение быстродействия реализации операций в МСС по сравнению с цифровой схемотехникой. Метод основан на объединении аналоговой и цифровой схемотехники. Однако с ростом модуля ш построение вычислительного тракта существенно усложняется. Также, ввиду увеличения числа градаций фазы, вызывает трудности достоверность измерения величины сдвига фазы. Для преодоления этих трудностей предлагается подход, связанный с заменой опе-
I N " I N I N
рации А,|_ на операции А] и |Е А, (ш = ш1 • ш2 - модуль операции, т1 -первый подмодуль, ш2 - второй подмодуль) с последующим преобразованием промежуточных сумм в результат операции по модулю т. Исходя из минимизации количества используемого оборудования, уместно выбрать ш1 = 1п2, т.е. П1; (т2) = \'п1. Так как сборка результатов переменных по подмодулям представляет обычную бинарную операцию, то ее можно выполнить табличным методом.
Недостатком подобных вычислений является низкая загрузка используемых узлов при выполнении модульной операции. Управляемые фазовращатели используются однократно. Было предложено многократно использовать такой узел для представления каждого слагаемого. Для этой цели используется мультиплексор, который предназначен для последовательной передачи одного из /V слагаемых на вход схемы. Несмотря на определенное снижение быстродействия, связанное с переключением, данный сумматор может
ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
Совмещение разнотипных бинарных операций в непозиционных вычислителях
найти применение в вычислительных структурах, реализованных на управляемых фазовращателях, с целью унификации оборудования. Дополнительным его достоинством является гибкое изменение слагаемых от 2 до N. Операция модульного вычитания обычно сводится к модульному сложению путем использования соотношения |А - B|m = |А + (т - В)|т.
Основным недостатком данного подхода является алгоритмическая и схемотехническая сложность построения немодульных вычислителей, реализующих мультипликативные операции.
Следовательно, наиболее рационален метод кругового вращения, позволяющий при ограниченных аппаратурных затратах унифицировать проведение комплекса операций базового набора. Рассмотрим конкретную схему подобного устройства и его функционирование.
Схема работает по следующему алгоритму [8].
1) операция сложения (вычитания) производится обычным путем с помощью кольцевого регистра сдвига КРС, при сложении производится запись операнда А в унитарном коде в КРС и затем сдвиг содержимого вправо на В разрядов (при вычитании влево).
2) операция умножения (деления) производится так:
а) с помощью преобразователя ПКму вычисляется индекс второго операнда В;
б) производится сложение (вычитание) индексов по модулю (т-1);
в) индекс результата преобразуется из унитарного кода в модулярный путем соответствующей коммутации шин на входах третьего блока Иш элементов И, т.е. производится нахождение антииндекса результата модульной операции с последующей шифрацией в двоичный код из унитарного.
На рисунке представлена структурная схема устройства, где Вх2 - второй информационный вход устройства, ПКМУ - преобразователь модулярного кода устройства в унитарный код индекса, И - первый блок элементов И, Вхт - тактовый вход устройства, 33i - первый элемент запрета, Hi - первый элемент И, И2 - второй элемент И, КРС - кольцевой регистр сдвига, Ип - второй блок элементов И, ПКУМ - преобразователь унитарного кода в модулярный, Вых - выход устройства, Вхш - первый информационный вход устройства, ДШ - дешифратор, Hv - пятый блок элементов И, HVi -шестой блок элементов И, И4 - четвертый элемент И, И5 - пятый элемент И, ИЛИц - второй блок элементов ИЛИ, Иш - третий блок элементов И, ИЛИШ -третий блок элементов ИЛИ, ИУ - четвертый блок элементов И, ИЛИ - первый блок элементов ИЛИ, СЧВыч - вычитающий счетчик, ИЛИ-НЕ - элемент ИЛИ-НЕ, Вх+ - вход задания сложения устройства, Вх - вход задания вычи-
Рис. 1. Структурная схема вычислительного устройства.
тания устройства, ИЛИ1 - первый элемент ИЛИ, И7 - седьмой элемент И, Вхх - вход задания умножения уст ройст ва. Вх - вход задания деления устройства. ИЛИ, - второй элемент ИЛИ, Иб - шестой элемент И, И3 - третий элемент И, Э32 - второй элемент запрета, Вху - установочный вход устройства.
За счет использования у нитарного кода числа А (после дешифратора ДШ) преобразование А —> ь сводится к соответствующей коммутации выходных шин дешифратора ДШ на входах шестого блока Иу, элементов И, а преобразователь ПКУМ унитарного кода индекса в модульный реализуется соответствующей коммутацией входных шин (рис. 1). Преобразователь ПКму модульного кода в унитарный код индекса предназначен для преобразования одного двоичного числа в другое и реализуется на базе элементов И и ИЛИ, например для модуля т = 7 согласно табл. 1.
Таблица 1
А(В) 0 1 2 3 4 5 6
ад - 0 4 5 2 1 3
Исходя из приведенных рассуждений, необходимо обеспечить всего две операции (сложение и вычитание по модулю), но для проведения умножения и деления по модулю эти операции нужно реализовать их с модулем (т-1). Это производится путем введения третьего элемента И3, которые реализованы при помощи логики КМОП и позволяют проводить двунаправленную передачу (как с входа на выход, так и с выхода на вход).
ФИЗИК0-МА1ЕМА1ИЧЕСКИЕ НАУКИ
Совмещение разнотипных бинарных операций в непозиционных вычислителях
Рассмотрим работу устройства. Кольцевой регистр сдвига (КРС) содержит m двоичных разрядов (0 — (ш — 1)), m - значение модуля. Исходное состояние КРС - нули во всех разрядах. Сигнал на выходе элемента ИЛИ-НЕ появляется в том случае, когда на всех выходах счетчика СЧВыч будут нули. Одиночный импульс, поступающий со входа Вхуст обеспечивает запись единицы в А-ом разряде (А = 0 (m -1)) КРС. Для упрощения схемы особенности двунаправленной передачи во втором элементе запрета Э32 и в третьем И3 элементе И в зависимости от вида сдвига (вправо или влево) разрядов КРС на схеме не показаны. Работу схемы удобно рассмотреть при выполнении двух типов операций.
1) Режим модульного сложения. В этом случае операнд А в двоичном коде поступает на вход дешифратора ДШ. При
поступлении импульса по входу Вхуст в А-ом разряде КРС будет записана единица, т.к. присутствует сигнал на шине Вх и следовательно открыты элементы И пятого И, блока элементов И. Операнд В в двоичном коде поступает через четвертый H|v блок элементов И, первый И блок элементов ИЛИ. В счетчике СЧвыч устанавливается операнд В в двоичном коде. С тактового входа поступает через открытый первый 33i элемент запрета на вход счетчика СЧвыч, а также на вход сдвига вправо содержимого КРС через открытый элемент И6 (присутствует сигнал на входе Вх+). В данном случае сигнала на управляющий вход второго Э32 элемента запрета и второй вход третьего И3 элемента И не поступает, поэтому КРС обеспечивает сдвиг разрядов с циклом, равным m через элемент запета Э32. Производится продвижение единицы, записанной в КРС на В двоичных разрядов вправо.
Когда содержимое счетчика СЧВыч станет равным нулю, то сигнал с выхода ИЛИ-НЕ закроет элемент 33i запрета, запрещая прохождение импульсов на сдвиг двоичных разрядов КРС и одновременно этот сигнал поступает на второй вход седьмого И7 элемента И, с выхода которого сигнал поступает на второй вход второго Ип блока элементов И, обеспечивая прохождение результата операции модульного сложения, полученного в унитарном коде через третий ИЛИШ блок элементов ИЛИ на вход преобразователя ПКУМ унитарного кода в модульный. С выхода преобразователя ПКуМ унитарного кода в модулярный результат операции в двоичном коде поступает на выход Вых устройства.
2) Режим модульного вычитания. Работа устройства при выполнении операции модульного вычитания |А—Вш| отличается от модульного сложения только тем, что присутствует сигнал на входе Вх., поэтому производится сдвиг разрядов КРС на В двоичных разрядов влево.
3) Режим модульного умножения. В том случае на управляющий вход второго Э32 элемента запрета и на второй вход
третьего И3 элемента И поступает сигнал. В данном случае КРС представля-
ет цепь из (ш - 1) двоичных разрядов, т.е. его цикл равен (ш - 1). Следовательно производится работа по модулю (т - 1). Операнд А поступает на вход дешифратора ДШ, выходы которого скомутированы на входах шестого И-л блока элементов И в соответствии с индексами операнда А и с выходами шестого И-л блока элементов И (сигнал на выходе пятого И5 элемента И присутствует) через второй ИЛИП блок элемента ИЛИ поступает на запись единицы (аналогично случаю модульного сложения) в ь-ом разряде регистра КРС.
Операнд В поступает в двоичном коде на вход преобразователя Г[ Км модулярного кода в код индекса. В счетчике СЧВыч устанавливается значение ¿в в двоичном коде (сигнал на втором входе первого И1 блока элементов И присутствует). Дальнейший процесс до завершения сдвига разрядов КРС происходит аналогично операции модульного сложения, но затем результат (ь + ¡и) в унитарном коде посту пает на соответствующий значению антииндекса (Ц + ¿в) вход третьего Иш блока элементов И через третий ИЛИШ блок элементов ИЛИ, преобразователь ПКУМ унитарного кода в модулярный значение результата операции |А-В|Ш поступает на выход Вых устройства.
4) Режим модульного деления. Работа устройства при выполнении модульного деления | А/В|т отличается от модульного умножения только тем, что присутствует сигнал на входе Вх/5 поэтому производится сдвиг разрядов КРС на 1В двоичных разрядов влево.
Таким образом показано, что подобная реализация позволяет совместить все бинарные операции базового набора в одном вычислителе.
Результаты исследований и их обсуждение
Развитие вычислительных структур в МСС возможно на основе метода, объединяющего аналоговую и цифровую схемотехнику. Основным его недостатком является выполнение только аддитивных операций. В [9] предложен путь реализации в подобных устройствах мультипликативных операций. Суть его состоит следующем: пусть А - первый операнд, В -второй и необходимо провести операцию модульного умножения |Ах В|ш, где т - модуль.
Представим число В в виде В = Б, • 2" " +... + • 2" + Бд ■ 2
, Б! = 0 либо 1,
т.е. равно значению соответствующего разряда в двоичном представлении числа В). Произведение вида А/2'|П1 можно получить при помощи блока умножения на константу по модулю. Следовательно, для получения результата операции|АхВ|П1 необходимо произвести последовательное сложение чисел вида |Ах21|ш для тех разрядов двоичного представления числа В, Б; которых равны 1.
Тогда
АхВ=ЕА-2' 8; (1 =
¡=0
10£:
т-1
ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ
Совмещение разнотипных бинарных операций в непозиционных вычислителях
Таким образом, в одном устройстве можно организовать совмещение аддитивных и мультипликативных операций. Сокращение количества используемого оборудования может быть достигнуто за счет использования свойств симметрии таблицы Кэли относительно вертикали и горизонтали.
Рассмотренные варианты совмещения различных операций в непозиционных вычислителях при различных методах их построения позволяют сделать вывод о возможной унификации подобных устройств. Повышение надежностных характеристик спецвычислителей целесообразно проводить в направлении их многоуровневого построения. При реализации совмещения наибольшие трудности представляют некоммутативные операции, отличающиеся меньшим числом осей симметрии таблицы. Интересным является подход объединения их с коммутативными, где пространственная зависимость результата операции от перестановки ее элементов заменяется анализом временного порядка их следования.
Возможно также преобразование некоммутативной операции модульного деления в коммутативную (умножения) путем замены второго операнда на его мультипликативную инверсию.
Выводы
В результате сравнительного анализа определен метод кругового вращения, как наиболее подходящий для построения непозиционного вычислителя с совмещением различных операций. Приведено конкретное схемотехническое решение, реализующее данный метод. Рассмотрен алгоритм его функционирования и работа в различных режимах. Намечены дальнейшие направления исследования вопросов совмещения модульных операций в подобных вычислениях.
Библиографический список
1. A.C. СССР №1809437. Арифметическое устройство по модулю (В.П. Ирхин и др). 1993. Бюл. №14.
2. Амербаев В.М. Применение информационной избыточности для повышения надежности арифметического узла вычислительного элемента бимодульной арифметики / В.М. Амербаев, Е.С. Балака, Д.В. Тельпухов, P.A. Соловьев // Наука. Инновации. Технологии. 2015. №1. С. 36-50.
3. Дмитриев Ю.К. Самодиагностика модульных вычислительных систем / Ю.К. Димитриев. Новосибирск: ВО «Наука». Сибирская издательская фирма, 1993. 293 с.
4. Долгов А.Н. Диагностика устройств, функционирующих в системе остаточных классов / А.Н. Долгов. М.: Радио и связь, 1982. 64 с.
5. Ирхин В.П. Проектирование непозиционных специализированных процессоров / В.П. Ирхин. Воронеж: Издательство Воронежского госуниверситета, 1999. 136 с.
6. Ирхин В.П. Расширение функциональных возможностей вычислителей в телекоммуникационных устройствах/В.П. Ирхин, В.А. Мельник, Д.С. Шведов // Вестник Воронежского института ФСИН России, 2016. №1. С. 21-25.
7. Овчаренко Л.А. Вариант реализации основных операций в модулярном арифметическом устройстве // Телекоммуникации. 2001. №3. С. 8-11.
8. Патент РФ №2338241. Устройство для умножения чисел по модулю. (В.П. Ирхин и др.). 2008. Бюл. №31.
9. Скрыль С.В. Реализация операций модулярной арифметики в системах телекоммуникаций / С.В. Скрыль, В.П. Ирхин, В.А. Мельник, Р.В. Кузьменко // Приборы и системы. Управление, контроль, диагностика. 2015. №11. С. 21-27.
References
1. A.S. SSSR №1809437. Arifmeticheskoe ustrojstvo ро modulyu (V.P Irhin i dr). 1993. Byul. №14.
2. AmerbaevV.M., Balaka E.S., Telpuhov D.V., Solovyev R.A. Primen-enie informacionnoi izbytochnosti dlya povysheniya nadezhnosti ar-ifmeticheskogo uzla vychislitelnogo ehlementa bimodulnoi arifme-tiki (Application information redundancy to improve reliability the arithmetic unit computing elements bimodule arithmetic). Nauka. Innovacii. Tekhnologii, 2015, № 1, pp. 36-50.
3. Dmitriev YU.K. Samodiagnostika modulnyh vychislitelnyh sistem (Self-diagnosis of modular computing systems). Novosibirsk: VO «Nauka». Sibirskaya izdatelskaya firma, 1993. 293 p.
4. Dolgov A.N. Diagnostika ustrojstv, funkcioniruyushchih v sisteme ostatochnyh klassov (Diagnostics devices functioning at residue number system). - Moscow: Radio i svyaz. 1982. 64 p.
5. Irhin V.P. Proektirovanie nepozicionnyh specializirovannyh proces-sorov (Designing nonpositional specialized processors). Voronezh: Izdatelstvo Voronezhskogo gosuniversiteta. 1999. 136 p.
6. Irhin V.P, Melnik V.A., SHvedov D.S. Rasshirenie funkcionalnyh voz-mozhnostej vychislitelej v telekommunikacionnyh ustrojstvah (The extension functionality of calculators in telecommunication devices). Vesnik Voronezhskogo instituta FSIN Rossii, 2016, № 1, pp. 21-35.
7. Ovcharenko L.A. Variant realizacii osnovnyh operacij v modulyar-nom arifmeticheskom ustrojstve (An embodiment of basic operations in modular arithmetic unit). Telecommunications, 2001, № 3, pp. 8-11.
8. V.P. Irhin. Pat. №2338241 RF. Ustrojstvo dlya umnozheniya chisel po modulyu (The device for multiplying numbers modulo). 2008. Byul. № 31.
9. Skryl S.V., Irhin V.P, Melnik V.A., Kuzmenko R.V. Realizaciya operacij modulyarnoj arifmetiki v sistemah telekommunikacij (The implementation of the operations of modular arithmetic in communication systems). Pribory i sistemy. Upravlenie, kontrol, diagnostika, 2015, №11, pp. 21-27.