RISC-V побеждает доступностью, а не архитектурой: ответ на критику Гринберга
Дмитрий Гринберг опубликовал статью «RISC-V: They Should Have Known Better», где раскритиковал архитектуру RISC-V; материал вышел на главную страницу Hacker News и вызвал спор на Lobsters. Инженер из Тринидада и Тобаго, который сам перешёл со связки STM32/ARM на RISC-V и снимает об этом видео, написал развёрнутый ответ на rvembedded.com, не как защиту комитета по стандартизации ISA (в членстве в RISC-V International автору отказали), а как возражение по существу.
Центральный тезис Гринберга: требования к высокопроизводительному процессору диаметрально противоположны требованиям к дешёвому ядру микроконтроллера, поэтому один набор команд не может обслуживать оба полюса. При этом сам Гринберг методично выводит требования к дешёвому ядру микроконтроллера, низкая задержка прерываний, малая площадь кристалла, хорошая плотность кода, необязательность аппаратного делителя и умножителя, отсутствие разделения привилегий, и приходит ровно к RV32IC/RV32EC, вкладывая в текст фразу «Но, скажете вы, вы только что описали RV32IC (или RV32EC)!». Там же он пишет: «Я на 100% уверен, что RISC-V со временем займёт нишу дешёвых одноразовых микроконтроллеров». Автор ответа называет это почти самоопровержением: критик выводит модель чипа из первых принципов, приходит к RISC-V-ядру и тут же раздражается, что оно существует.
Возражая по сути, автор указывает на три реальных чипа у себя на столе, которые, по его словам, опровергают тезис о непреодолимой пропасти между дешёвым и мощным ядром. CH32V003, это ровно тот RV32EC, что описал Гринберг: шестнадцать регистров, без умножителя и делителя, только режим машины, 2 КБ SRAM, 16 КБ флеша, десять центов за штуку; автор выпустил на нём два продукта (монитор заполнения контейнера с ToF-датчиком и агропродукт с таймером открывания двери) и свисток-переключатель как замену Arduino. CH32H417, двухъядерный контроллер верхнего сегмента (ядра QingKe V5F на 400 МГц и V3F на 144 МГц, 896 КБ SRAM, 960 КБ флеша, встроенный трансивер USB 3.2 Gen1 на 5 Гбит/с, 100M Ethernet MAC и PHY), на котором автор запустил веб-браузер, генератор GAN-изображений и распознавание лиц в реальном времени в пределах 150 КБ ОЗУ. Baochip, это VexRiscV с MMU, на котором работает микроядро Xous авторства известного хакера bunnie Huang с полноценной изоляцией процессов, а также порты seL4 и Linux; именно этот чип стоял в бейджах DEFCON 34, и автор написал для него bare-metal C SDK.
Все три чипа используют одну и ту же базовую систему команд, регистровую модель, соглашение о вызовах и цепочку инструментов. По подсчётам автора, весь путь, от десятицентового CH32V003 до чипа с MMU и Linux, обошёлся ему меньше чем в 100 долларов США за неполный год, включая доставку и без учёта датацентрового железа: 50 штук CH32V003 с отладчиком примерно за 7 долларов, отладочная плата CH32H417 за 20 долларов, плата Baochip Dabao за 9,5 доллара (две платы с доставкой, 35 долларов), одноплатник OrangePi RV2 на релизе стоил 30 долларов с бесплатной доставкой (позже подорожал, автор связывает это с ростом спроса на чипы из-за ИИ-бума). Для сравнения один отладчик Segger J-Link для ARM стоит около 600 долларов (или порядка 200 долларов за EDU-версию с доставкой), без единого чипа или платы. Путь по стороне ARM устроен иначе: от Cortex-M0 (STM32F030), к Cortex-M7, а для MMU и Linux нужен уже прикладной процессор на Cortex-A. Это разные профили ARM со значительно отличающимися моделями привилегий и прерываний, требующие куда более серьёзного переобучения, чем подключение ещё одного расширения RISC-V. Ни один микроконтроллер на Cortex-M не имеет встроенного PHY USB 3.0 SuperSpeed: чтобы получить такую периферию, нужно уходить в класс прикладных процессоров (i.MX8, RK3xxx) на Cortex-A. При этом STM32H747 в корпусе TFBGA240 у производителя имеет срок поставки двадцать недель, Mouser запрашивает удостоверение личности перед заказом, а Digikey, по словам автора, отказывал в заказах в зависимости от локации и имени покупателя (в пример приводится случай Hussein Ali, автора канала NorthridgeFix на YouTube, которому отказали в заказе); доставка STM32H747 в его локацию стоит 60, 100+ долларов, тогда как плату H417 он берёт в официальном магазине WCH на AliExpress с бесплатной доставкой и без дополнительных проверок.
Итоговый тезис автора: граница между маленьким и большим ядром ARM, это не архитектурный факт, а продуктовая граница, закреплённая лицензированием, а не физикой; отсутствие USB 3.0 SuperSpeed на любом Cortex-M он приводит как прямое тому подтверждение. Захваченный текст обрывается на середине этого рассуждения, сразу после фразы о том, что в RISC-V, в отличие от ARM, владелец ISA не решает [за производителя, где проходит эта граница], дальнейшая аргументация в собранном материале отсутствует.
Ключевые факты
- Ответ на вирусную статью Дмитрия Гринберга «RISC-V: They Should Have Known Better» (главная страница Hacker News, спор на Lobsters): Гринберг утверждает, что требования к мощному процессору и к дешёвому ядру микроконтроллера несовместимы в одной системе команд.
- Сам Гринберг, выводя требования к дешёвому ядру микроконтроллера, приходит ровно к RV32IC/RV32EC и пишет «я на 100% уверен, что RISC-V со временем займёт нишу дешёвых одноразовых микроконтроллеров», что автор ответа называет самоопровержением критики.
- Три реальных чипа на столе автора перекрывают якобы непреодолимую пропасть: десятицентовый CH32V003 (RV32EC, 16 регистров, 2 КБ SRAM/16 КБ флеша), двухъядерный CH32H417 с USB 3.2 на 5 Гбит/с (запущены браузер и распознавание лиц в реальном времени), и Baochip с MMU, микроядром Xous и портами seL4/Linux, тот же чип стоял в бейджах DEFCON 34.
- Весь путь от десятицентового микроконтроллера до чипа с MMU и Linux обошёлся автору меньше чем в 100 долларов США за неполный год с учётом доставки, против примерно 600 долларов за один отладчик Segger J-Link для ARM.
- Центральный вывод: разрыв между маленьким и большим ядром на ARM, не архитектурный факт, а продуктовая граница, закреплённая лицензированием; ни один Cortex-M не несёт встроенный PHY USB 3.0 SuperSpeed, тогда как у RISC-V одна и та же база команд закрывает весь диапазон от десятицентового ядра до чипа с MMU.
Почему это важно
Статья Гринберга, по словам самого автора ответа, самая серьёзная критика архитектуры RISC-V за долгое время, вышедшая на главную Hacker News. Ответ переносит спор с чистоты кодирования инструкций на то, что реально определяет выбор архитектуры за пределами богатых рынков: доступность железа и стоимость всего инструментария, а не элегантность набора команд.
Кому это важно
Инженерам embedded-систем и преподавателям, выбирающим между ARM и RISC-V для прототипов и учебных курсов, особенно вне США и Европы, где стоимость доставки чипа ценой в доллар может достигать 60, 200 долларов и определяет, получит ли каждый студент в классе из тридцати человек свою плату или один демо-стенд на всех.
Как это применить
Автор называет конкретные продукты и цены: CH32V003 около десяти центов за штуку (50 штук с отладчиком, около 7 долларов), отладочная плата CH32H417 около 20 долларов, плата Baochip Dabao 9,5 доллара, одноплатник OrangePi RV2 на релизе, 30 долларов с бесплатной доставкой. Весь стек от микроконтроллера до Linux-совместимого чипа с MMU собирается меньше чем за 100 долларов на одной системе команд, одном наборе инструментов и одной модели регистров.
Можно ли доверять
Это личный опыт инженера, который подтверждает свои утверждения ссылками на собственные проекты, веб-браузер и распознавание лиц на CH32H417, NES-эмулятор на ESP32-C3, bare-metal SDK для Baochip. Материал остаётся полемическим ответом одной стороны на чужую статью, а не независимой проверкой; захваченный текст обрывается на середине финального аргумента, дальнейшая часть рассуждения в источнике не сохранена.
Риски и подводные камни
Автор сам признаёт часть претензий Гринберга к кодированию инструкций (странные смещения в сжатых инструкциях, вынесение Zicsr в отдельное расширение) справедливыми и не оспаривает их. Цены и доступность зависят от региона и времени: сам автор отмечает, что OrangePi RV2 уже подорожал после релиза на фоне роста спроса на чипы, вызванного ИИ-бумом.