Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Корнейчук В.И. Арифметические устройства ЭЦВМ учеб. пособие

.pdf
Скачиваний:
11
Добавлен:
23.10.2023
Размер:
4.91 Mб
Скачать

4.Ш0Ю1 ДЛЯ ЯВЛЕНИЯ ЧИСЕЛ

4.1ОСНОВНЫЕ МЕТОДЫ РЕАЛИЗАЦИИ ДЕЛЕНИЯ ЧИСЕЛ В ПРЯМЫХ

КОДАХ

Ш Л 2 6 ]

 

Операция деления чисел в программах встречается до­

вольно

редко /

= 0,02/, однако реализация ее по

подпрограмме потребовало бы значительных затрат време­ ни. Поэтому в большинстве современных ЦВМ эта операция реализуется схемно.т.е. имеется специальный блок,осу­ ществляющий деление чисел. Известно два основных алго­ ритма выполнения деления чисел,а именно:деление с вос­ становлением и без восстанопления остатка. Реализация как первого,так и второго алгоритма требует примерно одинаковых аппаратурных затрат,однако при делении по первому алгоритму требуется больше операций сложения и вычитания. Поэтому в ЦВМ используется,как правило,деле­

ние

без восстановления остатка. При этом знаковые раз­

ряды и цифры мантисс

обрабатываются отдельно. Знак ре­

зультата определяется путем суммирования по модулю 2

цифр,записанных в знаковых разрядах мантисс. Как из­

вестно, алгоритм деления чисел без

восстановления остат­

ка сводится к выполнению следующих действий.

 

1.

Вычесть из делимого X делитель У. Если результат

/?0 $ О ,то старшая цифра 2 0

 

частного,относящаяся

к разряду

целых,равна І,а

если

Ro ^ 0

-то

нулю. Полу­

ченная разность является первым остатком.

 

 

2.

Удвоить остаток.

 

 

 

 

 

 

 

3.

Если R j.< 0 ,то добавить,а

если

-Z О

,то

вычесть

делитель. Если вновь

полученный остаток Я£+/

,то

очередная цифра частного

= /

, а

если Щ+f

 

то

2 ;+ ,= о.

 

 

 

 

 

 

 

4.

Повторить пункты 2 и 3

/гараз.

 

 

 

 

При реализации данного алгоритма может

оказаться,что

2# = 1 .

Это означает переполнение разрядной сетки

или нарушение нормализации /для машины с плавающей за­ пятой/. Если делитель был нормализован,то деление мож­ но продолжать,так как результат деления будет верным,

- 59 -

но будет находиться в ироделил /■£%<:2 . Ксли не де­ ятель ненормализован.то деление должно бить прекращено, так как возможна потеря старших разрядов остатка и, вследствие этого,результат будет ошибочным. Здесь и да­ лее предполагается, что -у- <-'/ . Пункт второй данного алгоритма можно заменить пунктом "Уменьшить и два раза делитель У". Наличие двух интерпретаций второго пункта дает два основных варианта построении о.чоков деления /БД/. В БД, построенном но первому способу.осуществля­ ется сдвиг влево остатка при неподвижном делителе. 13 БД,построенном но второму способу.остаток неподвижен,а взаимны;, сдвиг остатка і; делителя огущеетшшотен за счет сдвига последнего вправо. іСак в первом,так и во втором случае БД, должен содержать регистры РХ,РУ и РЛ и сумматор. Так как производится вычитание делителя У из делимого 21,то РХ и РУ должны быть соединены с сум­ матором 2" ,а выходы Z" должны быть подсоединены ко входам РХ. Для формирования сигнала конца операции /КО/ необходим счетчик сдвигов /СС/. Составим микроал­ горитм деления /:.:АД/ чисел на указанных узлах

[НЯЛ)= (ЯО)(ГСС) і 3( ВКРЛ)[Хо) t '(ВОКРУ)(Рп)(Хо) ( г1'

(ВК'РУ)іУпКРХ)(21-=\)(+!І)(л ср ф сРХ ){1 =л +і)Г *(к о)}

где с -переменная.характеризующая состояние счетчика сдвигов,а / + / с / - микрооперация увеличения па I пере­ менной L .

Структура БД,реализующего данный микроалгоритм, по­ казана на рис.4.1-1, Для формирования сигнала /КО/ ис­ пользован счетчик сдвигов /СС/ е периодом Т =/?■/■/.

Однако в данном случае,в силу того,что регистр РЯ перед началом деления гасится,конец операции можно

формировать с помощью Р2?

. Для этого регистр ГЛ

снабжается дополнительным

п + 2

-м разрядом и перед

началом деления /например,по сигналу НО/ в младший

разряд РЛ записывается I .

После n + f сдвигов рты I

попадает в дополнительный

П+2

разряд,выход которо-

- 60 -

- 61 -

го управляет формированием сигнала /КО/ /см. пунктир на рис.4.1-1/. Рассмотрим цифрову* диаграмму работа БД

на примере деления чисел У = у

= 0,11000 и X =

=.0,01111, при

этом

?

~~у' ~

~в~ = 0,10100.

Р2

 

 

РХ

РУ

00,00000

 

 

00,01111

+ У .,ІІ000

 

НО

-

 

-У,,01000

00. (.0001

 

ІІ.0І000

 

 

 

 

тт.тпттт

 

00,00010*

сдв.

 

11,01110

 

 

+У

 

00.11000

 

/

 

 

00,00110

 

сдв.

 

00,01100

 

00,00101

 

 

 

 

II.0IGC0

 

/

сдв.

 

■11,10100

 

00,01010

 

11,01000

 

 

+ У

 

00.11000

 

00,10101*^

 

 

00,00000

 

сдв.

 

00,000(00

 

 

 

ІІ.0І000

 

01,01010

сдв.

 

10,10000

 

 

+ У

ОО.ІІСОО

 

/

сдв.

10,10000

 

10,10100

 

X_____________

КО

 

 

 

Из цифровой диаграглмы видно,что после четвертого вы­ читания в регистре РХ образовался код нуля. После чего все последующие цифры Z t- частного равны нулю.т.е. в дальнейшем необходимо производить только сдвиги, в то время как операции вычитания можно опустить. Если цифры частного с равной вероятностью могут принимать значения

О и І,то

пропуск такта вычитания' позволит сократить '

время деления в среднем не более чем на величину 2

/см .3 ,1 /.

В общем же случае быстродействие и стоимость

ҢЦ будет

tg = ( п + t ) ( t c + t + ) ,

C=(3ct,+a.z +a.3+ач +as.-f-2a8)n + /V a / +2аг +2a v 4-2^ + ■b 3a6 -xj + */ctg).

- 62 -

Рассмотр и теперь второй способ построении БД,при котором остаток неподвижен /рис.4.1-2/. Отличие данного БД от ранее рассмотренного состоит только в том,что все регистры будут сдвиговыми,а регистры РХ,РХ*сумматор бу­ дут содержать удвоенное число разрядов. При этом сдвиг осуществляется только в регистрах РУ и Р£ . Микроалгоритм / іаА/ работы данного ІД аналогичен МА работы БД, построенного по первому способу. Так как результат вы­ читания /остаток/ неподвижен,то можно совмещать опера­ цию вычитания со сдвигом. Операцию сдвига в РZ можно осуществлять только после образования знака результата, т .е . после окончания процесса формирования сигнала А /рис.4.1-2/. Вследствие этого сдвиг можно осуществлять по сигналу /ІЖРХ/ и совмещение операций поэтому будет не полным. По так как ооично на сдвиг и прием кода тре­ буется примерно одно и то же время,то длительность од­

ного такта деления

будет равна oit^ <

/ t e }

где о(—

коэффициент близкий к І,т .е .

 

 

< t y ~ (п +

+~ £ c j.

Аппаратурные затраты на построения данного БД можно значительно сократить,если длины РХ,РУ и £ сократить до П -f-fc разрядов,где Ar определяется из условия

А1 + €оуг

так как именно такое количество разрядов необходимо для того,чтобы погрешность от отбрасывания младших разрядов остатка и деления не превысила половины младшего разря­

да

результата. Так как при

2 3 ^ п ^

3 9

К = 6,

то

 

.

 

 

 

С=(3а.,+аг +as + a v ta r t3 a ^ n tp a ,

6

7a9

 

Сравнивая первый и второй ЬД по стоимости и быстродейст­ вию можно сделать вывод,что по стоимости второй вариант уступает первому на 10 - Щі,‘ ä по быстродействию на 15- -25% превосходит его. Следовательно,по коэффициенту эф­ фективности первый и второй ГД примерно равноценны,что является причиной их примерно одинакового распростране­ ния на практике.

- 63 -

В заключении отметим,что в БД с фиксированной запя­ той должна быть предусмотрена возможность фиксации пе­ реполнения Q разрядной сетки. Осуществить это возмож­ но путем формирования совпадения \ 0 с сигналом первого такта деления,который можно получить дешифрируя нулевое состояние СС или состояние В = 00...01 регистра РZ /рис.4.1-2/.

Задачи. I . Составить микроалгоритм деления с обнаруже­ нием переполнения разрядной сетки.

2.Нарисовать цифровую диаграмму для втооого варианта

ЬД.

3.Разработать БД с фиксацией’ переполнения разрядной сетки.

- 64 -

4 .2 . ЛОГИЧЕСКИЕ СПОСОБЫ УСКОРЕНИЯ ДЕЛЕНИЯ /1,8,25,27/

Методы ускорения деления по аналогии с ускорением умножения делятся на аппаратные,логические и комбиниро­ ванные. Хотя реализации операции деления уделяется зна­ чительно меньше времени чем,например,операции умножения, известно достаточно большое количество способов ускоре­ ния деления. Из известных логических методов наиболь­ шее распространение получили два рассмотренные ниже способа. Первый, из них применим в случае использования комбинационного .сумматора. Идея метода состоит в том, что если результат очередного -вычитания отрицательный, то вместо приема кода на регистр РХ остатка осуществ­ ляется сдвиг,а очередной цифре частного приписывают значение 0. Структура БД,построенного на основе дан­ ного алгоритма,показана на рис.4.2-1,где А - выход знакового разряда сумматора. Из рис.4.2-1 видно,что данный метод,во-первых,позволяет упростить суммирую­ щий блок за счет устранения цепей выдачи кода с ре­ гистра РУ и,во-вторых,в случае применения первого ■ метода деления - несколько повнсить быстродействие. Действительно,если предположи?,«,что Он I в частном появляется с равной вероятностью, то

=(п+<)(-г tc + ß t + ) <ft1+t)(£c + £+)*

где Ы

+

-коэфтициент близкий к I, а

 

Второй метод может быть использован

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

00 ...0 или I I . . . I . Рассмотрим сначала случай получения

- 65 -

групп нулей. Группа из рп -I нуля в частном может воз­ никнутъ,например,когда в по старшее разрядах очеред­ ного положительного остатка будут нули. Действительно,

если.

00... О, /... t т о

ди

Rj >О

 

/?. =

и

1

 

т

 

 

R

 

L

Для получения

сдвигаем

и вычитаем из него

 

 

~У <

2 т ■г-у<

/л- /

2 >

т .е . при

т

> /

и

нормализованном делителе у

Далее

Ъ + 1 * о

? /

 

 

 

 

 

 

 

 

 

Ъ+г = г Ъ + /* У = г гъ

 

 

= 2 %

- J

т .е . при

т

> 2.

 

 

 

 

 

 

R i , 2 < 0

У

 

=

 

В t + m - 1

такте

получим

 

 

 

' l + m - f

 

т ~/

 

 

 

 

+ т ~ / = о .

 

 

 

 

 

 

В следующем такте

получим

 

 

 

Ъ + т = 2 ' ”Ъ - у < / - і = £ >

 

т .е . сделать

какой-то вывод о Z/ / т в данном случае

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

^p/r, е

^ О

имеют структуру?/. г .100...0.

очередные цифры

частного

При зтом для вычисления

достаточно сдвинуть*_/

на т разрядов влево и

вычесть У.

Аналогично может быть

получена группа из т - /

единицы. Действительно,пусть очередной остаток имеет вид

Ri = І І . Д І І . . . І 0 . , . ,т .е . - ^ / п < ^ < 0 ^ г ^ =О.

Тогда

/”

/ •

/

R i+ f = 2 R ( + y > - 2 z !* + t >

т .е . при /77>/

и нормализованном делителе У получаем

+f

>67

L-f-f = 1.

 

Далее

 

 

 

- 6 6 -

т .е . при

т

>2

получаем

 

h

F і+ г > О и ? i+ z ~ ;

 

i +m

- f

такте получаем

 

F U m - t= 2 rn~ff y + p > ~ І + Т =0 и ^i+ m -r = /

Ь

і + т

такте

 

 

 

 

 

*i+ m =2 m X ,+ ? > - /+ ! > = - Z t

т .е . сделать

вывод

в общем случае не представ­

ляется возможным. Таким образом

при

 

-

~2т <

< О

иметь вид^-,,011.. .1 2-і+/г>.

очередные цифры частного будут

При этом для вычисления R i+ m

достаточно сдвинуть Я/

на

т

разрядов

и прибавить У.

Рассмотренные случаи не исчерпывают всех возможных ситуаций получения групп из одинаковых цифр частного. Действительно,как видно из приведенных выше выкладок, группа единиц может возникнуть,когда очередной остаток > 0 и близок по величине к делителю. Этот же вывод можно сделать на основании следующих зависимостей.

Так как <?■ = z / . , = .. = г.-

= Л

то

’l-t-m

 

 

 

ъ + т -г = 2 т-'7?г 2 т -гц -

.. . - 2 у

 

 

К і+ т = г т Я і - г

2

О-

Из последнего неравенства с л езет,что

 

 

 

 

2 го - f

 

Но так как в любом случае

 

 

ТО

* < / * < • / - * * o '17- / '

 

 

т.е. у

~ Р(-

,что и требовалось

показать.

Данный случай может быть сведен к предыдущему путем

замены остатка

остатком.

 

 

т.е . вместо сдвига осуществляется вычитание-.

-67 -

Действительно

/?/ ~ У ^ ^

 

 

11

І^і I ^

2 т~*

т

старших

т .е,

остаток Судет отрицательный' и в его

разрядах будут находиться единицы. При стом

вычис­

ления R i+ /77

достаточно сдвинуть Р/

на т раз­

рядов влево и прибавить У. Действительно = 2 Р {- - у = 2 R / + У ,

.= 2 Ъ + , у у г . ?* £ + ¥ . >.

R i+ m - * * W . / 2 Л ^ что и требовалось доказать. .

■Аналогично можно показать,что группа нулей может возникнуть при отрицательном и близком к делителю остат­ ке. Путем замены Р(- остатком Р /= Р, 7у данный случай может быть сведен к случаю положительного остат­

ка. При этом для

вычисления остатка

достаточно

сдвинуть Р- на

/77

разрядов влево

и вычесть У.

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

ковых цифр /например,

двумя/ будут вычисляться обычным

способом /т .е .

не ускоренно/.

 

 

Таким наименьшим количеством анализируемых цифр

/Р/

является три,так как

надо просматривать joia знаковых

разряда и, по крайней мере,один разряд мантиссы,т.е.

 

Л

-

(ОТо Р ф т ' PX)(OTt р х )

,

 

 

Л( =(<т0 р ф т 0'р х ) ( іг ,р х ) ,

 

где

Т0 и Т '

-

соответственно триггеры

первого

и второ­

го

знаковых разрядов регистра РХ; Т/ -

триггер

старше­

го разряда регистра мантиссы; к0 и Af

- признаки,фор­

- 68 -

Соседние файлы в папке книги из ГПНТБ