Устройство для накопления чисел с плавающей запятой
Иллюстрации
Показать всеРеферат
Изобретение относится к вычислительной технике и может быть использовано в разработках специализированных процессоров . Цель изобретения - повышение быстродействия устройства. Устройство для накопления чисел с плавающей запятой содержит шину 1 задания порядка, шину 2 задания мантиссы, шины 3, 4 синхронизации слова и массива, блок 5 анализа порядка , блок6 преобразования мантиссы,блок управления, блок 8 суммирования, накопитель 9, формирователь 10 результата, формирователь 11 адреса, анализатор 12, выход 13 мантиссы результата, выход 14 порядка результата и выход 15 готовности результата , соединенные между собой функционально . 2 з.п.ф-лы, 5 ил.
СОЮЗ СОВЕТСКИХ
СОЦИАЛ ИСТИЧ Е СКИХ
РЕСПУБЛИК (si)s G 06 F 7/50
ГОСУДАРСТВЕННОЕ ПАТЕНТНОЕ
ВЕДОМСТВО СССР (ГОСПАТЕНТ СССР) ОПИСАНИЕ ИЗОБРЕТЕНИ
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (21) 4864314/24 (22) 05.09.90 (46) 23.07.93. Бюл. ¹ 27 (71) Институт электронных управляющих машин (72) Б,Я.Фельдман (56) Авторское свидетельство СССР
¹ 1315969, кл. G 06 F 7/50, 1985, Патент США
N 4054787, кл. G 06 F 7/50, 1975. (54) УСТРОЙСТВО ДЛЯ НАКОПЛЕНИЯ ЧИСЕЛ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ (57) Изобретение относится к вычислительной технике и может быть использовано в
Изобретение относится к вычислительной технике и может быть использовано в специализированных процессорах.
Целью устройства является повышение быстродействия и повышение точности за счет исключения потери информативности, На фиг. 1 показан блок схемы устройства накопления чисел с плавающей запятой; на фиг, 2 — схема анализатора; на фиг, 3— схема формирователя результата; на фиг. 4 и 5 — алгоритмы работы устройства.
Устройство накопления чисел с плавающей запятой содержит шину задания порядка 1, шину 2 задания мантиссы, шины 3, 4 синхронизации слова и начала массива, блок анализа порядка 5, блок преобразования мантиссы 6, блок управления 7, блок суммирования 8, накопитель 9, формирователь результата 10, формирователь адреса
11, анализатор 12. На фиг. 1 также показаны
„„ Ы „„1829030 А1 разработках специализированных процессоров. Цель изобретения — повышение быстродействия устройства. Устройство для накопления чисел с плавающей запятой содержит шину 1 задания порядка, шину 2 задания мантиссы, шины 3, 4 синхронизации слова и массива, блок 5 анализа порядка, блок 6 преобразования мантиссы, блок 7 управления, блок 8 суммирования, накопитель 9, формирователь 10 результата, формирователь 11 адреса, анализатор 12, выход
13 мантиссы результата, выход 14 порядка результата и выход 15 готовности результата, соединенные между собой функционально. 2 з.п.ф-лы, 5 ил. выход мантиссы результата 13, выход порядка результата 14, выход готовности результата 15, причем шина задания порядка
1 соединена с информационными входами блока преобразования мантиссы 6 и формирователем адреса 11 через преобразователь порядка 5, первая группа входов которого подключена к шине задания мантиссы 2, первый выход блока преобразователя порядка 5 подключен ко второму входу блока преобразования мантиссы 6, первая группа выходов 16 формирователя адреса
11 соединена с адресными входами накопителя 9 и анализатора 12, выход которого соединен со входами логического условия блока управления 7 и с информационными входами формирователя адрес" 11, входы блока управления 7 соединены с шинами синхронизации слова и массива устройства
3 и 4, вторая группа вь;ходов формирователя
1829030 адреса 11 соединена со входами формирователя результата 10, первый выход блока суммирования 8 соединен с информационными входами накопителя 9 и анализатора
12, второй выход блока суммирования соединен с информационными входами формирователя результата 10, первый выход накопителя 9 соединен с первым информационным входом блока суммирования Б, второй вход которого соединен с выходом блока преобразования мантиссы 6, выходы блока управления 7 соединены со входами формирователя адреса 11, накопителя 9, блока суммирования 8, анализатора 12 и формирователя результатов 10, третий выход блока суммирования 8 соединен со входом признака переполнения блока управления 7, второй выход накопителя 9 соединен со входом признака минимального по модулю числа блока управления 7, первая и вторая группы выходов блока формирователя результата образуют выход мантиссы результата 13 и выход порядка результата 14 соответственно.
Преобразователь порядка 5 предназначен для преобразования порядка (1) накапливаемых чисел и формирования кода главного порядка К, где
К=Е() и локального порядка г, где г=Р— К * m.
Здесь m — разрядность мантиссы (без знака).
Блок 6 преобразователя мантиссы 6 предназначен для сдвига мантиссы накапливаемых чисел на г разрядов влево и формирования двух частей (фрагментов) мантиссы со знаками — старшие r разрядов; — младшие — остальные, т.е, образования на выходе блока 6 слов двойной (2m) разрядности.
Передача и обработка этих фрагментов может идти последовательно или параллельно, В настоящем описании принят вариант параллельной отработки, поэтому связи с выхода блока 6 на вход блока 9, с выхода блока 9 на входы блоков 8 и 12, с выхода блока 8 на входы блока 9 и 10 имеют двойную разрядность, а блоки 9, 10 и 11 состоят из двух частей так, что блок суммирования 8 и накопитель 9 принимают и передают данные двойной разрядности и предназначены для обработки параллельно двух слов одинарной разрядности фрагментов.
При этом данные на выходе блока 6 имеют вид
000 ... ОХХ ХХХ „ХООО ... О
5 Возможно использование гп разрядных слов, если 2m — разрядный код преобразовать на выходе блока 6 в два m— разрядных вида
00 Ä 0X ... Х
1-е слово:
Х.„ХО „, О
15 2-е слово:
Размещение знакового разряда может быть осуществлено различными способами, В описании принято, что знак передается и хранится вместе с фрагментом и занимает старший m+1 разряд.
Блок 7 управления предназначен для управления и синхронизации всеми составными частями предложенного устройства и может быть реализован как блок микропрограммного управления, Блок суммирования 8 предназначен для сложения фрагментов мантиссы с учетом знаков и может быть выполнен в виде двух трехвходовых сумматоров чисел со знаком и соответствующих регистров для временного хранения переносов, представляющих одноразрядные числа со знаком.
Накопитель 9 предназначен для запоминания фрагментов мантиссы и выработки признака минимального пG модулю числа, т.е. содержащего либо единственную единицу в младшем разряде, либо все единицы.
40 Формирователь адреса 11 предназначен для формирования адресов накопителя
9 и соединен с ним связью 16, Анализатор 12 предназначен для формирования таблицы адресов, содержащей
45 перечень ненулевых ячеек накопителя 9.
Анализатор 12 (см, фиг, 2) состоит из двух идентичных частей, объединенных на выходе, и содержит дешифраторы адреса
17,1 и 17.2, элементы И 18,1, 18.2, 19.1 и
19,2, образующие коммутаторы 20,1 и 20.2, группы элементов ИЛИ 21,1, 21.2, группы триггеров 22,1, 22,2 и шифратор 23, Коммутатор 20.1 содержит элементы И 18.1d (где
d-1,3, 5, 7 ...) и элементы И 19.1d, коммута55 тор 20.2 содержит элементы И 18,2f (f=2, 4, 6, 8 ...) и элементы И 19.2f. Последовательность адресов анализатора и их четность полностью соответствует системе адресов накопителя 9. Вход разрешения дешифраторов 17.1 и 17,2, вход кода операции 24, 1829030 вход сброса анализатора 26 соединены с выходами поля управления блока управления 7, группа информационных входов дешифраторов 17.1 и 17.2 соединена с первой и второй группой адресных входов 16 анализатора 12 являются общими с адресными входами накопителя 9. Выходы дешифраторов 17.1 и 17,2 соединены с управляющими входами соответствующих коммутаторов
20.1 и 20.2, вход разрешения 24 дешифраторов 17.1 и 17.2, вход сброса 26 соединены с выходами блока управления 7, а вторые входы элементов ИЛИ групп 21.1 и 21.2 соединены со входом сброса 26.
Выходы коммутаторов 20.1 и 20.2 соединены со входами установки соответствующих триггеров 22,1 и 22.2, а вторые выходы коммутаторов 20.1 и 20.2 соединены с группой входов соответствующих элементов
ИЛИ 21.2 и 21,2, Входы данных 27.1 и 27.2 соединены с первым информационным выходом блока суммирования 8 и через схемы сравнения кода с нулем 28.1 и 28.2 соединены с управляющими входами коммутаторов 20.1 и
20,2, которые предназначены для установки триггеров 22.1 и 22.2 в состояние "1", если в накопителе 8 этому адресу соответствует ячейка с содержимым, равным нулю.
Элементы ИЛИ 21,1 и 21.2 предназначены для объединения сигналов сброса триггеров, что соответствует ситуации начального сброса от блока 7 и установки s нуль в случае прихода "0" информации в выбранный триггер.
Триггеры 22,1 и 22,2 предназначены для хранения признаков неравенства нулю соответствующем разрядам этих триггеров группы. Триггеры и их выходы пронумерованы в соответствии с нумерацией ячеек в накопителе 9.
Шифратор состояния 23 предназначен для определения адреса старшей ячейки, содержимое которого отлично от "0", а его выход 25 подключен ко входам блоков 7 и
11, причем формирователь адреса 11 использует код адреса, сформированный на выходе 25, а блок управления 7 использует нулевое состояние шифратора, как признак отсутствия данных.
Формирователь результата 10 (фиг, 3) содержит умножитель на константу 36, например, ПЗУ, сумматор 37, компараторы 30, шифратор 31, сдвигатель 32 реализованный, например, на умножителях 32.1 и 32,2, причем 34 и 35 — входы синхронизации умножителем. Вход формирователя результата "К" с выхода блока 11 соединен со входом умножителя на константу "m", выход которого соединен со входом сумматора поряд5
55 ка 37, группа выходов которого образует выход 14 (порядок результата). Выход мантиссы формирователя результата 13 соединен с группой выходов элементов ИЛИ группы ЗЗ.
Первые и вторые входы элементов ИЛИ группы 33 соединены с выходами умножителей 32,1 и 32.2 соответственно, первые группы информационных входов которых соединены с первой группой выходов шифратора 31 (унитарный код), вторая группа выходов которого (позиционный код) соединена с второй группой информационных входов сумматора 37, информационный вход шифратора 31 соединен с выходами группы компараторов 30. Входная магистраль старшей части 29.1 (группа информационных входов с первого по m+1-ый ряды формирователя результата 10) соединена со второй группой информационных входов умножителя 32.1 и с первыми входами соответствующих компараторов группы 30, mый вход первой группы информационных входов формирователя результата 10 соединен с вторыми входами компараторов 30, вторая группа информационных входов формирователя результата 10, исключая знак (разряд m-1), соединена с второй группой информационных входов умножителя
32.2, со сдвигом на один номер. Остальные управляющие входы обоих умножителей
32.1, 32.2 подключены к шине нулевого потен циала.
Группа компараторов 30 предназначена для формирования абсолютной величины кода мантиссы, поступаюшей по магистрали 29,1 (29.2), выполнена на схемах равнозначности.
Поскольку "старшая часть выбирается из ячеек накопителя 9, адрес которой по анализатору определяется, как адрес именно той ca .oé старшей ячейки. содержимое которой отлично от нуля, поэтому с -а старшая часть, передаваемая в 10, отлична от нуля и для определения порядка достаточно проанализировать число старших нулей старшей части.
Шифратор 31 предназначен для определения величины порядка г для нормализации результа-,а и выдает значение, равное номеру разряда, занимаемое старшей единицы, в позиционном и унитарном коде.
Группа элементов ИЛИ 33 предназначена для объединения соответствующих разрядов, полученных в результате сдвига и формирования мантиссы результата.
Блок управления ": может быть реализован как устройство микропрограммного управления. Блок 7 содержит тактовый генератор. запуск которого возможен по пе1829030 р г= res(), ITl
50 реднему фронту сигнала синхронизации как слова, так и массива. Этот сигнал является пусковым сигналом, а соответствующая шина пусковой шиной, Работа устройства основана на использовании представления чисел в форме с
"циклической запятой" или с "плавающим началом", предназначенного для управления операции сложения чисел с плавающей запятой, Представление с плавающим началом для числа Х имеет вид
Х=А * q, где .q /
Пусть m некоторое целое (например, m — равно числу разрядов мантиссы без знака).
Тогда главный порядок определяется как, P — т
К = Е (), а локальный как
m где t=0 или 1, а Е(у) — целая (положительная или отрицательная) часть (ближайшее меньшее число), q — основание системы счисления.
Такое предложение позволяет располагать на одних и тех же позициях разряды мантиссы, отличающиеся друг от друга по порядку на величину, кратную m. Будем считать в дальнейшем =1. При этом P=K * m+r.
Представление чисел в форме с плавающим началом позволяет осуществить сложение аналогично представлению с фиксированной запятой без выравнивания порядков и сдвига слагаемых.
Рассмотрим конкретное число Х. Его код мантиссы занимает на разрядной оси позицию, характеризующуюся парой (К, Р), где
К=Е(), г=Р— К*m.
Например для чисел
А=0,1 Р=О К=-1 r=m
А=0,12 Р=2 К=О r=2
А=0,15 P=m К=О r=m
А=0,15 P=m+1 К=1 r=1
Таким образом, r — равно числу старших разрядов, расположенных левее запятой, Запишем P=K*m+r, где г>0
Разрядная ось содержит Pmax+m-Pmin разрядных позиций
Иногда используется эквивалентное представление с целочисленной мантиссой т.е. гп
0 /<А<2 — 1, которое полностью эквивалентно предыдущему. Это представление с целочисленной мантиссой будет использовано в числовых примерах;
Алгоритмы преобразования чисел
Алгоритм преобразования чисел, представленных в форме с плавающей запятой в форму с циклической запятой назовем алгоритмом "расщепления", а обратного — алгоритмом "объединения", Расщепление кода является разложением на два отдельных кода, Объединение кодов является обратной операцией и объединяет коды в том случае, когда старший значащий разряд младшего кода (А2) является следующим по порядку, т.е. имеющим на единицу меньше порядок, чем младший разряд старшего кода (А1).
1. Алгоритм расщепления чисел (мантисса в дополнительном коде) состоит в следующем;
Числа вида (Р, SA), где: S — знак, А— мантисса, P — порядок, расщепляются на два кода следующим образом: — производится сдвиг кода SA вправо на
З0 m — rразрядов,,причем сдвиг производится с расширением знака.
Полученный код разбиваешься на 2 части по m разрядов (в+1 разряд знака): старшая: SSS ... (SA<) младшая 0 (A2) 000.
Эти полученные два кода могут обрабатываться независимо.
2. Алгоритм объединения кодов.
При обьединении двух частей в один код
40 возможны различные комбинации знаков, поскольку оба кода обрабатываются независимо. Возможны все 4 случая, соответствующие разным комбинациям знаков.
Можно показать, что объединение m+1
45 — разрядных кодов S1A1 и S2A2 образует
2m+1 разрядный код 51А1 — $2А2, если одновременно не выполнены два условия: (2) IS>l имеет вид 00 .. 01 и S)S2+S1S2=1
Если условия (2) выполняются одновременно, то это особый случай. При этом обнуляется ячейка содержащая А1, изменяется знак А2 и производится повторный анализ, Анализ признаков IAI=00 .. 01, S> и Я2 выполняется при считывании данных из накопителя 8 и при необходимости изменяется порядок выполнения переходов при выполнении микрокоманд в блоке 7.
1829030
5
В результате операции накопления чисел в ячейках накопителя 9 будут расположены числа, имеющие порядок, определяющийся адресом ячейки.
В большинстве случаев две старших ячейки с достаточной точностью полностью представляют результат накопления, если же выполнено (2), что необходим дополнительный анализ.
Для формирования результата;
1, Обнаруживают старшую с отличным от нуля содержимым ячейку и определяют ее адрес (это выполняет анализатор и результа формируется на выходе шифратора
23)
2, Проверяют условие (2), если оно не выполнено, что по содержимому двух старших ячеек формируется окончательный результат.
3. Если условие (2) выполнено. то проводится преобразование данных в двух старших ячейках, при этом содержимое старшей ячейки игнорируется, определяется содержимое следующих двух ячеек, после этого измеряется знак старшей из этих двух ячеек в блоке суммирования 8 и при необходимости повторяется процедура начиная., с и. 1.
Устройство работает следующим образом.
На вход 4 пуска "начала" проходит сигнал, по фронту которого инициируется работа устройства, Этот сигнал проходит на блок управления 7, который может содержать управляемый тактовый генератор (возможна инициация фронтом сигнала 3).
При необходимости в программу может быть заложено формирование сигнала готовности 15.
Поступающие по шинам 1 и 2 порядок и мантисса очередного числа сопровождаются сигналом синхронизации числа.
Блок анализа порядка 5 формирует коды К и r в соответствии с соотношением (1), Код t поступает на информационный вход сдвигателя в блоке преобразования мантиссы, Код главного порядка К поступает на входы формирователя адреса 11, В формирователе адреса 11 адреса формируются последовательные адреса a+k и а+К+1, где: а — базовый адрес, поступающий из блока управления, В -ависимости от четности К старшая и младшая часть кода двойной разрядности заносятся непосредственно или после перестановки в соответствующие части блока 9.
Если нет переноса, то операция добавления данного числа закончена и устройст25
45 ва переходит к приему накопления следующего числа, Если есть перенос, то выполняется добавление переносов, причем формирователь адреса 11 формирует адрес, увеличенный на 1, В анализаторе 12 каждый триггер групп
22.1 и 22.2 соответствует одной ячейке накопителя 9, причем ее адрес соответствует значению главного порядка К. Первоначально триггеры установлены в "0" сигналом 2б, поступающим из блока управления 7. При записи в накопитель 9 схемами 28.1 (28,2) анализируется равенство кодов нулю, и, соответственно, устанавливается соответствующий триггер 22.1 или 22.2 (единица — при нулевом коде, и нуль — в противном случае) с помощью дешифраторов 17,1 (17.2), которые дублируют дешифраторы адреса накопителя 9 и обеспечивают при каждом выполнении операции записи в накопитель
Одна группа триггеров, как и один блок памяти, хранит четные адреса, другая — нечетные, В соответствии с этим выходы триггеров присоединены к соответствующим входам шифратора 23 (блок левой единицы), который показывает адрес самой старшей ячейки, содержимое которой отлично от нуля.
Формирование результата начинается с определения адреса старшей ячейки, содержимое которой отлично от нуля с помощью шифратора 23, включенного на выходе памяти 22 анализатора 12, который является индикатором содержимого ячеек триггера, Если коды в вь|бранной паре ячеек соответствуют особому случаю, то перед процедурой объединения кодов знак 51 старшей ячейки присваивается знаку младшей, старшая ячейка обнуляется и выбирается следующая пара ячеек, соответствующая К-1, Формирование результата име:г следующие особенности, Для формирования правильного результата на линию от 29-1 должно быть передано содержимое старшей записанной ячейки накопителя 9, а на линию от 29,2 — содержимое предыдущей ячейки, Для этого предусматривается возможность перестановки кодов. Изменение мантиссы -o соотношению А — Яг выполняется на блоке суммирования 8.
На фиг. 4 и 5 приведена схема алгоритма иллюстрируюшего работу устройства, На фиг, 4 показаны особенности формирования адресов в двух частях (соответственно, RAM1 и RAM2) накопителя 9, соответствующих двум m+1 разрядным частям кодов дво1829030
12 ичнсй разрядности, используемых в тракте данных блоков 6, 8, 9 и 10, на фиг, 5— диаграмма формирования результата.
Реализация изобретения позволяет производить накопление производительнаго количества чисел с плавающей запятой с меньшими ошибками округления с минимальными затратами времени на формирование результата.
Формула изобретения
1. Устройство для накопления чисел с плавающей запятой, содержащее блок суммирования, накопитель, формирователь рез у л ь т ". ò; à"",,блок управления, шины си; хронизации слова и массива, шину задания мантиссы и шину задания порядка, причем первый выход блока суммирования соединен с информационным входом накопителя. первый выход которого соединен с первым информационным входом блока сум лиронания, î T л 1 ч а ю щ е е с я тел1. что, с целью повышения быстродействия, н него введены формирователи адреса, анализатор, блок анализа порядка и блок преобразования мантиссы, первый информационный вход которого соединен с шиной задания мантиссы, а выход блока преобразования мантиссы соединен с aioрым информационным входом блока суммирования, первый выход которого соединен с входом данных анализатора, выход формирователя адреса соединен с адресными входами накопителя и анализатора. второй выход блока суммирования соединен с информационным входом формирователя результата, шина задания порядка соединена с информационным входом блока анализа порядка, первь:й выход которого соединен с вторым информационным входом блока преобразования мантиссы, второй выход блока анализа порядка соединен с первым информационным входом формирователя адреса, второй информационный вход которого соединен с выходом анализатора, синхровхсд и вход разрешения работы блока управления соединены с шинами синхронизации слова и массива устройства, вход и ризнака отсутствия данных которого соединен с выходом анализатора, вход признака минимального по модулю числа блока управления соединен с вторым выходом накопителя, вход признака переполнения
5 10
45 0 блока управления соединен с третьим выходом блока суммирования, первый выход блока управления является выходом lG!GBности результата устройства, второй выход блока управления сседи",ен с управляющим входом формирователя адреса, третий и четвертый выходы блока управленля соединены соответственно с управляющими входами накопителя и блока суммирования, пятый выход блока управления соединен с входом разрешения записи формирователя резуль-гата и входом управления анализатора.
2. Устройство по и. 1, о т и и ч а ю щ е— е с я тем, что анализатор содержит два дешифратора, два коммутатора, две группы элементов ИЛИ, блок памяти и шифратор, причем входы дешифраторов являются адресными входами анализатора, вход управления которого соединен с первыми входами элементов ИЛИ групп, выходы которых соединены соответственно с входами записи нулей в соответствующие ячейки блока памяти. входы записи единиц которого соединены соответственно с первыми группами выходов коммутаторов, выходы вторь,:х групп которых соединены соответственно с вторыми входами элементов ИЛИ групп, входы коммутаторов соединены соответственно с выходами дешифраторов, упра нfl я io щи м входом и нхсдсM данн blх анализатора, выход блока памятл соединен входом шифратора, выход кстсосгс является выходом анализатора, 3, Устройство по и. 1, о т л и ч а ю щ ее с я тем, что формирователь результата содержит умнсжитель днсй;- ой оззсядднсt сти, группу элементов ИЛИ и схему определения порядка, причем информационный вход формирователя результа."а соединен соответственно с входом схемы определения порядка и входами сомножителей умножителя двойной разрядности, выход которого соединeH с входами элементов
ИЛИ группы, выходы ксторых являются выходом мантиссы формирователя результата, выход порядка которого соединен с выходом схемы определения порядка, а вход разрешения записи формирователя результата соединен с входами разрешения записи сомножителей умнсжителя двойной разрядности, 1829030
1829030
1829030
1829030
Аг5
Составитель Б.Фельдман
Техред М. !"оргентал Корректор Л.Пилипенко
Редактор Т.Иванова
Производственно-издательский комбинат "Патент", г. Ужгород, ул.Гагарина, 101
Заказ 2475 Тираж Подписное
ВНИИПИ Государственного комитета по изобретениям и открытиям при ГКНТ СССР
113035, Москва, Ж-35, Раушская наб„4/5