Выпуск #1/2016
A.Эйланд
Оптимизация энергопотребления микроконтроллеров – решения компании Atmel
Оптимизация энергопотребления микроконтроллеров – решения компании Atmel
Просмотры: 2943
Рассматриваются решения компании Atmel для снижения энергопотребления микроконтроллеров. В микроконтроллерах SAM L21 предусмотрены несколько спящих режимов и различные уровни производительности, с помощью которых можно регулировать энергопотребление в широком диапазоне.
В
сплеск популярности электронных устройств с батарейным питанием привел к тому, что время их автономной работы стало ключевым критерием для разработчиков. Для того чтобы обеспечить достаточную продолжительность функционирования устройства в автономном режиме, необходимо уменьшить его энергопотребление. Однако технологии, позволяющие добиться высокой производительности, затрудняют решение этой задачи. Так, интегральные схемы (ИС) при работе на высоких тактовых частотах потребляют значительный ток. И даже в неактивных режимах энергопотребление может быть довольно большим.
Казалось бы, решение кроется в выборе устройства с минимальным энергопотреблением. Но ИС зачастую предусматривают различные режимы работы и невозможно ориентироваться на одно значение потребляемой энергии. Поэтому важно не просто выбрать малопотребляющее устройство, но и эффективно использовать его энергосберегающие опции.
Как это делать, рассмотрим на примере микроконтроллеров SMART SAM L21 компании Atmel.
Уменьшение энергопотребления:
общие сведения
Микроконтроллер SAM L21 демонстрирует наилучшие результаты при работе системы в импульсно-периодическом режиме, когда процессор не загружен постоянно. Поэтому общая стратегия эффективного использования устройства состоит в следующем: выполнить работу как можно быстрее, используя при этом как можно меньше энергии; обеспечить пренебрежимо малое энергопотребление в перерывах между вычислениями.
Однако необходимо учитывать ряд нюансов. В то время как акцент делается на вычислениях, потребляющих основную часть энергии, микроконтроллер выполняет и другие операции. Соответственно, при отсутствии вычислений следует иметь в виду некоторые дополнительные вопросы. В частности: нужно ли сохранять данные при переходе в спящий режим; какие модули ("listeners") должны находиться в режиме ожидания; могут ли отдельные операции выполняться без участия процессорного ядра (например, прямой доступ к памяти (DMA); какое время выхода из спящего режима считать приемлемым?
Поиск ответов на эти вопросы может усложнить разработку устройств с низким энергопотреблением. Рассмотрим возможности экономии энергии в различных режимах.
Снижение энергозатрат на вычисления
Основной фактор, влияющий на энергопотребление во время вычислений – тактовая частота. Для устройств без спящих режимов действовало правило – уменьшить тактовую частоту до минимума, необходимого для решения поставленной задачи. Например, если обрабатываются данные, поступающие по медленному каналу, то ограничитель – скорость передачи данных. В этом случае понижение частоты – по крайней мере, до поступления данных – может снизить энергопотребление.
Микроконтроллер SAM L21 оснащен режимами с различной производительностью (см. таблицу) – более низкой тактовой частоте в режиме PL0 соответствует энергопотребление, значительно меньшее, чем в режиме PL2.
Снижению потребляемой энергии также способствует количество обращений к памяти, поэтому следует организовать данные таким образом, чтобы в каждой выборке было как можно больше данных.
Сокращение энергопотребления в режимах ожидания
Когда процессорное ядро не нужно, оно может быть выключено – но что именно это означает, зависит от спящих режимов и энергетических доменов (power domains), которыми оснащено данное устройство. Спящие режимы определяют, какие тактовые генераторы активны, состояние периферийных шин и модулей, а также какие энергетические домены доступны. Микроконтроллер SAM L21 имеет четыре спящих режима (рис.1):
• Idle: краткая пауза между вычислениями. Большинство цепей остаются в активном состоянии, но тактовый генератор процессорного ядра остановлен, а периферийная шина AHB может быть активна или неактивна;
• Standby: в этом режиме тактовые генераторы остановлены, кроме тех, что нужны для выполнения задач, а периферийные модули могут быть в активном или спящем состоянии. Данные в ОЗУ могут быть сохранены или удалены;
• Backup: в этом режиме большинство цепей выключено. Не работает ни один тактовый генератор за опциональным исключением часов реального времени. Данные в ОЗУ не сохраняются;
• Off: в этом режиме устройство находится фактически в выключенном состоянии, за исключением того, что оно может "пробудиться" от внешнего сигнала перезагрузки.
Режимы Idle и Standby, как и активный режим работы, могут реализовываться при любом уровне производительности – PL0 или PL2. Но переключение между этими уровнями возможно только в активном режиме. Выход из режимов Backup и Off предусматривает перезагрузку, которая всегда начинается при низком уровне производительности.
Какой из спящих режимов предпочтительнее, зависит, во‑первых, от возможных действий в период нахождения устройства в спящем режиме и, во‑вторых, от того, насколько длительное время пробуждения приемлемо. Чем глубже "сон", тем больше времени потребуется на пробуждение. Реальное время пробуждения определяется многими переменными, но его характерные временные масштабы для различных режимов таковы:
• Idle: 1,2 мкс;
• Standby: 2,1–76 мкс;
• Backup: 90 мкс;
• Off: 2200 мкс.
Отметим, что при пробуждении из режимов Off и Backup, а также из режима Standby с выключенным ОЗУ требуется дополнительное время для перезагрузки ОЗУ.
В микроконтроллере SAM L21 пять различных энергетических доменов – Backup, Top, PD0, PD1 и PD2 (рис.2), которые могут отключаться для экономии энергии. В домене Backup содержатся минимально необходимые для работы блоки. Этот домен активен во всех режимах, кроме Off, и является единственным доменом, задействованным в спящем режиме Backup. Домен Top включает еще несколько блоков, которые нужны для работы в режимах Standby, Idle и активном. Периферийные модули распределены между доменами PD0 и PD1. В домене PD2 выполняются вычисления.
Функция Sleepwalking
Спящий режим Standby и энергетические домены можно использовать для реализации функции под названием Sleepwalking ("снохождение") – выполнения задач, не требующих участия процессорного ядра, пока само ядро выключено. При переходе в режим Standby нужно указать, какие периферийные модули остаются активными и, соответственно, какие энергетические домены будут включены и какие выключены.
Например, если периферийный модуль инициирует режим DMA, он может привести в активное состояние блоки микроконтроллера, необходимые для выполнения задачи, затем они могут вернуться в спящий режим или продолжать работу. Если домен PD0 находится в активном состоянии и ему требуется задействовать DMA, он может активизировать домен PD1 для выполнения DMA, а затем PD1 снова перейдет в спящий режим. Такие процедуры могут показаться сложными, но на самом деле это не так. Описанные переходы происходят автоматически на основе настроек, установленных для режима Standby.
Результаты тестов
Для выработки альтернативы так называемому "бенч-маркетингу" ("bench marketing") устройств с низким энергопотреблением все крупные производители полупроводниковой продукции, а также несколько менее крупных, которые делают акцент на малом энергопотреблении, объединились в рабочую группу, сформированную EEMBC (Embedded Microprocessor Benchmark Consortium). Ее целью было создание универсального теста (generic benchmark) для устройств с низким энергопотреблением. Плод этого сотрудничества – новый тест ULPBench – быстро набирает популярность. Результаты ULPBench были включены в характеристики устройств, недавно выпущенных компаниями Texas Instruments, STMicroelectronics и Atmel. Тест ULPBench использует стандартизованное контрольно-измерительное оборудование и строго описывает программный код, который должны применять производители. В тесте учитывается энергопотребление как в активном, так и в спящем режимах, он может выполняться на устройствах с 8-, 16- и 32-разрядной архитектурой. К моменту написания этой статьи устройства SMART SAM L21 компании Atmel показывали самые высокие результаты по тесту ULPBench среди всех микроконтроллеров, независимо от процессорного ядра.
В заключение можно сказать, что энергия, потребляемая системой, сильно зависит от требований конкретного приложения. Меньший объем вычислений означает меньшее энергопотребление. Более низкая активность во время спящих режимов позволяет увеличить экономию энергии. Однако микроконтроллер SAM L21 предоставляет еще большие возможности – посредством управления уровнями производительности, спящими режимами и энергетическими доменами можно регулировать энергопотребление в широком диапазоне. Эффективное использование этих энергосберегающих функций обеспечивает микроконтроллерам преимущества для использования в системах, чувствительных к потребляемой энергии.
сплеск популярности электронных устройств с батарейным питанием привел к тому, что время их автономной работы стало ключевым критерием для разработчиков. Для того чтобы обеспечить достаточную продолжительность функционирования устройства в автономном режиме, необходимо уменьшить его энергопотребление. Однако технологии, позволяющие добиться высокой производительности, затрудняют решение этой задачи. Так, интегральные схемы (ИС) при работе на высоких тактовых частотах потребляют значительный ток. И даже в неактивных режимах энергопотребление может быть довольно большим.
Казалось бы, решение кроется в выборе устройства с минимальным энергопотреблением. Но ИС зачастую предусматривают различные режимы работы и невозможно ориентироваться на одно значение потребляемой энергии. Поэтому важно не просто выбрать малопотребляющее устройство, но и эффективно использовать его энергосберегающие опции.
Как это делать, рассмотрим на примере микроконтроллеров SMART SAM L21 компании Atmel.
Уменьшение энергопотребления:
общие сведения
Микроконтроллер SAM L21 демонстрирует наилучшие результаты при работе системы в импульсно-периодическом режиме, когда процессор не загружен постоянно. Поэтому общая стратегия эффективного использования устройства состоит в следующем: выполнить работу как можно быстрее, используя при этом как можно меньше энергии; обеспечить пренебрежимо малое энергопотребление в перерывах между вычислениями.
Однако необходимо учитывать ряд нюансов. В то время как акцент делается на вычислениях, потребляющих основную часть энергии, микроконтроллер выполняет и другие операции. Соответственно, при отсутствии вычислений следует иметь в виду некоторые дополнительные вопросы. В частности: нужно ли сохранять данные при переходе в спящий режим; какие модули ("listeners") должны находиться в режиме ожидания; могут ли отдельные операции выполняться без участия процессорного ядра (например, прямой доступ к памяти (DMA); какое время выхода из спящего режима считать приемлемым?
Поиск ответов на эти вопросы может усложнить разработку устройств с низким энергопотреблением. Рассмотрим возможности экономии энергии в различных режимах.
Снижение энергозатрат на вычисления
Основной фактор, влияющий на энергопотребление во время вычислений – тактовая частота. Для устройств без спящих режимов действовало правило – уменьшить тактовую частоту до минимума, необходимого для решения поставленной задачи. Например, если обрабатываются данные, поступающие по медленному каналу, то ограничитель – скорость передачи данных. В этом случае понижение частоты – по крайней мере, до поступления данных – может снизить энергопотребление.
Микроконтроллер SAM L21 оснащен режимами с различной производительностью (см. таблицу) – более низкой тактовой частоте в режиме PL0 соответствует энергопотребление, значительно меньшее, чем в режиме PL2.
Снижению потребляемой энергии также способствует количество обращений к памяти, поэтому следует организовать данные таким образом, чтобы в каждой выборке было как можно больше данных.
Сокращение энергопотребления в режимах ожидания
Когда процессорное ядро не нужно, оно может быть выключено – но что именно это означает, зависит от спящих режимов и энергетических доменов (power domains), которыми оснащено данное устройство. Спящие режимы определяют, какие тактовые генераторы активны, состояние периферийных шин и модулей, а также какие энергетические домены доступны. Микроконтроллер SAM L21 имеет четыре спящих режима (рис.1):
• Idle: краткая пауза между вычислениями. Большинство цепей остаются в активном состоянии, но тактовый генератор процессорного ядра остановлен, а периферийная шина AHB может быть активна или неактивна;
• Standby: в этом режиме тактовые генераторы остановлены, кроме тех, что нужны для выполнения задач, а периферийные модули могут быть в активном или спящем состоянии. Данные в ОЗУ могут быть сохранены или удалены;
• Backup: в этом режиме большинство цепей выключено. Не работает ни один тактовый генератор за опциональным исключением часов реального времени. Данные в ОЗУ не сохраняются;
• Off: в этом режиме устройство находится фактически в выключенном состоянии, за исключением того, что оно может "пробудиться" от внешнего сигнала перезагрузки.
Режимы Idle и Standby, как и активный режим работы, могут реализовываться при любом уровне производительности – PL0 или PL2. Но переключение между этими уровнями возможно только в активном режиме. Выход из режимов Backup и Off предусматривает перезагрузку, которая всегда начинается при низком уровне производительности.
Какой из спящих режимов предпочтительнее, зависит, во‑первых, от возможных действий в период нахождения устройства в спящем режиме и, во‑вторых, от того, насколько длительное время пробуждения приемлемо. Чем глубже "сон", тем больше времени потребуется на пробуждение. Реальное время пробуждения определяется многими переменными, но его характерные временные масштабы для различных режимов таковы:
• Idle: 1,2 мкс;
• Standby: 2,1–76 мкс;
• Backup: 90 мкс;
• Off: 2200 мкс.
Отметим, что при пробуждении из режимов Off и Backup, а также из режима Standby с выключенным ОЗУ требуется дополнительное время для перезагрузки ОЗУ.
В микроконтроллере SAM L21 пять различных энергетических доменов – Backup, Top, PD0, PD1 и PD2 (рис.2), которые могут отключаться для экономии энергии. В домене Backup содержатся минимально необходимые для работы блоки. Этот домен активен во всех режимах, кроме Off, и является единственным доменом, задействованным в спящем режиме Backup. Домен Top включает еще несколько блоков, которые нужны для работы в режимах Standby, Idle и активном. Периферийные модули распределены между доменами PD0 и PD1. В домене PD2 выполняются вычисления.
Функция Sleepwalking
Спящий режим Standby и энергетические домены можно использовать для реализации функции под названием Sleepwalking ("снохождение") – выполнения задач, не требующих участия процессорного ядра, пока само ядро выключено. При переходе в режим Standby нужно указать, какие периферийные модули остаются активными и, соответственно, какие энергетические домены будут включены и какие выключены.
Например, если периферийный модуль инициирует режим DMA, он может привести в активное состояние блоки микроконтроллера, необходимые для выполнения задачи, затем они могут вернуться в спящий режим или продолжать работу. Если домен PD0 находится в активном состоянии и ему требуется задействовать DMA, он может активизировать домен PD1 для выполнения DMA, а затем PD1 снова перейдет в спящий режим. Такие процедуры могут показаться сложными, но на самом деле это не так. Описанные переходы происходят автоматически на основе настроек, установленных для режима Standby.
Результаты тестов
Для выработки альтернативы так называемому "бенч-маркетингу" ("bench marketing") устройств с низким энергопотреблением все крупные производители полупроводниковой продукции, а также несколько менее крупных, которые делают акцент на малом энергопотреблении, объединились в рабочую группу, сформированную EEMBC (Embedded Microprocessor Benchmark Consortium). Ее целью было создание универсального теста (generic benchmark) для устройств с низким энергопотреблением. Плод этого сотрудничества – новый тест ULPBench – быстро набирает популярность. Результаты ULPBench были включены в характеристики устройств, недавно выпущенных компаниями Texas Instruments, STMicroelectronics и Atmel. Тест ULPBench использует стандартизованное контрольно-измерительное оборудование и строго описывает программный код, который должны применять производители. В тесте учитывается энергопотребление как в активном, так и в спящем режимах, он может выполняться на устройствах с 8-, 16- и 32-разрядной архитектурой. К моменту написания этой статьи устройства SMART SAM L21 компании Atmel показывали самые высокие результаты по тесту ULPBench среди всех микроконтроллеров, независимо от процессорного ядра.
В заключение можно сказать, что энергия, потребляемая системой, сильно зависит от требований конкретного приложения. Меньший объем вычислений означает меньшее энергопотребление. Более низкая активность во время спящих режимов позволяет увеличить экономию энергии. Однако микроконтроллер SAM L21 предоставляет еще большие возможности – посредством управления уровнями производительности, спящими режимами и энергетическими доменами можно регулировать энергопотребление в широком диапазоне. Эффективное использование этих энергосберегающих функций обеспечивает микроконтроллерам преимущества для использования в системах, чувствительных к потребляемой энергии.
Отзывы читателей