Простое руководство по сравнению ARM с RISC-V с 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?' Это как "О, Боже, это будет очень много работы". Можно, но..."
Поэтому я решил, что настало время рассмотреть некоторые ключевые различия и сходства между архитектурами RISC-V, ARM и x86. Я расскажу об их истории, преимуществах и недостатках, а также о том, что отличает их друг от друга.
В конце вы получите представление о том, почему создание Raspberry Pi на базе архитектуры x86 потребовало бы больших усилий, но почему создание RISC-V Raspberry Pi не исключено.
Обзор
RISC-V | АРМ | x86 | |
---|---|---|---|
Происхождение | RISC-V International | Arm 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 и 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 будущим? Сообщите нам об этом в комментариях!
Как я уже упоминал выше, действительно только три компании производят чипы архитектуры x86 - Intel и AMD.
То есть... только два. 🙂
Совершенно верно - спасибо, tozo!
Я считаю, что несколько несправедливо считать возраст 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).