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

 

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

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

При сложении/вычитании чисел с плавающей запятой возможны ситуации, когда требуется нормализация - сдвиг суммы влево на большое количество разрядов. Для формирования мантиссы и порядка результата нужно определить положение старшего значащего нуля или единицы (в зависимости от знака результата). При нормализации предварительный порядок результата ПБ (порядок большего слагаемого) уменьшается на величину, равную количеству старших незначащих разрядов мантиссы. Согласно стандарту “ANSI/IEEE 754” на двоичную арифметику порядок результата должен быть не меньше единицы. Таким образом, результат должен нормализоваться на количество разрядов, не превосходящее максимально допустимую для них величину, равную М=ПБ-1. Величина М называется кодом ограничения. Если код ограничения меньше кода сдвига SH, то в этом случае мантисса сдвигается на М разрядов влево, и результат будет денормализованным числом.

Известно устройство для сложения и нормализации вещественных чисел, содержащее сумматор мантисс, блок предсказания старших разрядов кода сдвига, блок определения младших разрядов кода сдвига, нормализатор (US №4926369, кл. G 06 F 007/38, 1990).

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

Наиболее близким по технической сущности к изобретению является устройство для суммирования мантисс и нормализации результата при вычислениях с плавающей запятой, содержащее блок предсказания старших разрядов кода сдвига, сумматор мантисс и нормализатор результата, причем первый и второй входы сумматора мантисс являются первым и вторым входами устройства и присоединены соответственно к первому и второму входам блока предсказания старших разрядов кода сдвига, третий вход которого является третьим входом устройства, выход узла предсказания старших разрядов кода сдвига соединен с управляющим входом нормализатора результата, выход которого является выходом устройства (US №5732007, кл. G 06 F 007/42, 1998).

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

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

Достигается это тем, что в устройство для суммирования мантисс и нормализации результата при вычислениях с плавающей запятой, содержащее блок предсказания старших разрядов кода сдвига, сумматор мантисс и нормализатор результата, причем первый и второй входы сумматора мантисс являются первым и вторым информационными входами устройства и присоединены соответственно к первому и второму инфомационным входам блока предсказания старших разрядов кода сдвига, вход кода ограничения которого является третьим информационным входом устройства, выход узла предсказания старших разрядов кода сдвига соединен с управляющим входом нормализатора результата, выход которого является выходом устройства, согласно изобретению введен блок определения младших разрядов кода сдвига с учетом ограничения величины сдвига, причем выход сумматора мантисс подключен к первому информационному входу блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига, второй информационный вход которого соединен с входом кода ограничения блока предсказания старших разрядов кода сдвига, выход которого соединен с управляющим входом блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига, выход которого подключен к информационному входу нормализатора результата, кроме того блок определения младших разрядов кода сдвига с учетом ограничения величины сдвига содержит элемент ИЛИ и N узлов определения младших разрядов кода сдвига по группе выходных разрядов сумматора, где N равно 16 или 8, управляющий, первый и второй информационные входы каждого из вышеупомянутых узлов подключены к соответствующим управляющему, первому и второму информационным входам блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига, выходы вышеупомянутых узлов соединены с соответствующими информационными входами элемента ИЛИ, выход которого и первый информационный вход блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига образуют выход блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига, а каждый из вышеупомянутых N узлов, при N=8, без учета ограничения величины сдвига выполняет параллельно следующие логические функции:

- для сдвига на четыре разряда,

- для сдвига на два разряда,

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

1-ый узел:

2-ой узел:

3-ий узел:

4-ый узел:

5-ый узел:

6-ой узел:

7-ой узел:

8-ой узел:

SH4l= SH4il (логическое сложение по i от 1 до 8),

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

1-ый узел:

2-ой узел:

3-ий узел:

4-ый узел:

5-ый узел:

6-ой узел:

7-ой узел:

8-ой узел:

SH2l= SH2il (логическое сложение по i до 1 до 8),

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

SH1l= SH1il (логическое сложение по i от 1 до 8),

где Sji - i-й разряд суммы j-м узле, являющийся входом блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, SH32l , SH16l, SH8l - сигналы кода сдвига с учетом ограничения величины сдвига соответственно на "32", "16", "8" разрядов, поступающие на управляющий вход блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига, SH4i - сигнал сдвига на четыре разряда без учета ограничения величины сдвига, формируемый i-м узлом, SH4il - сигнал сдвига на четыре разряда с учетом ограничения величины сдвига, формируемый i-м узлом, SH4l - сигнал сдвига на четыре разряда с учетом ограничения величины сдвига, формируемый блоком 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, SH2i - сигнал сдвига на два разряда без учета ограничения величины сдвига, формируемый i-м узлом, SH2il - сигнал сдвига на два разряда с учетом ограничения величины сдвига, формируемый i-м узлом, SH2l – сигнал сдвига на два разряда с учетом ограничения величины сдвига, формируемый блоком 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, SH1il - сигнал сдвига на один разряд с учетом ограничения величины сдвига, формируемый i-м узлом, SH1l - сигнал сдвига на один разряд с учетом ограничения величины сдвига, формируемый блоком 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, Mk - k-й разряд кода ограничения, являющийся входом блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, а каждый узел для N=16 без учета ограничения величины сдвига выполняет следующую логическую функцию:

- сдвиг на два разряда,

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

SH2l= SH2il (логическое сложение по i от 1 до 16),

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

SH1l= SH1il (логическое сложение по i от 1 до 16),

где Sji - i-й разряд суммы j-м узле, являющийся входом блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, SH32l , SH16l, SH8l, SN4l - сигналы кода сдвига с учетом ограничения величины сдвига соответственно на "32", "16", "8", "4" разряда, поступающие на управляющий вход блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига, SH2 i - сигнал сдвига на два разряда без учета ограничения величины сдвига, формируемый i-м узлом, SH2il - сигнал сдвига на два разряда с учетом ограничения величины сдвига, формируемый i-м узлом, SH2l - сигнал сдвига на два разряда с учетом ограничения величины сдвига, формируемый блоком 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, SH1il - сигнал сдвига на один разряд с учетом ограничения величины сдвига, формируемый i-м узлом, SH1l, - сигнал сдвига на один разряд с учетом ограничения величины сдвига, формируемый блоком 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, Mk - k-й разряд кода ограничения, являющийся входом блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, а также блок определения младших разрядов кода сдвига с учетом ограничения величины сдвига согласно изобретению может содержать нормализатор и узел определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига, причем информационный вход нормализатора подключен к информационному входу блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига, выход нормализатора и выход узла определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига образуют выход блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига, первый информационный вход узла определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига соединен с выходом нормализатора, управляющий вход которого и управляющий вход узла определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига подключены к управляющему входу блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига, ко второму информационному входу которого подключен второй информационный вход узла определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига, который параллельно выполняет без учета ограничения величины сдвига следующие логические функции:

- сдвиг на два разряда,

- сдвиг на один разряд,

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

где Si - i-й разряд в старшей тетраде частично нормализованной суммы, являющийся входом блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, SH32l, SH16l, SH8l, SH4 l - сигналы кода сдвига с учетом ограничения величины сдвига соответственно на "32", "16", "8" и "4" разряда, поступающие на управляющий вход блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига, SH2 - сигнал сдвига на два разряда в старшей тетраде без учета ограничения величины сдвига, SH2l - сигнал сдвига на два разряда с учетом ограничения, формируемый блоком 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, SH1 - сигнал сдвига на один разряд в старшей тетраде без учета ограничения величины сдвига, SH1l – сигнал сдвига на один разряд с учетом ограничения величины сдвига, формируемый блоком 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, Mk - k-й разряд кода ограничения, являющийся входом блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига.

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

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

Предварительные испытания позволяют судить о возможности широкого промышленного использования.

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

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

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

Блок 1 предсказания старших разрядов кода сдвига содержит узлы, формирующие сигналы сдвига на "32", "16", "8" разрядов (см. фиг.7-9 в прототипе) или на "32", "16", "8", "4" разряда (см. фиг.7-10 в прототипе) в зависимости от варианта реализации в устройстве блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, которые могут быть выполнены аналогично соответствующим узлам блока в прототипе и при этом не используется значительная часть его оборудования, которая приходится на младшие разряды кода сдвига (см. соответственно фиг.10-12 или 11-12 в прототипе), что обеспечивает большую экономию.

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

Нормализатор 4 может быть выполнен, как в прототипе, и представляет собой стандартный сдвигатель влево, управляемый в зависимости от реализации шестью сигналами кода сдвига SH32l, SH16l , SH8l, SH4l, SH2l, SH1 l либо двумя SH2l, SH1l, когда в нормализатор 4 приходит частично нормализованная с точностью до тетрады сумма.

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

Блок 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, представленный на фиг.2, состоит из восьми 8-ми разрядных узлов и содержит элемент 12 ИЛИ с выходом 13 и узлы 15-1,... , 15-8 определения младших разрядов кода сдвига по группе выходных разрядов сумматора с выходами 16-1,... , 16-8, управляющими входами 17-1,... , 17-8, первыми и вторыми информационными входами 18-1,... , 18-8 и 19-1,... , 19-8 соответственно.

Управляющие, первые и вторые информационные входы 17-1, 17-2,... , 17-8, 18-1, 18-2,... , 18-8 и 19-1, 19-2,... , 19-8 соответствующих узлов 15-1, 15-2,... , 15-8 подключены к соответствующим управляющему, первому и второму информационным входам 8-3, 8-1 и 8-2 блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, а их выходы 16-1, 16-2,... , 16-8 соединены с соответствующими информационными входами 14-1, 14-2,... , 14-8 элемента 12 ИЛИ, выход которого и первый информационный вход 8-1 блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига образуют выход 9 блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига.

В каждом из узлов 15-1, 15-2,... , 15-8 определения младших разрядов кода сдвига по группе выходных разрядов сумматора вычисляется код сдвига внутри данного узла, исходя из соответствующих 8-ми разрядов суммы, поступающей на его вход.

Причем, если сдвиг на четыре, два или на один разряд принципиально существует, то он определится только в одном соответствующем узле, несмотря на то, что сдвиги на эти разряды могут существовать в любом из 8-ми узлов. Это достигается тем, что каждый сигнал кода сдвига стробирован сигналом, соответствующим номеру узла, который определяется старшими разрядами кода сдвига, сформированными в блоке 1 предсказания старших разрядов кода сдвига. Таким образом, чтобы получить любой младший разряд кода сдвига, достаточно взять из каждой группы соответствующие разряды и объединить их логической операцией ИЛИ.

Работа узлов 15-i, где i=1-8, без учета ограничения величины сдвига описывается следующими формулами:

- для сдвига на четыре разряда,

- для сдвига на два разряда,

после чего с учетом ограничения величины сдвига для сигнала сдвига на четыре разряда, каждый из восьми узлов 15-i, где i=1-8, параллельно реализует соответственно одну из следующих логических функций:

Тогда сигнал сдвига на четыре разряда, формируемый блоком 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, определяется как логическое сложение кодов сдвига на четыре разряда всех восьми узлов:

SH4l= SH4il (логическое сложение по i от 1 до 8).

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

1-й узел:

2-й узел:

3-й узел:

4-й узел:

5-й узел:

6-й узел:

7-й узел:

8-й узел:

Тогда сигнал сдвига на два разряда, формируемый блоком 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, определяется как логическое сложение кодов сдвига на два разряда всех восьми узлов:

SH2l= SH2il (логическое сложение по i от 1 до 8).

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

Тогда сигнал сдвига на один разряд, формируемый блоком 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, определяется как логическое сложение кодов сдвига на один разряд всех восьми узлов:

SH1l= SH1il (логическое сложение по i от 1 до 8),

где Sji - i-й разряд суммы в j-м узле, являющийся входом блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига,

SH32 l, SH16l, SH8l - сигналы кода сдвига с учетом ограничения величины сдвига соответственно на "32", "16", "8" разрядов, поступающие на управляющий вход блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига,

SH4il - сигнал сдвига на четыре разряда с учетом ограничения величины сдвига, формируемый i-м узлом,

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

SH2i - сигнал сдвига на два разряда без учета ограничения величины сдвига, формируемый i-м узлом,

SH2il - сигнал сдвига на два разряда с учетом ограничения величины сдвига, формируемый i-м узлом,

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

SH1il - сигнал сдвига на один разряд с учетом ограничения величины сдвига, формируемый i-м узлом,

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

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

В случае, когда блок 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига включает в себя шестнадцать 4-разрядных узлов 15-i определения кода сдвига по группе выходных разрядов сумматора, его состав и связи аналогичны блоку 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига и описывается следующими формулами: - сигнал сдвиг на два разряда без учета ограничения величины сдвига, после чего с учетом ограничения величины сдвига для сигнала сдвига на два разряда каждый из шестнадцати узлов 15-i, где i=1-16, параллельно реализует соответственно одну из следующих логических функций:

Тогда сигнал сдвига на два разряда, формируемый блоком 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, определяется как логическое сложение кодов сдвига на два разряда всех восьми узлов:

SH2l= SH2il (логическое сложение по i от 1 до 16).

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

Тогда сигнал сдвига на один разряд, формируемый блоком 2 определения младших разрядов кода сдвига, с учетом ограничения величины сдвига определяется как логическое сложение кодов сдвига на один разряд всех восьми узлов:

SH1l= SH1il (логическое сложение по i от 1 до 16),

где Sji - i-й разряд суммы в j-м узле, являющийся входом блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига,

SH32 l, SH16l, SH8l, SH4l - сигналы кода сдвига с учетом ограничения величины сдвига соответственно на "32", "16", "8", "4" разряда, поступающие на управляющий вход блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига,

SH2i - сигнал сдвига на два разряда без учета ограничения величины сдвига, формируемый i-м узлом,

SH2i l - сигнал сдвига на два разряда с учетом ограничения величины сдвига, формируемый i-м узлом,

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

SH1i l - сигнал сдвига на один разряд с учетом ограничения величины сдвига, формируемый i-ым узлом,

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

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

Блок 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, представленный на фиг.3, содержит нормализатор 20, узел 21 определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига. Нормализатор 20 содержит управляющий вход 22-1 (старшие разряды кода сдвига), информационный вход 22-2 (сумма) и выход 23 (сумма, нормализованная с точностью до тетрады). Узел 21 определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига содержит первый, второй информационные входы 24-1, 24-2, управляющий вход 24-3 (старшие разряды кода сдвига) и выход 25 (младшие разряды кода сдвига).

Информационный вход 22-2 нормализатора 20 подключен к информационному входу 8-1 блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, выход 23 нормализатора 20 и выход 25 узла 21 определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига образуют выход 9 блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига. Первый информационный вход 24-1 узла 21 определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига соединен с выходом 23 нормализатора 20, управляющий вход 22-1 которого и управляющий вход 24-3 узла 21 определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига подключены к управляющему входу 8-3 блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, ко второму информационному входу 8-2 которого подключен второй информационный вход 24-2 узла 21 определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига.

В нормализаторе 20 нормализуется (сдвигается влево) сумма на количество разрядов, равное величине предсказанной блоком 1 предсказания старших разрядов кода сдвига, причем этот блок формирует сдвиги только на "32", "16", "8" и "4" разряда, поэтому сумма нормализуется с точностью до тетрады. Узел 21 определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига, основываясь на анализе старшей тетрады частично нормализованной суммы, определяет коды сдвига на "2" и "1" разряд с учетом и без учета ограничения, соответствующие сигналы которых коммутируются между собой сигналом, определяющим меньшую величину из старших разрядов кода сдвига и кода ограничения.

Работа узла 21 определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига при формировании сигналов сдвига на "2" и "1" разряд без учета ограничения величины сдвига описывается следующими формулами:

- сдвиг на два разряда,

- сдвиг на один разряд,

после чего с учетом ограничения величины сдвига этот узел реализует следующие логические функции:

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

SH32l, SH16l, SH8l, SH4 l - сигналы кода сдвига с учетом ограничения величины сдвига соответственно на "32", "16", "8" и "4" разряда, поступающие на управляющий вход блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига,

SH2 - сигнал сдвига на два разряда без учета ограничения величины сдвига,

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

SH1 - сигнал сдвига на один разряд без учета ограничения величины сдвига,

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

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

На фиг.4 изображен фрагмент реализации блока 1 (аналогично фиг.7 в прототипе), при этом выход фрагмента подключен к выходу 10 и формирует сигнал сдвига на "32" разряда. Данный фрагмент содержит узел 26 формирования предварительных сигналов, выходы которого подключены к логическим элементам типа И-ИЛИ-НЕ, которые участвуют в формировании сигнала SH32l. Узел 26 формирования предварительных сигналов выполнен с возможностью формирования логических функций вида ТТ, GG, ZZ, TG, TZ, а также функции распространения и генерации переноса р и g для различного количества разрядов. Логическая функция ТТ для шестнадцати разрядов имеет вид, идентичный прототипу:

TT1-16=T1T2... T16, где Ti=Ai Bi (Ai и Bi - i-e разряды слагаемых), то есть для получения ТТ1-16 используется логическая операция И на "16" переменных Тi .

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

GG1-16=G1 G2... G16, где Gi =Ai Bi (Ai и Bi - i-e разряды слагаемых), то есть для получения GG1-16 используется логическая операция И на "16" переменных Gi .

Остальные логические функции ZZ, TG, TZ, р, g также имеют вид аналогичных функций прототипа.

Фрагменты реализации блока 1, формирующие сдвиги на "16", "8" и "4" разряда, выполняются аналогично вышеописанному.

Примеры реализации логических формул для сдвигов на "4" и "2" разряда без учета ограничения в узле 15-1 (1-й узел) определения младших разрядов кода сдвига по группе выходных разрядов сумматора представлены на фиг.5 и 6, а примеры реализации логических формул для сдвигов на "4", "2" и "1" разряд с учетом ограничения в вышеупомянутом узле представлены на фиг.7-9 соответственно.

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

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

При N="8" (фиг.2) блок 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига не нормализует сумму с точностью до тетрады, а блок 1 предсказания старших разрядов кода сдвига предсказывает три старших разряда кода сдвига на "32", "16" и "8" разрядов.

64-разрядные мантиссы чисел по первому и второму информационным входам 5-1 и 5-2 устройства поступают соответственно в сумматор 3 мантисс, а также в блок 1 предсказания старших разрядов кода сдвига по присоединенным к ним первому и второму информационным входам 6-1 и 6-2 вышеупомянутого блока (см. фиг.1). Шестиразрядный код ограничения величины сдвига М по третьему информационному входу 5-3 поступает в блок 1 предсказания старших разрядов кода сдвига и блок 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига по присоединенному к нему второму информационному входу 8-2 блока 2.

В сумматоре 3 формируется 64-разрядная сумма, которая поступает на первый информационный вход 8-1 блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига.

Блок 1 предсказания старших разрядов кода сдвига, исходя из анализа мантисс слагаемых, кода ограничения величины сдвига М, предсказывает сдвиги на "32", "16" и "8" разрядов, сигналы SH32l , SH16l и SH8l которых поступают на управляющий вход 8-3 блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига и на управляющий вход 11-1 нормализатора 4 результата.

Разряды суммы с выхода 7 сумматора 3 мантисс, поступающие на первый информационный вход 8-1 блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, разбиты на 8 групп по "8" разрядов в каждой, которые поступают соответственно на информационные входы 18-1, 18-2,... , 18-8 соответствующих узлов 15-1, 15-2,... , 15-8 определения младших разрядов кода сдвига по группе выходных разрядов сумматора. Исходя из анализа соответствующих "8"-ми разрядов суммы соответствующей группы вычисляются сигналы кода сдвига на "2" и "1" разряд без учета ограничения величины сдвига, а далее, учитывая код ограничения величины сдвига М (8-2) и предсказанные старшие разряды кода сдвига SH32l, SH16l и SH8l (8-3), сигналы которых являются входными для каждого из узлов 15-1, 15-2,... , 15-8, в каждом из этих узлов вычисляется код сдвига по соответствующей восьмиразрядной группе выходных разрядов сумматора с учетом ограничения величины сдвига. Причем, если сдвиг на четыре, два или на один разряд принципиально существует, то он определится только в одном соответствующем узле, несмотря на то, что сдвиги на эти разряды могут существовать в любом из узлов 15-i. Это достигается тем, что каждый сигнал кода сдвига стробирован сигналом, соответствующим номеру узла 15-i, который определяется старшими разрядами кода сдвига, поступающими на управляющий вход 8-3 блока 2, сформированными в блоке 1 предсказания старших разрядов кода сдвига. Таким образом, чтобы получить любой младший разряд кода сдвига, достаточно взять из каждого узла 15-1, 15-2,... , 15-8 определения младших разрядов кода по группе выходных разрядов сумматора соответствующие разряды и объединить их логической операцией ИЛИ, что совершается элементом 12 ИЛИ. Таким образом определяются коды сдвига на "4", "2" и "1" разряд, сигналы SH4l, SH2l и SH1l которых вместе с суммой мантисс с выхода 9 блока 2 поступают на информационный вход 11-2 нормализатора 4 результата.

Нормализатор 4 формирует мантиссу результата, сдвигая сумму мантисс влево на количество разрядов, равное величине кода сдвига, старшие разряды которого предсказаны блоком 1 предсказания старших разрядов кода сдвига, а младшие определены блоком 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига.

При N="16" блок 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига не нормализует сумму с точностью до тетрады, а блок 1 предсказания старших разрядов кода сдвига предсказывает три старших разряда кода сдвига на "32", "16", "8" и "4" разряда.

64-разрядные мантиссы чисел по первому и второму информационным входам 5-1 и 5-2 устройства поступают соответственно в сумматор 3 мантисс, а также в блок 1 предсказания старших разрядов кода сдвига по присоединенным к ним первому и второму информационным входам 6-1 и 6-2 вышеупомянутого блока (см. фиг.1). Шестиразрядный код ограничения величины сдвига М по третьему информационному входу 5-3 поступает в блок 1 предсказания старших разрядов кода сдвига и блок 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига по присоединенному к нему второму информационному входу 8-2 блока 2.

В сумматоре 3 формируется 64-разрядная сумма, которая поступает на первый информационный вход 8-1 блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига.

Блок 1 предсказания старших разрядов кода сдвига, исходя из анализа мантисс слагаемых, кода ограничения величины сдвига М, предсказывает сдвиги на "32", "16", "8" и "4" разряда, сигналы SH32l, SH16l, SH8l и SH4 l которых поступают на управляющий вход 8-3 блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига и на управляющий вход 11-1 нормализатора 4 результата.

Работа блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига в случае, когда он содержит "16" узлов определения кода сдвига по группе выходных разрядов сумматора, аналогична его работе, когда он содержит "8" узлов определения кода сдвига по группе выходных разрядов сумматора. При этом блок 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига, исходя из анализа суммы, поступающей на его первый информационный вход 8-1 кода ограничения величины сдвига М, поступающей на его второй информационный вход 8-2, и старших разрядов кода сдвига SH32l, SH16l , SH8l и SH4l, поступающих на его управляющий вход 8-3, определяет младшие разряды кода сдвига на "2" и "1" разряд, сигналы SH2l и SH1l которых вместе с суммой мантисс с выхода 9 блока 2 поступают на информационный вход 11-2 нормализатора 4 результата.

Нормализатор 4 формирует мантиссу результата, сдвигая сумму мантисс влево на количество разрядов, равное величине кода сдвига, старшие разряды которого предсказаны блоком 1 предсказания старших разрядов кода сдвига, а младшие определены блоком 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига.

Когда блок 1 предсказания старших разрядов кода сдвига предсказывает четыре старших разряда кода сдвига на "32", "16", "8" и "4" разряда, а блок 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига нормализует сумму с точностью до тетрады, устройство работает следующим образом.

64-разрядные мантиссы чисел по первому и второму информационным входам 5-1 и 5-2 устройства поступают соответственно в сумматор 3 мантисс, а также в блок 1 предсказания старших разрядов кода сдвига по присоединенным к ним первому и второму информационным входам 6-1 и 6-2 вышеупомянутого блока (см. фиг.1). Шестиразрядный код ограничения величины сдвига М по третьему информационному входу 5-3 поступает в блок 1 предсказания старших разрядов кода сдвига и блок 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига по присоединенному к нему второму информационному входу 8-2 блока 2.

В сумматоре 3 формируется 64-разрядная сумма, которая поступает на первый информационный вход 8-1 блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига.

Блок 1 предсказания старших разрядов кода сдвига, исходя из анализа мантисс слагаемых, кода ограничения величины сдвига М, предсказывает сдвиги на "32", "16", "8" и "4" разряда, сигналы SH32l, SH16l, SH8l и SH4 l которых поступают на управляющий вход 8-3 блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига и на управляющий вход 11-1 нормализатора 4 результата.

У блока 2 определения младших разрядов кода сдвига с учетом ограничения величины сдвига в нормализаторе 20 сумма, поступающая на его информационный вход 22-2, нормализуется (сдвигается влево) на количество разрядов, равное величине предсказанной блоком 1 предсказания старших разрядов кода сдвига, причем этот блок формирует сдвиги только на "32", "16", "8" и "4" разряда, сигналы SH32l, SH16l, SH8 l и SH4l которых поступают на управляющий вход 8-3 блока 2, поэтому сумма нормализуется с точностью до тетрады. Узел 21 определения младших разрядов кода сдвига в старшей тетраде с учетом ограничения величины сдвига, исходя из анализа частично нормализованной суммы, поступающей на его первый информационный вход 24-1, кода ограничения величины сдвига М, поступающей на его второй информационный вход 24-2, и старших разрядов кода сдвига SH32l, SH16l, SH8l и SH4l, поступающих на его управляющий вход 24-3, определяет младшие разряды кода сдвига на "2" и "1" разряд, сигналы SH2l и SH1l которых вместе с частично нормализованной суммой мантисс с выхода 9 блока 2 поступают на информационный вход 11-2 нормализатора 4 результата.

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

Таким образом, в заявляемом изобретении достигается требуемый технический результат: значительно упрощается схемотехника устройства и обеспечивается высокое быстродействие.

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

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

2. Устройство по п.1, отличающееся тем, что блок определения младших разрядов кода сдвига с учетом ограничения величины сдвига содержит элемент ИЛИ и N узлов определения младших разрядов кода сдвига по группе выходных разрядов сумматора, где N равно 16 или 8, управляющий, первый и второй информационные входы каждого из вышеупомянутых узлов подключены к соответствующим управляющему, первому и второму информационным входам блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига, выходы вышеупомянутых узлов соединены с соответствующими информационными входами элемента ИЛИ, выход которого и первый информационный вход блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига образуют выход блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига, а каждый из вышеупомянутых N узлов, при N=8, без учета ограничения величины сдвига выполняет параллельно следующие логические функции:

- для сдвига на четыре разряда,

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

1-ый узел:

2-ой узел:

3-ий узел:

4-ый узел:

5-ый узел:

6-ой узел:

7-ой узел:

8-ой узел:

SH4l=SH4 il (логическое сложение по i от 1 до 8),

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

1-ый узел:

2-ой узел:

3-ий узел:

4-ый узел:

5-ый узел:

6-ой узел:

7-ой узел:

8-ой узел:

SH2l=SH2 il (логическое сложение по i от 1 до 8),

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

SH1l=SH1 il (логическое сложение по i от 1 до 8),

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

SH32l , SH16l, SH8l - сигналы кода сдвига с учетом ограничения величины сдвига, соответственно, на “32”, “16”, “8” разрядов, поступающие на управляющий вход блока определения младших разрядов кода сдвига с учетом ограничения величины сдвига,

SH4i - сигнал сдвига на четыре разряда без учета ограничения величины сдвига, формируемый i-ым узлом,

SH4il - сигнал сдвига на четыре разряда с учетом ограничения величины сдвига, формируемый i-ым узлом,

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

SH2i - сигнал сдвига на два разряда без учета ограничения величины сдвига, формируемый i-ым узлом,

SH2i l - сигнал сдвига на два разряда с учетом ограничения, величины сдвига, формируемый i-ым узлом,

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

SH1i l - сигнал сдвига на один разряд с учетом ограничения величины сдвига, формируемый i-ым узлом,

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

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

а каждый узел для N=16, без учета ограничения величины сдвига, выполняет следующую логическую функцию:

- сдвиг на два разряда,

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

SH2l=SH2 il (логическое сложение по i от 1 до 16), с учетом ограничения величины сдвига для сигнала сдвига на один разряд, каждый из шестнадцати узлов параллельно реализует соответственно одну из следующих логических функций:

SH1l=SH1 il (логическое сложение по i от 1 до 16),

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

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

- сдвиг на два разряда,

- сдвиг на один разряд,

после чего с учетом ограничения величины сдвига этот узел реализует следующие логические функции:

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

SH2 - сигнал сдвига на два разряда без учета ограничения величины сдвига,

SH1 - сигнал сдвига на один разряд без учета ограничения величины сдвига.

РИСУНКИ

MM4A Досрочное прекращение действия патента из-за неуплаты в установленный срок пошлины заподдержание патента в силе

Дата прекращения действия патента: 30.04.2011

Дата публикации: 20.03.2012




 

Похожие патенты:

Изобретение относится к цифровой вычислительной технике и может быть использовано в КМДП интегральных схемах при реализации арифметических устройств

Изобретение относится к средствам вычислительной техники и может быть использовано для синтеза арифметико-логических устройств (АЛУ) и создания быстродействующих и экономичных цифровых устройств суммирования и вычитания чисел в прямых кодах

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

Изобретение относится к цифровой вычислительной технике и может быть использовано в КМДП интегральных схемах при реализации арифметических и логических устройств

Изобретение относится к вычислительной технике и может быть использовано при проектировании вычислительных узлов на логических элементах в составе специализированных КМОП БИС

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

Изобретение относится к электронике и предназначено для использования в сумматорах чисел в двоичном представлении

Изобретение относится к вычислительной технике и может быть использовано при проектировании вычислительных узлов в составе специализированных БИС на основе МОП транзисторов

Изобретение относится к электронике и предназначено для использования в сумматорах чисел в двоичном представлении

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

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

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

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

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

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

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

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

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

Изобретение относится к цифровой вычислительной технике и может быть использовано в процессорах ЭВМ и в устройствах цифровой автоматики
Наверх