ISSN 2079-3316 ПРОГРАММНЫЕ СИСТЕМЫ: ТЕОРИЯ И ПРИЛОЖЕНИЯ №4(31), 2016, с. 359-367 УДК 004.67+004.222+004.222.2
М. М. Хаткевич Моделирование прямоточного сумматора
Аннотация. В избыточной системе счисления сложение часто может выполняться конечным автоматом. В данной статье рассматривается моделирование случая, когда в избыточной системе счисления сложение выполняется прямоточным образом. Показано, что одна и та же схема работает для разных типов данных. Рассмотрено сложение в двоичной, троичной, восьмеричной системах счислений. Показано, что схема работает для сложения двоичных матриц и действительных чисел.
Ключевые слова и фразы: сумматор, прямоточные вычисления, представление чисел.
Введение
На сегодняшний день темпы развития вычислительных возможностей сократились вследствие наличия физических ограничений транзисторных процессоров. Теперь, для увеличения мощностей используется физическое увеличение вычислительных узлов и (или) оптимизация алгоритмов вычислений [1]. Так же для обхода этих ограничений осуществляется поиск замены транзисторных вычислительных элементов [2]. Одним из результатов поиска стали вычислительные элементы, использующие свет и оптические принципы работы [3]. Совместно с возможностью кодировать информацию не только бинарным кодом, предполагается избавиться от стены памяти [4]. Далее в статье представлен прямоточный сумматор, где на примере различных систем счисления это показано.
1. Обзор схемы
На рис. 1 представлена модель прямоточного сумматора. Под прямоточными вычислениями понимаются вычисления, организованные в сеть, обладающие следующими свойствами: • результаты каждого обработчика непосредственно направляются в следующие обработчики;
© М. М. Хаткевич, 2016
© Институт программных систем имени А. К. Айламазяна РАН, 2016 © Программные системы: теория и приложения, 2016
1 0
0 1
Результат
0 0
1 1
1 0
0 1
И
о
0
1 1
Рис. 1. Схема прямоточного сумматора
о
1
1
1
1
1
о
оо
о
о
о
о
1
о
1
о
о
1
о
1
• длина каждого пути (число обрабатывающих элементов) в сети ограничена сверху некоторой константой К [5].
На вход сумматора подается пара трехразрядных чисел, зеленым цветом отмечены разряды первого числа, синим - разряды второго. На выход сумматор возвращает число, закодированное в избыточной системе счисления [6,7]. Избыточная система счисления дала возможность выполнять операцию сложения посредствам конечных автоматов. Рассмотрим применение этой системы счисления в прямоточном вычислении. В данном случае избыточность состоит в дублировании каждого третьего разряда (см. рис. 1).
Переносы — разряды, получаемые сумматором из других сумматоров и выдаваемые другим.
2. Принцип работы
Рассмотрим узел сумматора на рис. 2.
Каждый узел складывает числа, подаваемые на «вход 1» и «вход 2». Результат сложения выдается на «выход 1», а перенос — на «выход 2». Далее на схеме результаты на выходах подаются на входы
Перенос
Вход 1 1 1 Выход
Вход 2 1 0 Выход
Результат
Рис. 2. Узел сумматора
Разряд 2 пер.
Н
Г^г
Разряд 1 | Пер
1 1 1
1 В 1 0
1
Г«г
0
Результат
Е
Т0 Ра,,«,
Разря
о РаГ
Ю
Рис. 3. Работа сумматора в двоичной системе счисления
1.1
Разряд 2
Разряд 0
1
1
1
0
1
1
3.1
3.2
другим узлам. Модель сумматора работает с двоичной, восьмеричной, симметричной троичной системами счислений, с матрицами и действительными числами. Рассмотрим примеры.
2.1. Работа в двоичной системе счисления
Лемма. Сумматор работает корректно, если на входы подаются числа в задаваемом системой счисления диапазоне.
Рассмотрим вычислительные узлы 1, 2 и 3, отмеченные на рис. 3. В узел 2 значение «1» приходит только с узла 2.1 либо 2.2. Одновременно в указанных узлах переноса не возникает, так как при сложении в двоичной системе счисления остаток от сложения всегда «0», так что при переполнении в узле 2.1. переноса в узле 2.2 не получится. Узлы 1 и 3 изоморфны узлу 2.
И
Рис. 4. Работа сумматора в восьмеричной системе счисления
2.2. Работа в восьмеричной системе счисления
Рассмотрим схему на примере восьмеричной системе счисления на рис. 4. Сумматор работает с данными в диапазоне [0..7].
Рассмотрим узел 2 на схеме. В узел 2 значение «1» приходит только с узла 2.1, либо 2.2. На этот раз это связано с тем, что, если возникает переполнение на узле 2.1, в узел 2.2 придет значение п — 2, где п — основание системы счисления. Аналогичные узлы изоморфны.
2.3. Работа в симметричной троичной системе счисления
Работа в симметричной троичной системе представлена на рис. 5. В соответствующих узлах не возникает переносов по той же причине, что в двоичной системе счисления. Остаток сложения в случае переносов всегда равен нулю.
2.4. Работа с двоичными матрицами
Рассмотрим работу сумматора с матрицами на рис. 6. Теперь разряды закодированы не числами, а двоичными матрицами. Схема и для этого случая осталась инвариантной.
Ш
Рис. 5. Сумматор работает с числами [—1, 0,1]
Рис. 6. Работа сумматора с двоичными матрицами
10.66671
0,0000 0.6667
0000
0000
Перен
■ 0,4
■ 0,0000 Результат
I 0,6667 Результат
Перен
■ 0,4 0,0000 Результат
Рис. 7. Работа сумматора с действительными числами
2.5. Работа с действительными числами
Рассмотрим работу сумматора [8] с числами в диапазоне [-1,1] (рис. 7). Для работы с действительными числами вводится понятие «точность». Для обеспечения более стабильной работы системы переносы вычисляются по формуле
(,, .„)=<|я|>б
(0, Я) |Я| < д,
где Я — результат суммы со «вход 1» и «вход 2» вычислительных узлов, д — задаваемая точность, а (у\,у2) — «выход 1» и «выход 2» вычислительных узлов.
Для корректной работы сумматора, для всех возможных исходных данных должно выполняться условие у\ ^ д < 1.
Заключение
Сумматор Н. Н. Непейводы удалось реализовать без стены памяти. Отсутствие стены памяти поспособствует сокращению рассеивания энергии и, в случае оптических вычислений, увеличению скорости вычисления.
Планируется доработать модель для работы в интервальной системе счисления.
Благодарности: Е.В. Кочурову, А. Демидову и А. Б. Шворину за помощь при создании статьи.
Список литературы
[1] В. П. Гергель, А. В. Линёв. «Проблемы и перспективы достижения экзафлопного уровня производительности суперкомпьютерных систем», Вестник Нижегородского университета им. Н. И. Лобачевского, 2012, №3(1), с. 189-198, URL: http://goo.gl/6skwwQ t 359
[2] Т. В. Вахний, А. К. Гуц. «Физические основы и проблемы технической реализации квантового компьютера», Математические структуры и моделирование, 2011, №22, с. 38-47, URL: http: //msm.univer.omsk.su/sbornik/jrn22/vahgu.pdf t 359
[3] В. С. Сперанский, О. И. Клинцов. «Оптические цифровые элементы обработки сигналов», T-Comm — Телекоммуникации и Транспорт, 2014, №9, с. 80-82, URL: http://goo.gl/rYTK9N t 359
[4] S.A. McKee. «Reflections on the Memory Wall», Proceedings of the 1st conference on Computing frontiers, CF'04 (Ischia, Italy, April 14-16, 2004), 2004, 7 с., URL: http://goo.gl/r0TCz7 t 359
[5] Н. Н. Непейвода. «О некоторых возможностях локальных вычислений в теории систем и базах данных», Программные системы: теория и приложения, 7:4 (2016), с. 145-160, URL: http: //psta.psiras.ru/read/psta2016_4_145-160.pdf t 360
[6] E. Pelantova, M. Svobodova. "Minimal Digit Sets for Parallel Addition in Non-Standard Numeration Systems", Journal of Integer Sequences, 16 (2013), 13.2.17. t 360
[7] Н. Н. Непейвода, Е. В. Кочуров, А. А. Демидов, А. Б. Шворин. «Работа с числами в системах счисления с перекрытием и с переносами», X конференция «Свободное программное обеспечение в высшей школе», Изд-во «УниверситетгородаПереславля», Переславль-Залесский, 2015, с. 7-9, URL: http://www.altlinux.ru/news/archive/2015/01/item/729/ t 360
[8] А. Б. Шворин. «Параллельное сложение вещественных чисел в системах счисления с перекрытием», Программные системы: теория и приложения, 6:2 (2015), с. 101-117, URL: psta.psiras.ru/read/ psta2015_2_101-117.pdf t 364
Рекомендовал к публикации д.ф.-м.н. Н. Н. Непейвода
Пример ссылки на эту публикацию:
М. М. Хаткевич. «Моделирование прямоточного сумматора», Программные системы: теория и приложения, 2016, 7:4(31), с. 359—367. URL: http://psta.psiras.ru/read/psta2016_4_359-367.pdf
Об авторе:
Марк Маркович Хаткевич
Аспирант Исследовательского центра медицинской информатики Института программных систем им. А.К. Айламазяна РАН, инженер-программист 3 разряда
e-mail: xatmm@mail.ru
Mark Khatkevich. Direct-flow adder program simulation. Abstract. Finite automata can add numbers represented in redundant number systems. This article gives direct-flow calculation scheme for addition. The same scheme goes for different types of input data, addition in binary, ternary, octal redundant systems is considered. Also, this scheme works adding binary matrices and real numbers. (In Russian).
Key words and phrases: adder, direct-flow calculation, number representation.
References
[1] V. P. Gergel', A. V. Linev. "Exaflop Performance of Supercomputers: Challenges and Trends", Vestnik Nizhegorodskogo universiteta im. N. I. Lobachevskogo, 2012, no.3(1), pp. 189-198 (in Russian), URL: http://goo.gl/6skwwq
[2] T. V. Vakhniy, A. K. Guts. "Physical bases and problems of technical realization of a quantum computer", Matematicheskiyestrukturyimodelirovaniye, 2011, no.22, pp. 3847 (in Russian), URL: http://msm.univer.omsk.su/sbornik/jrn22/vahgu.pdf
[3] V. S. Speranskiy, O.I. Klintsov. "Optical Logic Signal Processing Devices", T-Comm — Telekommunikatsii i Transport, 2014, no.9, pp. 80-82 (in Russian), URL: http://goo.gl/rYTK9N
© M. M. Khatkevich, 2016
© Ailamazyan Program Systems Institute of RAS, 2016 © Program systems: Theory and Applications, 2016
[4] S. A. McKee. "Reflections on the Memory Wall", Proceedings of the 1st conference on Computing frontiers, CF'04 (Ischia, Italy, April 14-16, 2004), 2004, 7 p., URL: http://goo.gl/r0TCz7
[5] N.N. Nepeyvoda. "Local Computations in System Theory and VLDB", Programmnyye sistemy: teoriya iprilozheniya, 7:4 (2016), pp. 145-160 (in Russian), URL: http://psta.psiras.ru/read/psta2016_4_145-160.pdf
[6] E. Pelantova, M. Svobodova. "Minimal Digit Sets for Parallel Addition in Non-Standard Numeration Systems", Journal of Integer Sequences, 16 (2013), 13.2.17.
[7] N.N. Nepeyvoda, E. V. Kochurov, A. A. Demidov, A. B. Shvorin. "Using the numbers in numeral systems with overlapping and translations", X konferentsiya "Svobodnoe programmnoe obespechenie v vysshey shkole", Izd-vo "Universitet goroda Pereslavlya", Pereslavl'-Zalesskiy, 2015, pp. 7-9 (in Russian).
[8] A. B. Shvorin. "Parallel Addition of Real Numbers in Overlaying Numeration Systems", Programmnyye sistemy: teoriya i prilozheniya, 6:2 (2015), pp. 101-117 (in Russian), URL: http://psta.psiras.ru/read/psta2015_2_101-117.pdf
Sample citation of this publication:
Mark Khatkevich. "Direct-flow adder program simulation", Program systems: Theory and applications, 2016, 7:4(31), pp. 359-367. (In Russian). URL: http://psta.psiras.ru/read/psta2016_4_359-367.pdf