Search Processor —
поисковый процессор

Безопасность коммуникаций

Доверенные телекоммуникационные каналы связи — одна из самых востребованных областей применения специализированного электронного оборудования. Но, несмотря на это, на сегодняшний день во множестве государственных и во всех коммерческих организациях РФ, имеющих дело с ценной или секретной информацией, используется оборудование иностранного производства.

Безопасность применения такого оборудования можно оценивать по‑разному, но относить его к категории доверенного точно нельзя.

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

Ранее мы сами уже разрабатывали ряд таких плат (аппаратных платформ) для нескольких заказчиков. Но в данном случае речь зашла о более серьезном проекте. Здесь заказчик нашел в себе силы начать разработку современного решения на основе программируемой логики (ПЛИС). Это несомненно выводит изделие на совершенно иной уровень безопасности.

Задача

Заказчик поручил нам разработку одного из крупных функциональных блоков устройства – так называемого поискового процессора. Этот блок осуществляет непрерывную многоканальную потоковую обработку поисковых запросов с целью их классификации.

Поисковый процессор содержит большое количество алгоритмически сложных функциональных блоков (занимаемый в ПЛИС суммарный объем ресурсов – ~ 44 000 LUTs (Lookup Tables) архитектуры Xilinx Spartan‑6). Некоторые из них используются всеми каналами одновременно, т.е. являются разделяемыми ресурсами. Каждый такой ресурс – «узкое горлышко» потоковой обработки данных. Скорость работы этих блоков определяет общую производительность поискового процессора и всего устройства в целом.

Решение

Одним из таких ресурсов является блок, использующий в своей работе доступ к памяти DDR2. Чтобы максимально повысить его производительность, было решено работать с памятью DDR2 на максимально возможной для Xilinx Spartan‑6 частоте – 400 МГц (800 МГц эффективной частоты, т.к. это DDR). Это дало пиковый поток в 1,6 Гбайт/с. Чтобы успевать обрабатывать такой поток «на лету», без задержек, необходимо обрабатывать читаемые из памяти DDR2 данные шириной в 64 бита на частоте 200 МГц.

Узел, обрабатывающий эти данные, также алгоритмически сложен. Пришлось тщательно конвейеризировать алгоритм обработки узла, аккуратно отмеряя количество логики на каждом из этапов конвейера. При этом нельзя было увеличивать количество этапов до бесконечности, т.к. в ТЗ помимо прочего требовалось минимизировать латентность (задержку) обработки данных.

sp_placing_w275

Использованные технологии

Проектирование ПЛИС

Целевая технология:

  • Xilinx Spartan-6 (SLX150T)
  • Xilinx Artix-7

Языки описания аппаратуры:

  • Verilog
  • SystemVerilog

Внутрикристальные шины:

  • аналог Wishbone

Методики и технологии верификации:

  • использование унифицированной модели тестового окружения (UVM 1.1d)
  • задание правил соответствия (assertion-based verification)
  • моделирование отдельных составных узлов (block-level simulation)
  • генерация воздействий на основе генераторов случайных чисел (random / constrained random)
  • анализ покрытия кода, достижение полного покрытия (code coverage / strive-for-perfection simulation)

Технические характеристики разработанного продукта не разглашаются по требованию заказчика.

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