Разработчик-одиночка спроектировал первый open source Ethernet-свитч ASIC

Автор блога essenceia.github.io заявляет, что спроектировал первый в мире открытый (open source) чип для Ethernet-свитча, заказную микросхему (ASIC), а не программируемую логику (FPGA). Чип уже отправлен на изготовление через сервис мелкосерийного производства чипов Tiny Tapeout и должен вернуться с фабрики в середине ноября.
Автор объясняет мотивацию: недавние решения американского регулятора связи FCC напомнили о полном отсутствии открытых аппаратных решений для сетевого оборудования. Проекты открытого кремния (open source silicon) уже существуют и даже доходят до реального производства, но почти все они, процессоры на архитектуре RISC-V. Сетевое оборудование сообщество открытого софта и железа обходит стороной как менее «эффектную» область, хотя открытых плат и прошивок для роутеров хватает, под капотом у них всё равно стоят закрытые проприетарные чипы. Полноценный роутер для одного человека, слишком амбициозный проект (нужен и мощный процессор, и аналоговые интерфейсы для проводных и беспроводных соединений), поэтому автор начал с более простой задачи, свитча.
В материале разбираются базовые понятия сетевого железа: физический уровень Ethernet (набор способов передачи сигнала по разным средам, от оптики до коаксиального кабеля), различие управляемых (managed) и неуправляемых (unmanaged) свитчей, а также разница между сквозной пересылкой пакета (cut-through, свитч начинает пересылать пакет, ещё не дождавшись его полного прихода) и пересылкой с буферизацией (store-and-forward, свитч ждёт весь пакет и проверяет контрольную сумму перед отправкой).
Итоговое устройство спроектировано под жёсткие ограничения дешёвого мелкосерийного прототипирования. У чипа всего 24 вывода (8 входных, 8 выходных, 8 универсальных GPIO), работающих на 50 МГц, своего аналогового интерфейса для физического уровня Ethernet нет, поэтому свитч подключается к внешней микросхеме приёмопередатчика физического уровня (PHY) Microchip LAN8720A/LAN8720AI по шине RMII, что позволяет получить полноценные 100 Мбит/с Ethernet при 50-мегагерцевых выводах. Второе жёсткое ограничение, площадь кристалла: хранение целых Ethernet-кадров (до 1,5 КБ, а для jumbo-кадров, до 9 КБ) на кристалле съело бы слишком много площади и удорожило бы производство, поэтому автор отказался от буферизации всего пакета (store-and-forward) в пользу сквозной пересылки (cut-through). По этой же причине, отсутствие бюджета на встроенный процессор и время на разработку софта для протоколов вроде SNMP или SSH, устройство сделано неуправляемым: без внешней настройки, по принципу «включил и работает».
В итоге получился 3-портовый полнодуплексный неуправляемый Ethernet-свитч на 100 Мбит/с со сквозной пересылкой пакетов. Автор также подробно разбирает структуру самого Ethernet-кадра, включая преамбулу, стартовый разделитель кадра (SFD) и контрольную последовательность кадра (FCS), которые обычно скрыты от пользователя такими утилитами, как tcpdump и Wireshark.
Ключевые факты
- Разработчик-одиночка спроектировал (по его утверждению) первый в мире open source ASIC для Ethernet-свитча, не FPGA, а полноценную заказную микросхему
- Чип изготавливается через мелкосерийный сервис производства чипов Tiny Tapeout, возврат с фабрики ожидается в середине ноября
- Итоговая спецификация: 3-портовый, полнодуплексный, 100 Мбит/с, со сквозной пересылкой пакетов (cut-through), неуправляемый (unmanaged)
- Ограничение в 24 вывода на 50 МГц потребовало внешнего PHY-чипа Microchip LAN8720A/LAN8720AI по шине RMII для получения 100 Мбит/с Ethernet
- Нехватка площади кристалла для буферизации целых пакетов (до 1,5, 9 КБ) заставила отказаться от режима store-and-forward в пользу cut-through
Почему это важно
Открытое аппаратное обеспечение (open source silicon) активно развивается, но почти все амбициозные проекты, это процессоры на RISC-V. Сетевые чипы, свитчи и роутеры, остаются полностью закрытой, проприетарной областью даже там, где остальное железо (платы, прошивки) уже открыто. Этот проект, одна из первых попыток закрыть именно этот пробел: не эмуляция на программируемой логике (FPGA), а настоящая заказная микросхема, прошедшая через реальное производство.
Кому это важно
Инженерам и энтузиастам открытого кремния и сетевого железа, как демонстрация того, что заказной чип для конкретной сетевой задачи можно спроектировать и произвести силами одного человека через доступные сервисы мелкосерийного прототипирования. Также интересно разработчикам открытых роутеров и свитчей на базе открытых плат, которым сегодня приходится опираться на закрытые проприетарные чипы для центральной коммутации.
Как это применить
Проект пока на стадии прототипа: чип отправлен на фабрику и должен вернуться в середине ноября, после чего автору предстоит проверить, что кремний действительно работает. Итоговое устройство, простой 3-портовый неуправляемый свитч на 100 Мбит/с без поддержки удалённой настройки (SNMP, SSH), рассчитанный на использование по принципу «подключил и работает», без дополнительного софта.
Можно ли доверять
Автор подробно и технически обоснованно описывает инженерные решения и ограничения (число выводов, площадь кристалла, выбор внешнего PHY-чипа), что говорит о серьёзном профильном опыте в проектировании кремния. При этом чип на момент публикации ещё не вернулся с фабрики и не проверен физически, заявление о том, что это «первый в мире» open source свитч-ASIC, пока не подтверждено независимо и основано на словах самого автора.
Риски и подводные камни
Производство ASIC, рискованный процесс: даже тщательно спроектированный чип может не заработать после изготовления из-за ошибок проектирования или проблем самого производственного цикла, и итог станет известен только после возврата кристалла с фабрики. Кроме того, из-за жёстких ограничений по числу выводов и площади устройство получилось предельно урезанным (всего 3 порта, 100 Мбит/с, без управления), это демонстрационный прототип, а не готовое к массовому применению коммерческое решение.
«Следуя иерархии потребностей по Маслоу, вафли для меня важнее площади кристалла, а более высокая стоимость производства означает меньше вафель»
— автор проекта, essenceia