Обзор архитектуры ПЛИС семейства Virtex-5

№ 9’2006
PDF версия
Казалось бы, относительно недавно фирмой Xilinx были анонсированы высокопроизводительные ПЛИС семейства Virtex-4, выполненные по 90-нанометровому техпроцессу, и вот уже появляется новейшее семейство в серии Virtex, выполненное по 65-нанометровому техпроцессу.

Необходимо напомнить, что первые сообщения о работах фирмы Xilinx над переходом на 65-нанометровый техпроцесс появились еще в 2005 году. Уже тогда можно было предположить, что речь идет о дальнейшей модификации серии Virtex. Однако изучение предварительных характеристик анонсированного семейства вызывает желание проанализировать их, не дожидаясь полной технической информации и появления поддержки всех подсемейств в САПР ISE (в настоящее время в ISE 8.2 доступны устройства Virtex-5LX). Необходимо отметить два момента. Во-первых, производители ПЛИС (в первую очередь Xilinx) в последнее время весьма оперативно осваивают новые технологические процессы. Можно повториться, что речь идет об устройствах, выполненных с соблюдением технологических норм 65 нм с медными проводниками и напряжением питания ядра 1,0 В. Достаточно небольшое число производителей полупроводниковых устройств имеет в своем активе подобные технологии, и тот факт, что ПЛИС практически не отстают от заказных микросхем класса high-end, весьма показателен. Во-вторых, после того пакета оригинальных архитектурных решений, который появился в семействе Virtex-4 (архитектура ASMBL, разделение на подсемейства, аппаратные блоки Ethernet, блоки цифровой обработки сигналов DSP48), от 65-нанометрового техпроцесса можно было ожидать скорее некоторого улучшения характеристик уже существующей архитектуры. Однако изменения оказались не просто достойными внимания, а весьма существенными.

Итак, напомним еще раз устройство ПЛИС с архитектурой FPGA. Основой этих микросхем является матрица логических ячеек (Configurable Logic Block, CLB), каждая из которых состоит из логического генератора (таблицы истинности, Look-Up Table, LUT) и триггера. Логические ячейки окружены блоками ввода/вывода, непосредственно подключаемыми к выводам ПЛИС. С учетом современных тенденций в данной области на кристалл помещаются также аппаратные блоки, которые часто используются в практических проектах, но весьма дороги для реализации на базе логических ячеек. Cегодня это блочная память с синхронным интерфейсом и аппаратные умножители независимых целочисленных операндов (часто используемые в алгоритмах цифровой обработки сигналов).

Программируемые логические генераторы

Практически стандартным решением для логического генератора являлась 4-входовая таблица истинности. Ее очевидная реализация — блок памяти 16×1, непосредственно хранящий все возможные варианты состояния выхода в зависимости от комбинаций входных сигналов. Отличительной особенностью FPGA Xilinx является возможность конфигурирования этого блока как обычной синхронной памяти с организацией 16×1, или в виде 16-разрядного сдвигового регистра. Такое решение несколько увеличивает задержки распространения сигналов, и в последних семействах возможностью подобного универсального конфигурирования обладает только половина логических генераторов. Собственно говоря, какие-то изменения в LUT автором статьи ожидались чуть ли не в последнюю очередь. Однако взглянем на рис. 1.

Рис. 1. Структура логической ячейки ПЛИС Virtex-5

Итак, главное изменение более чем кардинально. Логический генератор теперь представляет собой 6-входовую таблицу истинности! Соответственно, она конфигурируется как 32-разрядный сдвиговый регистр или блок памяти с организацией 64×1. То есть добавление новых входов произошло действительно за счет увеличения объема конфигурационной памяти для таблиц истинности (причем в 4 раза!), а не за счет добавления мультиплексоров, что в ряде случаев позволяет получать в пределах логической ячейки устройства комбинаторной логики с числом входов до 8. Однако комбинация «генератор + мультиплексоры» позволяет реализовать не всякую логическую функцию, в отличие от физически увеличенного объема памяти для хранения таблиц истинности.

Значение данного нововведения трудно переоценить. Прежде всего, для сложных проектов существенно уменьшается число последовательно соединяемых логических ячеек, реализующих функцию для большого числа входов. Экономия ячеек при этом не так важна, как важен тот факт, что в цепях комбинаторной логики оказывается в среднем в полтора раза меньше ячеек, что соответственно во столько же раз уменьшает задержку распространения сигнала. Поскольку период тактового сигнала определяется максимальной задержкой внутри кристалла, очевидно, что уменьшение задержки распространения позволяет увеличить тактовую частоту проекта. Разумеется, данный вопрос требует дополнительного исследования и проведения тестов для типичных цифровых узлов, но уже сейчас становится ясно, что имеют место и количественное (65 нм вместо 90), и качественное улучшение (меньшее число последовательно включенных ячеек в цепях распространения сигнала).Что касается увеличения числа входов, то здесь важно обратить внимание на следующий факт. Добавление одного входа увеличивает объем памяти логического генератора в 2 раза. Тем не менее, рост производительности далеко не всегда пропорционален числу входов (многим цифровым узлам достаточно 4 входов), тем более он не пропорционален объему памяти, который возрастает в геометрической прогрессии, а не в арифметической. Соответственно, существует оптимальное число входов, которое при приемлемых затратах на реализацию LUT обеспечивает достаточную их функциональность. Долгое время стандартным значением было 4 входа, и переход к 6 входам заслуживает самого пристального внимания. Достаточно сравнить такое решение, к примеру, с 5-входовыми таблицами истинности, которые требуют в 2 раза меньше памяти, но имеют всего на один вход меньше. Насколько значимым окажется выигрыш от добавления одного входа? Будут ли цифровые узлы, в полной мере задействующие возможности новых ПЛИС, достаточно эффективными и востребованными в практических проектах, чтобы 6-входовые таблицы истинности оправдали свое применение? Можно подчеркнуть, однако, что серия Virtex в последнее время концентрирует в себе наиболее производительные решения в области цифровой схемотехники и системной архитектуры, поэтому решение конструкторов Xilinx остановиться именно на 6-входовых LUT вполне оправданно. Кроме того, FPGA состоит не только из конфигурационной памяти таблиц истинности, поэтому удельный вес дополнительных ресурсов в конечном итоге не так уж велик. Достаточно посмотреть на соотношение распределенной памяти (ее объем соответствует значениям, хранящимся в LUT) и общего объема конфигурационного потока, загружаемого в ПЛИС. Нетрудно убедиться, что «учетверение» коснулось относительно небольшого участка кристалла.

Какие конкретно выгоды получает разработчик от 6-входовой LUT? Обратим внимание на то, что базовая организация блочной памяти соответствует 18-разрядным данным. Такую же разрядность входных операндов имеют и выделенные умножители современных FPGA. Соответственно, программируемые логические ресурсы часто решают задачи управления высокопроизводительными блоками DSP путем формирования вспомогательных сигналов, включающих и выключающих счет, переключающих режимы и т. п. Часто это происходит именно на основании анализа значений операндов, циркулирующих в блочных ресурсах. Итого, для вычисления некоторой логической функции от 18-разрядного числа требуется не менее пяти 4-входовых LUT, или всего три 6-входовых! Для сравнения: три 5-входовые LUT имеют только 15 входов. Таким образом, новая организация логических генераторов вполне обоснована. К этому можно добавить, что для объединения выходов пяти 4-входовых LUT в общем случае недостаточно еще одной 4-входовой ячейки (!), и в ряде случаев это может приводить к формированию чрезмерно длинных цепочек из логических ячеек и цепей трассировки. Данная проблема не фатальна (к тому же в большинстве случаев САПР удается решить задачу объединения выходов LUT с помощью встроенных мультиплексоров логических ячеек), но тем не менее 6-входовые LUT даже формально могут сформировать результат вычисления комбинаторного выражения с помощью меньшего числа уровней.

Работа с семейством Virtex-5 стала возможной в САПР ISE 8.2, которая уже выпущена (несмотря на то, что сами ПЛИС пока недоступны). Для иллюстрации рассуждений, приведенных выше, рассмотрим пример реализации 18-разрядного компаратора двоичного значения (устройство, выдающее на выходе логическую единицу, если комбинация на входе равна некоторой константе). Подобные устройства достаточно характерны для целого ряда цифровых устройств, в том числе для цифровой обработки сигналов и конфигурируемых процессоров. Оба этих класса устройств способны эффективно использовать 18-разрядную память, и уменьшение задержек при операциях с числами такой разрядности весьма положительно сказывается на их характеристиках.

Итак, тестирование 18-разрядного устройства сравнения с константой дает предсказуемые результаты: ПЛИС Virtex-4 требует для его реализации 6 LUT, тогда как Virtex-5 — всего 4. Кроме того, задержка распространения сигнала (maximum pin delay) также существенно уменьшилась: с более чем 3 нс у Virtex-4 до 1,075 нс у Virtex-5. Как уже отмечалось, этот эффект достигается не только за счет экстенсивных мер (перехода к 65-нанометровому техпроцессу), но и за счет более компактной реализации логических функций. Тестирование возможностей Virtex-5 в более сложных проектах с большим числом сложных логических выражений также подтверждает, что наблюдается 25–30%-ное уменьшение числа логических уровней.

На рис. 2 проиллюстрирована проблема, связанная с увеличением числа уровней логики. Показано распространение сигнала от выхода первого триггера к входу второго. При этом сигнал последовательно проходит через 2 LUT, получая в каждой задержку tπ. Кроме того, при прохождении по трассировочным цепям добавляется задержка tтр. Чем большее число LUT будет вовлечено в процесс обработки, тем больше времени придется выделить на распространение сигнала до входа следующего триггера. Время распространения сигнала в самой длинной цепи определяет минимально допустимый период тактового сигнала, следовательно, даже для ПЛИС с высокой максимальной тактовой частотой возможна ситуация, когда слишком сложные логические выражения приведут к использованию большого числа последовательно соединяемых LUT, что сильно снизит реальную частоту проекта.

Рис. 2. Иллюстрация к проблеме увеличения числа уровней логики

Можно также обратить внимание на материалы сайта Xilinx, иллюстрирующие переход к памяти, состоящей из 64 ячеек вместо 16. Для предыдущих семейств требовалось 4 блока, объединяемых к тому же двумя уровнями мультиплексоров (что вносило дополнительную задержку и вызывало необходимость использования дополнительных мультиплексоров). В семействе Virtex-5 блок памяти 64×1 реализуется в единственной LUT, что исключает проблемы, связанные с объединением блоков. Таким образом, «минимальный размер» распределенной памяти увеличился ровно в 4 раза.

Блочная память

Изменения коснулись не только распределенной (рис. 3), но и блочной памяти (рис. 4). Объем базового блока увеличен ровно в 2 раза и составляет теперь 36 Кбит. Тем не менее, каждый блок может быть использован как два независимых блока по 18 Кбит. Дополнительно в составе блока присутствуют цепи, облегчающие построение модулей FIFO (очередей) и устройства коррекции ошибок. Логика FIFO обеспечивает флаги «FIFO полон», «FIFO пуст», а также флаги «FIFO почти полон» и «FIFO почти пуст» с программируемыми порогами срабатывания. Память может использоваться с шириной данных от 1 до 72 разрядов. В 72-разрядном варианте доступен только так называемый «простой двухпортовый режим», в котором один порт используется для чтения, а другой — для записи. В остальных вариантах доступен «истинный двухпортовый режим», при котором оба порта могут использоваться как для чтения, так и для записи. Частота работы блочной памяти достигает 550 МГц, а ее объем10 Мбит.

Рис. 3. Изменения в реализации распределенной памяти
Рис. 4. Блочная память

Качественные изменения, произошедшие в способе организации блочной памяти, соответствуют общей тенденции увеличения пиковой пропускной способности интерфейсов обмена между памятью и арифметическими устройствами. Не секрет, что в микропроцессорной технике пропускная способность подсистемы памяти является одной из важнейших характеристик, и слишком низкое ее значение может существенно ухудшить показатели системы даже при наличии высокопроизводительного процессора. В этой связи устройства на базе ПЛИС находятся в достаточно выгодной ситуации, поскольку каждый из блоков внутренней памяти доступен независимо, к тому же большое количество программируемых выводов позволяет реализовать параллельный доступ к нескольким устройствам внешней памяти. По некоторым оценкам, суммарная пропускная способность устройств Virtex-5 составляет 389 Гбит/с! Это весьма впечатляющая цифра, позволяющая позиционировать ПЛИС этого семейства в качестве аппаратной платформы для высокопроизводительных параллельных вычислений. Вообще говоря, в подобном качестве успешно выступали и ПЛИС Virtex-4, однако по оценке производителя они имеют в 4,4 раза меньшую пропускную способность памяти.

Аппаратные умножители — блоки DSP48E

С блочной памятью обычно ассоциированы аппаратные умножители. Точнее говоря, такое соответствие наблюдалось в семействах Virtex-II/II Pro, где число блоков памяти было строго равно числу умножителей. Подразумевалось, что память хранит коэффициенты цифровых фильтров. Однако с увеличением уровня интеграции и распространением софтпроцессоров появилась возможность реализовать на том же кристалле не только блоки цифровой обработки сигналов, но и управляющий процессор (например, MicroBlaze), который также требует памяти для хранения программы и данных. Поэтому по мере увеличения общей емкости ПЛИС количество блоков памяти растет быстрее, чем количество блоков DSP.

Структурная схема блока цифровой обработки сигналов показана на рис. 5. В этом блоке также были сделаны изменения. Прежде всего, вместо умножения двух 18-разрядных операндов стало доступно перемножение 25-разрядного числа на 18-разрядное. Аккумулятор заменен 48-разрядным сумматором-вычитателем. Введена возможность каскадирования с получением 96-разрядного результата (что достаточно важно для ряда современных алгоритмов корреляционной обработки). Кроме того, возможно каскадирование блоков DSP с применением выделенных трассировочных ресурсов в пределах одной колонки. Наконец, добавлен независимый 48-разрядный вход и возможность суммирования трех операндов в пределах одного блока. Остается упомянуть повышение тактовой частоты до 550 МГц (500 МГц у Virtex-4) и примерно 40%-ное снижение потребляемой мощности по сравнению с тем же Virtex-4. Таким образом, можно сказать, что кроме очевидных преимуществ современного технологического процесса имеют место качественные улучшения, связанные с применением новой архитектуры блока.

Рис. 5. Блок DSP48E

Трассировочные ресурсы

Программируемые соединения различных типов, имеющиеся в составе любой ПЛИС, на первый взгляд могут казаться сугубо вспомогательными устройствами. Действительно, все оценки производителей, касающиеся программируемых устройств, используют в основном сведения о числе логических ячеек, реже уточняется объем блочной памяти и прочих выделенных ресурсов. Программируемые соединения при этом упоминаются редко, и считается, что их количество вполне достаточно для формирования на кристалле различных цифровых узлов. Отчасти ситуация обстоит именно так, хотя можно отметить, что практически никогда не удается получить 100%-ного заполнения кристалла FPGA ввиду невозможности провести соединения со всеми без исключения логическими ячейками (не хватит именно свободных трассировочных ресурсов). Сравнительные характеристики проектов на базе дешевой серии Spartan и высокопроизводительной Virtex также подтверждают, что количественный и качественный состав трассировочных линий оказывают прямое влияние на характеристики проектов.

В публикациях, посвященных архитектуре семейства Virtex и сравнительному анализу архитектур основных семейств ПЛИС Xilinx, рассматривались вопросы организации трассировочных ресурсов и типов этих ресурсов. В частности, одним из наиболее эффективных видов трассировочных линий являются короткие локальные связи, соединяющие соседние ячейки. Очевидно, что соединить близко расположенные ячейки по принципу «каждый с каждым» невозможно, и соединения в пределах некоей области могут выполняться путем последовательной передачи сигнала от ячейки к ячейке. В англо-язычной документации для такого элементарного шага используется термин hop. На рис. 6 показана схема соединений базовой ячейки (показана в центре) с соседними, причем цветами выделены ячейки, достижимые за 1, 2 и 3 шага (hops) локальных соединений.

Рис. 6. Схема расположения логических ячеек, доступных за различное число шагов

Изменения в схеме трассировочных ресурсов поясняются достаточно простой формулировкой: diagonal routing. Иными словами, в дополнение к вертикальным и горизонтальным трассировочным линиям, в Virtex-5 предусмотрены диагональные соединения между логическими ячейками. Это весьма интересное решение, которое к тому же обеспечивает существенно лучшие характеристики компактных цифровых узлов (до сотни ячеек). В таблице 1 приведено количество CLB, доступных за 1, 2 и 3 шага трассировки для ПЛИС Virtex-4 и Virtex-5. Видно, что основной выигрыш Virtex-5 получил для двух шагов: вместо 68 ячеек доступно 96 — почти в полтора раза больше. Такое решение существенно повышает привлекательность нового семейства в реальных проектах среднего и большого размера, поскольку в синтетических тестах, обычно имеющих небольшой объем, проблемы трассировки ресурсов зачастую в явном виде не проявляются.

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

Блоки формирования тактового сигнала

При работе на высоких частотах формирование тактового сигнала становится весьма ответственной задачей. Кроме задачи быстрого и одновременного распространения тактового сигнала по всему кристаллу требуется решить задачу устранения джиттера, который при таких небольших временах должен измеряться уже сотнями пикосекунд и менее. Даже ранние семейства Virtex имели на кристалле модули цифровой автоподстройки тактового сигнала (DLL — Delay Locked Loop). В семействе Virtex-4 эти модули были заменены на более мощные DCM (Digital Clock Manager) с функциями умножения и деления частоты, сдвига фазы и синхронизации как с внутренним, так и с внешним источниками сигнала обратной связи. Альтернативой DLL является фазовая подстройка частоты (PLL — Phase Locked Loop), обладающая рядом преимуществ. Именно модули PLL и стали добавлением к существующим ресурсам формирования тактового сигнала (рис. 7).

Рис. 7. Формирование тактового сигнала в ПЛИС Virtex-5

Новый вариант модуля формирования тактового сигнала носит название Clock Manager Tile (CMT). На одном кристалле расположено 6 таких блоков, в каждом из которых имеется два устройства DCM (цифровых) и одно устройство PLL (аналоговое). В комбинации с глобальными трассировочными ресурсами для распространения тактового сигнала проекты на базе Virtex-5 могут достигать тактовой частоты 550 МГц.

Состав семейства

ПЛИС Virtex-5, так же как и Virtex-4, разбиты на подсемейства, отличающиеся соотношением логических ресурсов, памяти, блоков DSP, наличием процессорных ядер и высокоскоростных приемопередатчиков. В настоящее время доступно первое из подсемейств — Virtex-5LX. Сведения о нем приведены в таблице 2.

Таблица 2. Ресурсы ПЛИС семейства Virtex-5LX
Примечание: каждая секция Virtex-5 содержит 4 LUT и 4 триггера (в Virtex-4 — 2 LUT и 2 триггера)

Можно заметить, что в связи с «укрупнением» секции действительное число триггеров и LUT в кристалле можно получить, умножив количество секций на 4 (а не на 2). Таким образом, наибольшее количество триггеров, доступное в семействе, — 207 360. Тем не менее, в обозначение ПЛИС входит число 330, которое призвано соответствовать числу логических ячеек. Налицо некоторая путаница, для прояснения которой необходимо обратиться к понятию «стандартная логическая ячейка» и вспомнить архитектуру LUT в Virtex-5. Дело в том, что за понятием «стандартная логическая ячейка» стоит 1 триггер и 4-входовая LUT. Очевидно, что такое же количество связок «триггер + 6-входовая LUT» сможет обеспечить существенно большую функциональность. Для отражения данного факта Xilinx предлагает некую собственную методику пересчета имеющихся 6-входовых LUT в «эквивалентные ресурсы». При этом физически реализованные 207 тыс. ячеек в сочетании с выделенными аппаратными ресурсами рассматриваются как 330 тыс. «эквивалентных». Разумеется, такой подход выглядит неоднозначно и дает повод для критики, поскольку формально число «физических» триггеров в полтора раза меньше числа в обозначении ПЛИС. Однако следует еще раз подчеркнуть, что оценка современных high-end FPGA является достаточно сложным и длительным процессом, где требуется учесть множество факторов. С учетом достаточно высокой цены высокопроизводительных ПЛИС изучение их технических характеристик попросту не может ограничиваться изучением таблицы со сводной информацией. Перед выполнением сложных и высокоскоростных проектов рекомендуется проводить предварительные исследования при помощи пакетов моделирования цифровых устройств (таких как ModelSim) и всесторонне изучить характеристики выбранной ПЛИС до ее непосредственного приобретения.

Производительность

Для оценки производительности ПЛИС Virtex-5 воспользуемся тем же набором синтетических тестов, который был приведен автором в одной из предыдущих публикаций [1] для оценки производительности ПЛИС Virtex предыдущих семейств.

Набор тестов состоит из простого 16-разрядного счетчика, 16-разрядного АЛУ, выполняющего элементарные арифметические и логические операции над двумя операндами, и блока цифровой обработки, выполняющего перемножение 18-разрядных операндов с накоплением в 48-разрядном аккумуляторе. Результаты работы САПР приведены после этапа Translate, который дает верхнюю оценку тактовой частоты без учета задержек на трассировочных линиях. ПЛИС Virtex-5, как и прочие FPGA Xilinx, имеют так называемую speed grade, которая представляет собой интегральную оценку скорости микросхемы. ПЛИС с большим классом допускает большие тактовые частоты.

Можно отметить, что счетчик на Virtex-5 перешагнул барьер в 500 МГц (хотя и всего на 1 МГц), а операции «умножение с накоплением» можно выполнять на частотах 300–400 МГц. В данном тесте использовалась схема синхронного сброса аккумулятора, которая несколько снизила тактовую частоту по сравнению с заявленной производителем частотой 550 МГц, теоретически достижимой на выделенных умножителях (рис. 8).

Рис. 8. Тактовая частота проектов в ПЛИС семейства Virtex-5 (МГц) для различных классов скорости

При практической работе с высокопроизводительными ПЛИС имеет смысл уделять серьезное внимание алгоритмам трассировки и соответствующему размещению отдельных блоков на кристалле. Хорошие результаты получаются при использовании САПР PlanAhead, которая представляет собой один из новых продуктов Xilinx.

Поддержка САПР и отладочные платы

Для быстрого освоения ПЛИС нового семейства фирмой Xilinx выпущена плата ML-501. Платы серии ML-x0x представляют собой удобные средства для начала работы с ПЛИС Virtex. Достаточно обратиться к линейке ML-401/402/403, которая представляет собой весьма удобную платформу для освоения ПЛИС Virtex-4. Платы такого типа имеют большое количество разнообразных периферийных устройств и, что весьма удобно, допускают подключение устройств пользователя с помощью широко распространенных разъемов с шагом 2,5 мм. Внешний вид платы ML-501 показан на рис. 9.

Рис. 9 Внешний вид платы ML-501
  • Установлена ПЛИС XC5VLX50FFG676.
  • DDR2 SODIMM (256 MB).
  • ZBT SRAM (1 MB).
  • Flash-ПЗУ (32 MB).
  • Контроллер System ACE CF (Compact Flash) для загрузки ПЛИС и работы в качестве твердотельного диска.
  • Platform Flash для загрузки ПЛИС.
  • SPI Flash.
  • Интерфейс JTAG.
  • USB.
  • PS/2 — клавиатура, мышь.
  • Разъем RJ-45 и контроллер локальной сети на 10/100 Мбит/с.
  • Порт RS-232.
  • 2 аудиовхода — линейный и микрофонный.
  • 2 аудиовыхода.
  • Выход DVI/VGA.
  • Single-Ended and Differential I/O Expansion.
  • Набор переключателей (8), кнопок (5) и светодиодов (8).

Подробная информация о новом семействе приведена на сайте фирмы-производителя www.xilinx.com/virtex5, а также по адресу www.plis.ru.

Литература
  1. Тарасов И. Эволюция ПЛИС серии Virtex // Компоненты и технологии. 2005. № 1.

Добавить комментарий

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