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

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

Дело в том, что описанное устройство по идее должно быть связано с внешними устройствами машины. Предположим, например, что-на изображение абсолютной величины двоичного порядка отводится 5 двоичных разрядов; максимальный по абсолютной величине двоичный порядок равен при этом 31, а максимальный десятичный порядок - десяти (потому что 10 2). Считая, что сдвиг и коррекция занимают по одному такту, найдем, что для преобразования порядков требуется максимум 2 X 31 -f 10 = 72 такта (если .бы в десятичном регистре не было цепей сдвига на 4 двоичных разряда и вместо сдвига на 4 разряда нужно было бы выполнять 4 сдвига на 1 разряд, то количество тактов оказалось бы равным 2 X 31 --4 X 10 = 102). Крометого, 2 т тактов требуется на преобразование мантисс; если, например, количество двоичных разрядов в мантиссе т равно 32, то 2т = 64, и общее количество тактов на преобразование числа равно 72 --64 = 136. При тактовой частоте, скажем, 200к?г{ (длительность такта 5 мксек) преобразование одного числа займет меньше 700 мксек. При использовании обычных внешних устройств это время меньше, чем, к примеру, время прохождения 1 ряда отверстий на перфоленте через фо- тоэлектрическое входное устройство, или меньше, чем время прохождения пустого сектора на барабане цифро-печатаю-щего выходного устройства (синхропринта). Если учесть, что десятичный регистр все равно потребовался бы в схеме внешних устройств, то количество дополнительного оборудования, необходимого для преобразования чисел из одной системы счисления в другую с приемлемой скоростью, оказывается не весьма значительным.

Пользуясь аналогичными приемами, можно осуществить преобразование чисел не в специальном устройстве, а в виде особой операции арифметического устройства - наряду с умножением, делением и другими операциями. Если, например, арифметическое устройство построено в соответствии с рис. 4-2,а (стр. 350), а для выполнения деления в нем предусмотрены некоторые дополнительные цепи



в соответствии со схемой рис. 5-1, а (стр. 494), то при реализации преобразования чисел регистр А удобно использовать в качестве двоичного регистра, а регистр В - в качестве десятичного регистра (ср. с рис. 5-7). Необходимые цепи сдвига в этих регистрах уже имеются. Разбив регистр В на тетрады, можно в соответствующих разрядах регистра С установить комбинации ООП (тройки); тогда при небольшом усложнении схемы регистр С вместе с сумматором можно будет использовать в качестве цепей коррекции для регистра В. Длительность вьшолнения преобразования числа с фиксированной запятой получится при этом равной длительности умножения или деления, либо, возможно, несколько меньше (за счет того, что такт коррекции может быть короче, чем такт суммирования или сравнения-вычитания, так как при выполнении коррекции двоичные переносы распространяются в сумматоре только через 4 разряда). Некоторое неудобство по сравнению со специальным уст laquo; ройством состоит в том, что регистры А и В содержат одинаковое количество двоичных разрядов, из-за чего ухудшается точность преобразования.

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

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

1011000110101101,

а извлекатель задан в виде

1001111011000100,



то результат извлечения необходимых разрядов получился бы

1--1000-10---1--,

а после сборки этих цифр окончательный результат имел бы вид

1100010100000000.

в арифметическом устройстве, построенном в соответствии с рис. 4-2, а на стр. 350 (дополненном, однако, цепями сдвига вправо в регистре С), эта операция выполнялась бы следующим образом. Исходное число помещается в регистр В, извлекатель - в регистр С; регистр А первоначально гасится (устанавливается в положение laquo;О raquo;). Затем в регистрах В и С одновременно выполняются сдвиги вправо; каждый раз, когда в младшем разряде регистра С оказывается единица, одновременно выполняется также сдвиг вправо в регистре А, причем младшая цифра из В передвигается в старший разряд регистра Л. После m тактов, где т - количество двоичных разрядов в исходных числах, в регистре А окажется, очевидно, результат laquo;логического умножения со сборкой raquo;.

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

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

Смысл операции laquo;двойное сравнение) состоит в следующем. В качестве исходных в арифметическое устройство посылаются 3 числа: А, В и С; выполняется проверка, удовлетворяются ли одновременно оба неравенства:

0 lt;Л-В lt;С,

и в зависимости от этого вычисления направляются по одному или другому пути.

По первоначальному замыслу эта операция предназначалась для выяснения того, входит ли число Л в заданный интервал [В, С). Однако уже при пробном программиро-



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