устройство для нормализации и округления вещественных чисел

Классы МПК:G06F5/01 для сдвига, например выравнивания, пересчета, нормализации
Автор(ы):,
Патентообладатель(и):Институт точной механики и вычислительной техники им.С.А.Лебедева РАН
Приоритеты:
подача заявки:
1992-06-19
публикация патента:

Изобретение относится к вычислительной технике и может быть использовано при проектировании арифметических устройств высокой производительности. Устройство содержит три входных регистра, сумматор мантисс, узел управления, регистр, нормализатор результата, выходной регистр. Новым является введение узла формирования сигнала округления и дополнительного регистра. Введение узла округления со сложной логической функцией обеспечивает симметрию положительной и отрицательной погрешности, а изменение коммутации сигналов на входе сумматора мантисс обеспечивается за счет подключения второго входного регистра к первому входу сумматора. 5 ил.
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5

Формула изобретения

УСТРОЙСТВО ДЛЯ НОРМАЛИЗАЦИИ И ОКРУГЛЕНИЯ ВЕЩЕСТВЕННЫХ ЧИСЕЛ, содержащее три входных регистра, сумматор мантисс, узел управления, регистр, нормализатор результата, выходной регистр, входы первого и второго входных регистров подключены к входной шине мантиссы первого числа, выходы первого и второго входных регистров соединены с первым информационным входом сумматора мантисс, второй информационный вход которого подключен к выходу третьего входного регистра, вход которого подключен к входной шине мантиссы второго числа, выход сумматора мантисс соединен с входом узла управления, выход которого подключен к управляющему входу нормализатора результата, первый информационный вход которого соединен с выходом регистра, выход нормализатора результата подключен к входу выходного регистра, выход которого является выходной шиной результата устройства, отличающееся тем, что в него введены узел формирования сигнала округления и дополнительный регистр, причем выход сумматора мантисс соединен с входом дополнительного регистра и с первым информационным входом узла формирования сигнала округления, второй информационный вход которого подключен к первому информационному входу сумматора мантисс, третий информационный вход узла формирования сигнала округления является входной шиной сигнала обращения мантиссы, первый, второй, третий, четвертый информационные выходы узла формирования сигнала округления соединены соответственно с вторым, третьим, четвертым, пятым информационными входами нормализатора результата, выход дополнительного регистра соединен с входом регистра,управляющий вход узла формирования сигнала округления подключен к выходу узла управления.

Описание изобретения к патенту

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

Известно устройство для нормализации и округления вещественных чисел, содержащее входные регистры сумматора, регистр выдвинутых разрядов, нормализатор результатов, узел формирования сигналов округления, выходной регистр [1].

Недостатком устройства является недостаточная точность при обработке, так как при операндах формата 64-го разряда мантисса имеет всего 52 разряда. Кроме того, невозможна обработка операндов формата 32.

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

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

Целью изобретения является повышение точности и уменьшение ошибки вычислений.

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

На фиг.1 представлена блок-схема устройства для нормализации и округления вещественных чисел; на фиг. 2 показано формирование полей на входе устройства при формате операнда 64; на фиг.3 представлена подача слагаемых на сумматор мантисс при формате операнда 64; на фиг.4 - формирование полей на входе устройства при формате операнда 32; на фиг.5 - подача слагаемых на сумматор мантисс при формате операнда 32.

Устройство содержит первый, второй и третий входные регистры 1, 2 и 3, сумматор 4 мантисс, узел 5 управления, дополнительный регистр 6, регистр 7, узел 8 формирования сигнала округления, нормализатор 9 результата, выходной регистр 10. В устройстве имеются входная шина 11 мантиссы первого числа (из сдвигателя), входная шина 12 мантисс второго числа (с меньшим порядком с возможностью обращения), входная шина 13 сигнала обращения мантиссы, выходная шина 14 результата устройства. Узел 8 формирования сигнала округления имеет управляющий вход 15-1, первый информационный вход 15-2, второй информационный вход 15-3, третий информационный вход 15-4. Нормализатор 9 результата имеет управляющий вход 16-1, первый, второй, третий, четвертый и пятый информационные входы 16-2, 16-3, 16-4, 16-5 и 16-6.

Входная шина 11 соединена через регистры 1, 2 с первым информационным входом сумматора 4 мантисс и с входом 15-3 узла 8 формирования сигнала округления. Входная шина 12 через регистр 3 соединена с вторым информационным входом сумматора 4 мантисс. Выход сумматора мантисс подключен к входу узла 5 управления, к входу дополнительного регистра 6 и к входу 15-2 узла 8 формирования сигнала округления. Выход дополнительного регистра 6 подключен через регистр 7 к входу 16-2 нормализатора 9 результата. Входная шина 13 сигнала обращения мантиссы соединена с входом 15-4 узла 8 формирования сигнала округления. Выход узла 5 управления подключен к управляющему входу 15-1 узла 8 формирования сигнала округления и к управляющему входу 16-1 нормализатора 9 результата. Первый, второй, третий и четвертый выходы узла 8 формирования сигнала округления соединены соответственно с входами 16-3, 16-4, 16-5 и 16-6 нормализатора 9 результата. Выход нормализатора результата подключен к входу выходного регистра 10. Выход выходного регистра является выходной шиной 14 результата устройства.

Сумматор 4 мантисс может быть выполнен как аналогичное устройство в прототипе.

Узел 5 управления нормализатором по сборкам нулей, поступающим из сумматора 4 мантисс, формирует код сдвига для нормализатора 9 результата. Если при суммировании мантисс было переполнение, то старшая сборка нулей равна единице (ОСБН = 1), вырабатывается код сдвига СДН = 0000 и в нормализаторе 9 происходит сдвиг мантиссы на одну тетраду вправо, если нормализация результата не требуется (ОСБН = 0, 1СБН = 1), то вырабатывается код сдвига СНД = 0001 и мантисса проходит через нормализатор 9 без изменений, вообще, код сдвига равен числу старших нулевых тетрад суммы мантисс. Формирование разрядов кода сдвига описывается формулами

8СДН = -0СБН* - 1СБН* - 2СБН* - 3СБН* - 4СБН* - 5СБН* - 6СБН* - 7СБН;

4СДН = -0СБН* - 1СБН* - 2СБН* - 3СБН* + (4СБН + 5СБН + 6СБН + 7СБН 3 - 8СБН* - 9СБН* - 10СБН* - 11СБН);

2СДН = (0СБН + 1СБН + 2СБН + 3СБН)* - 0СБН* - 1СБН +

-0СБН* - 1СБН* - 2СБН* - 3СБН* (4СБН + 5СБН + 6СБН + 7СБН)* - 4СБН* - 5СБН +

-0СБН* - 1СБН* - 2СБН* - 3СБН* - 4СБН* - 5СБН* - 6СБН* - 7СБН* (8СБН + 9СБН + 10СБН + 11СБН)*- 8СБН* - 9СБН +

-0СБН* - 1СБН* - 2СБН* - 3СБН* - 4СБН* - 5СБН* - 6СБН* - 7СБН*

-8СБН* - 9СБН* - 10СБН* - 11СБН* - - 12СБН* - 13СБН;

1СДН = (0СБН + 1СБН + 2СБН + 3СБН)* (-0СБН* 1СБН + -0СБН* - 2СБН) +

-0СБН* - 1СБН* - 2СБН* - 3СБН* (4СБН + 5СБН + 6СБН - 7СБН)* (-4СБН* 5СБН + -4СБН* - 6СБН) +

-0СБН* - 1СБН* - 2СБН* - 3СБН* - 4СБН* - 5СБН* - 6СБН* - 7СБН* (8СБН + 9СБН + 10СБН + 11СБН)*

(-8СБН* 9СБН + -8СБН* - 10СБН) +

-0СБН* - 1СБН* - 2СБН* - 3СБН* - 4СБН* - 5СБН* - 6СБН* - 7СБН* - 8СБН* - 9СБН* - 10СБН* - 11СБН* (-12СБН* 13СБН + - 12СБН* - 14СБН).

Нормализатор 9 результата представляет собой двухуровневый сдвигатель влево и вправо, здесь одновременно со сдвигом производится округление в 63-м разряде при формате 64 или в 31-м разряде при формате 32.

Работа 31-го и 63-го разрядов описывается формулами

31НР = 31НР2* - ОКР32 + ОКР32* ЕОКР32;

62НР = 63НР2* - ОКР64 + ОКР64* ЕОКР64, где 31НР2 и 63НР2 - разряды после второго уровня нормализатора 9 результата.

Узел 8 формиpования сигнала округления вырабатывает сигналы необходимости округления ОКР и сигналы способа округления БОКР.

Если операнды имеют формат 64,

ОКР64 = ХВ + СТ* -НОР + 14 СБН* ПРП;

-ЕОКР64 = ОБРЧ (-15СБН + НОР* ХВ).

Если операнды имеют формат 32,

ОКР32 = ХВ + 6СБН*ПРП + 7СБН* - НОР + МЛ 32;

ЕОКР32 = МЛ32 + 7СБН* -НОР, где СТ - информация о наличии хотя бы одной единицы в старшей выдвинутой тетраде;

ХВ - информация о наличии хотя бы одной единицы в остальных выдвинутых разрядах;

НОР - информация о том, что была нормализация;

СБН - сборка нулей;

ПРП - переполнение;

ОБРЧ - сигнал обращения мантиссы;

МЛ32 - информация о наличии хотя бы одной единицы в младших "32" разрядах сумматора.

Устройство в случае формата 64 работает следующим образом.

Мантиссы чисел по шинам 11 и 12 соответственно попадают в регистры 1 и 3 (см. фиг.3). Старшая выдвинутая за разрядную сетку при выравнивании порядков тетрада мантиссы числа с меньшим порядком СТ по шине 11 поступает в регистр 2, туда же поступает информация о наличии хотя бы одной единицы в остальных выдвинутых разрядах ХВ. В сумматор 4 мантисс поступают в порядке старшинства в качестве первого слагаемого нулевая тетрада, четырнадцать тетрад мантиссы из сдвигателя, старшая выдвинутая тетрада из регистра 2, в качестве второго слагаемого тетрада, содержащая четыре единицы или нуля в зависимости от того, было ли обращение правой мантиссы, четырнадцать тетрад обращенной мантиссы, еще одна единичная или нулевая тетрада в зависимости от обращения правой мантиссы (см. фиг.4).

В сумматоре 4 формируется 64-разрядная сумма и шестнадцать сборок нулей, по сборкам нулей в узле 5 управления формируется код сдвига СДН для нормализатора 9 результата. Сумма через регистры 6 и 7 поступает в нормализатор 9 результата, где происходит в случае необходимости сдвиг мантиссы результата влево в случае наличия старших нулевых тетрад или вправо в случае переполнения. Если производилась нормализация, то в разрядную сетку возвращается старшая выдвинутая при выравнивании порядков тетрада, прошедшая суммирование в сумматоре 4 мантисс.

В узле 8 формирования сигнала округления вырабатываются два сигнала: ОКР64, говорящий о том, что надо производить округление, если за разрядную сетку при выравнивании порядков или при переполнении вытолкнулась хотя бы одна единица, и КОКР 64, говорящий о том, как надо округлять - наложением единицы или нуля на младший разряд нормализованной мантиссы. Округление нулем производится, если правая мантисса перед суммированием обращалась и младшая сборка нулей 15СБН равняется нулю либо при наличии обращения была нормализация НОР и в разрядах, теряемых при выравнивании порядков без учета старшей выдвинутой тетрады, была хотя бы одна единица:

ОКР64 = ХВ + СТ* - НОР + 14СБН* ПРП;

-ЕОКР64 = ОБРЧ (-15СБН + НОР* ХВ), где СТ - наличие хотя бы одной единицы в старшей выдвинутой тетраде; ПРП - переполнение.

Если операнды имеют формат 32, то мантисса занимает 24 левых разряда разрядной сетки, остальные 32 разряда заполнены нулями (см. фиг.5). В остальном процесс сложения и нормализации при формате 32 не отличается от случая формата 64.

Сигналы необходимости округления ОКР32 и способа округления ЕОКР32 задаются формулами

ОКР32 = ХВ + 6СБН*ПРП + 7СБН* -НОР + МЛ32;

ЕОКР32 = МЛ32 + 7СБН* -НОР, где МЛ32 - наличие хотя бы одной единицы в младших 32 разрядах сумматора.

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

Наверх