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-этапный конвейер, который помогает оптимизировать перекрытия между выполнением, а также доступ к памяти для повышения эффективности. Эта архитектура в основном включает прогнозирование переходов, кэш данных, блок отладки, кэш инструкций и дополнительные блоки умножения или делителя.
Основные особенности 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 процессор?