АСИНХРОННОЕ УСТРОЙСТВО ВЕКТОРНОГО ПОВОРОТА
ASYNCHRONOUS VECTOR TURN DEVICE

Изобретение относится к вычислительной технике и может быть использовано в цифро-сигнальных процессорах или в качестве отдельного блока. Устройство может применяться в вычислительных средах с автономным разделением функций.
Известны устройства векторного поворота, спроектированные на разных принципах обработки сигналов. Так, из патента США US 3927312 известно устройство поворота, выполняющее вращение вектора. На вход устройства подаются значения угла поворота, действительные и мнимые составляющие вектора, подлежащего вращению, а сами вычисления сводятся к операциям сдвига и сложения. Устройство характеризуется необходимостью синхронизации процессов сдвига-сложения и большими аппаратными затратами.
В патенте США US 4807171 раскрыто устройство для поэтапного осуществления вращения цифрового сигнала, в котором используются таблицы памяти для трансформации данных поворота сигнального вектора. Устройство характеризуется сложностью управления и используемого оборудования.
Известно устройство векторного вращения, содержащее таблицы памяти косинуса и синуса угла поворота, дешифраторы и умножители, образующие вычислительную структуру для угла определения поворота (см. патент США US 7239341). Устройство характеризуется сложностью управления и используемого оборудования.
i
i
i
0
0
1
1
2
2
3
3
4
4
5
5
Наиболее близким является устройство вращения вектора согласно патенту РФ RU 2475830, предназначенное для использования в высокопроизводительных вычислительных системах, в частности системах цифровой обработки сигналов. Это устройство вращения вектора содержит блок псевдовращений и блок нормировки, на вход которого подаются компоненты двумерного вектора. На выходах получают первую (ненулевую) компоненту результирующего вектора (нулевая компонента не выводится) и код угла поворота (значения величин σ=sign(xy)). Вход блока нормировки соединен с выходом блока псевдовращений. В составе цепочки каскадов блока нормировки имеются каскады, содержащие сумматоры, наряду с каскадами, содержащими вычитатели. Блок нормировки представляет собой шестизвенную цепочку каскадов, в которой выход предыдущего каскада соединен с входом последующего. В каждый каскад наряду с вычитателем (сумматором) входит регистр, причем в каждом каскаде вход регистра является входом каскада. Выход регистра соединен с первым входом вычитателя (сумматора), а выход вычитателя (сумматора) является выходом каскада. В первом каскаде цепочки k-й бит первого входа вычитателя соединен с k+1-м битом второго входа (δ=-1, k=1, k=1, m-1), а 1-й бит второго входа устанавливается в ноль. Во втором каскаде k-й бит первого входа сумматора соединен с k+2-м битом второго входа (δ=1, k=2, k=1, m=2), а биты второго входа с 1-го по 2-й устанавливаются в ноль. На третьем каскаде цепочки k-й бит первого входа вычитателя соединен с k+5-м битом второго входа (δ=-1, k=5, k=1, m-5), а биты второго входа с 1-го по 5-й устанавливаются в ноль. На четвертом каскаде k-й бит первого входа сумматора соединен с k+9-м битом второго входа (δ=1, k=9, k=1, m-9), а биты второго входа с 1-го по 9-й устанавливаются в ноль. На пятом каскаде k-й бит первого входа сумматора соединен с k+10-м битом второго входа (δ=1, k=10, k=1, m-10), а биты второго входа с 1-го по 10-й устанавливаются в ноль. На шестом каскаде k-й бит первого входа сумматора соединен с k+16-м битом второго входа (δ=1, k=16, k=1, m-16), а биты второго входа с 1-го по 16-й устанавливаются в ноль.
Все известные устройства, включая ближайший аналог, отличаются большими аппаратными затратами и сложностью в управлении, что влечет за собой необходимость тщательной настройки и синхронизации работы блоков.
Решаемая изобретением задача заключается в улучшении технико-эксплуатационных характеристик устройства векторного поворота.
Технический результат, полученный при использовании изобретения, заключается в снижении потребляемой мощности, упрощении конструкции асинхронного устройства векторного поворота, а также повышении его быстродействия при асинхронном обмене данными.
Для решения поставленной задачи с достижением заявленного технического результата асинхронное устройство векторного поворота содержит блок формирования синуса и косинуса угла поворота, блок сравнения с максимумом, блок умножения синуса и косинуса, блок формирования комбинации и блок формирования результата поворота. Вход блока формирования синуса и косинуса угла служит для ввода данных величины угла поворота. Первый вход и второй входы блока умножения синуса и косинуса служат соответственно для ввода данных синуса и косинуса исходного угла. Вход блока формирования синуса и косинуса угла поворота соединен с пятым входом блока формирования результата поворота. Первый выход и второй выход блока формирования синуса и косинуса угла поворота соединены соответственно с первым входом и вторым входом блока сравнения с максимумом. Первый выход блока сравнения с максимумом соединен с третьим входом блока умножения синуса и косинуса, а второй выход - с четвертым входом блока умножения синуса и косинуса. Первый, второй, третий и четвертый выходы блока умножения синуса и косинуса соединены соответственно с первым, вторым, третьим и четвертым входами блока формирования комбинации. Первый, второй, третий и четвертый выходы блока формирования комбинации соединены соответственно с первым, вторым, третьим и четвертым входами блока формирования результата поворота, первый и второй выходы которого служат выходами устройства.
Далее преимущества, а также особенности настоящего изобретения поясняются с помощью варианта его выполнения со ссылками на фигуры.
На фиг. 1 представлена функциональная схема заявленного устройства.
На фиг. 2 приведен вид входного сигнала (угол поворота вектора) для постоянных величин синуса (Y0=0,1736) и косинуса (Х0=0,9848).
На фиг. 3 приведены выходные сигналы синуса (кривая А) и косинуса (кривая Б) после поворота в диапазоне (0; п/4).
На фиг. 4 приведен входной сигнал угла поворота (кривая В) и выходной сигнал синуса (кривая Г).
На фиг. 5 приведен входной сигнал угла поворота (кривая Д) и выходной сигнал косинуса (кривая Е).
На фиг. 6 приведены выходные сигналы косинуса (кривая Ж) и синуса (кривая З).
Перечень позиций на фиг. 1:
1 - блок формирования синуса и косинуса угла поворота
2 - блок сравнения с максимумом
3 - блок умножения синуса и косинуса
4 - блок формирования комбинации
5 - блок формирования результата поворота
6, 7, 8 - входы
9-25 - шины данных (сигнальные)
26, 27 - выходы.
Асинхронное устройство векторного поворота (фиг. 1) содержит блок 1 формирования синуса и косинуса угла поворота, блок 2 сравнения с максимумом, блок 3 умножения синуса и косинуса, блок 4 формирования комбинации и блок 5 формирования результата поворота.
Вход 6 блока 1 формирования синуса и косинуса угла служит для ввода по шине 11 данных величины угла поворота. Первый вход 7 и второй вход 8 блока 3 умножения синуса и косинуса служат соответственно для ввода данных по шинам 9, 10 синуса и косинуса исходного угла. Вход 6 блока 1 формирования синуса и косинуса угла поворота соединен с пятым входом блока 5 формирования результата поворота. Первый выход и второй выход блока 1 формирования синуса и косинуса угла поворота соответственно по шинам 12 и 13 соединен с первым входом и вторым входом блока 2 сравнения с максимумом. Первый выход блока 2 сравнения с максимумом соединен по шине 15 с третьим входом блока 3 умножения синуса и косинуса, а его второй выход по шине 14 - с четвертым входом блока 3 умножения синуса и косинуса. Первый, второй, третий и четвертый выходы блока 3 умножения синуса и косинуса соединены соответственно шинами 16, 17, 18, 19 с первым, вторым, третьим и четвертым входами блока 4 формирования комбинации. Первый, второй, третий и четвертый выходы блока 4 формирования комбинации соединены соответственно шинами 20, 21, 22, 23 с первым, вторым, третьим и четвертым входами блока 5 формирования результата поворота. Первый и второй выходы блока 5 формирования результата поворота по шинам 24, 25 служат выходами 26 и 27 устройства.
Устройство работает следующим образом.
На входы 7 и 8 поступают исходные данные координат, которые надо повернуть на заданный угол, сформированный на входе 6. Сигналы на входы 7 и 8 поступают в формате чисел с фиксированной запятой, а сигнал на вход 6 поступает в формате радиан и соответствует максимальной величине поворота в градусах - 57° (в радианах это 1 рад., или в формате с фиксированной точкой - 0.1111…1, т.к. 90° эквивалентно примерно 1,57).
В блоке 1 формирования синуса и косинуса угла поворота данные преобразуются в интервале (-1; +1) фиксированного формата. При этом если угол поворота находится вне пределов этого формата, то это отслеживается при поступлении данных по шине 11 на блок 5 формирования результата поворота, в результате чего прибавляется единица к выходному значению, поскольку в этом случае величина превышает предельное значение в формате чисел с фиксированной точкой.
В блоке 2 сравнения с максимумом также производится оценка заданного угла поворота - этот угол больше или меньше 57° (больше или меньше 1), что эквивалентно предельной оценке данных с фиксированной запятой.
Информация о синусе и косинусе угла поворота с выхода блока 2 сравнения с максимумом поступает по шинам 14 и 15 в блок 3 умножения синуса и косинуса, в котором обеспечивается перемножение по формулам:
sinα×sinβ, sinα×cosβ, cosα×cosβ, cosα×sinβ,
где α - исходный угол в радианах, β - угол поворота в радианах.
Эти данные с четырех выходов блока 3 по четырем шинам 16, 17, 18, 19 поступают в блок 4 формирования комбинации, в котором вычисляются величины:
sinα×cosβ+cosα×sinβ,
cosα×cosβ-sinα×sinβ,
sinα×cosβ-cosα×sinβ,
cosα×cosβ+sinα×sinβ.
Сформированные данные необходимы для расчета результата операции поворота координат во всем диапазоне угла поворота, который может быть больше «1» (в радианах). Сигнал о превышении этого значения поступает в блок 5 формирования результата поворота по шине 11 (и в нем, как отмечалось выше, прибавляется или нет 1 к выходному значению).
Блок 5 формирования результата поворота осуществляет известные преобразования:
sin(α+β)=sin(α)×cos(β)+sin(β)×cos(α),
sin(α-β)=sin(α)×cos(β)-sin(β)×cos(α),
cos(α+β)=cos(α)×cos(β)-sin(α)×sin(β),
cos(α-β)=cos(α)×cos(β)+sin(α)×sin(β).
Результатом сравнения и выдачи результата соответственно по шинам 24 и 25 являются вычисления величин:
sin(α+β) или sin(α-β),
cos(α+β) или cos(α-β).
Указанные данные являются выходными на выводах 26 и 27.
Результаты моделирования заявленного устройства в среде Матлаб (Matlab/Simulink) представлены на фиг. 2-6.
На фиг. 2 приведен входной сигнал (угол поворота вектора) на входе 6 для постоянных величин синуса (Y0=0,1736) и косинуса (Х0=0,9848).
На фиг. 3 приведены выходные сигналы синуса (кривая А) и косинуса (кривая Б) после поворота в диапазоне (0; п/4).
На фиг. 4 приведены входной сигнал угла поворота (кривая В) и выходной сигнал синуса (кривая Г).
На фиг. 5 приведены входной сигнал угла поворота (кривая Д) и выходной сигнал косинуса (кривая Е).
На фиг. 6 приведены выходные сигналы косинуса (кривая Ж) и синуса (кривая З).
В результате удалось создать устройство асинхронного принципа действия, которое эффективно для вычислений методом последовательного приближения.
В данном устройстве решена задача вычисления угла поворота во всем диапазоне угловых изменений вектора; само же предлагаемое вычислительное устройство оперирует с данными с фиксированной запятой. Основным результатом работы заявленного устройства является снижение потребляемой мощности за счет асинхронного принципа его работы, т.е. устройство обрабатывает информацию только при наличии входных данных. Уменьшаются аппаратные затраты, поскольку не требуется временного интервала подготовки блоков для загрузки данных и вычисления окончания процесса итерации - это происходит в автоматическом режиме. Кроме того, повышается быстродействие устройства, т.к. отсутствует необходимость использования блока перевода данных с фиксированной запятой в данные с плавающей точкой. Эти три фактора значительно повышают эффективность использования заявленного асинхронного устройства векторного поворота.
Наиболее успешно заявленное асинхронное устройство векторного поворота промышленно применимо в цифро-сигнальных процессорах или в виде отдельного функционального блока. Данное устройство может широко применяться в вычислительных средах с автономным разделением функций с целью ускорения вычислительного процесса.