
книги из ГПНТБ / Корнейчук В.И. Арифметические устройства ЭЦВМ учеб. пособие
.pdf3.5. УСКОРЕНИЕ УЫПСЬШІШ ЗА СЧЕТ ИСПОЛЬЗОВАНИЯ CJffiKTATaEEK
Сдвигатели используются jуія передачуна сумматор уд военносо, учетверенного или в общем случае увеличенного в 2 1 риз множимого. Рассмотрим на примере первого спо собе умножения наиболее простой случай,когда одвигатель может передавать на сумматор У или 2У. Алгоритм умноже ния поясняется.таблицей на рис.3.5-1,где в столбцах,по- мечі-нннх буквами П, г)-1 и п ~ 2. записаны цифры,хра
нящиеся в триггерах |
, 1'n.t и Тп . 2 регистра FX. Сдвиг |
||
осуществляется всегда |
на два разряда. При этом анализи |
||
ровать |
надо три текущих разряда,так как в противном |
||
случае |
число суммирований будет больше,чем |
на |
разряд. Например,при комбинации цифр 010 или ІЮ в слу чае анализа двух текущих разрядов надо производить только одно действие +• 2У или -2У. Первое действие неоп— тичально во втором,а второе - в первом случае. Микроал горитм умножения по данному способу будет иметь вид
{МАу)~ (но)(гСс)((в^P2)(s = +0) f ( ( s = -y) v f s = - 29) ) f '
t '(ßKPy)((s=+y)v(s-=+29))}rt '(воРРУ)(Рп) i r
f((s= + у) ы(э=-у))}3(а)((5= -2У ) vfs= у 2У)) f*r(co ) i 6
f(pKPZ) i 2(+2 CC)(nC2PX)(f!C2P2)(CC =n T f) f V(P O ) ,
где |
fe i) |
- микрооперация на сдвигателе /С / "сдвиг |
на і |
разрядов |
влево", І = 0,1. |
Схема,реализующая данник микроалгоритм,показана на р>ис, 3.5-2,где КС - комбинационная схема,работа которой опи сывается следующей системой функций
(ß X P i/)= ((s = + y )v fs= + 2y))(H c);
(ßOKPy)=f(rS = -y ) v f s = - 2y ))f* c ) |
’ |
(со) = (fs= + y) v ( 6 = -~</))fн с ) } |
|
( C i) =((S = Р2У) v ( s = - 22))fV c )} |
|
Y / = ( S =~ H) V ( S = ~ 2 у)) < f(4 s = |
vf S= +гУ) ' |
fi=(ßKpy) ѵ (во кр у); S - f â = p ° ) ( yc) /
- 39 -
где |
/НС/ - |
сигнал |
начала |
сложения,а / S = О/ |
и |
|
/ 5 - |
І су / |
- Функции от |
/ІТЛРХ //*Ѵ /РX/ |
/Г&^РХ/ и # |
||
заданные таблицей |
на рис.3.5-1 или картой |
на рис.3.5-3. |
||||
Например ; |
|
|
|
|
|
(s*+o)=(/r„pxX/r„_t PX)fi ѵ[отп рх)(отпчР х)К ■
Аппаратурные затраты на данный БУ будут
С-[З а ., + at + 2a3 + a y ¥-as.+- 2осв) п + а 3[{оуг [^ )] +
+(3a/ -f-3~ct2~aj +3л у +ЗаГ 3 Ѵа€ t- 32 а? 3 3 a s Д
где Ojfn-/J+2a£- стоимость сдвигателя |
на 2 |
позиции. |
||
Время умножения определяется |
из следующих соображений. |
|||
Так как сдвиг |
осуществляется всегда на два разряда, то |
|||
среднее число |
сдвигов равно |
Д —З |
(Э так как сред |
нее число значащих I в преобразованном множителе равно
*- Р - Р Я Л . -
Если наряду со сдвигателем использовать также допол нительные цепи сдвига,тс возможно дальнейшее уменьшение количества сдвигов. Например,если в рассмотренном БУ регистры РХ и Ру снабдить цепями сдвига на три разряда,
то при ^ |
=0 и К=І,2,3,7 и 8 |
или при |
f =І и К=І,2,6, |
|
7 |
и 8 можно сдвиг осуществлять сразу |
на три разряда,а |
||
в |
остальных случаях - на два |
/см.рис.3.5-1/. |
||
Задачи. I. |
Составить мпхроалгоритмы и реализуидие^схе- |
мы БУ при условии,что регистры РХ и РУ снабжены цепя ми сдвига на два и три разряда и.кроме того,имеется сдвигатель на два разряда,реализующий микрооперации /СО/ и /С І/,а умножение выполняется по а/второму, б/третьему, в/ четвертому способам. Оценить аппаратур ные затраты и быстродействие полученных схем.
2. Выполнить действия задачи I при условии,что регистры РХ и РУ имеют цепи сдвига на два разряда.
- 40 -
3.6. УСКОРЕНИЕ УіДНОКЕІ1И>1 ЗА СЧЕТ ПСШЖ-ЗОВАНМ ДОЛОЛПЦТГЛЫШХ СУММАТОРОВ £1.10,33,36]
Рассмотренные в §3.4 и 3.5 аппаратные методы позво ляли уменьшить число сдвигов,в тс время,как число сум мировании оставалось постоянным и равным на раз ряд. Уменьшить число суммирований удается только за счет использования дополнительных сумматоров. Методы использования дополнительных сумматоров весьма разнооб разны. Один из них получил название метода разделения множителя. При этом методе регистр РХ условно разбива
ется на две |
части РХ, и РХ2 |
и умножение на каждую из |
|
них производится независимо. Затем по формуле |
|||
где |
и Х2- |
2 ~ у Х ,+ ! /Х г , |
части множителя,определяет |
соответствуюиіие |
ся результат. Блок-схема БУ,работающего по данному спо
собу показана на рис.3.6-1. |
Для умножения на X/ |
||||
служит PZ и сумматор £ |
,а |
для умножения |
на Х2 Рz ' |
||
и £ |
. Так как умножается |
п |
разрядное |
вдело У на |
|
П/2 ± разрядное число 1/ |
или Х2 |
,то результат содер |
жит 3/г п разрядов. Столько же разрядов долгой иметь регистры Р2 и PZ' и сумматор £ . Схема КУ может быть существенно упрощена,если необходимо вычислять только/? цифр произведения. В этом случае регистр Р2 и сумматору должны иметь только п разрядов,а Р-?'и <Г'по -jr разря дов. В данном БУ могут быть использованы любые рассмот ренные ранее методы ускорения умножения. Однако наибо лее удобными являются умножение на один или два разря да с преобразованием множителя. Дальнейшее повышение производительности возможно осуществить разбивая ре гистр РХ на три,четыре и более частей. При этом,однако, следует помнить,что время умножения в данном БУ опреде ляется наихудшей комбинацией цифр в частях регистра РХ. Вследствие этого вряд ли целесообразно производить раз биение РХ на более,чем две части.
Другая возможная схема введения дополнительного сум матора показана на рис.3.6-2. Здесь У передается на
- 41 -
І 0 ,5 nП Г o.sn ~ r |
cf.fsr) h |
|
* |
, |
I |
L 0,5 s? 1 0.5n _ L |
h |
|
|
|
ем у |
№ '& ») |
R I Z0,5/7 3I |
'QYO I £$У/ N — |
cc |
i t I г! a I ~ZT |
|||
|
ГІ |
|vV,urv-^~ |
КС |
1(п) |
ZZ±IT |
|
||
|
I |
0 5 0 |
T 4 'ф г \ |
|
Г |
P if/n ) |
|
/ PXfn) [ АЛ7 |
L ^ I l U |
|
|
|
Puc. 3.6-1 |
|
Г Г |
f * |
|
I'""- -.1 |
2JI1 |
|^" |
Puc. 5 .6 - 2
trJ-P X |
|
У с'= 0 |
|
||
|
J- |
|
|
С/ t-CZ |
У |
ПлЗпВп-і п |
1*/ |
||||
о |
о |
о |
о |
0 * 0 |
о |
o \o |
о |
/ |
о * у |
о |
|
о |
о |
і |
0 0 + 2 У |
о |
|
о |
о |
( |
У Оу - у |
о |
|
о |
/ |
о |
о ЧУ + О |
о |
|
о |
/ |
о |
/ |
ЧУ* У |
о |
о |
і |
■I |
0 ЧУ+УУ |
о |
|
о |
/ |
і |
/ |
З У - У |
о |
( |
о |
о |
о &у * о |
о |
|
/ |
о о |
/ |
&У+У |
о |
|
/ |
о |
/ |
о 8У+ВУ |
0 |
|
( |
о |
/ |
/ |
-Ч У -У |
і |
/ |
1 |
0 |
о |
-ЧУ* о |
/ |
Т |
/ |
о |
/ |
-У У *У |
( |
t |
/ |
і |
о |
О - В У |
f |
L. Г |
т |
1 |
О - і/ . |
f |
г а ? |
іч |
С/ *С2 |
|
О *У |
о |
0 + 2У |
о |
УУ - У |
о |
ЧУ* о |
о |
УУ+У |
о |
УУ*ВУ |
0 |
З У -У |
о |
sy+ o |
о |
ЗУ*У |
о |
sy * в у |
о |
-Ч У -у |
/ |
- ѵ у * о |
/ |
-Ч У *У |
1 |
О -ВУ |
( |
О - У |
7 |
о * о |
1 |
fitc.Sb-V. |
Г ~ р у |
1 |
- 42 -
два сдвигателя /С/,которые осуществляют сдвиг У на нужное число позиций. Кода со сдаитателйй суммируются
на Ег ,а на сумматоре |
Е, происходит окончательное |
формирование частичного |
произведения. Использование |
такой схемы оправдывается только при умножении однов ременно на 4 и более разрядов,так как при умножении, например,на три разряда число значащих I в очередной тройке разрядов множителя редко равно двум. Поэтому
сумматор |
- ,как правило,не |
будет использоваться |
|
и,следовательно,добиться того,чтобы число |
суммирова |
||
ний было намного меньше,чем |
на разряд |
не удается, |
а именно такое число суммировании дает преобразование множителя. Один из возможных алгоритмов умножения на четыре разряда иллюстрируется таблицей на рис.3.6-3 на примере первого способа умножения,где буквами п,n - f Р-2 и р-3 обозначены цифры,зафиксированные в четы
рех младших разрядах регистра РХ. Сдвигатель С/ осущест вляет сдвиг на 2 или 3 разряда,а сдвигатель С, на О
или I |
разряд,т.е. С |
может выдавать коды 0, ± 4У или |
- 8У, |
а С2 - 0 , t У |
или ± 2У. В каждом такте умноже |
ния сдвиг осуществляется одновременно на четыре раз ряда. С помощью рассмотренных ранее методов нетрудно определить время
Если при умножении на четыре разряда анализировать пять очередных цифр,то это позволяет несколько умень шить время умножения
Некоторые аппаратные методы ускорения умножения направлены не на уменьшение числа суммирований,а на уменьшение времени самого суммирования. Это возможно осуществить благодаря многотактности операции умножения Как известно,время t*r суммирования равно
. |
t z = t , + t z - n , |
где. Lf |
- время установления сигналов суммы, а |
время прохождения единицы переноса через один разряд
- 43 -
сунатори.
Ксли ге разорпать пени скиозііоголпереноса,то врем/і суммирования будет определяться только величиной '^<е- t^rr. При.этом результат будет представляться поразрядной суммой я. поразрядными переносами.
Например,при суммировании чисел ІООСІПОІСІІС СІК.ОІІ001І01
результат будет иметь вид:
Схемаг:U пкласііоіі |
|
п |
tecоспа отсю |
3.6-4,на |
|
|
,реализующая эту возможность, показана на рис. |
котором ІМУ и РХ условно не показаны. Особен ностями схемы являются наличие двух регистров результата /регистра суммы PZZ и регистра переносов PZ П / и разрыв цепи сквозного переноса в сумматоре. В регистре Р?<Г накапливается поразрядная сумма частичных произве
дений,а в регистре Р<ГП - |
переносы. При этом регистр |
||||
Р2П |
соединен |
с |
сумматором |
со сдвигом,т.е. |
с -ый раз |
ряд |
сумматора |
|
соединен с |
t -км разрядом PZII,а /-іді |
|
разряд Р?П - |
с |
(-1 разрядом сумматора. После оконча |
|||
ния умножения производят |
суммирование кодов,записанных |
вР?£ и Р£П, на сумматоре с замкнутой цепью сквозного переноса. Вследствие этого,формируется окончательный результат умножения в виде одного слова.
Внекоторых сверхбыстродействующих ЦВМ рассмотренный метод применяется в сочетании с другими аппаратными и логическими способами ускорения умножения. Так,например,
вмашине "Стретч" умножение производится одновременно на 12 разрядов /рис.3.6-5/. Очередные 12 разрядов раз биваются на 4 группы /Г / по три разряда. Каждая тройка разрядов управляет своим сдвигателем С. Коды со сдвигателей,являющиеся результатом умножения соответствующей группы разрядов на У,поступают на четыре сумматора с разорванными цепями переносов. На эти же сумматоры в каждом такте умножения поступают коды с регистров сум мы Р?£и переноса В?П. В последнем такте коды с Р2Ѵ£
-44 -
- 45 -
и РЯИ поступают па £ f о замкнутой день» меченосов, где окончательно Формируется результат, Использование такого ЁУ позволило выполнять умножение за время,примерно рав
ное времен» выполнения |
операции суммирования / |
- 0,8, |
а f « 1,4 мксек дри |
/г -48/, |
|
В заключение рассмотрим аппаратные методы ускорения
. второго порядка. Все они основаны на использовании КУ типа комбинационной схемы, Функционирование таких схем
может быть описано следующими выражениями. |
Пусть |
|||
X = О, Х/ XpXjXy |
и У = О, У, Уг У3 Уу . Тогда |
Е = ХУ мож |
||
но представить в виде |
суммы |
|
|
|
2 |
Я # |
f ^ Я # ? ’7*" ^ |
Я # |
+ 2 Sjcy!/y |
2~х3^ г |
% £ + *~ 6* ф + 2 |
X j? y |
|
ЛУ г + Я х г р +2~% yY
Я ъ р Ъ ' Ъ к + л ' к я |
____________ _________- |
/ г - % + 2 ~ % + л~ % |
% 4- z~ fj?â, |
Умножение У^-У,- осуществляется с помощью схем совпаде ний, а суммирование - с помощью трехвходовых суммато ров; Схема БУ,работающая по данному принципу.показана на рис.3,6-6. Стоимость и быстродействие БУ равны соот ветственно
|
С =/й г |
/ a f ) r>Z+fY a'/ |
|
Ог |
o Y - О у ) п , |
|||
|
t y - £ + £ |
j |
+ |
+ |
t y ~ f n t 3 ) |
|||
где |
-время,необходимое для: выдачи кода с регистра |
|||||||
/ |
1 = 1/; |
прохождения сигнала через |
схему совпадения |
|||||
/ |
L -2/ ; |
прохожгзния сигнала |
через |
одноразрядный сумматор |
||||
/ |
і =2/; |
приема кода на регистр /С |
= 4/. |
КУ по схеме на рис. 3.6-6 обладает высоким быстродей ствием, однако требует значительных аппаратурных затрат. Задачи. I . Оценить быстродействие БУ,показанного на рис.
3.6- 1 при условии,что сдвиг в регистрах PXf ,PX^,Pj |
и |
R? / происходят одновременно и на одно и то же число |
раз |
рядов, а умножение производится с пропуском тактов сумми рования с нулем а/на непреобразованный множитель, б/на преобразованный множитель.
2.Оценить быстродействие и стоимость БУ на рис.3.6-2 при условии,что умножение производится одновременно на пять разрядов.
3.То же что и #в задаче 2 ,но для БУ на рис.3.6-5 при условии,что умножение производится на 12 разрядов.
4.Посчитать погрешность,возникающую в схеме на рис.
3.6- 1 при умножении с младших разрядов.
3,7. УШОРКНИЕ ЧИСЕЛ 1і дшсліжмьних КОХАХ /1 .7 /
В главе 2 было показано,что операция алгебраического сложения наиболее просто выполняется при представлении чисел в дополнительных кодах. При этом не только упро щается суммирующий блок,но и несколько повышается быстродействие за счет отсутствия схемы определения, знака фактически выполняемой операции. Вследствие этого в ряде ЦВМ отрицательные числа представляются и хранятся в памяти в дополнительных кодах. При этом возникают трудности в выполнении операции умножения и деления. Эти трудности связаны с тем,что при представлении чисел в дополнительных кодах цифра в знаковом разряде имеет неестественный вес,а именно:-/-/. Например,число
в дополнительном коде имеет вид I ,ОШ = 1 -М -О / - /^ +
+fg |
Je = ~ 7б ’ Из-за этого |
в общем случае умножение |
дополнительных кодов С * h |
и С р д чисел X и У не да |
ют дополнительного кода |
результата,т.е. |
C x J g • [ f f ] g |
ф Ы - р г . |
Устранить этот недостаток можно либо путем придания цифре знакового разряда естественного веса /І/,либо путем изменения алгоритма умножения таким образом,чтобы
псевдопроизведение |
[ х J g • |
g |
было равно произ |
ведению С * '? ! * ' |
Это можно осуществить,например, |
путем коррекции псевдопроизведения в последнем шаге
- 47 -
\ -4
умножения. Однако,из-за того,что умножение на знаковый разряд /т .е . коррекция/ осуществляется не так как умно жение па ]іазряди''.;/.ант1)со^Дпособ умножения с коррекцией не нашел, широкого распространения. Поэтому остановимся на первом методе. Придать знаковому разряду естественный вес можно,например,путем преобразования цифр множителя с помощью формулы
Действительно |
|
. |
|
. |
|
|
+ |
|
Чх 'Г х |
о)-І- І |
(x z ~х ')+ |
f -q(x3- хг ) + „ . ^ |
7 (xh~xn-,)+jFfo- xh)= |
||||
- l ^ o + z |
x >'+ у --сгѴ ... |
|
|
■ |
|
При этом цифры |
принадлежат множеству |
{ 1,0, TJ . При |
|||
~ 0 такт сложения пропускается,при Х/ = 1 производит |
|||||
ся прибавление множимого,а при Х/ = Т - |
вычитание. |
||||
Так как умножение производится и на знаковый разряд,то |
|||||
число тактов умножения равно П + f |
,но для того,чтобы |
||||
произведение заняло нужную позицию сдвиг в последнем |
|||||
такте не производится. В преобразовании |
с -ой цифры |
||||
множителя участвует і -оя |
и 1+ / - |
ая цифры. Поэтому |
|||
в определении знака действия,производимого в данном |
|||||
такте,должны участвовать |
две очередные |
цифры множителя. |
|||
Для этого при умножении с младших разрядов регистр РХ |
|||||
должен иметь на один разряд больше. Рассмотрим пример. |
|||||
Пусть |
|
|
|
|
_ |
- £ |
= -<?,№ /; [Х ]д = //< ? //= <2 TtOt у |
||||
/ = - f i t |
[ y ] 3 =l M O } C x ^ X f r T 6 '- 0' 0 ,m m |
Тогда цифровая диаграмма при умножении по первому спосо бу будет иметь вид
РХ |
РУ |
рг |
рг ' |
сс |
ІДОІІО |
1,0010 |
OQOOOO |
оосо |
ссо |
І1І0ІІ |
-У |
00,1110 |
сооо |
001 |
сдв. |
00,0111 |
оосо |
|
|
ІШ ОІ |
+ 0 |
00,0111 |
0000 |
010 |
сдв. |
00,0011 |
1000 |
|
|
|
+ У |
11,0101 |
1000 |
он |
- 48 -