Оптимизация энергопотребления — это попытка снизить энергопотребление цифровых устройств, таких как интегральные схемы, путем балансировки параметров. как размер, производительность и тепловыделение. Это очень важная область проектирования электронных компонентов, поскольку многие портативные электронные устройства требуют высокой вычислительной мощности при низком энергопотреблении. Компоненты должны выполнять сложные функции, но при этом генерировать как можно меньше тепла и шума, и все это размещается на очень маленькой площади поверхности. Интенсивно исследуемая область цифрового дизайна, оптимизация энергопотребления жизненно важна для коммерческого успеха многих устройств.
Идея оптимизации энергопотребления в электронной конструкции начала привлекать внимание в конце 1980-х годов с широким распространением портативных устройств. Срок службы батареи, эффекты нагрева и требования к охлаждению стали очень важными как по экологическим, так и по экономическим причинам. Установка все более сложных компонентов на чипы меньшего размера стала жизненно важной для обеспечения производства небольших устройств с большей функциональностью. Однако тепло, выделяемое при включении такого количества компонентов, стало серьезной проблемой. Нагрев также влияет на такие факторы, как производительность и надежность устройства.
Чтобы масштабировать чипы, уменьшить размер кристалла и по-прежнему иметь максимальную производительность при приемлемых уровнях температуры, необходимо потратить время на методологии оптимизации энергопотребления. Ручная оптимизация мощности становится невозможной с существующими микросхемами, такими как интегральные схемы, поскольку они содержат миллионы компонентов. Как правило, разработчики достигают оптимизации энергопотребления, ограничивая потери энергии, которые в основном представляют собой спекулятивные, архитектурные и программные потери. Все эти методы направлены на снижение потерь энергии от уровня проектирования схемы до исполнения и применения.
Потери программы возникают, когда высокопроизводительный микропроцессор выполняет ненужные команды. Выполнение этих команд не изменяет содержимое памяти и регистров. Устранение отходов программы означает сокращение выполнения мертвых инструкций и избавление от тихих хранилищ. Умозрительные потери возникают, когда процессор извлекает и выполняет инструкции за пределами неразрешенных ветвей. Архитектурные потери возникают, когда такие структуры, как кэши, предсказатели ветвлений и очереди инструкций, слишком велики или слишком малы.
В основном предназначенные для хранения больших объемов, архитектурные сооружения обычно не используются на полную мощность. И наоборот, их уменьшение также увеличивает энергопотребление из-за большего количества ошибок. Успешная оптимизация энергопотребления требует использования подхода на уровне системы путем выбора компонентов, которые потребляют очень мало энергии. Все возможные комбинации этих типов компонентов могут быть исследованы на этапе проектирования. Уменьшение количества переключений, необходимых в цепи, также обеспечивает меньшее энергопотребление.
Некоторые из других подходов, используемых для оптимизации энергопотребления, включают стробирование тактовой частоты, спящие режимы и улучшенную логическую схему. Восстановление синхронизации, балансировка пути и кодирование состояния — это другие логические методы, которые могут ограничить энергопотребление. Некоторые разработчики микропроцессоров также используют специальные форматы для кодирования файлов проекта, которые вставляют функции управления энергосбережением.