www.chms.ru - вывоз мусора в Балашихе 

Динамо-машины  Обратные коды 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 [ 96 ] 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189

в последовательном устройстве рис. 3-1, б регистры В и С - последовательного типа. Каждый из них может предствлять собой обычный регистр из цифровых элементов с цепями сдвига вправо и, возможно, с цепями для параллельного приема чисел. Но это могут быть и, скажем, линии задержки на т -\- I разрядов каждая с последовательным вводом и выводом чисел. Цепи ввода и вывода чисел как и детали устройства регистров на рис. 3-1, б не показаны. Зато устройство остальной части схемы сложения-вычитания изображено здесь более подробно, чем на рис. 3-1, а, потому, что выполнение элементарных операций в последовательных устройствах мы почти не рассматривали раньше.

Вентили (элементы laquo;и raquo;) laquo;и-1 raquo; - laquo;и-6 raquo; управляются командами от схемы управления. На входы этих вентилей цифра за цифрой поступают числа из регистров (оба одновременно). В регистрах числа расположены так, что на их выходах появляются сначала алгебраические знаки, затем младшие разряды чисел, затем следующие разряды в порядке возрастания весов.

В первом такте, когда из регистров поступают алгебраические знаки чисел, схема управления открывает вентили laquo;и1 raquo; и laquo;и2 raquo;. Знаки поступают в схему управления, где производится их расшифровка. В зависимости от ее результатов в следующем такте на вход регистра В через элемент laquo;или-1 raquo; подается либо тот же знак, который был выдвинут из В, либо противоположный ему знак, через элемент laquo;или-2 raquo; на вход е сумматора подается или не подается единица, а из двух вентилей на входе b сумматора открывается laquo;и4 raquo; или laquo;и5 raquo;. Этот вентиль будет открыт в течение всех т тактов, когда из регистра В поступают основные разряды числа. Одновременно на выходе регистра С открыт вентиль laquo;иЗ raquo;. Таким образом, абсолютная величина С \ и прямой или обратный код абсолютной величины В \ цифра за цифрой поступают на входы одноразрядного сумматора 2, который вместе с линией задержки на 1 такт для сигнала переноса образует последовательный сумматор. С выхода сумматора цифры суммы возвращаются на вход регистра В.

В тот момент, когда через сумматор проходят последние (старшие) разряды слагаемых, схема управления открывает



вентиль laquo;и6 raquo; и получает через него сигнал переноса Е. Если при выполнении вычитания оказывается, что Е = I, то дальше из регистра В имеющееся там число снова пропускается через вентиль laquo;и5 raquo; (т. е. обратным кодом) на сумматор. Выходные клапаны регистраС при этом закрыты, так что на вход с поступают нули. В момент прохождения через сумматор младшего разряда обратного кода В на вход е от схемы управления снова поступает сигнал 6=- Таким образом, на выходе сумматора появляется дополнение от предыдущего результата (с противоположным знаком). Число с выхода сумматора вновь возвращается в регистр В.

Как видим, окончательный результат сложения-вьии-тания образуется в регистре В либо в конце первого периода числа (т. е. за m -Ь 1 тактов), либо в конце второго периода числа (т. е. всего за 2 (т + 1) тактов). Поскольку взятие дополнения от результата первого суммирования требуется лишь в /з случаев сложения-вычитания, среднее время выполнения операции в последовательном варианте оказывается равным */з периода числа, т. е. */з {т -\-) тактов (периодов цифр).

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

Несколько примеров выполнения сложения-вычитания по описанному методу имеется в конце следующего подраздела.

3.1.2. Другие методы выполнения сложения-вычитания Б Прямых кодах. Описываемые ниже методы позволяют получить некоторый выигрыш во времени по сравнению с основным методом. Они удобны для применения в параллельных устройствах.

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



двоичных переносов от процесса формирования цифр суммы. После того как числа, которые должны суммироваться, установлены в регистрах В и С, происходит установление сигналов двоичного переноса по всем разрядам. Однако для образования цифр суммы и передачи их в регистр В требуется отдельная команда от схемы управления; пока этой команды нет, содержимое регистров В и С не изменяется. Такое положение часто имеет место при использовании комбинационных сумматоров, а также, например, в сумматоре промежуточного типа рис. 2-49 (стр. 260).

Если сумматор удовлетворяет указанному условию, то сложение и вычитание можно выполнять следующим образом (второй метод).

Вначале - так же как в основном методе (см. стр. 291) -производится сравнение знаков чисел В и С (п. (а)); если оказывается, что далее должно выполняться сложение, то обычным образом производится суммирование (п. (в)). Если оказывается, что должно производиться вычитание, то выполняем п. (б) основного метода - обращение кода В, а далее поступаем несколько иначе:

(в) образовать сигналы двоичного переноса по всем разрядам, послав при этом от схемы управления единицу на вход переноса младшего разряда;

(г) если в п. (в) не был получен сигнал переноса из старшего двоичного разряда, то вновь обратить код В, одновременно изменив и его знак, и одновременно обратить код С; затем снова образовать сигналы двоичного переноса по всем разрядам, послав при этом от схемы управления единицу на вход переноса младшего разряда;

(д) закончить выполнение суммирования: сформировать во всех разрядах цифры суммы.

Как видим, отличие от основного алгоритма здесь имеется только в выполнении вьиитания. Произведя наугад обращение кода В, мы в п. (в) прежде всего проверяем, действительно ли С gt; В; для этого, очевидно, нет нужды производить полное вычитание, но достаточно только образовать сигналы двоичного переноса. Если оказалось, что на самом деле С lt;: В, т. е. нужно было обращать код IС , а не код В , то в п. (г) восстанавливается снова прямой



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 [ 96 ] 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189