Миро Самек "Использование режимов малого энергопотребления в простых программных архитектурах" (перевод)


Атомарные режимы низкого потребления

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

Простейшие программные архитектуры с приоритетной и фоновой задачами требуют, чтобы переход в режим малого потребления был атомарным, или, как минимум, безопасным с точки зрения обработки прерываний. Это требование не является обязательным, если используется более сложная структура программного обеспечения, например, операционная система реального времени или вытесняющее переключение задач. Если все задачи ждут появления каких-либо событий и готовых к работе нет, то ядро операционной системы запускает специальную "пустую" задачу (idle task).

Большинство операционных систем предоставляют возможность подредактировать "пустую" задачу (используя обратные вызовы или макросы) так, чтобы дать возможность перейти внутри неё в режим сна. Основным отличием вытесняющего ядра от приоритетно/фоновой архитектуры в том, что, как только появляется какая-либо готовая к работе задача, ядро отменяет переключение контекста обратно к "пустому" циклу. Соответственно, переключение в режим малого потребления существенно упрощается, потому что в нём не требуется управлять прерываниями. К сожалению, операционная система не всегда подходит для процессоров начального уровня, так как у них может просто не быть нужного количества оперативной памяти.

/ Миро Самек (Miro Samek) президент компании Quantum Leaps, LLC, предлагающей методику и набор открытых исходных текстов для построения внутреннего программного обеспечения встраиваемых систем. Автор книги "Практические диаграммы состояний на C/C++ (CMP Books, 2002), многих журнальных публикаций и постоянный участник Embedded Systems Conferences. Ему можно написать по адресу miro@quantum-leaps.com. /


Ссылки:

0. Оригинальная публикация и страничка переводчика.

1. Freescale Semiconductors, MC68HC908QY4/D datasheet, 2010.

2. Texas Instruments, MSP430x1xx Family User's Guide, 2006.

3. Atmel, ATtiny4/5/9/10 Datasheet, 2011.

4. Atmel, AT91SAM7S32 Datasheet, 2012.

5 ARM Ltd., ARM v7-M Architecture Application Level Reference Manual, 2007.

6 ARM Ltd., Cortex-M3 Technical Reference Manual, 2010.

7. Luminary Micro, LM3S811 Microcontroller datasheet, 2012.

8. Renesas, M16C/62 Group (M16C/62P) Hardware Manual, 2006.

9. Samek, Miro and Robert Ward, "Build a Super Simple Tasker" /Embedded Systems Design/, July 2006, p. 18.

ПредпросмотрAttachmentSize
low_power_modes_in_background.zip27.87 КБ