Развитие архитектуры RISC-V продолжает набирать обороты, но вокруг нее, как и вокруг любой новой и перспективной технологии, роятся мифы и недопонимания. Многие из этих заблуждений настолько укоренились, что мешают объективной оценке ее потенциала и ограничений. В этой статье мы разберем десять самых распространенных на сегодня мифов о RISC-V. Наш анализ опирается на фундаментальные принципы и подходы, изложенные в классическом труде "Компьютерная архитектура: Количественный подход" (Computer Architecture: A Quantitative Approach), в частности, используя материалы разделов "Ошибки и подводные камни". И рассмотрим, почему перечисленные убеждения ошибочны и что стоит за ними на самом деле. Всем интересующимся - добро пожаловать под кат!

Мифы про RISC-V
Интерес к RISC-V нарастает день за днём, но энтузиазм часто сопровождается тиражированием неточностей. Некоторые мифы об этой открытой архитектуре стали почти "общепризнанными", хотя не имеют под собой прочного основания. Давайте перечислим их:
RISC-V — это процессор с открытым исходным кодом, как Linux — операционная система с открытым исходным кодом.
Все RISC-архитектуры (набора команд, далее также Instruction Set Architecture; ISA) похожи.
Выбор устоявшейся, закрытой ISA является более безопасным бизнес-решением, чем выбор новой открытой архитектуры RISC-V.
RISC-V ISA набирает популярность только потому, что она дешевле.
Экосистемы закрытых ISA не фрагментированы.
Модульность RISC-V приводит к более фрагментированной программной экосистеме, чем у закрытых ISA.
RISC-V подходит только для встраиваемых приложений.
RISC-V не так безопасна, как закрытые ISA.
Процессоры RISC-V всегда будут отставать от известных процессоров закрытых архитектур по производительности и надежности ПО.
Учитывая вышеизложенные доводы, RISC-V не может стать доминирующей ISA.
Пройдемся по каждому из них и рассмотрим более детально.
Заблуждение №1. RISC-V — это процессор с открытым исходным кодом, как Linux — операционная система с открытым исходным кодом.
В Linux есть единая база открытого исходного кода, код из которой вы можете загрузить, в то время как RISC-V — это в первую очередь открытый стандарт, спецификация аппаратно-программного интерфейса, для которой возможно (и существует) множество различных реализаций. Более подходящим аналогом, чем Linux, является Ethernet, поскольку и Ethernet, и RISC-V являются свободными и открытыми стандартами.
До появления стандарта Ethernet компании использовали свои собственные, проприетарные стандарты локальных вычислительных сетей (LAN): Apple AppleTalk (1985), Datapoint ARCNET (1977), Digital Equipment Corporation DECnet (1975), IBM Token Ring (1984), Xerox Ethernet (1974) и так далее. В 1980 году компании Digital Equipment Corporation, Intel и Xerox ("DIX") объединили усилия для разработки единого стандарта локальной сети на основе Ethernet. Они также создали организацию под эгидой IEEE — рабочую группу 802.3, которая в течении последних сорока лет занимается развитием и усовершенствованием стандарта Ethernet.
Ethernet быстро развивался и давал преимущества в стоимости и производительности, поскольку многие компании смогли создавать сетевые продукты, которые работают на базе унифицированного программного стека поверх стандарта Ethernet. Хотя вы можете создавать свои собственные коммутаторы Ethernet и, возможно, где-то есть совместимые открытые аппаратные решения, многие просто покупают стандартные коммутаторы Ethernet. Спустя всего десть лет после появления первой версии стандарта DIX Ethernet стал доминирующей сетевой технологией. Сегодня проприетарные локальные сети практически исчезли. Кто-нибудь скучает по ним?
Популярный стандарт USB также последовал примеру Ethernet, предоставив бесплатный и открытый стандарт для подключения периферийных устройств, который теперь используется многими компаниями, а также была создана организация, которая занимается его развитием.
Так же как Ethernet и USB, RISC-V является открытым стандартом, который позволяет многим организациям разрабатывать совместимое аппаратное обеспечение, что стимулирует конкуренцию, рост экономической эффективности и развитие обширной общей программной экосистемы, позволяя предлагать продукты RISC-V на многих рынках. Так же как у Ethernet и USB, у RISC-V есть организация, которая развивает стандарт в соответствии с новыми требованиями. Так же как с Ethernet и USB, вы можете приобретать готовое оборудование на основе RISC-V, разрабатывать его самостоятельно, лицензировать готовые коммерческие разработки или использовать совместимые разработки с открытым исходным кодом.
Заблуждение №2. Все RISC-архитектуры похожи.
Хотя архитектуры процессоров с сокращённым набором команд (Reduced Instruction Set Computer; RISC) действительно имеют некоторые общие черты, RISC-V обладает рядом уникальными особенностей по сравнению с предыдущими ISA, отчасти потому, что она более новая, и отчасти из-за подхода ее архитекторов. Эти особенности, в том числе, побудили Европейский Союз выбрать RISC-V для своей инициативы по разработке процессоров, а НАСА (National Aeronautics and Space Administration; NASA) — выбрать RISC-V для своих будущих космических миссий.
Стандарт RISC-V содержит небольшой базовый набор команд, на который любое программное обеспечение всегда может рассчитывать, а также дополнительные расширения, которые разработчики процессоров и компиляторы могут использовать по своему усмотрению. Таким образом, дизайн на основе RISC-V может быть меньше по объему и потреблять меньше энергии, так как из него возможно исключить ненужные функции. Стандарт также предлагает Профили для описания стандартных целевых архитектур для различных сегментов применения (см. Заблуждение №7).
RISC-V также содержит ряд свойств, которых нет в другой популярной RISC ISA - ARMv8 и ее следующих версиях:
RISC-V поддерживает добавление дополнительных команд для ускорения работы приложений. Например, для задач машинного обучения или цифровой обработки сигналов.
RISC-V поддерживает сокращенный формат команд, что уменьшает размер кода. Кэш инструкций того же размера может хранить примерно на 50% больше команд RISC-V, что сокращает количество cache misses и, следовательно, количество тактов на команду (Clocks Per Instruction; CPI).
В RISC-V единая команда сравнения и ветвления, по сравнению с двумя (установка флагов, затем ветвление на их основе). Условные переходы составляют 10-20% выполняемых команд, поэтому экономия получается значительной.
Заблуждение №3. Выбор устоявшейся, закрытой ISA является более безопасным бизнес-решением, чем выбор новой открытой архитектуры RISC-V.
Быстро забывается тот факт, что закрытые архитектуры тесно связаны с успехом компаний, которые ими владеют, и могут исчезнуть, если компания потерпит неудачу. Например, некогда популярные ISA DEC VAX, DEC Alpha и SUN SPARC практически исчезли.
Также не стоит забывать, что закрытые ISA — это интеллектуальная собственность, которая, в т.ч. может быть продана компаниям, преследующим иные цели, чем ее предыдущие владельцы. Например, у MIPS ISA за всю историю было более полдюжины владельцев, а у ARM ISA на текущий момент было три: Acorn, ARM Holdings plc и Softbank. Для сравнения, RISC-V развивается благодаря коллективному участию сотен компаний в нейтральной международной организации по развитию стандарта - RISC-V International. Именно их коллективный интерес определяет развитие RISC-V под эгидой данной некоммерческой организации.
Подобно Ethernet и USB, архитектура RISC-V не зависит от успехов какой-то одной компании, поэтому это более разумный выбор для развития программной экосистемы компаний на долгосрочный период. Эта долгосрочная доступность и независимость является еще одной причиной, по которой ЕС и НАСА выбрали RISC-V для своих планов на будущее.
Заблуждение №4. RISC-V ISA набирает популярность только потому, что она дешевле.
Начнем с того, что популярность RISC-V объясняется другими причинами, а не только дешевизной. Приведенные выше разоблачения Заблуждений №2 и №3 указывают на преимущества RISC-V, не зависящие от стоимости. Помимо технических преимуществ архитектуры, сама открытость стандарта означает, что процессоры на его основе будут разрабатывать больше организаций, чем для какой-либо другой архитектуры. Что должно привести к созданию более совершенных версий ядер на основе RISC-V по сравнению с ядрами других архитектур, разрабатываемым небольшим количеством организаций. Соответственно, преимущества ISA и более многочисленное сообщество разработчиков, с высокой вероятностью, приведут к лучшим характеристикам по производительности, энергоэффективности и площади кристаллов у процессоров RISC-V по сравнению с обычными ISA. Наконец, наличие большого количества поставщиков RISC-V, как и с Ethernet или USB, позволяет быстрее начинать проекты, до подписания контрактов или соглашений о неразглашении, на согласование которых могут уйти месяцы. Таким образом, выбор стандарта RISC-V (как и Ethernet или USB) может сократить время на разработку, даже если это не принесет выгоды.
Если вы хотите разрабатывать собственные процессоры, RISC-V действительно дешевле, поскольку спецификация бесплатна и открыта; архитектурная лицензия RISC-V бесплатна, в то время как для закрытых архитектур такая лицензия может стоить десятки миллионов долларов. Поскольку спецификация открыта, существуют также бесплатные примеры имплементаций с открытым исходным кодом, которые вы можете загружать, использовать и изменять, что не возможно для закрытых архитектур. При лицензировании коммерческих разработок открытый стандарт означает, что у вас есть выбор из нескольких коммерческих поставщиков и реализаций. По сравнению с разработками от единственного поставщика конкуренция, как правило, снижает цены.
И все же, несмотря на перечисленные преимущества с точки зрения объема требуемых затрат, RISC-V набирает популярность в первую очередь благодаря свободе и гибкости, заложенным в его бизнес- и техническую модели. Это преимущество позволяет заинтересованным сторонам быстро создавать конкурентоспособные решения, используя ресурсы многих партнеров с взаимными интересами, избегая зависимости от единственного поставщика и "vednor lock-in".
Заблуждение №5. Экосистемы закрытых ISA не фрагментированы.
Более старые закрытые ISA на протяжении длительного времени страдали от непредвиденных проблем с совместимостью. Вот несколько характерных примеров:
Несмотря на свои усилия использовать x86-64 ISA совместно, AMD и Intel все еще требуют разные виртуальные машины.
Расширение Intel AVX-512 значительно фрагментировано.
Компиляторы ARM используют множество runtime тестов, чтобы проверить, доступны ли SIMD команды перед их использованием.
ARMv1-ARMv7 используют 32-разрядные адресные пространства, но они несовместимы с ARMv8-A и последующими версиями, которые поддерживают как 32-, так и 64-разрядные адреса. ARMv8-M добавляет новые функции к более старой 32-разрядной версии архитектуры, но несовместима с ARMv8-A.
Современные системы на кристалле (SoC) представляют собой самую фрагментированную программную среду среди большинства устройств. Они включают в себя множество несовместимых ISA и программных стеков для различных типов и марок процессорных ядер и акселераторов (прикладные и встроенные процессорные ядра, DSP, акселераторы ML, ISP и др). Одна из причин в том, что все эти блоки как правило построены на основе закрытых ISA, которые нельзя использовать разработчикам других сложно-функциональных блоков (IP), и поэтому каждый процессорный блок имеет свою собственную ISA.
Заблуждение №6. Модульность RISC-V приводит к более фрагментированной программной экосистеме, чем у закрытых ISA.
Это заблуждение звучит с тех пор, как мы впервые начали продвигать RISC-V, поэтому о нем не забывали. Некоторые сегменты рынка требуют стабильной ISA и даже совместимости на уровне двоичного кода — задачи, которые RISC-V решает с помощью Профилей. Профили определяют набор стандартных расширений ISA, которые представляют наибольшую ценность для большинства пользователей в конкретном сегменте рынка, позволяя сообществу разработчиков ПО сосредоточить ресурсы на создании соответствующей программной экосистемы. Аналогично, поставщики аппаратных платформ разрабатывают свои решения на основе тех же стандартных профилей, чтобы гарантировать, что их разработки будут поддерживаться широким набором ПО. Например, RISC-V предлагает Профили для 64-разрядных UNIX-систем. Профили являются той основой, на которой можно создавать портируемые приложения и операционные системы.
Помимо профилей, RISC-V ISA предлагает восхитительную возможность использования общей базовой ISA с необходимыми дополнениями и единым программным стеком для множества разнообразных процессоров в рамках одного SoC. По этой причине RISC-V может фундаментально снизить фрагментацию программных стеков современных SoC (см. Заблуждение №5 выше).
Заблуждение №7. RISC-V подходит только для встраиваемых приложений.
Встраиваемые системы были наиболее успешным рынком для RISC-V на начальном этапе; они эффективно используют модульность и конфигурируемость RISC-V для улучшения производительности, площади кристалла и энергоэффективности, часто имеют простейший программный стек и в целом запускается больше таких дизайнов. Даже если бы данное заблуждение было правдой, в любом случае, рынок встраиваемых устройств и Интернета вещей (IoT) — это огромный интересный рынок, создающий новые гаджеты, которые мы все используем каждый день. На этот сегмент приходится 90% ежегодного потребления процессоров в штуках, а выручка сопоставима с доходами на рынке серверов.
Однако, даже поверхностный взгляд на список компаний-участников альянса RISC-V International позволяет предположить, что эти компании уже разрабатывают продукты RISC-V и на других рынках, таких как аэрокосмическая промышленность, автомобилестроение, рынок высокопроизводительных вычислений и центры обработки данных.
История Ethernet может многое рассказать о будущем RISC-V. Для замены Ethernet на новых рынках было предложено множество сетевых стандартов (например, ATM, FDDI, Infiniband), однако сегодня именно Ethernet используется повсеместно на скоростях от единиц мегабит до сотен гигабит в секунду; именно он является lingua franca мировых сетей.
Аналогично, у RISC-V есть шанс стать lingua franca мировых вычислений, предлагая единую базовую архитектуру от самых маленьких встраиваемых устройств до крупнейших суперкомпьютеров, плюс расширения, максимально адаптирующие ее к нуждам различных рынков.
Заблуждение №8. RISC-V не так безопасна, как закрытые ISA.
Одним из преимуществ открытой ISA является то, что эксперты из многих областей и многих организаций могут участвовать в разработке новых функциональных возможностей до того, как они будут финализированы. Одним из наиболее активных комитетов в сообществе RISC-V является рабочая группа по безопасности (Security SIG, Special Interest Gruop), которая разрабатывает множество функций безопасности для RISC-V, включая криптографические расширения и доверенные среды выполнения. Это развитие является причиной того, что RISC-V становится популярным на рынках, где безопасности уделяется особое внимание — от SoC до жестких дисков, автомобильной техники и даже ядер с legacy загрузчиками.
Заблуждение №9. Процессоры RISC-V всегда будут отставать от известных процессоров закрытых архитектур по производительности и надежности ПО.
Конкуренты стандарта Ethernet, между прочим, выдвинули то же самое заблуждение в начале 1980-х годов. В то время как у старых закрытых ISA есть преимущество в силу более раннего "старта", как и в первые дни Ethernet, мы считаем, что этот разрыв будет исчезать по мере того, как все больше компаний, производящих аппаратное и программное обеспечение, осознают преимущества использования бесплатного и открытого стандарта ISA (см. Заблуждение №7). RISC-V позволяет компаниям диверсифицировать свои бизнес-интересы и инвестировать в технологии с опережением кривой жизненного цикла. Например, MIPS теперь предлагает разработки на основе RISC-V в дополнение к собственной архитектуре, которой сделала их известной. Для компаний-производителей ПО, возможность работать на различных аппаратных платформах — это возможность присутствовать на нескольких рынках, ускоряя инвестиции и внедрение.
В итоге получается, что создание и поддержка собственной архитектуры, а также единоличная ответственность за стабильность её ПО без помощи сообществ или сторонних разработчиков — слишком затратное решение для большинства компаний. В RISC-V эта проблема отсутствует по определению, т.к. владельцем технологии является сообщество, что позволяет компаниям сосредоточиться на внедрении инноваций, а не дублировании разработок.
Заблуждение №10. Учитывая вышеизложенные доводы, RISC-V не может стать доминирующей ISA.
Мы считаем, что вышеприведенные пункты являются заблуждениями, и не могут блокировать развитие RISC-V.
Нет никаких технических разногласий по поводу того, что единая базовая ISA технически может использоваться повсеместно, от встраиваемых систем до суперкомпьютеров; основные обсуждения лежат в бизнес-плоскости, а также о том, должна ли это быть закрытая или открытая ISA. Если мы действительно достигнем единого lingua franca в области вычислений, то достаточно очевидно, что было бы слишком опасно связать судьбы всей отрасли информационных технологий с одной единственной компанией. Было бы гораздо безопаснее, если бы мы могли вместо этого полагаться на свободный и открытый стандарт, как мы это делаем в отношении сетей и периферийных устройств.
Чуть более чем за десятилетие RISC-V обоснованно стала, по крайней мере, третьей по значимости ISA для будущих приложений в области вычислительной техники. Энтузиазм в отношении открытой ISA, который мы наблюдаем во всей отрасли, напоминает тем из нас, кто достаточно стар, о том как бурно развивался открытый сетевой стандарт Ethernet. В перспективе нескольких лет выбор в пользу закрытой ISA вместо открытой RISC-V для новых проектов может стать таким же странным, как и выбор в пользу закрытых альтернатив Ethernet или USB.
Точно так же, как свободный и открытый Ethernet является доминирующей сетевой технологией, а свободный и открытый USB — доминирующим стандартом на интерфейс периферийных устройств, мы ожидаем, что к концу уже этого десятилетия основной ISA для новых проектов станет свободная и открытая архитектура стандарта RISC-V.
Заблуждениям – Нет, Объективной Оценке – Да
Разобрав десять устойчивых заблуждений о RISC-V, мы приходим к главному: пора оценивать эту архитектуру трезво и объективно. RISC-V – это не панацея, но и не игрушка. Это не только инструмент с уникальными преимуществами открытости, модульности и кастомизации, но и со своими вызовами, такими как необходимость тщательного выбора расширений и управления совместимостью в рамках профилей. Анализ, вдохновленный принципами из "Компьютерной архитектуры: Количественный подход", подтверждает: многие страхи преувеличены, а многие ожидания требуют конкретики в реализации. Успех проектов на базе открытой архитектуры RISC-V зависит не от слепой веры в мифы или антимифы, а от глубокого понимания архитектуры, грамотного проектирования и развития зрелой, стандартизированной экосистемы. Будущее RISC-V строится на реалистичной оценке ее возможностей сегодня и потенциала завтра.
Справочные материалы
Digital, Intel and Xerox, 1980. The Ethernet, A Local Area Network. Data Link Layer and Physical Layer Specifications.
While the 32-bit ARMv3 to ARMv7 ISAs offer compact instructions, the 64-bit ARMv8 and successor ISAs do not.
See Processor compatibility mode in Hyper-V.
The last table in the AVX-512 wikipedia page shows the haphazard use of features, e.g., Cooper Lake (2020) and Zen 4 (2022) have BFloat16 arithmetic, but not Ice Lake (2019), Tiger Lake (2020), Alder Lake (2021), or Rocket Lake (2021).
Asanović and D. Patterson, August 2014. Instruction sets should be free: The case for RISC-V.
RISC-V Profiles, https://github.com/riscv/riscv-profiles/blob/main/profiles.adoc.
Profiles are compatible with the inclusion of custom instructions, which are typically invoked via optimized libraries.
Slovick, The Automotive Space Gears Up to Take on RISC-V, Sept. 26, 2022, Electronic Design.
Mann, China may prove Arm wrong about RISC-V’s role in the datacenter, Oct. 5, 2022, The Register.
As long as an ISA has 32-bit address and 64-bit address versions, which RISC-V and many other ISAs offer.
megalloid
Еще рекомендую ознакомиться с этим техническим дополнением :)
https://github.com/piyushkandoriya/RISC-V-based-MYTH