Как увеличить эффективность встраиваемых процессоров


PDF версия

Симметричные многопроцессорные системы постепенно вытесняют однопроцессорные. Однако в мире встраиваемых приложений такая тенденция пока не наблюдается. Предлагаемый способ проектирования встраиваемых систем может помочь разработчикам распределить вычислительные функции по цифровой подсистеме.

Рассмотрим способ распределения вычислительных операций на примере программируемых систем на кристалле PSoC 3 (см. рис. 1) и PSoC 5 (Cypress Semiconductor). Данные кристаллы содержат ЦПУ (8051 или ARM Cortex M3), блок DMA и набор универсальных цифровых блоков (UDB).

Рис. 1. Блок-схема PSoC 3 (CY8C3866AXI)

Каждый блок UDB содержит следующие элементы:

– процессор для обработки данных;

– два мелкоструктурных PLD;

– модуль управления и определения статуса;

– таймер и модуль сброса.

Наиболее эффективное применение таких блоков UDB — использование их в качестве мини-процессоров. Если распределить по ним процесс вычисления, то скорость работы системы в целом повысится, поскольку она освободится от выполнения более простых вычислительных операций.

Распределение вычислительного процесса между отдельными блоками имеет ряд преимуществ, самое главное из которых — снижение энергопотребления за счет разгрузки ЦП. Освобождение ресурсов процессора от выполнения простых операций позволяет снизить частоту работы приложения без потери быстродействия. Кроме того, следует учитывать, что ЦП содержит на порядок больше логических элементов, чем UDB, поэтому при выполнении операции на цифровом блоке задействуется меньше логических элементов. Следовательно, расход энергии также сокращается.

Частично разгрузив ЦП, мы получаем еще одно преимущество: освободившиеся ресурсы можно направить на выполнение таких задач как, например, операции умножения и деления.

Архитектуры PSoC 3 и 5

Кристаллы PSoC 3 и PSoC 5 построены на одной и той же платформе, состоящей из четырех главных функциональных блоков: ЦПУ; цифровой блок; аналоговый блок; сеть программируемых межсоединений. Рассмотрим их более подробно.

Блок ЦПУ. В него входят процессор (8051 или ARM Cortex M3), система тактирования, схема управления питанием, системная память, а также все поддерживаемые IP-блоки, в т.ч. контроллер прерываний, устройства отладки и контроллер ПДП.

Цифровой блок. Цифровая схема семейств PSoC 3 и 5 образована, главным образом, набором гибко программируемых UDB. Цифровой блок является вторым ключевым звеном в формировании системы распределенных вычислений. Блоки UDB используются для реализации стандартных периферийных функций, например ШИМ, таймеров, интерфейсов (UART, SPI и др.) или схемы вычисления контрольной суммы. Наряду с этим, они используются для реализации специальных функций. Именно эта гибкость и объясняет популярность программируемых СнК в системах распределенной обработки.

Как мы уже говорили, аппаратная часть блока UDB состоит из 8-разрядного процессора обработки данных, PLD, схемы тактирования и сброса, блока статуса и контроля (см. рис. 2).

Рис. 2. Структурная схема блока UDB

Процессор в блоке UDB может выполнять стандартные функции, такие как сдвиг, сложение и сравнение операндов. Через трассировочный канал он соединен с блоком программируемой логики PLD. Матрицы PLD используются для реализации логических функций или таблиц соответствия LUT.

Цифровой блок содержит до 24 UDB и матрицу соединений для объединения нескольких UDB и выполнения более сложных и больших функций (см. рис. 3).

Рис. 3. Структура межсоединений блоков UDB

Аналоговый блок. В семействах PSoC 3 и PSoC 5 имеется высокопроизводительная программируемая аналоговая подсистема, которая содержит все компоненты для законченной реализации аналогового сигнального канала (аналоговые мультиплексоры, компараторы, смесители, ОУ, ИОН, АЦП, цифровой фильтр, ЦАП).

В контексте распределенной обработки сигнала аналоговый блок используется для первичной обработки входных аналоговых сигналов и пересылки их в цифровой блок или ЦП.

Сеть межсоединений. Подсистема межсоединений состоит из конфигурируемой трассировочной матрицы, которая подключена к центральному процессору, аналоговому и цифровому блокам и портам ввода-вывода. Конфигурация межсоединений позволяет пользователю определить, как распределяются сигналы по кристаллу, и создавать многопотоковые системы.

Пример системы распределенной обработки на основе СнК

Рассмотрев возможности СнК, можно перейти к вопросу создания системы распределенных вычислений. Обратимся к одному из существующих примеров — схеме управления сенсорным бесщеточным двигателем постоянного тока (AN53595).

Традиционная схема управления двигателем работает следующим образом. При его вращении изменяется логическое состояние одного из трех датчиков Холла. В соответствии с этими изменениями в МК генерируется прерывание, по которому схема управления принимает решение о том, какую из обмоток двигателя необходимо подключить к ШИМ и отрегулировать.

Недостаток этого подхода заключается в том, что ЦП обрабатывает слишком много прерываний, что снижает эффективность его работы. Проблема усугубляется в еще большей степени, если увеличить количество двигателей. Кроме того, нет гарантии, что датчики не сработают одновременно, сгенерировав два прерывания с одинаковым приоритетом. Эта ситуация может вызвать конфликт или зависание системы.

Для решения данной проблемы предложен следующий метод. С помощью матрицы PLD составляется таблица соответствия между сигналами с датчиков и обмотками двигателя. Другими словами, с ЦП снимается функция обработки прерываний.

Сигнал с датчика поступает сразу на PLD. Далее определяется, какой из двигателей следует подключить к ШИМ. При таком подходе ЦП прерывает работу только в том случае, если изменяется скорость вращения двигателя.

Другой пример распределенной обработки — использование ПДП для передачи большого объема данных, например запись с устройства I2S на устройство USB.

Если реализовать блок I2S с помощью UDB и использовать ПДП для передачи данных между двумя функциональными блоками, а модуль SRAM — как промежуточный при выполнении транзакции, то для контроля потока данных задействуется очень малая доля ресурсов процессора.

Такой способ использования ПДП особенно удобен в таких приложениях, где один протокол связи основан на импульсной передаче данных, а другой — на передаче с постоянной скоростью.

Заключение

Рассматривая встраиваемое приложение как набор функций обработки, которые можно разделить и распределить по блокам, разработчик может существенно оптимизировать работу системы и снизить потребление, что особенно важно для современных устройств.

Литература

1. Loren Hobbs. Increase embedded processor efficiency through the use of distributed processing blocks//www.embedded.com/columns/technicalinsights/221900829.

2. Isaac Sever. PSoC 3 BLDC sensored motor control//Application Note AN53595.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *