Почти в каждой дискуссии о положении RISC-V в экосистеме архитектура набора команд (ISA) часто рассматривается как прямой конкурент Arm. Большинство людей считают, что две ISA участвуют в соревновании с нулевой суммой, где победитель получает все, и только один может остаться на рынке. Однако мы считаем, что, по крайней мере в обозримом будущем, в отрасли будет наблюдаться более высокая степень смешивания и сопоставления. Обе ISA, скорее всего, будут сосуществовать бок о бок внутри все более гетерогенных чипов.
Следует признать, что вся история техники в этом вопросе против нас. За последние 40 лет мы наблюдаем повторяющуюся картину: экосистемы программного обеспечения имеют тенденцию консолидироваться вокруг единой платформы. Никто не хочет писать одно и то же программное обеспечение дважды, причем не просто писать, а проектировать, тестировать и отлаживать. Таким образом, разработчики, как правило, следовали своим путем, чтобы максимизировать прибыль, что со временем приводит к доминированию одной платформы.
Однако эта старая истина не совсем точна... ISA — это не совсем программное обеспечение.
Большая часть функциональности ISA заключается в предоставлении общего набора языковых инструментов низкого уровня. Эти инструменты позволяют программному обеспечению более высокого уровня полностью использовать возможности чипа, на котором работает каждая ISA. Таким образом, некоторые тенденции в области программного обеспечения все еще сохраняются.
Для функциональности пользовательского уровня (например, приложений, инфраструктуры и приложений) сохраняется штраф за поддержку нескольких ISA, о чем свидетельствует десятилетняя попытка компании Arm выйти на рынок центров обработки данных. Однако разработчики программного обеспечения такого типа редко затрагивают ISA напрямую. Вместо этого ISA более важны для разработчиков микросхем, и они тоже не заинтересованы в поддержке нескольких ISA, поскольку для этого требуется несколько наборов инструментов и опыта. Но это гораздо меньшая аудитория и гораздо более решаемая проблема. Уравнение затрат и выгод здесь выглядит иначе. Для растущего числа разработчиков микросхем преимущества использования нескольких ISA оправдывают затраты на поддержку обоих.
У разработчиков микросхем обычно есть команды, достаточно большие, чтобы справиться с несколькими уровнями опыта проектирования. Кроме того, не все рабочие нагрузки чипов одинаковы. Во многих случаях разработка ядер RISC-V вместе с ядрами Arm может привести к превосходным решениям. Ядра RISC-V не совсем бесплатны, но ядра Arm, как правило, дороже, и компания, похоже, намерена повысить эти цены.
Ядра Arm в основном имеют фиксированные возможности, тогда как ядра RISC-V позиционируются как очень «гибкие» (хотя и не полностью, но достаточно близкие для нашего обсуждения). Смешивая и совмещая две системы, разработчики микросхем могут найти более оптимальные пути для своих нужд.
Это не просто теория; мы видели это на практике. Процессоры Apple серий A и M, а также TPU Google, по всей видимости, включают в себя ядра Arm и RISC-V. Эта тенденция заметна и во многих других чипах.
Недавно мы говорили с разработчиком, глубоко вовлеченным в сектор Интернета вещей, который, как мы предполагали, использовал только RISC-V. Он поспешил уточнить: «Я использую оба». Все это обходится немного дороже с точки зрения первоначальных затрат и размера команды дизайнеров, но во многих случаях выгоды явно перевешивают эти затраты.
Будет ли так всегда? Спросите кого-нибудь с обеих сторон, и они быстро уйдут от ответа. По знаменитому закону "Горца", "должен остаться только один". Однако на практике мы бы не были столь определенны. Чипы меняются, становятся все более разнообразными и неоднородными, поскольку дизайнеры ищут способы справиться с замедлением действия закона Мура. Это открыло возможность переосмысления прошлых правил. Поэтому мы ожидаем, что в течение долгого времени мы увидим, что и RISC-V, и Arm могут оказаться рядом друг с другом во многих чипах.
Иван Ковалев
VIA