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

вании она оказалась чрезвычайно удобной и полезной и в ряде других случаев. Если принять, что С - максимально возможное в машине число, то двойное сравнение превращается в простое алгебраическое сравнение чисел А и В; если С - минимально возможное не равное нулю число, то двойное сравнение дает положительный ответ только при точном равенстве Л = В, а во всех остальных случаях - отрицательный ответ; если во все три регистра заслать одно и то же число Л {В = С = Л), то двойное сравнение О Л - - Л lt;С Л I дает отрицательный ответ только при условии Л = О, а во всех других случаях - положительный ответ и т. д. Возможно, что двойное сравнение было бы полезно не только в специализированных, но и в вычислительных машинах общего назначения.

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

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

Сейчас, познакомившись с рядом других, более экзотических, чем деление, операций, уместно поставить вопрос шире: как вообще формируется список операций арифметического устройства? На основе каких критериев та или иная конкретная операция вносится в этот список или исключается из него?

Прежде всего, конечно, список операций должен обладать свойством функциональной полноты.

Пусть имеется некая произвольная функця f (х, х, Хп), где независимые переменные Xi,X2, . . ., Хп и сама функция f принимают значения из множества допустимых чисел, с которыми оперирует машина. В самом общем виде функция / (Xj, лгг, .-. ., Хп) может быть задана таблицей, в левой части которой перечислены все возможные комбинации Ху, х . . ., Хп, а в правой части стоят соответствующие значения /. Если машина оперирует с N разными чис-



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

Условия, при которых достигается функциональная полнота, рассматриваются в работах по -значной логике *). Можно, в частности, показать, что функциональной полнотой обладал бы список всего из двух арифметических операций: сравнение, позволяющее выбрать большее из двух заданных чисел, и счет, т. е. получение для любого заданного числа ближайшего большего (если заданное число есть максимально допустимое, то в результате выполнения операции laquo;счет raquo; должно получаться минимально допустимое число). Эти две операции можно даже заменить одной, состоящей в том, что из двух заданных чисел выбирается большее и дальше находится ближайшее большее от него (с той же оговоркой, что и для операции laquo;счет raquo;); если бы машина оперировала с N целыми неотрицательными числами О, 1, 2, iV - 1, то эта операция записывалась бы в виде

max (Xi, лгг) -- 1 (mod М)

( laquo;штрих Шеффера raquo;).

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

*) См., например, работы Яблонского С. В., (сб. laquo;Труды математического института им. Стеклова raquo;, т. LI.)



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

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

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

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

В некоторых случаях могут быть иными и основные соображения, влияющие на формирование списка операций. Например, Н. Я. Матюхин указывает, что для вычислительной машины, работающей не в вычислительном центре, а в системе автоматического управления, когда быстродействие требуется умеренное, а надежность должна быть очень большая и когда не приходится рассчитьшать на особенно высокую квалификацию обслуживающего персонала, наиболее существенным является упрощение логической структуры машины. С этой целью желательно по возможности сократить список операций, ограничив его, может быть, только сложением, вычитанием и сдвигом вправо на 1 разряд (сдвиг влево заменяется сложением числа самого с собой.



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