Файл: Корнейчук В.И. Арифметические устройства ЭЦВМ учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.07.2024

Просмотров: 101

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

4 .4. Jl'jffliiii'' ЧѴіС^І b j (llOJiHillM'il.HUX К о Ш / I /

Как уже стекалось в 2 и 3 главах использование до­ полнительных кодов при выполнении арифметических опера­ ции г/ожет дать в некоторых случаях определенные преиму­ щества. Вследствие отого в ряде ЦШ о т;ицатсльные числа представляются и хранятся в памяти в дополнительных кодах. Рассмотренные ранее алгоритмы деления нетрудно приспосо­ бить для выполнения операции с дополнительными кодами. Лля определенности предположим,что сдвигается остаток. Тогда алгоритм деления будет иметь вид:

1.

По знаку

делимого

и знаку

 

делителя

определить

 

знак 20 частного, в качестве

первого остатка взять

 

делимое.

 

 

 

 

 

2.

Вели

знаки

очередного

остатка

и

делителя

совпадают',

 

то

из

остатка вычесть

делитель,а если знаки остатка

 

и

делителя

разные,то

к остатку

прибавить

делитель.

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

2. Нели знаки остатка и делители соышдамт.то очеред­

ная

п.иігча частного [авиа

І,а если не

совпадает -

то 0.

 

 

 

 

4. Удвоить

остаток.

 

 

 

Ü. Пункты

2-4 повтоу ить / г +

I раз.

 

Рассмотрим

тпчготр . Пусть Х = « - #

Jу —- - —у

тогда у

г г

 

 

Рл

 

РУ

ОСС.ООСОС

 

 

С О .О Ц П

У

Т.СІООО

04.0,00011

 

ПО +у

I I . с т а е

0,11000

ІЛ І о

 

Гі

I I , ] С 1 ІІ

 

 

ОСО,СОШ

 

сд в .

11,01110

 

 

 

 

Г-У

00.1I0CG

 

 

 

 

21.

( С ,(С 1ІС

 

 

Ш ), O il 10

 

сдв,

00,01100

 

 

 

 

Г+У

I I , ОТСОС/

 

 

 

 

31-

ІІ.ІС ІО О

 

 

0(0,11101

 

сдв.

11,01000

 

 

 

 

f- У

00.11000

 

 

 

 

41і

00,00000

 

 

001,11010

 

сдв.

00,00000

 

 

 

 

,+У

П .0 І0 0 0

 

 

- 79 -


ОН ,10101

5Т|

11,01000

(cm.

Ю,іоооо

 

f-У

OO.IIOOO

 

1

 

111,01011

6Тіj:

іі,оіооо

рдв.

10,10000

1

1

 

ко

 

Как видно из примера, результат получился с погрешнос­ тью в I младшего разряда. Аналогичная ситуаціи имеет мес­ то всегда,когда в процессе деления на отрицательный дели­ тель встречается остаток равный нулю. Действительно,сог­ ласно алгоритму при делении нуля на отрицательный дели­ тель 'получим группу І,п то время как в данном случае,

должна формироваться группа 0. Устранить этот

недостаток

можно двумя способами. Если вычисляется щ+ I

цифра после

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

правильный

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

В заключение отметим,что БД,реализующий данный алгоритм, как по структуре,так и по аппаратным затратам и быстродей­ ствию подобен соответствующему БД,рассмотренному в 4.1.

Задача. I . Нарисовать схему БД,работающему в соответствии с рассмотренным алгоритмом.

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

4.5. ПОСЛЕДОВАТЕЛЬНЫЕ БЛОКИ ДЕЛЕНИЯ / I /

Особенности построения вычислительных блоков последо­ вательного типа рассматривались в 2.5 и 3.8. В качестве еще одного примера рассмотрим БД,в котором реализуется алгоритм деления без восстановления остатка /рис.4.5—I/ . Взаимный сдвиг остатка и делителя осуществляется за счет удлинения регистра остатка РХ на один разряд. Сдвиг в ре­ гистре Р2 происходит в конце каждого такта сложения по сигналу /п + 2 /,вырабатываемого счетчиком тактов /Сч.Т/ с периодом Т = /і+ 2. По этому же сигналу в ■соответствии

- 80 -


- @ s —

,. Я

I

_______а , /

t V си

СvT (Т~п+2)

Н

*— (LL

Рис. Ц .5 -{.

- 81 -

( Л і

ліяічім

очередного

остатка

происходит формирование оче­

редной цифры частного 2 (-

. Эта ие даРра^управляет

опера-

очоЦ слодения-вычитания в следующем цикле деления. При

 

 

= I

происходит

вычитание,так как А’/ ^ О . а

при

 

^

I: -

олокрние.так

как

^

<

0. Так как в первом такте

целения всегда происходит вычитание,то в младший разряд Р

пр[ед

началом деления заносится I по сигналу начала опера­

ции /

ПО / .

Эта же I

после П + 1 цикла деления служит для

•! г-рмирования

сигнала

конца операции / КО / .

 

 

 

 

(.'распивая FJi последовательного типа с ід параллельного

типа "о быстродействию,аппаратурным затратам и с!’;ектсв-

і,г-сти можно сделать

вывод,что аппаратурные

затраты• умень­

шаются

не

Солее,чем

на

поря,док,в

то время как

t y

умень­

шается

примерно н п

 

р л э,т.е .

ковсЫ.ицг.ент

эффективности

/иИ/ последователь них

ІД всегда

меньше,чем

40 параллель­

ных ІД.

 

 

 

 

 

 

 

 

 

 

 

Задача.

Построитъ циіровую діьаграѵѵу работы

KJ.показанно­

го

на

ріі('.4.с- І .

 

 

 

 

 

 

 

 

4.6.

дЫСЯіыЧПЫЕ ЬлPrill ііЕЛКШіЯ

& 1.34

 

 

 

 

Методы делеяия десятичных чисел аналогичны

методам

itc/івнля двоичных чисел, однако имеют некоторые особенности. 0>'на из основных особенностей состоит в том, что на один сдвиг приходится несколько слокений-вычитаний. Так ке как и

в двоичной системе очпеления имеются два основных алгоритма пел ная, а именно: целение с восстановлением остатка долсиие без восстановления остатка. При этом сдвигать моыю остаток либо делитель. При делении с восстановлением, остатка вычита­ ние производится до получения отрицательного остатка. После чего остаток восстанавливается и производится сдвиг. Дегко подсчитать, что для реализации данного алгоритма требуется

/ I /

единиц времени. Несколько большего быстродействия позволяет добиться алгоритм, деления без восстановления остатка. Рассмотрим пример.

00,010

 

РХ

 

РУ

НО

00,276

0,337

 

99«663

Я,663

 

 

УУ,аа9

 

 

•• 82 -


00,100

+ 0

СДБ.

 

99,390

 

00,109

 

1

 

00.337

 

 

 

Уа,727

 

00,108

-

I

 

00.337

 

 

 

00,064

 

0j,080

 

 

Сцв.

 

Од,640

 

01,081

+

1

- J

 

«Jü «üUO

 

 

00,303

 

01,ual

+ и

 

9У.663

 

 

 

99,966

 

10,810

+

1

Сдв.

 

9У,660

 

IU 81a

 

00.837

 

 

 

 

 

ГО,УУ7

 

10,818

-

1

 

 

иО.ззУ

 

Сдв.>і

OU.334

 

T

 

 

 

 

 

► ко -* -1

 

 

Г.нотродеКствие данного алгоритма можно оценить вира-

ЖОНИѲМ

1 .

/

j i

_

_ и. \ —. г -

f 2/

 

 

 

 

 

5 1+

Из выражений / I /

и /2 /

следует,что деление без

восстанов-

ления остатка для десятичной системы повышает быстродей­ ствие всего на 15-17,».

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

остатка

необходимо три регистра РХ,РУ и PZ , сумматор

и триггер Т для запоминания знака выполняемой в данном

такте операции. Кроме того,необходимо иметь реверсивный

счетчик для подсчета числа сумиирований-вычитаний.выпол­

ненных в данном такте и Счетчик для подсчета числа тактов.

Первый

счетчик необходим для формирования цифр частного,а

второй

- для фиксации конца операции /КО/. В качестве пер­

вого

счетчика можно использовать последнюю декаду регистра

Р ,а

конец деления формировать по появлению маркерной I

в старшем разряде РЛ . Составши микроалгоритм деления на перечисленных узлах. Пусть сигнал I на выходе триггера Т /т .е . ІТ=І/ означает,что в данном такте выполняется опера­ ция вычитания. Тогда

(НА&)=(НО)(УІТ = i \ * ( + ji )(ІТ ) t 'lZ(-iZi)(öKpy)(BK PX)

(П КРЦ )(Х^0) f 2(X0 = 0 ) f 3f*(+ fgj ) / '(3 КРХХВ0ЬРУ)(Рп)

(flKF>X)(X0™Ö) f 9l 3(i= ri+f) 16fACPX)(ACP2)(+1 T)(L~n+i)tè (XO),

- 83 -


где

/У1Т=І/

- микрооперация /МО/ установки триггера Т

в I;

/+ !,?// -

МО +1 на счетчике формирования і?/ ;

С - переменная,характеризующая количество выполненных

тактов; +1і -

МО увеличения переменной С на I; +ІТ -

МО подачи I на счетный вход триггера Т,

Схема БД,реализующая данный МАД,показана на рис.4.6-1. Конец деления Фиксируется по маркерной единице в стар .чем дополнительном разряде регистра РіГ .Эта единица по сигна­ лу НО в начале деления заносится во второй /считая с млад­

ших/ разряд

Р 2и

после

/ п

+І/-го

 

+1 такта сложений

и

f t

сдвигов

прекращает деление. Младший десятичный раз­

ряд ?Z выполнен в виде реверсивного

счетчика. При выпол­

нении операции +У содержимое счетчика уменьшается на I , а

при операции -У и положительном коде

в РХ / т .е .

положитель­

ном частичном остатке/

увеличивается

на І.При

сдвиге

кода

в РZ

по сигналу ЛС счетчик устанавлипается в ноль. В

ос­

тальном работа БД подобна работе ранее рассмотренных

 

двоичных БД.

 

 

 

 

 

 

 

 

Предположим,что для представления одной десятичной

 

цифры использовано 4 бита.Тогда стоимость данного БД мо­

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

 

 

 

 

С=*/(За,+аг -на3 + a v -has + 2 a s ) n + ( і2 а ,+ 8 а г +

 

+ d c iy + dQ-jr+4/Q.g + 11

+ /6 <Xg + 4 а ? ) .

д у

 

Если учесть, что

П/0 «

0,3 Пг

,то

выражения /З /и /2 /

можно представить

в виде

 

 

 

 

 

С - і 2 ( з а , + а г + а 3 + а ѵ + а х 4-2 а в ) п г + Л ,

 

"t ** Па (о , 3 t c + 1} в 5

5 , 5 1+ .

 

 

Сравнивая эти выражения с соответствующими выражениями

для двоичных БД из 4 I

можно сделать

вывод,что

десятич­

ные ЕД примерно в 1,2 раза

сложнее

и в 1,2 раза / 1+ -

2 te/

менее быстродействующие,чем соответствующие двоичные БД. При повышении быстродействия десятичных ЕД следует прежде всего стремиться к уменьшению числа сложений-вычитаний, так как t с « 5 , 5 t + . Наиболее простым и эффективным таким методом ускорения является использование кратных

- 8 4 -