Структурная модификация процессорных СФ-блоков для систем на кристалле, реализуемых на базе FPGA


PDF версия

В статье рассматриваются возможные варианты модификации СФ-блоков, используемых при проектировании систем на кристалле. Подробно рассказывается о методике структурной модификации с целью исключения избыточных инструкций и функций, не используемых в конкретном приложении.

СБИС класса «система на кристалле» (СнК) начинают широко внедряться в современную электронную аппаратуру, вытесняя традиционные конструктивные решения в виде систем, реализованных на печатных платах. Современные микро- и наноэлектронные технологии позволяют реализовать СнК в виде заказной СБИС (ASIC) или на базе ПЛИС высокой интеграции (FPGA). При разработке методов и средств создания современных СБИС класса «СнК» следует рассматривать оба эти направления, каждое из которых имеет свои области применения [1—4].
СнК, реализованные в виде ASIC, имеют значительные преимущества по сравнению с другими решениями:
– возможность получения более высоких технических показателей (производительность, энергопотребление, массогабаритные характеристики);
– более низкая стоимость при крупносерийном выпуске.
Однако разработка и организация серийного выпуска СнК в виде ASIC требуют значительных финансовых затрат. Поэтому такая реализация СнК является перспективной для проектов, предъявляющих особо высокие требования к техническим характеристикам изделий, которые другими средствами не обеспечиваются, или для высокобюджетных проектов, ориентированных на многосерийное производство и обеспечивающих экономическую эффективность данного решения.
Альтернативой является реализация СнК на базе высокоинтегрированных FPGA, которые производятся по технологии 90 нм и менее, имеют логическую емкость более 106 логических вентилей. Данный вариант реализации СнК также имеет ряд преимуществ:
– малые затраты на разработку и создание опытных образцов;
– возможность многократной оперативной коррекции проекта;
– использование хорошо проверенных серийных изделий;
– более простой процесс тестирования и отладки.
СнК на базе FPGA являются перспективной элементной базой для широкой номенклатуры мало- и среднесерийных изделий с ограниченными требованиями к параметрам.

Структура СнК и варианты реализации используемых СФ-блоков

Основная особенность технологии проектирования СнК – широкое использование СФ-блоков, имеющихся на рынке и в свободном доступе, которые могут быть реализованы на базе различных функциональных библиотек и технологий и интегрированы в кристалл СБИС средствами современных САПР. СФ-блоки, используемые при проектировании СнК, имеют три основные формы представления:
– топологический фрагмент, ориентированный на определенную технологию изготовления, который можно непосредственно реализовать в физической структуре кристалла – аппаратно реализованные (hard) СФ-блоки;
– схема соединения функциональных элементов из состава библиотеки, предназначенной для создания СБИС на базе конкретной технологии изготовления – гибкие (firm) СФ-блоки;
– модель на языке описания аппаратуры (Verilog, VHDL), которая средствами САПР преобразуется в топологические фрагменты для реализации на кристалле СБИС – синтезируемые (soft) СФ-блоки.
Разработчик может непосредственно «вмонтировать» в структуру проектируемой СБИС топологически готовый СФ-блок (hard) или использовать имеющуюся модель СФ-блока (firm, soft) и выполнить его схемотехническое и топологическое проектирование в составе реализуемой СБИС СнК.
Типовая структура СнК представлена на рисунке 1. Обычно основные функции по организации работы СнК выполняет процессорный СФ-блок, который во многих приложениях обеспечивает также необходимую программную обработку поступающих данных. В качестве внутренней памяти используются блоки статической памяти (SRAM). Дополнительные блоки памяти различного типа (SRAM, DRAM, ROM, EEPROM, флэш) обычно подключаются к СнК как внешние устройства. Специализированные СФ-блоки обработки данных обеспечивают аппаратное выполнение функций, специфических для данной системы. Это могут быть блоки цифровой обработки сигналов (DSP), аналоговые схемы, преобразователи потоков данных и другие устройства, выполняющие функции сопроцессоров. Таймеры, АЦП и ЦАП, широтно-импульсные модуляторы и другие цифровые устройства интегрируются в состав СнК в качестве периферийных СФ-блоков. Интерфейс с внешними устройствами обеспечивается с помощью параллельных и последовательных портов, различных шинных и коммуникационных контроллеров и других интерфейсных СФ-блоков.

Рис. 1. Структура типовой системы на кристалле

В составе СнК могут использоваться различные типы 8-, 16- и 32-разрядных процессорных СФ-блоков:
– имеющиеся в открытом доступе (OpenCores [5] и другие источники);
– предоставляемые на коммерческой основе по лицензиям фирм-разработчиков.
Разработчик проекта может выбрать готовую модель синтезируемого процессорного СФ-блока, которая в наибольшей степени обеспечивает выполнение задач в соответствии с требованиями технического задания. При этом современная технология проектирования СнК на базе процессорных СФ-блоков позволяет производить в процессе проектирования структурную модификацию процессорного ядра с учетом конкретных задач, решаемых в данном приложении. Т.к. синтезируемый СФ-блок представлен в виде HDL-модели, задачей проектировщика является коррекция имеющейся модели, верификация полученного модифицированного варианта, оценка параметров системы, реализованной на базе полученного ядра с целью определения эффективности проведенной модификации. Такая коррекция особенно эффективна в СнК, реализуемых на базе FPGA, где модификация структуры и функций используемых СФ-блоков легко обеспечивается средствами соответствующих САПР.
Возможны два варианта структурной модификации процессорного СФ-блока:
– расширение реализуемых функций путем добавления дополнительных возможностей (инструкций, функциональных блоков), обеспечивающих повышение эффективности при использовании СФ-блока в данном приложении;
– исключение ряда избыточных функций СФ-блока, которые не используются в данном приложении.
Отметим, что расширение функциональных возможностей процессорного СФ-блока обычно приводит к необходимости модификации пакета средств разработки программного обеспечения ввиду добавления инструкций по использованию новых функций. Это обстоятельство существенно снижает эффективность применения данного варианта модификации из-за значительных дополнительных затрат времени и средств.
В тех приложениях, где процессорный СФ-блок выполняет ограниченное число функций обмена данными и управления работы системы, имеет смысл его модифицировать, исключив ряд инструкций и соответствующих функциональных блоков. При этом не требуется модификации набора средств разработки программного обеспечения, ранее созданного для исходного процессорного ядра. Данный вариант модификации СФ-блока позволяет получить следующие результаты:
– повышение максимальной тактовой частоты процессорного СФ-блока, обусловленное сокращением количества и длины логических цепей;
– уменьшение количества ресурсов, необходимых для реализации СФ-блока на кристалле FPGA;
– снижение энергопотребления, обусловленное сокращением количества используемых ресурсов кристалла FPGA.

Методика структурной модификации процессорных СФ-блоков путем сокращения набора команд

Предлагаемая методика модификации структуры процессорных СФ-блоков позволяет произвести сокращение набора команд, не требуемых для реализации данного приложения, и исключить из состава СФ-блока соответствующие неиспользуемые блоки. Общий алгоритм реализации данной методики представлен на рисунке 2. Исходными данными являются синтезируемая модель исходного процессорного СФ-блока в виде описания на HDL-языке (Verilog, VHDL) и программный код реализуемого приложения. Методика структурной модификации СФ-блока реализуется путем выполнения этапов в следующей последовательности.

Рис. 2. Методика структурной модификации процессорного ядра путем сокращения набора поддерживаемых команд

1. Компиляция и линковка программы реализации заданного приложения позволяют получить исполняемый бинарный код.
2. Синтаксический анализ полученного кода позволяет выделить подмножества команд, используемых и неиспользуемых (исключаемых) при выполнении приложения.
3. Модификация HDL-кода исходного СФ-блока на основе полученной информации об используемом и исключаемом подмножествах команд:
а) модификация блока дешифрации команд: удаляется HDL-код, реализующий формирование выходных сигналов блока дешифрации при поступлении команд из исключаемого подмножества;
б) модификация состава исполнительных блоков: если в результате коррекции блока дешифрации команд выявляются блоки, для которых не формируются необходимые управляющие сигналы, HDL-код этих блоков исключается из исходной модели.
4. Синтез процессорного СФ-блока в соответствии с модифицированным вариантом HDL-кода выполняется средствами САПР для семейства FPGA, на базе которого предполагается реализация СнК.
 5. HDL-моделирование на исходном и модифицированном ядрах позволяет получить две трассы, сравнив которые, можно определить корректность модифицированного HDL-описания: в случае идентичности трасс модификация признается корректной.
 6. Оценка параметров модифицированного варианта СФ-блока позволяет определить его основные характеристики и количественно оценить достигаемое улучшение основных показателей.
В качестве критериев оценки используется следующий набор параметров:
– количество ресурсов FPGA, необходимое для реализации СФ-блока;
– максимальная тактовая частота СФ-блока;
– динамическая мощность, потребляемая СФ-блоком.
При выполнении основных этапов данной методики модификации используются САПР, предоставляемые производителями используемых FPGA: QuartusII компании Altera, ISE компании Xilinx и др. Эти САПР выдают данные об использовании различных ресурсов кристалла – логических блоков LUT (Look-Up Table), триггеров, блочной памяти, аппаратных умножителей и других блоков, производят определение максимальной рабочей частоты, позволяют оценить значения потребляемой мощности.

Оценка эффективности структурной модификации процессорных СФ-блоков

Для оценки эффективности методики структурной модификации процессорных СФ-блоков путем сокращения набора поддерживаемых инструкций выбрана архитектура MIPS-I, которая является типичным представителем RISC-архитектур, а ее модификации широко используются в разнообразных современных системах. Для более полной оценки были использованы VHDL-модели ряда вариантов СФ-блоков данной архитектуры, которые отличались количеством ступеней конвейера (от 1 до 7), реализацией блока сдвигателя, способом переноса данных в арифметико-логическом устройстве.
Моделирование производилось для случая размещения процессорных СФ-блоков на FPGA семейства Stratix III компании Altera. В качестве набора тестовых приложений выбрано 20 алгоритмов из различных наборов тестов (см. табл. 1). Для компиляции приложений использовался стандартный компилятор GCC.
Полученные данные о сокращении количества ресурсов (LUT и триггеров), требуемых для реализации модифицированных СФ-блоков, представлены на рисунке 3, где приводятся средние, минимальные и максимальные значения для исследованных вариантов, а также значения для ядра p3m_st (процессорный СФ-блок с трехступенчатым конвейером и сдвигателем на базе умножителя), который имеет наилучшие показатели по совокупности критериев оценки.

Рис. 3. Сокращение ресурсов (в %), требуемых для реализации процессорных СФ-блоков при исключении неиспользуемых инструкций для различных приложений
Таблица 1. Использованные тестовые приложения

Тест

Источник

Краткое описание

bcount

MBench [6]

Подсчет количества битов 0/1 в массиве целых чисел

qsort

MBench

Сортировка массива строк

dijkstra

Расчет расстояний между всеми парами точек графа

patricia

Алгоритм оптимизации таблиц маршрутизации с сокращением времени обхода дерева

sha

Расчет хэш-функции по алгоритму SHA

crc32

Расчет контрольной суммы строки (полином)

fit

Алгоритм БПФ для полиномиальной функции с псевдослучайными амплитудами

ssearch

Алгоритм поиска подстроки в тексте (без учета регистра)

dct

RATES[7]

Дискретное косинусное преобразование (2D)

gol

J.Conway[8]

Алгоритм Game Of Life (эмуляция массива клеток)

dhry

R.Weiker[9]

Стандартный embedded-тест Dhrystone

bsort

XiRISC [10]

Пузырьковая сортировка массива целых чисел

crc

XiRISC

Расчет контрольной суммы строки (rocksoft)

des

Шифрование строки по алгоритму DES

fft2

Алгоритм БПФ с фиксированной точкой

fir

Фильтр с конечной импульсной характеристикой

turbo

Программная реализация турбо-кода

quant

Алгоритм квантизации (MPEG/JPEG)

iquant

Алгоритм обратной квантизации (MPEG/JPEG)

vlc

Расчет кода переменной длины (VLC)

Максимальное сокращение количества ресурсов (до 45%) достигается при реализации алгоритма пузырьковой сортировки, который не использует операции сдвига и умножения, что позволяет исключить из состава СФ-блоки сдвигателя и умножителя. Несколько меньшее сокращение требуемых ресурсов (до 43%) обеспечивается при реализации КИХ-фильтра, который не использует инструкции сдвига. Оба данных алгоритма используют всего 15 инструкций — около четверти исходного набора. На приложениях, не использующих операции умножения, но использующих сдвиги, реализуется сокращение ресурсов на 20—25%.
На рисунке 4 приведены результаты, показывающие изменение тактовой частоты для модифицированных процессорных СФ-блоков: указаны минимальные и максимальные значения, а также среднее значение для набора исследованных вариантов.

Рис. 4. Изменение максимальной тактовой частоты (в %) при исключении неиспользуемых инструкций для различных приложений

При исполнении большинства приложений может быть достигнуто повышение максимальной тактовой частоты на 5—10%, хотя для отдельных вариантов СФ-блоков наблюдается некоторое снижение тактовой частоты (на 1—4%).
При реализации данной методики модификации процессорных СФ-блоков потребляемая ими динамическая мощность изменяется в соответствии с двумя факторами:
– при сокращении количества используемых ресурсов происходит снижение потребляемой мощности;
– при возрастании тактовой частоты потребление оставшихся структурных блоков увеличивается пропорционально частоте.
Проведенные оценки показали, что максимальное снижение динамической потребляемой мощности при выполнении использованного набора приложений не превышает 8%. С учетом уменьшения времени выполнения приложений, возникающего вследствие возрастания рабочей тактовой частоты, сокращение энергопотребления может достигать 20%.

Заключение

Методика модификации синтезируемых процессорных СФ-блоков, основанная на исключении из набора команд инструкций, которые не используются при выполнении конкретного приложения, позволяет для ряда приложений получить существенное улучшение характеристик СнК, проектируемых на базе этих блоков.
На примере выполнения 20 тестовых приложений различными вариантами 32-разрядного процессорного СФ-блока с архитектурой MIPS, реализованными на FPGA семейства Stratix III, показано, что данная методика позволяет снизить число ресурсов, требуемых для создания СФ-блока (до 45%), увеличить рабочую тактовую частоту (до 13%), сократить динамическую потребляемую мощность (до 8%) и снизить энергопотребление (до 20%).

Литература
1. Немудров В., Мартин Г. Системы на кристалле. Проектирование и развитие. — М.: Техносфера, 2004. — 216 с.
2. Шагурин И., Шалтырев В., Волов А. «Большие» FPGA как элементная база для реализации систем на  кристалле//Электронные компоненты,  №5, 2006.
3. Стешенко В., Руткевич А., Гладкова Е., Шишкин Е., Воронков Д. Проектирование СБИС типа «система на кристалле». Маршрут проектирования. Синтез схемы. Часть 1//Электронные компоненты, №1, 2009.
4. Шагурин И. Системы на кристалле. Особенности реализации и перспективы применения//Электронные компоненты,
№ 1, 2009.
5. www.opencores.org
6. Guthaus M., Ringenberg J. et al. MiBench: A free, commercially representative embedded benchmark suite//Proceedings of the IEEE International Workshop on Workload Characterization, 2001, p. 3—14.
7. Shannon L., Chow P. Standardizing the performance assessment of reconfigurable processor architectures//Proceedings of the 11th Annual IEEE Symposium on Field-Programmable Custom Computing Machines, 2003, p. 68—69.
8. Gardner M. The fantastic combinations of John Conway’s new solitaire game//Scientific American, 1970, vol. 223, p. 120—123.
9. Weiker R. Dhrystone: A Synthetic Systems: Programming Benchmark//Communications of the ACM, 1984? vol. 27? p. 1013—1030.
10. Campi F. et al. A VLIW Processor with Reconfigurable Instruction Set for Embedded Applications//IEEE Journal of Solid-State Circuits, 2003, vol. 38, p. 1876—1886.

Статья подготовлена в рамках выполнения ФЦП «Научные и научно-педагогические кадры инновационной России на 2009–2013 гг.»

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

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