Назад в библиотеку

ПОДДЕРЖКА ДИНАМИЧЕСКОЙ РАЗРЯДНОСТИ ПОСТБИНАРНЫХ ФОРМАТОВ ЧИСЕЛ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ

Автор: Иваница С.В., Кулибаба С.В., Аноприенко А.Я
Источник: http://ea.donntu.ru:8080/jspui/handle/123456789/15422

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

Введение

Постбинарные форматы чисел имеют ряд особенностей, отличающихся от классического1 представления чисел с плавающей запятой [1, 2]. В частности, над постбинарными форматами чисел плавающей запятой возможно использование методов динамического изменения разрядности, позволяющего, во-первых, эффективно использовать память для хранения чисел, и, во-вторых, повышать точность вычислений по сравнению с классическими типами чисел с плавающей запятой. В первом случае эффект достигается при переходе, если это возможно, к формату числа меньшей разрядности (т. е. меньшего класса точности). Во втором случае — при переходе к формату большего класса точности в качестве реакции на возникшие разного вида переполнения разрядной сетки числа. Также в ряде случаев возможность постбинарных форматов динамически изменять свою разрядность является средством приведения типов данных.

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

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

Критерии для измерения разрядности формата числа

В постбинарных форматах наряду с информационным полем (информационная часть формата), содержащим поля мантиссы, порядка и знака числа, присутствует поле служебной информации (служебная часть формата или поле идентификатора формата) [1, с. 198]. Такое отличие постбинарных форматов от классических делает возможным использование «плавающей» разрядности не нарушая общей логики работы вычислительного модуля. При этом основные алгоритмы обработки чисел с плавающей запятой подвергаются незначительной коррекции.

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

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

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

Механизм увеличения разрядности актуален в следующих случаях:

1) При согласовании типов данных (когда операнды имеют различный класс точности) и значение числа с большим форматом невозможно представить в меньшем формате.

2) На стадии выравнивания порядков, поскольку

сумма пикселей внутри прямоугольника

где E_A, E_B — значения смещенных порядков операндов A и В; Е_С — смещенный порядок результата C. При этом, меньший по исходному (не смещенному) значению порядок одного операнда нужно увеличивать (внося на каждом шаге коррекцию поля мантиссы), пока он не будет равен порядку второго операнда (фактически, порядку результата). Возникшее при этом либо переполнение порядка (в случаях E_A E_B, E_A E_B), либо потеря значимости мантиссы (при условии, что сдвигаемая за разрядную сетку часть мантиссы будет сохранена в специальном регистре) приведут к необходимости перехода к формату большего класса точности.

3) При выполнении арифметических операций между денормализованными и нормализованными операндами. При этом денормализованное число с плавающей запятой в постбинарном формате одного класса точности всегда будет нормализованным для формата большей разрядности. Это значит, что поле денормализованных чисел одного формата с разрядностью n гарантированно перекрывается полем нормализованных чисел другого формата с разрядностью 2n. Таким образом, достигается арифметика над постбинарными форматами чисел с плавающей запятой, представленными только в нормализованном виде, что исключает разработку «громоздких» алгоритмов работы с денормализованными постбинарными числами.

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

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

Реализация механизма динамической разрядности

Как и все составные блоки постбинарного сопроцессора, модель аппаратной реализации блока обеспечения динамической разрядности выполнена на языке HDL (Hardware Description Language). На рис. 2 приведена функциональная схема указанного блока.

На схеме операнды А и В — исходные операнды, которые обрабатываются в разрабатываемом устройстве. Необходимый операнд выбирается в блоке выборки операнда, в зависимости от результата предыдущей операции или команды на выполнение следующей операции. Блок управления служит для проверки на допустимость представления числа в текущем формате, или возможности изменения разрядности формата. Фактически, данный блок выполняет все действия по описанным ранее критериям. Для блока обработки порядка и блока обработки мантиссы обеспечена синхронная работа для одновременного выполнения различных преобразований над порядками и мантиссами форматов. Блок выравнивания порядков проверяет входные операнды, и в случае, когда их классы точности не позволяют производить между ними операции, выполняет выравнивание форматов. Для этих целей используются блоки обработки порядка и мантиссы. Блок «Результат» — фактически выходной регистр, хранящий результат вычислений в постбинарном формате оптимальной точности.

Блок-схема алгоритма обеспечения динамической разрядности

Рисунок 1. Блок-схема алгоритма обеспечения динамической разрядности

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

Рисунок 2. Функциональная схема блока обеспечения динамической разрядности

Выводы

Блок обеспечения динамического изменения разрядности при обработке данных, представленных в постбинарных форматах чисел с плавающей запятой, является ключевым, поскольку привносит новые возможности в обработку вещественных чисел на ЭВМ. Данная концепция практически исключает переполнение результата при выполнении арифметических операций над сколь угодно малыми или большими числами в любом их сочетании. Также решается вопрос о несогласования типов, при возникновении которого возможна арифметика над форматами одинарной и, например, восьмерной точности (оба операнда приводятся к формату одного класса точности, но не обязательно большего). При этом полученный результат, в зависимости от величины числа, может быть вновь приведен к формату числа одинарной точности. Также стоит отменить, что использование описанных подходов динамического изменения (особенно сокращения) разрядности не нарушает основной принцип «постбинарности» форматов: выполнение арифметических операций над мантиссами постбинарных форматов подобно выполнению аналогичных операций над тетракодами [4].

Перечень источников


[1] Аноприенко А.Я. Постбинарный компьютинг и интервальные вычисления в контексте кодо-логической эволюции / А.Я Аноприенко, С.В. Иваница – Донецк, ДонНТУ, УНИТЕХ, 2011. – 248 с.
[2] Аноприенко А.Я., Иваница С.В., Кулибаба С.В. Представление постбинарных форматов чисел с плавающей запятой в контексте интервальных вычислений. — Электронный ресурс. Режим доступа: http://www.nbuv.gov.ua/portal/natural/Npdntu_ikot/2011_14/2_01.pdf
[3] IEEE Standard for Floating-Point Arithmetic (IEEE 754). Материал из Википедии — свободной энциклопедии. Электронный ресурс. Режим доступа: http://en.wikipedia.org/wiki/IEEE_754-2008
[4] Иваница С.В., Аноприенко А.Я. Особенности реализации операций тетралогики // Научные труды Донецкого национального технического университета. Серия: «Информатика, кибернетика и вычислительная техника» (ИКВТ-2011) Выпуск 13 (185). — Донецк: ДонНТУ, 2011. С. 134– 140.