Файл: Корнейчук В.И. Арифметические устройства ЭЦВМ учеб. пособие.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 -