Какво е 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 е много конфигурируем с едноядрен RV32I и RV64I съвместим RISC процесор, който се използва във вградени полета. RV12 също е от семейство 32 или 64-битови CPU в зависимост от индустриалния стандартен набор от инструкции 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 една инструкция се чете от програмния брояч (PC) и паметта на инструкциите, която се актуализира до следващата инструкция.

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

След като поддръжката на RVC е разрешена, етапът на предварително декодиране на инструкции ще декодира 16-битова компресирана инструкция в естествена 32-битова инструкция.

Декодиране на инструкции

В етапа на декодиране на инструкции (ID) регистрационният файл е разрешен и се решават контролите за байпас.

Изпълни

В етапа на изпълнение резултатът се изчислява за инструкция ALU, DIV, MUL, паметта, разрешена за инструкция за съхраняване или зареждане, а разклоненията и преходите се измерват спрямо техните очаквани резултати.

памет

В този етап на паметта паметта се осъществява чрез конвейера. Включването на тази фаза гарантира висока производителност на тръбопровода.

Пиша в отговор на писмо

В този етап резултатът от етапа на изпълнение се записва в регистрационния файл.

Предсказател на разклонения

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

Това устройство включва различни параметри, които определят поведението му. Например, HAS_BPU се използва за определяне дали даден клон предвижда наличието на единица, BPU_GLOBAL_BITS ще определи колко минали бита трябва да се използват и BPU_LOCAL_BITS ще определи колко от LSB на програмния брояч трябва да се използва. Комбинацията от 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 с отворен код, където може да се разработва хардуер, софтуерът може да се пренася и процесорите могат да бъдат проектирани да го поддържат.

Разлика B/W RISC V срещу MIPS

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

RISC 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 операции с плаваща запетая с единична и двойна точност.

Разлика B/W RISC V срещу ARM

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

RISC V

ARM

RISC-V е с отворен код, така че не изисква лиценз. ARM е затворен код, така че се нуждае от лиценз.
Това е нова процесорна платформа, така че има много малка поддръжка за софтуер и среди за програмиране. ARM има много голяма онлайн общност, която поддържа библиотеки и структури за подпомагане на целевите дизайнери в различни платформи като микропроцесори, микроконтролери и също сървъри.
Базираните на RISC V чипове използват 1 ват мощност. Чиповете, базирани на ARM, използват под 4 вата мощност.
Има фиксирана и променлива система за кодиране ISA. Има фиксирана система за кодиране ISA.
Размерът на набора от инструкции за RISC V варира от 16-бита до 128-бита. Размерът на инструкциите му варира от 16-бита до 64-бита.
Той включва 32 регистъра с общо предназначение и с плаваща запетая. Той включва 31 регистъра с общо предназначение и с плаваща запетая.
Има 26 операции с плаваща запетая с единична точност. Има 33 операции с плаваща запетая с единична точност.
Има 26 операции с плаваща запетая с двойна точност. Има операции с плаваща запетая с 29 двойна точност.

RISC V Verilog код

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

// Verilog код за RISC процесор
// Verilog код за памет за инструкции

модул Instruction_Memory(
вход [15:0] компютър,
инструкция за изход [15:0].
);

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

краен модул

Verilog код за 16-битов RISC V процесор:

модул Risc_16_bit(
вход clk
);

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
(
.clk(clk),
.jump(скок),
.frog(жаба),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.reg_write(reg_write),
.bne(bne),
.alu_op(alu_op),
.opcode(opcode)
);

// контролен блок
Control_Unit контрол
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.jump(скок),
.bne(bne),
.frog(жаба),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
краен модул

Комплекти инструкции

Наборите инструкции RISC V са обсъдени по-долу.

Аритметични операции

Аритметичните операции на RISC V са изброени по-долу.

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

Р

Добавете rdß rs1 + rs2
SUB rd, rs1, rs2

Р

Извадете rdß rs1 –  rs2
ДОБАВЯНЕ rd, rs1, imm12

аз

Добавете незабавно rdß rs1 + imm12
SLT rd, rs1, rs2

Р

Задайте по-малко от rdß rs1 -< rs2
SLTI rd, rs1, imm12

аз

Задайте по-малко от незабавно rdß rs1 -< imm12
SLTU rd, rs1, rs2

Р

Задайте по-малко от без знак rdß rs1 -< rs2
SLTIU rd, rs1, imm12

аз

Задайте по-малко от незабавен неподписан rdß rs1 -< imm12
LUI rd, imm20

IN

Заредете горната част незабавно rdß imm20<<12
AUIP rd, imm20

IN

Добавяне на горен непосредствен към компютър rdß PC+imm20<<12

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

Логическите операции на RISC V са изброени по-долу.

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

Р

И rdß rs1 и rs2
ИЛИ rd, rs1, rs2

Р

ИЛИ rdß rs1 | rs2
XOR  rd, rs1, rs2

Р

БЕЗПЛАТНО rdß rs1 ^  rs2
ANDI  rd, rs1, imm12

аз

И незабавно rdß rs1 & imm2
ORI rd, rs1, imm12

аз

ИЛИ Незабавно rdß rs1 | imm12
OXRI rd, rs1, imm12

аз

XOR незабавно rdß rs1 ^ rs2
SLL rd, rs1, rs2

Р

Изместване наляво логично rdß rs1 <<  rs2
SRL rd, rs1, rs2

Р

Изместване надясно логично rdß rs1 >>  rs2
RAS rd, rs1, rs2

Р

Shift надясно аритметика rdß rs1 >>  rs2
SLLI rd, rs1, shamt

аз

Преместване наляво логично незабавно rdß rs1 << shamt
SRLI rd, rs1, shamt

аз

Изместване надясно логично незабавно rdß rs1 >> shamt
SRAI rd, rs1, shamt

аз

Shift надясно аритметика незабавно rdß rs1 >> shamt

Операции за зареждане/съхраняване

Операциите за зареждане/съхраняване на RISC V са изброени по-долу.

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

аз

Зареждане на двойна дума rdß mem [rs1 +imm12]
LW rd, imm12 (rs1)

аз

Зареди дума rdß mem [rs1 +imm12]
LH rd, imm12 (rs1)

аз

Заредете наполовина rdß mem [rs1 +imm12]
LB rd, imm12 (rs1)

аз

Заредете байт rdß mem [rs1 +imm12]
LWU rd, imm12 (rs1)

аз

Зареждане на дума без знак rdß mem [rs1 +imm12]
LHU rd, imm12 (rs1)

аз

Зареди половин дума без знак rdß mem [rs1 +imm12]
LBU rd, imm12 (rs1)

аз

Зареждане на байт без знак rdß mem [rs1 +imm12]
SD  rs2, imm12 (rs1)

С

Съхранявайте двойна дума rs2 към mem [rs1 +imm12]
SW rs2, imm12 (rs1)

С

Съхранявайте дума rs2 (31:0) към mem [rs1 +imm12]
SH rs2, imm12 (rs1)

С

Съхранявайте наполовина rs2 (15:0) към mem [rs1 +imm12]
SB rs2, imm12 (rs1)

С

Запазете байт rs2 (15:0) към mem [rs1 +imm12]
SRAI rd, rs1, shamt

аз

Shift надясно аритметика незабавно rs2 (7:0) към mem [rs1 +imm12]

Разклонителни операции

Операциите за разклоняване на RISC V са изброени по-долу.

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

SB

Разклонение равно Ако rs1== rs2

PC ß PC+imm12

BNE rs1, rs2, imm12

SB

Клонът не е равен Ако rs1!= rs2

PC ß PC+imm12

BGE  rs1, rs2, imm12

SB

Клон по-голям или равен Ако rs1>= rs2

PC ß PC+imm12

BGEU  rs1, rs2, imm12

SB

Разклонение, по-голямо или равно на unsigned Ако rs1>= rs2

PC ß PC+imm12

BLT  rs1, rs2, imm12

SB

Клон по-малко от Ако rs1< rs2

PC ß PC+imm12

BLTU  rs1, rs2, imm12

SB

Разклонение по-малко от  неподписано Ако rs1< rs2

PC ß PC+imm12 <<1

JAL  rd, imm20

UJ

Скачай и свързвай rdßPC+4
PCß PC+imm20
JALR  rd, imm12(rs1)

аз

Регистрирайте Jump and Link rdßPC+4
PCß rs1+imm12

Предимства

The предимства на RISC V процесор включват следното.

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

Недостатъци

The недостатъци на RISC V процесора включват следното.

  • Сложните инструкции често се използват от компилатори и програмисти.
  • O/p на RISC може да се промени въз основа на кода, когато следващите инструкции в рамките на цикъл зависят от по-ранната инструкция за изпълнение.
  • Тези процесори трябва бързо да записват различни инструкции, което изисква голяма кеш памет, за да отговори на инструкцията своевременно.
  • Пълните характеристики, възможности и предимства на RISC зависят главно от архитектурата.

Приложения

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

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

По този начин, това е преглед на RISC V процесор – архитектура, работа с приложения. Ето един въпрос към вас, какво е CISC процесор?