Вычислительное устройство

Иллюстрации

Показать все

Реферат

 

Изобретение относится к вычислительной технике и может быть применено для выполнения арифметических операций над двоичными числами. Особенно эффективно его использование в средних ЭВМ. Целью изобретения является повышение быстродействия. Устройство содержит регистры 1 - 6, коммутаторы 7 - 19, узел 20 разрядных произведений, арифметико-логический узел 21, сумматор 22, узел 23 коррекции, узел 24 смещенных эквивалентов, узел 25 нормализации и сдвига, вычитатель 26, узел 27 цифр частного и микропрограммный блок 28 управления. 10 ил., 2 табл.

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

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

РЕСПУБЛИК (51) 5 G 06 F 7/38

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

Н А ВТОРСКОМЪГ СВИДЕТЕЛЬСТВУ

ГОСУДАРСТВЕННЫЙ КОМИТЕТ

ПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМ

ПРИ ГКНТ СССР

1 (21) 4421485/24-24 (22) 06,05.88 (46) 23.02.90. Вил. N - 7 (72) Г,П. Лопато,. Р,М. Асцатуров, А.А, Шостак, Л.Г, Лопато, Л.О. Шпа— ков и А.А. Жалковский (53) 681.325(088.8) (56) Авторское свидетельствî СССР ,М - 1287146, кл. G Об F 7/38, 1985.

Процессор EC 2366. Техническое описание Т02. М., 1983, с. 21 — 24, рис. 4,2. (54) ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО (57) Изобретение относится к вычисли„„SU„,1545215 A 3

2 тельной технике и может быть применено для выполнения арифметических операций нед двоичными числами. Особенно эффективно его использование в средних ЭВМ. Целью изобретения является повышение быстродействия, Устройство содержит регистры 1-6, коммутаторы 7 — 19, узел 20 разрядных произ ведений, арифметико-логический узел

2), сумматор 22, узел 23 коррекции, узел 24 смещенных эквивалентов, узел

25 нормализации и сдвига, вычитатель

26, узел 27 цифр частного и микропрограммный блок 28 управления. 10 ил., 2 табл. /

1545215

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

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

Вьгчислительное устройство содержит (фиг. 1) регистры 1-6 с первого по шестой соответственно, коммутаторы

7-!9 с первого по тринадцатый соот- ветственно, узел 20 разрядных произВедений, арифметико-логический узел

21 сумматор 22, узел 23 коррекции, Э

35 узел 24 смещенных эквивалентов, узел

25 нормализации и сдвига, вычитатель

26, узел 27 цифр частно го, микропрограммный блок 28 управления, вход

29 данных устройства, вход 30 кода сдвига устройства, вход 31 знаков множимого и множителя устройства, адресный вход 32 устройства, выход 33 результата устройства, выход 34 нормализации устройства, выходы 35-55 с 45 первого по двадцать первый блока 28 управления соответственно, выход 56 признака нуля узла 25 нормализации и сдвига, выход 57 старшего разряда и выход 58 переноса в старшую группу разрядов арифметико †логическо узла

21, выходы 59-64 регистров 1 — 6 соответственно, выходы 65-77 коммутаторов

7-1g соответственно, выходы 78 и 79 старших и младших цифр узла 20 раз55 рядных произведений, выходы 80 и 81 результата и переносов арифметикологического узла 21, выходы 82 и 83 сумм и переносов сумматора 22, выход

84 узла 23 коррекции, выход 85 узла

24 смещенных эквивалентов, информационный выход 86 узла 25 нормализации и сдвига, выходы 87 и 88 разности и заема вычитателя 26, выход 89 узла

27 цифр частного, выходы 90 младших раз рядов, выходы 91 младших k разрядов старшей части, выходы 92 старших (и-k) разрядов и выходы 93 старших (и-k ) разрядов регистра 1 (rpe

n — количество двоичных разрядов oneи ! ранда, 4 М вЂ”, 3- 1с < k)., выходы 94 младших k разрядов коммутатора 11, входы 95 младших k разрядов входа

29 данных, выходы 96 старших (k+3) разрядов регистра 2, выходы 97 и 98 старших (k+4) разрядов регистров 3 и 4 соответственно, выходы 99 старших (n-k) разрядов регистра 4, выходы

100 младших (n-k+1) разрядов и выходы 101 старших (и-k) разрядов регистра 6, и выходы 101 младших k разрядов суммы сумматора 22, Узел 20 разрядных произведений содержит (фиг. 2) элементы 102,-102,„

ГП1 умножения (m=(), где (Х ) — ближайшее целое, большее ларбо равное Х), Арифметико-логический узел 21 содержит (фиг. 3) m арифметико — ло— гических элементов 103,-103 и m корректоров 104,-104

Сумматор 22 содержит (фиг. 3) m элементов суммирования 105,-105 и

m 106,„.

Узел 23 коррекции содержит (фиг.4) сумматоры 107 и 108, триггеры 109 и

110, регистр 111 коррекции, вход 112 знака множимого и вход 113 знака множителя, выходы 114 и 115 суммы и переноса сумматора 107, выходы 116 и

117 суммы и переноса сумматора 108 и выходы 118 и 119 триггеров 109 и 110 соответственно, Узел 25 нормализации и сдвига содержит (фиг. 5) циклический сдвигатель 120, формирователь 121 кода маски, формирователь 122 результата, нормализатор 123 и коммутатор 124.

Узел 27 цифр частного содержит (фиг ° 6) сумматор 125, сумматор 126 округления, формирователь 127 обратной величины, умножитель 128, группу элементов И 129 и элемент 130

И-HF..

Микропрограммный блок 28 управ— ления содержит (фиг. 7) первый и

5 15452 второи узлы 131 и 132 формирования адреса, первый и второй узлы 133 и

134 памяти микрокомянд, коммутатор

135, регистр 136 микрокоманд, узел

137 проверки условий.

Рассмотрим функциональное назначение и реализацию основных блоков и узлов устройства, Для определенности при дальнейшем рассмотрении устройства примем следующие положения: формат н форма представления чисел как в ЕС 3ВМ; разрядность основных регистров и трактов передачи п=64; количество одновременно обрабатываемых разрядов двоичного множителя, а также количество одновременно формируемых двоичных разрядов частного k=4; количество одновременно анализируемых двоичных разрядов 20 числа, преобразуемого в двоично-деt сятичный код, k =3; при выполнении операций над десятичными числами в каждом такте обрабатывается одна десятичная цифра множителя или одна 25 десятичная цифра преобразуемого в двоичный код числа.

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

28 управления. Все регистры имеют общую цепь синхронизации, т.е. запись информации в них происходит по одному и тому же синхроимпульсу при на- 40 личии соответствующих управляющих потенциалов на их разрешающих входах.

Регистр 2 предназначен для хранения значения множимого при выполнении в устройстве операции умножения, 45 значения делителя при выполнении операции деления или смещенного эквивалента веса преобразуемой группы разрядов при выполнении команд преобразования. Регистр 2 может быть построен, например, на триггерах, запись информации в них производится по тому же синхроимпульсу, что и для описанного регистра 1 при наличии рязрешающеГО ПОтенцияля с Выходя

36 блока 28 управления.

Регистры 3 и 4 предназначены для временного хранения значений частичных произведений при, выполнении one15 6 раций умножения или значений промежуточных результатов преобразования при выполнении операций преобразования, сформированных в двухрядном коде на выходах 78 старших цифр и выходах 79 младших цифр разрядных произведений узла 20 соответственно, а также для временного хранения значений промежуточного остатка при выполнении операций деления, сформиро-, ванных в двухрядном коде на выходах

88 и 87 заема и разности соответственно вычитателя 26.

Также регистры 3 и 4 используются для хранения исходных операндов при выполнении операций сложения и вычитания ° Регистры 3 и 4 могут быть построены, например, на триггерах, запись информации в них производится пц тому же синхроимпульсу, что и для описанных регистров 1 и 2 при наличии потенциалов на их разрешающих входах с выходов 37 и 38 блока 28 управления соответственно. Разрядность регистров 2 и 3 может быть минимизирована исходя из выполняемых операций, для операции умножения достаточно разрядности регистров 2 и 3, равной 60 битам.

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

Регистр 6 предназначен для временного хранения результатов, формируемых на выходах 80 сумм арифметикологического узла 21 или на выходах

82 сумм сумматора 22, и может быть построен на триггерах, на вход разрешения которых подан управляющий сигнал с выхода 39 блока 28 управления.

Коммутаторы 7-10 и 16 предназначены для передачи информации на входы регистров 1 — 4 и 6 соответственно.

Коммутатор 8 передает информацию также на входы узла 25 нормализации и сдвига, Коммутаторы 7-10 и 16 могут быть выполнены на мультиплексорах

500КП174, на адресные входы которых подаются управляющие коды с выходов

40-43 и 53 блока 28 управления соответственно, 1545215

25 код

К7

В40 0

В41 0

В42 0

К8

К9

В43 0

К10

Коммутатор 11 предназначен для передачи в старшие освобождающиеся раз— ряды при выполнении операции сдвига на 4 бита или на 3 бита вправо информации с выхода регистра 1. Коммутатор

11 может быть выполнен на элементах

И-ИЛИ или мультиплексорах (2 1) „на адресный вход которых подается управляющий код с выхода 50 блока 28 управления, Коммутаторы 12 и 13 предназначены для передачи информации на входы первого и второго операндов арифметико— логического узла 21 соответственно и могут быть выполнены на мультиплексорах 500КП174, на адресные входы которых подаются управляющие коды с выходов 51 и 52 блока 28 управления соответственно.

Коммутатор 14 предназначен для подачи информации на вход множителя узла 20 разрядных произведений и может. быть выполнен на элементах И-ИЛИ или, например, на мультиплексорах

500КП174, на адресные входы которых подается управляющий код с выхода 47 блока 28 управления.

Коммутаторы 17 и 15 предназначены для передачи информации на входы 30 первого и второго слагаемых сумматора 22 соответственно и могут быть выполнены на элементах И-ИЛИ или, например, на двухвходовых регистрах

500ТМ173, на синхровходы которых подается уровень логической единицы, а на адресные входы — управляющий код с выхода 47 блока 28 управления, что и на коммутатор 14.

Коммутаторы 18 и 19 предназначены для управления передачей переносов в арифметико †логическ узле 21 и сумматоре 22 соответственно, а также для организации совместной работы, причем они могут быть выполнены на элементах И вЂ И или, например, на двухвходовых регистрах 500ТМ173 аналогично описанным коммутаторая 17 и

15 с подачей на адресные входы уп— равляющих кодов с выходов 54 и 55 блока 28 управления, I

Функционирование коммутаторов 719 приведено в табл ° 1, Причем здесь и в дальнейшем при записи микроопераций применяются следующие сокращения . регистры 1-6 обозначаются Pl-P6 соответственно; коммутаторы 7-19

К7-К19, узлы 20 и 21, сумматор 22, узлы 23-25, вычитатель 26, узел 27 и блок 28 — У20-У28 соответственно; входы 29 — 32 — Bx29-Bõ32 и выходы

33-101 — В33-Blpl а запись вида

У20/В78(0-63)«К9 (0-63) означает, что на выход коммутатора 9 — разряды с 0-го по 63-й — передается информация с выходов 78 узла 20 разрядных произведений с 0-ro по 63-й разряды.

Таблица 1

Выполняекь е микрооперации

Вх29 (0-63) - К7 (0-63)

К l l (0-3) - К7 (0-3), Р1 (О, 59) K7 (4-63)

К l! (0-2) К7 (0-2), P1(0-60) К7(3-63)

У25(0-63) -» К7(0-63)

Р1(0-63) К8(0-63)

P4(0-63) К8(0-63)

P6(0-63) -К8(0-63)

У24 (0-63) - К8 (0-63)

У25(0-63) -К9(0-63)

У20 В 78 (0-63) - К9 (0-63)

У26 В88 (1-60) - К9 (0-59), .

"P" (К9 60-63)

У? 5 (0-63) К10 (0-63)

У20/В79(0-63) К10(0-63)

У26/В87(0-60) К10(0-60)

"0" К10(61-63) 1545215 1Π— Продолжение табл.1 I

О

0

2

О

Kl1

В50

К12

В51

К13

В52

К14

В47

В47 0-2

К15

KI6

853 - 0

В47 0-2

К17

К18

В54 О

К19

В55 0

Каждый из элементов 102,-102„ умножения узла 20 разрядных произведений осуществляет умножение соответ- 45 ствующей тетрады множимого,, поступающей с выходов 60 регистра 2, на тетраду множителя, поступающую с выходов 72 коммутатора 14. В зависимости от управляющего потенциала, поступающего с выхода 48 блока 28 управления на вход режима узла 20, на выходах

78 старших цифр и выходах 79 младших цифр разрядных произведений появляется результат умножения либо в двоичном, либо в двоично-десятичном коде.

Предполагается, что потенциал логической единицы на выходе 48 блока 28 управления обеспечивает работу устУ21 (0-63) К10 (0-63)

У22(60-63)- Kl l (0 — 3)

Вх29(60-63) K11(0-3)

У25(0-63)- К12(0-63)

Р4(0-63) — К12(0-63)

РЗ(0-63) К12(0-63)

Р6(0-63) К 12(0-63)

У25(0;63) КIЗ(0-63)

Р4 (0-63) -К I 3 (0-63)

Р4 (0-59) - K13 (4-63), "О" К13 (0-3)

Р2 (0-59) — К I 3 (1-60), "О" — K I 3 (О, 61-63)

"0" К14 (0-3)

Рl(60-63) К14(0-3)

Рl(61-63) К14(1-3), "0" К14 (О)

У27(0-3)- К14(0-3)

У21(0-63) KI5(0-63)

"0" K15(0-59), К14 (0-3) KI 5 (60-63)

У21(0-63) - Кlб(0-63)

У22(0-63) К 16(0-63)

P6(0-59) — К17(4-63), У23 (0-3) К17 (0-3)

Р6(3-63) К17 (0-60), "О" К17(61-63)

P 5 (0-1 5) - К18 (0-1 5)

У21/В81 () -15) К18 (0-14), "О" К18 (15)

У21/В81 (1-15) - K18(0-14), "1" К18 (15)

У21/В81 (1-15) К19 (0-14), "О" K19(15)

У22/В83(1-15) К19(0-14) э

"О" К19 (15) ройства в десятичной системе счисления, а потенциал логического нуля

его работу в двоичной системе .счисления. Элементы 102 †102 умножения целесообразно реализовать в виде

ППЗУ. В этом случае младшие или старшие цифры разрядных произведений на выходах элементов 102,-102, умножения могут формироваться уже скорректированными на "+6" без каких-либо дополнительных аппаратурных затрат.

Такая коррекция двоично-десятичного кода произведения необходима для формирования в дальнейшем в арифметико-логическом узле 21 и сумматоре 22 десятичного результата, В дальнейшем для определенности принято!

5452!5

30 то, что корректирующая поправка +6" вводится в старшие цифры разрядных произвецений, Поскольку в рассматриваемом варианте приняты разрядность операндов и формат данных такими же, 5 как в ЕС ЗВМ, то узел 20 разрядных произведений может содержать только

15 элементов 102, †1 умножения, и тогда в младшие цифры разрядныХ произведений должна вводиться млад— шая нулевая тетрада, а в старшие цифры разрядных произведений — младшая либо нулевая тетрада при выполнении операций в двоичной арифметике (на управляющем выходе 48 блока 28 управления установлен уровень логического нуля), либо код "б" при выполнении операций в десятичной арифметике (на управляющем выходе 48 блока

28 управления установлен уровень ло,гической единицы).

Арифметико-логический узел 21 предназначен для выполнения арифметических и логических операций над операндами, поступающими íà его входы первого и второго операндов с выходов 70 и 71 коммутаторов 12 и 13 соответственно.

Операции над многоразрядными (64-битными) операндами осуществляются потетрадно на арифметико-логических элементах 103„ †1, причем информация на входы r. реносов элементов 103 -103 поступает с. выходов

76 коммутатора 18, Арифметика-логические элементы 103 — 103, могут

1 быть выполнены, например, на микросхемах 500ИП181, на управляющие входы которых поступает управляющий код с 40 выхода 49 блока 28 управления. В дальнейшем будем считать, что код "9 соответствует формированию результата на выходах узла 21, равного сумме двух операнцов, а код "6" — фор- 45 мированию разности двух операндов при наличии входного переноса в младший разряд, код "0" формирует результат, равный операнду, поступающему иа входы первого операнда, код "С" формирует результат в виде истинного нуля при наличии входного переноса в младший разряд, Кроме этих кодов допускается применение любого другого е кода в соответствии с работой микросхемы 500КЛ181.

При выполнении в устройстве двоичных операций корректоры 104,-104, арифметико-логического узла 21 настраиваются управляющим потенциалом

"0" с выхода 48 блока 28 управления на передачу информации на выходы 80 результата транзитом.

При выполнении десятичных операций управляющим потенциалом "1" на выходе 48 блока 28 управления корректоры 104 †1 настраиваются на ре1 1r, жим коррекции, при этом при наличии на соответствующих выходах 81 переносов арифметико-логических элементов 103,— 1031 уровня логической единицы осущес.вляется коррекция результата на "+6", в противном случае передача информации через корректоры

104,-104, осуществляется транзитом.

Корректоры 104,-104, могут быть выполнены на элементах И, ИЛИ или, например, на одноразрядных двоичных сумматорах 500ИМ180, на первые входы которых поступает информация с выходов арифметико — логических элементов 103, — 103 «, a на вторых входах формируется код коррекции "6" в случае однов ременного поступления уровней логической единицы с выхода 48 блока 28 управления и с выхода переноса соответственно элементов 103Ä—

103„.

Сумматор 22 предназначен для формирования промежуточных и окончательных результатов операций умножения и преобразования, а также для формирования частного при выполнении операции деления, Информация на входы первого и второго слагаемых сумматора 22-поступает с выходов коммутаторов 17 и 15 соответственно. Операция суммирования многоразрядных (64-битных) операндов осуществляется потетрадно на элементах 105 †!05, суммирования, причем информация на входы переносов поступает с выходов коммутатора 19. Злементы суммирования могут быть выполнены на микросхемах 500ИП!81, на управляющие входы которых поступает код "6".

При выполнении в устройстве двоичных операций короекторы 106 †1« сумматора 22 настраиваются управляющим потенциалом "0" с выхода 48 блока

28 управления на передачу информации с выходов элементов 105„-105« суммирования на выходы 82 суммы транзитом.

При выполнении десятичных операций управляющим потенциалом "1" на выходе 48 блока управления корректоры!

14

1545215!

06<-106„ настраиваются на режим коррекции, причем при наличии на соответствующих выходах 83 переносов элементов 105, †1, суммирования уровня логического нуля осуществляется коррекция результата на " — 6", в противном случае передача информации через корректоры 106,-106 осуществляется транзитом, корректоры !06,—

1061 могут быть выполнены на элементах И, ИЛИ, на микросхемах

500ИП181 или, например, на одноразрядных двоичных сумматорах 500ИМ180, на первые входы которых поступает информация с выходов элементов !05„—

1051 суммирования, а на вторых входах формируется код коррекции (вычитание "6" заменяется прибавлением "10 ) в случае поступления уровня логической единицы с выхода 48 блока 28 управления и уровня логического нуля с выходов переносов соответствующих элементов 105,-105 суммирования.

Рассмотрим организацию передачи и сохранения переносов при совместной работе арифметика-логического узла

21 и сумматора 22 (фиг. 3).

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

"1" на выходах 54 и 55 блока 28 управления коммутаторы 18 и 19 соответственно настраивают арифметика-логический узел 21 и сумматор 22 на рабо ту с распространением переносов, т.е, перенос с выхода арифметика-логического элемента 103;, передается через коммутатор 18 (i-й элемент коммутирования) на вход переноса арифметика-логического элемента 103; и т.д.

Аналогично, выходной перенос элемента

105., суммирования через коммутатор

19 (I и элемент коммутирования) передается на вход переноса элемента

105, суммирования, В этом случае осуществляется независимая работа арифметика-логического узла 21 и сумматора 22, При установке управляющего кода "2" на выходе 54 блока 28 управления на вход переноса младшего арифметика-логического элемента 103, подается уровень логической единицы, в остальном же работа арифметика-логического узла

21 аналогична описанной, При установке управляющих кодов

"0" на выходах 54 и 55 блока 28 управления арифметика-логический узел

21 и сумматор 22 настраиваются на выполнение потетрадных операций, В этом случае на входы переносов арифметика-логических элементов 103. ! и 103;„ поступают значения переносов с выходов 63 регистра 5 (i- и (i+I)-x триггеров соответственно), информация в которые была занесена в предыдущем такте или ранее ° Значение выходного переноса арифметикологического элемента 103;„ поступа ет через коммутатор 19 на вход переноса элемента 105. суммирования, ! на вход переноса элемента 105; суямирования значение переноса поступает с выхода переноса арифметикологического элемента 103;, . Значения выходных переносов элементов

105; и 105,, заносятся в i- и (i+I)-в триггеры регистра 5 соответственно и в следующем такте вновь подаются на вход арифметика-логических элементов 103,- и 103;, соответственно, Таким образом, осуществляется сдвиг

25 вправо ыа 4 бита значений переносов, соответствующий сдвигу вправо суммы частичных произведений при выполнении операции умножения.

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

Управление сумматором 107 осуществляется с входов 112 знака множимога и 113 знака множителя, причем наличие уровня логического нуля на входе 112 знака мнажимого (множимое положительно) и/или на входе 113 знака множителя (множитель положителен) блокирует передачу на выходы сумма45 тора тетрады множителя с выходов 72 коммутатора 14 и/или тетрады мнажимого с выходов 91 младших разряцов старшей части регистра 1 соответственно. Триггеры 109 и 110 предназначены для временного хранения значений выходных переносов сумматоров

107 и 108 соответственно или на на-. .чальном этапе формирования корректирующей поправки, знаков сомножителей, причем наличие уровня логичес. кой единицы на выходе 44 блока 28 управления настраивает триггеры 109 и 11 0 на запись выходных переносов сумматоров 107 и 108 соответственно

1545215

25 ветствующее значение смещенного эквивалента

ыходах 85 узла 24 смещенных эквивалентов

l O7

104

00001

00011

00101

00111

О!001

6 4

3 Е 8

2 7 ) О

1 8 6 Л 0

Г 4 2 4 0

9 8 9 6 8 0

5 Г 5 Е l О 0

3 В 9 А С А 0 О и регистр 111 коррекции на запись тетрады корректирующей поправки, в противном случае в триггеры 109 и 110 заносятся знаки сомножителей с входов 112 и 113 соответственно, а в

5 регистр 111 коррекции заносятся нули.

Узел 24 смещенных эквивалентов предназначен для формирования в устройстве смещенных двоичных и двоично- 1О десятичных эквивалентов -весов преобразуемых групп разрядов, Формирование смещенных эквивалентов связано со следующим. Выполнение операции умножения требует сдвига вправо сум5 мы частичных произведений относительно очередного частичного произведения. При выполнении операции преобразования суммирование очередного частичного результата (произведения преобразуемой группы разрядов на со-. ответствующий эквивалент ее веса) с суммой частичных результатов производится без сдвига.

Поэтому для компенсации сдвига вправо на тетраду в каждом такте работы устройства в узле 24 применен способ формирования смещенных эквивалЕнтов, т.е. при считывании из узла 24 каждый последующий эквивалент оказывается сдвинутым на тетраду вправо относительно предыдущего. В табл. 2 приведены адреса и соответствующие им двоичные или двоично-десятичные смещенные эквиваленты, которые записаны в шестнадцатеричном или десятичном кодах соответственно, младшие и старшие незначащие нулевые тетрады пропущены.

Узел 25 нормализации и сдвига 40 (фиг. 5) предназначен для выполнения нормализации и анализа на равенство нулю операндов при выполнении арифметических операций, а также для выполнения операций логического сдвига. Он может иметь структурную органиэацию, аналогичную в известных устройствах. В качестве циклического сдвигателя 120 в нем может быть применен любой из известных однотактных комбинационных сдвигателей, позволяющих производить циклический сдвиг, например, влево, сдвиг вправо обеспечивается подачей с входа 30 кода сдвига устройства на управляющие входы циклического сдвигателя 120 дополнительного кода от числа бит, на которое нужно сдвинуть информацию, Этим условиям удовлетворяет, например, известный циклический сдвигатель, Формирователь 12! кода маски предназначен для выработки корректирующих сигналов, необходимых при выполнении в устройстве логических сдвигов информации.

Он может быть построен в соответствии с известным техническим решением. Дополнительной возможностью этого формирователя должна быть возможность выработки кода истинного нуля, что может быть обеспечено блокировкой его управляющих сигналов °

Формирователь 122 результата предназначен для окончательного формирования результата. Он может быть выполнен на .элементах И, на один вход которых поступает информация с циклического сдвигателя 120, а на второй — соответствующий разряд кода маски с формиоователя, 121 кода маски.

Т а б л и ц а 2

18

1545215

Пр одолже ни е табл. 2 т !

E 4 0 0

6 Е 8 0 0

А 5 1 0 0 0

Е 7 2 А 0 0

1 0 7 А 4 0

0 0 0 0 0 0

A 4

7 4

Е 8

9 1

5 А

0 0

0 в

8 7

D 4

8 4

Г 3

0 0

0 0

0 0

0 00 0

8

6 4

5 1 2

0 9

3 2 7

2 6 2

2 0 9

1 6 7

4 ! 0

0 00 0

6 8

1 4

7 1

7 7

2 1

3 7

0 0

5 2

2 1

7 7

4 1

0 О

2 Ы

8 2 4

0 0 0 0 0 0 0

П р и м е ч а н и е. Значения смещенных эквивалентов, хранимых в узле 24 по адресам от 00000 до 01111, представленные в шестнадцатеричной системе счисления, выдаются в двоичном коде, а зна— чения смещенных эквивалентов, хранимых в узле 24 по адресам от !0000 до 11011, представленные в десятичной системе счисления, выдаются в двоично-десятичном коде.

Нормализатор 123 служит для выработки кода нормализации поступающей информации и признака равенства ее нулю, В качестве нормализатора может быть применен известный нормализатор, Коммутатор 124 предназначен для передачи на управляющий вход циклического сдвигателя 120 кода сдвига, поступающего на вход 30 в прямом коде (для сдвига влево) или в дополнительном коде (для сдвига вправо), или же кода нормализации (двоичной или шестнадцатеричной) в зависимости от уп-

1 равляющего кода на выходе 46 блока

28 управления, Будем считать, что при коде "0" на выходе 46 блока 28 управления узел 25 нормализации и сдвига вырабатывает код истинного нуля.на выходе, при коде "1" и "2" выполняется логический сдвиг информации, поступающей с выходов 66 коммутатора 8, влево и вправо соответственно, а при кодах "3" и "4" выполняется сдвиг влево информации, поступающей с выхо0!О!0

0!О!!

0!100

01101

0!!!0

011!!

10000 !

000! !

10О!! !

0!00 !

010! !

01!0

10111 !!000 !!0О! !

10!0 !!О!!

10"

10"

10 <2 ! 013 !

0"

0 о

23

29

2 f5

2 т

2 2 27

2 ЯО

0 дов 66 коммутатора 8 по коду нормализации шестнадцатеричной и двоичной соответственно °

Вычитатель 26 предназначен для вычитания из значения текущего остатка, полученного на выходах 80 арифме40 тико-логического узла 21 в однорядном коде, значения произведения следующей цифры частного на делитель, подаваемого в двухрядном коде на входы вычитаемого и заема вычитателя 26

45 с выходов 78 и 79 старших и младших цифр соответственно разрядных произведений узла 20. Вычитатель 26 формирует остаток в двухрядном коде в виде разности и заема, которые записы—

50 ваются в конце -такта в регистры 4 и

3 соответственно, причем в следующем такте для приведения нового текущего остатка к однорядному коду требуется выполнить функцию вычитания заема из разности на арифметико †логическ уз55 ле

Вычитатель 26 может быть выполнен на одноразрядных двоичных вычитателях. Кроме этого, вычитатель 26 мож19

1545215 но выполнить, например, на одноразрядных двоичных сумматорах 500ИИ180, но при этом необходимо заменить операцию вычитания на операцию сложения

5 в дополнительных кодах. В этом случае информация на выходы вычитаемого и заема с выходов 78 и 79 старших и мпадших разрядных произведений узла

20 должна подаваться в дополнительном.коде, т.е, информацию необходимо проинвертировать и прибавить единицу в младшие разряды вычитаемого и заема. Добавление единицы в младшие разряды можно выполнить, например, вве— дением единицы в младший разряд текущего остатка в регистр 3 на коммутаторе 9 и введением единицы через вход переноса арифметико-логического узла 21, При применении одноразрядных 20 двоичных сумматоров для приведения нового текущего остатка к однорядному коду требуется выполнить функцию сложения значений заема и разности на арифметико логическом узле 21. 25

В узле 27 цифр частного (фиг. 6) осуществляется деление значения определенного числа старших разрядов двухрядного кода текущего остатка, сформированного на выходах 97 и 98 30 старших разрядов регистров 3 и 4 соответственно, на округленное значение определенного числа старших разрядов делителя, поступающих с выходов 96 старших разрядов регистра 2, В результате этого на выходах 89 узла 27 цифр частного формируется значение . k очередных бит частного, которое ( за исключением случая, когда на выходе 58 переноса в старшую группу 40 разрядов арифметико-логического узла

21 образован сигнал логической единицы) либо равно истинному значению

k бит частного, либо меньше его на единицу младшего разряда с весом 45

2 1"- 1, Узел 27 цифр частного может. быть реализован различными методами и средствами ° На фиг. 6 показан один из наиболее предпочтительных вариантов реализации узла 27, в котором деление усеченных чисел осуществляется умножением значения малоразрядного делимого на значение старших разрядов обратной величины малоразрядного делителя. В этом случае на входы делителя узла 27 подаются k+3=7 старших разрядов делителя с выходов 96 старших разрядов. регистра 2, а на входы делимого подаются k+4=8 старших разрядов двухрядного кода текущего остатка с выходов 97 и 98 старших разрядов регистров 3 и 4 соответственно.

На сумматоре 125 формируется однорядный код 8-ми старших разрядов текущего остатка, который поступает на первый вход умножителя 128. На сумматоре 126 округления производится округление старшей части делителя путем прибавления единицы к младшему разряду старшей части. Значение старшей части округленного делителя поступает на вход формирователя 127 обратной величины, на выходах которого формируется k+2=6 старших разрядов обратной величины делителя (один разряд — слева от запятой, остальные — справа), которые поступают на второй вход умножителя !28, На выходах старших разрядов умножителя 128 формируются при этом значения очередных k=4 двоичных разрядов частного (один разряд — слева от запятой, остальные — справа), которые либо равны истинному значению очередных k=4 двоичных разрядов частного или меньше его на единицу младшего разряда с весом 2 ("- 1 =2

Группа элементов И 129 предназначена для устранения ошибки в определении цифр частного при отбрасывании младших разрядов текущего остатка, Если значения всех старших разрядов равны единицам и значение переноса в группу старших разрядов также равно единице, то истинным значением старших разрядов остатка является нулевая комбинация, однако на выходе сумматора 125 формируется неверный код старших разрядов текущего остатка. В этом случае на выходе элемента

130 И-НЕ формируется сигнал логического нуля, являющийся сигналом блокировки группы элементов И 129, и на выходах 89 узла 27 цифр частного устанавливается нулевая комбинация цифр частного, хотя на выходах умножителя )28 формируется ненулевой код.

Блок 28 управления координирует работу всех узлов и элементов устройства при выполнении всех операций. Предполагается, что условия, которые вырабатываются в текущей микрокоманде, влияют на выбор следую— щей,время считывания следующей микрокоманды не увеличивает время выпол:нения операции в целом. Этим условиям

2) ) 545?») 5 удовлетворяет известный блок управления.

Блок 28 управления (фиг. 7) работает следующим образом, Первый и второй узлы 131 и )32 формирования адреса формируют адреса для первого и второго узлов 133 и 134 памяти микрокоманд соответственно, из которых одновременно считываются две микроко- ) манды и поступают на входы коммута— тора 135. 8 соответствии с выработанными условиями на выходе 56 признака нуля узла 25 нормализации и сдвига и на выходе 57 старшего разряда арифметико-логического узла 21. узел 137 проверки условий вырабаты— вает управляющий код для узлов 131 и 132 формирования адреса и для ком— мутатора 135, который пропускает на входы регистра 136 микрокоманд следующую микрокоманду.

На время выполнения операции в устройстве оказывает влияние время выполнения каждой микрокоманды, по- 25 этому предполагается, что в блоке

28 управления должна быть предусмотрена возможность управления длительностью такта микрокоманщ.

Опишем теперь работу вычислительного устройства (фиг. 1). Выполнение любой операции в устройстве начинается с подачи двух предварительных синхроимпульсов по цепи синхронизации для выбора первой микрокоманды в блоке 28 управления. По первому синхроимпульсу в первый узел 131 формирования адреса заносится начальный адрес выполняемой микропрограммы с адресного входа 32. Исходное состояние регистра 136 микрокоманд настраивает коммутатор 135 на передачу мик.рокоманды с выхода первого узла 133 памяти микрокоманд и по второму синхроимпульсу в регистр 136 микрокоманд заносится начальная микрокоманда, а в первом и втором узлах 131 и 132 формирования адреса формируются адреса следующих микрокоманд.

По окончании микропрограммы регистр 136 микрокоманд переводится в исходное состояние, В дальнейшем управляющие коды, формируемые на выходах 35-55 блока

28 управления, будем записывать в ви- 55 де BN(1), где N=35-55 и определяет обозначение выхода блока 28 управления, а 1 — собственно управляющий код, выработанный "Id соответствующем:выходе N (значения управляющих кодов и соответствующие им микрооперации описаны выше).

Расслютрим выполнение операции умножения, микропрограмма которой приведена на фиг, 8 ° Умножение выполняется с младших разрядов множителя (одновременно обрабатываются 4 бита множителя) со сдвигом суммы частичных произведений вправо, Мантиссы длинных операндов в ЕС ЗВМ имеют 14 тетрад, Предположим, что мантиссы операндов поступают на вход 29 данных устройства нормализованными и выравненными по правой границе.

Для получения правильного результата при выполнении операции умножения регистры 5 и 6 должны быть предварительно обнулены ° Обнуление этих регистров можно совместить с выполнением первой микрокоманды каждой микропрограммы выполнения операции умножения. Для этого первая л икрокоманда должна содержать следующие управляющие коды: 846(О), под воздействием которого формируется нулевая информация на выходах 86 узла 25; 851 (О) и 852 (О), под управлением которых нулевая информация с выходов 86 узла

25 поступает на входы первого и второго операндов узла 21 через коммутаторы 12 и 13 соответственно; 854(1), который поступает в арифметико-логический узел 21 на выполнение функции сложения под управлением кода 849(9) с распространением переноса, одновременно устанавливая входной перенос в младший разряд узла 21 равным нулю;

853(0), который пропускает на входы регистра 6 с выходов 80 результата узла 21 нулевую информацию через ком-. мутатор 16; 847(О) и 855(0), которые позволяют сформировать на выходах 83 переносов сумматора 22 нулевую информацию независимо от информации, поступающей на входы первого слагаемого сумматора 22 с выходов регистра 6, Выполнение каждой микрокоманды (такта) завершается подачей синхроимпульса по синхронизирующей шине устройства (не показана на фиг. 1, 3, 4 и 7), по которол у осуществляется запись во все регистры и триггеры устройс тва.

При выполнении первой микрокоманды умножения на вход ?9 поступает мантисса множимого и под воздействием

15452 1 5 упр авл яющих кодов 8 40 (О) и 8 35 (1 ) записывается в регистр 1.

При выполнении второй микрокоман— ды мантисса множимого поступает из

5 регистра 1 через коммутатор 8 на вход узла 25 нормализации и сдвига п