Содержание
Платформа ARM big.LITTLE улучшает производительность и энергосбережение
Компании TSMC и ARM заявили об успешном опыте применения 16-нм технологии FinFET (16FF) в процессорной архитектуре ARM big.LITTLE с использованием процессорных ядер ARM Cortex-A57 и Cortex-A53. Результаты испытаний были представлены 30 сентября 2014 года на Форуме TSMC OIP Ecosystem Forum в Сан-Хосе (Калифорния).
Как показали испытания, высокопроизводительное ядро Cortex-A57 достигает тактовой частоты 2,3 ГГц, обеспечивая устойчивую производительность мобильных приложений при пиковых нагрузках. В то же время энергосберегающее ядро Cortex-A53 потребляет всего 75 мВ при типовых нагрузках. Увеличение производительности стало результатом совместных усилий ARM и TSMC по оптимизации 64-разрядных процессоров серии ARMv8-A на базе технологии FinFET и выпуска в прошлом году процессора Cortex-A57 с использованием транзисторов 16FF.
В своём дальнейшем сотрудничестве компании фокусируются на технологии TSMC 16FF+. Сравнительно с технологией 16FF она обеспечит 11-процентное повышение производительности ядра Cortex-A57 и 35-процентное снижение энергопотребления ядра Cortex-A53 при работе приложений, не требующих большой вычислительной мощности. Таким образом, будут расширены границы динамической балансировки платформы big.LITTLEмежду производительностью и энергосбережением.
Выпуск транзисторов по технологии 16FF+ запланирован на IV квартал 2014 года. Оптимизировать использование процессорных ядер Cortex-A57 и Cortex-A53 в архитектуре ARM big.LITTLE можно будет с помощью пакета ARM POP IP.
TSMC.com
Поделиться:
№9 / 2022
Читать
Купить
Сообщить о недоставленной печатной версии журнала «Современная электроника»
E-mail*
Фамилия*
Имя*
Компания*
Телефон*
Недоставленный номер журнала*
Номер№1 №2 №3 №4 №5 №6 №7 №8 №9 Год20152016201720182019202020212022
Получали ли вы по этому же заявленному адресу предыдущие номера текущего года?*
-
Да
-
Нет
Комментарий
* — поля, обязательные для заполнения
Авторизация Регистрация
Пароль
На указанный в форме e-mail придет запрос на подтверждение регистрации.
Пароль
Повторите пароль
Нажимая кнопку «Регистрация», я принимаю условия Политики конфиденциальности
Восстановить пароль
E-Mail:
Вы успешно зарегистрированы. Перейти в личный кабинет
Пять последних номеров электронной версии журнала
доступны только авторизованным пользователям
Для чтения электронной версии журнала
зарегистрируйтесь или
авторизуйтесь
(если зарегистрированы)
Авторизованные пользователи могут читать электронную версию журнала БЕСПЛАТНО
Для чтения печатной версии журнала
купите его
Для чтения журнала
подпишитесь,
или
купите его
Специалистам в области электронных компонентов
подписка предоставляется БЕСПЛАТНО
БЕСПЛАТНАЯ ПОДПИСКА
на электронную версию
Для бесплатного доступа
к электронной версии журнала
«Современная электроника» вам необходимо зарегистрироваться на сайте.
Зарегистрироваться
Подписка на ПЕЧАТНУЮ версию с гарантированной доставкой.
Подписка на рассылки
Будьте всегда в курсе самых свежих новостей
Подписаться на новости
Узнайте первыми о содержании нового номера
Подписаться на анонсы
Отказаться
Facebook Twitter
MediaTek представила чипсет Helio X30 с технологией энергосбережения CorePilot 4.0
20:18, 27 февраля.
Автор: Иванов Константин
На всемирной выставке Mobile World Congress (MWC) компания MediaTek Inc. объявила о коммерческой доступности чипсета MediaTek Helio X30, который уже запущен в массовое производство. Появление первых смартфонов, построенных на этом чипсете, планируется на второй квартал 2017 года. Это первый 10-ядерный чипсет с трехкластерной архитектурой, созданный по технологическому процессу 10 нм. Благодаря передовым технологиям, новая платформа более чем на 50% энергоэффективнее и примерно на 35% производительнее своего предшественника в линейке Helio. Возможности по экономии энергии обеспечиваются технологией CorePilot 4.0, использующую умную систему распределения ресурсов устройства, в том числе контроля температуры и расстановки приоритета в задачах, прогнозируя энергопотребление. Среди новых функций CorePilot 4.0 – UX Monitoring и System Power Allocator (SPA). System Power Allocator – это система распределения питания, которая прогнозирует сценарий использования энергии. Она определяет, какое из приложений в данный момент является для пользователя наиболее важным, и контролирует потребление энергии. UX Monitoring анализирует информацию, поступающую от системы, ее текущее состояние, запущенные процессы и задачи, которые требуют незамедлительного исполнения.
Полнофункциональные возможности чипсета включают в себя:
- 10-нанометровый технологический процесс, 10 вычислительных ядер, трехкластерная архитектура для экстремальной производительности: два ядра ARM Cortex—A73 (до 2,5 ГГц), четыре ядра ARM Cortex—A53 (до 2,2 ГГц) и четыре ядра ARM Cortex—A35 (до 1,9 ГГц).
- Модем LTE WorldMode Cat.10 полностью удовлетворяет потребность пользователей в скорости и надежности соединения в глобальной сети – поддерживается агрегация трех downlink—несущих (3CA) и двух uplink—несущих (2CA) для увеличения объема потоковых данных.
- Адаптированный под MediaTek Helio X30 графический процессор PowerVR Series7XT Plus частотой 880 МГц обеспечивает экономию энергии до 60% при одновременном увеличении производительности примерно в 2,4 раза по сравнению с предыдущей платформой.
- Встроенные мультимедийные функции нового поколения. Это первый энергоэффективный мобильный чипсет, который поддерживает видеозапись формата HDR10 (4K2K, глубина цвета 10 бит) на смартфонах.
- Чипсет может работать с 14-битной двойной камерой (16 МП + 16 МП) и обеспечивает сочетание использования широкоугольной съемки и зума для настройки глубины резкости в реальном времени, быструю автоэкспозиция, избавление от «шума» в реальном времени при съемке в условиях низкой освещенности.
- MediaTek Helio X30 также оснащен встроенным визуальным процессором (Vision Processing Unit, VPU), который работает в паре с технологией обработки сигналов MediaTek Imagiq 2.0.
ARM выпускает серию Cortex-A50, самые энергоэффективные 64-разрядные процессоры в мире
Новые 64-разрядные процессоры открывают новую эру в мобильных и корпоративных устройствах, расширяя лидерство ARM по производительности и низкому энергопотреблению
КЕМБРИДЖ, Великобритания и ARM TechCon, Санта-Клара — 30 октября 2012 г. — ARM анонсировала новую серию процессоров ARM® Cortex™-A50, основанную на архитектуре ARMv8, укрепляя лидерство ARM по производительности и низкому энергопотреблению. Эта серия изначально включает процессоры Cortex-A53 и Cortex-A57 и представляет новую энергоэффективную 64-битную технологию обработки, а также расширяет существующую 32-битную обработку. Масштабируемость серии процессоров позволяет партнерам ARM создавать системы на кристаллах (SoC), предназначенные для различных рынков, от смартфонов до высокопроизводительных серверов.
Выпущенные сегодня процессоры продолжат эволюцию мобильных вычислений, обеспечив в три раза более высокую производительность по сравнению с современными суперфонами и распространив возможности современных суперфонов на смартфоны начального уровня. Благодаря полному набору инструментов разработки и имитационных моделей ARM и партнеров ARM, которые уже доступны для ускорения и упрощения разработки программного обеспечения, оба процессора полностью совместимы с обширной 32-разрядной экосистемой ARM и являются неотъемлемой частью быстро развивающейся 64-разрядной экосистемы ARM.
Cortex-A57 — самый передовой высокопроизводительный процессор приложений ARM, а Cortex-A53 — самый энергоэффективный процессор приложений ARM. Cortex-A53 также является самым маленьким 64-битным процессором в мире. Они могут работать независимо или объединяться в конфигурацию процессора ARM big.LITTLE™, сочетая высокую производительность с энергоэффективностью. Оба поддерживаются решениями ARM CoreLink™ 400 и новой системной IP-матрицей серии CoreLink 500.
Партнеры ARM могут масштабировать платформы SoC от одно- и многоядерных мобильных решений big.LITTLE до массовых параллельных корпоративных решений для оптимальной гибкости и энергоэффективности. Процессоры Cortex-A57 и Cortex-A53 будут нацелены на производительность в несколько ГГц на передовых технологиях процессов CMOS и FinFET, что поддерживается ранней доступностью ARM Artisan® Physical IP и ARM POP ™ IP для ускорения защиты ядра.
Объявленные лицензиаты новой серии процессоров включают AMD, Broadcom, Calxeda, HiSilicon, Samsung и STMicroelectronics . Вспомогательные материалы и цитаты партнеров ARM можно найти справа и по адресу http://www.youtube.com/ARMflix.
«Потребители ожидают персонализированного мобильного опыта, интегрирующего их повседневную жизнь, с беспрепятственным подключением, обеспечивающим доступ к огромному объему информации. Экосистема ARM продолжит беспрецедентные инновации для поддержки разнообразных платформ. Это откроет эру трансформационных вычислений, от мобильных устройств до инфраструктуры и серверов, поддерживающих подключенный мобильный образ жизни потребителей. Это создаст огромные возможности для расширения рынка и революции в пользовательском опыте», — сказал Саймон Сегарс, исполнительный вице-президент по процессорам и физическим IP-подразделениям ARM.
Поскольку смартфоны и планшеты стали нашими основными вычислительными устройствами, производительность и возможности мобильных устройств изменились, чтобы управлять вычислительной средой. За последние пять лет экосистема ARM увеличила производительность смартфонов в 15 раз, что позволило изменить то, как люди используют свои устройства. Возможности процессоров серии Cortex-A50 позволяют плавно переходить от 32-разрядного к 64-разрядному состоянию выполнения, что позволяет использовать существующие сегодня приложения и обеспечивает масштабируемость до 64-разрядных для развития клиентов мобильных вычислений и будущих тенденций суперфонов.
Взрыв данных Эволюция мобильных вычислений меняет определение инфраструктуры, обеспечивающей облачные услуги и сетевое подключение. Взрывной рост интеллектуальных мобильных устройств в сочетании с разнообразием услуг, доступных конечным пользователям, приводит к увеличению производства и потребления контента. По прогнозам, к 2020 году потребление данных достигнет 120 эксабайт (в восемь раз больше, чем сегодня i), а бесшовный мобильный образ жизни создаст значительную нагрузку на сеть и инфраструктуру центров обработки данных, если компании продолжат развертывать существующие технологии. Серия процессоров Cortex-A50 разработана с учетом этой новой эры «трансформационных вычислений», а также обеспечивает энергоэффективное решение для будущих потребностей инфраструктуры. Расширенные возможности 32-разрядного исполнения принесут пользу существующим 32-разрядным облачным серверным приложениям, в то время как 64-разрядное выполнение расширяет применимость решений на основе технологии ARM, открывая новые возможности в сетях, серверах и высокопроизводительных вычислениях.
Серия процессоров ARM Cortex-A50:
- В настоящее время включает процессоры Cortex-A57 и Cortex-A53. Вычислительные приложения на графическом процессоре
- Обеспечивает когерентность системы AMBA® для расширения когерентности многих ядер с помощью компонентов когерентной матрицы кэша ARM CoreLink, включая CCI-400 и CCN-504
Процессор ARM Cortex-A57:
- Самый совершенный однопоточный процессор приложений ARM с высочайшей производительностью
- Обеспечивает повышенную производительность, необходимую для смартфонов по мере их перехода от устройств потребления контента к устройствам создания контента , до трех раз выше, чем у современных суперфонов, при том же бюджете мощности
- Обеспечивает производительность компьютера, сравнимую с устаревшим ПК, при работе с бюджетом мощности мобильных устройств, что обеспечивает преимущества с точки зрения затрат и энергоэффективности как для корпоративных пользователей, так и для обычных пользователей
- Функции расширенной надежности и масштабируемости для высокопроизводительных корпоративных приложений функции, которые позволяют масштабируемым приложениям плоскости данных максимизировать производительность на мм2 и производительность на мВт
- Оптимизировано для обработки пропускной способности для приложений со скромными вычислениями на поток
- Процессор Cortex-A53 в сочетании с процессором Cortex-A57 и технологией обработки big.
LITTLE позволит платформам с экстремальным диапазоном производительности при радикальном снижении энергопотребления
ARM и члены ARM Connected Community® совместно разрабатывают надежную Экосистема 64-битного программного обеспечения. Компилятор ARM и модели ARM Fast поддерживают архитектуру ARMv8 с момента ее анонса в октябре 2011 года и широко используются обладателями общедоступной лицензии на запуск серии процессоров Cortex-A50. Эта функциональность теперь дополнена поддержкой «голого железа» и отладки Linux в ARM Development Studio 5 (DS-5™). Кроме того, операционные системы с открытым исходным кодом, приложения и сторонние инструменты уже находятся в разработке. Это естественное расширение уже существующей широкой экосистемы, поддерживающей существующие устройства на базе архитектуры ARMv7.
Доступность: Ожидается, что в 2014 году партнерство с ARM поставит чипы на базе серии Cortex-A50. Операционная система ARMv8 с открытым исходным кодом, наборы инструментов и базовые модели теперь доступны на ARMv8-architecture
О компании ARM
ARM разрабатывает технологию это лежит в основе передовых цифровых продуктов, от беспроводных, сетевых и потребительских развлекательных решений до устройств обработки изображений, автомобилей, систем безопасности и хранения данных. Комплексное предложение продуктов ARM включает микропроцессоры RISC, графические процессоры, видеодвижки, поддерживающее программное обеспечение, библиотеки ячеек, встроенную память, продукты для высокоскоростного подключения, периферийные устройства и инструменты разработки. В сочетании с комплексными услугами по проектированию, обучением, поддержкой и техническим обслуживанием, а также с широким партнерским сообществом компании они обеспечивают комплексное системное решение, которое обеспечивает быстрый и надежный выход на рынок для ведущих производителей электроники. Узнайте больше об ARM по этим ссылкам:
- Веб-сайт ARM: http://www.arm.com/
- ARM Connected Community: http://www.arm.com/community
i Один эксабайт эквивалентен миллиарду гигабайт и среднему смартфону тарифный план включает один гигабайт данных в месяц. — Процессоры серии A50 в сочетании с уникальной плотной вычислительной матрицей AMD с низким энергопотреблением обеспечат новые уровни выбора и энергоэффективности в вычислительной среде центров обработки данных и запустят новую экосистему 64-разрядных серверов», — сказала д-р Лиза Су, старший вице-президент. и генеральный менеджер глобальных бизнес-подразделений AMD. «AMD считает, что наше стратегическое партнерство с ARM в сотрудничестве с OEM-партнерами и ключевыми партнерами по экосистеме поможет открыть новую эру корпоративных вычислений».
BROADCOM
«Broadcom занимается разработкой передовых, высокоинтегрированных и полных мобильных платформ, которые будут работать на мобильных устройствах следующего поколения», — сказал Мартин Хамфрис, вице-президент и генеральный директор Broadcom, группа процессоров мобильных приложений. «Будущие потребительские запросы потребуют от мобильных устройств невиданного до сих пор уровня функциональности и производительности. Процессоры серии Cortex-A50 в сочетании с технологией Broadcom позволят использовать эти передовые устройства и значительно улучшить работу конечного пользователя».
CALXEDA
«Сегодня мы наблюдаем широкий интерес рынка к переходу на альтернативную серверную инфраструктуру с низким энергопотреблением с решениями на базе 32-разрядных процессоров ARM, и, конечно, 64-разрядная технология ARM расширит эту привлекательность». сказал Барри Эванс, соучредитель и генеральный директор Calxeda. «Не зря Calxeda была названа одной из самых прорывных технологий в отрасли: клиенты сталкиваются с надвигающимся энергетическим кризисом, и эта технология представляет их лучшую надежду на то, чтобы справиться с этим. Мы действительно являются свидетелями рассвета новой эпохи в вычислительной архитектуре».
HISILICON
«Цель HiSilicon — вносить эффективный вклад в устойчивое развитие экономики, общества и окружающей среды, обогащая жизнь посредством общения. Для этого мы поставляем сетевые, беспроводные и цифровые медиа-решения, которые удовлетворяют спрос как на энергоэффективность, так и на высокую производительность», — сказал Джордж Ю, генеральный менеджер Turing Processor BU, HiSilicon. «Работа с ARM в качестве ведущего партнера по новому процессору Cortex-A57 поддержит HiSilicon, поскольку мы продолжаем набирать обороты на этих важных рынках. В частности, наша способность беспрепятственно пересекать границы между 32-битной и 64-битной экосистемами будет иметь неоценимое значение, поскольку мы продолжаем работать с сообществом разработчиков программного обеспечения».
ORANGE
«Использование данных резко возрастает по мере того, как мобильный Интернет становится более доступным для клиентов, растет потребление HD-контента и мультимедийных услуг и появляются новые возможности подключения», — сказал Ив Мэтр, старший вице-президент по мобильным мультимедиа и устройства, оранжевый. «Чтобы максимально использовать достижения в области высокоскоростных мобильных сетей, операторам и производителям устройств необходимо иметь высокопроизводительные и энергоэффективные вычислительные мощности, такие как серия Cortex-A50, чтобы продолжать рост на рынке подключенных устройств и создавать новые впечатления».
SAMSUNG
«Samsung очень рада партнерству с ARM, поскольку они представляют серию процессоров Cortex-A50, которые обещают изменить соотношение мощность/производительность в вычислениях», — сказал Джон Калкман, вице-президент Samsung Semiconductor. , Inc. «Объединив лидерство в области инновационных технологий как Samsung, так и ARM, клиенты получат возможность использовать самые передовые процессоры приложений для будущих вычислительных платформ».
STMICROELECTRONICS
«Потребность рынка в разнообразных совместимых мобильных устройствах с постоянно включенным и повсеместным подключением, а также растущий трафик данных, генерируемый этими устройствами, получающими доступ к расширяющимся облачным сервисам, приводят к революции в вычислительной технике», — сказал Джан. Лука Бертино, исполнительный вице-президент и генеральный директор Digital Convergence Group, STMicroelectronics: «Производительность семейства Cortex-A50, включая его способность выполнять 64-битные инструкции и его масштабируемость, предоставляет ST новые возможности для продолжения разработки широкого спектра инновационных решений. решения, в том числе наша унифицированная платформа обработки нового поколения для приложений цифровой конвергенции, а также специализированные продукты для сетевых приложений и приложений инфраструктуры центров обработки данных, которые позволяют нашим клиентам решать сложные задачи, связанные с постоянно растущими объемами данных».
Советы по энергосбережению при быстром прототипировании микроконтроллеров ARM Cortex-M
Скачать эту статью в формате .PDF Этот тип файла включает в себя графику и схемы с высоким разрешением, когда это применимо. |
Мы все чаще видим, что новые идеи, продукты и приложения возникают в сообществах разработчиков-энтузиастов, а не в крупных корпорациях. Подумайте обо всех последних технологических продуктах с краудфандинговых сайтов, таких как Kickstarter, Indiegogo и Tindie. Согласно прогнозам, миллиарды устройств составят Интернет вещей (IoT), и перед разработчиками-предпринимателями открывается множество возможностей. Но прежде чем пожинать плоды, нужно преодолеть трудности.
Выйти на рынок быстрее, чем конкуренты, необходимо в сегодняшнюю эпоху Интернета вещей. Концепция быть первым на рынке с жизнеспособным продуктом широко распространена в отрасли. Чтобы добиться успеха с быстрым выходом на рынок, вам нужно сократить время разработки. В мире разработки программного/микропрограммного обеспечения появилось множество сред быстрого прототипирования для ускорения этих усилий с разной степенью успеха.
Arduino может быть самой известной платформой, но ряд других широко используется в реальных коммерческих продуктах. Только для архитектуры ARM Cortex-M существует множество альтернатив, включая libopencm3, Espruino и .NET Micro Framework (NETMF). У всех этих фреймворков есть одна общая черта: они не очень эффективны для минимизации энергопотребления. А с учетом повышенного внимания к времени автономной работы устройств, подключенных к Интернету вещей, это становится серьезной проблемой проектирования.
Куда уходит моя энергия?
Во-первых, давайте сделаем шаг назад и рассмотрим взаимосвязь между мощностью и потреблением энергии в полупроводниках. Поскольку микроконтроллеры (MCU) в основном содержат огромное количество транзисторов, настроенных как переключатели, наиболее важным фактором в общей потребляемой мощности является активная (или коммутируемая) мощность. Каждый переключающий транзистор рассеивает некоторое количество энергии при каждом переходе (равное квадрату емкости нагрузки, умноженной на напряжение питания). Таким образом, большее количество переходов в секунду (более высокая частота ядра) приведет к более высокому потреблению активной мощности, но также и к более короткому времени выполнения.
1. Более низкие тактовые частоты не обязательно означают более низкое общее энергопотребление.
Суммарная потребляемая активная энергия равна мгновенному потреблению активной мощности, умноженному на время, в течение которого цепь потребляла указанную мощность. Таким образом, инстинктивное снижение тактовой частоты не приведет к увеличению потребления активной энергии. Вместо этого вы получите точно такую же активную энергию, затраченную на выполнение той же операции на более высокой частоте, как показано на Рисунок 1 (область внутри красного квадрата).
Поскольку действуют и другие факторы, такие как ток утечки, время переключения и время пробуждения, обычно лучше уменьшить активное время и отключить части схемы, от которых вам больше не нужно избавляться. утечки в этих частях. Хотя это противоречит здравому смыслу, обычно лучше выполнять программу как можно быстрее. Это выявляет еще одно ограничение — максимальную скорость выполнения.
Поэтому в техническом описании вашего MCU упоминаются характеристики максимальной тактовой частоты, а также показатель потребления тока в единицах тока на мегагерц. Периферийные устройства часто будут иметь дополнительные ограничения на тактовую частоту из-за транзисторов: чем меньше транзистор, тем меньше его емкость и тем меньше энергии он будет потреблять при переключении. Однако время перехода будет увеличиваться, что приведет к снижению достижимых скоростей.
В результате поставщики микроконтроллеров снижают энергопотребление, принимая конструктивные решения для каждой части ИС, чтобы найти наиболее эффективное сочетание меньших, медленных, но более энергоэффективных транзисторов по сравнению с более крупными, быстрыми и мощными транзисторами. Поэтому, если вашему приложению требуется шина связи только с частотой 1 МГц, лучше выбрать MCU с максимальной частотой 10 МГц, а не с масштабируемой до 100 МГц.
Спящий режим — наиболее распространенный способ сократить потребление
Поскольку вы ничего не можете сделать с размерами транзисторов или дизайном и размещением схемы, мы перейдем к программным технологиям. Для целей этой статьи давайте выберем универсальный микроконтроллер на базе ядра Cortex-M0+, который, в свою очередь, основан на микроархитектуре ARMv6-M.
Используя это ядро, мы уже получаем некоторые средства для снижения мощности. Из «Руководства пользователя Cortex-M» (глава 2.5, Управление питанием) мы видим, что реализованы две конкретные инструкции: ожидание события (WFE) и ожидание прерывания (WFI). Эти инструкции остановят выполнение ядра до возникновения события или прерывания. Чтобы соотнести это действие с нашей теорией энергопотребления, оно выключит часы ядра процессора, что означает, что все эти транзисторы перестанут переключаться, что значительно снизит энергопотребление, когда вам не нужно ядро.
Кроме того, в основных регистрах есть бит SLEEPDEEP. Согласно руководству пользователя Cortex-M0+, «обычный» спящий режим останавливает часы процессора, в то время как режим глубокого сна (когда SLEEPDEEP установлен) останавливает системные часы, выключает контур фазовой автоподстройки частоты (PLL) и выключает флэш-память. Глубокий сон может иметь дополнительные свойства в зависимости от поставщика микроконтроллера, поскольку он определен ARM как частично зависящий от реализации, хотя поставщики обычно не сильно расходятся.
2. Пример режимов пониженного энергопотребления MCU (синий = режим остановки EM3, черный = режим отключения EM4).
В зависимости от производителя MCU может иметь еще больше состояний питания, которые вы можете использовать в своих интересах. Например, микроконтроллер EFM32 Happy Gecko от Silicon Labs имеет еще два состояния: режим остановки, когда включено только несколько низкочастотных или асинхронных периферийных устройств; и режим отключения, когда отключается все, кроме внешних прерываний. На рис. 2 эти режимы обозначены соответственно темно-синим цветом (режим остановки EM3) или черным цветом (режим отключения EM4).
Поскольку режимы являются прогрессивными, доступность периферийных устройств в состоянии с более высоким энергопотреблением является надмножеством состояния с более низким энергопотреблением. Другие поставщики имеют аналогичные настройки; различия между ними заключаются в том, какие периферийные устройства, части памяти и/или деревья часов в каком состоянии находятся во включенном состоянии. Прочитайте справочное руководство вашего MCU, чтобы узнать.
Сон — это инструмент, а не цель
Вы можете подумать: «Хорошо, давайте заставим нашу программу засыпать как можно быстрее, так крепко и как можно чаще». Хотя вы были бы правы по большей части, следует рассмотреть еще один компромисс. Выход из спящего режима требует времени и энергии, и эти две переменные изменяются в зависимости от того, насколько глубоко микроконтроллер спит, как показано в таблице . В то время как переключение между рабочим режимом и первым спящим режимом может быть быстрым и безболезненным, переключение в режим глубокого сна и выход из него определенно не связано с необходимостью перезапуска часов и повторной инициализации периферийных устройств.
По этой причине вам следует выполнить измерения на разных версиях вашего кода, чтобы определить, что более уместно — использовать более мощный спящий режим — или вообще не переходить в спящий режим и соответствующим образом снизить тактовую частоту. Это решение в значительной степени зависит от фактического кода, который вы используете, и функциональности, которую вы хотите получить от своего MCU. В случае инструментов быстрой разработки это не то, что вы можете решить на нижних уровнях, за исключением определенных предположений, основанных на среднем сценарии использования.
Кроме того, перевод ядра в спящий режим через WFE/WFI не гарантирует отключения тактов периферийных устройств. Поэтому, чтобы сэкономить больше энергии, всегда выключайте периферийные устройства, которые вам больше не нужны, перед сном.
Максимальное время ожидания
Переход в спящий режим осуществляется путем вызова WFE или WFI, и выполнение возобновится при наличии события или (включенного) ожидающего прерывания соответственно. Таким образом, если вы хотите успешно реализовать спящее энергосберегающее приложение, необходимы прерывания, чтобы сигнализировать ядру о том, что нужно проснуться для выполнения обработки. Самый известный вариант использования прерываний — ожидание нажатия пользователем кнопки. Вместо того, чтобы постоянно проверять, была ли нажата кнопка (и сжигать энергию в процессе), настройте MCU на генерацию прерывания при нажатии кнопки. Таким образом, ядро может спать, пока не получит прерывание, а затем продолжить выполнение.
MCU могут делать гораздо больше, чем интерпретировать нажатия кнопок. Периферийные устройства MCU имеют различные степени способности работать автономно, и эти периферийные устройства используют прерывания, чтобы сигнализировать ядру: «Эй, я закончил свою работу». Автономная работа особенно полезна для длительных операций, таких как передачи, преобразования АЦП и ожидание истечения времени таймера или RTC.
Подавляющее большинство, если не все, микроконтроллеров на базе Cortex-M реализуют прямой доступ к памяти (DMA). Таким образом, вы можете перемещать еще больше данных между периферийными устройствами и оперативной памятью, пока ядро находится в спящем режиме, что приводит к увеличению времени ожидания. Некоторые поставщики микроконтроллеров еще больше используют эту технику для сокращения использования процессорного ядра. Они позволяют реализовать пользовательскую логику (например, семейство PSoC от Cypress) или иметь специальные встроенные конструкции (например, периферийную рефлекторную систему микроконтроллеров EFM32), которые позволяют периферийным устройствам работать вместе без пробуждения ядра.
Поскольку процессорное ядро является наиболее энергоемкой частью микроконтроллера, работа без его активного участия — это самое большое влияние, которое вы можете оказать на снижение энергопотребления микроконтроллера.
Компромиссы при быстром прототипировании
Держитесь! Первоначальной причиной, по которой мы собирались использовать среду быстрого прототипирования, было сокращение времени разработки, а не увеличение его за счет изучения всех особых случаев для различных микроконтроллеров. Мы хотим сразу погрузиться в разработку приложений, а о деталях позаботимся позже.
Типичные ограничения для быстрой разработки в значительной степени универсальны — API-интерфейсы должны быть простыми в использовании; должно быть легко быстро начать работу без предварительных знаний; и большое количество примеров кода должно быть доступно для использования как есть или для порождения новых идей. Желательно, чтобы фреймворк также не привязывал вас к одному конкретному поставщику из соображений переносимости и вторичных источников.
При применении этих ограничений вы можете столкнуться с некоторыми проблемами на уровне абстракции фреймворка. Например, как поставщик нижних уровней аппаратной абстракции (HAL), вы никогда не знаете, что пользователь собирается программировать, какие периферийные устройства будут использоваться и когда. Эти неопределенности могут усложнить планирование с низким энергопотреблением.
На самом деле возможности открываются на пересечении целей проектирования с низким энергопотреблением и простоты использования сред быстрого прототипирования, даже если они ориентированы на поддержку нескольких поставщиков микроконтроллеров.
Изменение модели программирования
Рассмотрим базовые API-интерфейсы для среды быстрого прототипирования MCU (не RTOS). Скорее всего, интерфейс работает примерно так же, как левая сторона Рисунок 3 . Когда вы хотите, чтобы ваша система что-то сделала, вы вызываете для этого функцию, и эта функция возвращается, когда действие завершено. Фреймворк настроен таким образом, потому что поток программирования прост и линейен.
3. Модель асинхронного программирования более сложная, но позволяет воспользоваться преимуществами возможностей автономной работы микроконтроллера.
Однако этот подход имеет существенный недостаток. Ваша программа застряла на выполнении одной задачи, поэтому вы не можете одновременно выполнять другую задачу. Реализация может позволить функции перейти в спящий режим во время передачи, но тогда вы столкнетесь с другими вопросами, такими как «Как глубоко вы спите?» Ответ зависит от других активных периферийных устройств и от того, как долго им нужно спать, пока они снова не проснутся, как показано ранее. Все это можно рассчитать и оценить динамически, но это требует дополнительных циклов и, следовательно, энергии.
Чтобы сэкономить энергию, мы должны внести изменения в то, как работает базовая система и как пользователь взаимодействует с ней. С этой целью можно реализовать «модель асинхронного программирования», как показано в правой части рис. 3. Это означает, что вы вызываете функцию для запуска длительного действия, и эта функция немедленно возвращается после настройки системы для запрошенное действие. Затем действие будет выполняться в фоновом режиме с помощью прерываний и, возможно, передачи DMA до завершения, все из которых прозрачны для пользователя.
Но что, если пользователь хочет знать, что передача действительно завершена? В этом случае асинхронная модель поддерживает так называемые callback-функции. Эти функции могут быть написаны пользователем и переданы в качестве аргумента при вызове функции «начать действие». Затем функция обратного вызова вызывается, когда действие завершено или когда что-то еще привело к прерыванию действия, используя мощность (экономию) автономной работы.
Повторное посещение сна
Поскольку все это происходит независимо от основной программы, теперь пользователю может быть предоставлена возможность спать. Позволяя пользователю сделать выбор, мы на самом деле обеспечиваем лучшие способы оптимизации энергопотребления. Программист знает ожидаемое поведение приложения, поэтому он может принять решение приостановить работу. Или асинхронное действие слишком короткое, и засыпание на самом деле будет потреблять больше энергии.
Чтобы система знала, насколько глубоко в таком случае следует спать, она также должна отслеживать используемые периферийные устройства и их ограничения по режиму питания (например, посредством подсчета ссылок). Затем, когда пользователь вызывает спящий режим, вы проверяете эти счетчики и переходите в самый низкий возможный спящий режим, отключая все незанятые часы, чтобы не допустить переключения как можно большего количества транзисторов.
Как избежать условий гонки
Опытные программисты заметят здесь проблему. Поскольку система выполняет служебные операции (например, управление часами и состояниями периферийных устройств) между принятием решения о том, в какой спящий режим перейти, и выполнением фактической инструкции WFI, возможно, что действие, которого мы ждали, уже завершено, и функция обратного вызова выполняется в это время. . Это очень неудобно, так как решение о спящем режиме уже принято, но условия этого решения могли быть изменены через обратный вызов.
Например, если обратный вызов был от таймера, но этот обратный вызов запустил последовательную передачу, возможно, что теперь система продолжит переход в более низкий спящий режим, чем поддерживает последовательная передача. Это портит все поведение программы в процессе — и, возможно, постоянно засыпает.
Первоначальным решением было бы отключить прерывания перед принятием решения и снова включить их при выходе из спящего режима. Однако это отключило бы то, чего мы на самом деле ждем, засыпая, и сон снова стал бы вечным. Включение прерываний непосредственно перед инструкцией WFI/WFE приведет к тому, что все прерывания, которые произошли между моментом их выключения и повторным включением, будут выполняться непосредственно перед переходом в спящий режим, что приведет к той же проблеме.
Чтобы наш MCU не превратился в Спящую красавицу, нам нужен принц, который придет и спасет нас. Получается, что принц приходит в виде бита в ядре Cortex-M. Этот бит, называемый PRIMASK, запрещает выполнение всех прерываний (кроме немаскируемых, таких как HardFault). Но разве это не отключает наш источник пробуждения?
Листинг 1: Псевдокод для перехода в спящий режим без состояния гонки на Cortex-M
Изучив определение инструкции WFI, вы увидите, что она не только просыпается для обслуживания прерывания, но и когда прерывание становится ожидающим, что могло бы произойти если PRIMASK не был установлен. Это означает, что если между принятием решения и вызовом WFI произошло прерывание, WFI не переведет ядро в спящий режим, а немедленно вернется. Кроме того, отключение PRIMASK приведет к обработке прерывания, как показано в листинге 1.
Пример из реальной жизни
Чтобы показать, какое влияние это оказывает на реальную среду быстрого прототипирования, мы реализовали эти методы в среде ARM mbed. Он предоставляет API, полностью независимый от аппаратного обеспечения с точки зрения пользователя. Один и тот же код приложения может работать на любом микроконтроллере Cortex-M независимо от поставщика, если поставщик реализовал mbed HAL для своего микроконтроллера.
Листинг 2: «Обычное» мигание светодиодной программы
Чтобы продемонстрировать эффект этих изменений, мы измерили энергопотребление двух приложений, созданных с помощью mbed — одного простого мигающего приложения (листинги 2 и 3) и еще одно расширенное приложение (полный код см. по этой ссылке), управляющее графическим ЖК-дисплеем и отслеживающее время.
Листинг 3: Программа мигания светодиодов с низким энергопотреблением
Начиная с приложения мигания светодиодов, мы можем видеть в рис. 4 , что MCU использует 3,32 мА при записи циклов в контуре задержки. Сам светодиод, который горит половину времени, потребляет 0,49 мА.
4. Изменение мощности между циклами сна и горения.
На том же рисунке в примере с низким энергопотреблением используется 499,45 мкА при включенном светодиоде и 1,38 мкА при выключенном. Обратите внимание, что скачки энергопотребления происходят непосредственно перед переключением светодиода. Это моменты, когда ядро пробуждается и использует полную мощность в течение нескольких циклов, чтобы фактически переключить светодиод. Однако из-за усреднения в профилировщике мощности всплеск не отображается полностью.
Если мы рассчитаем средний ток за полный цикл, мы получим средний ток 10 мкА. Это 0,3% тока микроконтроллера в обычном примере! Если затем мы посмотрим на общее энергопотребление (включая светодиод) приложения с мигающим светодиодом, то увидим падение с 3,57 мА до 0,26 мА в среднем. Это означает, что ваша батарея теперь внезапно работает в 13 раз дольше.
Если мы рассмотрим пример управления ЖК-дисплеем с часами, изменения будут немного менее выражены, потому что мы не игнорируем потребление ЖК-дисплея. Тем не менее, результаты впечатляют. На рис. 5 показано влияние различных программных функций на энергетический профиль приложения. При использовании обычных API-интерфейсов mbed средний ток за одну итерацию составляет 3,06 мА. Когда мы реализуем ту же демонстрацию, используя модель асинхронного программирования и переходя в спящий режим между ними, мы можем снизить потребление тока до низких 88 мкА, что приведет к увеличению срока службы батареи в 35 раз.
5. Замена синхронной модели программирования асинхронной версией показывает 35-кратное улучшение энергопотребления.
Заключение
Несмотря на то, что в этой статье речь идет лишь о методах энергосбережения, становится ясно, что использование среды быстрой разработки, такой как ОС ARM mbed, не должно убивать срок службы батареи. Использование общих, независимых от поставщиков методов может значительно снизить энергопотребление вашего приложения, и это отличная отправная точка для оптимизации энергопотребления.
Добавить комментарий