Оптимизация энергопотребления микроконтроллерных систем
Автор: Кафтанников Игорь Леопольдович, Руднев Владислав Андреевич
Рубрика: Краткие сообщения
Статья в выпуске: 2 т.13, 2013 года.
Бесплатный доступ
На сегодняшний день в мире электроники прослеживаются две тенденции: увеличение вычислительной мощности и снижение энергопотребления. Появление устройств с большими вычислительными возможностями и низким энергопотреблением дает возможность вместо громоздких устройств применять компактные приборы с аккумуляторным и батарейным питанием. Для того чтобы такие устройства работали без подзарядки как можно дольше и при этом сохраняли свою компактность, разработчики применяют множество способов по снижению энергопотребления. В этой статье рассматриваются различные способы по оптимизации потребления энергии устройствами, основным элементом которых является микроконтроллер. Производится обзор программных, архитектурных и схемотехнических способов снижения потребления, рассмотрены их достоинства и недостатки, а также возможность применения их в комплексе. Упомянуты принципиально новые архитектуры вычислительных систем, которые в перспективе, возможно, окажутся эффективнее традиционных с точки зрения энергосбережения. В завершение дается небольшой обзор некоторых современных микроконтроллеров с точки зрения минимума потребления энергии.
Микроконтроллеры, энергопотребление
Короткий адрес: https://sciup.org/147154885
IDR: 147154885
Текст краткого сообщения Оптимизация энергопотребления микроконтроллерных систем
В последнее время портативные вычислительные устройства на основе микроконтроллеров и микропроцессоров стали неотъемлемым атрибутом жизни. Появление миниатюрных устройств с большими вычислительными возможностями дают возможность вместо громоздких стационарных устройств применять компактные приборы с аккумуляторным питанием. Для того чтобы такие устройства работали без подзарядки как можно дольше и при этом сохраняли свою компактность, разработчики применяют множество способов по снижению энергопотребления. Способы оптимизации можно разбить на три большие группы: программные, архитектурные и схемотехнические.
Программные способы направлены, главным образом, на снижение вычислительной нагрузки на микроконтроллер, что дает возможность использовать кристаллы с небольшой вычислительной мощностью, но с гораздо меньшим потреблением энергии. К таким способам снижения нагрузки можно отнести несколько путей, один из них – применение специфичной математики. Многие микроконтроллеры не имеют на кристалле модуля для работы с числами с плавающей точкой, поэтому любые операции с дробными числами занимают продолжительное время. В большинстве случаев можно обойтись целочисленными операциями, значительно снизив вычислительную нагрузку и скорость выполнения программы. Также ускорить работу программы можно, учитывая разрядность ядра процессора: на 8-битных микроконтроллерах операции с числами большой разрядности будут выполняться гораздо дольше, нежели на 32-битных, поэтому их применения следует по возможности избегать. Еще одним путем увеличения скорости и эффективности работы программы является переписывание критичных участков кода на ассемблере [1]. Однако эта мера ставит крест на кроссплатформенности получившихся приложений и усложняет понимание программы, поэтому этот способ довольно спорен.
Архитектурные способы снижения энергопотребления и увеличения производительности применяются самими разработчиками микроконтроллеров. Следует отметить, что увеличение производительности, как это ни парадоксально, тоже помогает снизить энергопотребление в определенных случаях. Ведь чем выше производительность микроконтроллера, тем быстрее он выполнит все необходимые вычисления и перейдет в режим энергосбережения. Различные режимы энергосбережения – ключевой способ снижения потребления микроконтроллеров, поскольку он позволяет отключать неиспользуемую периферию и снижать тактовую частоту ядра, позволяя на порядки снизить потребление энергии. Если построить программу так, чтобы микроконтроллер быстро выполнял все необходимые вычисления и как можно дольше после этого был в спящем режиме – срок службы от аккумулятора увеличится в десятки раз. К архитектурным способам снижения энергопотребления относится и отключение неиспользуемых узлов кристалла: очень редко требуется работа всех периферийных устройств одновременно. Отключение неиспользуемой периферии позволяет в разы снизить потребление энергии.
Большие надежды на сегодняшний день возлагаются на применение новых типов памяти в микроконтроллерах: сегнетоэлектрическая память (FRAM) потребляет на порядок меньше энергии и обеспечивает в разы большее быстродействие, нежели традиционная Flash память, используемая для хранения программы.
Последним рассматриваемым способом снижения энергопотребления и увеличения производительности является применение принципиально новых вычислителей. Примером такого вычислителя может служить российская разработка – процессоры мультиклет [2], которые состоят из нескольких равноправных вычислителей, работающих независимо друг от друга. Выход из строя или отключение одного из вычислителей не приведет к сбою системы: нагрузка будет распределена между оставшимися вычислителями. Также перспективным направлением являются микроконтроллеры с вычислителем на основе нейронных сетей, так как в некоторых областях нейронные сети позволяют решать задачи гораздо эффективнее и быстрее. Пожалуй, самыми разнообразными из всех путей повышения энергоэффективности микроконтроллерных систем являются схемотехнические способы. Так же, как и на архитектурном уровне, одной из возможностей снижения энергопотребления системы является отключение ее компонентов. Как правило, датчики, память, кодеки и другие компоненты схемы используются только в определенные моменты времени, что дает возможность существенно выиграть в потреблении, полностью отключая их. Для этого у многих микросхем есть режим «Power down», в котором потребление энергии значительно уменьшено. Для экономии энергии также целесообразно отключать неиспользуемые порты ввода-вывода микроконтроллеров, экономя драгоценные миллиамперы.
Поскольку зачастую портативные устройства для связи с внешним миром используют какие-либо беспроводные коммуникации, сэкономить энергию можно и здесь. Некоторые беспроводные интерфейсы специально разрабатывались для приложений с батарейным питанием, к примеру, ZigBee, Bluetooth 4.0LE. Особенностью таких интерфейсов является то, что приемопередатчики включаются лишь на короткие промежутки времени, а большую часть времени беспроводная связь находится в выключенном состоянии. Применение таких оптимизированных средств связи позволит сохранить энергию батареи.
Схемотехнические методы оптимизации также применимы и к самому источнику питания – аккумуляторной батарее. Если рабочее напряжение схемы отличается от ЭДС батареи, то необходимо будет преобразовывать напряжение питания, а это приведет к потерям энергии. В этой связи многие современные микросхемы могут работать в широком диапазоне питающих напряжений: от 2,7 до 5 вольт, а некоторые специальные образцы могут работать при снижении напряжения питания до 0,7 вольт. Логично в таких случаях применение литий-ионных или литийполимерных источников питания, ЭДС которых лежит в диапазоне 3,6–4,2 вольт. Прямое питание схемы от батарей позволяет сберечь энергию, отказавшись от преобразователей и стабилизаторов. Немаловажную роль при выборе источника питания играет саморазряд элементов, который в некоторых случаях может превысить собственное энергопотребление схемы. Многие аккумуляторные батареи, в частности, уже упомянутые литий-ионные, теряют в месяц до 20% заряда, что не позволяет применять их в устройствах, которые предназначены для работы от одной зарядки более года. Для таких применений можно воспользоваться специальными аккумуляторами типа никель-металлгидридных NiMH-LSD (Low Self Discharge), или литиево-железных батарей. Такие батареи могут хранить заряд до 10 лет. Большинство современных микросхем основано на КМОП-технологии, для которой характерна прямая зависимость между величиной напряжения питания и токопотреблением. То есть, снижая напряжение питания схемы, можно снизить ее энергопотребление. С этой особенностью связаны несколько способов снижения потребляемой мощности, к примеру, различное напряжение питания вычислительного ядра (порядка 1,8 вольт) и периферии (3,3 вольт), как в микроконтроллерах на ядре ARM7. Однако следует помнить, что при снижении напряжения питания снижается максимально возможная тактовая частота микросхем. Поэтому есть смысл динамически менять напряжение питания вместе с тактовой
И.Л. Кафтанников, В.А. Руднев

Динамическое управление напряжением питания
частотой: если микроконтроллер нагружен слабо, то напряжение питания и тактовая частота программно снижается. При увеличении вычислительной нагрузки напряжение питания увеличивается, что дает возможность поднять тактовую частоту. Схематично этот способ показан на рисунке.
В персональных компьютерах такая технология получила название DVS (Dynamic Voltage Scaling) – динамическое изменение напряжения [3]. В микроконтроллерах эта технология пока большого распространения не получила, в основном из-за сложности регулирования напряжения питания в условиях пониженного потребления схемы.
В таблице представлены сравнительные характеристики некоторых популярных современных микроконтроллеров в контексте минимального потребления энергии.
Сравнение энергопотребления микроконтроллеров
МК |
Ядро |
Производительность (MIPS) |
Потребление энергии (мА/Mhz) |
LPC1111FHN33 |
ARM 32-bit Cortex M0 |
0,9 x 50 |
0,15 |
STM32F100C4T6B |
ARM 32-bit Cortex-M3 |
1,25 x 24 |
0,23 |
AtTiny13A |
Atmel 8bit |
20 |
0,3 (1Mhz) 0,55 (20 Mhz) |
atmega48 |
Atmel 8bit |
20 |
0,3 (1Mhz) 0,55 (20 Mhz) |
MSP430F2101IPW |
TI 16bit MSP430 |
16 |
0,25 (1Mhz) 0,4 (16Mhz) |
PIC16F676 |
PIC16 8bit |
5 |
0,1 x 4 |
PIC12F509 |
PIC12 8bit |
5 |
0,087 x 4 |
Как видно из таблицы, наиболее эффективными в области минимума потребления энергии являются микроконтроллеры PIC фирмы Microchip, однако следует учитывать, что на этих микроконтроллерах практически полностью отсутствует периферия и ядро у них 8-разрядное. Таблица хорошо иллюстрирует тот факт, что за все аппаратные и программные средства увеличения вычислительной мощности приходится платить увеличением энергопотребления.
В качестве вывода стоит отметить, что в каждом конкретном случае задача обеспечения минимума потребления энергии имеет свои особенности, и создать действительно энергоэффективную систему можно только комплексно подойдя к задаче, применив рассмотренные в статье программные, архитектурные и схемотехнические способы снижения энергопотребления.
Список литературы Оптимизация энергопотребления микроконтроллерных систем
- Агуров, П.В. Интерфейс USB. Практика использования и программирования/П.В. Агуров. -2-е изд. -СПб.: BHV, 2008. -256 с.
- Руководство по эксплуатации мультиклеточного процессора MCp0411100101 -Multiclet. -http://www.multiclet.com/docs/PO/Manual-MCp_0411100101.pdf
- Quadi, A. A Dynamic Voltage Scaling Algorithm for Sporadic Tasks/A. Quadi, S. Goddard, S. Farritor. -University of Nebraska-Lincoln, 2003.