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

. Таким образом, дооавление цепей, превращающих регистр А в счетчик (скажем, добавление т полусумматоров),- это единственное усложнение в рассматриваемом устройстве по сравнению с первым вариантом. Однако это усложнение может компенсироваться тем, что цепи сдвига здесь такие, какие необходимы для выполнения деления (см. раздел 5); если бы умножение строилось по первому варианту, то для него нужно было бы предусматривать цепи сдвига вправо в регистрах Л и Б, а для деления - специальные цепи сдвига влево в тех же регистрах.

Преимуществом рассматриваемого варианта является возможность организовать накопление сумм-парных произведений: если перед началом умножения в регистр В поместить какое-нибудь число В, затем сдвинуть его на 1 разряд влево и начать процесс умножения АС, то к концу его получим величину В -\- АС*).

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

4 deg;. Четвертый вариант выполнения умножения иллюстрируется рис. 4-2, г. Как и в третьем варианте, умножение начинается здесь от старших разрядов множителя, но вместо сдвига влево суммы частичных произведений в каждом цикле умножения производится сдвиг вправо множимого.

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

*) Заметим, однако, что в отличие от второго варианта число В здесь может содержать только т разрядов. Если В - это результат предыдущего умножения, то его нужно до начала нового умножения округлить до т разрядов. 06 округлении - см. 4.1.3.



зовать накопление суммы парных произведении. На первый взгляд кажется, что и оборудование требуется такое же: т-разрядный регистр А, (2т - 1)-разрядный регистр С и 2/п-разрядные регистр В и сумматор. Однако во втором варианте лишние т разрядов, скажем, регистра С требовались для того, чтобы сдвигать в них старшие разряды множимого; здесь множимое сдвигается вправо, в сторону младших разрядов. В 4.1.4 мы увидим, что в тех случаях, когда не требуется получения полного 2/п-раз-рядного произведения, по ходу дела можно производить округление множимого; для получения произведения с точностью до т разрядов при этом достаточно иметь всего 3-4 дополнительных разряда (сверх т основных разрядов) в регистрах В и С и в сумматоре. Если это так, то четвертый вариант почти не отличается по количеству оборудования от первого варианта, но сохраняет те преимущества, о которых говорилось выше. Те разряды регистров В и С и сумматора, которые необходимы только для получения полного 2/п-разрядного произведения, на рис. 4-2, г показаны пунктиром.

Заметим, кроме того, что схема сдвига влево, необходимая для осуществления умножения по четвертому варианту, может быть использована при выполнении деления.

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



Если от 2/п-разрядного произведения просто отбросить т младших разрядов, то старшие т разрядов представляли бы произведение с погрешностью от О до почти --п , где п~ -вес младшего разряда (п - основание системы счисления, т ~ количество разрядов).

Г. Наиболее очевидный способ округления состоит в том, чтобы после окончания умножения добавить лишнюю единицу младшего (т-го) разряда к старшей части произведения в том случае, если {т + 1)-й разряд (старший из отбрасьшаемых разрядов) содержит цифру 4 или большую цифру. По существу это тот же метод округления, который постоянно применяется при ручном счете. Он, очевидно, уменьшает абсолютную величину возможной погрешности вдвое - до п~ /2, а математическое ожидание величины погрешности сводит к нулю.

Добавление единицы к старшей части произведения может быть произведено либо через сумматор - если умножение выполнялось по nepBojwy варианту и старшая часть результата находится в В,- либо через счетные цепи регистра А - если умножение выполнялось по третьему варианту. Однако в обоих случаях для округления требуется время, равное примерно одному такту суммирования.

2 deg;. Более простой способ округления состоит в том, что цифра младшего (т-то) разряда старшей части произведения произвольно увеличивается на единицу, если она меньше h, и оставляется неизменной, если больше или равна /2. Например, в десятичной системе вместо цифр О, 1, 2, 3, 4 в младшем разряде нужно было бы ставить соответственно 1, 2, 3, 4, 5, а цифры. 5, 6, 7, 8, 9 не подвергались бы изменениям. В двоичной системе этот метод сводится просто к принудительной установке единицы в младшем разряде ( laquo;О raquo; заменяется на laquo;1 raquo;, цифра laquo;1 raquo; остается неизменной, т. е. всегда получаегся laquo;1 raquo;). Хотя абсолютная величина возможной ошибки при таком округлении не уменьшается

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

Схема округления при использовании второго способа проще, чем для первого способа, а времени тоже требуется



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