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

Поскольку мы считаем, что вес самого старшего разряда равен /2, а разряд с весом 1 и старшие разряды отсутствуют, то счет фактически ведется по модулю 1. Найдя дополнение от \В\ до единицы, т. е. величину 1 - Б , можно затем при помощи суммирования получить величину

+ (1 - IБI), которая по модулю 1 равна разности

в\.

В процессе вьшолнения суммирования попутно выясняется, действительно ли абсолютная величина С больше Б1. Если \С\ gt;\В\, то С + (1-Б) = 1 - IБ I 1, и при выполнении суммирования получается перенос из старшего разряда (с весом /2) в несуществующий разряд слева от него (свесом 1); если С- lt;Б, то 1--С - Б lt;1, и такого переноса нет. В последнем случае вместо разности] СI - Б нужно было на самом деле искать разность Б - С . Для получения правильного результата можно вычислить дополнение от величины I СI - IБ I до единицы:

1-(С1-1Б1)1Б-С (mod 1).

Дополнительный код некоторой величины, как говорилось в 1.4.2, вообще находится в два приема: отыскание обратного кода этой величины и добавление единицы младшего разряда. Первая часть (отыскание обратного кода) - это операция поразрядная; что же касается добавления единицы младшего разряда, то, например, в параллельных устройствах на него нужно отводить время, достаточное для распространения сигналов переноса вдоль цепочки разрядов.

В действительности, однако, при отыскании дополнительного кода от величины Б в начале операции добавление единицы младшего разряда можно совместить с последующим суммированием \С\ -f (1 - Б ). Для этого в параллельном сумматоре нужно при выполнении суммирования послать единицу на вход переноса самого младшего разряда - как бы перенесенную из несуществующего разряда справа от него; в последовательном сумматоре то же выполняется посылкой единицы на вход переноса в первом такте (в момент суммирования младших разрядов). Именно с такой целью на рис. 2-1 и 2-2, иллюстрирующих построение последовательного и параллельного сумматоров.



показана возможность ввода единицы от схемы управления на вход переноса.

При отыскании дополнительного кода от величины С -

IБ , если это потребуется в конце операции, придется

полностью отводить время суммирования на добавление единицы.

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

Первый метод алгебраического сло-ж е н и я-в ычитаниявпрямыхкодах(Б + С):

(а) сравнить знаки чисел; если знаки различны, то вместо сложения выполнять вычитание, а а вместо вычитания - сложение; если знаки одинаковы, то сложение остается сложением, а вьмитание - вычитанием;

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

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

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

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

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

В п. (б) мы действуем, так сказать, наудачу. Хотя заранее неизвестно, какое из чисел больше по абсолютной величине, мы поступаем так, будто С gt;= Б . Выполняя обращение кода В, мы тем самым подготавливаем выполнение вычитания I С I - Б , а алгебраический знак будущего



результата устанавливаем противоположным знаку исходного числа В. Если в действительности окажется, что С lt; lt;\В\, то необходимые исправления будут внесены в пп. (т) и (д).

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

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

В п. (г) и (д), как говорилось, исправляется результат вычитания в том случае, когда в действительности абсолютная величина С \ меньше В \.--

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



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