Если попытаться охарактеризовать планы поставщиков ПЛИС, то 2011 г., скорее всего, можно назвать годом встраиваемых систем.
Поставщики ПЛИС стремятся вывести микросхемы из ограниченной области, где они служили «клеем» для соединения специализированных блоков или межинтерфейсными мостами и хотят, чтобы их продукция проникла в самую сердцевину встраиваемых систем — в их вычислительную часть.
С их точки зрения мощные, недорогие ПЛИС, снабжённые программными процессорными ядрами, библиотеками периферийных устройств и автоматическими генераторами конфигураций, взорвут устоявшееся положение и займут место старых, менее гибких технологий.
Поставщики ПЛИС считают ключевыми преимуществами предлагаемых ими решений упрощение проектирования, большее соответствие аппаратной части требованиям к создаваемым системам и большую уверенность проектировщика при построения критически важных узлов. Большинство, однако, упирают на традиционное для сторонников ПЛИС заклинание – «гибкость».
Существует и иное мнение: встраиваемые системы становятся чисто программными проектами. Сторонники такого подхода говорят: просто пишите программный код, не заботясь об аппаратуре. Рассматривайте периферию просто как код на другом конце вызова функции в программе. Когда ваш код заработает, вставьте его вместе с необходимыми требованиями к производительности и энергопотреблению и с описанием остальной части платы в нашу магическую программу, а потом просто нажмите кнопку. Наша программа возьмёт нужное процессорное ядро и блоки памяти, встраиваемые контроллеры периферии и реализует ваш код. Наш инструментальный набор даже выделит те программные участки, которые требуют большей производительности, и скомпилирует для них соответствующие аппаратные ускорители. При этом вся аппаратная часть целиком уместится в нашей ПЛИС.
К несчастью, несмотря на то, что такой подход становится всё более популярным, реальная практика конструирования идёт в прямо противоположном направлении.
В исследовании EDN, проведённом в 2010 г, большинство участников опроса указали на уменьшение, а не на увеличение использования ими ПЛИС.
Большая часть причин этого вполне предсказуема. Разработчики упоминали дороговизну ПЛИС, по крайней мере, для единичных образцов. Методика разработки непривычна. В результате большинство разработчиков не собираются отказываться от привычной основы в виде специализированных ИС. Они не хотят начинать свою работу с описания задачи на уровне регистровых передач (RTL), проводить широкомасштабные симуляции и включать в процесс разработки этап отображения списка цепей на карту соединений матрицы ПЛИС. Однако основной причиной нежелания использовать ПЛИС стало совсем другое. Разработчикам просто не нужна такая гибкость. И именно это объективное обстоятельство лежит в основе противостояния натиску ПЛИС.
На первый взгляд можно подумать, что проектировщики встраиваемых систем — консерваторы, которые ни за что не будут менять свои устройства до тех пор, пока не окажутся загнанными в угол. Однако более тщательное исследование скажет нам, что разработчикам нужна определённая гибкость аппаратуры, но не доходящая до необходимости разрабатывать всё с чистого листа, как в случае с ПЛИС.
Использование ПЛИС даёт прекрасную возможность создать собственный процессор, что позволит оптимизировать алгоритм, последовательность обработки данных и структуру памяти.
Но какова доля команд разработчиков, в состав которых входят специалисты по оптимизации алгоритмов и последовательностей обработки данных? Точно так же современные ПЛИС являются отличной основой для синтеза многоядерных систем для вычислительных кластеров — но сколько инженеров действительно хотят точно знать, что творится внутри системы с симметричной мультипроцессорностью?
Вероятно, та степень гибкости, которая действительно необходима разработчикам, уже достигнута теми системами, которые имеются на рынке. Множество поставщиков ARM процессоров, компания Microchip со своим MIPS и множество других поставщиков 32-разрядных процессоров своей собственной фирменной архитектуры превратили простые микроконтроллеры в 32-разрядные СнК с несколькими процессорными ядрами. В состав этих Снк входят: память, высокоскоростные интерфейсы для внешней динамической памяти, сложные (и зачастую программируемые) аппаратные ускорители, контроллеры периферии, высокоскоростные интерфейсы последовательного ввода/вывода и сетевые интерфейсы.
Поставщики этих систем фактически стёрли грань между мощными микроконтроллерами и специализированными ИС и практически устранили в большинстве случаев надобность хитроумно изобретать собственные аппаратные конфигурации.
Поставщики ПЛИС, конечно, всё ещё имеют хорошие шансы на получение доли рынка встраиваемых систем за пределами привычной телекоммуникационной цитадели. Однако этот шанс состоит в снижении стоимости использования, а не в повышении гибкости, вычислительной мощи или лёгкости использования их продукции.