Как снизить потребляемую мощность при разработке высокопроизводительных ASIC и СнК?


PDF версия

Необходимость снижения потребляемой мощности наряду с повышением производительности и уменьшением площади кристалла стала одной из важнейших проблем для разработчиков ASIC и систем на кристалле (СнК), которые используются в портативных мобильных устройствах, сетевом оборудовании и других приложениях. В статье рассматриваются эффективные методы снижения энергопотребления на ранних этапах разработки системы. Программное средство разработки Xenergy компании Tensilica позволяет оперативно оценить потребляемую мощность процессорного ядра и локальной памяти и оптимизировать конфигурацию системы. Статья представляет собой сокращенный перевод работы [1].

Введение

Оптимизация энергоэффективности устройства на уровне приложения и системы во многих случаях позволяет снизить требования к потребляемой мощности процессора и памяти на 50%. Снижение потребляемой мощности на ранних этапах разработки архитектуры системы значительно выигрывает у возможности снижения энергопотребления на более поздних стадиях разработки — на этапе создания RTL-кода или физического проектирования.

Существует несколько путей снижения потребляемой мощности заказных микросхем (ASIC) и СнК, используемых в САПР: управление тактовым сигналом, снижение напряжения питания и рабочей частоты, оптимизация логики, снижение токов утечки, использование библиотек малопотребляющих элементов и применение новых технологических процессов. К сожалению, для реализации этих методов могут потребоваться месяцы и, кроме того, их эффективность не так высока, как при использовании методов оптимизации архитектуры устройства на системном уровне. Разработка архитектуры завершается до создания RTL-кода, и именно на этом этапе проектирования устройства у разработчиков имеются максимальные возможности для поиска путей снижения потребляемой мощности.
Разработчики ASIC и СнК используют ряд правил и принципов для оптимизации производительности системы и размера кристалла. Эти принципы используются при выборе таких параметров системной архитектуры, как тип подсистемы памяти (банки памяти или единая память большого размера), система межсоединений (единая шина, иерархическая система шин или межсоединения типа точка–точка), тип кэш-памяти и т.д. Тем не менее, инструментов разработки эффективной с точки зрения потребления энергии архитектуры ASIC и СнК весьма немного.

Средство разработки Xenergy компании Tensilica является первым в отрасли инструментом САПР, которое позволяет реально оценить влияние различных конфигураций процессора на суммарное потребление энергии. Этот инструмент также помогает разработчикам программ оптимизировать код, управляющий режимами энергопотребления в приложении, путем моделирования подсистемы «процессор–память». В то время как большинство инструментов разработки ориентировано на улучшение производительности и создание программного кода оптимального размера, Xenergy позволяет построить более эффективную с точки зрения потребляемой энергии конфигурацию подсистемы «процессор–память».

Xenergy может быть использован разработчиками для выполнения прикладных программ на процессорах Xtensa или Diamond Standard компании Tensilica с различными конфигурациями ядер, а также для оценки мощности, рассеиваемой процессором, кэш- и локальной памятью, связанной с ядром процессора. Разработчик может модифицировать конфигурацию процессора, добавить расширения команд, регистровые файлы или специализированные программные модули, а также оптимизировать прикладной код с целью снижения общей мощности, потребляемой процессором и памятью.

В центре внимания — общая потребляемая мощность

Ключевым вопросом разработки эффективных, с точки зрения потребления энергии, ASIC и СнК является расчет суммарной потребляемой мощности. Слишком часто разработчики фокусируют свое внимание на статическом показателе потребляемой мощности, игнорируя реальное общее потребление мощности на единицу рабочей нагрузки. Эта ошибка является следствием предположения, что все процессоры выполняют примерно равное количество операций за определенный тактовый цикл. Это допущение близко к истине для 32-разрядных RISC-процессоров общего назначения, однако не подходит для специализированных процессоров Xtensa компании Tensilica, которые предназначены для решения строго определенных задач в составе кристалла.

Разработчик ASIC или СнК может так сконфигурировать специализированный процессор, что это приведет к увеличению площади, занимаемой процессорным ядром. В среднем процессор, занимающий на кристалле большую площадь, потребляет больше энергии за тактовый цикл и, в общем случае показатель потребляемой мощности (мВт/МГц) увеличивается. Однако если используемые для оптимизации процессора специализированные команды значительно уменьшают общее число тактов, требующихся для выполнения этого задания, то общее количество потребляемой энергии (мощности, рассеиваемой за тактовый цикл, умноженной на общее время выполнения задания) можно уменьшить. Рассмотрим случай, когда использование специализированных команд процессора приводит к увеличению рассеиваемой процессором мощности за тактовый цикл на 20%. Если это увеличение удельной мощности (мВт/МГц) скомпенсировано 3-кратным увеличением скорости выполнения задания, то общее количество энергии, потребляемой при выполнении этого задания, уменьшается на 60%.

Поцикловая оценка рассеиваемой мощности

Программное средство Xenergy выполняет вычисление потребляемой мощности за тактовый цикл для каждой команды процессора Xtensa или Diamond Standard. Для каждой специализированной команды, сгенерированной специализированным языком TIE (Tensilica Instruction Extension), Xenergy использует эмпирические статистические модели расчета мощности, потребляемой при выполнении операции доступа к памяти (чтение и запись), а также мощности, потребляемой при выполнении каждой команды.

Xenergy моделирует приложение на поцикловом симуляторе набора команд (ISS), который предоставляет детальную информацию о каждой выполненной команде и каждой операции доступа к памяти. На основе этих данных, а также информации о конфигурации процессора, TIE-командах и используемом технологическом процессе Xenergy с помощью статистических моделей выполняет оценку динамической мощности, токов утечки и общей мощности, рассеиваемой процессором, кэш- и локальной памятью команд и данных, связанных с процессорным ядром.

Программный инструмент Xenergy построен на основе существующих средств анализа потребляемой мощности компании Tensilica. Инструменты конфигурирования процессора Xtensa предоставляют возможность разработчику ASIC и СнК оценивать занимаемую на кристалле площадь, максимальную тактовую частоту и мощность, рассеиваемую процессорным ядром в режиме реального времени в процессе конфигурирования процессора. Xenergy идет дальше — он осуществляет расчет мощности, потребляемой процессором и локальной подсистемой памяти в процессе выполнения данного приложения.

Xenergy лучше всего использовать поэтапно: сначала, когда разработчик выбирает параметры конфигурации и определяет специализированные команды для выполнения данного задания, а затем, когда осуществляется отладка прикладного программного обеспечения. Совместная разработка аппаратной и программной части проекта — это итеративный поэтапный процесс.

Оптимизация конфигурации процессора

С помощью оптимизации конфигурации процессора Xtensa в соответствии с требованиями к приложению общая мощность, рассеиваемая при выполнении задания, может быть значительно снижена, как показано в таблице 1. Значения, представленные в таблице 1, получены при условии, что в алгоритм программ не было внесено никаких изменений (не считая включения программных модулей на С для вызова специализированных команд), а также использовалась кэш-память одинакового объема для базового и оптимизированного процессоров.

Таблица 1. Снижение потребляемой мощности при использовании специализированных команд

Конфигурация

Скалярное произведение векторов

Алгоритм AES

Алгоритм Viterbi

Алгоритм FFT

Процессор Xtensa, базовая конфигурация

число циклов, тыс.

12

283

280

326

мощность, мкДж

3,3

61,1

65,7

56,6

Процессор Xtensa, оптимизированная конфигурация

число циклов, тыс.

5,9

2,8

7,6

13,8

мощность, мкДж

1,6

0,7

2,0

2,5

Коэффициент снижения потребляемой мощности

2

82

33

22

 

Скорость работы Xenergy весьма высока, поэтому специалисты могут использовать этот инструмент для анализа потребляемой мощности во время отладки специализированных команд для процессора Xtensa. Разработчики имеют возможность сразу увидеть изменение значения общей потребляемой мощности при выборе конфигурации процессора (при настройке умножителей, DSP-подсистем, блоков вычислений с плавающей запятой и т.д.) и при использовании тех или иных специализированных команд. Кроме того, они могут заметить изменение потребляемой мощности при выборе параметров интерфейсов и подсистем памяти.
Способность Xenergy моделировать специализированные команды является критически важной для специалистов, использующих процессор Xtensa в качестве альтернативы ручной разработки RTL-кодов модулей ускорителей передачи данных в ASIC или СнК. Разработчики могут создать значительное число новых специализированных команд, которые формируют структуры процессора, напоминающие аппаратные каналы передачи данных заказных RTL-блоков. Поэтому возможность оценки мощности потребления на ранних этапах разработки является наиболее важной для разработчиков, знакомых со средствами оптимизации производительности и площади, занимаемой процессором.
Другой важной особенностью Xenergy является возможность оценки мощности, потребляемой памятью. Рассмотрим случай, когда в результате конфигурирования создаются дополнительные регистры состояния и регистровые файлы в ядре процессора Xtensa. Такая оптимизация не приводит к заметному улучшению производительности, но значительно уменьшает число операций доступа к локальной памяти, что обеспечивает снижение общей потребляемой мощности. Это позволит разработчику выбрать оптимальное соотношение между площадью, производительностью и потребляемой мощностью на ранних этапах разработки системы.

Оптимизация программного обеспечения

Кроме оптимизации кода по производительности и объему Xenergy позволяет программисту контролировать и мощность, потребляемую процессором и памятью. Например, реструктурирование данных для снижения числа операций доступа к памяти с помощью создания временных блоков данных приведет к снижению энергопотребления. Такие изменения должны не только снизить потребляемую мощность, но и улучшить производительность прикладного программного обеспечения. И действительно, средства разработки компании Tensilica в этом случае отразят увеличение производительности системы и снижение энергопотребления.

Малопотребляющая архитектура процессоров компании Tensilica

Базовая архитектура системы команд (ISA) процессора Xtensa, общая как для оптимизируемых процессорных ядер Xtensa, так и для процессорных ядер Diamond Standard, обеспечивает наименьшую в отрасли потребляемую мощность и наивысшую производительность по сравнению с более ранними процессорными архитектурами. В таблице 2 показано, что высокопроизводительная версия процессорного ядра Xtensa LX2 использует менее половины площади кристалла и рассеивает половину мощности (мВт/МГц) эквивалентного процессорного ядра ARM 1136J-S. Отметим, что в таблице 2 производится сравнение процессора ARM 1136J-S и 3-канальной статической суперскалярной версии процессорного ядра Xtensa LX2, сконфигурированного в виде высокопроизводительного процессора общего назначения, эквивалентного ARM 1136J-S. Результаты испытаний по методике EEMBC показали, что в среднем производительность этой конфигурации процессора Xtensa в 2,5 раза выше, а удельная производительность (MIPS/мВт) в 5 раз выше соответствующих показателей процессорного ядра ARM 1136J-S.

Таблица 2. Сравнение производительности и потребляемой мощности процессорных ядер Xtensa и ARM11 (технологические нормы 0,13 мкм)

ARM 1136J-S

333

0,60

1,98

Xtensa LX2 (3-канальная FLIX-архитектура)

700

0,170

10,4

 

Встроенные режимы низкого потребления

В процессоре Xtensa предусмотрено несколько энергосберегающих режимов, применение которых позволяет снизить мощность, потребляемую ASIC и СнК. Они включают режимы пониженного потребления при доступе к локальной памяти, а также при управлении портами трассировки и встроенными модулями отладки. В архитектуре процессора также реализован точный механизм управления тактовым сигналом для каждого элемента процессора, включая те функциональные блоки, которые были сформированы в результате оптими-
зации.
Полученные значения типовой потребляемой мощности оптимизированного по быстродействию и выполняющего типовые операции процессора Xtensa с минимальной конфигурацией:
– 38 мкВт/МГц (130-нм низковольтный (LV) технологический процесс);
– 48 мкВт/МГц (90-нм высокопроизводительный (GT) технологический процесс).

Заключение

Инструментальное средство Xenergy компании Tensilica позволяет оценить энергопотребление подсистемы «про­цессор–память» на основе процессорного ядра Xtensa или Diamond Standard и использует для этой оценки разработанный прикладной код. По сравнению с традиционным методом RTL-анализа потребляемой мощности, который может занять часы или даже дни, применение Xenergy позволяет оценить энергопотребление в течение нескольких минут, что в конечном итоге значительно ускоряет процесс разработки приложения.

Литература
1. How to Minimize Energy Consumption while Maximizing ASIC and SOC Performance//www.tensilica.com.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *