EZchip Semiconductor, Ltd.

«EZchip» была одной из немногих компаний в мире, занимающихся разработкой сетевых процессоров без собственного производства чипов. Сетевой процессор — это процессор, способный передавать огромные объёмы данных между несколькими сетевыми интерфейсами, возможно, дублируя эти данные, если несколько потребителей заинтересованы в одном и том же контенте, используя очереди приоритетов и другие механизмы. Сетевые процессоры обычно применяются в базовых станциях сотовой связи и крупных маршрутизаторах интернет-провайдеров.

Сетевые процессоры NP3 и NP4 от «EZchip» базировались на универсальном процессоре IBM PowerPC 3, который оказался весьма адаптируемым и мощным.

После моего ухода из компании «EZchip» она была куплена фирмой «Mellanox» (в 2016 году), которая, в свою очередь, была приобретена «Nvidia» (в 2020 году).

Опыт работы

Я работал в группе «Driver», которая разрабатывала программное обеспечение, работающее на отдельном чипе, параллельно с сетевым процессором, для его мониторинга и конфигурирования.

  • Начало работы: 2010 год, окончание: 2012 год.
  • Должность: разработчик встроенного программного обеспечения (Embedded Software Developer).

Мои достижения

Я участвовал в разработке двух сетевых процессоров, «NP3» и «NP4». Оба имели по десять входящих и десять исходящих десятигигабитных сетевых интерфейсов. Их можно было объединить, чтобы образовать интерфейсы XLAUI (40 Гбит/с), Interlaken или XAUI (10 Гбит/с). Переконфигурирование интерфейсов могло выполняться «на лету» — это был один из моих проектов — путём сброса уже полученных данных на вывод, перенастройки только необходимых интерфейсов и восстановления передачи данных, всё это без потери соединения на других интерфейсах. Процесс конфигурации занимал очень мало времени, речь идёт о десятках микросекунд.

Также я реализовал последовательность включения для «NP4», включая настройку сетевых интерфейсов, организацию внутренних очередей с взвешенными приоритетами для передачи данных, конфигурацию двух нижних уровней модели OSI и другие задачи.

Кроме того, я спроектировал и написал технологию «Soft Reset». Из-за ошибки в производственном процессе ядро сетевого процессора «NP3» периодически нуждалось в перезагрузке. Я реализовал эту перезагрузку без потери соединения на входящих и исходящих интерфейсах. Вся перезагрузка занимала около 150 микросекунд; пользователи, подключённые к сетевым интерфейсам с входящей и исходящей сторон сетевого процессора даже не замечали эту перезагрузку.

Презентация про сетевые процессоры (2010, Powerpoint, на английском)