Изобретение относится к вычислительной технике и может быть использовано для определения знаков модулярных чисел, входящих в вычислительные устройства, функционирующие в системе остаточных классов. Известно устройство, для определения знаков числа, представленное в системе остаточных классов (А.С. № 1552181, БИ №11, 1990), состоящее из блока 1 определения номера интервала, схем 3 и 4 сравнения, элементов «или» 5 и 6. Однако данное устройство обладает следующими недостатками: низкое быстродействие и большие аппаратные затраты. Наиболее близким по технической сущности к заявленному устройству является устройство для определения знака числа, представленного в системе остаточных классов (А.С. № 1674121, БИ №32, 1991), содержащее блок определения номера интервала, схемы сравнения, группы шифрования и дешифрования, сумматор и логические элементы «или».
Недостатками известного устройства являются малая скорость определения знака числа и большие аппаратные затраты.
Целью настоящего изобретения является повышение быстродействия и сокращение аппаратных затрат.
Поставленная цель достигается тем, что в известном устройстве введены просмотровые таблицы (LUT) и параллельный сумматор.
Рассмотрим метод определения знака числа, обладающий высоким быстродействием и низкими затратами оборудования. Суть метода быстрого определения знака модулярного числа основан на использовании китайской теореме об остатках числа, которая связывает позиционное число А с его представлениями в остатках (α1, α2, …, αn), где αi наименьшие неотрицательные остатки числа по модулям p1, p2, …, pn.
Цифры αi данного представления по выбранным модулям образуются следующим образом
где
Известна Китайская теорема об остатках, которая связывает позиционное число А с его представлением в остатках (α1, α2,…,αn), где αi - наименьшие неотрицательные вычеты числа, относительно модулей системы остаточных классов p1, p2, …, pn следующим выражением
где
Если (3) разделить на константу P, то получим приближенное значение
где
Рассмотрим случай, когда рабочий диапазон разбит на два интервала
Известно, что при кодировании дополнительным кодом, отрицательная часть динамического диапазона находится у верхнего предела полного диапазона. Положительные числа из дополнительного диапазона отображаются на область
Это обстоятельство может привести к ошибке сравнения, так как отрицательные числа попадают в верхнюю часть полного диапазона, и все отрицательные числа будут давать ошибки, что не соответствует действительности в силу разнесения динамического диапазона.
Для преодоления этой трудности необходимо произвести сдвиг отрицательной области путем вращения остаточного кольца в положение, указанное на рисунке 2. Пунктиром показана область, которая перенесена в начало диапазона.
В результате отрицательные числа будут отображены в начальной части динамического диапазона.
Показанное на рисунке 2 вращение, называется сдвигом полярности и его можно осуществить путем прибавления перед сравнением модулярных чисел константы
Если
Рассмотренный метод определения такой позиционной характеристики модулярного кода, как определение знака числа, показал, в отличие от известных, простоту его вычисления, так как для его реализации не используется вычисление коэффициентов ОПСС, которое требует больших аппаратных и временных затрат. По этой причине данный метод представляет собой особую важность и является одним из лучших решений на настоящее время. Перечисленные операции являются важнейшими для машинной модулярной арифметики и их применение может дать значительные преимущества не только в таких приложениях, в которых основная доля вычислений приходится на точное умножение, возведение в степень больших чисел в сочетании со сложением и вычитанием, но и в которых довольно часто появляется необходимость сравнения и определения знака числа. Известно, что теорема кодирования Сабо гласит, что нет лучших методов определения позиционных характеристик, при которых не используется их однозначность, чем перевод чисел из СОК в ОПСС, поскольку величины числа в модулярном представлении существенным образом зависят от всех остатков числа. Однако проведенные исследования по определению приблизительных характеристик, которые решают задачу формирования конструкций сравнения, не отвечают утверждению указанной теоремы Сабо. Таким образом можно сделать вывод о том, что теорема Сабо работает только при точных методах.
Для повышения эффективности обработки данных в модулярной арифметике рассмотрим приложения приблизительных методов для определения знака числа.
Определение знака модулярных чисел
Известно, что для определения знака числа используются номера интервалов, в которых расположено число, что позволяет получить оценку исследуемого числа по его величине с точностью до величины интервала. Числовой диапазон P может быть разбит на pi интервалов величиной
В качестве второго машинного нуля выбирается точка числового диапазона
Если дано представление (α1, α2,…,αn), то для того чтобы установить знак числа, которое оно представляет, достаточно решить задачу о принадлежности этого числа к определенному интервалу. В случае если pi=2 достаточно решить задачу о принадлежности этого числа к первой
На рисунке 3 приведена схема устройства для определения знака модулярного числа по модулям p1, p2, …, pn.
Устройство состоит из входных регистров 3 по модулям p1, p2, …, pn, для временного хранения разрядов СОК (каждый разряд СОК представлен двоичным кодом), просмотровых таблиц (LUT) для хранения произведения констант разрядов СОК.
Работа устройства для определения знака модулярного числа определяется следующим образом.
На входные регистры (RGi) 3 по входам 1 устройства для определения знака числа подается исходное число, представленное в системе остаточных классов A=(α1, α2,…,αn). На выходе 2 формируется знак модулярного числа. Выходы регистров являются адресными входами просмотровых таблиц (LUT) (память), в элементах которых хранятся значения
Код числа A, для которого необходимо определить интервал, что равносильно определению знака числа, поступает на входные регистры RGi в двоичном коде (каждый разряд СОК кодируется двоичным кодом). Сигналы с выходов регистров поступают на входы просмотровых таблиц LUT. В просмотровых таблицах хранятся произведения констант ki и остатков αi, то есть
Выходные сигналы просмотровых таблиц в дополнительном двоичном коде поступают на вход сумматора, в котором уже записана константа 0,5 во время начальной установки. (Дополнительный код используется для того, чтобы операцию вычитания заменить операцией сложения). Знак результата сложения определяет интервал: первый или второй, что соответственно определяет знак числа.
Пример 4. Пусть дана система оснований p1=2, p2=3, p3=5, p4=7. Тогда P=210. Константы ki соответственно равны k1=0,5, k2≈0,3333, k3=0,6, k4≈0,5714.
Дано число A=(1, 1, 2, 0). Требуется определить знак числа A.
Решение. В регистры RG1=1, RG2=1, RG3=2, RG4=0. В соответствии с этими значениями регистров (адресные входы LUT) на выходах которых формируются значения LUT1=0,5, LUT2=0,3333·1=0,3333,
Таким образом, при суммировании в знаковом разряде сумматора будет 0, что говорит о том, что число находится в первом интервале, поэтому
Определение знака осуществляется за n суммировании, где n - число оснований (модулей) СОК. Время суммирования определяется логической глубиной устройства (количество последовательно соединенных элементов) и временем суммирования сумматора. Для уменьшения времени суммирования, схему сумматора можно реализовать по принципу дерева (рекурсивного сдваивания). Кроме того реализация сумматора может быть выполнена на искусственных нейронных сетях.
название | год | авторы | номер документа |
---|---|---|---|
УСТРОЙСТВО ДЛЯ СРАВНЕНИЯ ЧИСЕЛ, ПРЕДСТАВЛЕННЫХ В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ | 2011 |
|
RU2503992C2 |
УСТРОЙСТВО ДЛЯ ОБНАРУЖЕНИЯ ПЕРЕПОЛНЕНИЯ ДИНАМИЧЕСКОГО ДИАПАЗОНА, ОПРЕДЕЛЕНИЯ ОШИБКИ И ЛОКАЛИЗАЦИИ НЕИСПРАВНОСТИ ВЫЧИСЛИТЕЛЬНОГО КАНАЛА В ЭВМ, ФУНКЦИОНИРУЮЩИХ В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ | 2011 |
|
RU2483346C1 |
НЕЙРОННАЯ СЕТЬ ДЛЯ ОБНАРУЖЕНИЯ, ЛОКАЛИЗАЦИИ И ИСПРАВЛЕНИЯ ОШИБОК В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ | 2005 |
|
RU2301442C2 |
НЕЙРОННАЯ СЕТЬ ДЛЯ ПРЕОБРАЗОВАНИЯ ОСТАТОЧНОГО КОДА В ДВОИЧНЫЙ ПОЗИЦИОННЫЙ КОД | 2006 |
|
RU2318238C1 |
УСТРОЙСТВО ДЛЯ ОСНОВНОГО ДЕЛЕНИЯ МОДУЛЯРНЫХ ЧИСЕЛ | 2013 |
|
RU2559771C2 |
НЕЙРОННАЯ СЕТЬ ДЛЯ ДЕЛЕНИЯ ЧИСЕЛ, ПРЕДСТАВЛЕННЫХ В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ | 2005 |
|
RU2305312C2 |
НЕЙРОННАЯ СЕТЬ УСКОРЕННОГО МАСШТАБИРОВАНИЯ МОДУЛЯРНЫХ ЧИСЕЛ | 2007 |
|
RU2359325C2 |
НЕЙРОННАЯ СЕТЬ ДЛЯ ДЕЛЕНИЯ ЧИСЕЛ, ПРЕДСТАВЛЕННЫХ В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ | 2006 |
|
RU2318239C1 |
Устройство обнаружения и коррекции ошибки модулярного кода | 2017 |
|
RU2653257C1 |
УСТРОЙСТВО РАСШИРЕНИЯ ОСНОВАНИЙ МОДУЛЯРНОГО КОДА | 2014 |
|
RU2562366C1 |
Устройство относится к вычислительной технике и может быть использовано в вычислительных системах, функционирующих в системе остаточных классов. Техническим результатом является повышение быстродействия устройства определения знака числа и сокращения оборудования. Устройство содержит входные регистры для временного хранения разрядов исходного числа, память для хранения произведений и параллельный сумматор. 3 ил.
Устройство для определения знака модулярного числа, отличающееся тем, что в него введены входные регистры по модулям p1, p2, …, pn, для временного хранения разрядов СОК, параллельный сумматор для суммирования
Устройство для определения знака числа, представленного в системе остаточных классов | 1989 |
|
SU1674121A1 |
Устройство для определения знака числа, представленного в системе остаточных классов | 1988 |
|
SU1552181A1 |
УСТРОЙСТВО ДЛЯ ОПРЕДЕЛЕНИЯ ПОЗИЦИОННЫХ ХАРАКТЕРИСТИК НЕПОЗИЦИОННОГО КОДА | 1991 |
|
RU2020756C1 |
US 2011231456 A1, 22.09.2011. |
Авторы
Даты
2014-01-10—Публикация
2011-09-26—Подача