Как выбрать CPU для гаджета
Можно найти тысячу и один гайд, как выбрать проц в домашний комп. Но как выбрать проц в кастом-девайс — инфы ноль. Вот пара нюансов на этом нелёгком пути, если бы вы хотели сделать свой гаджет.
Итак.
0. Требования
Разработка требований — процесс творческий и итеративный. Начинаешь с вижена продукта, под него прикидываешь какой-то доступный проц (часто это Raspberry или Ардуино, зависит от полёта мысли).
Запускаешь mvp, замеряешь перфоманс, читаешь доки, не получается, приходят новые идеи, повторяешь. В конце концов, круг продуктовых задач очерчивается.
На примере моего гаджета Neko, требования такие — это носимое устройство (ограничения по потреблению) на Linux (сразу отлетает Cortex-M). Перфоманс на уровне RPi 4 (надо обрабатывать треки с задержкой 3-5 ms).
Нужен NPU с поддержкой floating point (чтобы запускать современные нейросети, и они помогали играть в real-time). Всякая специфика типа SPI в Slave, чтобы соединить запчасти в единый девайс.
Отечественные микросхемы сразу игнорируем — они самые большие в мире. Толстый техпроцесс, нет нужной периферии, архитектур, сообщества.
Казалось бы, ну и берите soc (system on chip — процессор) с Raspberry, что тут думать. Но таким бомжам как мы, их не продают. Да и NPU отстутствует.
Зато есть процы от китайских братьев: Allwinner, Amlogic, Rockchip, etc. Вроде бы тоже не проблема — выбирай чип из их линейки, делов то. Но нет.
1. Выбор
Они не то, чтобы рассказывают про то, что у них есть. Людям с улицы инфу не раскрывают, чтобы не спалили планы и цены. А те крупицы инфы, что есть, часто на китайском языке.
Самый рабочий источник — ваш друг-китаец, владелец китайского дизайн-хауса или ODM (original development manufacture — фабрика кароче). Нет такого? Очень жаль.
Допустим, вы разобрались в линейках, нашли заветный камешек. Что дальше?
2. EOL
Важно понять, не снимут ли его на днях с производства. Как это узнать? Можно догадаться по его популярности — ставят ли в массовые девайсы.
Ну или, как в пункте 1 — у того же друга-китайца должен быть друг из вендора проца, не постеснявшийся намекнуть за обедом, попадает ли soc в eol (end of life).
Убедились, что чип внезапно не окажется на свалке истории, прекрасно. Можно открывать шампанское? Конечно же, нет :)
З. Закупка
Чтобы процессоры стоили дёшево, их производят партиями в сотни тысяч или миллионы штук. Ваш заказ в жалкие 5-10к (на который ещё нужно умудриться наскрести денег) никому не интересен.
Важно понять, с какой периодичностью soc будут производиться, а это связано с заказами крупных игроков. Ну типа Huawei. Или Amazon. Cherry на худой конец.
Сложились удачные обстоятельства, на рынке куча устройств с нашим проциком, берём? Ага, сейчас.
4. Поддержка
В каждом soc куча периферии — гляньте, сколько квадратиков на картинке-диаграмме. Для всех них нужно писать системный софт — драйвера.
Обычно, китайская документация не славится с��оей точностью, и приходится уточнять в поддержке, почему всё делаешь по инструкции, а оно не то что не работает, а описанных элементов просто нет.
Поддержке зачастую плевать на запросы каких-то широкоглазых стартаперов.
Круто, если процессор популярен среди комьюнити разработчиков, системщики уже всё написали, а процессор поддержан ядром Linux в mainline.
Но даже такое положение дел не отменяет важность адекватной поддержки.
Вариант для Neko
В общем, самым перспективным soc для Neko сейчас выглядит Rockchip RK3576.
Quad-core Cortex-A72 для толстых приложений и Quad-core Cortex-A53 для остального, 6 TOPS NPU@INT8 c поддержкой fp, 8 nm техпроцесс, TDP 1—6 Вт.
Цена, вроде попадает в целевой FOB (Free On Board — цена отгрузки устройства). Есть сообщество, есть частичная поддержка в mainline Linux (но нет NPU, это беда).
Кто шарит? Что думаете? Вдруг, у кого-то есть опыт написания системного софта под Rockchip?
Напишите, плез, в каментах или туть.