Файл: Дроздов Е.А. Многопрограммные цифровые вычислительные машины.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.04.2024
Просмотров: 326
Скачиваний: 0
Организация связей между узлами арифметического устрой ства при выполнении операции деления по алгоритму без восста новления остатка со сдвигами получаемых остатков влево приве дена на рис. 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