МАТРИЧНЫЙ СИГНАЛЬНЫЙ ПРОЦЕССОР ДЛЯ КАЛМАНОВСКОЙ ФИЛЬТРАЦИИ

Полезная модель относится к области вычислительной техники и может быть использована в различных областях науки и промышленности при создании устройств управления и цифровой обработки сигналов.
Из существующего уровня техники известен сигнальный процессор [Lapsley P. et al. DSP processor fundamentals: architectures and features. - New York, NY, USA: IEEE press, 1997]. Такое устройство содержит микропроцессорное ядро, дополнительные блоки памяти, блоки вычислительных операций.
Недостатками данного устройства является низкая производительность вычисления матричных операций за такт в задачах калмановской фильтрации.
Предлагаемая полезная модель направлена на решение технической задачи по устранению указанного недостатка.
Достигаемый при этом технический результат заключается в повышении производительности вычисления матричных операций за такт в задачах калмановской фильтрации.
Технический результат достигается тем, что матричный сигнальный процессор для калмановской фильтрации включает двухвходовые блоки памяти матричных операндов, подключенные к коммутатору, выходы и входы/выходы которого подключаются к блоку транспонирования, два выхода которого подключаются к двум блокам наложения шаблона, а два других входа/выхода блока транспонирования подключаются к блоку матричных операций, к которому также подключаются выходы блоков наложения шаблона, при этом блок матричных операций подключается к блоку скалярных операций и регистрам управления, которые также подключаются к микропроцессорному ядру, коммутатору, блоку транспонирования и блокам наложения шаблона.
Указанные признаки полезной модели являются существенными и совокупность этих признаков достаточна для получения требуемого технического результата.
Полезная модель поясняется следующим чертежом.
На фиг. 1 показана блок-схема заявляемой полезной модели. Она содержит двухвходовые блоки памяти матричных операндов 1 и 2, коммутатор 3, блок транспонирования 4, блоки наложения шаблона 5 и 6, блок матричных операций 7, блок скалярных операций 8, регистры управления 9, микропроцессорное ядро 10.
Работает устройство следующим образом. Микропроцессорное ядро 10, при помощи регистров управления 9 осуществляет выборку и запуск требуемой операции блока матричных операций 7, а также определяет параметры ее исполнения. Также микропроцессорное ядро 10 через регистры управления 9 устанавливает режим функционирования коммутатора 3, блоков наложения шаблона 5 и 6 и блока транспонирования 4, которые фиксируются на момент выполнения операции. После завершения операции информация об этом поступает от блока матричных операций 7 через регистры управления 9 на микропроцессорное ядро 10, которое при помощи коммутатора 3, конфигурируемого при помощи регистров управления 9, осуществляет коммутацию двухвходовых блоков памяти матричных операндов 1 и 2 на регистры управления 9, из которых микропроцессорное ядро 10 вычитывает результаты проведенной операции.
2L+K
Каждый из блоков наложения шаблона 5 и 6 в зависимости от установленного при помощи регистров управления 9 одного из четырех режимов работы передает в блок матричных операций 7 значения, вычитанные из двухвходовых блоков памяти матричных операндов 1 и 2 (режим 0) или «на лету» подменяет их на 1 (режим 1), 0 (режим 2) или -1 (режим 3). Блок транспонирования 4 осуществляет передачу данных между двухвходовыми блоками памяти матричных операндов 1 и 2, блоками наложения шаблонов 5 и 6 и блоком матричных операций 7, позволяя «на лету» менять между собой значения строки и столбца ячейки, вычитываемой или записываемой в матричную переменную, хранимую в двухвходовых блоках памяти матричных операндов 1 и 2. Блок матричных операций 7 включает в себя независимо аппаратно реализованные матричные операции сложения двух матриц, каждая из которых умножена на константу; умножения двух матриц; поэлементного умножения матриц; поэлементного извлечения квадратного корня; поэлементной инверсии матрицы; инверсии квадратной матрицы с нахождением ее определителя; быстрой инверсии матрицы 2×2 с нахождением ее определителя; декомпозиции Холецкого. Выбор того, какая операция будет использоваться следующей, осуществляется микропроцессорным ядром 10 при помощи регистров управления 9. Блок матричных операций 7 имеет вход для подключения двухвходового блока памяти матричных операндов, который будет использоваться для чтения операндов, и вход/выход для подключения двухвходового блока памяти матричных операндов, который будет использоваться для записи результатов операции. Вход блока матричных операций 7, используемый для чтения операндов, подключается к двухвходовым блокам памяти матричных операндов 1 и 2 через блоки наложения шаблона 5 и 6 и блок транспонирования 4. Вход/выход блока матричных операций 7, используемый для записи результатов операции, подключается к двухвходовым блокам памяти матричных операндов 1 и 2 через блок транспонирования 4. Коммутатор 3 осуществляет коммутацию двухвходовых блоков памяти матричных операндов / и 2, определяя какой из двух двухвходовых блоков памяти матричных операндов 1 или 2 будет в течении следующей операции скоммутирован на вход блока матричных операций 7, используемый для чтения операндов, а какой будет скоммутирован на вход блока матричных операций 7, используемый для записи результатов операции. Управление коммутатором 3 осуществляется микропроцессорным ядром 10 при помощи регистров управления 9. Также коммутатор позволяет коммутировать входы/выходы двухвходовых блоков памяти матричных операндов 1 и 2 на. регистры управления 9, позволяя микропроцессорному ядру 10 через них осуществлять чтение и запись матричных переменных. Двухвходовые блоки памяти матричных операндов 1 и 2 представляют из себя независимые блоки двухпортовой статической памяти объемом 2 ячеек, хранящих числа с фиксированной точкой, адресация которой построена таким образом, что старшие К-бит, адреса определяют номер матричной переменной, средние L-бит адреса определяют номер столбца элемента матричной переменной, а младшие L-бит адреса определяют номер строки элемента матричной переменной. Для проведения математических операций над отдельными элементами матричных переменных, блок матричных операций 7 передает их значения на соответствующие входы блока скалярных операций 8, который включает в себя независимо аппаратно реализованные два сумматора с поддержкой конвейеризации, два умножителя с поддержкой конвейеризации, один блок делений, один блок извлечения квадратного корня, и по завершении скалярной операции ее результат поступает на блок матричных операций 7.
Работоспособность была проверена на макете, который наглядно продемонстрировал получение требуемого технического результата. Предложенное устройство с К=2 и L=3 было реализовано при помощи программируемой логической интегральной схемы Xilinx Spartan 6, работающей с тактовой частотой 100 МГц. На базе устройства был реализован расширенный фильтр Калмана 5-го порядка, предназначенный для предсказания потокосцепления асинхронного двигателя, обеспечивающий расчет одной итерации фильтрации за 10 мкс. Аналогичный фильтр, реализованный на базе сигнального процессора Freescale МРС555, работающего с тактовой частотой 40 МГц, имел время расчета одной итерации 1000 мкс. Таким образом производительности вычисления матричных операций за такт в задачах калмановской фильтрации за счет применения полезной модели была повышена в 40 раз, что говорит о достижении заявленного технического результата.