Цель этой статьи — дать читателю подробное представление об архитектуре RISC-V, а также помочь сравнить архитектуру RISC-V с популярной архитектурой ARM. Прежде чем мы углубимся в техническую терминологию и начнем сравнивать две архитектуры, читателю важно понять, что подразумевается под архитектурой набора команд.
Архитектура набора команд (ISA, Instruction Set Architecture) — это, по сути, часть машины, которая видна программисту уровня ассемблера или разработчику компилятора. ISA — это место, где программное обеспечение встречается с аппаратным обеспечением. ISA определяет команды/инструкции, которые изначально могут быть поняты машиной и ее микроархитектурой, а также определяет, как инструкции должны храниться, получать к ним доступ и реализовываться.
Мы даем инструкции аппаратному обеспечению компьютера, используя язык, понятный компьютеру. Компьютерный язык состоит из слов, называемых инструкциями , а словарь называется набором команд. Наборы инструкций рассказывают нам о функции каждой инструкции и о том, как инструкция представлена в памяти (кодировка).
Термин «архитектура» описывает функциональную спецификацию процессора. Он описывает, какую функциональность программное обеспечение может обеспечить с помощью аппаратного обеспечения. Архитектура не говорит вам, как устроен процессор. Он говорит вам, что может сделать процессор. С другой стороны, микроархитектура описывает, как построен и спроектирован процессор. Микроархитектура определяет количество и размер кэшей, количество циклов инструкций, длину конвейера и многое другое.
Поняв, что такое ISA (архитектура набора команд), мы перейдем к обзору архитектур RISC-V и ARM.
Обзор архитектуры RISC-V
RISC-V — это открытая ISA, которая свободно доступна для научных кругов и промышленности. Она строит и совершенствует исходную архитектуру с сокращенным набором команд (RISC). Что такое архитектура RISC и чем она отличается от архитектуры CISC, вы можете прочитать в этой статье.
RISC-V — пятое издание проектов RISC ISA, разработанных Калифорнийским университетом в Беркли. Римская цифра «V» означает «вариации» и «векторы» для поддержки ряда исследований компьютерной архитектуры.
Особенности архитектуры RISC-V
- RISC-V представляет собой архитектуру загрузки-сохранения, означающую три вещи: (i) его арифметические инструкции работают только с регистрами, (ii) только инструкции загрузки и сохранения передают данные в память и из нее, и (iii) данные сначала должны быть загружены в память регистра, прежде чем с ним можно будет работать.
- RISC-V не имеет чрезмерной архитектуры или чрезмерной оптимизации для какой-либо конкретной реализации, микроархитектурного шаблона или цели развертывания и, следовательно, подходит для всех вычислительных целей. Это возможно, поскольку его ISA разбита на две части: базовую ISA и дополнительные расширения. Базовая ISA ограничена содержанием минимального набора инструкций, которого достаточно для формирования цели компилятора и соответствия современным операционным системам. Базовую ISA нельзя переопределить, и она присутствует в любой реализации.
- Существуют дополнительные расширения ISA, которые можно добавить к базовой ISA в зависимости от реализации. Это позволяет RISC-V также поддерживать обширную настройку и специализацию.
- Это самый маленький ISA для 32-битных и 64-битных адресов, который использует порядок байтов с прямым порядком байтов для системы памяти. Порядок байтов с прямым порядком байтов означает, что младший байт многобайтовых данных хранится по наименьшему адресу памяти. LSB сохраняется первым.
- RISC-V использует технологию RVC (сжатие кода RISC-V) для увеличения размера программного кода, а также уменьшает количество циклов ЦП на инструкцию за счет увеличения количества инструкций на программу. Он жертвует плотностью кода ради упрощения схемы реализации.
- RISC приводит к увеличению размера кода, что не является оптимальным, особенно для встроенных систем, поскольку они имеют ограниченный объем памяти для команд. Чтобы уменьшить размер кода, RISC-V использует расширение RVC. RVC заменяет обычные 32-битные инструкции более короткими 16-битными кодировками инструкций. Он также не имеет слота задержки ветвления.
Обзор архитектуры ARM
Первоначально аббревиатура ARM означала Acorn RISC Machine, но позже она была изменена на Advanced RISC Machine. Пожалуй, сейчас это наиболее часто используемая процессорная архитектура в мире.
Впервые данная архитектура была разработана производителем компьютеров Acorn Computers в конце 1980-х годов для своих персональных компьютеров. Это тип RISC-архитектуры. Существует 3 различных типа архитектуры Arm для разных приложений. Это архитектуры A, R и M.
A-профиль (приложения): оптимизирован для работы со сложными операционными системами, такими как Windows и Linux. Он обеспечивает высочайшую производительность.
R-профиль (в реальном времени): оптимизирован для систем с ограничениями реального времени, таких как встроенные системы управления.
M-профиль (микроконтроллер): оптимизирован для устройств с низким энергопотреблением и используется многими устройствами Интернета вещей.
Особенности архитектуры ARM
- Это архитектура загрузки-сохранения с 32-битным диапазоном адресации.
- В отличие от RISC-V, это не ISA с открытым исходным кодом, а проприетарная ISA.
- Она использует двусторонний порядок байтов для системы памяти. Это означает, что процессор/машина ARM может вычислять/передавать данные в обоих форматах с порядком байтов на аппаратном уровне.
- Она использует набор инструкций Thumb для уменьшения размера программного кода. Thumb также известен как набор инструкций T32, он используется в процессорах до Armv8.
- Это смесь набора команд длиной 32 и 16 бит, которая имеет оптимальную плотность кода для систем с ограниченным размером памяти и стоимостью, таких как встроенные приложения. Он обеспечивает высокую производительность 32-битного набора команд и почти обеспечивает плотность кода 16-битного набора команд.
RISC-V против ARM
Теперь, когда у нас есть представление об ISA RISC-V и ARM, мы сравним их друг с другом на основе множества факторов.
Свойство | Архитектура RISC-V | ARM-архитектура |
Лицензирование | открытое | собственное (проприетарное) |
RISC архитектура | ✓ | ✓ |
Архитектура загрузки и хранения | ✓ | ✓ |
Поддержка 32-битного и 64-битного адресного пространства | ✓ | ✓ |
Порядок байтов по умолчанию | прямой порядок байтов | двусторонний |
Методы сжатия кода | ✓ (RVC) | ✓ (Thumb) |
Слот задержки | нет | нет |
Как видим, между архитектурами есть существенные отличия
Почему RISC-V считается угрозой для архитектуры ARM?
Прежде всего, RISC-V имеет открытый исходный код, а ARM — нет. Это означает, что RISC-V не требует лицензий и лицензионных отчислений. RISC-V позволяет пользователю бесплатно расширять ISA новыми инструкциями и обновлять микроархитектуру процессоров RISC-V, но ARM требует от пользователя уплаты сборов за использование лицензии. Благодаря этому архитектура RISC-V была тепло встречена многими производителями.
С точки зрения сложности ARM считается более сложной архитектурой чем RISC-V. При этом также ARM более оптимизирована для мобильных телефонов, чем для ноутбуков, настольных компьютеров и серверов. RISC-V же не слишком оптимизирована для какой-либо конкретной реализации. Она подходит для всех вычислительных систем, от микроконтроллеров до суперкомпьютеров.
Заключение
RISC-V и ARM являются архитектурами RISC ISA. Первая имеет открытый исходный код, а вторая является собственной ISA. В этой статье впервые было рассмотрено значение ISA, а также разделение этого термина на инструкцию, набор инструкций, архитектуру, и был описан каждый из этих компонентов. И RISC-V, и ARM имеют свои преимущества, и трудно принять чью-либо сторону, но гибкость и природа RISC-V с открытым исходным кодом позволили быстрее внедрить его в электронную промышленность, обещая ему потенциальное будущее!