УДК 004.051
ОПТИМИЗАЦИЯ ЭНЕРГОПОТРЕБЛЕНИЯ МИКРОКОНТРОЛЛЕРНЫХ СИСТЕМ
И.Л. Кафтанников, В.А. Руднев
На сегодняшний день в мире электроники прослеживаются две тенденции: увеличение вычислительной мощности и снижение энергопотребления. Появление устройств с большими вычислительными возможностями и низким энергопотреблением дает возможность вместо громоздких устройств применять компактные приборы с аккумуляторным и батарейным питанием. Для того чтобы такие устройства работали без подзарядки как можно дольше и при этом сохраняли свою компактность, разработчики применяют множество способов по снижению энергопотребления. В этой статье рассматриваются различные способы по оптимизации потребления энергии устройствами, основным элементом которых является микроконтроллер. Производится обзор программных, архитектурных и схемотехнических способов снижения потребления, рассмотрены их достоинства и недостатки, а также возможность применения их в комплексе. Упомянуты принципиально новые архитектуры вычислительных систем, которые в перспективе, возможно, окажутся эффективнее традиционных с точки зрения энергосбережения. В завершение дается небольшой обзор некоторых современных микроконтроллеров с точки зрения минимума потребления энергии.
Ключевые слова: микроконтроллеры, энергопотребление.
В последнее время портативные вычислительные устройства на основе микроконтроллеров и микропроцессоров стали неотъемлемым атрибутом жизни. Появление миниатюрных устройств с большими вычислительными возможностями дают возможность вместо громоздких стационарных устройств применять компактные приборы с аккумуляторным питанием. Для того чтобы такие устройства работали без подзарядки как можно дольше и при этом сохраняли свою компактность, разработчики применяют множество способов по снижению энергопотребления. Способы оптимизации можно разбить на три большие группы: программные, архитектурные и схемотехнические.
Программные способы направлены, главным образом, на снижение вычислительной нагрузки на микроконтроллер, что дает возможность использовать кристаллы с небольшой вычислительной мощностью, но с гораздо меньшим потреблением энергии. К таким способам снижения нагрузки можно отнести несколько путей, один из них - применение специфичной математики. Многие микроконтроллеры не имеют на кристалле модуля для работы с числами с плавающей точкой, поэтому любые операции с дробными числами занимают продолжительное время. В большинстве случаев можно обойтись целочисленными операциями, значительно снизив вычислительную нагрузку и скорость выполнения программы. Также ускорить работу программы можно, учитывая разрядность ядра процессора: на 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 MO 0,9x50 0,15
STM32F100C4T6B ARM 32-bit Cortex-M3 1,25x24 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,1x4
PIC12F509 PIC12 8bit 5 0,087x4
Как видно из таблицы, наиболее эффективными в области минимума потребления энергии являются микроконтроллеры PIC фирмы Microchip, однако следует учитывать, что на этих микроконтроллерах практически полностью отсутствует периферия и ядро у них 8-разрядное. Таблица хорошо иллюстрирует тот факт, что за все аппаратные и программные средства увеличения вычислительной мощности приходится платить увеличением энергопотребления.
В качестве вывода стоит отметить, что в каждом конкретном случае задача обеспечения минимума потребления энергии имеет свои особенности, и создать действительно энергоэффективную систему можно только комплексно подойдя к задаче, применив рассмотренные в статье программные, архитектурные и схемотехнические способы снижения энергопотребления.
Литература
1. Агуров, П.В. Интерфейс USB. Практика использования и программирования / П.В. Агуров. - 2-е изд. - СПб.: BHV, 2008. - 256 с.
Динамическое управление напряжением питания
2. Руководство по эксплуатации мультиклеточного процессора MCp0411100101 -Multiclet. - http://www.multiclet.com/docs/PO/Manual-MCp_0411100101.pdf
3. Quadi, A. A Dynamic Voltage Scaling Algorithm for Sporadic Tasks / A. Quadi, S. Goddard, S. Farritor. - University of Nebraska-Lincoln, 2003.
Кафтанников Игорь Леопольдович, канд. техн. наук, доцент кафедры ЭВМ, ЮжноУральский государственный университет (г. Челябинск), [email protected]
Руднев Владислав Андреевич, аспирант кафедры электронных вычислительных машин приборостроительного факультета, Южно-Уральский государственный университет (г. Челябинск), [email protected]
Bulletin of the South Ural State University Series “Computer Technologies, Automatic Control, Radio Electronics”
2013, vol. 13, no. 2, pp. 114-117
ENERGY CONSUMPTION OPTIMIZATION IN MICROCONTROLLER APPLICATIONS
I.L. Kaftannikov, South Ural State University, Chelyabinsk, Russian Federation, kil@comp. susu. ac. ru
V.A. Rudnev, South Ural State University, Chelyabinsk, Russian Federation, megadriver@smartmcu. ru
There are two trends in the world of electronics reveal today: an increase of the computing power and minimize of the power consumption. The emergence of devices with high computing power and low power consumption make it possible to use the compact devices with accumulator or battery power instead of bulky devices. The developers used a variety of ways to reduce the energy consumption in order to these devices can work without charge as long as possible while maintaining its compact size. This article discusses the various ways to optimize the energy consumption devices, whose main element is a microcontroller. Reviews the program, architectural and circuit design methods to reduce consumption, consider the advantages and disadvantages, as well as the possibility of using them in combination. Fundamentally new computer architectures are mentioned, which ultimately may prove to be more effective in terms of conventional energy. The brief review of some modern microcontrollers is given finally in terms of low energy consumption.
Keywords: microcontrollers, energy consumption.
References
1. Agurov P.V. Interfeys USB. Praktika Ispol’zovaniya i Programmirovaniya. [USB Interface. Practice of Using and Programming]. Second edition. Saint-Petersburg, BHV, 2008. 256 p.
2. Rukovodstvo po Ekspluatatsii Mul’tikletochnogo Processora MCp0411100101 - Multiklet. [Reference Manual For Multicell Microprocessor MCp0411100101 - Multiklet] (2012). Available at http://www.multiclet.com/docs/PO/Manual-MCp_0411100101.pdf (accessed 4 April 2012).
3. Ala Quadi, Steve Goddard, Shane Farritor. A Dynamic Voltage Scaling Algorithm for Sporadic Tasks. University of Nebraska-Lincoln, 2003, no. 12, pp. 54-65.
Поступила в редакцию 1 марта 2013 г.