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

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

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

Добавлен: 24.12.2021

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

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

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

Операционные устройства с плавающей запятой  3 8 1

нимум должно обеспечивать выполнение четырех арифметических действий: сло-

жения, вычитания, умножения и деления.

После принятия стандарта IEEE 754 негласным требованием ко всем ВМ явля-

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

Напомним основные положения записи чисел в стандарте IEEE 754. Мантис-

сы чисел

 М

 представляются в нормализованном виде, при этом действует прием

скрытого разряда, когда старшая цифра мантиссы, всегда равная единице, в запи-
си числа отсутствует, то есть в поле мантиссы старшей является вторая старшая

цифра нормализованной мантиссы.

В отличие от общепринятого условия нормализации S - /

М/ <

 1, в стандарте

IEEE 754 используется условие 1 - /

М/ <

 2.

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

величину смешения, которое в стандарте IEEE 754 для одинарного формата равно

127, а для двойного — 1023.

С учетом перечисленных особенностей арифметическую операцию над числа-

ми в формате с плавающей запятой можно записать в виде:

где( - нормализованные мантиссы операндов и результата;

смещенные порядки операндов и результата;

 0 —

 знак арифметической операции.

При всех различиях в выполнении разных арифметических операций подгото-

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

имеет смысл рассмотреть отдельно.

Подготовительный этап

Первой особенностью операционных устройств для чисел с плавающей запятой

является то, что в них операции над тремя составляющими чисел с ПЗ (знаками,
мантиссами и порядками операндов) выполняются раздельно: блоком обработки
знаков (БОЗ), блоком обработки порядков (БОП) и блоком обработки мантисс
(БОМ). Для хранения операндов и результата в ОПУ предусмотрены соответству-

ющие регистры. Хотя эти регистры могут быть физически реализованы в виде еди-

ных устройств, каждый из них логично рассматривать как совокупность трех ре-
гистров: знака, порядка и мантиссы. Таким образом, на этапе загрузки операндов
в регистры ОПУ осуществляется «распаковка» чисел с ПЗ, их разбиение на три
составляющие. В ходе такой распаковки в старшем разряде регистра мантиссы вос-

станавливается единица, которая в записи числа отсутствовала (была скрыта).

На предварительном этапе может быть также выполнена проверка на равен-

ство нулю одного или обоих операндов (в стандарте IEEE 754 для представления

нулевого значения используется такая запись числа, в которой нулю равны все
разряды порядка). Это позволяет исключить ненужные операции. Так, в операци-

ях умножения и деления, если нулю равны множитель, множимое или делимое,

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


background image

3 8 2 Глава 7. Операционные устройства вычислительных машин

Заключительный этап

Действия на завершающем этапе выполнения любой арифметической операции

идентичны и сводятся к выявлению нулевого значения мантиссы (потери значи-
мости мантиссы), нормализации мантиссы, выявлению отрицательного перепол-
нения порядка, "упаковке" составляющих результата.

Нулевое значение мантиссы может получиться в результате операции, напри-

мер при сложении или вычитании мантисс. Второй причиной может стать сдвиг
мантиссы вправо для устранения переполнения. В обоих случаях имеет место си-

туация

 потери значимости мантиссы,

 и результат операции принимается равным

нулю. Для стандарта IEЕЕ 754 это означает, что все цифры порядка результата
необходимо обнулить, а также то, что нормализацию мантиссы результата произ--
водить не нужно.

Нормализация мантиссы результата сводится к последовательному ее сдвигу

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

 потери зна-

чимости порядка.

В завершение мантисса результата округляется и, если это предусмотрено фор-

матом ПЗ, из нее удаляется скрытый разряд.

В последней фазе осуществляется "упаковка" всех составляющих результата

(знака, порядка и мантиссы), после чего сформированный результат заносится
в выходной регистр ОПУ.

Сложение и вычитание

В арифметике с плавающей запятой сложение и вычитание — более сложные опе-

рации, чем умножение и деление. Обусловлено это необходимостью выравнива-
ния порядков операндов. Алгоритм сложения и вычитания включает в себя следу-
ющие основные фазы:

1. Подготовительный этап.

2. Определение операнда, имеющего меньший порядок, и сдвиг его мантиссы впра-

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

3. Приравнивание порядка результата большему из порядков операндов.
4. Сложение или вычитание мантисс и определение знака результата.
5. Проверку на переполнение.
6. Заключительный этап.

Операции предшествует вышеописанный подготовительный этап, в ходе кото-

рого операнды «распаковываются» и помещаются в регистры ОПУ,

Сложение и вычитание выполняются идентично, но в случае вычитания необ-

ходимо изменить знак второго операнда на противоположный. Далее производит-

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


background image

Операционные устройства с плавающей запятой  3 8 3

В следующей фазе осуществляется такое преобразование одного из исходных

чисел, чтобы порядки обоих операндов стали равны. Для пояснения рассмотрим
пример сложения десятичных чисел с ПЗ:

Очевидно, что непосредственное сложение мантисс недопустимо, поскольку

цифры мантисс, имеющие одинаковый вес, должны располагаться в эквивалент-
ных позициях. Так, цифра 4 во втором числе должна суммироваться с цифрой 3 в
первом. Этого можно добиться, если записать второе число так, чтобы порядки
обоих чисел были равны:

Выравнивания порядков можно достичь сдвигом мантиссы меньшего из чисел

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

при этом теряются младшие разряды мантиссы. Таким образом, выравнивание

порядков операндов реализуется путем сдвига мантиссы меньшего из чисел на один
разряд вправо с одновременным увеличением порядка этого числа на единицу.

Действия повторяются до совпадения порядков. Если в процессе сдвига мантисса

обращается в 0, в качестве результата операции берется другой операнд.

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

знаках мантисс может привести к переполнению. В последнем случае мантисса

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

на единицу. Это, в свою очередь, чревато переполнением поля порядка. Тогда опе-

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

Далее выполняется описанный выше заключительный этап.

В отличие от целочисленной арифметики, в операциях с ПЗ сложение и вычи-

тание производятся приближенно, так как при выравнивании порядков происхо-
дит потеря младших разрядов одного из слагаемых. В этом случае погрешность

всегда отрицательна и может доходить до единицы младшего разряда.

Умножение

На начальном этапе умножения чисел с ПЗ производится проверка на равенство

нулю одного из сомножителей. Если один из операндов равен нулю, в качестве
результата выдается 0, представленный в данном формате чисел с ПЗ. Следую-
щий шаг — сложение порядков. Если в рассматриваемом формате используется
смещенный порядок, то в полученной сумме будет содержаться удвоенное смеше-
ние, поэтому из нее необходимо вычесть величину смещения. Результатом дей-
ствий с порядками может стать как переполнение порядка, так и потеря значимости.

В обоих случаях выполнение операции прекращается и выдается соответствую-

щее сообщение (возникает прерывание).

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

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

же, как для чисел с фиксированной запятой. При размещении произведения ман-

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


background image

3 8 4 Глава 7. Операционные устройства вычислительных машин

лыми числами, а правильными дробями. Хотя результат умножения мантисс име-

ет удвоенную по сравнению с операндами длину, он округляется до длины поля
мантиссы.

На последнем Шаге производится нормализация и компоновка результата, ана-

логично тому, как это имеет место при сложении и вычитании. Отметим, что при
нормализации результата возможно переполнение порядка.

Деление

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

альная кодовая комбинация). Когда нулю равно делимое, результат также прини-

мается равным нулю.

Далее выполняется вычитание порядка делителя из порядка делимого, что при-

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

Следующий шаг — деление мантисс, за которым идут нормализация, округле-

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

Реализация логических операций

Помимо арифметических действий ОПУ любой вычислительной машины пред-
полагает выполнение основных логических операций и сдвигов. Чаще всего такие

операции реализуются дополнительными схемами, входящими в состав целочис-
ленных ОПУ.

К базовым логическим операциям относятся: логическое отрицание (НЕ), ло-

гическое сложение (ИЛИ) и логическое умножение (И). Этот набор, как правило,

дополняют операцией сложения по модулю 2 (исключающее ИЛИ).

Рис. 7.55. Структура операционного блока для выполнения логических операций


background image

Контрольные вопросы  3 8 5

Булева переменная в ВМ представляется одним битом, однако на практике ло-

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

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

ременная, никакие переносы между разрядами не формируются. Операционный

блок (ОПБ) для выполнения логических операций обеспечивает реализацию всех
перечисленных логических операций. Возможная структура подобного ОПБ по-
казана на рис. 7.55.

Выбор нужной операции осуществляется с помощью двухразрядного управля-

ющего кода

 L

 (/

1

/

0

). С учетом управляющего кода выходная функция Z может быть

описана выражением:

Контрольные вопросы

1. Охарактеризуйте состав операционных устройств, входящих в АЛУ. Из каких

соображений и каким образом он может изменяться?

2. Поясните понятие "операционные устройства с жесткой структурой"-. В чем

заключается жесткость их структуры? Каковы их достоинства и недостатки?

3. Чем обусловлено название операционных устройств с магистральной структу-

рой? Сравните магистральные структуры с жесткими структурами, выделяя
достоинства, недостатки и область применения.

4. Дайте развернутую характеристику классификации операционных устройств

с магистральной структурой. Поясните достоинства и недостатки «минималь-

ного» и «максимального» вариантов.

5. Поясните функциональный состав параллельного операционного блока магис-

трального ОПУ. Каким образом можно минимизировать количество внешних

связей этого блока? Ответ сопроводите конкретным примером.

6. Чем обусловлена Специфика целочисленного сложения и вычитания? Какую

роль играет в них дополнительный код? К чему бы привел отказ от дополни-
тельного кода? Ответ поясните на примерах. Как выявляется переполнение
в этих операциях?

7. Сформулируйте достоинства, недостатки и область применения четырех вари-

антов целочисленного «традиционного» умножения. Как учитываются знаки
сомножителей?

8. Охарактеризуйте суть двух групп логических методов ускорения умножения.
9. Попарно сравните алгоритм Бута, модифицированный алгоритм Бута, алгоритм

Лемана.

10. Разработайте алгоритм умножения с обработкой за шаг трех разрядов множи-

теля.

11. Поясните суть аппаратных методов ускорения умножения, выделив три воз-

можных подхода.