К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003) (1114649), страница 103
Текст из файла (страница 103)
Операции с плавающей запятой Для аппаратной реализации операций с плавающей запятой требуются очень сложные схемы. Существует также программный способ реализации. Но в любом случае компьютер должен уметь преобразовывать входные и выходные данные из пользовательского десятичного формата в компьютерный двоичный и наоборот. В большинстве процессоров общего назначения операции с плавающей запятой реализованы аппаратно и доступны на уровне машинных команд.
Пример реализации операций с плавающей запятой приведен на рис. 6.26. Зто блок-схема операций сложения и вычитания в формате, использовавшемся при создании рис. 6.24, а. Согласно правилу сложения и вычитания, приведенному в разделе 6.7.2, первым шагом является сравнение порядков, производимое с целью определить, насколько следует сдвинуть мантиссу числа с меньшим порядком. Значение счетчика сдвига л определяется 8-разрядной схемой вычитателя (левый верхний угол рисунка).
Разность Е'„— Е в, то есть значение л, направляется на вход устройства сдвига. Если л больше количества значащих разрядов операнда, результатом операции будет больший операнд (если не учитывать разряды защиты, участвующие в округлении). Этот случай мы не обсуждаем. Знак разности, полученной вследствие сравнения порядков, определяет, какая из мантисс подлежит сдвигу. Поэтому на первом шаге знак подается на вход схемы 3%'АР (правый верхний угол рисунка). Если знак равен О, это означает, что Е'д > Е в, и мантиссы Мд и Мв проходят через схему ЯЖАР без изменений.
В результате Мэ направляется в блок сдвига, где она сдвигается вправо на л разрядов. Вторая мантисса, Мю направляется непосредственно на сумматор/вычитатель мантисс. Если же знак разности равен 1, то Е'А < Ев и перед отправкой в блок сдвига блок БЕАР поменяет мантиссы местами. Шаг 2 выполняется двухвходовым мультиплексором. На основе знака разности, полученного при сравнении порядков на шаге 1, порядок результата, Е; определяется как Е~, если ЕА > Ез, или как Ев, если Е'„< Ев. Для выполнения шага 3 используется главный компонент схемы, сумматор,~вычитатель мантисс, изображенный в средней части рисунка.
Логическая схема управления определяет, какую операцию производить с мантиссами — сложение или вычитание. Решение зависит от знака операнда (5э и 5в) и операции (сложе. ние или вычитание), которая должна быть выполнена по отношению к операндам. Этот же блок определяет знак результата, 5л. Например, если А отрицательное число (5э - 1),  — положительное (5в = О) и выполняется операция А — В, то мантиссы складываются и результат также будет отрицательным (5л - 1). Когда А и В положительные, при выполнении операции А — В осуществляется вычитание мантисс.
Знак результата, 5ю в этом случае зависит от операции вычитания мантисс. Например, если порядок Е'„> Е'в, значит, разность Мл — (сдвинутая Мз) положительна, следовательно, и результат положительный. Если же Е'э > Е'д, положительной будет разность Мв — (сдвинутая Мд), а результат операции получит отрицательный знак. Этот пример демонстрирует, что знак результата сравнения порядков тоже должен подаваться на вход схемы управления. Когда Е'д — Е'з, при вычитании мантисс знак результата определяется знаком на выходе сумматора/вычитателя мантисс. Теперь читатель может самостоятельно составить полную таблицу истинности схемы управления.
6.7. Обработка чисел с плавающей запятой 441 ( А:Е,,ЕмМ11 32-разрядные операнды ~нлвЕзшз~ Е„ Ее Мг Мз 8-разрядный вычитатель 5%'АР Знак сл слв и !Е„Е~! Сложение/ вычитание Сложение/ вычитание Комбинационная схема управления Знак Ел Ел -и — Модуль М Мультиплексор Нормализация и округление Я-разрядный вычитатель Е Х ьт ~ 32-разрядный Я Ел результат Я - А е В Рис. 6.2В. устройство сложения/еычитания чисел с плавающей запятой На четвертом шаге сложения/вычитания выполняется нормализация результата третьего шага, то есть мантиссы М. Количество ведущих нулей в М определяет число разрядов, Х, на которое нужно сдвинуть М. Нормализованная таким образом мантисса результата усекается до 24 разрядов, вследствие чего получаем Детектор ведуших нулей Устройство сдвига на л разрядов вправо Устройство сложения/вычитания мантисс Мантисса числа с меньшим порядком Е Мантисса числа с большим порядком Е 442 Глава 6.
АриФметика окончательное значение мантиссы — Мя. Для определения окончательного значения порядка Е 'х из промежуточного значения порядка Е'нужно вычесть значение Х. Следует отметить, что для нормализации результата может оказаться достаточно одного сдвига вправо. Так производится и сложение двух мантисс в форме 1,хх.... В этом случае вектор М имеет форму 1ххх..., что на рисунке соответствует значению Х, равному -1, Мы не обсуждали принципы обработки разрядов защиты промежуточных значений мантиссы, Выше лишь было отмечено, что, согласно стандарту 1ЕЕЕ, для формирования 24-разрядной нормализованной мантиссы результата достаточно всего нескольких разрядов защиты.
Какие же аппаратные компоненты нужны для реализации логических блоков, показанных на рис. 6.267 Два 8-разрядных вычитателя и сумматор/вычитатель мантисс можно реализовать на основе комбинационной логики. Поскольку они должны генерировать выходные данные в формате значения са знаком, в описанную ранее структуру этих схем нужно внести некоторые поправки. В подобных схемах часто комбинируют арифметику дополнений до единицы и представление значения со знаком.
Для реализации блоков сдвига и нормализации результата используются разные схемные решения. Если нужна структура с современным вентильным счетчиком, можно применять сдвиговые регистры. Для повышения производительности их следует реализовать в виде комбинационных логических схем, что, однако, потребует большого числа логических вентилей.
В высокопроизводительных процессорах значительная часть площади микросхемы выделяется для выполнения операций с плавающей запятой. 6.8. Резюме С компьютерной арифметикой связано несколько интересных архитектурных задач, касающихся структуры логических схем. В этой главе рассмотрен ряд технологий, широко используемых при разработке двоичных арифметических устройств. Одним из ключевых принципов построения высокопроизводительных сумматоров является принцип параллельного переноса.
Для ускорения работы умножителей применяется операция перекодировки пар разрядов, которую можно считать усовершенствованным вариантом алгоритма Бута. Он позволяет сократить количество слагаемых, необходимых для получения произведения. Технология сложения с сохранением переноса значительно ускоряет операцию. Значительное внимание уделялось стандарту 1ЕЕЕ, который определяет способы представления чисел с плавающей запятой и набор правил выполнения с такими числами четырех стандартных арифметических операций.
Чтобы показать, насколько сложны логические схемы, выполняющие операции с плавающей запятой, мы привели пример блок-схемы устройства сложения/вычитания. Упражнения 443 Упражнения 6.1. В следующих задачах на сложение и вычитание операндами являются 6-разрядные двоичные числа со знаком в форме дополнения до двух. Выполните указанные операции и для каждой из них укажите, произошло ли арифметическое переполнение, а потом проверьте свои ответы, преобразовав операнды и результаты в десятичные числа формата значения со знаком. 010110 101011 111111 +001001 +100101 +000111 011001 110111 010101 -«010000 +111001 +101011 010110 111110 100001 -011111 -100101 -011101 111111 000111 011010 -000111 -111000 -100010 6.2. В начале раздела 6.7 рассказывалось о представлении двоичных дробей со знаком в формате дополнения до двух. а) Представьте десятичные числа 0,5, -0,123, — 0,75 и -0,1 в виде 6-разрядной дроби со знаком (см.
приложение Д, где описывается преобразование дробей из десятичного формата в двоичный). б) Какова максимальная ошибка представления, е, при использовании только 5 значащих разрядов после двоичной запятой? в) Вычислите количество разрядов после двоичной запятой, необходимое для выполнения следующих условий: 1)е< —; 1 10 ' 1 1ОО 1 3) ° 1000, 4) е< —. 1 10а . 6.3 Двоичные представления в формате дополнения до единицы и до двух являются частными случаями представления чисел в системе счисления с основанием Ь в формате дополнения до (Ь вЂ” 1) и до Ь. Для примера возьмем десятичную систему. Числа в формате значения со знаком е526, -526, +70 и -70 можно представить в каждой из двух систем дополнения в виде чисел со знаком из четырех цифр, как показано на рис.
У6.1. Значение числа в системе дополнения до девяти формируется путем дополнения каждой цифры до 9. А для получения дополнения до десяти к дополнению до 9 444 Глава 6. Арифметика Представление Примеры 6.4. 6.5. 6.6. прибавляется 1. В каждом из этих двух представлений крайняя слева циф- ра положительных чисел — О, а крайняя слева цифра отрицательных чи- сел — 9.
Значение со знаком а526 -526 +70 -70 Дополнение до 9 0526 9473 0070 9929 Дополнение до 10 0526 9474 0070 9930 Рио. У6.1. Числа оо знаком по основанию 10 в упражнении 6.3 Рассмотрим систему счисления с основанием 3 (троичную систему), в котоРой пЯтизначное число со знаком гагзгзг,гв имеет значение гз х 34 + гз х Зз+ г2 х Зз+ г~ х 3' + го х Зо, где 0 < й < 2. Представьте троичные числа в формате значения со знаком +11011, -10222, +2120, -1212, +10 и -201 в виде 6-значных троичных чисел со знаком в системе дополнения до трех.