Выпуск #3/2011
И.Тарасов
ПЛИС Xilinx и цифровая обработка сигналов. Особенности, преимущества, перспективы
ПЛИС Xilinx и цифровая обработка сигналов. Особенности, преимущества, перспективы
Просмотры: 5464
Одно из основных требований к системам цифровой обработки информации – высокая производительность. Достигнуть высокой скорости вычислений можно с помощью методов параллельных расчетов, удобных для реализации на ПЛИС. FPGA Xilinx последних
поколений позволяют реализовывать более эффективные по сравнению с сигнальными процессорами алгоритмы ЦОС. Существенно увеличить производительность позволяют параллельно работающие аппаратные узлы ПЛИС. Для использования в системах ЦОС
компанией Xilinx будут предложены новые ПЛИС Kintex-7, выпуск которых намечен на ближайшее будущее.
поколений позволяют реализовывать более эффективные по сравнению с сигнальными процессорами алгоритмы ЦОС. Существенно увеличить производительность позволяют параллельно работающие аппаратные узлы ПЛИС. Для использования в системах ЦОС
компанией Xilinx будут предложены новые ПЛИС Kintex-7, выпуск которых намечен на ближайшее будущее.
Эволюция FPGA ПЛИС фирмы Xilinx
и их характеристики
Xilinx, как и большинство производителей ПЛИС – это fabless-компания, т. е. она не имеет собственного производства, а заказывает изготовление микросхем сторонним организациям. Компания получает возможность выпускать новые поколения ПЛИС по мере освоения производителями новых технологических процессов.
В конце 1990-х годов основной линейкой FPGA Xilinx была серия XC4000 (семейства XC4000E, XC4000XL и XC4000XLA). Архитектура XC4000 довольно удачна, но оказалось, что во многих случаях возможности стандартной логической ячейки FPGA используются далеко не полностью. С появлением ПЛИС Xilinx следующего поколения разработчик смог выбирать между дорогими устройствами с максимальной производительностью и полным набором функциональных возможностей и дешевыми FPGA с базовыми возможностями (рис.1). Стандартное недорогое решение представляла серия Spartan, на смену которой пришли серии Artix (минимальная стоимость) и Kintex (умеренная стоимость при высокой производительности цифровой обработки сигналов), а наилучшими техническими характеристиками обладает серия Virtex.
В серии 6 логическая ячейка FPGA стала унифицированной для всех серий (рис.2). Эта же архитектура сохранена для ПЛИС серии 7 – Virtex-7, Kintex-7, Artix-7.
Кроме собственно логических ячеек и блоков ввода-вывода, современные FPGA содержат большое количество аппаратных блоков (аппаратных ядер), реализующих часто используемые в цифровой схемотехнике функции. Аналогичные узлы, выполненные на логических ячейках, имеют существенно больший размер и пониженное быстродействие. В то же время аппаратная реализация этих блоков несущественно увеличивает площадь кристалла и стоимость ПЛИС, зато весьма улучшает характеристики проекта в целом.
В ПЛИС Xilinx используются следующие аппаратные блоки:
синхронной статической двухпортовой памяти BRAM;
цифровой обработки сигналов "умножение с накоплением" XtremeDSP;
формирователи тактовых сигналов, в FPGA 6-го поколения обозначаются как MMCM (Multi-Mode Clock Managers);
скоростные последовательные приемопередатчики (MGT, Multi-Gigabit Transceivers);
контроллеры Ethernet MAC;
контроллеры PCI Express Endpoint;
процессорные ядра PowerPC (Virtex-II Pro, Virtex-4 FX, Virtex-5 FXT), ARM (Zynq-7000).
Сегодня наиболее современной является серия 7 FPGA Xilinx – Artix-7, Kintex-7, Virtex-7. В этой серии анонсировано семейство ПЛИС с процессорным ядром ARM Cortex-A9 – Zynq-7000.
В новой серии только Virtex-7 продолжает существующую линейку высокопроизводительных ПЛИС, а два других семейства – Artix и Kintex – заменили линейку Spartan. ПЛИС Artix предназначены для массовой продукции, и отличаются малым энергопотреблением и невысокой стоимостью, а Kintex представляет собой, в некоторой степени, Spartan, специализированный для цифровой обработки сигналов. До сих пор серия Virtex традиционно использовалась и в приложениях, построенных вокруг высокоскоростных последовательных приемопередатчиков, и в проектах, основанных на цифровой обработке сигналов. Семейство Kintex-7 удачно вписывается в нишу, где требуется большое количество параллельно работающих блоков ЦОС по умеренной цене, а для систем с большим количеством аппаратных приемопередатчиков предназначены более дорогие Virtex-7 (табл.1).
Микросхемы Zynq-7010 и Zynq-7020 выполнены на базе программируемых ресурсов семейства Artix, а Zynq-7030 и Zynq-7040 – на базе Kintex. Это отражается на пиковой производительности подсистемы цифровой обработки сигналов – тактовая частота младших ПЛИС Zynq ниже, в них нет блоков PCI Express и высокоскоростных приемопередатчиков (табл.2).
Ключевое свойство нового поколения FPGA – унификация программируемых ресурсов. Предполагается, что для нового поколения FPGA станет возможной быстрая миграция между семействами Virtex/Kintex/Artix без корректировки проекта.
Особенности использования ПЛИС с архитектурой FPGA для цифровой обработки сигналов
Термин "цифровая обработка сигналов" (DSP, Digital Signal Processing) охватывает довольно широкую область, границы которой трудно очертить однозначно. Часто отличительной чертой устройств DSP (сигнальных процессоров) считают наличие в них аппаратной поддержки операции "умножение с накоплением" (MAC, Multiply and Accumulate). Само по себе умножение с накоплением сводится к вычислению суммы произведений вида:
.
Эта сумма произведений приближенно может считаться равной интегралу
,
к которому, в свою очередь, сводится большой набор математических методов анализа сигналов.
Практически с момента своего появления FPGA позиционировались как устройства, превосходящие сигнальные процессоры по отношению производительность/цена. Однако надо иметь в виду, что по сравнению с относительно дешевыми микроконтроллерами и сигнальными процессорами ПЛИС не оправдывают свое применение в случае повторения широко распространенных процессорных архитектур или однопоточных вычислений. Преимущества ПЛИС в системах ЦОС проявляются только в случае реализации массово-параллельных вычислительных архитектур. В них максимально полно используется высокая суммарная пропускная способность накристальной памяти FPGA, блоков цифровой обработки сигналов и, при организации обмена данными с внешними устройствами, скоростных последовательных приемопередатчиков. Соответственно, наиболее эффективны для реализации в ПЛИС методы и алгоритмы, использующие параллельную обработку нескольких потоков данных.
FPGA Xilinx имеют в своем составе аппаратные ядра XtremeDSP, выполняющие умножение или умножение с накоплением (Virtex-4 и более поздние, Spartan 3A DSP, Spartan-6, Artix, Kintex, Zynq).
Хотя сигнальный процессор, созданный по сопоставимой технологии, в среднем имеет более высокую тактовую частоту, единственный поток исполнения команд снижает общую производительность. Несмотря на то, что некоторые сигнальные процессоры допускают выполнение двух или четырех операций "умножение с накоплением" одновременно, при расчете фильтров высокого порядка общая скорость вычислений существенно снижается. В то же время FPGA с большим числом блоков DSP вполне может обеспечить однотактное исполнение всех операций, используя параллельный расчет (рис.3). Для эффективного использования этого преимущества следует ориентироваться на алгоритмы и методы, подразумевающие распараллеливание операций – фильтры высоких порядков, быстрое преобразование Фурье, вейвлет-анализ, статистическая обработка данных и т.п.
Еще одно важное преимущество FPGA – способность обеспечивать обработку данных непрерывно и со стабильной скоростью. Дело в том, что понятие "пиковая производительность" имеет разный смысл для сигнальных процессоров и FPGA. В случае с сигнальным процессором тактовая частота условно соответствует количеству операций в секунду непосредственно с фильтром. Однако в программе процессора могут быть предусмотрены и другие действия, например, обработка прерываний. Из-за необходимости выполнять дополнительные операции пиковая скорость может упасть. Таким образом, понятие "пиковая производительность" имеет статистический характер, а реальное значение производительности может меняться не только в зависимости от выбранного алгоритма, но и в процессе работы программы при возникновении соответствующих условий.
В то же время для FPGA термин "максимальная тактовая частота" относится к наиболее выгодным условиям трассировки кристалла – все соединения выполнены с использованием коротких цепей, связанные программируемые ячейки расположены рядом, максимальная длина цепей ускоренного переноса ограничена (разрядность счетчиков, как правило, невелика – например, для Virtex допускается 14-разрядный счетчик). Неудачная трассировка снижает допустимую тактовую частоту, однако весьма важно то, что после завершения проектирования она остается постоянной. Некоторые проблемы с дополнительными тактами ожидания может внести использование внешней памяти. Но наличие скоростных синхронных ресурсов и достаточного количества внутренней памяти существенно облегчает построение стандартных узлов цифровой обработки сигналов. При необходимости в проектах на ПЛИС тоже можно реализовать процессоры (например, процессор на логических ячейках типа MicroBlaze), однако через этот процессор совершенно необязательно пропускать весь поток обрабатываемых данных. Более того, рекомендуется реализовывать высокопроизводительную цифровую обработку с использованием независимых от процессора ресурсов DSP. Процессор может выполнять организацию интерфейса, загрузку коэффициентов и прочие операции, которые сложно реализовать аппаратно. При этом единственное процессорное ядро может обеспечивать управление несколькими сотнями DSP-блоков ПЛИС, которые непрерывно выполняют обработку входящего потока.
И Virtex-6, и Spartan-6 имеют в своем составе блоки XtremeDSP, выполняющие умножение с накоплением на системной тактовой частоте (600 МГц для Virtex-6 и 325 МГц для Spartan-6). Для накопления используется 48-разрядный аппаратный аккумулятор, который в серии Spartan до этого существовал только в достаточно дорогом подсемействе Spartan-3A DSP. Архитектура, использованная в Virtex-6, применяется и в остальных FPGA серии 7: Virtex-7, Kintex-7, Artix-7 (рис.4, 5).
Блоки цифровой обработки в семействах Virtex-6 и Spartan-6 имеют существенное отличие – блок DSP48E1 в Virtex-6 способен умножать 25- и 18-битные числа, а блок DSP48A1 в Spartan-6 ограничивается двумя 18-разрядными операндами. Увеличение разрядности одного из операндов до 25 бит не только способствует увеличению динамического диапазона представляемых значений, но и помогает с помощью всего двух умножителей 25x18 выполнять перемножение чисел с плавающей запятой с одинарной точностью (в формате short float). В предыдущих поколениях FPGA для этого потребовалось бы четыре умножителя. Таким образом, новая архитектура блока XtremeDSP способствует эффективной реализации цифровых фильтров, использующих более точное представление чисел.
Еще одно нововведение в серии 6 – предварительный сумматор (pre-adder). На первый взгляд, его функции существенно ограничены, а применение очень узко. Однако этот модуль – хороший пример технического решения, существенно ускоряющего (при небольших аппаратных затратах) расчет цифровых фильтров с симметричными коэффициентами (рис.6). В данном примере выражение k13·x13 + k17·x17 при k13=k17 может быть представлено как k13·(x13+x17). Операция суммирования цифровых отсчетов x13+x17 может быть выполнена с помощью предварительного сумматора. В этом случае он находится в цепи 18-разрядного операнда – источника данных (в то время как 25-разрядный операнд с большим динамическим диапазоном предпочтительнее для передачи коэффициентов фильтра). Количество задействованных блоков XtremeDSP при использовании такого алгоритма уменьшается в два раза.
Унификация архитектуры логических ячеек и аппаратных блоков, увеличение степени их интеграции и простота проектирования маломощных помехозащищенных систем питания позволяет эффективно применять ПЛИС последних поколений в системах ЦОС. В перспективе следует обратить внимание на серию Kintex, ориентированную именно на цифровую обработку сигналов.
Пиковая производительность ПЛИС каждой новой серии возрастает по отношению к предыдущей минимум в два раза (табл.3). Этот рост обусловлен, прежде всего, увеличением количества блоков цифровой обработки сигналов. Прирост тактовой частоты при этом составляет всего лишь около 10%. Таким образом, получить максимум отдачи от FPGA можно только при глубоком распараллеливании процессов обработки, например, при реализации многоканальных фильтров высоких порядков, устройств вейвлет-преобразования, многоканальной статистической обработки и т.п.
В настоящее время ПЛИС серии 7 фирмой Xilinx не производятся. По информации фирмы Xilinx, появление инженерных образцов ожидается не ранее 2012 года. Официальный дистрибьютор Xilinx в России КТЦ "Инлайн груп" рекомендует использовать для проектов, завершаемых в 2012 году, ПЛИС Virtex-6/Spartan-6.
и их характеристики
Xilinx, как и большинство производителей ПЛИС – это fabless-компания, т. е. она не имеет собственного производства, а заказывает изготовление микросхем сторонним организациям. Компания получает возможность выпускать новые поколения ПЛИС по мере освоения производителями новых технологических процессов.
В конце 1990-х годов основной линейкой FPGA Xilinx была серия XC4000 (семейства XC4000E, XC4000XL и XC4000XLA). Архитектура XC4000 довольно удачна, но оказалось, что во многих случаях возможности стандартной логической ячейки FPGA используются далеко не полностью. С появлением ПЛИС Xilinx следующего поколения разработчик смог выбирать между дорогими устройствами с максимальной производительностью и полным набором функциональных возможностей и дешевыми FPGA с базовыми возможностями (рис.1). Стандартное недорогое решение представляла серия Spartan, на смену которой пришли серии Artix (минимальная стоимость) и Kintex (умеренная стоимость при высокой производительности цифровой обработки сигналов), а наилучшими техническими характеристиками обладает серия Virtex.
В серии 6 логическая ячейка FPGA стала унифицированной для всех серий (рис.2). Эта же архитектура сохранена для ПЛИС серии 7 – Virtex-7, Kintex-7, Artix-7.
Кроме собственно логических ячеек и блоков ввода-вывода, современные FPGA содержат большое количество аппаратных блоков (аппаратных ядер), реализующих часто используемые в цифровой схемотехнике функции. Аналогичные узлы, выполненные на логических ячейках, имеют существенно больший размер и пониженное быстродействие. В то же время аппаратная реализация этих блоков несущественно увеличивает площадь кристалла и стоимость ПЛИС, зато весьма улучшает характеристики проекта в целом.
В ПЛИС Xilinx используются следующие аппаратные блоки:
синхронной статической двухпортовой памяти BRAM;
цифровой обработки сигналов "умножение с накоплением" XtremeDSP;
формирователи тактовых сигналов, в FPGA 6-го поколения обозначаются как MMCM (Multi-Mode Clock Managers);
скоростные последовательные приемопередатчики (MGT, Multi-Gigabit Transceivers);
контроллеры Ethernet MAC;
контроллеры PCI Express Endpoint;
процессорные ядра PowerPC (Virtex-II Pro, Virtex-4 FX, Virtex-5 FXT), ARM (Zynq-7000).
Сегодня наиболее современной является серия 7 FPGA Xilinx – Artix-7, Kintex-7, Virtex-7. В этой серии анонсировано семейство ПЛИС с процессорным ядром ARM Cortex-A9 – Zynq-7000.
В новой серии только Virtex-7 продолжает существующую линейку высокопроизводительных ПЛИС, а два других семейства – Artix и Kintex – заменили линейку Spartan. ПЛИС Artix предназначены для массовой продукции, и отличаются малым энергопотреблением и невысокой стоимостью, а Kintex представляет собой, в некоторой степени, Spartan, специализированный для цифровой обработки сигналов. До сих пор серия Virtex традиционно использовалась и в приложениях, построенных вокруг высокоскоростных последовательных приемопередатчиков, и в проектах, основанных на цифровой обработке сигналов. Семейство Kintex-7 удачно вписывается в нишу, где требуется большое количество параллельно работающих блоков ЦОС по умеренной цене, а для систем с большим количеством аппаратных приемопередатчиков предназначены более дорогие Virtex-7 (табл.1).
Микросхемы Zynq-7010 и Zynq-7020 выполнены на базе программируемых ресурсов семейства Artix, а Zynq-7030 и Zynq-7040 – на базе Kintex. Это отражается на пиковой производительности подсистемы цифровой обработки сигналов – тактовая частота младших ПЛИС Zynq ниже, в них нет блоков PCI Express и высокоскоростных приемопередатчиков (табл.2).
Ключевое свойство нового поколения FPGA – унификация программируемых ресурсов. Предполагается, что для нового поколения FPGA станет возможной быстрая миграция между семействами Virtex/Kintex/Artix без корректировки проекта.
Особенности использования ПЛИС с архитектурой FPGA для цифровой обработки сигналов
Термин "цифровая обработка сигналов" (DSP, Digital Signal Processing) охватывает довольно широкую область, границы которой трудно очертить однозначно. Часто отличительной чертой устройств DSP (сигнальных процессоров) считают наличие в них аппаратной поддержки операции "умножение с накоплением" (MAC, Multiply and Accumulate). Само по себе умножение с накоплением сводится к вычислению суммы произведений вида:
.
Эта сумма произведений приближенно может считаться равной интегралу
,
к которому, в свою очередь, сводится большой набор математических методов анализа сигналов.
Практически с момента своего появления FPGA позиционировались как устройства, превосходящие сигнальные процессоры по отношению производительность/цена. Однако надо иметь в виду, что по сравнению с относительно дешевыми микроконтроллерами и сигнальными процессорами ПЛИС не оправдывают свое применение в случае повторения широко распространенных процессорных архитектур или однопоточных вычислений. Преимущества ПЛИС в системах ЦОС проявляются только в случае реализации массово-параллельных вычислительных архитектур. В них максимально полно используется высокая суммарная пропускная способность накристальной памяти FPGA, блоков цифровой обработки сигналов и, при организации обмена данными с внешними устройствами, скоростных последовательных приемопередатчиков. Соответственно, наиболее эффективны для реализации в ПЛИС методы и алгоритмы, использующие параллельную обработку нескольких потоков данных.
FPGA Xilinx имеют в своем составе аппаратные ядра XtremeDSP, выполняющие умножение или умножение с накоплением (Virtex-4 и более поздние, Spartan 3A DSP, Spartan-6, Artix, Kintex, Zynq).
Хотя сигнальный процессор, созданный по сопоставимой технологии, в среднем имеет более высокую тактовую частоту, единственный поток исполнения команд снижает общую производительность. Несмотря на то, что некоторые сигнальные процессоры допускают выполнение двух или четырех операций "умножение с накоплением" одновременно, при расчете фильтров высокого порядка общая скорость вычислений существенно снижается. В то же время FPGA с большим числом блоков DSP вполне может обеспечить однотактное исполнение всех операций, используя параллельный расчет (рис.3). Для эффективного использования этого преимущества следует ориентироваться на алгоритмы и методы, подразумевающие распараллеливание операций – фильтры высоких порядков, быстрое преобразование Фурье, вейвлет-анализ, статистическая обработка данных и т.п.
Еще одно важное преимущество FPGA – способность обеспечивать обработку данных непрерывно и со стабильной скоростью. Дело в том, что понятие "пиковая производительность" имеет разный смысл для сигнальных процессоров и FPGA. В случае с сигнальным процессором тактовая частота условно соответствует количеству операций в секунду непосредственно с фильтром. Однако в программе процессора могут быть предусмотрены и другие действия, например, обработка прерываний. Из-за необходимости выполнять дополнительные операции пиковая скорость может упасть. Таким образом, понятие "пиковая производительность" имеет статистический характер, а реальное значение производительности может меняться не только в зависимости от выбранного алгоритма, но и в процессе работы программы при возникновении соответствующих условий.
В то же время для FPGA термин "максимальная тактовая частота" относится к наиболее выгодным условиям трассировки кристалла – все соединения выполнены с использованием коротких цепей, связанные программируемые ячейки расположены рядом, максимальная длина цепей ускоренного переноса ограничена (разрядность счетчиков, как правило, невелика – например, для Virtex допускается 14-разрядный счетчик). Неудачная трассировка снижает допустимую тактовую частоту, однако весьма важно то, что после завершения проектирования она остается постоянной. Некоторые проблемы с дополнительными тактами ожидания может внести использование внешней памяти. Но наличие скоростных синхронных ресурсов и достаточного количества внутренней памяти существенно облегчает построение стандартных узлов цифровой обработки сигналов. При необходимости в проектах на ПЛИС тоже можно реализовать процессоры (например, процессор на логических ячейках типа MicroBlaze), однако через этот процессор совершенно необязательно пропускать весь поток обрабатываемых данных. Более того, рекомендуется реализовывать высокопроизводительную цифровую обработку с использованием независимых от процессора ресурсов DSP. Процессор может выполнять организацию интерфейса, загрузку коэффициентов и прочие операции, которые сложно реализовать аппаратно. При этом единственное процессорное ядро может обеспечивать управление несколькими сотнями DSP-блоков ПЛИС, которые непрерывно выполняют обработку входящего потока.
И Virtex-6, и Spartan-6 имеют в своем составе блоки XtremeDSP, выполняющие умножение с накоплением на системной тактовой частоте (600 МГц для Virtex-6 и 325 МГц для Spartan-6). Для накопления используется 48-разрядный аппаратный аккумулятор, который в серии Spartan до этого существовал только в достаточно дорогом подсемействе Spartan-3A DSP. Архитектура, использованная в Virtex-6, применяется и в остальных FPGA серии 7: Virtex-7, Kintex-7, Artix-7 (рис.4, 5).
Блоки цифровой обработки в семействах Virtex-6 и Spartan-6 имеют существенное отличие – блок DSP48E1 в Virtex-6 способен умножать 25- и 18-битные числа, а блок DSP48A1 в Spartan-6 ограничивается двумя 18-разрядными операндами. Увеличение разрядности одного из операндов до 25 бит не только способствует увеличению динамического диапазона представляемых значений, но и помогает с помощью всего двух умножителей 25x18 выполнять перемножение чисел с плавающей запятой с одинарной точностью (в формате short float). В предыдущих поколениях FPGA для этого потребовалось бы четыре умножителя. Таким образом, новая архитектура блока XtremeDSP способствует эффективной реализации цифровых фильтров, использующих более точное представление чисел.
Еще одно нововведение в серии 6 – предварительный сумматор (pre-adder). На первый взгляд, его функции существенно ограничены, а применение очень узко. Однако этот модуль – хороший пример технического решения, существенно ускоряющего (при небольших аппаратных затратах) расчет цифровых фильтров с симметричными коэффициентами (рис.6). В данном примере выражение k13·x13 + k17·x17 при k13=k17 может быть представлено как k13·(x13+x17). Операция суммирования цифровых отсчетов x13+x17 может быть выполнена с помощью предварительного сумматора. В этом случае он находится в цепи 18-разрядного операнда – источника данных (в то время как 25-разрядный операнд с большим динамическим диапазоном предпочтительнее для передачи коэффициентов фильтра). Количество задействованных блоков XtremeDSP при использовании такого алгоритма уменьшается в два раза.
Унификация архитектуры логических ячеек и аппаратных блоков, увеличение степени их интеграции и простота проектирования маломощных помехозащищенных систем питания позволяет эффективно применять ПЛИС последних поколений в системах ЦОС. В перспективе следует обратить внимание на серию Kintex, ориентированную именно на цифровую обработку сигналов.
Пиковая производительность ПЛИС каждой новой серии возрастает по отношению к предыдущей минимум в два раза (табл.3). Этот рост обусловлен, прежде всего, увеличением количества блоков цифровой обработки сигналов. Прирост тактовой частоты при этом составляет всего лишь около 10%. Таким образом, получить максимум отдачи от FPGA можно только при глубоком распараллеливании процессов обработки, например, при реализации многоканальных фильтров высоких порядков, устройств вейвлет-преобразования, многоканальной статистической обработки и т.п.
В настоящее время ПЛИС серии 7 фирмой Xilinx не производятся. По информации фирмы Xilinx, появление инженерных образцов ожидается не ранее 2012 года. Официальный дистрибьютор Xilinx в России КТЦ "Инлайн груп" рекомендует использовать для проектов, завершаемых в 2012 году, ПЛИС Virtex-6/Spartan-6.
Отзывы читателей