Интеллектуальные драйверы уменьшают энергопотребление и упрощают разводку печатных плат в портативных системах
В статье описаны основные принципы снижения энергопотребления в современных портативных устройствах. На примере интеллектуального драйвера подсветки дисплея показано, как увеличить энергоэффективность системы и, в то же время, обеспечить выполнение различных функций управления дисплеем, а также упростить конструкцию печатных плат. Статья представляет собой перевод [1].
Продолжается бурное развитие портативных электронных устройств. Каждое новое поколение этих продуктов включает в себя все больше функций. Требования к периферийным блокам этих устройств становятся все более универсальными, т.к. источники питания, порты и интерфейсы человек-машина используют одинаковые принципы.
Как добиться низкого энергопотребления полнофункциональных устройств
С увеличением количества функций и ростом производительности этих систем возрастает необходимость управления мощностью рассеяния по нескольким причинам.
1. С ростом функциональной плотности этих устройств растет также рассеиваемая мощность. Успехи технологии производства полупроводников позволяют отчасти смягчить данную тенденцию, но только этого недостаточно.
2. Несмотря на расширение функциональности этих устройств, рынок требует уменьшить их габариты, что также увеличивает плотность рассеиваемой мощности. Возникают ограничения, связанные с требованиями к интерфейсу человек-машина и определяемые стандартами, которые регулируют механическую и электрическую надежность приборов.
3. С уменьшением габаритных размеров устройств уменьшается также доступное пространство для размещения источников питания. Несмотря на успехи в развитии технологий батарей, особенно литиево-ионных, ограничение доступного пространства не позволяет OEM-производителям существенно увеличить емкость элементов питания.
Подходы OEM-производителей к снижению энергопотребления продуктов также претерпели изменения. Можно выделить несколько уровней стратегии компаний в этой области. Стратегия первого уровня заключается в увеличении эффективности подсистемы управления мощностью, включая минимизацию потерь в DC/DC-преобразователях, LDO-стабилизаторах, а также схемах управления и защиты батарей.
Данный подход зависит в основном от способности вендоров полупроводниковых приборов производить компоненты и интегральные схемы, которые рассеивают меньше мощности, чем другие подобные устройства. В результате инженеры OEM-компании вынуждены идти на компромисс между энергоэффективностью компонентов, их стоимостью и размером корпуса.
Несмотря на то, что эта стратегия поначалу была довольно эффективна, рынок компонентов, по большей части, уже реализовал возможности в данном направлении. Как и в случае с аналоговыми и аналого-цифровыми микросхемами, компоненты, появившиеся в итоге применения данной стратегии, не получили того значительного преимущества при переходе на новые технологические нормы и масштабировании кристалла, какое приобрели цифровые схемы.
Стратегия второго уровня заключается в отключении питания части системы или микросхемы, которая не используется в текущий момент времени. Эта стратегия была особенно эффективна для крупных потребителей энергии, таких как РЧ-устройства или блоки подсветки дисплея, но также позволяет увеличить время работы устройства на одной зарядке путем отключения даже такой умеренной нагрузки как звуковая подсистема, порты ввода/вывода или энергонезависимая конфигурационная память. Например, выпускающиеся в настоящее время мобильные телефоны имеют 20 и более отдельных областей питания.
Помимо снижения рассеиваемой мощности за счет переключения в дежурный режим наиболее мощных схем, данный подход помогает уменьшить рассеиваемую мощность в статическом режиме, когда система отключает тактируемую часть схемы. Поскольку технология изготовления интегральных схем постоянно совершенствуется в направлении уменьшения минимальных размеров элементов, эта стратегия успешно заменила метод управления тактового сигнала для снижения токов потребления в статическом режиме.
Данная стратегия зависит от совместных усилий разработчиков системной архитектуры, программистов и поставщиков ASIC. Несмотря на достигнутые успехи, этот подход был в некоторой степени ограничен ростом числа дополнительных функций, реализуемых в приложении. Он вынуждал разработчиков использовать все более мощные и энергоемкие вычислительные ресурсы. Например, сотовые телефоны перешли с процессоров ARM-7 на ARM-9 и ARM-11 для увеличения ресурсов контроллера широкополосного доступа и решения вспомогательных задач. Подобная тенденция наблюдается и в отношении других портативных устройств.
Стратегия третьего уровня направлена на снижение энергии, используемой различными функциональными блоками без ущерба для производительности. Один из таких методов заключается в применении интеллектуального управления функциями, которые, например, не требуют значительных вычислительных ресурсов процессора широкополосного доступа или процессора приложений.
Эта стратегия позволяет процессору передавать многие свои функции полуавтономным периферийным контроллерам. В результате необходимость использования полных вычислительных ресурсов процессора уменьшается, и его переход из дежурного в рабочий режим происходит значительно реже. Примером такого подхода служит интеллектуальный драйвер подсветки дисплея.
Роль микроуправления для подсветки дисплея
Пользователям портативных электронных устройств важно, чтобы экран дисплея обеспечивал отчетливое отображение информации в широком диапазоне условий внешнего освещения. В современных портативных устройствах для реализации этого используется фотодиод или фототранзистор, который измеряет уровень внешнего освещения как входной параметр для управления драйвером подсветки.
Фотодатчику требуются цепи формирования сигнала: постоянное смещение для возбуждения датчика, схемы усиления и аналого-цифрового преобразования или, как минимум, один или два уровня порогового детектирования. Главный процессор контролирует выходной сигнал фотодатчика с периодичностью цикла преобразования данных через аналоговые порты ввода/вывода кристалла или внешние схемы. Это происходит с частотой от одного до нескольких циклов преобразования в секунду. Затем контроллер считывает результаты преобразования и определяет один из трех уровней освещенности, соответствующих условиям дневного освещения, хорошо освещенного помещения и тусклого освещения, например в гостиной, ресторане или ночном клубе.
Далее процессор формирует управляющие сигналы для драйвера подсветки, который обеспечивает один из трех возможных уровней тока для питания цепочки светодиодов. Это и есть одна из форм микроуправления, т.е. центральный энергоемкий процессор передает часть своих функций другим блокам системы с меньшими эксплуатационными расходами. Такой подход обеспечивает тройную выгоду: снижение энергопотребления, уменьшение числа компонентов и упрощение разводки печатной платы. Ниже перечислены основные преимущества этой стратегии.
Выигрыш 1: интеллектуальные драйверы разгружают процессор
Измерения показывают, что интеллектуальный драйвер подсветки ADP5520 обеспечивает экономию энергопотребления при управлении от микроконтроллера и, в то же время, работает автономно при управлении подсветкой дисплея. Драйвер ADP5520 содержит асинхронный повышающий преобразователь, программируемый блок управления подсветки, в зависимости от интенсивности внешнего освещения, конечный автомат и конфигурируемый расширитель порта, который обеспечивает дополнительную экономию ресурсов системы.
Повышающий преобразователь способен управлять токами шести белых последовательно соединенных светодиодов, падение напряжения на которых составляет 24,5 В при управляющем токе 30 мА. Блок измерения интенсивности внешнего освещения обеспечивает преобразование уровней сигналов датчика света и, работая совместно со встроенным конечным автоматом и повышающим контроллером, 128 уровней тока через светодиод в диапазоне 0…30 мА.
При выполнении процессором только сервисных функций контроля освещенности, ADP5520 обеспечивает 15-% увеличение времени работы на одной зарядке батареи при тестировании, моделирующем различные варианты эксплуатации сотового телефона (см. рис. 1). Включение этапа измерения уровня внешней освещенности в процесс управления, используемый драйвером ADP5520, улучшает время работы в дежурном режиме на одной зарядке на 50%, по сравнению с исходным режимом работы. Приведенные кривые характеризуют варианты эксплуатации сотового телефона, в которых не требуется работа РЧ-блока, например, такие как игры, просмотр и составление текстовых сообщений или режим фотоаппарата.
Часто разработчикам необходимо реализовать функцию постепенного изменения яркости дисплея вместо переключения уровня подсветки. Для выполнения этой задачи требуется активное взаимодействие блоков управления подсветкой с процессором, что значительно увеличивает его загрузку по сравнению с включением/отключением подсветки. Интеллектуальный драйвер светодиодов ADP5520 способен реализовать различные законы изменения тока светодиода, включая линейный, квадратичный и кубический, что в еще большей мере снижает загрузку процессора (см. рис. 2). Драйвер конфигурируется с помощью дискретных значений времени увеличения и уменьшения яркости в диапазоне 300 мс…5,5 с. Встроенный таймер регулировки яркости со сбросом программируется на один из 15 интервалов в диапазоне 10…120 с.
Выигрыш 2: интеллектуальные драйверы обеспечивают низкочастотные функции
Кроме энергосбережения, интеллектуальные драйверы способны реализовать другие функции управления периферией, не требующие высокой производительности. Например, ADP5520 содержит конфигурируемый расширитель порта, который обеспечивает восемь линий ввода/вывода.
В данном устройстве две линии ввода/вывода можно объединить с третьим специализированным выводом в качестве независимого источника тока для светодиодов, который обеспечивает программируемую регулировку яркости подсветки, включение/отключение и режим мерцания (см. рис. 3). Остальные выводы можно запрограммировать в качестве кнопок клавиатуры или как линии ввода/вывода общего назначения.
Эти дополнительные драйверы обеспечивают ток 0…14 мА и 64-шаговую регулировку яркости. Как и основной источник тока, вспомогательные драйверы обеспечивают управление включением/отключением или плавную регулировку яркости подсветки по линейному или нелинейному законам.
Выигрыш 3: применение интеллектуальных драйверов уменьшает число проводников на плате
Интерфейс I2C реализован для передачи конфигурационных данных от процессора к интеллектуальному драйверу и обратной пересылки в процессор данных состояния; для информации с портов ввода/вывода или сигнала о нажатии на клавишу в ADP5520. Это дает возможность упростить топологию печатной платы в портативных электронных приборах за счет уменьшения числа компонентов и проводников между периферией и контроллером.
Экономия числа межсоединений еще больше в случае, когда в сотовом телефоне используется поворотный или ползунковый механизм сопряжения, который разделяет дисплей, индикаторы и клавиатуру от процессора. В этом случае интеллектуальный драйвер светодиодов со встроенным расширителем порта может существенно уменьшить размеры и стоимость гибкого кабеля, соединяющего части устройства (см. рис. 4).
Устраняем проблемы электропитания, или не спешите сдавать железку по гарантии
Часто после установки нового железа возникают на первый взгляд фатальные проблемы: бесконечная перезагрузка, зависание системы намертво, необоснованные подтормаживания. В ряде случаев к этому приводят несовместимые с десткопным железом настройки электропитания и всё вполне поправимо. Давайте разберемся что это за проблема и как ее устранить.
8 июля 2021, четверг 00:04
ivvy1000 [ ] для раздела Блоги
MSI 4070Ti подешевела на порядок
-10% на RTX 4080 Gigabyte
-9000р на новейшую RTX 4070 в Ситилинке
-15000р на Ryzen 3950X — пора брать
1Tb SSD Crucial в ДВА раза подешевел
-45000р на iPhone 14 Pro — смотри цену
За пост начислено вознаграждение
Что может быть не так с настройками питания компонентов компьютера?
Давайте сначала взглянем вот на эту диаграмму:
реклама
Очевидно, что ноутбуков продается гораздо больше, чем собирается настольных компьютеров и производители компонентов и софта во многом ориентируются на ноутбучный сегмент.
В ноутбуках одна из ключевых характеристик — время автономной работы от батареи. Чтобы его продлить производители стараются максимально оптимизировать потребление энергии, снижая его всегда, когда это возможно. В качестве побочного эффекта мы получаем, что энергосбережение пытается взять власть и в моменты, когда ноутбук подключен в сеть и даже на настольном компьютере. Как только система чувствует, что нагрузка снижена или она бездействует, начинают активироваться режимы пониженного энергопотребления. И вот эти режимы могут на настольном компьютере неожиданно приводить к полному зависанию, отключению отдельного устройства или системы в целом.
рекомендации
4080 Gigabyte Gaming дешево в Регарде
RX 7900XT подешевела на порядок
3070 Gigabyte дешевле 50 тр в Регарде
Много 4070 в Ситилинке
Компьютеры от 10 тр в Ситилинке
13900K в Регарде по СТАРОМУ курсу 62
Много 4080 от 100тр — цены в рублях не растут
3060 дешевле 30тр цена — как при курсе 68
-7% на ASUS 3050 = 28 тр
13700K дешевле 40 тр в Регарде
15 видов 4090 в Ситилинке — цены идут вниз
Ищем PHP-программиста для апгрейда конфы
За последние 8 лет я сталкивался с таким несколько раз на настольных компьютерах. Обнаруженные проблемы можно разложить по следующим категориям:
- Внезапное отключение системы из-за высокого уровня c-states процессора
- Подвисания системы из-за высокого уровня с-states
- Внезапный отвал NVMe диска из-за режима энергопотребления по умолчанию, даже если диск был под нагрузкой
- Кратковременное снижение производительности NVMe дисков из-за режима энергопотребления по умолчанию, даже если диск был под нагрузкой.
Проблемы у меня были с разными компонентами разных поколений и производителей: Intel i7-4770k, Ryzen-3900x, NVMe Kingston A2000. Судя по информации от других пользователей, проблемы бывают и со многими другими устройствами.
реклама
var firedYa28 = false; window.addEventListener(‘load’, () => < if(navigator.userAgent.indexOf("Chrome-Lighthouse") < window.yaContextCb.push(()=>< Ya.Context.AdvManager.render(< renderTo: 'yandex_rtb_R-A-630193-28', blockId: 'R-A-630193-28' >) >) >, 3000); > > >);
Первый раз я столкнулся с этим, когда 7 лет назад новенький компьютер с 4770k на борту начал подтормаживать без какой-либо серьезной нагрузки. Когда внезапно компьютер вырубился, я перебрал и перепроверил все компоненты: от блока питания до материнки. Путем исключения выяснил, что проблема с процессором, и, сначала уже хотел сдавать его по гарантии, но потом выяснил, что он исправен. Под Windows было крайне сложно понять что же происходит. Помог запуск под Linux и изучение его журнала, который оказался очень подробным. Система не вырубалась, но в списке ошибок было что почитать. Гуглю эти ошибки — и я узнаю, что ещё много людей мучаются с такой проблемой. Так я узнал про c-states и, что неким образом при его высоких значениях система сначала пытается снизить энергопотребление, а этого не хватает мощному десктопному процессору даже для простоя. Аналогичная ситуация происходила с Ryzen 3900х. Тоже хотел сдавать по гарантии, думал что два раза в одну воронку снаряд не попадает. Да и за 6 лет индустрия должна была (нет) уже с этим разобраться. Усложнялось все ещё тем, что если в случае с 4770k падения и подвисания происходили достаточно часто — раз в несколько дней и можно было отследить, то 3900х падал раз в месяц, да еще и был в офисе. Но, попробовав изменить c-states, все решилось и работает уже полтора года как часы.
Похожая ситуация была с ssd дисками — их режимы ожидания что под Windows что под Linux похоже целиком пришли из ноутбучного мира, что не совсем дружит с десктопом.
Что такое с-states, какие могут быть проблемы?
реклама
С-states — это режимы энергосбережения процессора. Впервые их ввели еще на 486м Intel’е.
В большинстве систем есть 7 уровней C-states (плюс еще некоторые подуровни для определенных процессоров). В некоторых системах есть и 10 уровней. В других есть пропущенные уровни. Если активирован уровень C0, то все компоненты процессора потребляют энергию. Процессор в полностью рабочем состоянии и никаких проблем не возникает. Уровни C1-C2 соответствуют все еще включенному процессору с рабочим кэшом, но с остановкой либо замедлением одного или нескольких внутренних тактовых генераторов. Начиная с уровня C3 начинается спящий режим, кэш L1 инструкций пустой. Уровни С4-С6 определяют глубину этого спящего режима. Система, отслеживая свою активность, вычисляет на какой уровень c-state надо перейти в данный момент. Если активность снижается, система повышает уровень, снижая энергопотребление.
У операционной системы есть глобальный параметр max_c-state, определяющий максимальное значение c-state в которое может уходить система. По умолчанию он как раз, наследуя ноутбучные правила, близок или равняется C6.
Проблемы могут возникнуть с повышением уровня C-states. Выходя с C0 на С1/C2 может произойти отключение или подвисания там, где этого не ждешь. Объясняется это тем, что современные алгоритмы управления C-states писались практически одинаковыми как для ноутбуков так и для мощных десктопных процессоров. Казалось бы, если установлен максимальный уровень на C3 или больше — то уже без разницы, какой будет конкретно уровень — ведь проблемы начинаются, когда система еще не в спящем режиме, а раньше. Но это не всегда так, у Windows 7 были проблемы как раз когда с C3 повышали максимальный допустимый уровень до C6. Видимо в системе были разные алгоритмы работы с энергопотреблением для разных максимальных уровней энергопотребления, а не только для текущего уровня.
Устраняем проблемы c С-states на Windows
Чтобы устранить проблему с c-states надо понизить его максимальный допустимый уровень до такого, когда система начнет работать стабильно. Если вы (как я) не выключаете компьютер месяцами, то можете сразу выставить C0.
Для этого надо под администратором воспользоваться утилитой командной строки POWERCFG :
- Узнаем доступные схемы питания c помощью powercfg /list:
- Выбираем схему Высокая производительность и копируем ее идентификатор. В моем случае идентификатор: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
- Выполняем команду powercfg /SETACVALUEINDEX 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c SUB_PROCESSOR IDLESTATEMAX 0:Где последняя цифра — максимальный допустимый уровень с-states, который вы хотите задать. В моем случае это 0. Эта команда меняет схему питания «Высокая производительность», задавая новый максимальный уровень для неё.
- Активируем схему питания: powercfg /SETACTIVE 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
Устраняем проблемы с C-states на Linux:
- открываем под sudo файл /etc/default/grub
- ищем секцию GRUB_CMDLINE_LINUX_DEFAULT
- прописываем intel_idle.max_cstate=0, где цифра — максимальный допустимый уровень c-state
- не смущаемся, что параметр называется intel_idle, для AMD он тоже работает
реклама
Примечание: некоторые BIOS позволяют установить max c-state в своем меню, но не факт, что система не переопределит это значение.
Проблемы с энергосбережением nvme дисков
По аналогии с процессорами NVMe диски имеют несколько уровней энергосбережения.
Данная технология называется Autonomous Power State Transition (APST) и призвана в первую очередь увеличить время работы батареи ноутбука.
Контроллер собирает информацию об активности системы и частоте запросов к диску и выставляет оптимальный с его точки зрения режим энергопотребления. Работа этого алгоритма регулируется выбранной схемой энергопотребления, которая в первую очередь характеризуется величиной таймаута. Если за время более чем таймаут, указанный в схеме к накопителю не было ни одного запроса, то драйвер повышает глубину уровня ожидания NVMe, выходя из уровня S0. На более глубоких уровнях увеличивается максимальное время отклика диска. В настройках этой схемы, в целом беспроблемно работающей на ноутбуках может быть заложено состояние, зайдя в которое десктопная система вызовет сбой и диск отмонтируется из файловой системы. Более того, если ОС загружена с этого диска, то с большой вероятностью она умрёт, а испуганный пользователь захочет сдать диск или все остальные девайсы по гарантии. У меня отвал диска с системой был только под Линуксом, но сам этот диск отваливался и из под Windows (Windows была на SATA). Основная проблема была конечно не отвал, а подвисания.
Ниже приведены стандартные настройки таймаутов NVMe для разных схем питания под Windows:
Я не нашел, что такие схемы различаются для десктопов и ноутбуков. Но, к счастью, пользователь может управлять этой схемой. Если мы повысим таймаут, то диск просто никогда не успеет уйти на более глубокий уровень ожидания и будет всегда активен.
Меняем схему энергосбережения NVMe под Windows 10
Есть два способа исправить проблему с схемой энергосбережения NVMe — через команду powercfg или через реестр + настройки питания. Мы рассмотрим второй способ, так как он более нагляден
Через реестр:
- Открываем реестр
- Проходим в раздел HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPowerPowerSettings 012ee47-9041-4b5d-9b77-535fba8b1442d639518a-e56d-4345-8af2-b9f32fb26109:
- Меняем значение в поле Attributes c 1 на 0:
- Теперь у нас доступна опция регулировки таймаута в настройках электропитания
- Win+X -> Управление электропитанием -> Дополнительные параметры питания -> Настройка схемы электропитания (для вашей текущей схемы) -> Изменить дополнительные параметры питания
- В открывшемся окне меняем таймаут на больший, если мы хотим, чтобы накопитель был активен почти всегда, и его не вырубало (я поставил 1000 когда были проблемы и они исчезли):
Меняем схему энергосбережения на Linux:
- Открываем /etc/default/grub под sudo
- под секцией GRUB_CMDLINE_LINUX_DEFAULT прописываем nvme_core.default_ps_max_latency_us=0
Как альтернатива — можно полностью отключить APST, но мне не удалось найти параметр.
Заключение:
Судя по тому, что я несколько раз сталкивался с этой проблемой и находил довольно многих пользователей с такими же неполадками, есть значительная часть десктопных компонентов отнесенная в сервис или сданная назад, будучи вполне рабочими, но не вполне совместимыми. Все это софтовые проблемы из-за ноутбучного влияния в коде ОС. Для рядового пользователя они совсем не приятные, и я надеюсь, что данный материал поможет кому-то из читателей.
За пост начислено вознаграждение
Подпишитесь на наш канал в Яндекс.Дзен или telegram-канал @overclockers_news — это удобные способы следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Источник https://russianelectronics.ru/intellektualnye-drajvery-umenshayut-energopotreblenie-i-uproshhayut-razvodku-pechatnyh-plat-v-portativnyh-sistemah/
Источник https://overclockers.ru/blog/IvvyLab/show/53407/ustranyaem-problemy-elektropitaniya-ili-ne-speshite-sdavat-zhelezku-po-garantii
Источник