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

книги из ГПНТБ / Дроздов Е.А. Многопрограммные цифровые вычислительные машины

.pdf
Скачиваний:
22
Добавлен:
25.10.2023
Размер:
15.96 Mб
Скачать

Регистры Рг1 и Рг2 в случае перемножения чисел, мантиссы которых имеют по « цифровых разрядов, являются «-разрядными. Знаки сомножителей подаются в БМУ, где с помощью схемы от­ рицания равнозначности в соответствии с общим правилом обес­ печивается образование знака произведения. В связи с этим зна­ ковые разряды регистров Рг1 и Рг2 не рассматриваются. Регистр Рг2 имеет цепи сдвигов вправо, т. е. в сторону младших разрядов; его младший разряд соединен с БМУ цепью передачи кодов. Это обеспечивает в процессе выполнения операции умножения после-

Ввод множимого X

Рис. 8.3. Схема «а» выполнения операции умно­ жения

довательную передачу в БМУ значений цифр множителя tji, по ко­ торым вырабатываются управляющие импульсы УИ (у,) для об­ разования частичных произведений. Сдвиги в регистре Рг2 осуще­ ствляются под действием вырабатываемых в БМУ импульсов сдвига ИСд.

Используемый в рассматриваемой схеме сумматор должен имет « основных цифровых разрядов и два дополнительных. Млад­ ший из дополнительных разрядов используется для округления «-разрядного произведения, а старший — для размещения единицы переноса из «-го основного разряда, которая может образоваться при сложении очередного частичного произведения с накопленной суммой частичных произведений. Для сдвигов сумм частичных про­ изведений в сторону младших разрядов, осуществляемых под дей­ ствием импульсов сдвига ИСд, сумматор имеет цепи сдвигов вправо.

Умножение в схеме рис. 8.3 производится путем последователь­ ных сдвигов кодов в регистре Рг2 и сумматоре и последователь­ ных суммирований кодов, передаваемых через вентили В, с кода­ ми, находящимися в сумматоре. При нервом сдвиге значение младшего разряда множителя передается из регистра Рг2 в схему блока местного управления. Если в младшем разряде множителя

250

содержалась единица, то БМУ вырабатывает сигнал на открыва­ ние вентилей В, через которые в сумматор поступает множимое как первое частичное произведение. Если же в младшем разряде множителя содержался нуль, то сигнал на открывание вентилей не вырабатывается, что соответствует равенству нулю первого ча­ стичного произведения. При втором сдвиге из регистра Рг2 в БМУ передается значение второго разряда множителя, а в сумматоре осуществляется сдвиг первого частичного произведения на один разряд вправо. Затем второе частичное произведение суммируется с первым частичным произведением и т. д.

После осуществления всех сдвигов и суммирований, причем в сумматоре сдвиг производится после каждого суммирования, об­ разуется значение конечного (полного) произведения, имеющего «+1 цифровых разрядов; « — 1 младших разрядов произведения теряются в процессе выполнения операции. Потеря младших раз­ рядов при перемножении чисел, по абсолютной величине меньших единицы, практически не сказывается на точности получения ре­ зультата, так как при каждом сдвиге в сумматоре теряется тот разряд из младших разрядов произведения, который не участвует в последующих суммированиях. Полученное (« +1) -разрядное про­ изведение округляется до значения « старших разрядов (считает­ ся, что машина оперирует с «-разрядными числами). Округление производится так: если в младшем дополнительном разряде со­ держится единица, то к младшему из основных разрядов при­ бавляется единица, если же в младшем дополнительном разряде содержится нуль, то единица не прибавляется. При таком округ­ лении погрешность «-разрядного произведения не превышает поло­ вины единицы его младшего разряда.

Произведение может быть получено и 2«-разрядным, т. е. с со­ хранением всех младших разрядов. Чтобы младшие разряды про­ изведения, выдвигаемые из сумматора при сдвигах, не терялись, их молено передавать в освобождающиеся старшие разряды реги­ стра мнолеителя Рг2. Цепь передачи младших разрядов произве­ дения в регистр мнолсителя показана на рис. 8.3 пунктирной ли­ нией.

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

Недостатком схемы является некоторое услолснение схемы сум­ матора за счет введения цепей сдвигов вправо, а также относи­ тельно большое время выполнения операции умнолсения, если не используются специальные методы для его уменьшения. Совме­ стить такты сдвига и суммирования в обычных сумматорах не

251

удается, поэтому для рассмотренной схемы можно принять, что время умножения

Ту = /I (Ts + 7 сд),

( 8 . 1)

где Тсд— время сдвига кода в сумматоре на один

разряд вправо.

В тех случаях, когда нецелесообразно усложнять схему сумма­ тора за счет введения цепей сдвигов кодов вправо, при выполне­ нии операции умножения реализуется четвертая схема. Эта схема, кроме того, обеспечивает удобства получения сумм парных произ­

ведений, так как коды в сумматоре

не сдвигаются, и некоторое

 

Ввод множителя Y

 

 

А ±

 

 

 

 

Л

Рг Z

(п)

а

 

ИСд

От УУ —

 

 

 

 

 

В УУ -

 

См

(п)

\ (Р)

УИ(уО

 

 

 

в

( п + р )

 

 

ЗнакХ

 

 

ИСд

 

 

 

 

 

Знак Y

РгГ

(п)

(р)

 

П

п п

 

 

Ввод множимого X

 

Рис. 8.4. Схема «г» выполнения операции умножения

уменьшение времени выполнения операции умножения по сравне­ нию с первой схемой. Организация связей в АУ универсального типа при использовании четвертой схемы выполнения операции умножения показана на рис. 8.4.

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

Для выполнения операции умножения по рассматриваемой схе­ ме с необходимой точностью приходится увеличивать по сравне­ нию со схемой рис. 8.3 количество разрядов в составе сумматора, регистра множимого Рг 1, а также количество вентилей. Если эти узлы принять, как в схеме рис. 8.3, «-разрядными, то при каждом сдвиге множимого в процессе выполнения операции последова­ тельно теряются его разряды и образование полного произведения происходит путем сложения «укороченных» частичных произведе-

252

нин. При этом полное произведение получается с большой ошиб­ кой. Сохранение всех разрядов множимого при сдвигах н получе­ ние точного значения произведения обеспечиваются при использо­ вании 2/1-разрядных регистра Рг 1 и сумматора, однако это приво­ дит к значительному увеличению аппаратурного состава АУ. Поскольку на практике обычно требуется получать «-разрядное произведение с ошибкой, не превышающей значения единицы младшего разряда, то оказывается возможным использовать не 2/г-разрядные регистр множимого и сумматор, а (га+р)-разряд­ ные, причем р <С га..

Выполнение операции умножения в схеме рис. 8.4 происходит, как и в схеме рис. 8.3, за счет организации последовательных сдвигов и суммирований. При первом сдвиге множимое сдвигается на один разряд вправо, а множитель — на один разряд влево. В зависимости от значения цифры старшего разряда множителя сдвинутое на один разряд множимое передается или не передается на сумматор как первое частичное произведение. Далее опять сдвигаются множимое и множитель и т. д. После га тактов сдвига и суммирования в сумматоре образуется (п+р) -разрядное произве­ дение, га основных разрядов которого округляются по значению старшего из р дополнительных разрядов. В схеме рис. 8.4 мож­ но совместить такт сдвига с тактом суммирования, что уменьшит время выполнения операции умножения.

Необходимое количество дополнительных разрядов сумматора и регистра множимого определяется в зависимости от того, как производятся округления: после каждого такта суммирования или после завершения всех суммирований, как это рассматривалось в схеме рис. 8.3. Наиболее простые схемы управления получаются при округлении после завершения всех суммирований, поэтому та­ кой метод округлений получил наибольшее распространение. Он применяется, например, в машине «Днепр». При этом значение р рассчитывается по формуле

(8.2)

Сх е мы в ы п о л н е н и я о п е р а ц и и д е л е н и я м а ши н п а р а л л е л ь н о г о д е й с т в и я

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

253

Организация связей между узлами арифметического устрой­ ства при выполнении операции деления по алгоритму без восста­ новления остатка со сдвигами получаемых остатков влево приве­ дена на рис. 8.5. Регистр Рг1 используется для размещения дели­ теля У, регистр Рг2 — для размещения образующихся цифр част­ ного Z, сумматор См — для размещения и сдвигов делимого X и остатков. Вентили группы В) служат для передачи делителя в сумматор прямым кодом; передача осуществляется под действием управляющего импульса УИ[, который вырабатывается тогда, когда на предыдущем шаге деления образована цифра частного Z,-= 0. Через вентили группы В2 делитель передается в сумматор

 

ИСд

Рг г

(п)

 

 

 

От УУ

УИз

Ввод делимого X

 

>

5

tQ ИСд

В УУ

УИг

Знак X -*■

УИ,

Знак Y -*

EJLL

 

I ♦ t

о

См

(п+1) " * 1

тгЗн

В,(п)

1 4

Во(П)

 

 

Т

 

Р г 1

(п)

тт • - К Т

Ввод делителя Y

Рис. 8.5. Схема

обратным кодом, что обеспечивает вычитание делителя из остат­ ка; такая передача осуществляется при действии управляющего импульса УИ2, который вырабатывается тогда, когда на преды­ дущем шаге деления получена цифра частного Zf = 1.

Вентиль В3 служит для непосредственного определения значе­ ний цифр частного. Он подключен к нулевому выходу триггера знакового разряда сумматора ТгЗн. Поэтому при положительной разности В3 открыт, и импульс УИ3 проходит через него, обеспе­ чивая запись в регистр Рг2 единицы, как очередной цифры част­ ного (Zi 1). Если же разность отрицательна, то В3 закрыт и УИ3 не проходит через него, что свидетельствует о равенстве нулю оче­ редной цифры частного (Z, = 0).

Для выполнения операции деления по принятой схеме реги­ стры Рг1 и Рг2 достаточно иметь «-разрядными. Знаки делимого и делителя подаются на отдельную схему определения знака част­ ного, включаемую в состав блока местного управления БМУ; эта схема часто совмещается со схемой определения знака произведе­ ния. В связи с этим знаковые разряды регистров Рг1 и Рг2 здесь не рассматриваются. Регистр Рг2 для перемещения поступающих

254

цифр частного в сторону старших разрядов имеет цепи сдвигов влево.

Сумматор, используемый в рассматриваемой схеме, должен иметь по крайней мере /г + 1 цифровых разрядов. Увеличение раз­ рядности сумматора по сравнению с разрядностью регистров не­ обходимо для того, чтобы при удвоении остатков не терялись их старшие разряды. Удвоение остатков осуществляется за счет их арифметического сдвига на один разряд влево. Знак остатка (раз­ ности) всегда сохраняется в знаковом разряде сумматора, т. е. в ТгЗн. Для правильного образования знака очередного остатка при передаче делителя на сумматор обратным кодом на счетный вход ТгЗн и счетный вход триггера старшего цифрового разряда посы­ лаются кодовые сигналы единицы.

Деление в схеме рис. 8.5, рассчитанной на действия с числами, меньшими единицы, выполняется в таком порядке. Сначала опре­ деляется соотношение величин делимого и делителя путем по­ сылки делителя в сумматор обратным кодом. Если разность отри­ цательна, т. е. делитель больше делимого, деление производится в обычной последовательности. Если разность положительна, то в машинах с фиксированной запятой вырабатывается сигнал <р, по которому может быть осуществлен останов всей машины; в ма­ шинах с плавающей запятой этому случаю отвечает выработка сигнала, по которому после завершения выполнения операции производится нормализация результата.

При отрицательной первой разности, т. е. при первом отрица­ тельном остатке, осуществляется сдвиг в сумматоре на один раз­ ряд влево. После этого в сумматор подается прямой код делителя. По знаку образующегося в сумматоре кода определяется значение цифры старшего разряда частного (в случае машины с фиксиро­ ванной запятой это будет первая после запятой цифра). Получен­ ная цифра записывается в младший разряд регистра Рг2. На этом заканчивается первый шаг собственно деления.

Все последующие шаги по выполнению операции деления про­ изводятся при такой последовательности действий в пределах од­ ного шага:

сдвиг кодов в регистре Рг2 и сумматоре на один разряд

влево;

посылка в зависимости от значения цифры частного, обра­

зованной на предыдущем шаге, делителя в сумматор прямым или обратным кодом;

— определение значения очередной цифры частного путем по­ сылки УИ3 на вентиль В3 для анализа состояния триггера ТгЗн.

После п таких последовательных шагов выполнения операции деления в регистре Рг2 устанавливается значение частного, код старшего разряда которого после выполнения всех сдвигов оказы­ вается в крайнем левом разряде Рг2. Время, необходимое для выполнения собственно операции деления по схеме рис. 8.5, прак­ тически равно времени выполнения операции умножения по схеме рис. 8.3.

255

§ 8.3. Методы ускорения выполнения арифметических операций

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

М е т о д ы у с к о р е н и я в ы п о л н е н и я

о п е р а ц и и с л о ж е н и я

Собственно операция сложения в машинах с фиксированной за­ пятой относится к числу «коротких», т. е. таких, на выполнение которых затрачивается сравнительно мало времени. Это же можно отнести и к машинам с плавающей запятой, если исключить время, затрачиваемое на сдвиги мантиссы одного из слагаемых при вы­ равнивании порядков и сдвиги при нормализации результата. Но операция сложения неоднократно выполняется при умножении и делении чисел, которые относятся к числу «длинных» операций. Поэтому ускорение выполнения операции сложения в конечном итоге приводит и к ускорению выполнения операций умножения и деления.

Ускорение выполнения операции сложения в машинах парал­ лельного действия может быть достигнуто, в первую очередь, за счет использования более быстродействующих сумматоров. Однако с уменьшением времени суммирования возрастает пропорциональ­ но аппаратурный состав соответствующих сумматоров при исполь­ зовании одних и тех иге элементов.

Более простой метод ускорения выполнения операции сложе­ ния заключается в уменьшении времени, необходимого на пере­ дачу кодов чисел, участвующих в рассматриваемой операции. Коды исходных чисел обычно принимаются на триггерные регистры, ко­ торые к началу приема кодов должны быть очищены; последнее увеличивает время передачи кодов, т. е. и время выполнения опе­ рации сложения. Для исключения необходимости очищения реги­ стров перед приемом очередных кодов на входах их триггеров используют системы образования парафазных кодов (так называе­ мые парафазные вентили), как, например, в машинах М-220 и «Днепр».

На рис. 8.6 приведена схема регистра с дополнительными эле­ ментами для образования парафазных кодов. Вводимые коды в

импульсном представлении непосредственно подаются на единичные входы триггеров регистра, а также на вторые входы элементов И, которые вместе с элементами НЕ составляют цепочки образования сигналов, подаваемых на нулевые входы триггеров. При подаче на регистр очередного кода обеспечивается действие стробирующего импульса СтИ на первых входах всех элементов И.

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

Рис. 8.6. Организация парафазных входов в регистре АУ

пульс, но на выходе элемента НЕ сигнал, способный перебросить триггер в состояние 0, не образуется. Если в данном разряде запи­ сывается нуль, то на единичном входе триггера и выходе элемен­ та И импульсы отсутствуют, а на выходе элемента НЕ образуется сигнал, который либо перебрасывает триггер в состояние 0 , либо «подтверждает» это состоящие.

Ме т о д ы у с к о р е н и я в ыпо л не ния

о п е р а ц и и у м н о ж е н и я

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

257

также использование комбинированных аппаратно-логических ме­

тодов.

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

Метод пропуска такта суммирования применим при любой при­ нятой схеме выполнения операции умножения. Сущность его за­ ключается в том, что если очередная выдвигаемая из регистра Рг2 (см. схему рис. 8.3 или 8.4) цифра множителя есть нуль, то сразу же, без задержки на время суммирования 7\.( вырабатывается

очередной импульс сдвига ИСд, обеспечивающий сдвиг множителя и накопленной суммы частичных произведений (для схемы рис. 8.3) или множимого (для схемы рис. 8.4).

Разряды множителя можно считать независимыми друг от дру­ га; каждый из них может содержать с равными вероятностями О или 1. Поэтому среднее количество обязательных тактов суммиро­

п

вания при умножении «-разрядных чисел оказывается равным — •

Учитывая это, получим, что при использовании метода пропуска такта суммирования в первой схеме выполнения операции умно­ жения

(8.3)

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

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

множителя придется

операции типа сложения (при комбина­

ции 00 операция типа сложения, очевидно, не производится). Тогда

258

на один разряд множителя приходится -g- операции типа сло­

жения, и при неизменном времени па сдвиги

Ту = п ( ± Т г + Тея) .

(8.4)

Если же за один такт сдвига множитель и сумма частичных произведений сдвигаются сразу на два разряда, то

r y = - f ( х ^ + ^сд)-

(8-5)

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

7W tt + 1) 7’«-

(8-6>

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

Если расшифровывается пара 00, то вырабатывается сигнал на очередной сдвиг множителя и суммы частичных произведений; суммирование не производится. Если расшифровывается пара 01, то вырабатывается сигнал, обеспечивающий передачу множимого на сумматор, как и в схеме рис. 8.3. Наличие в расшифровывае­ мой паре комбинации 10 свидетельствует о необходимости удвое­ ния множимого при передаче его на сумматор. Такое удвоение достигается обычно за счет использования специальной группы вентилей, коммутирующих триггеры регистра множимого и сум­ матора с постоянным сдвигом на один разряд влево; при расшиф­ ровке пары 10 на вентили этой группы подается соответствующий управляющий сигнал.

Комбинация 11 может быть представлена следующим образом: 11 = 100—-01. Первый член правой части этого равенства 100 пред­ ставляет собой единицу младшего разряда следующей пары и учи­ тывается при ее расшифровке; очевидно, что эта единица должна запоминаться в схеме анализа. Отрицательный член правой части рассматриваемого равенства учитывается путем вычитания множи­ мого из накопленной суммы частичных произведений. Для этого множимое передается на сумматор, например, через вентили об­ ратного кода.

259

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