Устройство для деления

Иллюстрации

Показать все

Реферат

 

Изобретение относится к вычислительной технике и может быть применено в быстродействующих арифметических устройствах для выполнения операции деления чисел. Целью изобретения является повьппение быстродействия устройства за счет сокращения длительности такта формирования К цифр частного и остатка (2((4 4 /2-разрядность делимого и делителя ) . Устройство содержит регистры делимого и делителя, сумматор частного , сумматор принудительного округления делителя, блок деления усеченных чисел, блок умножения, два вычитателя, коммутатор и блок управления, причем информационные входы первой группы коммутатора соединены с входами делимого устройства, информационные входывторой группыкоммутатора -; с выходами первого вычитателя, выходы коммутатора - с информационньтми входами регистра делимого, информационные входы регистра делителя - с входами делителя устройства, выходы старших разрядов регистра делителя - с входами сумматора принудительного округления делителя, выходы которого соединены с входами делителя блока деления усеченных чисел,входы делимого которого соединены с выходами старших разрядов регистра делимого, выходы блока деления усеченных чисел соединень с информационными входами младших разрядов сумматора частного и с входами первой группы блока умножения , входы второй группы которого соединены с выходами разрядов регистра делителя, входы уменьшаемого второго вычитателя соединены с выходами разрядов регистра делимого, а его входы вычитаемого и займа - с выходами первой и второй групп блока . . умножения соответственно, выходы разности и займа второго вычитателя - с входами уменьшаемого и вычитаемого первого вычитателя соответственно. Цель достигнута за счет введения в устройство второго вычитателя, выполненного как вычитатель с запоминанием займа, причем входы уменьшаемого второго вычитателя соединены с выходами разрядов регистра делимого, а его входы вычитаемого и займа - с выходами первой и второй групп блока умножения соответственно, выходы разности и займа второго вычитателя - с входами уменьшаемого и вычитаемого первого вычитателя соответственно. 6 ил. (Л

СОЮЗ СОВЕТСКИХ

СОЦИАЛИСТИЧЕСКИХ

РЕСПУБЛИК

А3 (19) (11) (51) 4 G 06 С 7 52

ОПИСАНИЕ ИЗОБРЕТЕНИЯ

Н А BTOPCHOMY СВИДЕТЕЛЬСТВУ о

ГОСУДАРСТВЕННЫЙ НОМИТЕТ СССР пО делАм изОБРетений и ОткРытий (21) 3800673/24-24 (22) 15, 09, 84 (46) 07. 08, 86, Бюл. М 29 (71) Минский радиотехнический институт (72) А.Г,Батюков и А.А,Шостак (53) 681. 325 (088. 8) (56) Карцев M.À. Арифметика цифровых машин. М.: Наука, 1969, с. 494, рис. 5-1.

Патент США В 3234367, кл. 235-156, опублик. 1966.

Авторское свидетельство СССР

Ф 802962, кл. G 06 F 7/52, 1978. (54) УСТРОЙСТВО ДЛЯ ДЕЛЕНИЯ (57) Изобретение относится к вычислительной технике и может быть применено в быстродействующих арифметических устройствах для выполнения операции деления чисел. Целью изобретения является повьппение быстро- действия устройства за счет сокращения длительности такта формирования

К цифр частного и остатка (2 (К ( (п/2-разрядность делимого и делителя). Устройство содержит регистры делимого и делителя, сумматор частного, сумматор принудительного округления делителя, блок деления усеченных чисел, блок умножения, два вычитателя, коммутатор и блок управления, причем информационные входы первой группы коммутатора соединены с входами делимого устройства, информационные входывторой группыкоммутатора —; с выходами первого вычитателя, выходы коммутатора — с информационными входами регистра делимого, информационные входы регистра делителя — с входами делителя устройства, выходы старших разрядов регистра делителя с входами сумматора принудительного округления делителя, выходы которого соединены с входами делителя блока деления усеченных чисел, входы делимог которого соединены с выходами старших разрядов регистра делимого, выходы блока деления усеченных чисел соединены с информационными входами младших разрядов сумматора частного и с входами первой группы блока умножения, входы второй группы которого соединены с выходами разрядов регистра делителя, входы уменьшаемого второго вычитателя соединены с выходами разрядов регистра делимого, а его входы вычитаемого и займа — с выходами первой и второй групп блока умножения соответственно,. выходы разности и займа второго вычитателя— с входами уменьшаемого и вычитаемого первого вычитателя соответственно.

Цель достигнута эа счет введения в устройство второго вычитателя, выполненного как вычитатель с запоминанием займа, причем входы уменьшаемого второго вычитателя соединены с выходами разрядов регистра делимого, а его входы вычитаемого и займа — с выходами первой и второй групп блока умножения соответственно, выходы разности и займа второго вычитателя с входами уменьшаемого и вычитаемого первого вычитателя соответственно.

6 ил.

1.249551

Изобретение относится к вычислительной технике и может быть применено в быстродействующих арифметичес.. ких устройствах для выполнения операции деления чисел. 5

Целью изобретения является повышение быстродействия устройства.

На фиг. 1 приведена структурная схема предлагаемого устройства; на фиг. 2 — функциональная схема сумматора частного; на фиг. 3 — функциональная схема второго вычитателя; на фиг. 4 — вариант реализации блока управления; на фиг. 5 — граф-схема алгоритма работы блока управления; на фиг. 6 — временная диаграмма работы блока управления.

Устройство содержит регистр 1 делимого, регистр 2 делителя, сумматор

3 частного, сумматор 4 принудитель- 20 ного округления делителя, блок 5 деления усеченных чисел, блок 6 умножения, первый вычитатель 7, второй вычитатель 8, коммутатор 9, блок 10 управления, входы 11 делимого, входы

12 делителя, вход t3 синхронизации, вход 14 логической "1", выходы 15 частного, выходы 16 разрядов регистра

1 делимого, выходы 17 старших разрядов регистра 1. делимого, выходы 18 разрядов регистра 2 делителя, выходы 19 старших разрядов регистра делителя, выходы 20 блока 5 деления усеченных чисел, выход 20 старшего разряда блока 5 деления усеченных чисел, выходы 20 (к — 1) младших разрядов блока 5 деления усеченных чисел, выходы 21 первой группы блока 6 умножения, выходы 22 второй группы блока 6 умножения, выходы 23 4g разности второго вычитателя 8, выходы 24 заема второго вычитателя 8, выходы 25 первого вычитателя 7, выходы 26 коммутатора 9,выходы 27 сумматора 4 принудительного округления делителя, первый, второй, третий, четвертый, пятый н шестой выходы

28-33 бцока 10 управления, седьмой выход 34 блока 10 управления выход сигнализации окончания деле— ния), регистр 35, сумматор 36„ одноразрядные двоичные вычитатели

37 -37„,„, счетчик 38, память 39 микрокоманд.

Информационные входы первой груп- 55 пы коммутатора 9 соединены с входами 11 делимого устройства, информационные входы второй группы коммутатора 9 соединены с выходами 25 первого вычитателя 7, выходы 26 коммутатора 9 соединены с информационными входами регистра 1 делимого, информационные входы регистра 2 делителя соединены с входами 12 делителя устройства, выходы 19 старших разрядов регистра 2 делителя соединены с входами сумматора 4 принудительного округления делителя, вход переноса которого соединен с входом

14 логической "1" устройства, выходы

27 сумматора 4 принудительного округления делителя соединены с входами делителя блока 5 деления усеченных чисел, входы делимого которого соединены с выходами 17 старших разрядов регистра 1 делимого, выходы 20 блока

5 деления усеченных чисел соединены с информационными входами младших разрядов сумматора 3 частного и с входами первой группы блока 6 умножения, входы второй группы которого соединены с выходами 18 разрядов регистра 2 делителя, входы уменьшаемого второго вычитателя 8 соединены с выходами 16 разрядов регистра 1 делимого, а его входы вычитаемого и займа соединены с выходами 21 и 22 первой и второй групп блока 6 умножения соответственно, выходы 23 и 24 разности и займа второго вычитателя

8 соединены с входами уменьшаемого и вычитаемого первого вычитателя 7 соответственно, синхровходы регистров 1 и 2 делимого и делителя, сумматора 3 частного и блока 10 управления соединены с входом 13 синхронизации устройства, первый и второй выходы

28 и 29 блока управления соединены с первыщ и вторым управляющими входами коммутатора 9 соответственно, третий и четвертый выходы 30 и 31 блока 10 управления соединены с входами разрешения записи регистров

1 и 2 делимого и делителя соответственно, пятый и шестой выходы 32 и 33 блока 10 управления соединены с входами установки в "0" и разрешения

-записи сумматора 3 частного соответственно, седьмой выход 34 блока 10 управления является выходом сигнализации окончания деления, выходы сумматора 3 частного являются выходами 15 частного устройства.

Рассмотрим функциональное назначение и реализацию основных узлов

249551 4,ра 35. В (к-1) младших разрядов ре гистра 35 с выходов 20 записываются (к-f) младших разрядов к цифр частного, сформированных на выходах

20 блока 5 деления усеченных чисел.

Запись информации в регистр 35 производится по синхроимпульсу при наличии разрешающего потенциала на его входе разрешения записи, который подключен к шестому выходу 33 блока 10 управления.

10

Сумматор 4 принудительного округ ления делителя и блок 5 деления усеченных (малоразрядных) чисел непосредственно участвуют в формировании очередных к двоичных цифр частного с точностью до единицы их младшего разряда. Сумматор 4 и блок 5 деления усеченных чисел являются комбинационными схемами. В сумматоре 4 осуществляется принудительное округление делителя путем прибавления к значению старших разрядов делителя, поступающих на входы сумматора 4 с выходов 19 регистра 2, через вход 14 устройства единицы в их младший разряд. На выходах 27 сумматора 4 образуется значение старших разрядов делителя, увеличенное на единицу.

Этим самым устраняется возможность получения на выходах 20 блока 5 деления усеченных чисел, в котором производится деление значения старших разрядов делимого на значение принудительно округленных старших pasрядов делителя, частного .с избытком.

Старшие разряды делимого поступают на входы делимого блока 5 с выходов

17 старших разрядов регистра 1 делимого, а принудительно округленные старшие разряды делителя подаются на входы делителя блока 5 с выходами

27 сумматора 4.

2S

При малых значениях К блок 5 деления усеченных чисел может быть разработан по соответствующей таблице истинности либо в виде быстродействующего логического шифратора, либо в виде быстрой поисковой таблицы, реализованной на ПЗУ. При больших же значениях K целесообразна реализация блока 5 в виде быстродействующей однотактной метричной схемы деления, использующей алгоритм с восстановлением или беэ восстановления остатков и все известные средства ускоренной реализации этих алгоритмов. Возможны .

3 1 и блоков предлагаемого устройства для деления.

Регистры 1 и 2 делимого и делителя соответственно предназначены для временного хранения двоичных кодов делимого (остатков) и делителя.

Регистр 1 делимого (n + 1)-разрядный, из которых один разряд расположен слева от запятой и н разрядов справа от запятой. Регистр 2 делителя содержит и разрядов, которые все расположены справа от запятой. В первом такте деления в эти регистры загружаются двоичные коды делимого и делителя, которые являются правиль ными положительными дробями. Регистрь реализованы на основе двухтактных синхронных DV-триггеров. Запись информации в регистры производится по синхроимпульсу при наличии разрешающего потенциала на их V-входах.

Сумматор 3 частного предназначен для хранения частного, он также участвует при выполнении операции деления в процессе формирования пра= вильного значения частного. После завершения деления образованное в нем частное поступает на выходы 15 частного устройства. Сумматор 3 частного содержит (фиг. 2) регистр 35 и комбинационный двоичный сумматор 36 с ускоренным распространением переноса. Регистр 35 реализован на двухтактных синхронных DV-триггерах с возможностью их обнуления. В первом такте деления сумматор 3 обнуляется путем подачи с входа 14 устройства импульса на синхровход регистра 35 и разрешающего потенциала с пятого выхода 32 блока IO управления на вход резрешения установки в "0" ре гистра 35 ° Во всех других тактах работы устройства в сумматоре 3 осуществляется прибавление к значению младшего разряда содержимого регистра 35, которое подается на входы сумматора 36 со сдвигом влево (в сторону старших разрядов) на (к-1) разрядов, значения старшего разряда к цифр частного, сформированных на выходах 20 блока 5 деления усеченных чисел. Это значение старшего разряда поступает на вход переноСа комбинационного сумматора 36 по выходу ?0 . Получившийся на выходах комбинационного сумматора 36 результат записывается без сдвига в соответствующие старшие разряды регистПусть х — значение старших (к+2) З0 разрядов делимого, 9 значение старших (к+2) разрядов делителя у;

Х вЂ” х х у — ч„»л . Макси мал ьная аб солютная по грешно сть (разность между значением частного, получаемым при делении И -разрядных чисел, и значением частного, получаемым при делении усеченных (к+2)-разрядных чисел) при этом заключена в пределах 40 х Х» — (к- »)

О (Е с2 у (к+2!

Выполнение левого условия очевид45 йо, поэтому ограничимся лишь доказательством неравенства х xл - (к-л ) (2 у у +г-с»»г) 50 которое можно переписать в виде х(„+2 (к+г!

)- х„цс2 (у +2 ) °

Максимальная абсолютная погрешность E будет в том случае, когда — О, т,е. ц = » Хг= х иак — (K». л — и

2 -2; Х= Х,па„= 2 — 2

1 па х

S 1249 и другие варианты реализации блока 5 деления усеченных чисел.

Число старших разрядов операндов, обрабатываемых в блоке 5 деления усеченных чисел, определяется в зависимости от диапазона значений. делимого и делителя. Пусть делимое х и делитель у — есть нормализованные положительные двоичные дроби, т.е.

1/2 (cхС 1 и 1/2 с ч (1. ЭФо справед — 1О .ливо только на первом шаге деления.

В дальнейшем, когда в роли делимого выступают промежуточные остатки, возможно нарушение нормализации делимого как влево,так и вправо. В общем !5 случае делимое х в предлагаемом устройстве может изменяться в пределах

О С х (?у, При принятых допущениях для получения на выходах 20 блока 5 деления усеченных чисел К двоичных цифр частного с точностью до единицы их младшего разряда достаточно обрабатывать (к + 2) старших разрядов делимого х (один разряд слева от запятой и (к + 1) разряд справа от 25 запятой)и (к + 2) старших разрядов делителя у (все разряды находятся справа от запятой) °

55! 6

С учетом этого получим — (к + г! -(к-»>

x 2 + x лс2 g,(чл+2 (к+г! ъ у»+

Последнее неравенство выполняется, если справедливо следующее

? 2-(к 2! 2-(""!

+ Ц

-(к-л) -(к+ г) (2 Ц!(у+ 2 ) или, что

142 (у, + 2 ).

Последнее соотношение выполняется при всех значениях делителя ц, заключенных в пределах 1/2 < ч с 1.

Следовательно, значение к-разрядного частного, получаемого на выходах, I

20 блока 5 при делении в нем (к+2)разрядных чисел, может быть либо равно значению старших К разрядов частного, получаемого при делении и — разрядных чисел, либо меньше его на единицу младшего разряда с весом

2-(- е

В блоке 6 осуществляется перемножение к-разрядного частного, сформированного на выходах 20 блока 5 и поступающего. на первую группу входов блока б умножения, и и †разрядно делителя, хранимого в регистре 2 и поступающего на вторую группу входов блока 6 с выходов 18 разрядов регистра 2. На выходах 21 и 22 первой и второй групп блока 6 образуется произведение B двухрядном коде (B виде двух чисел) . Блок 6 умножения комбинационного типа может быть реализован в виде совокупности из и/к К-разрядных двоичных умножителей.

С помощью первого вычитателя 7 производится вычитание из значения разности, сформированной на выходах

23 второго вычитателя 8, значения заема, образованного на выходах 24 второго вычитателя 8. Первый вычитатель 7 комбинационного типа с ускоренным распространением займа. Он

t может быть заменен быстродействующим сумматором, если информацию, поступающую íà его вход вычитаемого, про1249551

55 инвертировать, а на вход переноса сумматора подать сигнал логической 1".

Второй вычитатель 8 комбинационного типа выполнен по принципу запоминания заема. Он содержит (фиг. 3) одноразрядные двоичные вычитатели

37„ -37 „, где через 4, 6, C обозначены входы уменьшаемого, вычитаемого и заема соответственно. В вычитателе 8 осуществляется вычитание из содержимого регистра 1 делимого произведения, сформированного на выходах

21 и 22 блока 6 умножения в двухрядном коде. Результат вычитания образуется на выходах 23 и 24 разности и займа вычитателя 8 в двухрядном коде.

С помощью коммутатора 9 осуществляется передача на информационные входы регистра 1 делимого с входов

11 устройства, когда на первом выходе 28 блока 10 управления формируется сигнал логической "1", либо остатка, образованного на выходах 25 первого вычитателя 7, когда на вто ром выходе 29 блока 10 управления формируется сигнал логической 1

Коммутатор 9 может быть реализован на элементах 2И-2ИЛИ.Блок 10 управления координирует работу узлов и блоков устройства при выполнении на нем операции деления двух чисел. Как и в известном устройстве он может быть реализован самыми различными методами и средо ствами. На фиг. 4 в качестве примера приведена реализация блока 10 управления на основе счетчика 38 и памяти

39 микрокоманд. Счетчик 38 накапливающего типа предназначен для естественной адресации микрокоманд. Вход счета счетчика соединен с входом 13 синхронизации устройства. В качестве памяти 39 микрокоманд может быть применена быстродействующая постоянная память емкостью 7, где Й вЂ” число тактов работы устройства. В самом начале работы устройства счетчик 38 устанавливается в некоторое исходное состояние, например сбрааывается в "0" (на фиг.4цепь установки счетчика 38 в исходное состояние не показана).

Граф-схема (фиг. 5) алгоритма работы блока 10 управления содержит вершины начала и окончания работы блока 10 по реализации в устройстве операции деления, а также (m+1) 5

t5

35 операторную вершину. Во время выполнения первой операторной вершины в устройстве производится загрузка ис- .ходных операндов в регистры 1 и 2 делимого и делителя, а также обнуление сумматора 3 частного. Далее в устройстве выполняется m однотипных вершин, в течение каждой из которых формируется K двоичных цифр частного. На фиг. 5 йриняты следующие обозначения управляющих сигналов (они соответствуют принятым ранее обозначениям выходов блока 10 управления);

u28 — управляющий сигнал, под действием которого на выходы 26 ком" мутатора 9 передается значение делимого с входов 11 устройства; у29 — управляющий сигнал, под действием которого на выходы 26 коммутатора 9 передается значение разности с выходов 25 первого вычитателя 7;

У 30 и у3 1 — управляющие сигналы, разрешающие запись информации в регистры 1 и -2 соответственно;

9 32 — управляющий сигнал, разрешающий еброс сумматора 3 частного в "0"; 33 — управляющий сигнал, разрешающий запись информации в сумматор 3 частного;

Ч 34 — управляющий сигнал, сообщающий об окончании операции; т — число тактов, в течение которых формируется (tr1 (к-1)+1 = pasрядное частное в сумматоре 3.

Устройство для деления работает следующим образом.

Пусть на входы 11 и 12 устройства уже поступили N-разрядные двоичные коды делимого X и делителя ц(здесь предполагается, что делимое и делитель правильные положительные дро-, би), а счетчик 38 блока 10 управления установлен в исходное нулевое состояние. По содержимому счетчика

38, которое служит адресом обращения к памяти 39 блока 10 управления, из памяти 39 считывается следующий двоичный коп первой микрокоманды МК1 — 1011100. Старший разряд этого кода формируется на первом выходе 28 блока

10, а младший разряд образуется на седьмом выходе 34 блока 10 управления. Под действием кода ИК1 коммутатор 9 пропускает на информационные входы регистра 1 делимое Х с входов

1249551 10

11 устройства, регистры 1 и 2 подготовлены к приему информации, так как на их входах разрешения записи при 1 сутствуют потенциалы логическои 1 а сумматор 3 частного настроен иа обнуление, С приходом первого импульса на вход 13 синхронизации устройства производится запись двоичных кодов делимого X и делителя у в регистры соответственно 1 и 2, а также обнуление сумматора 3 частного и установка счетчика 38 блока 10 управления в состояние "1". С момента окончания действия первого импульса на входе 13 синхронизации устройства заканчивается подготовительный этап и начинается собственно деление, в процессе которого в течение тактов формируется (к — 1)+ 1 двоичных цифр частного.

В некоторых случаях может оказаться целесообразным подготовительный этап организовать двухшрговым, причем на его первом шаге осуществляют запИсь только делителя в регистр 2, а на втором шаге производят запись делимого в регистр 1 и обнуляют сумматор 3 частного. Этим самым обеспечивается меньшая длительность такта работы устройства, так как временная задержка сумматора 4 принудителЬного округления делителя не влияет в этом случае на временный цикл работы устройства. В тех же случаях, когда операнды не могут быть загружены в регистры 1 и 2 одновременно (например, при последовательной их выборке из памяти), необходимо всегда производить в первую очередь запись делителя, а потом. делимого.

В первом такте собственно деления по значению старших разрядов делимого у и делителя на выходах 20 блока 5 деления усеченных чисел формируются наиболее старшие k двоичных цифр z„ c Ho o z которые далее поступают на информационные входы младших разрядов сумматора 3. На выходах 21 и 22 блока 6 умножения образуются в двухрядном коде произведение у z а с помощью первого и вто1рого вычитателей 7 и 8 формируется разйость х-ук„, которая в дальнейшем служит первым остатком и подается на входы второй группы коммутатора 9 со сдвигом на (к-1)разрядов влево (в сторону старших разрядов). Одно5

1О!

25 временно с этим из памяти 39 блока

10 считывается код второй микрокоманды МК2=0110010. С приходом второго импульса на вход 13 устройства в регистр 1 делимого записывается сформированный на выходах 25 первого вычитателя 7 первый остаток, в млад-. шие разряды сумматора 3 частного заносятся К старших цифр частного, а счетчик 38 блока 10 управления устанавливается в состояние "2".

Аналогичным образом устройство работает и,в других тактах. В каждом. такте старшая цифра из К очередных цифр частного, образованных на выходах 20 блока 5 и поступающих на информационные входы младших разрядов сумматора 3 частного, подсуммируется к младшему разряду содержимого сумматора 3, сдвинутому на (к-i) разрядов в сторону его старших разрядов.

После выполнения последнего м -. го такта на седьмом выходе 34 блока 10 управления появляется потенциал логической "1", сигнализирующий об окончании операции деления.

Формула из об ре те ния

Устройство для деления, содержащее регистры делимого и делителя, сумматор частного, сумматор принудительного округления делителя, блок деления усеченных чисел, блок умножения, первый .вычитатель, коммутатор и блок управления, причем информационные входы первой группы коммутатора соединены с входами делимого устройства, информационные входы второй группы коммутатора соединены с выходами первого вычитателя, выходы коммутатора соединены с информационными входами регистра делимого, информационные входы регистра делителя соединены с входами делителя устройства, выходы старших разрядов регистра делителя соединены с входами сумматора принудительного округления делителя, вход переноса которого соединен с входом логической "1" устройства, выходы сумматора принудительного округления делителя соединены с входами делителя блока деления усеченных чисел, входы делимого которого соединены с выходами старших разрядов регистра делимого, выходы блока деления усеченных чисел соединены с информационными входами младших раз11 1 рядов сумматора частного и с входами первой группы блока умножения, входы второй группы которого соединены с выходами разрядов регистра делителя, аинхровходы регистров делимого и делителя, сумматора частного и блока управления соединены с. входом синхронизации устройства, первый и второй выходы блока управления соединены с первым и вторым управляющими входами коммутатора соответственно, третий и четвертый выходы, блока управления соединены с входами pasрешения записи регистров делимого и делителя соответственно, пятый и шестой выходы блока управления соединены с входами установки в "О" и разрешения записи сумматора частного

249551 12 соответственно, седьмой выход блока управления является выходом сигнализации окончания деления, выходы ре-, гистра частного являются выходами

5 частного устройства, о т л и ч а ющ е е с я тем, что, с целью повышения быстродействия, оно содержит второй вычитатель, выполненный как вычитатель с запоминанием займа, 10 причем входы уменЬшаемого второго вычитателя соединены с выходами разрядов регистра делимого, а его входы вычитаемого и займа соединены с выходами первой и второй групп блока умножения соответственно, выходы разности и займа второго вычитателя соединены с входами уменьшаемого и вычитаемого первоговычитателя соответственно.

1249551

Я О Ю л М Д7,Я си

Фиг. б

Составитель А. Клюев

Техред В.Кадар

Редактор Л. Гратилло

Корректор М. Шароши

Заказ 4327/51

Подписное

Тираж 671

ВНИИПИ Государственного комитета. СССР по делам изобретений и открытий

1.13035, Москва, Ж-35, Раушская наб., д. 4/5

Производственно-полиграфическое предприятие, г. Ужгород, ул. Проектная, 4