Простое руководство по сравнению ARM с RISC-V с x86

RISC-V vs ARM vs x86 Заголовок изображения

Введение

Мы много говорили о том. Raspberry Pi 5 конечно же, здесь, на PiCockpit. На днях я обнаружил обсуждение Raspberry Pi 5, в центре которого была ARM-архитектура Pi и ее сравнение с архитектурой RISC-V. В течение многих лет люди говорили о совместимости Raspberry Pi с x86. Но как насчет RISC-V Pi?

Это особенно интересно, поскольку Raspberry Pi является членом RISC-V International.

Как и Arduino, собственно.

Итак, потенциально существует будущее для чипов архитектуры RISC-V в Raspberry Pis. Однако я бы не стал задерживать дыхание, надеясь на появление Raspberry Pi с архитектурой x86.

В конце концов, в недавнем обсуждении, опубликованном Raspberry PiГордон Холлингворт сказал: "Люди спрашивают: "А вы могли бы это сделать? Можете ли вы создать x86 Raspberry Pi?' Это как "О, Боже, это будет очень много работы". Можно, но..."

Микросхема Intel

Поэтому я решил, что настало время рассмотреть некоторые ключевые различия и сходства между архитектурами RISC-V, ARM и x86. Я расскажу об их истории, преимуществах и недостатках, а также о том, что отличает их друг от друга.

В конце вы получите представление о том, почему создание Raspberry Pi на базе архитектуры x86 потребовало бы больших усилий, но почему создание RISC-V Raspberry Pi не исключено.

Обзор

RISC-VАРМx86
ПроисхождениеRISC-V InternationalArm Ltd.Intel и AMD
Набор инструкцийRISC (Reduced Instruction Set Computing)RISC (Reduced Instruction Set Computing)CISC (Complex Instruction Set Computing)
Порядок следования байтовОбычно little-endian (настраивается пользователем)Как правило, двухдиапазонный (настраивается пользователем)Little-endian
ПриложенияВстраиваемые системы, устройства IoT, индивидуальные решенияМобильные устройства, встраиваемые системы, серверыНастольные компьютеры, ноутбуки, серверы, рабочие станции
Модель лицензированияЛицензирование с открытым исходным кодом, безвозмездное лицензированиеARM лицензирует свои разработки производителямIntel и AMD производят собственные микросхемы
ЭкосистемаРазвитие экосистемы, инициативы по открытому кодуБольшая экосистема, широкая поддержка сторонних разработчиковБольшая экосистема программного и аппаратного обеспечения

Теперь давайте пройдемся по каждому из этих пунктов.

Происхождение

И начну я с архитектуры x86, поскольку она является самой старой из трех. Архитектура x86 берет свое начало в 1978 году, когда Intel выпустила семейство 8086. Архитектура x86 была CISC, что было актуально в то время. Сегодня архитектура x86 по-прежнему находится под контролем Intel, а также AMD.

Архитектура ARM получила свое начало 7 лет спустя, когда компания Acorn Computers Ltd. выпустила ARM1. Сегодня компании Acorn Computers уже нет, но ее архитектура ARM продолжает существовать благодаря компании Arm Ltd. В настоящее время Arm Ltd. лицензирует архитектуру ARM другим компаниям.

Для сравнения: RISC-V появилась совсем недавно, всего лишь в 2010 году в Калифорнийском университете в Беркли. В 2015 году группа технологических компаний (от IBM до Google и Nvidia) объединилась и основала RISC-V Foundation. В 2020 году из-за геополитических проблем RISC-V Foundation переехал в Швейцарию и стал RISC-V International.

Логотип RISC-V

Набор инструкций

Прежде всего, позвольте пояснить разницу между RISC и CISC.

RISC-процессоры используют небольшой оптимизированный набор инструкций, каждая из которых занимает один тактовый цикл, что обеспечивает более быстрое и предсказуемое выполнение.

В отличие от них CISC-процессоры имеют более широкий и разнообразный набор инструкций, часто включающий сложные инструкции, которые могут требовать несколько тактов, что приводит к потенциально более медленной, но более универсальной работе при решении различных задач.

Итак, RISC-V, безусловно, основана на RISC. Но ее отличает тот факт, что она имеет открытый исходный код.

В своей работе 2014 г, Наборы инструкций должны быть свободными: пример для RISC-V, Крсте Асанович и Дэвид А. Паттерсон сравнивают RISC-V с Linux. Идея заключается в том, что существует полностью открытая архитектура набора инструкций. Поэтому люди должны иметь возможность манипулировать ею, играть с ней и делиться ею.

Асанович и Паттерсон утверждают, что это может способствовать инновациям, повышению прозрачности и снижению затрат.

Следует отметить, что хотя RISC-V сам по себе является открытым исходным кодом, конкретные реализации RISC-V могут быть как открытыми, так и проприетарными.

Инструкции ARM также основаны на RISC. Однако, поскольку Arm Ltd. лицензирует архитектуру, они не являются открытыми. По словам Асановича и Паттерсона: "Лицензия ARM не позволяет вам даже разработать ядро ARM; вы просто используете их дизайн". Хотя все не совсем так просто, в целом это так и есть.

Выше я говорил, что архитектура x86 основана на CISC. Это действительно так, но следует отметить, что начиная с 90-х годов прошлого века процессоры x86 включают также инструкции SIMD (Single Instruction, Multiple Data) для задач параллельной обработки. Это позволяет многоядерным процессорам работать также быстро.

В конце концов, самый быстрый в мире суперкомпьютер Frontier построен на базе архитектуры x86.

А вот второй по быстродействию суперкомпьютер в мире - Fugaku - работает на базе ARM.

Многие утверждают, что сегодня различие между RISC и CISC не имеет большого значения. Мол, современные процессоры настолько мощные, что различия между этими типами наборов инструкций практически исчезли. Однако в своем призыве к созданию RISC-V Асанович и Паттерсон утверждают, что "вот уже несколько десятилетий ни одна новая CISC ISA не была успешной", и поэтому более разумным является переход на архитектуру на базе RISC.

Порядок следования байтов

Эндианальность - это порядок байтов, в котором многобайтовые типы данных хранятся в памяти компьютера.

В little-endian системах младший байт хранится по младшему адресу памяти, а в big-endian системах старший байт хранится по младшему адресу.

Эндианальность очень важна при обмене данными между процессорами. Если вы посылаете информацию из системы с большим эндианом в систему с малым эндианом, то ваши данные могут быть легко повреждены, если вы не преобразуете их должным образом.

RISC-V, как правило, имеет младший порядок следования. Однако это можно настроить, если вы хотите, чтобы порядок байтов в RISC-V был big-endian.

Архитектура ARM может быть как little-endian, так и big-endian, в зависимости от конкретной реализации. Как и в случае RISC-V, ARM-чип можно сконфигурировать как big-endian.

Raspberry Pi по умолчанию имеют младший порядок. Вы можете проверить это самостоятельно, подойдя к своему Raspberry Pi, открыв терминал и выполнив команду:

lscpu

Архитектура x86 является little-endian. Но, в отличие от RISC-V и ARM, изменить это нельзя. Малоэндовость - это особенность архитектуры x86.

Приложения

Я хочу ненадолго вернуться к статье Асановича и Паттерсона. Хотя статья написана в 2014 году, в ней содержится очень важный тезис. Они утверждают, что "если в войнах за ПК побеждал 80×86, то в планшетах и смартфонах эпохи PostPC доминирует RISC; в 2013 году было поставлено более 10 [млрд.] ARM по сравнению с 0,3 [млрд.] 80x86".

Это огромное расхождение, но оно также показывает, что области применения архитектуры определяют ее значимость. Именно поэтому в 2020 году было так много шума, когда компания Apple представила чип M1 для своих новых компьютеров. Если Apple переходит с x86 на ARM, то что это значит для будущего x86?

Тем не менее, x86 по-прежнему доминирует на компьютерном рынке. Настольные компьютеры, ноутбуки и серверы по-прежнему в основном используют архитектуру x86.

ARM, в свою очередь, обычно используется в смартфонах и планшетах. И, конечно же, в вашем скромном Raspberry Pi. Однако, похоже, что ARM может начать захватывать и компьютерный мир.

смартфон на столе

RISC-V явно надеется отвоевать долю пространства у архитектуры ARM, но пока остается открытым вопрос о том, что она может сделать в будущем. И университеты, и промышленность вкладывают средства в RISC-V и внимательно следят за ее развитием.

Если ARM начала оттеснять x86, то начнет ли RISC-V оттеснять ARM?

Модель лицензирования

Самым строгим из них является x86. Как я уже упоминал выше, чипы архитектуры x86 производят только две компании - Intel и AMD. Эти чипы не настраиваются, а их архитектура полностью проприетарна.

Архитектура ARM работает по-другому из-за модели лицензирования. Обычная лицензия на архитектуру ARM не позволяет создавать проекты на этой архитектуре. Однако бывают и исключения, например, чип M1 компании Apple был предсказуемо адаптирован под ее желания.

Архитектура RISC-V имеет открытый исходный код и не требует лицензионных отчислений, что позволяет всем желающим разрабатывать и производить процессоры RISC-V без лицензионных отчислений. Это действительно похоже на Linux для ISA.

Интересно, однако, что Intel и AMD являются членами RISC-V International. Очевидно, они также считают, что вносить свой вклад в развитие архитектуры RISC-V полезно.

Экосистема

Экосистема RISC-V быстро развивается, многие компании и исследователи участвуют в проектах с открытым исходным кодом и разрабатывают продукты на базе RISC-V.

Хотя экосистема программного обеспечения в настоящее время не является огромной, она растет. Ее развитие можно наблюдать на примере проект RISE (RISE расшифровывается как RISC-V Software Ecosystem).

Если говорить об ARM и x86, то они оба доминируют на своих рынках. Экосистемы обеих систем хорошо отлажены и обширны.

Это один из самых явных недостатков RISC-V. Она просто не имеет такого широкого распространения, как две другие, и конкуренция здесь очень жесткая.

RISC и CISC в действии

В этом фантастическом видеоролике от Программист [заполните пробел]При этом на уровне ассемблерного кода можно увидеть, как именно работает RISC и CISC.

Здесь подробно рассматривается разница между RISC и CISC.

На ARM и RISC-V код Ассемблера имеет более короткие строки, но их больше. На x86 строки Ассемблера сложнее, но их меньше.

В видеоролике рассматривается, как компилятор GCC и компилятор Clang преобразуют код на языке C++ в ассемблер для каждой из трех ISA - ARM vs. RISC-V vs. x86_64. Посмотрите:

Заключение

Недавно мы опубликовали статью, в которой сравнивали Orange Pi 5 Plus с Raspberry Pi 5 и Rock 5 Model B. Интересно, что хотя все три этих SBC построены на базе ARM, у компании Radxa есть модель на базе архитектуры x86 под названием Скала Pi X.

Некоторые опасаются, что широкое внедрение RISC-V приведет к еще большей фрагментации. Это хорошо согласуется со сравнением с Linux. Сколько сегодня существует дистрибутивов Linux? Однако сообщество RISC-V активно работает над созданием стандартов, чтобы свести к минимуму фрагментацию и проблемы совместимости.

Многие (в том числе и недоброжелатели) рассматривают RISC-V как способ продвинуть архитектуру микросхем в будущее.

Конечно, в условиях обострения торговых войн между странами все становится гораздо сложнее. Компания Arm Ltd. базируется в Великобритании, а Intel и AMD - в США. Неудивительно, что такие страны, как Китай и Россия, склоняются к RISC-V.

Однако есть люди, которые считают, что RISC-V обречена на провал. Они утверждают, что RISC-V будет не просто причина фрагментация, а скорее то, что RISC-V уже это фрагментирована. И, следовательно, она не сможет оторваться от земли.

Обновлениеe (ноябрь6 января 2023 г.): Компания Arm Holdings только что объявила о приобретении миноритарного пакета акций компании Raspberry Pi Ltd. Пока неясно, что это означает для будущего. Подробнее можно прочитать здесь:

Что вы думаете? Является ли RISC-V будущим? Сообщите нам об этом в комментариях!

3 комментариев

  1. tozo Ноябрь 6, 2023 в 1:13 пп

    Как я уже упоминал выше, действительно только три компании производят чипы архитектуры x86 - Intel и AMD.
    То есть... только два. 🙂

    • Adam Ноябрь 7, 2023 в 12:36 пп

      Совершенно верно - спасибо, tozo!

  2. Bruce Hoult Ноябрь 8, 2023 в 10:27 пп

    Я считаю, что несколько несправедливо считать возраст RISC-V с момента, когда несколько университетских исследователей в 2010 году в пабе (или еще где-нибудь) решили начать разработку собственной ISA, а остальных - с момента появления на рынке первого коммерческого чипа.

    По мере развития идей, как на уровне языка ассемблера, так и в двоичном кодировании, ISA пережила несколько несовместимых версий.

    Первый RISC-V-чип, который можно было купить, - FE310 от SiFive - появился в декабре 2016 года на плате-клоне HiFive1 Arduino. Это просто микроконтроллер, в котором есть только инструкции режима User. Инструкции Machine mode и Supervisor mode, а также CSR находились в стадии активной разработки и несовместимых изменений вплоть до ратификации (заморозки, публикации) базовой ISA в июле 2019 года. Компания SiFive выпустила Linux SBC HiFive Unleashed (с SoC FU540) в начале 2018 года, всего было выпущено около 500 штук, но это был экспериментальный продукт, и они были готовы к тому, что он окажется бесхозным, если в ISA до ратификации будут внесены несовместимые изменения.

    Я думаю, что справедливая дата "возникновения RISC-V" находится где-то между публикацией Privileged Architecture 1.10 в мае 2017 года и ратификацией в июле 2019 года. Уж точно не 2010 год.

    По другому поводу замечу, что 8086 был наименее CISC-чипом из CISC-чипов, и это большая причина, по которой он смог дожить до эпохи RISC (миллиарды от IBM PC и клонов тоже очень помогли!). VAX, M68000, Z8000, NS 16032/32032 были просто слишком сложны, чтобы сделать их быстрыми.

    "начиная с 90-х годов процессоры x86 также включают инструкции SIMD (Single Instruction, Multiple Data) для задач параллельной обработки. Это позволяет многоядерным процессорам работать также быстро." Это абсолютно не связано между собой.

    "Архитектура RISC-V имеет открытый исходный код и не требует лицензионных отчислений, что позволяет любому желающему разрабатывать и производить процессоры RISC-V без лицензионных отчислений. Это действительно похоже на Linux для ISA". Верно, но собственная разработка обходится гораздо дороже, чем лицензирование дизайна у одного из дюжины коммерческих поставщиков ядра RISC-V (с очень похожей бизнес-моделью, как у Arm).

Комментировать