Что такое процессор RISC V: архитектура, работа и приложения

Попробуйте наш инструмент устранения неполадок





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


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



Что такое процессор RISC V?

В процессоре RISC V термин RISC означает «компьютер с сокращенным набором команд», который выполняет несколько компьютерных инструкций, тогда как «V» означает 5-е поколение. Это аппаратная ISA с открытым исходным кодом (архитектура набора инструкций), основанная на установленном принципе РИСК .

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



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

История RISC V

RISC был изобретен профессором Дэвидом Паттерсоном примерно в 1980 году в Калифорнийском университете в Беркли. Профессор Дэвид и профессор Джон Хеннесси представили свои усилия в двух книгах, а именно «Организация и проектирование компьютеров» и «Архитектура компьютеров в Стэнфордском университете». Так, они получили ACM A.M. Премия Тьюринга в 2017 году.

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

Архитектура RISC V и работа

Архитектура RV12 RISC V показана ниже. RV12 имеет широкие возможности настройки благодаря одноядерному RISC-процессору, совместимому с RV32I и RV64I, который используется во встроенных полях. RV12 также относится к семейству 32- или 64-битных ЦП в зависимости от набора инструкций промышленного стандарта RISC-V.

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

  Архитектура RISC-процессора
Архитектура RISC-процессора

Основные особенности RV12 RISC V включают следующее.

  • Это набор инструкций промышленного стандарта.
  • Параметрируется 32- или 64-битными данными.
  • Он имеет точные и быстрые прерывания.
  • Пользовательские инструкции позволяют добавлять проприетарные аппаратные ускорители.
  • Выполнение одного цикла.
  • Шестиступенчатый конвейер с оптимизирующим свертыванием.
  • Поддержка с защитой памяти.
  • Необязательные или параметризованные кэши.
  • Чрезвычайно параметризованный.
  • Пользователи могут выбрать 32/64-битные данные и блок предсказания переходов.
  • Пользователи могут выбирать кэши инструкций/данных.
  • Выбираемая пользователем структура, размер и архитектура кеша.
  • Аппаратный делитель или поддержка множителя с заданной пользователем задержкой.
  • Гибкая архитектура шины поддерживает Wishbone и AHB.
  • Эта конструкция оптимизирует мощность и размер.
  • Конструкция полностью параметризована, что обеспечивает компромисс между производительностью и мощностью.
  • Закрытая конструкция CLK для снижения мощности.
  • Поддержка программного обеспечения в соответствии с отраслевым стандартом.
  • Архитектурный симулятор.
  • Eclipse IDE используется для Linux/Windows.

Конвейер выполнения RISC V

Он включает пять этапов, таких как IF (выборка инструкции), ID (декодирование инструкции), EX (выполнение), MEM (доступ к памяти) и WB (обратная запись регистра).

Получение инструкций

На этапе выборки инструкций или IF одна инструкция считывается из счетчика программ (ПК) и памяти инструкций, которая обновляется до следующей инструкции.

Предварительное декодирование инструкций

Как только поддержка RVC будет разрешена, этап предварительного декодирования инструкций будет декодировать 16-битную сжатую инструкцию в собственную 32-битную инструкцию.

Инструкция декодирования

На этапе декодирования инструкций (ID) разрешается регистровый файл и принимаются решения об управлении обходом.

Выполнять

На этапе выполнения вычисляется результат для инструкций ALU, DIV, MUL, объем памяти, отведенный для инструкций сохранения или загрузки, а переходы и переходы сравниваются с их ожидаемыми результатами.

Память

На этом этапе памяти доступ к памяти осуществляется через конвейер. Включение этой фазы обеспечивает высокую производительность конвейера.

Ответить

На этом этапе результат этапа выполнения записывается в регистровый файл.

Предиктор ветвления

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

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

Кэш данных

Это в основном используется для ускорения доступа к памяти данных за счет буферизации новых областей памяти, к которым осуществляется доступ. Это позволяет обрабатывать доступы к полусловам, байтам и словам, когда  XLEN = 32, если они находятся на своих собственных границах. Он также способен обрабатывать доступ к полуслову, байту, слову и двойному слову при XLEN=64, если они находятся на своих собственных границах.

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

Кэш инструкций

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

Цикл инструкций будет отключен установкой ICACHE_SIZE в ноль. После этого посылки выбираются прямо из памяти через Интерфейс инструкций.

Блок отладки

Блок отладки позволит среде отладки остановить и проверить ЦП. Основными функциями этого являются трассировка ветвей, пошаговая трассировка до 8 аппаратных точек останова.

Зарегистрировать файл

Он разработан с 32 ячейками регистров от X0 до X31, где регистр X9 всегда равен нулю. Регистровый файл включает 1 порт записи и 2 порта чтения.

Настраиваемый интерфейс

Это внешний интерфейс, где этот процессор поддерживает различные интерфейсы внешней шины.

Как работает RISC V?

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

Отличие ч/б RISC V от MIPS

Разница между RISC V и MIPS заключается в следующем.

РИСК V

MIPS

Термин RISC V означает компьютер с сокращенным набором команд, где «V» — это пятое поколение. Термин «MIPS» означает «Миллион инструкций в секунду».
RISC-V просто позволяет производителям небольших устройств бесплатно разрабатывать аппаратное обеспечение. MIPS позволяет производителю измерять скорость процессора за плату, потому что это не бесплатно.
MIPS фактически мертв. RISC-V не является эффективно мертвым.
Этот процессор предоставляет команды ветвления для сравнения двух регистров. MIPS зависит от инструкции сравнения, которая находит в регистре значение 1 или 0 в зависимости от того, является ли контраст истинным.
Схема кодирования ISA является фиксированной и переменной в RISC V. Схема кодирования ISA исправлена ​​в MIPS
Размер набора инструкций 16-битный, 32-битный, 64-битный или 128-битный. Размер набора инструкций 32-битный или 64-битный.
Он имеет 32 регистра общего назначения и регистра с плавающей запятой. Он имеет 31 регистр общего назначения и регистр с плавающей запятой.
Он имеет 26 операций с плавающей запятой одинарной и двойной точности. Он имеет 15 операций с плавающей запятой одинарной и двойной точности.

Разница Ч/Б RISC V и ARM

Разница между RISC V и ARM заключается в следующем.

РИСК V

РУКА

RISC-V имеет открытый исходный код, поэтому не требует лицензии. ARM является закрытым исходным кодом, поэтому ему нужна лицензия.
Это новая процессорная платформа, поэтому поддержка программного обеспечения и сред программирования очень мала. ARM имеет очень большое онлайн-сообщество, которое поддерживает библиотеки и структуры, чтобы помочь целевым разработчикам на различных платформах, таких как микропроцессоры, микроконтроллеры и серверы.
Чипы на базе RISC V потребляют 1 Вт мощности. Чипы на базе ARM потребляют менее 4 Вт мощности.
Он имеет фиксированную и переменную систему кодирования ISA. Он имеет фиксированную систему кодирования ISA.
Размер набора инструкций RISC V варьируется от 16 до 128 бит. Размер инструкции варьируется от 16 до 64 бит.
Он включает в себя 32 регистра общего назначения и регистра с плавающей запятой. Он включает в себя 31 регистр общего назначения и регистр с плавающей запятой.
Он имеет 26 операций с плавающей запятой одинарной точности. Он имеет 33 операции с плавающей запятой одинарной точности.
Он имеет 26 операций с плавающей запятой двойной точности. Он имеет 29 операций с плавающей запятой двойной точности.

Код Verilog RISC V

Верилог-код памяти инструкций для RISC показан ниже.

// Код Verilog для RISC-процессора
// Код Verilog для памяти инструкций

модуль Инструкция_Память(
ввод[15:0] пк,
инструкция выход[15:0]
);

reg [`col – 1:0] memory [`row_i – 1:0];
провод [3:0] rom_addr = pc[4:1];
исходный
начинать
$readmemb(“./test/test.prog”, memory,0,14);
конец
инструкция назначения = memory[rom_addr];

конечный модуль

Код Verilog для 16-битного процессора RISC V:

модуль Risc_16_bit(
ввод клик
);

wire jump,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
провод[1:0] alu_op;
провод [3:0] код операции;

// Путь к данным

Datapath_Unit DU
(
.клк(клк),
.прыжок(прыжок),
.лягушка(лягушка),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src (алу_источник),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.reg_write(reg_write),
.бнэ(бнэ),
.алу_оп(алу_оп),
.opcode(опкод)
);

// устройство управления
Control_Unit управления
(
.opcode(опкод),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.алу_оп(алу_оп),
.прыжок(прыжок),
.бнэ(бнэ),
.лягушка(лягушка),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src (алу_источник),
.reg_write(reg_write)
);
конечный модуль

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

Наборы инструкций RISC V обсуждаются ниже.

Арифметические операции

Арифметические операции RISC V перечислены ниже.

Мнемоника Тип Инструкция Описание
ДОБАВИТЬ rd, rs1, rs2

р

Добавлять rdß rs1 + rs2
SUB рд, рс1, рс2

р

Вычесть rdß rs1 –  rs2
АДДИ рд, рс1, имм12

я

Добавить немедленно rdß rs1 + imm12
SLT рд, рс1, рс2

р

Установить меньше чем rdß rs1 -< rs2
СЛТИ рд, рс1, имм12

я

Установить меньше, чем немедленно rdß rs1 -< imm12
СЛТУ рд, рс1, рс2

р

Установить меньше, чем без знака rdß rs1 -< rs2
СЛТИУ рд, рс1, имм12

я

Установить меньше, чем немедленный беззнаковый rdß rs1 -< imm12
ЛУИ рд, имм20

В

Загрузить верхнюю немедленную rdß imm20<<12
АУИП рд, имм20

В

Добавить верхний непосредственный доступ к ПК rdß ПК+imm20<<12

Логические операции

Логические операции RISC V перечислены ниже.

Мнемоника Тип Инструкция Описание
И  рд, рс1, рс2

р

А ТАКЖЕ rdß rs1 и rs2
ИЛИ рд, рс1, рс2

р

ИЛИ ЖЕ rdß rs1 | rs2
Исключающее ИЛИ rd, rs1, rs2

р

СВОБОДНО rdß rs1 ^  rs2
АНДИ rd, rs1, imm12

я

И немедленно rdß rs1 и imm2
ОРИ рд, рс1, имм12

я

ИЛИ немедленно rdß rs1 | имм12
OXRI rd, rs1, imm12

я

XOR немедленно rdß rs1 ^ rs2
SLL рд, рс1, рс2

р

Сдвиг влево логический rdß rs1 <<  rs2
SRL рд, рс1, рс2

р

Логический сдвиг вправо rdß rs1 >>  rs2
РАН рд, рс1, рс2

р

Сдвиг вправо арифметический rdß rs1 >>  rs2
SLLI рд, рс1, шамт

я

Сдвиг влево логический немедленный rdß rs1 << притворство
СРЛИ рд, рс1, шамт

я

Сдвиг вправо логический немедленный rdß rs1 >> придурок
СРАЙ рд, рс1, шамт

я

Сдвиг вправо арифметический немедленный rdß rs1 >> придурок

Загрузка/сохранение операций

Операции загрузки/сохранения RISC V перечислены ниже.

Мнемоника Тип Инструкция Описание
LD rd, imm12 (rs1)

я

Загрузить двойное слово rdß мем [rs1 +imm12]
LW rd, imm12 (rs1)

я

Загрузить слово rdß мем [rs1 +imm12]
LH rd, imm12 (rs1)

я

Загрузить наполовину rdß мем [rs1 +imm12]
ЛБ рд, имм12 (рс1)

я

Загрузить байт rdß мем [rs1 +imm12]
LWU rd, imm12 (rs1)

я

Загрузить слово без знака rdß мем [rs1 +imm12]
LHU rd, imm12 (rs1)

я

Загрузить полслова без знака rdß мем [rs1 +imm12]
ЛБУ рд, имм12 (рс1)

я

Загрузить байт без знака rdß мем [rs1 +imm12]
SD rs2, imm12 (rs1)

С

Сохранить двойное слово rs2 в память [rs1 +imm12]
SW rs2, imm12 (rs1)

С

Слово магазина rs2 (31:0) в память [rs1 +imm12]
Ш рс2, имм12 (рс1)

С

Хранить на полпути rs2 (15:0) в память [rs1 +imm12]
СБ рс2, имм12 (рс1)

С

Хранить байт rs2 (15:0) в память [rs1 +imm12]
СРАЙ рд, рс1, шамт

я

Сдвиг вправо арифметический немедленный rs2 (7:0) в память [rs1 +imm12]

Операции ветвления

Операции ветвления RISC V перечислены ниже.

Мнемоника Тип Инструкция Описание
БЭК rs1, rs2, imm12

СБ

Филиал равный Если rs1== rs2

ПК ß ПК+imm12

БНЭ рс1, рс2, имм12

СБ

Ветвь не равна Если rs1!= rs2

ПК ß ПК+imm12

БГЭ rs1, rs2, imm12

СБ

Ветвь больше или равна Если rs1>= rs2

ПК ß ПК+imm12

БГЭУ rs1, rs2, imm12

СБ

Ветвь больше или равна unsigned Если rs1>= rs2

ПК ß ПК+imm12

БЛТ rs1, rs2, imm12

СБ

Филиал менее Если rs1< rs2

ПК ß ПК+imm12

БЛТУ rs1, rs2, imm12

СБ

Ветвь меньше, чем неподписанная Если rs1< rs2

ПК ß ПК+imm12 <<1

JAL rd, imm20

UJ

Перейти и ссылка rdßPC+4
PCß PC+imm20
JALR rd, imm12(rs1)

я

Регистрация прыжков и ссылок rdßPC+4
PCß rs1+imm12

Преимущества

преимущества RISC V-процессор включая следующее.

  • Используя RISCV, мы можем сэкономить время разработки, разработки программного обеспечения, проверки и т. д.
  • У этого процессора есть много преимуществ, таких как простота, открытость, модульность, дизайн с чистого листа и расширяемость.
  • Это поддерживается несколькими языковыми компиляторами, такими как GCC (GNU Compiler Collection), бесплатным программным компилятором и через ОС Linux .
  • Это может использоваться компаниями свободно из-за отсутствия лицензионных отчислений, лицензионных сборов и каких-либо условий.
  • Процессор RISC-V не включает никаких новых или инновационных функций, поскольку он просто следует установленным принципам RISC.
  • Подобно нескольким другим ISA, эта спецификация процессора просто определяет различные уровни набора команд. Таким образом, он содержит 32- и 64-битные варианты, а также расширения для поддержки инструкций с плавающей запятой.
  • Это бесплатные, простые, модульные, стабильные и т. д.

Недостатки

недостатки процессора RISC V включая следующее.

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

Приложения

приложения RISC V процессор включая следующее.

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

Таким образом, это обзор процессора RISC V – архитектура, работа с приложениями. Вот вопрос к вам, что такое CISC процессор?