
ПЛИС Xilinx семейства UltraScale+ и перспективы их применения
Введение
Ранние анонсы характеристик ПЛИС теперь считаются обычной практикой для производителей этой элементной базы. Освоение новых технологических процессов становится все более затратным мероприятием в связи с переходом к меньшим нормам, и изготовители элементной базы стремятся заранее привлекать внимание к новой продукции, на ранних стадиях ее жизненного цикла. В настоящее время технологический узел 14–16 нм для контрактного производства освоен компаниями Intel и TSMC. На мощностях TSMC и выпускается продукция Xilinx, причем по мере появления очередных поколений технологических процессов они используются для выпуска новых семейств ПЛИС.
В конце февраля 2015 года на сайте Xilinx опубликованы предварительные сведения о новом поколении программируемых микросхем, названном UltraScale+. Предыдущее поколение, первые образцы которого уже выпущены с применением норм 20 нм, именуется UltraScale, и название очередного семейства призвано отразить преемственность архитектуры, что и наблюдается в описании. Текущее состояние продукции Xilinx показано на рис. 1. Следует особо отметить, что появление технической документации на ПЛИС не означает возможности заказа данной продукции или даже гарантированных сроков возможности такого заказа, поскольку начало серийного выпуска столь высокотехнологичной продукции в большой степени зависит от мощностей контрактного производителя — компании TSMC. В настоящий момент Xilinx предоставляет все заявленные ПЛИС серии 7 (28 нм). Принимаются заявки на поставки образцов отдельных наименований ПЛИС UltraScale (20 нм). Соответственно, рассчитывать даже на инженерные образцы UltraScale+ в ближайшее время не следует, и планирование применения данной элементной базы в проектах необходимо отложить до появления официального подтверждения о возможностях поставки таких ПЛИС в гарантированные сроки.
В текущей ситуации важно осваивать современные методики проектирования и оценивать перспективы, которые откроются после появления образцов и коммерческих вариантов микросхем новых семейств. Поскольку кардинальных изменений архитектуры при переходе от UltraScale к UltraScale+ не наблюдается, наработанные методики проектирования можно быстро перенести на новую элементную базу.
Основные характеристики ПЛИС UltraScale+
Семейство UltraScale+ следует назвать скорее эволюционным развитием предыдущего семейства UltraScale. Архитектура основных компонентов ПЛИС не изменилась, а максимальный логический объем даже уменьшился, если сравнивать с ПЛИС Virtex UltraScale объемом 4,4 млн логических ячеек, которая явно предназначена для прототипирования микросхем. В технических публикациях Xilinx [1] обращается внимание на существенное улучшение соотношения производительность/потребление, а также на дальнейшее увеличение количества трассировочных ресурсов, что должно помочь в достижении высоких показателей тактовой частоты проектов и коэффициента заполнения кристалла. Что касается цены на новые ПЛИС, можно указать, что на протяжении всей истории развития этих микросхем относительные показатели производительность/цена и объем/цена постоянно улучшались, а потому при переходе к новому поколению ПЛИС нужно ожидать и снижения общей стоимости изделий, хотя говорить о конкретных уровнях цен на данном этапе совершенно преждевременно.
Несколько слов стоит сказать об анализе того, что тактовые частоты основных компонентов в последнее время существенно не улучшаются. Является ли это недостатком микросхем Xilinx или же, возможно, объективным пределом частоты, который наметился в области программируемой логики? Обращаясь к разъяснениям Xilinx, выделим тот факт, что в процессе проектирования разработчик неминуемо ухудшает показатели проекта относительно предельно достижимых, которые и указаны в документации, как, например, «системная тактовая частота». Поэтому такие привлекательные «маркетинговые» числа, которые можно получить, умножив системную тактовую частоту на количество ресурсов, являются завышенными в несколько раз. Прежде всего, в реальных проектах обычно не удается добиться трассировки кристалла со 100%-ным или близким к этому заполнением, а тактовая частота оказывается ниже системной частоты в несколько раз, причем для этого есть совершенно объективные основания. В качестве близкой аналогии можно привести программы для настольных компьютеров, которые, разумеется, не выполняются с частотой, равной частоте процессора, умноженной на количество ядер. Поэтому разработчик систем на базе ПЛИС, по сути, добивается в первую очередь минимизации потерь частоты для своего проекта. Если сделать акцент на повышение системной тактовой частоты (от нее и происходит уход вниз), то большой кристалл и недостаточные трассировочные ресурсы быстро ликвидируют этот положительный эффект. Вот почему важнее сделать упор на развитие трассировочных ресурсов, а также алгоритмов размещения и трассировки. Именно на это обращает внимание Xilinx, в том числе применяя в новой САПР Vivado специальные алгоритмы оптимизации размещения, учитывающие возможности новых поколений FPGA.
Тем не менее нельзя не отметить целый ряд новых аппаратных блоков, существенно улучшающих функциональные возможности проектов. Самым заметным аппаратным нововведением стала память UltraRAM, представляющая собой совершенно новый тип компонента, ранее не встречавшийся в FPGA Xilinx. Это блоки синхронной статической двупортовой памяти с организацией 4096×72 бита (то есть в 8 раз большего объема по сравнению с Block RAM). Порты для доступа имеют, однако, общий вход тактового сигнала, а потому с помощью UltraRAM невозможно построить схему для передачи данных между тактовыми регионами. Однако от нового типа памяти этого и не требуется. На рис. 2 показаны основные типы памяти, используемые в ПЛИС Xilinx (включая и внешнюю память в качестве сравнения).
На рис. 2 можно видеть, что память UltraRAM предлагает самый большой объем среди всех типов памяти, находящихся на кристалле ПЛИС. При работе с проектами часто оказывается, что блочная память, обладая прекрасными характеристиками производительности, имеет все же недостаточный объем для целого ряда задач. В проектах малого размера ее удобно использовать в качестве памяти процессорных ядер, а в ПЛИС объемом сотни тысяч логических ячеек — для буферизации видео или многоканальных цифровых потоков. В подобных случаях при всей полезности применения и очень высокой суммарной пропускной способности блочная память располагает довольно малым объемом, что не всегда позволяет в полной мере задействовать возможности вычислительных ресурсов ПЛИС. Вот почему для хранения больших объемов данных добавлен совершенно новый тип памяти, пригодный для создания более крупных массивов путем объединения и каскадирования нескольких модулей UltraRAM. Объем этой памяти находится в пределах от 18 до 432 Мбит, что позволяет полностью размещать на кристалле ПЛИС такие объекты, как, например, содержимое экрана с разрешением Full HD (1920×1080) или 4K2K (3940×2160). Причем данные распределены по множеству отдельных модулей, а значит, можно организовать параллельную цифровую обработку для фрагментов изображения.
Основные характеристики микросхем UltraScale+ приведены в таблицах 1, 2.
|
ПЛИС общего назначения |
ПЛИС, оптимизированные |
|||||
XCKU3P |
XCKU7P |
XCKU11P |
XCKU15P |
XCKU5P |
XCKU9P |
XCKU13P |
|
Логические ячейки, тыс. |
205 |
403 |
523 |
915 |
380 |
477 |
597 |
Память UltraRAM, Мбайт |
18 |
27 |
22,5 |
36 |
18 |
0 |
31,5 |
Блочная память, Мбайт |
5,1 |
11 |
21,1 |
34,6 |
16,9 |
32,1 |
26,2 |
Секции DSP |
1056 |
1728 |
2928 |
1968 |
1824 |
2520 |
3528 |
PCI Express |
2 |
2 |
4 |
5 |
1 |
0 |
0 |
GTH 16,3 Гбит/с |
16 |
24 |
32 |
44 |
0 |
28 |
28 |
GTY 32,75 Гбит/с |
0 |
0 |
20 |
32 |
16 |
0 |
0 |
Макс. кол-во выводов |
208 |
416 |
416 |
572 |
208 |
208 |
208 |
|
XCVU3P |
XCVU5P |
XCVU7P |
XCVU9P |
XCVU11P |
XCVU13P |
Логические ячейки, тыс. |
690 |
1051 |
1379 |
2069 |
2147 |
2863 |
Память UltraRAM, Мбайт |
90 |
132,2 |
180 |
270 |
324 |
432 |
Блочная память, Мбайт |
25,3 |
36 |
50,6 |
75,9 |
70,9 |
94,5 |
Секции DSP |
2280 |
3474 |
4560 |
6840 |
8928 |
11 904 |
PCI Express |
2 |
4 |
4 |
6 |
3 |
4 |
150G Interlaken |
3 |
4 |
6 |
9 |
9 |
12 |
100G Ethernet |
3 |
4 |
6 |
9 |
6 |
8 |
GTY 32,75 Гбит/с |
40 |
80 |
80 |
120 |
96 |
128 |
Макс. кол-во выводов |
520 |
832 |
832 |
832 |
624 |
832 |
По данным таблиц 1 и 2 можно сделать некоторые замечания. Соотношение основных ресурсов семейств KintexUS+ и VirtexUS+ таково, что Kintex, как и в предыдущих семействах, выглядит привлекательным для задач цифровой обработки сигналов, имея больше секций DSP на одну логическую ячейку. Семейство VirtexUS+ ориентировано на коммуникационные приложения с высокой суммарной пропускной способностью аппаратных приемо-
передатчиков, а также на прототипирование (поскольку именно в Virtex наблюдается максимальное абсолютное количество ресурсов). В новом поколении FPGA поставлен очередной рекорд по количеству секций DSP (11904) и приемопередатчиков (128) — в микросхеме XCVU13P. На рис. 3 показано соотношение между секциями DSP и логическими ячейками для KintexUS+ и VirtexUS+.
Семейство Zynq UltraScale+
Кроме собственно FPGA, по технологии 16 нм будет выпускаться и новое поколение семейства Zynq, в терминологии Xilinx называемое «полностью программируемая система на кристалле», отражая тот факт, что эти ПЛИС представляют собой не просто процессоры с программируемой периферией, а полноценную FPGA, которая среди аппаратных ядер имеет и аппаратную процессорную подсистему ARM-класса.
Микросхемы Zynq не были выпущены для поколения ПЛИС по 20‑нм техпроцессу. Предыдущий вариант, Zynq‑7000, относится к 28‑нм серии 7. В нем использовалось аппаратное ядро ARM Cortex-A9 с двумя 32‑разрядными ядрами. Новые продукты отнесены к классу МПСнК (многопроцессорная система на кристалле). Различие между терминами «мультипроцессорная» (multi-core) и «многопроцессорная» (many-core), принятое в микроэлектронной отрасли, заключается в том, что в первом случае имеется в виду набор одинаковых ядер, объединенных на кристалле тем или иным образом (локальными связями, общей шиной и т. д.). Примером мультипроцессорных систем являются современные процессоры Intel Core или ARM Cortex-A. Следующий шаг, many-core, означает, что в системе находятся процессоры с различными архитектурами, оптимизированные для выполнения соответствующих задач. Это усложняет вопросы проектирования, однако позволяет добиться большей эффективности в использовании вычислительных ресурсов.
Многопроцессорная система в ZynqUS+ состоит из следующих компонентов:
- 4‑ядерный 64‑битный процессор общего назначения ARM Cortex-A53;
- 2‑ядерный 32‑битный процессор для задач реального времени ARM Cortex-R5;
- графический процессор ARM Mali‑400MP;
- видеокодек H.265, способный обрабатывать потоки Full HD (60 кадров/с) или 4K2K (15 кадров/с).
Основные особенности процессорной системы ARM в ПЛИС Zynq UltraScale+ показаны на рис. 4. В следующем поколении МПСнК поддерживается подход «свой процессор для каждого класса задач». Действительно, набор из процессоров общего назначения для прикладных программ, процессоров реального времени для ответственных применений и графического сопроцессора является практически стандартным для современных вычислительных систем (например, высокопроизводительных планшетов). В случае ZynqUS+ к этому набору можно добавить матрицу программируемых ячеек, которые способны выступать в качестве программируемых ускорителей. Важно, что пиковая производительность такого ускорителя достигает единиц TMAC/s (триллионов операций «умножение с накоплением»), что на несколько порядков превосходит возможности даже 4‑ядерного ARM.
Основные характеристики МПСнК Zynq UltraScale+ приведены в таблицах 3–5. Семейство разделено на три платформы, ориентированные на задачи управления (Control), обработки видео (Vision) и работы с сетью (Network). Платформы различаются соотношением и самим набором основных ресурсов — так, у микросхем, ориентированных на работу с сетью, отсутствует видеокодек, однако имеются аппаратные ядра Interlaken и 100G Ethernet.
|
Zynq UltraScale+ МПСнК |
Zynq-7000 |
|||
Техпроцесс |
16 нм FinFET+ TSMC |
28 нм |
|||
Процессорное ядро общего назначения |
4-ядерный ARM Cortex-A53 MPCor. Частота до 1,3 ГГц |
2-ядерный ARM Cortex-A9 MPCore. |
|||
Процессорное ядро для задач реального времени |
2-ядерный ARM Cortex-R5 MPCore. Частота до 600 МГц |
– |
|||
Графический процессор |
Mali-400MP до 466 МГц |
– |
|||
Управление питанием |
Несколько доменов питания. Индивидуально контролируемые области |
– |
|||
Поддержка памяти |
DDR4, LPDDR4, DDR3, DDR3L, LPDDR3, 2×Quad-SPI, NAND |
DDR3, DDR3L, DDR2, LPDDR2, |
|||
Высокоскоростные интерфейсы |
2×USB 3.0, SATA 3.0, DisplayPort, 4×Tri-mode Gigabit Ethernet, PCIe Gen2×4 |
– |
|||
Интерфейсы общего назначения |
2×USB 2.0, 2×SD/SDIO, 2×UART, 2×CAN 2 B, 2×I2C, 2×SPI, 4×32 bit GPIO |
2×USB 2.0 (OTG), 2×Tri-mode Gigabit Ethernet, 2×SD/SDIO |
|||
Системный монитор |
10-бит, 1 МГц — контроль напряжения, тока и температуры |
– |
|||
Характеристики матрицы логических ячеек |
|||||
|
Управление (Smarter Control) |
Видео |
Сеть |
На базе |
На базе |
Логические ячейки, тыс. |
155 |
405 |
920 |
85 |
444 |
Секции DSP |
728 |
1728 |
3528 |
220 |
2020 |
Распределенная память |
3,6 Мбит |
6,2 Мбит |
11 Мбит |
|
|
Блочная память |
7,7 Мбит |
11,2 Мбит |
35,4 Мбит |
560 кбайт |
3020 кбайт |
Блоки UltraRAM |
13,5 Мбит |
27 Мбит |
128 Мбит |
– |
– |
Интерфейсы PCI Express |
Gen4×8; Gen3×16 |
Gen2×4 |
Gen2×8 |
||
Видеокодеки |
1 |
1 |
– |
– |
– |
150G Interlaken |
– |
– |
4 |
– |
– |
100G Ethernet MAC |
– |
– |
4 |
– |
– |
Приемопередатчики MGT |
20 при 16 Гбит/с |
28 при 16 Гбит/с |
76 при 33 Гбит/с |
4 при 6,6 Гбит/с |
16 при 12,5 Гбит/с |
Блоки AMS (Analog Mixed Signal) |
Системный монитор — 10 бит, 1 МГц АЦП, 17 дифференциальных входов |
XADC — 2×12 бит, 1 МГц АЦП, 17 дифференциальных входов |
|
ZU2EG |
ZU3EG |
ZU4EV |
ZU5EV |
ZU7EV |
Логические ячейки, тыс. |
83 |
103 |
153 |
204 |
403 |
Триггеры, тыс. |
94 |
118 |
176 |
234 |
461 |
Распределенная память, Мбит |
1,3 |
1,7 |
2,7 |
3,6 |
6,2 |
Блочная память, Мбит |
5,3 |
7,6 |
4,5 |
5,1 |
10,9 |
Память UltraRAM, Мбит |
– |
– |
13,5 |
18 |
27 |
Секции DSP |
240 |
360 |
728 |
1056 |
1728 |
Видеокодек |
– |
– |
1 |
1 |
1 |
PCI Express |
– |
– |
2 |
2 |
2 |
|
ZU6EG |
ZU9EG |
ZU15EG |
ZU11EG |
ZU17EG |
ZU19EG |
Логические ячейки, тыс. |
375 |
480 |
597 |
522 |
740 |
914 |
Триггеры, тыс. |
429 |
548 |
682 |
597 |
847 |
1045 |
Распределенная память, Мбит |
6,9 |
8,8 |
11 |
8,9 |
7,8 |
9,6 |
Блочная память, Мбит |
25 |
32 |
26,1 |
21,1 |
28 |
34,6 |
Память UltraRAM, Мбит |
– |
– |
31,5 |
22,5 |
28,7 |
36 |
Секции DSP |
1972 |
2520 |
3528 |
2928 |
1590 |
1968 |
Видеокодек |
– |
– |
– |
– |
– |
– |
PCI Express |
– |
– |
– |
4 |
4 |
5 |
150G Interlaken |
– |
– |
– |
2 |
2 |
4 |
100G Ethernet |
– |
– |
– |
1 |
2 |
4 |
В целом эволюция платформы Zynq проиллюстрирована на рис. 5. Можно видеть, что процессорная часть существенно усилена: от двухъядерного 32‑разрядного процессора произведен переход к 4‑ядерному 64‑разрядному. Добавленный графический сопроцессор и видеокодек однозначно ориентируют новое поколение Zynq на работу с видеопотоками. В сочетании с программируемыми ресурсами на базе этих микросхем можно построить высокопроизводительную систему обработки видео, включающую не только его захват и воспроизведение, но и анализ изображения в реальном времени (например, для систем безопасности, автомобильной электроники и мобильных роботов различного назначения).
Заключение
Компания Xilinx в очередной раз продемонстрировала своевременное освоение новых технологических процессов для выпуска нового поколения ПЛИС. Новые семейства представляют интерес ввиду наличия новых аппаратных ядер, что особенно заметно на примере Zynq.
- Santarini M. Xilinx 16nm UltraScale+ Devices Yield 2-5X Performance/Watt Advantage.
- UltraScale Architecture.