Вычислительное устройство
Изобретение относится к Bbi Oic- лительной технике и может быть использовано автоноьшо в качестве специализированного вычислителя или в качестве функционального расширителя в составе больших ЭВМ. Целью изобретения является расширение класса решаемых задач за счет возможности вычисления сложной функции X Х- cos(lnX)+jsin(ln(X)) и остальных ее компонент cosX, sinX, InX. Устройство содержит регистры 1-4, сумматоры-вьгчитатели 5-8, сдвигатели 9-И, блок 12 памяти, блок 13 управления . Код режима задается в блоке управления, в котором в зависимости от этого хода происходят настройка на количество итерации и выборка сот ответствующих констант из блока памяти . Сдвигатели, сумматоры-вычитатели и регистры реализуют итерационные алгоритмы поворота вектора. 2 ил. (Л
СОЮЗ СОВЕТСНИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИК
А1 (19) (11) (Ч) 4 (06 Е 7/544
ОПИСАНИЕ ИЗОБРЕТЕНИЯ
К А ВТОРСНОМУ СВИДЕТЕЛЬСТВУ
ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР
ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ (21) 4024375/24-24 (22) 19.02.86 (46) 07,07.87. Бюл. У 25 (71) Кировский политехнический институт (72) А.Н.Чуватин (53) 681. 325 (088. 8) (56) Авторское свидетельство СССР
У 703823, кл. G 06 F 7/544, 1977, Авторское свидетельство СССР
Ф 1015375, кл. G 06 F 7/544, 1981, Vo1аег I.Е. The Cordic trigonometric computing technique — IRE
Trans. Comput. 1959, М 3, ч. 8, р, 330-334. (54) ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО (57) Изобретение относится к вычислительной технике и может быть использовано автономно в качестве специализированного вычислителя или в качестве функционального расширителя в составе больших ЭВМ. Целью изобретения является расширение класса решаемых задач за счет возможности вычисления сложной функции Х =Х
=cos(1nX)+jsin(1n(Х)) и остальных ее компонент cosX, sinX, 1пХ. Устройство содержит регистры 1-4, сумматоры-вычитатели 5-8, сдвигатели
9-11, блок 12 памяти, блок 13 управления. Код режима задается в блоке управления, в котором в зависимости от этого хода происходят настройка на количество итерации и выборка со-. ответствующих констант иэ блока памяти. Сдвигатели, сумматоры-вычитатели и регистры реализуют итерационные алгоритмы поворота вектора.
2 ил.
132?2
70 2 числении значений функций cos (Х), sin(X)
С, D — переменные алгоритма для обозначения соответственно ординаты и абсциссы вектора г ри вычислении значений функций Х или соз(Х), sin(X);
Р е -1, +13 — оператор направления итерационного процесса преобразования аргумента в единицу Х - при вычислении значений функции X+ или
1n (X);
Е E (-1, + I ) — оператор направления поворота вектора при вычислении значений функцй Х или cos(X), sin (X);
K=O,l,...,n-2 — переменная алгоритма — номер выполняемой итерации; (п-1) — количество выполняемых итераций, количество разрядов в дробной части числа; и — количество значащих разрядов в представлении числа, включая единичный разряд в целой части числа; (и+1) — разрядность устройства, разрядность представления числа, включая знаковый разряд;
Л=0,1 — переменная алгоритма — номер шага на каждой итерации.
В блоке памяти хранятся константы.
При вычислении значения функции
X+ (код функции T=ll) используются для K=O 1,2,3, Ф(Т.К.P.Е)=-ln(l+P 2 ); для К=4,5,6,,п-2;
Ф(Т.К.P.Е)=-ln(l+P 2 )-E )
) arctg(2 ); для К=п-1 п n+l п+2 ь ю в
-к
Ф(Т.К.P.Е)=-Е arctg(2 ), 30
Вычислительное устройство работает следующим образом.
Вычислительное устройство может работать в трех режимах: вычисления значения функции Х, где 0,5 Х < l; вычисления значения функции lп(Х), гдс 0,5 Х I; вычисления значений функций cos (Х), sin(Х), где — ((/4 Х< с ((/4, Этим режимам соответствуют следу- щ ющие коды Т функций: Т=З, =11 для функции Х ; T=2«=10 для функции
lп(Х); Т=l =01 для функции cos(Х), sin(X), В дальнейшем приняты следуюшие 45 обозначения:
А — переменная алгоритма для преобразования аргумента в единицу Х 1 при вычислении значений функций Х или lп(Х);
 — переменная алгоритма для преобразования суммы логарифмических констант в сумму арктангенсных констант без предварительного накопления первой при Вычислении значения функ ции Х, для формирования значения функции 1п(Х) при вычислении этой функции, для преобразования аргумента (угла вектора) в ноль Х- 0 при выИзобретение относится к вычислительной технике и может быть использовано в специализированных вычислителях.
Цель изобретения — расширение 5 класса решаемых задач эа счет воэможности вычисления сложной функции
X =X cos (1n(X)) +j sin (in(X)j .
Па фиг. 1 представлена функциональная схема устройства; на фиг.2 схема блока управления.
Устройство содержит первый 1, второй 2, третий 3 и четвертый 4 регистры, первый 5, второй 6, третий
7 и четвертый 8 сумматоры-вычитатели, первый 9, второй 1О и третий 11 сдвигатели, блок 12 памяти, блок 13 управления.
Блок управления содержит генера- 20 тор 14 тактовых импульсов, триггер
15, первый элемент И 16, первый коммутатор 17, счетчик 18, второй коммутатор 19, первую схему 20 сравнения, сумматор 21, вычитатель 22, третий коммутатор 23, вторую 24 и третью
25 схемы сравнения, второй 26 и третий 27 элементы, дешифратор 28, регистр 29.
При вычислении значения функции
1п(Х) (код функции T=IO) для K=0,1
2,...,n-2 используются следующие константы
Ф(Т.К.P Е)=-ln(1+Ð 2 ).
При вычислении значений функций
cos(X), sin(X) (код функции Т=01) для К=4,5 6,...,n+2 используются следующие константы
Ф(Т.К,P.E)=-E arctg(2 ).
При вычислении значений функций
Х и lп(Х) используются двойные шаги итераций, а при вычислении значений функций cos(Х), sin(X) — одиночные шаги итераций.
В .режиме вычисления значения функции Х 1 (код функции T=11) вычисли1322270 (1) (2) (3) (4) (5) (6) А: =-Х;
В: =-0;
С: =-0;
n:=1/М;
К:=О;
Л:=О, 11- -2 Н (z где М=!1 „(1+2 )
Итерацйи
10 константа. (8)
1$ (9) (10) 20 (13) (14) Результаты
А=1; (19)
35 (21) (22) тельное устройство реализует следуlotlLHH алгоритм. Начальные условия
1 Если К>п-2, то идти к 2, иначе †(7)
Р:=
+1, если А а!, — 1, если А>1, А:=А+Р А 2
2 Е:=
+1, если В О, — 1, если В О, В:=В+Ф(Т.К.P.Е) Если К 3, то идти к 3, иначе (12) к+э
С: =С+Е D 2
-к+з
D:=D-E С 2
3 Л:=Л+1, (15)
Если Л=1, то идти к 1, иначе — (16) К: =К+1, (17)
Если К п+2, то идти к 1, иначе — конец, (18) в=о;
C=sin((ln(Х));
D cos ln(X)), где значения D и С вЂ” соответственно 4О ,действительная и мнимая части значения функции
Х =Х cos (ln(X)J +j sin(in(X))
В исходном положении в четвертом регистре 4 находится аргумент Х, в первом регистре l — константа 1/М, второй 2 и третий 3 регистры установлены в состояние "ноль". Счетчик ите" раций и счетчик числа шагов на каждой итерации, входящие в состав бло-эо ка 13 управления, установлены в состояние "Ноль".
Такии образои, реализованы выражения (1) †(Ь). В блоке 13 управления хранится код Т=11 функции Х+, кото- И рый с выходом кода режима блока 13 управления подан на второй адресный вход блока 12 памяти.
Блок 13 управления вырабатынает рас:пределенную во времени последовательность сигналов на своих выходах, На первом тактовом выходе — последонательность синхросигналон, подаваемых на синхрониэирующие входы первого 1 и второго 2 регистров на итерациях с номерами 4, 5, 6,..., п+2 и разрешающих прием информации н эти регистры.
На выходе величины сдвига — последовательность кодов — указателей сдвига 1,2,3,...,п-1, подаваемых на одноименные входы первого 9 и второго 10 сднигателей на итерациях с номерами соответственно 4, 5,6...,п+2.
На втором тактовом выходе последовательность синхросигналов, подаваемых на синхронизирующий вход третьего регистра 3 и на стробирующий вход блока 12 памяти на итерациях с номерами 0,1,2,...,n+2 и разрешающих прием информации в третий регистр 3 и считывание констант из блока 12 памяти.
На выходе номера итерации — последовательность номеров выполняемых итераций О,!,2,...,n+2, подаваемых на первый адресный вход блока 12 памяти и обеспечивающих выбор константы, соответствующей номеру выполня- . емой итерации.
На выходе кода режима постоянно присутствует код вычисляемой функции; подаваемый на второй адресный вход блока 12 памяти.
На выходе модифицированной величины сдвига — последовательность кодов — указателей сдвига 1,2,3,..., п-1, подаваемых на вход величины сдвига третьего сдвигателя 11 на итерациях с номерами соотнетственно
0,1,2... »n-2.
На третьем тактовом выходе — последовательность синхросигналов, подаваемых на синхрониэирующий вход четвертого регистра 4 на итерациях с номерами 0,1,2,. ° .,и-1 и разрешающих прием информации в этот регистр.
На каждой итерации вырабатываются два синхросигнала, что соответствует использованию двойных шагов итераций.
На каждой итерации с номерами
0,1,2,3 реализуется следующая последовательность действий.
Значение Р оператора (8) алгоритма определяется состоянием разряда целой части четвертого регистра 4.
1322270
25
50
В третьем сдвигателе 11 выполняется сдвиг величины А на (К+1) разрядов вправо, т.е. на его выходах фор— V -1 мируется величина А 2 . В четвертом сумматоре — вычитателе 8 выполняетс.я операция сложения — вычитания вели— k-t чин А и А 2, т.е. на его выходах
-к- формируется величина А+Р А-?, которая формируется в четвертом регистре
4 А:=А+Р А 2 f0
Одновременно значение P поступает с выхода разряда целой части четвертого регистра 4 на третий адресный вход блока 12 памяти. Реализуется оператор (11) алгоритма. В зависимости !5 от кода функции T=ll номера итерации
K значения P из блока 12 памяти считывается константа
-1п(1+2 ) или -ln(1-2 ), т.е. считывается константа
-к-
Ф(Т.К.P.Å) =-1n(1+P 2 ), Третий сумматор-вычитатель 7 выполняет операцию сложения величин В и Ф(Т.K.P Е), т.е. íà его выходах формируются величина В+Ф(Т.К.P.Å), которая фиксируется в третьем регистре 3 Б:==В+Ф(Т.К,P.Е).
Операторы счета итераций (17) и
30 числа шагов на каждой итерации (15) реализуют ся соответствующими счетЧиками, входящими в состав блока 13 управления.
На каждой итерации с номерами 35
K=4,5.,6,...,n-2 реализуется следующая оследовательность действий.
Значение Е оператора (10) алгоритма определяется состоянием знакового разряда третьего регистра 3.
Значение Е поступает с выхода знакового разряда третьего регистра 3 на четвертый адресный вход блока 12 памяти. В зависимости от кода функции
Т11, номера итерации К, значения Р, 45 значеиия Е иэ блока 12 памяти считывается константа
Ф(Т,К.Р.E)=-1п()+Р 2 )-Е х хагссд(2 ).
Третий сумматор-вычитатель 7 выполняет операцию сложения величин В и Ф(Т.К ° P .Å), т ° е, на его выходах формируется величина В+Ф(Т,К.P.E), которая фиксируется в третьем регист- 55 ре 3.
Одновременно значение Е поступает с выхода знакового разряда третьего регистра 3 на входы соответственно перього 5 и второго 6 сумматоров-вычитателей, В первом сцвигателе 9 выполняется сдвиг абсциссы вектора Л на (К-3) разрядов вправо, т.е. на выходах этого сднигателя формируется приращение ч -k> 3
0 ° с ординаты вектора. Во втором сумматоре-вычитателе 6 выполняется операция сложения (вычитания) ординаты вектора С и ее приращения D 2 "
Во втором сдвигателе 10 выполняется сдвиг ординаты вектора С на (К-3) разрядов вправо, т.е. на выходах этого сдвигателя формируется npupa-ki3 щение С 2 абсциссы вектора.
В первом сумматоре-вычитателя 5 выполняется операция вычитания (сложения) абсциссы вектора D и ее приращения С 2
На каждой итерации с номерами
К=п-l, п, n+1, n+2 реализуется следующая последовательность действий.
Особенность реализации алгоритма (11) на итерациях с номерами К=
=и†l n, и+1, n+2 заключается в том, что константа
Ф(Т,К.P.Е)-Е arctg(2 ) не зависит от значения P оператора (8) алгоритма, поэтому цепь: блок 12 памяти, третий сумматор-вычитатель
7, третий регистр 3 — продолжает преобразование В:=В+Ф(Т.К.P.Е) суммы логарифмических констант в сумму арктангенсных констант без предварительного накопления первой суммы в условиях, когда комбинированная константа Ф(Т.К.P.Е) не имеет логарифмической составляющей, при этом правила определения значения Е, определяемые оператором (10) алгоритма, обеспечивают сходимость суммы констант к нулю В- О.
Цепь: первый сдвигатель 9, второй сумматор-вычитатель 6, второй регистр
2 и цепь: второй сдвигатель 10, первый сумматор-вычитатель 5, первый регистр 1 продолжают формирование соответственно ординаты и абсциссы вектора в соответствии с операторами (13) и (14) алгоритма.
B результате вычислений после выполнения итераций с двойными шагами в регистрах сформированы следующие результаты: в четвертом А1, в третьем В=О, во втором C=sin (in(X)J, в первом Dcos (1п(Х)), т.е. реализованы соответствующие выражения (19)(22) алгоритма.
1322270
В 1н я име вьлц< лс ния значения функции 1п(Х) (код функции 7=10) вычислительное устройство реализует следующий алгоритм. Начальные условия (23) A:=Õ;
B:=0;
K:-=0;
Л:=О.
Итерации (24) (25) !
+1 если А 1, — 1, если А 1, А: =А+Р- А 2
В: =В+Ф(Т, К.Р.Е), (27) (28)
15 (29-) (30) Jl:=Л+1, если Л=l то идти к 1, иначе — (31)
K:=K+1, (32) если Кап-2, то идти к 1, иначе — (33) конец.
Результаты
A--1, В =1п(Х) . (34) (35) На каждой итерации вырабатываются два синхросигнала, что соответствует использованию двойных шагов. итераций. 45
Операторы (30) †(33) алгоритма.реализуются блоком 13 управления. Значение P оператора (27) алгоритма снимается с выхода целой части разряда (соответствующего позиции единицы в целой части числа) четвертого регистра.
В результате вычислений после выполнения (n-1) итераций с двойными шагами в четвертом 4 и третьем 3 регистрах сформированы значения соответственно 1 и 1n(X). Таким образом, реализованы выражения (34) и (35) алгоритма.
В исходном положении в четвертом регистре 4 находится аргумент Х, тре. тий регистр 3 установлен в состояние Ноль". Счетчик итераций и счетчик числа шагов на каждой итерации, входящие в состав блока 13 управления, установлены в состояние "Ноль".
Таким образом, реализованы выражения (23)-(26). В блоке 13 управления хранится код T ll функции 1n(X), который с выхода кода-режима блока 13 управления подан на второй адресный 40 вход блока 12 памяти.
В режиме вь числения значений функций cos(Х), sin(Х) (код функций Т=01) вычислительное устройство реализует следующий алгоритм, Начальные условия (36) (37) (38) (39) В:=Х;
С:=О,;
D:=1/М;
K:-=4, n- где М=11 „, (1+2 ") — константа.
Итерации
+1, если Въ О, ! Е:= -1, если В О, (40) (41) (42) (43) В: =В+Ф(Т.К.P Е), С:=С+Е D 2
D: =D-E. С. 2
К:=К+1, (44) если К оп+2, то идти к 1, иначе (45) конец.
Результаты (46) В=О;
C=sin(Х);
D=cos(X). (47) (48) В -исходном положении в третьем регистре 3 находится аргумент Х, второй регистр 2 установлен в состояние Ноль", в первом регистре 1 находится константа 1/М. В счетчике итераций, входящем в состав блока 13 управления, находится начальное значение 4 номера итерации. Таким образом, реализованы выражения (36)-(39) алгоритма. В блоке 13 управления хранится код T=01 функций сов(Х), sin(X) который с выхода кода режима блока
13 управления подан на второй адресный вход блока 12 памяти.
На каждой итерации вырабатывается один синхросигнал, что соответствует использованию одиночных шагов итераций.
Операторы (44) и (46) алгоритма реализуются блоком 13 управления.
Значение E оператора (40) алгоритма снимается с выхода знакового разряда третьего регистра 3. Оператор (41) алгоритма реализуется цепью: блок 12 памяти, третий сумматор-вычитатель 7, третий регистр 3. Оператор (42) алгоритма реализуется цепью: первый
9 13?2270 сдвигатель 7, второй сумматор-нычитатель 6, второй регистр 2. Оператор (43) алгоритма реализуется цепью: второй сдвигатель 10, первый сумматор-нычитатель 5, первый регистр 1, В результате вычислений после выполнения (п-1) итераций с одиночными шагами в третьем 3, втором 2, первом
1 регистрах сформированы значения соответственно О, sin(Х), cos(Х). 50
Таким образом, реализонаны выражения (46)-(48) алгоритма, Блок управления функционирует слеДующим образом, До начала работы блока управления !5 в регистр 29 записывается код Т ныII It числяемой функции. По сигналу Пуск в счетчик 18 через первый коммутатор
17 заносится начальное значение б для функций Х1 и lп(Х), либо 4
Для функций cos (Х) з in (Х), По сигналу "Пуск" триггер 15 устанавливается в состояние "JIor. 1ч и
55 разрешает прохождение синхроимпульсов с выхода генератора 14 через первый элемент И 16 на нторой тактовый выход блока управления, на счетный вход счетчика 18 и на вход второго
26 и третьего 27 элементов И.
На выходах регистра 29, т.е. на выходе кода режима блока управления постоянно присутствует код Т вычисляемой функции.
При вычислении значения функции
Х или 1п(Х) используются двойные шаги итераций, соответственно номер шага на каждой итерации Л определяется состоянием младшего, т.е. (е+1)-го разряда счетчика 18. Второй коммутатор 19 обеспечивает формирование номера К выполняемой итерации н режимах вычислейия значений функций Х и 1n(X) — двойные наги итераций, и в режиме вычисления значений функций
cos(Х), sin(X) — одиночные шаги итераций.
Третий коммутатор 23, управляемый дешифратором 28, обеспечивает, выдачу общего числа шагов итераций 2 (n+2), либо 2 (n-2), либо п+2 при вычислении значений функций соответственно
Х1, либо 1n(X), либо cos(X), sin(X5 на первую схему 20 сравнения, которая сравнивает это число с текущим номером шага от начала вычислений, формируемым счетчиком 18. При достижении заданного числа шагов итераций схема 20 сравнения устанавливает триггер
15 в состояние "Лог. 0", при этом
45 триггер 15 блокирует передачу cèíõðîимпульсон чере:I первый элемент И 16.
Вычисления закончены.
Номер К выполняемой итерации с вьгходов второго коммутатора 19 поступает на выход номера итерации блока управления, н сумматор 2! и н вычитатель 22, где складывается с константами соответственно +1 и -3, Вторая и третья схемы 24 и 25 сравнения разрешают выдачу синхросигналов через соответствующие элементы
И 26 и 27 на первый и третий тактоные выходы блока управления на итерациях с номерами К 4 и К ап-2 соотнетственно.
Ф о р м у л а и э о б р е т е н и я.Вычислительное устройство, содержащее три регистра, три сумматора-вычитателя, два сдвигателя, блок памяти и блок управления, причем информационные выходы первого, второго н третьего регистров соединены с первыми ннформацйонными входами соответствен-. но первого, второго и третьего сумматоров-вычислителей, выходы которых соединены с информационными входами соответственно первого, второго и третьего регистров, информационные выходы первого и второго регистров соединены с информационными входами соответственно первого и второго сдвигателей, выходы которых соединены с вторыми информационными входами соответственно второго и первого сумматоров-вычитателей, выход блока памяти соединен с вторым информационным входом третьего сумматора-вычитателя, выход знакового разряда третьего регистра соединен с управляющими входами первого и второго сумматоров-вычитателей, первый тактовый выход блока управления соединен с синхронизирующими входами первого и второго регистров, выход величины сдвига блока управления соединен с одноименными входами первого и второго сдвигателей, второй тактовый выход блока управления соединен с синхронизирующим входом третьего регистра и стробирующим входом блока памяти, выход номера итерации блока управления соединен с первым адресным входом блока памяти, о т л и ч а ю щ е е с я тем, что, с целью расширения класса . решаемых задач за счет воэможности вычисления cos (ln(x))+j sin tin(x)), в
13?2270
12 н го введе flhl четвертый регистр, четвертый сумматор-вычитатель, третий сдвигатель, а блок управления содержит генератор тактовых импульсов, счетчик, три коммутатора, три схемы сравнения, сумматор, вычитатель, дешифратор, триггер, регистр и три элемента И, причем вход запуска устройства соединен с одноименным входом блока управления, выход кода режима блока управления соединен с вторым адресным входом блока памяти, выход
10 модифицированной величины сдвига блока управления соединен с входом вели15 чины сдвига третьего сдвигателя, информационный вход которого соединен с информационным выходом четвертого регистра, информационный вход которого соединен с выходом четвертого сумматора-вычитателя, первый и вто20 рой информационные входы которого соединены с выходами четвертого регистра и третьего сдвигателя соответственно, управляющий вход четвертого сумматора-вычитателя соединен с вы25 ходом разряда целой части четвертого регистра и с третьим адресным входом блока памяти, четвертый адресный вход которого соединен с выходом знакового разряда третьего регистра, синхро- З0 ниэирующий вход четвертого регистра соединен с третьим тактовым выходом блока управления, причем вход запуска блока управления соединен с входом установки триггера и с входом
35 записи счетчика, выход триггера соединен с первым входом первого элемента И, второй вход которого соединен с выходом генератора тактовых импульсов, выход первого элемента И соединен с вторым тактовым выходом блока управления, со счетным входом счетчика и с первыми входами второго и третьего элементов И, информационный вход счетчика соединен с выходом пер45 вого коммутатора, первый и второй информационные-входы которого соединены с первым и вторым входами эадаHHR констант блока управления < оот» T ственно, управляющий вход первого коммутатора соединен с первым вь ходом дешифратора и с уп1 вляющим вхс— дом второго коммутатора, выход разрядов счетчика соединен с первым входом первой схемы сравнения и с первым информационным входом второго коммутатора, второй информационный вход которого соединен с выходом старших разрядов счетчика, выход второго коммутатора соединен с выходом номера итерации блока управления и с входом первого слагаемого сумматора, с входом уменьшаемого вычитателя, с первыми входами второй и третьей схем сравнения, вторые входы которых соединены с входами граничных значе— ний итерации блока управления, выходы признаков больше и меньше соответственно второй и третьей схемы сравнения соединены с вторыми входами соответственно второго и третьего элементов И, третьи входы которых соединены с выходами разрядов регистра, выход регистра соединен с выходом кода режима блока управления и с входом детифратора, выходы которого соединены с управляющими входами третьего коммутатора, информационные входы которого соединены с соответствующими входами значений останова вычислений блока управления, выход третьего коммутатора соединен с вторым входом первой схемы сравнения, выход признака больше которой соединен с входом сброса триггера, выходы второго и третьего элементов И соединены соответственно с первым и третьим тактовыми выходами блока управления, выходы вычитателя и сумматора соединены соответственно с выходами величины сдвига, и модифицированной величины сдвига блока управления, вход второго слагаемого сумматора и вход вычитаемого вычитателя соединены соответственно с третьим и четвертым входами задания констант блока управления, 1322270
Йа2
Составитель С.Куликов
Редактор П.Гереши Техред Л.Олийнык Корректор1Л.Бескид
Заказ 2865/45
Тираж 672 Подписное
ВНИИПИ Государственного комитета СССР по делам иэобретений и открытий
113035, Москва, Ж-35, Раушская наб,, д. 4/5
Производственно-полиграфическое предприятие, г, Ужгород, ул ° Проектная, 4







