Воронеж, Россия
ГРНТИ 55.01 Общие вопросы машиностроения
ГРНТИ 55.13 Технология машиностроения
Приведен анализ арифметических устройств, осуществляющих операции над дискретными состояниями фаз синусоидального тока. Рассмотрена реализация ряда алгоритмов умножения в системе остаточных классов на основе таких вычислительных структур.
арифметические устройства, система остаточных классов, СОК
Введение
Развитие измерительной техники до уровня работы с сигналами порядка 100 ГГц [1] требует соответствующих возможностей от спецпроцессоров, позволяющих удешевить и уменьшить габариты конечного продукта за счет применения обработки информации вычислительными методами. Широкое использование цифровой электроники в аналогичных системах здесь же наталкивается на специфику рассматриваемой области измеряемых частот, естественно связанной с быстродействием. Выходом может стать активное внедрение системы остаточных классов (СОК) [2], позволяющей за счет малоразрядности вычетов более эффективно осуществлять арифметические операции сложения и умножения, которые являются основными в ЦОС [3]. Дополнительный рост быстродействия дает переход от цифровой обработки к тональной [4], т.е. кодированию чисел в СОК дискретными фазами гармонических сигналов одной частоты. Применение приборной базы на основе сверхпроводников [5] проявляет перспективу построения спецпроцессоров на основе обозначенных ранее принципов с производительностью субтерагерцового порядка. Проецирование наработанных алгоритмов ЦОС в СОК на структуры с дискретно-фазированным представлением чисел требует в первую очередь проработки вопросов функционирования устройств для сложения (вычитания) и умножения по модулю. Если первое достаточно просто и рассмотрено ранее [4], то второе несколько сложнее и является предметом данного исследования.
Основные алгоритмы цифровых устройств
Прежде чем перейти к тональным вычислительным операциям, рассмотрим цифровые алгоритмы. Как и сложение, умножение в СОК выполняется в параллельных трактах по соответствующим модулям без перекрестного обмена информацией между ними [2]. Реализация вычислений в кольце вычетов с гораздо меньшей по сравнению с позиционными числами разрядностью порождает более эффективные алгоритмы как в быстродействии, так и объеме оборудования. В качестве аппаратной основы могут использоваться несколько различных устройств: двоичные позиционные сумматоры, унитарные таблицы и кольцевые сдвиговые регистры [6; 7].
Самый простой вариант бинарных вычислений сводится к преобразованию операндов в унарный код, с дальнейшей выборкой правильного ответа на пересечении выбранных сигнальных линий через логический элемент И, с последующей дешифровкой результата. В силу коммутативности модулярных операций возможно сокращение аппаратных затрат [8].
Другие подходы основаны на идее максимально свести умножение к промежуточному сложению и вычитанию. В первую очередь таковым является метод, получаемый из квадратов суммы и разности:
.
Особенности данного алгоритма - необходимость возведения в квадрат и деление на четыре в СОК - приводят к повышенным аппаратным затратам, но в ряде случаев такой подход видится наиболее приемлемым.
Одним из столпов модулярной арифметики является теория индексов [2], представляющая из себя некоторый аналог логарифмических вычислений. Здесь каждому вычету γ по модулю m в заданной СОК ставится в соответствие уникальный индекс ind γ. При выполнении операции умножения сначала определяются индексы для каждого из операндов, затем производится их сложение, после чего происходит обратное преобразование через нахождение антииндекса.
Даже краткий обзор подходов к бинарному умножению на основе цифровых устройств показывает широкий выбор инструментов для решения аналогичной задачи в тональной форме. Тем не менее оперирование аналоговым сигналом имеет свои преимущества и недостатки, раскрыть которые в полной мере применительно к рассмотренным алгоритмам в рамках одной статьи невозможно.
Тональное умножение числа по модулю на константу
Если математическое выражение для обработки сигнала жестко задано и содержит константу k, которая не требует изменения, то в структуре спецпроцессора соответствующая операция может быть отображена в виде последовательного сложения операнда с самим собой (рис. 1а) [9].
На синхронизирующий вход поступает сигнал , а на информационные - гармоники , где , , m - модуль СОК. Процесс сложения двух вычетов γ как результат манипуляции с дискретными значениями фаз (СФ) изложен в [4]. Последовательная работа блоков СФ приводит к формированию на выходе устройства итоговой гармоники Для операции умножения на константу данное выражение принимает вид .
Если работа спецпроцессора иногда требует программной перестройки постоянных параметров системы, то это возможно осуществить на основе другого устройства умножения на константу (рис. 1б) [10]. Рассмотрим операцию умножения двух чисел Γ=А×В, где В представлено в виде полинома: . Здесь g - максимальное количество двоичных разрядов , применяемое для реализации константы В. Если целый остаток числа А по модулю m есть αm, а результат умножения по модулю m - это γm, то
.
а) б)
Рис. 1. Устройство умножения на константу: а - на основе
последовательного сложения двух операндов; б - на основе умножения на два
Для реализации алгоритма вычислений на дискретных блоках полученное выражение примет следующий вид:
Рис. 2. Арифметический вентиль
умножения на два
На синхронизирующий вход поступает сигнал , на информационный - гармоника , а константа представлена двоичным кодом, который замыкает соответствующие ключи, пропуская дальше S0 или S1. Для умножения вычета αm на два в дискретно-фазированной форме используется вентиль (рис. 2). Гармоника S1 увеличивает фазу на π/2, а в параллельной линии - амплитуду в два раза, после чего оба сигнала поступают на входы первого смесителя, где реализуется известное тригонометрическое выражение:
.
Полученная промежуточная гармоника удвоенной частоты перемножается на втором смесителе с синхронизирующей гармоникой S0, фаза которой увеличена на π/2 (т.е. ). При этом, согласно тригонометрическому выражению
,
после полосовой фильтрации более низкочастотной составляющей и усиления формируется результат в виде гармоники с единичной амплитудой и искомой результирующей фазой
.
Требуемая степень двойки набирается последовательным умножением на два необходимое количество раз. Последнее действие сложения всех разрядов происходит попарно на блоках СФ.
Тональное умножение двух чисел по модулю
Данная арифметическая операция формируется простейшим алгоритмом, заключающимся в последовательном сложении по модулю первого операнда с самим собой и выборе нужного результата через второй операнд (рис. 3).
Рис. 3. Тональное умножение двух
операндов по модулю
Работа начинается с подачи на входы устройства гармоник одной частоты:
- синхронизирующий: ;
- первый операнд:
;
- второй операнд:
,
где γa и γb - вычеты по модулю m, над которыми осуществляется операция умножения. Второй операнд претерпевает m-1 операций сложения по модулю, в результате чего на выходах блоков СФ формируются сигналы:
;
;
...