Введение
Оптимизация энергопотребления — это использование средств автоматизированного проектирования электроники для оптимизации (снижения) потребляемой мощности цифровой схемы, например, интегральной микросхемы, с сохранением её функциональности.
Введение и история
Растущая скорость и сложность современных разработок влечет за собой значительное увеличение энергопотребления очень больших интегральных схем (VLSI). Для решения этой задачи исследователи разработали множество различных методов снижения энергопотребления. Сложность современных интегральных схем, содержащих более 100 миллионов транзисторов с тактовой частотой более 1 ГГц, означает, что ручная оптимизация энергопотребления была бы невыполнимо медленной и, скорее всего, содержала бы ошибки. Инструменты и методологии автоматизированного проектирования (CAD) являются обязательными. Одной из ключевых особенностей, обеспечивших успех технологии КМОП (CMOS), было ее изначально низкое энергопотребление. Это позволяло разработчикам схем и средствам автоматизированного проектирования электронных устройств (EDA) сосредоточиться на максимизации производительности и минимизации площади схемы. Еще одной важной особенностью технологии КМОП являются ее хорошие масштабируемые свойства, которые обеспечили устойчивое уменьшение размеров элементов (см. закон Мура), позволяя создавать все более сложные системы на одном чипе, работающие на более высоких тактовых частотах. Проблемы, связанные с энергопотреблением, возникли с появлением первых портативных электронных устройств в конце 1980-х годов. На этом рынке время автономной работы от батареи является решающим фактором коммерческого успеха продукта. Примерно в то же время стало очевидным, что увеличение интеграции активных элементов на единицу площади кристалла приведет к недопустимо высокому энергопотреблению интегральной схемы. Высокий абсолютный уровень мощности нежелателен не только по экономическим и экологическим причинам, но и создает проблему теплоотвода. Для поддержания рабочей температуры устройства на приемлемом уровне избыточное тепло может потребовать дорогостоящих систем охлаждения. Эти факторы способствовали тому, что энергопотребление стало одним из основных параметров проектирования, наряду с производительностью и размером кристалла. Фактически, энергопотребление рассматривается как ограничивающий фактор дальнейшего масштабирования технологии КМОП. Для решения этой задачи в последнее десятилетие активно ведутся исследования по разработке средств автоматизированного проектирования (CAD), решающих задачу оптимизации энергопотребления. Первоначальные усилия были направлены на инструменты уровня схемы и логики, поскольку на этом уровне инструменты CAD были более зрелыми и позволяли лучше контролировать ситуацию. Сегодня большинство исследований в области CAD направлены на оптимизацию на системном или архитектурном уровне, что потенциально может оказать большее общее влияние, учитывая широту их применения. Наряду с инструментами оптимизации необходимы эффективные методы оценки энергопотребления, как для определения соответствия потребления схемы заданному целевому значению, так и для относительной оценки энергетических преимуществ различных альтернатив при исследовании пространства проектирования.
transistors, clocked at over 1 GHz, means manual power optimization would be hopelessly slow and all too likely to contain errors. Computer aided design (CAD) tools and methodologies are mandatory. One of the key features that led to the success of complementary metal oxide semiconductor, or CMOS, technology was its intrinsic low power consumption. This meant that circuit designers and electronic design automation (EDA) tools could afford to concentrate on maximizing circuit performance and minimizing circuit area. Another interesting feature of CMOS technology is its nice scaling properties, which has permitted a steady decrease in the feature size (see Moore's law), allowing for more and more complex systems on a single chip, working at higher clock frequencies. Power consumption concerns came into play with the appearance of the first portable electronic systems in the late 1980s. In this market, battery lifetime is a decisive factor for the commercial success of the product. Another fact that became apparent at about the same time was that the increasing integration of more active elements per die area would lead to prohibitively large energy consumption of an integrated circuit. A high absolute level of power is not only undesirable for economic and environmental
reasons, but it also creates the problem of heat dissipation. In order to keep the device working at acceptable temperature levels, excessive heat may require expensive heat removal systems. These factors have contributed to the rise of power as a major design parameter on par with performance and die size. In fact, power consumption is regarded as the limiting factor in the continuing scaling of CMOS technology. To respond to this challenge, in the last decade or so, intensive research has been put into developing computed aided design (CAD) tools that address the problem of power optimization. Initial efforts were directed to circuit and logic level tools because at this level CAD tools were more mature and there was a better handle on the issues. Today, most of the research for CAD tools targets system or architectural level optimization, which potentially have a higher overall impact, given the breadth of their application. Together with optimization tools, efficient techniques for power estimation are required, both as an absolute indicator that the circuit’s consumption meets some target value and as a relative indicator of the power merits of different alternatives during design space exploration.
Оптимизация мощности на уровне цепи
Для снижения энергопотребления на уровне схемы используется множество различных методов. Некоторые из основных из них:
Изменение размеров транзисторов: регулировка размеров отдельных логических элементов или транзисторов для достижения минимального энергопотребления. Масштабирование напряжения: снижение напряжения питания позволяет снизить энергопотребление, но приводит к уменьшению быстродействия. Разделение по областям питания: различные блоки могут работать при разных напряжениях, что позволяет экономить энергию. Эта конструкторская практика может потребовать использования преобразователей уровней при взаимодействии двух блоков с разными напряжениями питания. Переменное VDD: напряжение питания для отдельного блока может изменяться в процессе работы – высокое напряжение (и высокое энергопотребление) при необходимости высокой скорости работы блока и низкое напряжение, когда допустима медленная работа. Множественные пороговые напряжения: современные технологические процессы позволяют создавать транзисторы с различными пороговыми напряжениями. Энергию можно сэкономить, используя комбинацию CMOS-транзисторов с двумя или более различными пороговыми напряжениями. В простейшем случае доступны два различных порога, обычно называемые High Vt и Low Vt, где Vt обозначает пороговое напряжение. Транзисторы с высоким порогом медленнее, но имеют меньшие токи утечки и могут использоваться в некритических схемах. Power gating (управление питанием): эта техника использует транзисторы с высоким пороговым напряжением (sleep transistors), которые отключают блок схемы, когда он не активен. Размер sleep-транзистора является важным конструктивным параметром. Эта техника, также известная как MTCMOS (Multi Threshold CMOS), снижает энергопотребление в режиме ожидания или токи утечки, а также позволяет проводить тестирование Iddq. Транзисторы с увеличенной длиной канала: транзисторы с длиной канала больше минимальной имеют меньшие токи утечки, но занимают большую площадь и работают медленнее. Состояния наложения и удержания: логические элементы могут иметь разные токи утечки в логически эквивалентных состояниях (например, 10 на схеме NAND вместо 01). В некоторых состояниях конечные автоматы могут демонстрировать меньшие токи утечки. Логические стили: динамическая и статическая логика, например, имеют различные компромиссы между скоростью и энергопотреблением.
Transistor sizing: adjusting the size of each gate or transistor for minimum power. Voltage scaling: lower supply voltages use less power, but go slower. Voltage islands: Different blocks can be run at different voltages, saving power. This design practice may require the use of level shifters when two blocks with different supply voltages communicate with each other. Variable VDD: The voltage for a single block can be varied during operation high voltage (and high power) when the block needs to go fast, low voltage when slow operation is acceptable. Multiple threshold voltages: Modern processes can build transistors with different thresholds. Power can be saved by using a mixture of CMOS transistors with two or more different threshold voltages. In the simplest form there are two different thresholds available, common called High Vt and Low Vt, where Vt stands for threshold voltage. High threshold transistors are slower but leak less, and can be used in non critical circuits. Power gating: This technique uses high Vt sleep transistors which cut off a circuit block when the block is not switching. The sleep transistor sizing is an important design parameter. This technique, also known as MTCMOS, or Multi Threshold CMOS reduces stand by or leakage power, and also enables Iddq testing. Long Channel transistors: Transistors of more than minimum length leak less, but are bigger and slower. Stacking and parking states: Logic gates may leak differently during logically equivalent input states (say 10 on a NAND gate, as opposed to 01). State machines may have less leakage in certain states. Logic styles: dynamic and static logic, for example, have different speed/power tradeoffs.
Поддержка EDA Power Aware
Существуют форматы файлов, которые можно использовать для записи файлов проекта, определяющих требования к энергопотреблению и реализацию проекта. Информация в этих файлах позволяет инструментам EDA автоматически внедрять функции управления питанием и проверять соответствие результата заданным требованиям. IEEE DASC предоставляет платформу для разработки этого формата в рамках рабочей группы IEEE P1801. В 2006 и первые два месяца 2007 года были разработаны Унифицированный формат энергопотребления и Общий формат энергопотребления для поддержки различных инструментов. Рабочие группы IEEE P1801 работают над сближением этих двух стандартов. Для поддержки оценки энергопотребления на архитектурном уровне были разработаны несколько инструментов EDA, включая McPAT, Wattch и Simplepower.