Как объективно оценить параметры FPGA разных производителей?


PDF версия

В настоящее время не существует стандартизированного метода оценки FPGA, который разработчики могли бы использовать при выборе этого компонента для своих приложений. Компания Altera предложила методику, которая позволяет оценить производительность, коэффициент заполнения кристалла и время компилирования FPGA разных производителей. Эта методика обсуждается на примере сравнения FPGA семейств Stratix III и Virtex-5. Статья представляет собой сокращенный перевод работы [1].

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

Компания Altera производит оценку FPGA с помощью программного средства разработки Quartus II, используя комплексный набор типовых проектов заказчика, которые отражают различные области применения, например сетевые технологии, телекоммуникации, беспроводная и бытовая техника. К тому же проекты реализованы на основе различной технологии, например ASIC, вентильные матрицы и FPGA других производителей. Отобранные проекты (которые хранятся в защищенной базе данных) используются для того, чтобы сравнить функционирование реальных устройств заказчиков с разрабатываемой в текущий момент архитектурой. Проекты, не оптимизированные для FPGA компании Altera, оцениваются по результатам более 150 тыс. тестов; затем на основе анализа предлагаются рекомендации по совершенствованию архитектуры следующих поколений FPGA или инструментов разработки.

На основе указанного процесса анализа (и учитывая тот факт, что в настоящее время отсутствует стандартизованный процесс тестирования и оценки) компания Altera разработала собственную объективную методику оценки, которая основана на реальных проектах и одобрена отраслевыми экспертами. Однако возникает проблема: имеющиеся проекты являются собственностью заказчиков Altera, и компания не может предоставить их другим заказчикам для оценки своих FPGA. Несмотря на то, что все понимают смысл этого ограничения, возникает определенный скептицизм конечных пользователей. Например, из-за того, что разработчики не имеют возможности собственноручно проверить утверждение о том, что FPGA семейства Stratix III в среднем на 35% быстрее FPGA Virtex-5, компилируется в три раза быстрее, чем FPGA Virtex-5, а коэффициент заполнения кристалла в среднем равен 95%, оно воспринимается скептически.

Для того чтобы уменьшить скептицизм конечных пользователей по отношению к заявленным оценкам, компания Altera отобрала готовые проекты и совместно с заказчиками провела анализ параметров FPGA, результаты которого представлены ниже. В этом анализе сравнивались FPGA Stratix III и Virtex-5 по таким параметрам как производительность ядра, коэффициент заполнения и время компилирования для проектов различной сложности.

Для сравнительного анализа были отобраны семь наиболее популярных и крупных проектов на интернет-ресурсе www.opencores.org, которые представлены в таблице 1.

Табл. 1. Проекты OpenCores
Проекты OpenCores

Число логических элементов (ЛЭ)

Число адаптивных логических модулей (АЛМ)

oc_aquarius (микропроцессорное ядро SuperH-2)

6475

2590

oc_des_des3perf9 (криптографическое ядро DES3)

15670

6268

oc_ethernet (ядро EthernetMAC)

3548

1419

oc_oc8051 (микропроцессорное ядро 8051)

4115

1646

oc_or1k (микропроцессорное ядро OpenRISC)

7028

2811

ос_pci (интерфейс PCI)

3630

1452

oc_usb_funct (ядро USB 2.0)

4318

1727

Для тестирования были использованы FPGA компаний Altera и Xilinx с наибольшей логической емкостью и близкими параметрами. В таблице 2 приведены данные о выбранных для сравнения FPGA компаний Altera и Xilinx, а также о соответствующем программном обеспечении.

Табл. 2. Сравниваемые FPGA компаний Altera и Xilinx
Компании-изготовители

Altera

Xilinx

Тип FPGA

EP3S340-3

XC5VLX330-2

Программное обеспечение

Quartus II v8.0

ISE 9.2i SP4

Показатель скорости

Средний

Средний

Отдельно взятые проекты OpenCores слишком малы для реализации на крупных FPGA (таких как EP3S340 компании Altera и XCV5LX330 компании Xilinx). Для того чтобы максимально заполнить FPGA и смоделировать влияние увеличения сложности проекта на производительность, коэффициент заполнения и время компиляции, в FPGA было реализовано копирование проектов OpenCores (путем повторения копий ядер проекта до полного заполнения устройства, насколько это допускалось программным средством разработки). При анализе и копировании проектов были соблюдены следующие условия.
– Каждый блок копии проекта был подключен параллельно.
– Для уменьшения числа линий ввода/вывода при усложнении проекта была использована логика свертки (сдвиговые регистры на входе и выходе).
– Отсутствовали каналы с критичным временным режимом между ядрами и логикой свертки.
– Логика свертки обеспечила весьма небольшие аппаратные издержки (<3%); она была реализована путем параллельного подключения при отсутствии цепей с критичным временным режимом между ядрами и внутри самой логики.

Процесс анализа и копирования проектов детально описан в [2]. Проекты OpenCores были скопированы в FPGA столько раз, сколько допускалось емкостью прибора и программными средствами, поэтому при компиляции не было зафиксировано ошибок. Производительность, коэффициент заполнения и время компиляции FPGA фиксировались с интервалом в пять копий проекта OpenCores для каждого типа FPGA.

 

Преимущество в производительности FPGA Stratix III растет с усложнением проекта

На рисунке 1 по оси Y отложено отношение максимальной рабочей частоты FPGA Stratix III FPGA к максимальной рабочей частоте FPGA Virtex-5. На оси X показано количество ядер, скопированных для каждого из семи проектов OpenCores. Все отношения выше линии, соответствующей единице, что указывает на преимущество в производительности FPGA Stratix III.

Рис. 1. Преимущество в производительности FPGA Stratix III увеличивается с увеличением сложности проекта (степени заполнения кристалла FPGA)

На основе анализа рисунка 1 можно сделать следующие выводы.
– С увеличением числа копий проектов отношение максимальных рабочих частот увеличивается из-за более быстрого ухудшения производительности конкурирующего компонента. Преимущество в производительности FPGA Stratix III достигает 65%.
– Программное средство Quartus II использует эффективную архитектуру и возможности трассировки FPGA Stratix III для достижения максимального количества логических элементов с помощью наименьшего количества шагов в высокопроизводительных приложениях (архитектура семейства Stratix III описана в [3]).

 

Преимущество в коэффициенте заполнения кристалла FPGA Stratix III

Рисунок 2 и таблица 3 отражают максимальное число ядер, которое можно создать в FPGA.

Максимально возможное число копий проектов на FPGA Stratix III и Virtex-5
Рис. 2. Максимально возможное число копий проектов на FPGA Stratix III и Virtex-5

В отношении заполнения кристалла FPGA можно отметить следующие результаты сравнительного анализа:

  • FPGA Stratix III в среднем имеет на 46% больший коэффициент заполнения кристалла, чем у сравниваемого прибора.
  • Программное средство Quartus II позволяет достичь максимального заполнения кристалла адаптивными логическими модулями (АЛМ) для реализации логических функций, которые чрезвычайно эффективны из-за гибкости АЛМ.
Табл. 3. Максимальное число созданных копий и коэффициент заполнения FPGA Stratix III и Virtex-5

Проекты OpenCores

Число ядер Stratix III 3SL340

Число ядер Virtex-5 V5LX330

Коэффициент заполнения Stratix III 3SL340, %

Коэффициент заполнения Virtex-5 V5LX330, %

oc_aquarius

50

15

91,0

28,0

oc_des_des3perf9

30

10

100,0

43,9

oc_ethernet

115

90

99,0

89,0

oc_oc8051

85

70

94,0

83,0

oc_or1k

40

20

92,0

45,5

oc_pci

110

70

98,0

75,0

oc_usb_funct

80

80

95,0

93,0

 

Преимущество по времени компилирования проекта в FPGA Stratix III

В таблице 4 представлены данные по времени компилирования проекта, которое ограничено максимальным количеством ядер, размещенных в сравниваемых FPGA. Полученные результаты показывают, что компилирование FPGA Stratix III происходит значительно быстрее, чем FPGA Virtex-5.

Табл. 4. Сравнение времени компилирования FPGA Stratix III и Virtex-5

Проекты OpenCores

Число скопированных ядер проектов

Время компилирования, час

Отношение времени компилирования на Quartus II и ISE

ISE, 9.2i SP4

Quartus II, 8.0

oc_aquarius

15

6,53

0,99

6,6х

oc_des_des3perf9

10

4,11

1,24

3,3х

oc_ethernet

90

14,48

2,2

6,6х

oc_oc8051

70

16,35

2,85

5,7х

oc_or1k

20

5,98

1,64

3,6х

oc_pci

70

16,33

2,47

6,6х

oc_usb_funct

80

23,68

2,54

9,3х

Возникает вопрос: за счет чего обеспечивается высокая производительность, лучшая степень заполнения и меньшее время компилирования FPGA компании Altera? Ключевым фактором высокой производительности FPGA Stratix III является эффективная архитектура на основе адаптивных логических модулей (АЛМ) и технологии трассировки MultiTrack. Оба эти вопроса обсуждаются ниже.

 

Архитектура на основе адаптивных логических модулей

Используемый компанией Altera АЛМ состоит из 8-входовой таблицы перекодировки (look-up table — LUT), двух регистров и двух сумматоров (см. рис. 3). С помощью одного АЛМ можно реализовать все 6-входовые функции или выбрать 7-входовые функции. Кроме того, его можно разделить на LUT с меньшим числом входов для реализации двух независимых функций.

 

Блок-схема адаптивного логического модуля (АЛМ)
Рис. 3. Блок-схема адаптивного логического модуля (АЛМ)

+++++++++++++++++++++++++++++++++++++++++++++++++++

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++

Рис. 4. Сравнение АЛМ Stratix III и пары LUT-триггер Virtex-5

АЛМ — значительно более гибкий и, как следствие, эффективный элемент, чем логический элемент FPGA Virtex-5 (называемый также парой LUT-триггер). Логический элемент Virtex-5 состоит из 6-входовой LUT, схемы переноса и одного регистра (см. рис. 4). По сравнению с этой ячейкой, комбинационная логика АЛМ имеет восемь входов и поддерживает все 6-входовые функции, а также многие сочетания других функций, использующих два выхода АЛМ. Комбинационная логика логического элемента Virtex-5 — базовая 6-входовая LUT — также имеет 64 бита конфигурационной памяти и два выхода подобно АЛМ, но содержит только шесть входов и имеет ограничения при реализации более одной логической функции.
Хотя базовая 6-входовая LUT FPGA Virtex-5 способна реализовать две более мелкие функции, обычно она используется только как 6-входовая LUT. Поскольку LUT имеет только шесть входов, требуемое число общих входов устанавливает жесткие ограничения на типы комбинируемых функций. Эти ограничения делают редким случаем использование базовой 6-входовой LUT как двух 5-входовых LUT. В отличие от этого, два дополнительных входа АЛМ позволяют использовать его как две полностью функциональные 5-входовые LUT, что обеспечивает значительный выигрыш по занимаемой площади на кристалле. В таблице 5 представлено число общих входов, требующихся для нескольких комбинаций функций для логических элементов Stratix III и Virtex-5.

 

Табл. 5. Сравнение гибкости логических элементов FPGA Stratix III и Virtex-5

АЛМ Stratix III

LUT Virtex-5

Минимальное число общих входов АЛМ

Выход 1

Выход 2

5-вх. LUT

5-вх. LUT

5

2

5-вх. LUT

4-вх. LUT

4

1

5-вх. LUT

3-вх. LUT

3

0

4-вх. LUT

4-вх. LUT

4-вх. LUT

3-вх. LUT

2

3-вх. LUT

1

 

Например, АЛМ компании Altera способен реализовать две независимые 4-входовые функции (без общих входов), тогда как LUT Virtex-5 требует использования трех общих входов. На рисунке 5 показан другой пример: реализация с помощью АЛМ 5-входовой и 3-входовой функции без каких-либо общих входов, в то время как LUT Virtex-5 требует три общих входа. В конечном итоге это приводит к тому, что, используя ресурсы 6-входовых LUT, трудно найти для реализации на их основе функции, использующие менее шести входов.

 

 

+++++++++++++++++++++++++++++++++++++++++++++++++

Рис. 5. Реализация 5- и 3-входовых функций с помощью АЛМ Stratix III и пары LUT-триггер Virtex-5

В результате того, что имеется возможность разделения LUT с помощью АЛМ в FPGA Stratix III, в среднем упаковывается в 1,8 раза больше логических элементов, чем с помощью пары LUT-триггер в FPGA Virtex-5.

Трассировочная архитектура MultiTrack

Трассировочная архитектура MultiTrack, используемая в FPGA Stratix III, обеспечивает связь между различными кластерами логических элементов и характеризуется определенным количеством шагов (hop), необходимых для того, чтобы соединить один логический блок (logic array block — LAB) с другим. Чем меньше количество шагов и предсказуемее модель трассировки, тем выше производительность и легче оптимизация архитектуры с помощью инструментов САПР. Архитектура трассировки межсоединений MultiTrack обеспечивает большую доступность ко всем окружающим LAB с помощью меньшего числа связей, что позволяет увеличить производительность, снизить энергопотребление и оптимизировать упаковку логики. На рисунке 6 показано число шагов, требующихся для соединения LAB, находящегося в центре рисунка (выделен серым цветом), с окружающими LAB (для простоты рассматриваются только соединения длиной 4 LAB).

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Рис. 6. Трассировочная архитектура MultiTrack компании Altera
Табл. 6. Сравнение возможностей межсоединений FPGA Stratix III и Virtex-5

Число шагов

Число достижимых LAB/CLB

Число достижимых ЛЭ

Отношение числа ЛЭ Stratix III к ЛЭ Virtex-5

Stratix III

Virtex-5

Stratix III

Virtex-5

1

34

12

850

132

6,4

2

96

96

2400

1056

2,3

3

160

180

4000

1980

2,0

Всего

290

288

7250

3168

2,3

Примечание: 1 АЛМ = 2,5 ЛЗ, а НАВ = 10 АЛМ

В таблице 6 приводится сравнение эффективности соединений в FPGA Stratix III и Virtex-5 по количеству LAB/CLB, достижимых за данное число шагов. В FPGA Stratix III за один шаг достижимо намного большее число LAB(34), чем конфигурируемых логических блоков (Configurable Logic Block — CLB) в Virtex-5. Если при подсчете количества логических блоков учитывать еще и большую эффективность АЛМ, то результат будет даже более предпочтительным для Stratix III. Поскольку LAB эквивалентен 25-ти логическим элементам на основе 4-входовой LUT в сравнении с 11-ю логическими элементами Virtex-5, подсчет количества логических схем с учетом коэффициента 1,8, достигаемого с помощью данного числа шагов, показывает, что логическая емкость FPGA Stratix III оказывается значительно выше.

 

Заключение

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

Целью ресурса OpenCores является объективная и беспристрастная оценка архитектуры и программных инструментов разработки. Компания Altera провела сравнительный анализ двух типов FPGA на основе типовых проектов OpenCores. Результаты этого анализа, а также RTL-коды проектов, установочные файлы для тестирования и др. доступны для всех заказчиков, которые хотели бы ими воспользоваться.

Результаты оценки показали, что преимущества FPGA Stratix III в части производительности, коэффициента заполнения и времени компилирования увеличиваются с ростом сложности проекта. Это объясняется оптимальной архитектурой FPGA, которую с успехом использует программный инструмент разработки Quartus II.

С появлением следующего поколения FPGA компании Altera — 40-нм семейства Stratix IV — преимущества архитектуры, использующей АЛМ и систему трассировки MultiTrack, позволят достичь еще более высокой производительности и степени заполнения кристалла FPGA, а также уменьшения времени компилирования проекта.

Литература

  1. How to perform meaningful benchmarks on FPGAs from different vendors, Seyi Verma//www.pldesignline.com
  2. OpenCore Stamping and Benchmarking Methodology//www.altera.com
  3. Stratix III Device Family Architecture//www.altera.com
Оставьте отзыв

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