Устройство для определения знаков чисел в системе остаточных классов
Иллюстрации
Показать всеИзобретение относится к вычислительной технике и предназначено для выполнения операции определения знака числа, представленного в системе остаточных классов. Техническим результатом является повышение быстродействия и обеспечение контроля корректности определения знака. Устройство содержит группу входных регистров для хранения числа, представленного в коде симметричной системы остаточных классов, энергонезависимые регистры для хранения интервально-позиционной характеристики константы - наибольшего положительного числа в симметричной системе остаточных классов, блок вычисления интервально-позиционной характеристики, блок проверки правильности интервально-позиционной характеристики, блок сравнения интервально-позиционных характеристик, двухвходовой двоичный дешифратор. 3 ил.
Реферат
Изобретение относится к вычислительной технике и предназначено для выполнения операции определения знака числа, представленного в системе остаточных классов.
Известно устройство для определения знака числа, представленного в системе остаточных классов (А.С. SU №1552181, БИ №11, 23.03.1990), которое содержит блок 1 определения номера интервала, группу информационных входов 2 устройства, первую 3 и вторую 4 схемы сравнения, первый 5 и второй 6 элементы ИЛИ, первый 7 и второй 8 входы константы устройства, первый 9 и второй 10 выходы устройства. Данное устройство основано на выявлении принадлежности интервала, в котором находится число, представленное в системе остаточных классов (СОК), к группе положительных или отрицательных интервалов по данному основанию СОК pi, на которые разбит полный модулярный диапазон [0, P-1], где P - это произведение всех оснований СОК. Недостаток данного устройства - большая сложность и низкое быстродействие, поскольку для определения знака числа необходимо работать с (P/pi)-разрядными числами.
Наиболее близким к заявленному изобретению является устройство для определения знака модулярного числа, основанное на приближенном методе (А.С. RU №2503995, БИ №1, 10.01.2014), содержащее входные регистры по модулям p1, p2, …, pn для временного хранения разрядов СОК, параллельный сумматор для суммирования | P i ∗ / p i | p i α i , входные шины для подачи исходного числа, просмотровые таблицы для хранения произведений констант разрядов СОК | P i ∗ / p i | p i α i , представленных в двоичном коде. Однако данное устройство не позволяет проверить корректность определяемого знака в том случае, если число находится в непосредственной близости к точке, разбивающей весь числовой диапазон СОК на область положительных и отрицательных значений.
Техническим результатом заявляемого устройства для определения знаков чисел в системе остаточных классов является повышение быстродействия по отношению к устройствам, основанным на точных методах, и обеспечение контроля корректности определения знака. Представленные положения обеспечиваются за счет использования новой интервально-позиционной характеристики модулярной арифметики, которая аппроксимирует с двух сторон относительную величину числа в модулярном представлении.
Описание устройства: в основе функционирования заявляемого устройства для определения знаков чисел в системе остаточных классов лежит новый метод интервальной оценки относительной величины модулярного кода. Рассмотрим его.
Пусть базис СОК задан попарно взаимно простыми нечетными модулями p1, p2, …, pn и P = Π i = 1 n p i . Тогда целое число X из интервала [0, P-1] будет представлено в виде независимых наименьших неотрицательных остатков x1, x2, …, xn, причем x i ≡ X mod p i ↔ | X | p i . Позиционная величина числа X в соответствии с известной Китайской теоремой об остатках определяется соотношением
где B1, B2, …, Bn - ортогональные базисы СОК, каждый i-й из которых суть произведение чисел Pi=P/pi и | P i − 1 | p i . Здесь | P i − 1 | p i - это вес ортогонального базиса (мультипликативная инверсия от Pi по модулю pi).
Знак числа в системе остаточных классов может быть введен различными способами. Наиболее распространенным способом является использование симметричной СОК. При этом если P - нечетное число, то весь числовой диапазон [0, P-1] разбивается на два равных интервала [0, (P-1)/2] и [(P+1)/2, P-1], и положительные числа представляются в младшем интервале, а отрицательные - в старшем. Таким образом, задача определения знака числа X, представленного в симметричной СОК, сводится к определению его положения относительно точки разбиения (P-1)/2. Для решения этой задачи требуется оценка позиционной величины числа X. Поскольку вычисление его абсолютной величины (1) трудоемко в силу того, что каждое слагаемое имеет значение порядка произведения модулей P, и его длина может существенно превышать размер машинного слова, заявляемое устройство, также как и известный аналог (А.С. RU №2503995, БИ №1, 10.01.2014), основано на оценке относительной величины.
Относительная величина E(X/P) модулярного числа X - это отношение его позиционного целочисленного значения к произведению всех модулей P, то есть
Так как точное рациональное значение E(X/P), изменяющееся в полуинтервале [0, 1), в общем случае не представимо в ЭВМ с ограниченной разрядной сеткой, возникает задача его аппроксимации. Для решения этой задачи используется новая интервально-позиционная характеристика (ИПХ) I ( X / P ) = [ X / P _ , X / P ¯ ] , которая определяется как отрезок с направленно округленными границами X / P _ и X / P ¯ , удовлетворяющими условию X / P _ ≤ E ( X / P ) ≤ X / P ¯ . ИПХ проецирует диапазон СОК на полуинтервал [0, 1), ассоциируя всякое модулярное число X с парой округленных позиционных чисел - границ, которые локализуют его относительную величину, как показано на фиг.1.
Границы ИПХ представляются в виде двоичных чисел с плавающей точкой, причем при вычислении нижней границы всегда используется округление до разрядности машинного слова с недостатком («вниз»), а при вычислении верхней границы - округление до разрядности машинного слова с избытком («вверх»). За счет этого обеспечивается включение I(X/P)∈E(X/P), то есть точная относительная величина (2) модулярного числа X локализуется его ИПХ. Нижняя граница вычисляется по формуле
а верхняя граница - по формуле
где xi - i-ый остаток числа X, | |1 - дробная часть аргумента, а стрелки соответствуют направленным округлениям до разрядности машинного слова при вычислении и суммировании слагаемых: ↓ - округление с недостатком, ↑ - округление с избытком.
В последовательном случае для вычисления формул (3) и (4) требуется O(n) элементарных операций с плавающей точкой, в параллельном - O(log n). Для сравнения, известные алгоритмы преобразования кода из системы остаточных классов в систему со смешанными основаниями требуют соответственно O(n2) и O(n) операций.
Абсолютную погрешность ИПХ характеризует ее диаметр, равный разности границ
Пусть n - размерность базиса СОК, а k - разрядность мантисс в двоичном представлении границ ИПХ, тогда при вычислении по формулам (3) и (4) диаметр (5) не превышает n2-k. При необходимости более точного вычисления ИПХ вместо формул (3) и (4) может быть использован оригинальный высокоточный алгоритм (Исупов К.С. Алгоритм вычисления интервально-позиционной характеристики для выполнения немодульных операций в системах остаточных классов // Вестник ЮУрГУ. Серия «Компьютерные технологии, управление, радиоэлектроника». - 2014. - Т. 14, №1. - С. 89-97). Этот алгоритм основан на возможности быстрого и безошибочного деления границ ИПХ, представленных нормализованными двоичными числами с плавающей точкой, на натуральные степени двойки и позволяет вычислить ИПХ с относительной ошибкой, определяемой для X≠0 отношением диаметра (5) к точной относительной величине (2), не превышающей априорно заданного предела ε, тем самым получить высокоточную информацию о величине числа в модулярном представлении без использования многоразрядной арифметики и трудоемкого преобразования в позиционную систему.
За счет направленных округлений погрешности, возникающие при вычислении границ ИПХ, приводят лишь к увеличению диаметра (5), не оказывая в общем случае влияния на свойство включения E(X/P)∈I(X/P). Но поскольку область значений границ ограничена полуинтервалом [0, 1), в ряде случаев указанное свойство может нарушаться. Это происходит тогда, когда число X очень мало по отношению к P, либо наоборот, находится в непосредственной близости с точкой P-1. В первом случае неправильно вычисляется нижняя граница ИПХ, а во втором - верхняя. В любом случае diam I(X/P)<0, т.е. нижняя граница больше верхней. Такая ИПХ называется неправильной по Каухеру или просто неправильной. Первое формальное условие корректного определения знака - правильность ИПХ числа X, представленного в симметричной СОК. Если это условие выполняется, то окончательный вывод о корректности знака формулируется на основании проверки второго формального условия, состоящего в отсутствии пересечения (коллизии) ИПХ I ( X / P ) = [ X / P _ , X / P ¯ ] и ИПХ I ( P − 1 2 P ) = [ P − 1 2 P _ , P − 1 ¯ 2 P ] , локализующая относительную величину константы (P-1)/2, которая является наибольшим положительным числом в симметричной СОК (медианой модулярного диапазона). В терминах интервального исчисления это пересечение определяется интервалом
Если диаметр (5) этого интервала меньше нуля, то ИПХ не пересекаются в стандартном теоретико-множественном смысле, т.е. не содержат общих точек. В вырожденном случае может оказаться, что X=(P-1)/2. Поэтому второе формальное условие корректного вычисления знака числа определяется следующим образом:
Пусть в симметричной СОК с модулями p1, p2, …, pn дано число X=〈x1, x2, …, xn〉. Алгоритм определения знака sgn(X) числа X на основе использования техники интервально-позиционных характеристик формулируется следующим образом.
АЛГОРИТМ.
Шаг 0. Заранее вычисляется и сохраняется в памяти ЭВМ ИПХ I ( P − 1 2 P ) , представленная в виде двух двоичных чисел с плавающей точкой, P − 1 2 P _ и P − 1 ¯ 2 P . Кроме этого предварительно вычисляется следующий набор мультипликативных инверсий - весов ортогональных базисов СОК
Шаг 1. Для числа X вычисляется I ( X / P ) = [ X / P _ , X / P ¯ ] по формулам (3) и (4), либо с использованием высокоточного алгоритма (Исупов К.С. Алгоритм вычисления интервально-позиционной характеристики для выполнения немодульных операций в системах остаточных классов // Вестник ЮУрГУ. Серия «Компьютерные технологии, управление, радиоэлектроника». - 2014. - Т. 14, №1. - С. 89-97).
Шаг 2. Проверяется первое формальное условие корректного определения знака: если X / P ¯ ≥ X / P _ , то условие выполняется. В этом случае выполняется переход к шагу 3, иначе - к шагу 5.
Шаг 3. Если X / P ¯ ≤ P − 1 2 P _ , то X - положительное число в симметричной СОК. При этом алгоритм завершается с результатом sgn(X)=0. Иначе выполняется переход к шагу 4.
Шаг 4. Если X / P _ > P − 1 ¯ 2 P , то X - отрицательное число в симметричной СОК. При этом алгоритм завершается с результатом sgn(X)=1. В противном случае диаметр интервала (6) является неотрицательным (нарушено второе формальное условие корректного определения знака числа) и необходимо выполнить переход к шагу 5.
Шаг 5. Если повышение точности вычисления ИПХ на шаге 1 неосуществимо в рамках разрядности используемых форматов представления данных, то необходимо преобразовать число X из СОК в систему счисления со смешанными основаниями и определить его знак на основании сравнения цифр полученного полиадического кода с соответствующими цифрами заранее вычисленного полиадического кода числа (P-1)/2, либо сформировать и выдать сигнал о невозможности определения знака числа X из-за недостаточной точности вычисления его ИПХ. Алгоритм при этом завершается.
ПРИМЕР.
Требуется определить знак модулярного числа X=〈6, 8, 10, 1〉, представленного в симметричной СОК.
1. Вычислим константы:
− И П Х I ( P-1 2P ) = [ 0,49, 0,50 ] ;
- набор весов ортогональных базисов (7):{6, 5, 9, 10}.
2. Вычисляем ИПХ числа X по формулам (3) и (4) с округлением до двух разрядов
Таким образом, получена ИПХ I(X/P)=[0,52, 0,56], которая является правильной, значит первое формальное условие корректного определения знака числа выполнено.
3. Условие X / P ¯ ≤ P − 1 2 P _ не выполняется (0,56>0,49), переходим к следующему шагу.
4. Сравниваем противоположные границы ИПХ: 0,52>0,50, следовательно, X - отрицательное число в симметричной СОК и sgn(X)=1.
5. Проверка: P=9009, (P-1)/2=4504, преобразование в десятичную систему дает X=4850. Таким образом, число X лежит во второй половине полного диапазона, поэтому является отрицательным в симметричной системе остаточных классов.
Схема заявляемого устройства для определения знаков чисел в системе остаточных классов, функционирующего в соответствии с представленным алгоритмом, приведена на фиг.2. Устройство содержит группу входных регистров 1 для хранения числа, знак которого необходимо определить, энергонезависимые регистры 2, 3 для хранения соответственно нижней P − 1 2 P _ и верхней P − 1 ¯ 2 P границ интервально-позиционной характеристики I ( P − 1 2 P ) , которая локализует относительную величину наибольшего положительного числа (P-1)/2 в симметричной СОК, блок вычисления интервально-позиционной характеристики 4, блок проверки правильности интервально-позиционной характеристики 5, блок сравнения интервально-позиционных характеристик 6, двухвходовой двоичный дешифратор 7. Группа входных регистров 1 предназначена для хранения числа X, представленного в дополнительном коде (в симметричной системе остаточных классов) в виде n-кортежа (где n - количество модулей СОК) и поступающего по входной шине данных 8, и содержит регистры 1.1, 1.2, …, 1.n, выходы которых соединены с информационными входами блока 4. Выходы блока 4 соединены с входами блока 5, а также с первыми двумя входами блока 6. Выход энергонезависимого регистра 2 соединен с третьим входом блока 6, а выход энергонезависимого регистра 3 соединен с четвертым входом блока 6. Выход блока 5 соединен с управляющим входом блока 6. Выходы блока 6 соединены со входами дешифратора 7. Выходы дешифратора 7 соединены с выходными шинами 9, 10, 11.
Работа заявляемого устройства для определения знаков чисел в системе остаточных классов осуществляется следующим образом. Заранее и однократно вычислена интервально-позиционная характеристика I ( P − 1 2 P ) = [ P − 1 2 P _ , P − 1 ¯ 2 P ] аппроксимирующая с двух сторон относительную величину константы (P-1)/2, где P - произведение всех модулей СОК. В энергонезависимые регистры 2 и 3 записаны значения нижней и верхней ее границ, P − 1 ¯ 2 P и P − 1 ¯ 2 P соответственно. Числом X=〈x1, x2, …, xn〉, представленном в дополнительном модулярном коде, поступает по входной шине данных 8 и записывается в группу 1 входных регистров. Из группы регистров 1 данные подаются на входы блока 4, в котором осуществляется вычисление ИПХ I(X/P). Вычисленная ИПХ, которая представляется в виде двух двоичных чисел с плавающей точкой, X / P _ и X / P ¯ , подается на блоки 5 и 6. Блок 5 производит сравнение границ X / P _ и X / P ¯ : если X / P ¯ ≥ X / P _ , то на соответствующий управляющий вход блока 6 подается сигнал логической единицы. Если X / P ¯ < X / P _ , то на соответствующий управляющий вход блока 6 подается сигнал логического нуля. В блоке 6 осуществляется последовательное сравнение границ ИПХ: X / P ¯ с P − 1 2 P _ и X / P _ с P − 1 ¯ 2 P и результат подается на входы дешифратора 9: если X / P ¯ ≤ P − 1 2 P _ , то на первом и втором выходах блока 6 формируются сигналы логического нуля; если X / P _ > P − 1 ¯ 2 P , то на первом выходе блока 6 формируется сигнал логического нуля, а на втором выходе блока 6 формируется сигнал логической единицы; в противном случае, а также если на управляющем входе блока 6 установлен логический ноль, на обоих выходах блока 6 формируются сигналы логической единицы. Дешифратор 7 работает следующим образом: если на обоих его входах установлены сигналы логического нуля (код «00»), то подается сигнал на шину 9, свидетельствующий о том, что X - неотрицательное число; если на первом входе установлен логический ноль, а на втором - логическая единица (код «01»), то подается сигнал на шину 10, свидетельствующий о том, что X - отрицательное число; если на обоих входах дешифратора 7 установлены сигналы логической единицы (код «11»), то подается сигнал на шину 11, свидетельствующий о том, что знак числа X не может быть определен в силу недостаточной точности вычисления интервально-позиционной характеристики. Код «10», установленный на входе дешифратора 7, является запрещенным и свидетельствует об аппаратном сбое.
Пример работы заявляемого устройства представлен на фиг.3. В данном примере определялся знак числа X=〈0, 1, 8, 3〉, представленного в симметричной СОК с модулями {7, 9, 11, 13}. Интервально-позиционная характеристика вычислялась в блоке 4 с округлением до двух значащих десятичных цифр после запятой.
Трудоемкость заявляемого устройства оценивается следующим образом. Для вычисления нижней границы ИПХ X / P _ по формуле (3) в блоке 4 необходимо выполнить n умножений модулярных разрядов xi на мультипликативные инверсии | P i − 1 | p i , n делений полученных произведений на модули pi с округлением «вниз» (переключение режима округления арифметико-логического устройства (АЛУ) требует выполнения одной операции - загрузки предустановленной маски в регистр управления), n-1 сложений с накоплением и одну операцию получения дробной части результатной суммы. Следовательно, вычисление нижней границы ИПХ требует выполнения 3n+1 арифметических операций с плавающей точкой. Если нижняя граница уже вычислена, то для вычисления верхней границы X / P ¯ по формуле (4) в блоке 4 не нужно повторно умножать мультипликативные инверсии на остатки числа xi, остается выполнить одно переключение АЛУ в режим округления «вверх», n делений, n-1 сложений и одно отбрасывание целой части суммы, итого 2n+1 операций. В общей сложности при последовательном вычислении ИПХ в соответствии с формулами (3) и (4) необходимо выполнить в общей сложности 5n+2 арифметических операций с плавающей точкой. Одну операцию сравнения позиционных чисел требуется выполнить в блоке 5 и максимум две операции сравнения позиционных чисел требуется выполнить в блоке 6. Задержка на блоке 7 определяется лишь временем работы двоичного дешифратора и не оказывает существенного влияния на трудоемкость. Таким образом, в общей сложности для определения знака числа, представленного в n-модульной СОК, требуется выполнить 5(n+1) арифметических операций с плавающей точкой, при условии достаточной точности вычисления ИПХ. В среднем n(n-1) операций над остатками требуется для преобразования числа из n-модульной СОК в систему счисления со смешанными основаниями в соответствии с алгоритмом, представленным в публикации ученых Н.М. Yassine и W.R. Moore (Improved mixed-radix Conversion for Residue Number Architectures // Circuits, Devices and Systems, IEEE Proceedings, 1991, Vol.138, Issue 1, P. 120-124). Сравнение цифр полученного кода в системе со смешанными основаниями с соответствующими цифрами предопределенной константы (наибольшего положительного числа в симметричной СОК) потребует в худшем случае еще n операций. Таким образом, для определения знака числа с помощью устройства на базе метода преобразования модулярных представлений в систему счисления со смешанными основаниями требуется выполнить в среднем n2 арифметических операций. Следовательно, эффект повышения быстродействия от использования заявляемого устройства может достигать n2/5(n+1) раз, где n - количество модулей СОК.
Устройство для определения знаков чисел в системе остаточных классов, содержащее группу из n входных регистров, для хранения числа, представленного в симметричной системе остаточных классов, отличающееся тем, что содержит первый и второй энергонезависимые регистры для хранения соответственно нижней P − 1 2 P _ и верхней P − 1 ¯ 2 P границ интервально-позиционной характеристики I ( P − 1 2 P ) , которые представлены в виде двоичных чисел с плавающей точкой и приближают с двух сторон относительную величину наибольшего положительного числа (P-1)/2 в симметричной системе остаточных классов, где P - произведение всех n модулей системы остаточных классов,
блок вычисления интервально-позиционной характеристики, который функционирует по принципу двоичного арифметико-логического устройства с плавающей точкой с возможностью переключения режимов округления и имеет n информационных входов и два выхода,
блок проверки правильности интервально-позиционной характеристики, который имеет два информационных входа и один выход,
блок сравнения интервально-позиционных характеристик, имеющий четыре информационных входа, один управляющий вход и два выхода, двоичный дешифратор, имеющий два входа и четыре выхода,
причем выходы группы входных регистров соединены с информационными входами блока вычисления интервально-позиционной характеристики,
первый и второй выходы блока вычисления интервально-позиционной характеристики соединены соответственно с первым и вторым входами блока проверки правильности интервально-позиционной характеристики, а также с первым и вторым информационными входами блока сравнения интервально-позиционных характеристик,
выходы первого и второго энергонезависимых регистров соединены соответственно с третьим и четвертым информационными входами блока сравнения интервально-позиционных характеристик
выход блока проверки правильности интервально-позиционной характеристики соединен с управляющим входом блока сравнения интервально-позиционных характеристик,
первый и второй выходы блока сравнения интервально-позиционных характеристик соединены соответственно с первым и вторым входами двоичного дешифратора,
выходы двоичного дешифратора являются выходами устройства для определения знака числа в системе остаточных классов: «X≥0», «X<0», «Знак не определен».
Устройство для определения знаков чисел в системе остаточных классов, содержащее группу из n входных регистров, для хранения числа, представленного в симметричной системе остаточных классов, отличающееся тем, что содержит первый и второй энергонезависимые регистры для хранения соответственно нижней и верхней границ интервально-позиционной характеристики , которые представлены в виде двоичных чисел с плавающей точкой и приближают с двух сторон относительную величину наибольшего положительного числа (P-1)/2 в симметричной системе остаточных классов, где P - произведение всех n модулей системы остаточных классов,блок вычисления интервально-позиционной характеристики, который функционирует по принципу двоичного арифметико-логического устройства с плавающей точкой с возможностью переключения режимов округления и имеет n информационных входов и два выхода,блок проверки правильности интервально-позиционной характеристики, который имеет два информационных входа и один выход,блок сравнения интервально-позиционных характеристик, имеющий четыре информационных входа, один управляющий вход и два выхода, двоичный дешифратор, имеющий два входа и четыре выхода,причем выходы группы входных регистров соединены с информационными входами блока вычисления интервально-позиционной характеристики,первый и второй выходы блока вычисления интервально-позиционной характеристики соединены соответственно с первым и вторым входами блока проверки правильности интервально-позиционной характеристики, а также с первым и вторым информационными входами блока сравнения интервально-позиционных характеристик,выходы первого и второго энергонезависимых регистров соединены соответственно с третьим и четвертым информационными входами блока сравнения интервально-позиционных характеристик,выход блока проверки правильности интервально-позиционной характеристики соединен с управляющим входом блока сравнения интервально-позиционных характеристик,первый и второй выходы блока сравнения интервально-позиционных характеристик соединены соответственно с первым и вторым входами двоичного дешифратора,выходы двоичного дешифратора являются выходами устройства для определения знака числа в системе остаточных классов: «X≥0», «X<0», «Знак не определен».