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.4. Аппаратный метод 1-го порядка для ускорения двоичного деления. Применим идею использования избыточных цифр частного к построению делительного устройства, в котором все суммирования и вычитания, необходимые в ходе деления, выполнялись бы без сквозных переносов. Метод ускорения деления путем запоминания переносов аналогичен методам ускорения умножения, описанным в 4.3.2.

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

Возможное построение устройства иллюстрируется рис. 5-3. В общих чертах оно аналогично схеме рис. 5-1,а, приведенной на стр. 496. Главное отличие состоит в том, что основной сумматор выполнен без сквозных переносов; вместо этого в каждом разряде имеется специальный триггер для запоминания сигнала переноса, поступающего из предыдущего разряда. Все вместе эти триггеры образуют четвертый, вспомогательный, регистр устройства, который на рисунке назван регистром Е. В регистре Е, как и в регистре В, имеются цепи для сдвига влево на 1 разряд; когда по ходу выполнения деления очередной остаток должен удваиваться, то для этого, очевидно, нужно сдвинуть влево одновременно и содержимое регистра В, и содержимое регистра Е.

В старших разрядах регистров В и Е, однако, вместо цепей сдвига влево имеется вспомогательный сумматор. Одновременно с тем, как в младших разрядах регистров В и Е выполняется сдвиг влево, в старших разрядах суммируются цифры В и Е я результат суммирования передается в старшие разряды регистра В со сдвигом влево на 1 разряд. Вспомогательный регистр охватывает 4 разряда регистров В и Е: два разряда слева от запятой и два разряда справа от



запятой, т. е. разряды с весами 2. 1, /а и V4. Результат суммирования, который выдается со сдвигом на 1 разряд влево, попадает соответственно в разряды 3-й (знаковый), 2-й и 1-й слева от запятой и 1-й справа от запятой, т. е. в

К схеме I пения 1

Lxaea преМразобамия тстю

Команды сдбиг А Еледп

Цепи cd6uea влебо но !розряд

Регистр А

Цифры частного

/Цешс0ига Влево на Imp.

Регистр В

Регистр Е

Ы1еписёйает

Регистре

Команда суммиро-

~Шйе /оманда

сдВиг В и Е Вле-

т о осп ом

Команда оВриоВ С

Рис. 5-3. Устройство для выполнения деления без скюзных переносов при суммированиях-вычитаниях.

разряды с весами 4, 2, 1 и Va (о том, почему регистр В должен иметь три разряда слева от запятой, сказано ниже).

Пусть, например, в результате суммирования очередной остаток получился в виде

* 10.0110011110... (цифры поразрядной суммы в регистре В)

* 00.1111000111 .. . (цифры поразрядных переносов в регистре Е)

Звездочками обозначены цифры 3-го разряда слева от запятой, которые до сдвига влево не играют роли. Так как до сдвига влево знаковым является второй разряд слева от запятой, то полученный остаток в действительности отрицателен и по абсолютной величине меньше единицы. Сдвиг



влево в младших разрядах и суммирование со сдвигом в старших разрядах дадут:

Суммирование со сдвигом Сдвиг влево

влево

* 10.01

* 00.11

110.0

10011110... 11000111...

10011110... (регистр В) 11000111... (регистр )

Б результате получим удвоенный очередной остаток; он записан, однако, в несколько иной форме, чем прежде: в старших разрядах значащие цифры имеются только в регистре В, а цифры Е являются нулями. Поскольку во вспомогательном сумматоре сигналы переноса распространяются всего через 3 разряда, суммирование в нем выполняется достаточно быстро и укладывается примерно в то же время, что и выполнение сдвига в младших разрядах.

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

Будем полагать, что для любого разряда частного допустимы цифры -1, О, 1, а делитель нормализован, т. е. Va С 1. В соответствии с общим правилом цифры частного будут выбираться с таким расчетом, чтобы очередной удвоенный остаток Bj+j был заключен в пределах

- 2С lt;Б,Ч1 lt;2С.

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



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