Научная статья на тему 'Конфигурируемые процессоры Xtensa фирмы Tensilica для встраиваемых систем'

Конфигурируемые процессоры Xtensa фирмы Tensilica для встраиваемых систем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
573
78
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Новицкий Александр

Технология фирмы Tensilica позволяет разработчикам «систем на кристалле» адаптировать структуру процессора под особенности решаемой задачи, достигая при этом существенного повышения производительности и энергоэффективности.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Новицкий Александр

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Конфигурируемые процессоры Xtensa фирмы Tensilica для встраиваемых систем»

Конфигурируемые процессоры Xtensa фирмы Tensilica

для встраиваемых систем

Александр НОВИЦКИИ, к. т. н.

alpenov@ya.ru

Технология фирмы Те^Мка позволяет разработчикам «систем на кристалле» адаптировать структуру процессора под особенности решаемой задачи, достигая при этом существенного повышения производительности и энергоэффективности.

Современные цифровые системы управления все чаще делаются однокристальными, и термин «система на кристалле» ^‘^ет-оп-СЫр SoC, СнК) уже стал достаточно привычным. Успехи полупроводниковых технологий позволяют при очень низкой конечной цене ($1-10) размещать на кристалле многие миллионы транзисторов и реализовывать в системе высокопроизводительный процессор, емкую подсистему памяти, обширный набор периферийных устройств. Это позволяет использовать СнК практически во всех областях человеческой деятельности.

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

То же относится и к процессорному ядру: любая конкретная прикладная программа почти всегда не в полной мере использует возможности процессора, и в то же время отдельные фрагменты алгоритма не удается достаточно эффективно реализовать фиксированной системой его команд. Кроме того, каждое из семейств с его конкретным процессором требует использования своего набора средств поддержки разработки — трансляторов, программаторов, отладчиков, симуляторов. Нередко разработчик выбирает то или иное

семейство МК не потому, что оно наилучшим образом соответствует решаемой задаче, а лишь потому, что хорошо ему знакомо.

На ранних этапах развития больших интегральных схем (БИС) нередко приходилось реализовывать требуемые в системе функциональности, используя элементную базу с низкой степенью интеграции, хотя технологии уже позволяли разместить все требуемые функции в одном чипе. Однако стоимость и сложность разработки специализированной под задачу ИС были непомерно высоки. Средства поддержки разработки БИС всегда стоили многие миллионы долларов, да и сейчас ситуация та же.

Положение несколько изменилось с появлением микросхем программируемой логики. Приборы FPGA (Field Programmable GateArray, программируемые логические интегральные схемы, ПЛИС), позволили сделать проектирование сверхбольших интегральных схем (СБИС) доступным широкому кругу разработчиков. Стоимость средств поддержки разработки снизилась практически на два порядка, а заготовка (микросхема FPGA) нынче обходится в $5-50. Использование FPGA позволяет получить требуемую аппаратную реализацию, которая обеспечивает скорость обработки не намного ниже, чем у заказной БИС, правда, за счет существенно менее плотной упаковки этой функциональности в микросхеме и, соответственно, большей потребляемой мощности по сравнению с заказной БИС при одинаковых проектных нормах.

Цифровой процессор в составе «системы на кристалле»

Для универсальных компьютеров (персональных рабочих станций) фирмы-производители стремились получить в одном чипе максимальную производительность путем повышения тактовой частоты и уровня внутреннего параллелизма (конвейеризация и су-перскалярные архитектуры). Гонка тактовых частот продолжалась до 2000 г., когда был до-

стигнут «технологический потолок» в 3-4 ГГц. Тактовая частота тесно связана с внутренней структурой процессорного конвейера: один из путей ее повышения — увеличение количества ступеней в конвейере с одновременным уменьшением логической глубины каждой ступени. Как следствие, появляется возможность уменьшить длительность такта (в процессорах РеШшт4 для достижения тактовых частот выше 3 ГГц длина конвейера даже для целочисленных операций была увеличена до 20 ступеней). Однако при этом существенно возрастает объем оборудования, из-за чего растет и мощность, потребляемая процессором, причем гораздо быстрее, нежели производительность. Второй недостаток «длинного» конвейера — большие дополнительные потери времени в случае нарушения идеальной работы конвейера. Аналогичный эффект наблюдался и при использовании суперскалярных архитектур: они также требовали существенного увеличения объема оборудования, в результате чего потребление энергии опять росло быстрее, нежели производительность.

В то же время в управляющих (встраиваемых) системах требования к производительности далеко не всегда были самоцелью. Гораздо важнее комплексный критерий, отражающий соотношение характеристик производительность - потребляемая мощность -площадь на кристалле - цена. Для оценки производительности и энергетической эффективности в последнее время вместо указания тактовой частоты или производительности все более широко используются удельные характеристики МТО/МГц, М^/мВт, мА/МГц, Дж/команда и тому подобные. Разработчики МК уделяют большое внимание энергоэффективности своих систем, для чего при проектировании целенаправленно стремятся не только достичь высокой производительности, но и понизить при этом удельные затраты энергии.

Однако после того как требуемая производительность обеспечена, разработчику управляющей системы важно минимизировать не удель-

ную, а результирующую энергию, потребную для выполнения алгоритма реального времени. Эта энергия зависит не только от того, сколько джоулей «стоит» выполнение одной процессорной команды, но и сколько команд потребуется для реализации конкретного алгоритма. Из этого ясно, что недостаточны не только такие абсолютные характеристики, как тактовая частота ядра, но и удельные, типа Дж/команда. Важны время выполнения управляющего алгоритма в целом и энергия, затраченная на это процессором.

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

Уже с самого возникновения однокристальных микроконтроллеров их разработчики стали проектировать вычислительные ядра, специально предназначенные для встраиваемых применений. Их особенностями были:

• Ограниченный набор команд, поскольку в управляющих программах относительно редко требуются сложные операции, даже такие как целочисленное деление и умножение.

• Развитая подсистема ввода/вывода дискретных сигналов (параллельные порты).

• Поддержка побитовых операций с регистрами периферийных устройств.

Наиболее популярные высокопроизводительные 32-разрядные процессорные RISC-архитектуры, используемые в СнК, — это ARM и MIPS, разработанные одноименными фирмами. Для интеграции процессорного ядра в СБИС системный разработчик должен приобрести лицензию, после чего он получает описание процессора на языке описания аппаратуры (HDL), пригодное для использования в системах автоматизации проектирования СБИС.

Фирмы-производители БИС программируемой логики, хорошо понимая желательность наличия в СнК универсального программируемого процессора, разрабатывают и реализуют его в некоторых выпускаемых ПЛИС. В частности, фирма Altera разработала 32-битовую процессорную RISC-архитектуру Nios для внедрения в свои ИС.

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

высокой производительности при выполнении определенных алгоритмов (например, компрессия видеопотока в цифровой видеокамере), а возможностей универсального процессора для этого не хватает.

Если особенности управляющего алгоритма заранее известны разработчикам системы (а для встраиваемых применений это почти всегда именно так), можно достичь существенного повышения производительности для данного класса алгоритмов (либо существенного уменьшения потребляемой энергии без снижения производительности) путем оптимизации процессора: изменением или расширением его регистровой модели и набора выполняемых операций с учетом свойств, присущих этому классу алгоритмов. Однако сразу же возникают вопросы, каким образом можно быстро модифицировать процессорную архитектуру, а затем воплотить ее «в кремнии» в составе СБИС, каких затрат времени и денег это потребует?

Американская фирма Tensilica предложила новую технологию и набор инструментальных средств проектирования, которые обеспечивают повышение производительности процессора в СнК от нескольких раз до двух порядков. Основные идеи этой технологии изложены в серии «Докладов о проблемах и способах их решения» (White Papers) [1-5].

Технологии конфигурируемых и расширяемых процессоров Xtensa компании Tensilica

Фирма начала с разработки нового 32-разрядного процессорного RISC-ядра Xtensa [6], а затем на его основе создала набор программных средств для автоматизированного расширения базовой архитектуры с целью ее оптимизации с учетом особенностей алгоритма. Одновременно с генерацией описания модифицированной процессорной архитектуры автоматически вносятся изменения и дополнения в набор средств трансляции и отладки.

Свойства базового процессорного ядра Xtensa

Базовый набор из 82 команд

Коды команд имеют длину 24 бита. Наиболее употребительные команды имеют альтернативную кодировку длиной 16 бит. Это свойство обеспечивает исключительно высокую плотность кода. 24-битовые и 16-битовые команды могут произвольно смешиваться, средняя длина команды в типичной программе составляет около 20 бит (два с половиной байта, против 3,5 для архитектуры x86).

Базовый набор включает следующие группы команд:

• загрузки и сохранения (обмена между регистром и памятью) — 8 команд;

• безусловные переходы, вызов и возврат

из подпрограммы — 5 команд;

• условные переходы — 24 команды;

• копирование «регистр-регистр» и загрузка констант в регистр — 5 команд;

• арифметика: сложение, вычитание, смена знака, модуль — 12 команд;

• побитовые операции (AND, OR, XOR) —

3 команды;

• сдвиги — 13 команд;

• системные команды (управление процессором) — 12 команд.

Всего — 82 команды.

Как видим, в базовом наборе отсутствуют даже целочисленное умножение и деление.

Регистровый файл

Регистровый файл содержит 16 целочисленных регистров общего назначения длиной 32 бита (минимальная конфигурация), их количество в файле может быть увеличено до 32 либо до 64. Для расширенного регистрового файла поддерживается механизм регистровых окон, который позволяет уменьшить время сохранения-восстановления контекста при вызове подпрограмм или обработчиков прерываний.

32-битовая адресация

32-битовая адресация обеспечивает доступ к 4-Гбайт физическому адресному пространству, общему для программ и данных.

Такая «минимальная» конфигурация ядра позволила получить рекордные характеристики плотности и энергоэффективности ([7], разд. 1):

• тактовая частота для базовой конфигурации — 600 МГц;

• площадь ядра на кристалле — 0,14 мм2;

• рассеиваемая мощность в рабочем режиме — 79 мкВт/МГц для 90-нм технологического процесса.

Расширения базовой архитектуры

В ходе оптимизации архитектуры системы команд проектировщик системы может использовать следующие возможности:

• Выбор расширений процессорной архитектуры из набора опций, предопределенных разработчиками Tensilica.

• Технология Fusion — формирование новых более сложных команд, каждая из которых есть «сплав» (fusion) нескольких прежних простых. Одна новая сложная команда при этом выполняется быстрее, чем последовательность простых.

• Выявление в алгоритме участков с параллелизмом данных (возможностей векторизации при обработке) и добавление в систему команд инструкций и регистров SIMD (Single Instruction Multiple Data).

• Технология Flexible Length Instruction Xtensions (FLIX) — выявление в алгоритме участков с возможностью явного параллелизма команд и добавление в набор команд инструкций «со сверхдлинным командным словом» (Very Large Instruction Word, VLIW).

Таблица 1. Перечень предопределенных расширений базовой архитектуры

1 The Code Density Option Альтернативная (укороченная до 16 бит) кодировка для наиболее часто используемых команд (аналогично архитектурам ARM и MIPS).

2 The Loop Option Аппаратная поддержка циклических конструкций; счетчик количества повторений цикла и адрес последней команды тела цикла хранятся в специальных регистрах.

3 The Extended L32R Option Расширенная версия команды загрузки регистра из памяти. При адресации используется дополнительный регистр, участвующий в формировании адреса операнда-источника.

4 The 16-bit Integer Multiply Option Команды умножения 16x16 бит без знака и со знаком, с формированием 32-битового результата.

5 The 32-bit Integer Multiply Option Команды умножения 32x32 бит без знака и со знаком, с формированием 64-битового результата.

6 The 32-bit Integer Divide Option Команды знакового и беззнакового деления 32/32 с формированием частного либо остатка.

7 The MAC16 Option Набор команд и дополнительных регистров для выполнения операций «умножение с накоплением».

8 The Miscellaneous Operations Option Набор команд для выполнения действий «с насыщением», для определения максимальных и минимальных значений, для преобразования типов.

9 The Coprocessor Option Группа дополнительных регистров, которые могут использоваться при добавлении дополнительных конвейеров обработки (сопроцессоров) к исполнительному блоку.

10 The Boolean Option Набор дополнительных регистров и дополнительные команды, выполняющие операции с отдельными битами дополнительных регистров.

11 The Floating-Point Coprocessor Option Сопроцессор плавающей точки с одинарной точностью (float).

12 The Multiprocessor Synchronization Option Дополнительные команды, поддерживающие взаимодействие (синхронизацию) между несколькими процессорами Xtensa и общей памятью в симметричной мультипроцессорной системе.

13 The Conditional Store Option Команды «сравнение и условный обмен» для поддержки объектов синхронизации (семафоров).

14 The Exception Option Ряд расширений для поддержки прерываний всех типов (дополнительные регистры и команды).

15 The Relocatable Vector Option Возможность перемещения таблицы векторов прерываний на этапе исполнения.

16 The Unaligned Exception Option Поддержка прерываний по обращению к невыровненным по длине операндов адресам.

17 The Interrupt Option Поддержка группы низкоприоритетных прерываний по внешним сигналам программному запросу.

18 The High-Priority Interrupt Option Поддержка группы высокоприоритетных прерываний по внешним событиям (каждое имеет индивидуальный уровень приоритета).

19 The Timer Interrupt Option Добавление аппаратного таймера и до четырех каналов сравнения с уставками, а также запросов прерываний по переполнению таймера и по срабатыванию компараторов.

20 The Instruction Cache Option Интерфейс с кэш-памятью команд с прямым отображением или наборно-ассоциативной.

21 The Instruction Cache Test Option Тестовые команды записи-чтения полей тегов и данных в строках кэша команд.

22 The Instruction Cache Index Lock Option Возможность проверки и блокирования строки кэша команд от вытеснения ее содержимого при кэш-промахе.

23 The Data Cache Option Интерфейс с кэш-памятью данных с прямым отображением или наборно-ассоциативной.

24 The Data Cache Test Option Тестовые команды записи-чтения полей тегов и данных в строках кэша данных.

25 The Data Cache Index Lock Option Возможность проверки и блокирования строки кэша данных от вытеснения ее содержимого при кэш-промахе.

26 The Instruction RAM Option Добавление локальной памяти команд типа RAM (в многопроцессорной системе).

27 The Instruction ROM Option Добавление локальной памяти команд типа ROM (в многопроцессорной системе).

28 The Data RAM Option Добавление локальной памяти данных типа RAM (в многопроцессорной системе).

29 The Data ROM Option Добавление локальной памяти команд типа ROM, то есть в ПЗУ констант (в многопроцессорной системе).

30 The XLMI Option Добавление быстрого интерфейса для подключения внутрикристальных периферийных устройств.

31 The Hardware Alignment Option Аппаратная поддержка обращений по невыровненным адресам при обращении к «длинным» операндам.

32 The Memory ECC/Parity Option Аппаратный контроль ошибок при обращениях к кэш и к локальной памяти.

33 The Region Protection Option Механизм защиты для восьми 512-Мбайт регионов адресного пространства.

34 The Region Translation Option Механизм трансляции адресов для восьми 512-Мбайт регионов адресного пространства.

35 The MMU Option Полная аппаратная поддержка трансляции адресов, защиты и виртуальной памяти на базе таблиц страничных дескрипторов.

36 The Windowed Register Option Расширенный файл основных регистров процессора и поддержка механизма регистровых окон (аналогично архитектуре Itanium).

37 The Processor Interface Option Интерфейс внешней памяти, которая может разделяться несколькими процессорами в симметричной мультипроцессорной конфигурации (и устройствами прямого доступа).

38 The Miscellaneous Special Registers Option До четырех дополнительных (привилегированных) регистров, которые могут произвольно использоваться ядром ОС в защищенном режиме.

39 The Thread Pointer Option Специальный регистр (a thread pointer), используемый механизмами защиты памяти.

40 The Processor ID Option Регистр, содержащий идентификационный код процессора, позволяющий программе определить тип процессора, на котором она запущена.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

41 The Debug Option Дополнительные команды и аппаратные механизмы поддержки отладки (в том числе, с помощью внешней аппаратуры).

42 The Trace Port Option Выходы, позволяющие проводить мониторинг состояния процессора с помощью внешней аппаратуры.

В таблице 1 перечислены предопределенные опции, которые можно выбираться при расширении архитектуры (перечень заимствован из [6], разд. 4). В левой колонке намеренно сохранены англоязычные названия опций, в правой даны краткие пояснения к каждой из них. Расширения можно выбирать независимо одно от другого, за немногими исключениями, когда одно из расширений обязательно требует наличия другого. В некоторых случаях пары расширений являются взаимно исключающими.

Исчерпывающее описание расширений можно найти в объемнтом документе [6] (около 700 страниц). На рис. 1 (заимствован из [7], разд. 1) показаны возможности модификации архитектуры процессора Xtensa LX2. На рисунке различные части отмечены разными цветами:

• Голубой — блоки базовой архитектуры.

• Бирюзовый — конфигурируемые блоки.

• Светло-зеленый — опциональные блоки, разработанные и оттестированные фирмой Tensilica.

• Розовый — опциональные блоки Tensilica с возможностью реконфигурации.

• Зеленый — блоки, полностью определяемые разработчиком СБИС.

Средства поддержки проектирования

Для автоматизации процесса реконфигурации фирма Tensilica разработала набор программных средств, который обеспечивает не только автоматическое выполнение всех этапов оптимизации, но и широкие возможности по автоматической верификации

произведенных изменений и дополнений архитектуры.

Технология конфигурирования процессорной архитектуры иллюстрируется диаграммой, приведенной на рис. 2 (заимствована из [7], разд. 1).

На рис. 2 отмечены программные компоненты поддержки оптимизации и автоматической генерации изменений. Главные из них коротко будут описаны далее.

Основное программное средство, используемое для оптимизации процессора, — компилятор XPRES (Xtensa PRocessor Extension Synthesis), предназначением которого является автоматизированная генерация расширений системы команд для архитектуры Xtensa. Этот процесс осуществляется за четыре этапа (перечислены ниже), каждый из которых может быть выполнен полностью автоматически, но допускает и предполагает вмешательство разработчика.

1. Компиляция исходного кода с языка С/С++ в базовую систему команд процессора Xtensa:

• профилирование (анализ времени выполнения) с выделением циклических участков;

• анализ возможностей векторизации данных для отдельных фрагментов программы;

• формирование рекомендаций по улучшению исходного кода для программиста.

2. Формирование набора вариантов расширений архитектуры процессора и базовой системы команд:

• возможности использования команд со структурой SIMD;

• возможности формирования команд со сверхдлинным командным словом (VLIW);

• рекомендации по свойствам слотов в таких командах;

• оценка соотношения между ростом производительности и дополнительными аппаратными затратами для каждого варианта расширений архитектуры;

• выбор наилучшего набора расширений.

3. Необязательный этап дополнительной оптимизации, в ходе которой оператор может проверить эффективность дополнительных вариантов модификации процессора (выполняется в диалоговом режиме с использованием возможностей программных средств оценки эффективности).

4. Автоматическая модификация программных средств трансляции, симуляторов, технологической документации для систем поддержки проектирования и производства СБИС с учетом внесенных в процессор изменений.

В ходе анализа XPRES способен за короткое время просмотреть большое количество вариантов модификации свойств процессора, оценить как достижимое ускорение, так и затраты: дополнительную площадь на кристалле, дополнительное количество

Выводы для трассировки "

Выводы . интерфейса JTAG

Управление процессором

Порт для трассировки

Управление JTAG-портом

Сигналы запросов аппаратных прерываний

(Аппаратные) очереди, порты и таблицы перекодировки," определяемые разработчиком

Внутрикристальная отладка

Поддержка прерываний

Регистры управления прерываниями

Регистр мониторинга адресов операндов

Регистр мониторинга адресов команд

Таймеры

Управление прерываниями

Выборка и декодирование команды

Параллельно работающие Основной

исполнительные блоки (конвейеры) исполнительный

поддержки команд (техника Р1_1Х) конвейер

__| Элементы базовой архитектуры

| | Конфигурируемые блоки

| | Функции по выбору

Основной

о,!'! регистровый файл

и* Основное АЛУ

О О F РБР-блок 16-разр.

'S умнож. с накоплением

III 16- и 32-битовый

умножитель

ïsl г Блок цело-

£ І § численного деления

Е ^ о Блок

плавающей точки

Il Е

У Q-

DSP-блок векторных операций Vectra LX

Блок обработки аудио HiFî2

Определяемые разработчиком блоки загрузки/сохранения

Основной блок загрузки /сохранения

Функции по выбору с конфигурированием Блоки и свойства,

определяемые разработчиком на языке TIE

Локальная память команд

Локальное ПЗУ команд

Управление(локальной) памятью команд и коррекция ошибок

Кэш

команд

Внешний интерфейс (процессора)

Управление интерфейсом процессора Xtensa LX2

Буфер (отложенной) записи

Управление(локальной)

памятью данных КЭШ

и коррекция ошибок данных

Локальное ПЗУ данных (констант)

Локальная память данных

Интерфейс

локальной

памяти

Рис. 1. Блок-схема архитектуры процессоров Xtensa LX2

Входные данные для конфигурирования

Л Ґ Л

Команды, определяемые разработчиком на язке TIE

Генератор конфигураций процессоров Xtensa

Выходные данные генератора конфигураций

Описание аппаратной конфигурации

1 2

Синтез схемотехники СБИС

Размещение блоков и трассировка связей на кристалле

Верификация

проекта

Средства совместной верификации

Системное моделирование, поддержка методологии проектирования

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Симулятор уровня системы команд

Быстрый функциональный симулятор Turbo XIМ

Системное моделирование с использованием протокола ХТМР

Системное моделирование с использованием библиотек XTSC

Модель совместной симуляции мультипроцессоров

Верификатор шинных компонентов

«Сборка» чипа

т

Данные для производства СБИС

Средства разработки программ

Средства трансляции GNU (ассемблер, линкер, отладчик, профайлер)

Компилятор C/C++ Xtensa

Библиотеки С

Пакет адаптации ядер ОСРВ

Программа оценки энергетической эффективности

1 — Скрипты для средств автоматизации проектирования С

2 — Описания уровня межрегистровых пересылок

Разработка

программ

Опционально

I

Язык TIE: описание (новых) команд разработчиком (системы)

-—4-— у

Исходный код прикладных программ ■

Компиляция

Исполняемый модуль

Профилирование с использованием симулятора ISS

Г Л

Разработка новых расширений или выбор новой конфигурации

V---------------------------------У

L

Рис. 2. Порядок действий при конфигурировании процессора Xtensa

логических вентилей, увеличение потребляемой микросхемой мощности, изменение размера кода при использовании расширенной системы команд и другие характеристики. Разработчик имеет возможность просмот-

реть все варианты модификации и выбрать тот, который кажется ему наилучшим.

TIE (Tensilica Instructions Extension language) — это язык описания аппаратуры (HDL), похожий на широко известный Verilog. Язык TIE исполь-

зуется не только для представления результата работы транслятора XPRES, но и позволяет разработчику вручную описывать добавляемые команды, дополнительные регистры процессора, исполнительные узлы и т. п.

Таблица 2. Результат автоматического анализа для алгоритмов обработки сигналов

Алгоритм Ускорение Размер кода, кбайт Размер кода для MIPS32, кбайт Количество просмотренных конфигураций Время анализа, мин

до после

MPEG4-^ep 3,0 111 136 356 1 830796 30

БПФ 10,6 1,5 3,6 4,4 175 796 3

GSM-кодер 3,9 17 20 38 576 722 15

_1_

JPEG (cameras)

W-CDMA (wireless base station)

Lifting/Wavelet Transform (JPEG2000)

FIR Filter (telecom)

H.263 Codec

IP Packet Forwarding/Routing

DES Encryption (IPSEC, SSH)

MPEG4QCIF

Turbo Coding (MaxLogMap)

Motion Estimation (video)

GSM Viterbi Decoding (butterfly)

_L

_L

_L

_L

_L

_L

_L

_L

_L

_L

_L

Эквивалентная производительность /1Х 2х 2х 2х 2х 2х 10х т 50х ЮОх 250х

обычного 32-битного / Ускорение по сравнению с 32- или 64-разрядным

процессора общего назначения * RISC-пpoцeccopoм общего назначения

Рис. 3. Достижимые степени ускорения, предоставляемые технологией Xtensa для разных алгоритмов

Рис. 4. Интегрированная среда Xtensa Хріогег ЮЕ на графике демонстрирует связь между достигаемым ускорением и увеличением объема оборудования (логические вентили)

Xtensa Processor Generator — набор программных средств для автоматического внесения изменений, выбранных разработчиком, во все компоненты описания проекта, которые содержатся в базе данных о конфигурируемом процессоре.

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

кой подготовки производства (EDA Tools), таких как продукты фирм Mentor Graphics, Synopsys или Cadence.

Во-вторых, это набор программных средств трансляции и отладки с учетом новых возможностей процессора: компиляторы, ассемблер, линкер, отладчик, средства профилирования.

В-третьих, это программные средства моделирования модифицированного процессора: несколько симуляторов, выполняющих моделирование на разных уровнях детализации, от уровня процессорных команд (самый быстрый) до уровня работы отдельных вентилей чипа (самый медленный, но самый де-

тальный), анализаторов производительности (трассировщиков) и т. п.

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

Представление об эффективности работы средств автоматической оптимизации можно получить из таблицы 2 (заимствована из [5]), в которой приведены результаты оптимизации для чисто автоматического режима анализа. Степень ускорения для разных алгоритмов, как видим, составляет от 3 до 10. После оптимизации несколько увеличивается размер кода, поскольку оптимизация привела к добавлению в набор инструкций команд с длинными кодами и их использованию. Но этот размер остается существенно меньшим, чем у эквивалентной программы, оттранслированной для архитектуры MIPS32. Последние два столбца дают представление о количестве просмотренных компилятором XPRES вариантов (зависит от размера программы) и о затраченном процессорном времени (рабочая станция с процессором 2 ГГц).

На рис. 3 (заимствован из [7], разд. 1) представлены результаты ускорения для различных алгоритмов при максимальном использовании всех возможностей технологий Xtensa.

Интегрированная среда Xtensa Xplorer IDE используется как «контейнер» для всех остальных программных инструментов и позволяет выполнять все действия как по оптимизации архитектуры, так и по разработке и отладке программ для процессора. На рис. 4 приведен результат работы компилятора XPRES, показывающий соотношение между ускорением и затратами оборудования.

Пример оптимизации процессора Xtensa по быстродействию

Чтобы получить представление о возможностях описания и использования в процессоре новых мощных пользовательских команд, требующих при этом также изменения других характеристик процессора (ширины шин данных и разрядности операндов), приведем пример сложной команды (заимствован из [1]), позволившей достичь существенного ускорения алгоритма компрессии MPEG4 при выполнении в процессоре Xtensa (рис. 5).

Одна из наиболее ресурсоемких операций в компрессии видео, используемая для детекции движения в кадре — это SAD (Sum of Absolute Differences, сумма модулей разностей). Для формата кадра QSIF (176x144) и частоты 15 кадр/с требуемое быстродей-

16 пикселей F-1

16 пикселей F-0

Рис. 5. Структура сложной SIMD-команды, позволяющей ускорить алгоритм компрессии MPEG-4

ствие обычного универсального RISC-процессора превышает 640 млн кмд/с. Структура команды, использующей технологии Fusion и SIMD, реализованной в одной из модификаций процессора Xtensa, показана на рис. 5. Команда использует возможности организации 128-битовой разрядности в конвейере нового исполнительного блока, предназначенного для выполнения этой команды, и в интерфейсе памяти в архитектуре Xtensa, что позволяет обрабатывать одновременно 16 пикселей. Конвейер исполнительного блока выполняет сначала вычисление разностей, затем операцию взятия модуля

и, наконец, суммирование с накоплением. Использование этой команды уменьшило требуемую производительность процессора с 640 до 14 млн кмд/с (в 46 раз).

Примеры оптимизации процессоров Xtensa по энергопотреблению

Основной путь для достижения энергосбережения в СнК состоит в отключении тактирования узлов, которые в некоторые периоды времени не используются. В процессорах Xtensa вдобавок имеется возможность деактивировать блоки памяти на периоды, когда эти блоки не используются.

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

либо работать на пониженной тактовой частоте: и то и другое приведет к снижению потребляемой мощности.

Как видно из таблицы 3 (заимствована из [6]), для четырех разных алгоритмов выигрыш в потреблении энергии при сохранении производительности может быть от 2 раз до почти двух порядков. Плата за это — увеличение площади на кристалле.

Применение процессоров \tensa

Процессоры Xtensa уже используются в принтерах и сканерах фирм Epson и Hewlett-РаскаЫ, в компонентах сетевой инфраструктуры ^со, в видеокартах от АТІ и №УГО1А, в медиаплеерах, DVD-проигрывателях, HDTV-видеокамерах. Информация об этих продуктах имеется на сайте www.tensilica.com.

Расскажем еще об одном применении архитектуры Xtensa [8, 9]. Группа разработчи-

ков из университета Беркли в Калифорнии предполагает обойти проблему с барьером энергопотребления, с которой неизбежно сталкиваются при проектировании суперкомпьютеров. Для этого предлагается построить компьютер, содержащий 20 миллионов микропроцессоров низкой мощности вместо обычных серверных процессоров. Заключено соглашение с компанией Tensilica на поставку процессорных ядер Xtensa LX для использования их в качестве основных стандартных блоков, на базе которых будет построена параллельная вычислительная система. Как заявляют ученые, в конечном итоге они смогут построить суперкомпьютер ценой в $75 млн, потребляющий порядка

4 мВт (соизмеримо с современными суперЭВМ), а его пиковая вычислительная мощность прогнозируется в 200 петафлопс, что в 130 раз превышает показатель компьютера IBM Road Runner — нынешнего лидера T0P500.

Эмуляция СнК с модифицированным процессором на FPGA

Рассмотренные технологии реконфигурации процессоров Xtensa предназначены, в основном, для системных архитекторов, проектирующих новые СнК и работающих «в связке» с технологами. Результатом этой работы должны являться подготовка производства и последующий выпуск СБИС достаточно крупными партиями.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Какой же интерес может представлять рассмотренная технология для «простого» разработчика, которому требуются мелкие серии либо даже единичные образцы системы? Фирма Tensilica дает ответ и на этот вопрос ([7], разд. 30). Инструментальные средства фирмы позволяют получить набор файлов, позволяющий быстро реализовать спроектированную систему на базе большой FPGA. Эта функция может послужить и для макетирования с целью проверки системы «в железе», и для получения конечного изделия, которое будет менее эффективным (по плот-

Таблица 3. Эффективность оптимизации процессоров Xtensa по энергопотреблению

Алгоритм Показатель Процессор до оптимизации Оптимизированный процессор Уменьшение потребления энергии

Скалярное произведение векторов Площадь чипа (мм2) 0,9 1,3 2х

Тысяч тактов 12 5,9

Мощность (мВт/МГц) 0,3 0,3

Энергия (мкДж) 3,3 1,6

Алгоритм блочного шифрования AES Площадь чипа (мм2) 0,4 0,8 82х

Тысяч тактов 283 2,8

Мощность (мВт/МГц) 0,2 0,3

Энергия (мкДж) 61,1 0,7

Алгоритм декодирования Витерби Площадь чипа (мм2) 0,5 0,6 ЗЗх

Тысяч тактов 280 7,6

Мощность (мВт/МГц) 0,2 0,3

Энергия (мкДж) 65,7 2

Быстрое преобразование Фурье Площадь чипа (мм2) 0,4 0,6 22х

Тысяч тактов 326 13,8

Мощность (мВт/МГц) 0,2 0,2

Энергия (мкДж) 56,6 2,5

ности упаковки и, возможно, по потреблению энергии) по сравнению со СБИС, но, тем не менее, позволит быстро и недорого создать работающую систему, обеспечивающую все описанные преимущества по производительности.

У автора данной статьи нет информации о возможности получения и использования описанной технологии рядовым разработчиком встраиваемой системы, как и о цене подобного приобретения. Однако ясно, что такая возможность в принципе существует.

Заключение

Фирма ТешШса предлагает комплексную и законченную технологию и инструментальные средства, позволяющие индивидуализировать процессорное ядро под класс решаемых задач. Возможно, благодаря этой технологии в недалеком будущем любой разработчик сможет «скроить» для своей системы процессор, наилучшим образом соответствующий особенностям его задачи. Одновременно эта технология в значительной степени способна решить и проблему пиратства в области микроконтроллерных

программ, поскольку такого же, как у вас, варианта процессора (и соответствующих средств поддержки разработки) не будет ни у кого... ■

Литература

1. The What, Why and How of Configurable Processors // Tensilica’s White Paper. 2008.

2. Why_High_MHz_Does_Not_Mean_High_ Performance // Tensilica’s White Paper. 2008.

3. How to Increase ASICs and SOC Computational Performance with Long-Word Processors // Tensilica’s White Paper. 2008.

4. Processor Core Customization: Your SOC design team’s fastest route from C to gates // Tensilica’s White Paper. 2008.

5. Match_Processor_to_Task_Through_Automated_ Processor_Generation // Tensilica’s White Paper. 2008.

6. Xtensa Instruction Set Architecture (ISA) Reference Manual. Tensilica, Inc., 2007.

7. Xtenta LX2 Microprocessor Data Book. Tensilica, Inc., 2008.

8. http:// ecotechdaily.com/2008/05/07/ new-climate-supercomputer-made-of-ipod-chips/

9. http://www.lbl.gov/Science-Articles/Archive/ NE-climate-predictions.html

i Надоели баннеры? Вы всегда можете отключить рекламу.