Включите исполнение JavaScript в браузере, чтобы запустить приложение.

Архитектура процессоров RISC-V: что это такое и преимущества перед x86

RISC-V — это архитектура открытого и настраиваемого набора команд (ISA). Ее гибкость позволяет разработчикам создавать процессоры под конкретные проекты. RISC-V часто сравнивают с x86 и ARM, но у этой архитектуры свои преимущества. Она имеет открытый исходный код и считается новичком в сфере с очень низкой конкуренцией. В статье рассмотрим особенности архитектуры процессоров RISC-V, ее плюсы и минусы.

Что такое архитектура процессоров RISC-V

Архитектура RISC-V (risk-five) — это архитектура набора команд с открытым исходным кодом (ISA). За последние годы она стала популярной благодаря гибкости, модульности и расширяемости. В отличие от проприетарных архитектур здесь есть доступ к чертежам, и их можно настраивать.

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

До RISC-V на рынке было несколько процессоров RISC (Reduced Instruction Set Computer). Примеры — MIPS, SPARC и PowerPC. Эти типы архитектур считались эффективными и имели свои приложения. Но они часто сопровождались затратами на лицензирование и ограниченным доступом к их внутренней работе.

История RISC-V началась в Калифорнийском университете в Беркли, где эта архитектура была первоначально разработана в качестве исследовательского проекта в 2010 году. Целью проекта было создание новой ISA с открытым исходным кодом. Планировалось, что технология устранила бы ограничения, связанные с существующими проблемами собственности, и заложила основу для будущих разработок процессоров. Проектом RISC-V руководили ученые-компьютерщики Крсте Асанович, Юнсуп Ли и Эндрю Уотерман, которые были вдохновлены успехом программного обеспечения с открытым исходным кодом. 

Первая версия RISC-V ISA, или базовый набор целочисленных команд «RV32I», была выпущена в 2011 году. В этом первоначальном выпуске основное внимание уделялось простоте и эффективности, а также соблюдению принципов вычисления с сокращенным набором команд (RISC). За прошедшие годы RISC-V ISA был улучшен. Разработчики добавили новые расширения и функции.

В 2015 году был создан Фонд для содействия внедрению и стандартизации ISA RISC-V. Он объединил лидеров отрасли, академические учреждения и отдельных участников для совместной разработки и распространения технологии. С момента своего создания в состав Фонда вошло более 200 организаций. Архитектура была внедрена многими компаниями для различных приложений.

Проблемы архитектуры x86

x86 — это архитектура для сложных вычислений с набором команд (CISC), созданная Intel. x86 часто называют 32-разрядной из-за ее ограничений в работе с 32-разрядной памятью. Это ограничивает доступ к системной памяти для процессора x86 объемом не более 4 Гигабайт.

Избыточность системы команд

Архитектура со сложным набором команд (CISC) может работать медленнее, чем архитектуры RISC, такие как MIPS или ARM.

Отсутствие кроссплатформенности 

Для современных процессоров часто требуется 64-разрядная ОС. Поддерживает только Windows XP, Vista, 7, 8, Linux.

Безопасность 

В x86 отсутствуют улучшенные функции безопасности, присущие x64. Это делает их более уязвимыми для различных киберугроз.

Взаимодействие потоков

Все устройства в системе (видеокарты, BIOS) совместно используют доступную оперативную память, оставляя еще меньше памяти для операционной системы и приложений.

Преимущества архитектуры RISC-V

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

Повышение энергоэффективности и производительности 

Поддерживаемый растущей экосистемой, включающей компиляторы GCC и операционные системы Linux, облегчает бесперебойную разработку программного обеспечения. 

Модульность и расширяемость 

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

Удешевление разработки 

Компании могут внедрять новые архитектуры без лишних затрат. Для работы не требуется лицензирование собственных архитектур. Это делает технологию подходящим выбором для стартапов и небольших компаний полупроводниковой промышленности. Такая доступность привела к демократизации дизайна процессоров, что позволило более широкому кругу новаторов выйти на рынок и внести свой вклад в развитие вычислительной техники.

Обратная совместимость 

В области процессоров основными являются архитектуры x86 и ARM. После десятилетий разработки технология архитектуры процессоров продолжает совершенствоваться. Современные архитектуры x86 и ARM содержат сотни тысяч страниц архитектурной документации и множество версий. Им приходится сохранять множество устаревших определений, чтобы поддерживать обратную совместимость архитектуры или создавать новые, чтобы иметь возможность интегрировать уже существующие технологические части.

Архитектура, которая была запущена не так давно, обладает преимуществом поздней разработки. За последние годы компьютерная архитектура стала зрелой технологией. А проблемы, выявленные в процессе разработки микропроцессоров, были тщательно изучены.

Безопасность 

Функции безопасности доступны благодаря ссылочным проектам с открытым исходным кодом, инструментам анализа состава ПО и расширениям безопасности. Архитектуры open source есть в свободном доступе, что исключает необходимость использовать обходные пути и скрытые каналы.

Характеристики архитектуры RISC-V 

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

Основная и единственная часть набора команд — базовое подмножество целочисленных команд, обозначаемое буквой I. С помощью этого подмножества целочисленных команд может быть реализован полный программный компилятор. Другие подмножества команд — необязательные модули. Типичные модули включают в себя M/A/F/D/C.

Базовый набор инструкций 

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

Отсутствие неявных внутренних состояний 

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

Cartesi Machine — площадка для блокчейна, вычислительных задач и AI. Она использует RISC-V. Архитектура разделена на процессор и плату. Процессор выполняет вычисления с помощью традиционного цикла выборки-выполнения, одновременно поддерживая множество регистров. Плата определяет окружающую среду с помощью набора элементов памяти (ПЗУ, ОЗУ, флэш-накопителей, накопительных модулей памяти) и ряда устройств. Чтобы сделать возможной проверку, машина Cartesi отображает все свое состояние в физическом адресном пространстве четко определенным образом. Это включает в себя внутреннее состояние процессора, платы и всех подключенных устройств.

Отсутствие предикатных инструкций 

Условные перемещения или команды с предикатами могут заменить непредсказуемые короткие прямые переходы. Условные перемещения более простые,но их сложно использовать с условным кодом, который может вызывать исключения (обращения к памяти и операции с плавающей запятой). Предикация добавляет системе дополнительное состояние флага, инструкции по установке, а также дополнительные затраты на кодирование для каждой команды.

Команды условного перемещения и команды с предикатами усложняют микроархитектуры, в которых нарушен порядок. Они добавляют неявный третий исходный операнд из-за необходимости копировать исходное значение архитектурного регистра назначения в переименованный физический регистр назначения, если предикат равен false. Использование предикации вместо ветвей может привести к снижению производительности при использовании входных данных, не включенных в обучающий набор компилятора.

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

Компактный базовый набор инструкций 

В базовом IS существует четыре основных формата команд (R/I/S/U). Они имеют фиксированную длину в 32 бита и должны быть выровнены по четырехбайтовой границе в памяти. RISC-V ISA сохраняет регистры источника (rs1 и rs2) и назначения (rd) в одном и том же положении во всех форматах для упрощения декодирования. 

32 регистра общего назначения 

Базовое подмножество целочисленных команд RISC-V (обозначается буквой I) определяет длину команды в 32 бита одинаковой длины. Это упрощает проектирование базовых процессоров RISC-V, поддерживающих только подмножества целочисленных команд. Однако 32-разрядные кодированные команды одинаковой длины также создают проблему большого размера кода (Code Size).

Архитектура определяет необязательное подмножество сжатых команд, которое представлено Core VC, для удовлетворения определенных требований к объему кода (например, к встроенному домену). Преимущество RISC-V заключается в поздней разработке. С самого начала планируется сжатая команда и резервируется достаточное пространство для кодирования. 16-разрядная команда и обычная 32-разрядная команда могут свободно чередоваться. Процессор при этом не определяет дополнительные состояния.

Поддержка ослабленной модели памяти (Relaxed Memory Model) 

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

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

Наличие спаренных (fused) операций «сравнение + переход»

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

Еще одно преимущество объединенной команды сравнения и перехода — переходы наблюдаются раньше в потоке команд внешнего интерфейса. Они могут быть предсказаны раньше. 

Инструкции ускорения вызова функций и выполнения операторов 

Компилятор и ускорение вызова функций поддерживают неизменность того, что все 32-разрядные значения хранятся в формате с расширенным знаком в 64-разрядных регистрах. Даже 32-разрядные целые числа без знака расширяют бит 31 на биты с 63 по 32. Так преобразование между 32-разрядными целыми числами без знака и 32-разрядными целыми числами со знаком невозможно. Как и преобразование из 32-разрядного целого числа со знаком в 64-разрядное целое число со знаком. Существующие 64-разрядные логические операции SLTU и сравнения ветвей без знака по-прежнему корректно работают с 32-разрядными целыми числами без знака в соответствии с этим инвариантом. 

Недостатки архитектуры 

Есть и минусы, которые ограничивают широкое распространение этой архитектуры:

  • по сравнению с ARM и x86 RISC-V имеет ограниченное распространение на рынке, особенно в потребительских устройствах и основных вычислительных системах;
  • это растущая экосистема программного обеспечения, но при этом она отстает от существующих МСА в плане доступности программного обеспечения и инструментов разработки;
  • у архитектур меньше возможностей и разнообразия по сравнению с другими МСА;
  • возможная фрагментация из-за гибкости RISC-V влияет на совместимость между различными реализациями и расширениями;
  • есть проблемы совместимости с устаревшим ПО других ISAS. Поэтому требуются дополнительные усилия по перекомпиляции или переносу;
  • наличие проблем интеллектуальной собственности, связанных с конкретными расширениями RISC-V.

RISC-V сегодня и перспективы

По мере расширения масштабов внедрения архитектуры RISC-V расширяется сотрудничество экосистемы и отрасли в поддержку этой архитектуры. Появилось несколько заметных совместных проектов. Например, проект RISC-V Software Ecosystem (RISE). Это глобальный консорциум выдающихся лидеров отрасли. Его миссия заключается в ускорении разработки open source ПО для архитектуры RISC-V. Есть также предприятие, которое нацелено на содействие разработке эталонных архитектур на основе стандарта с первоначальным акцентом на применении в автомобилестроении.

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