Vad är RISC V-processor: arkitektur, arbete och dess tillämpningar

Prova Vårt Instrument För Att Eliminera Problem





RISC V är en instruktionsuppsättningsarkitektur utvecklad av University of California, Berkeley. Konceptet med RISC motiverades av sanningen att de flesta av processorinstruktionerna inte användes av de flesta datorprogram. Så onödig avkodningslogik användes inom designen av processorer , förbrukar mer ström såväl som yta. För att förkorta instruktionsuppsättningen & för att investera mer inom registerresurserna RISC V-processor genomfördes.


Denna teknik uppmärksammades av många teknikjättar och nystartade företag eftersom den är helt öppen källkod och gratis. De flesta typer av processorer är tillgängliga med ett licensavtal, dock med denna typ av processor; vem som helst kan göra sina nya processordesigner. Så den här artikeln diskuterar en översikt över en RISC V-processor – som fungerar och dess tillämpningar.



Vad är RISC V-processor?

I RISC V-processorn står termen RISC för 'reduced instruction set computer' som exekverar få datorinstruktioner medan 'V' står för 5:e generationen. Det är en hårdvaru-ISA med öppen källkod (instruction set architecture) baserad på den etablerade principen om RISK .

Jämfört med andra ISA-designer är denna ISA tillgänglig med en öppen källkodslicens. Så ett antal tillverkningsföretag har tillkännagett och även försett RISC-V-hårdvara med operativsystem med öppen källkod.



Detta är en ny arkitektur och är tillgänglig i öppna, icke-restriktiva och fria licenser. Denna processor har omfattande stöd från chip- och enhetstillverkare. Så det är främst utformat för att vara fritt utbyggbart och anpassningsbart för att användas i många applikationer.

RISC V Historia

RISC uppfanns av prof. David Patterson omkring 1980 vid University of California, Berkeley. Prof. David och Prof. John Hennessy lämnade in sina ansträngningar i två böcker, nämligen 'Computer Organization and Design' och 'Computer Architecture at Stanford University. Så de fick ACM A.M. Turingpriset 2017.

Från år 1980 till år 2010 startade RISC femte generationens utvecklingsforskning och kom till slut att identifieras som RISC-V som uttalas som risk fem.

RISC V Architecture & Working

RV12 RISC V-arkitekturen visas nedan. RV12 är mycket konfigurerbar med en enkelkärnig RV32I och RV64I-kompatibel RISC CPU som används i inbäddade fält. RV12 kommer också från en 32- eller 64-bitars CPU-familj beroende på den industriella standarden RISC-V-instruktionsuppsättningen.

RV12 exekverar helt enkelt en Harvard-arkitektur för samtidig åtkomst till både instruktioner och dataminne. Den innehåller också en 6-stegs pipeline som hjälper till att optimera överlappningar mellan exekveringen samt minnesåtkomster för att förbättra effektiviteten. Den här arkitekturen inkluderar huvudsakligen Branch Prediction, Data Cache, Debug Unit, Instruction Cache och valfria multiplikator- eller divisionsenheter.

  RISC-processorarkitektur
RISC-processorarkitektur

Huvudfunktionerna i RV12 RISC V inkluderar följande.

  • Det är en instruktionsuppsättning av industristandard.
  • Parametriserad med 32 eller 64 bitars data.
  • Den har precisa och snabba avbrott.
  • Anpassade instruktioner tillåter tillägg av proprietära hårdvaruacceleratorer.
  • Utförande av enkel cykel.
  • Sexstegs pipeline med optimerande vikt.
  • Stöd med minnesskydd.
  • Valfria eller parametriserade cacher.
  • Extremt parametriserad.
  • Användare kan välja 32/64-bitars data & Branch Prediction Unit.
  • Användare kan välja instruktions-/datacacher.
  • Användarvalbar struktur, storlek och arkitektur för cachen.
  • Hårdvaruavdelare eller multiplikatorstöd genom användardefinierad latens.
  • Bussarkitekturen är flexibel vilket stöder Wishbone & AHB.
  • Denna design optimerar kraften och storleken.
  • Designen är helt parametriserad vilket ger prestanda eller kraftavvägningar.
  • Gated CLK-design för att minska kraften.
  • Programvarustöd enligt industristandard.
  • Arkitektonisk simulator.
  • Eclipse IDE används för Linux/Windows.

RISC V Execution Pipeline

Det inkluderar fem steg som IF (instruktionshämtning), ID (instruktionsavkodning), EX (exekvering), MEM (minnesåtkomst) och WB (registeråterskrivning).

Instruktionshämtning

I instruktionshämtning eller IF-steget läses en enda instruktion från programräknaren (PC) och instruktionsminnet som uppdateras till nästa instruktion.

Instruktion föravkodning

När RVC-stöd är tillåtet kommer instruktionsföravkodningssteget att avkoda en 16-bitars komprimerad instruktion till en inbyggd 32-bitars instruktion.

Instruktionsavkodning

I instruktionsavkodningsstadiet (ID) tillåts registerfilen och förbikopplingskontrollerna bestäms.

Kör

I Execute-stadiet beräknas resultatet för en ALU-, DIV-, MUL-instruktion, minnet som tillåts för en Store- eller Load-instruktion, och grenar och hopp mäts mot deras förväntade resultat.

Minne

I detta minnessteg nås minnet via pipeline. Inkluderandet av denna fas säkerställer rörledningens höga prestanda.

Skriv tillbaka

I detta skede skrivs resultatet av exekveringsfasen in i registerfilen.

Branch Predictor

Denna processor inkluderar en grenprediktorenhet eller BPU som används för att lagra tidigare data för att vägleda RISC V-processorn vid beslut om huruvida en specifik gren tas eller inte. Dessa prediktordata uppdateras helt enkelt när grenen körs.

Denna enhet innehåller olika parametrar som bestämmer dess beteende. Till exempel används HAS_BPU för att bestämma om en gren förutsäger att en enhet är närvarande, BPU_GLOBAL_BITS kommer att bestämma hur många tidigare bitar som ska användas och BPU_LOCAL_BITS kommer att bestämma hur många av LSB i programräknaren som ska användas. Kombinationen av BPU_LOCAL_BITS & BPU_GLOBAL_BITS kommer att skapa en vektor som huvudsakligen används för att adressera Branch-Prediction-Table.

Datacache

Detta används främst för att påskynda åtkomsten av dataminne genom att buffra nya platser i minnet. Detta kan hantera halvords-, byte- och ordåtkomster när  XLEN = 32 om de ligger på sina egna gränser. Det är också kapabelt att hantera halvords-, byte-, ord- och dubbelordsåtkomster när XLEN=64 om de är på sina egna gränser.

Under en cachemiss kan ett helt block skrivas tillbaka till minnet, så vid behov kan ett nytt block laddas in i cachen. Datacachen inaktiveras genom att ställa in DCACHE_SIZE på noll. Efter det nås minnesplatser direkt via Datagränssnitt .

Instruktionscache

Detta används främst för att påskynda hämtningen av instruktioner genom att buffra nyhämtade instruktioner. Denna cache används för att hämta ett paket för varje cykel på valfri 16-bitarsgräns men inte över en blockgräns. Under en cachemiss kan ett helt block laddas från instruktionsminnet. Konfigurationen av denna cache kan göras baserat på användarens behov. Storleken på cachen, ersättningsalgoritmen och blocklängden är konfigurerbar.

Instruktionscykeln kommer att inaktiveras genom att ställa in ICACHE_SIZE på noll. Därefter hämtas paket direkt från minnet via Instruktionsgränssnitt.

Felsökningsenhet

Debug-enheten kommer att tillåta felsökningsomgivningen att stanna och undersöka CPU:n. Huvudfunktionerna i detta är Branch Tracing, Single Step Tracing upp till 8- Hardware Breakpoints.

Registrera fil

Detta är designat med 32 registerplatser från X0 till X31 där X9 Register alltid är noll. Registerfilen innehåller 1-skrivportar och 2-läsportar.

Konfigurerbart gränssnitt

Detta är ett externt gränssnitt där denna processor stöder olika externa bussgränssnitt.

Hur fungerar RISC V?

RISC-V är en instruktionsuppsättningsarkitektur som är rotad inom RISC-principerna (reduced instruction set computer). Denna processor är mycket unik och även revolutionerande eftersom den är en gratis, vanlig och öppen källkods-ISA där hårdvara kan utvecklas, programvaran kan portas och processorer kan designas för att stödja den.

Skillnad B/W RISC V Vs MIPS

Skillnaden mellan RISC V och MIPS inkluderar följande.

RISC V

MIPS

Termen RISC V står för Reduced Instruction Set Computer där 'V' är den femte generationen. Termen 'MIPS' står för 'Million instruktioner per sekund'.
RISC-V tillåter helt enkelt tillverkare av mindre enheter att designa hårdvara utan att betala. MIPS låter tillverkaren mäta processorns hastighet genom att betala eftersom det inte är gratis.
MIPS är effektivt död. RISC-V är inte effektivt död.
Denna processor tillhandahåller greninstruktioner för att jämföra två register. MIPS beror på en jämförelseinstruktion som lokaliserar ett register till 1 eller 0 baserat på om kontrasten är sann.
ISA-kodningsschemat är fast och variabelt i RISC V. ISA-kodningsschemat är fixat i MIPS
Instruktionsuppsättningens storlek är 16-bitars eller 32-bitars eller 64-bitars eller 128-bitars. Instruktionsuppsättningens storlek är 32-bitars eller 64-bitars.
Den har 32 register för allmänna ändamål och flyttal Den har 31 allmänna ändamål och flyttalsregister.
Den har 26 enkel och dubbel precision med flyttal. Den har 15 enkel och dubbel precision med flyttal.

Skillnad B/W RISC V Vs ARM

Skillnaden mellan RISC V och ARM inkluderar följande.

RISC V

ÄRM

RISC-V är öppen källkod, så det kräver ingen licens. ARM är en sluten källa, så den behöver en licens.
Det är en ny processorplattform, så det finns väldigt lite stöd för mjukvaru- och programmeringsmiljöer. ARM har ett mycket stort onlinecommunity som stöder bibliotek och strukturer för att hjälpa måldesignerna på olika plattformar som mikroprocessorer, mikrokontroller och även servrar.
RISC V-baserade chips använder 1 watt effekt. ARM-baserade chips använder mindre än 4 watt.
Den har ett fast och variabelt ISA-kodningssystem. Den har ett fast ISA-kodningssystem.
RISC V-instruktionsuppsättningens storlek sträcker sig från 16-bitar till 128-bitar. Dess instruktionsstorlek sträcker sig från 16-bitar till 64-bitar.
Den innehåller 32 register för allmänna ändamål och flyttal. Den innehåller 31 register för allmänna ändamål och flyttal.
Den har 26 enkla precisionsflyttalsoperationer. Den har 33-enkel precisions flyttalsoperationer.
Den har 26-dubbel precision med flyttal. Den har 29-dubbel precision med flyttal.

RISC V Verilog-kod

Instruktionsminnets verilog-kod för RISC visas nedan.

// Verilog-kod för RISC-processor
// Verilog-kod för instruktionsminne

module Instruction_Memory(
input[15:0] pc,
output[15:0] instruktion
);

reg [`kol – 1:0] minne [`row_i – 1:0];
tråd [3 : 0] rom_addr = pc[4 : 1];
första
Börja
$readmemb(“./test/test.prog”, minne,0,14);
slutet
tilldela instruktion = minne[rom_addr];

slutmodul

Verilog-kod för 16-bitars RISC V-processor:

modul Risc_16_bit(
ingång clk
);

trådhopp,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
tråd[1:0] alu_op;
tråd [3:0] opcode;

// Datapath

Datapath_Unit DU
(
.clk(clk),
.jump(hoppa),
.frog(groda),
.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)
);

// styrenhet
Kontroll_Enhetskontroll
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.jump(hoppa),
.bne(bne),
.frog(groda),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
slutmodul

Instruktionsuppsättningar

RISC V-instruktionsuppsättningarna diskuteras nedan.

Aritmetiska operationer

RISC V aritmetiska operationer listas nedan.

Mnemonic Typ Instruktion Beskrivning
ADD  rd, rs1, rs2

R

Lägg till rdß rs1 + rs2
SUB rd, rs1, rs2

R

Subtrahera rdß rs1 –  rs2
ADDI rd, rs1, imm12

jag

Lägg till omedelbart rdß rs1 + imm12
SLT rd, rs1, rs2

R

Ställ in mindre än rdß rs1 -< rs2
SLTI rd, rs1, imm12

jag

Ställ in mindre än omedelbart rdß rs1 -< imm12
SLTU rd, rs1, rs2

R

Ange mindre än osignerad rdß rs1 -< rs2
SLTIU rd, rs1, imm12

jag

Ange mindre än omedelbart osignerad rdß rs1 -< imm12
LUI rd, imm20

I

Ladda övre omedelbart rdß imm20<<12
AUIP rd, imm20

I

Lägg till övre direkt till PC rdß PC+imm20<<12

Logiska operationer

RISC V logiska operationer listas nedan.

Mnemonic Typ Instruktion Beskrivning
OCH  rd, rs1, rs2

R

OCH rdß rs1 & rs2
ELLER rd, rs1, rs2

R

ELLER rdß rs1 | rs2
XOR  rd, rs1, rs2

R

FRI rdß rs1 ^  rs2
ANDI  rd, rs1, imm12

jag

OCH omedelbart rdß rs1 & imm2
ORI rd, rs1, imm12

jag

ELLER Omedelbart rdß rs1 | imm12
OXRI rd, rs1, imm12

jag

XOR omedelbart rdß rs1 ^ rs2
SLL rd, rs1, rs2

R

Växla vänster logiskt rdß rs1 <<  rs2
SRL rd, rs1, rs2

R

Växla höger logiskt rdß rs1 >>  rs2
RAS rd, rs1, rs2

R

Skift höger aritmetik rdß rs1 >>  rs2
SLLI rd, rs1, shamt

jag

Växla vänster logiskt omedelbart rdß rs1 << shamt
SRLI rd, rs1, shamt

jag

Växla höger logiskt omedelbart rdß rs1 >> shamt
SRAI rd, rs1, shamt

jag

Skift höger aritmetik omedelbart rdß rs1 >> shamt

Last-/butiksoperationer

RISC V-lastnings-/lagerverksamheten listas nedan.

Mnemonic Typ Instruktion Beskrivning
LD  rd, imm12 (rs1)

jag

Ladda dubbelord rdß mem [rs1 +imm12]
LW rd, imm12 (rs1)

jag

Ladda ord rdß mem [rs1 +imm12]
LH rd, imm12 (rs1)

jag

Ladda halvvägs rdß mem [rs1 +imm12]
LB rd, imm12 (rs1)

jag

Ladda byte rdß mem [rs1 +imm12]
LWU rd, imm12 (rs1)

jag

Ladda ordet osignerat rdß mem [rs1 +imm12]
LHU rd, imm12 (rs1)

jag

Ladda ett halvt ord osignerat rdß mem [rs1 +imm12]
LBU rd, imm12 (rs1)

jag

Ladda byte osignerad rdß mem [rs1 +imm12]
SD  rs2, imm12 (rs1)

S

Lagra dubbla ord rs2 till mem [rs1 +imm12]
SW rs2, imm12 (rs1)

S

Lagra ord rs2 (31:0) till mem [rs1 +imm12]
SH rs2, imm12 (rs1)

S

Förvara halvvägs rs2 (15:0) till mem [rs1 +imm12]
SB rs2, imm12 (rs1)

S

Lagra byte rs2 (15:0) till mem [rs1 +imm12]
SRAI rd, rs1, shamt

jag

Skift höger aritmetik omedelbart rs2 (7:0) till mem [rs1 +imm12]

Filialverksamhet

RISC V-förgreningsverksamheten listas nedan.

Mnemonic Typ Instruktion Beskrivning
BEQ rs1, rs2, imm12

SB

Gren lika Om rs1== rs2

PC ß PC+imm12

BNE rs1, rs2, imm12

SB

Gren inte lika Om rs1!= rs2

PC ß PC+imm12

BGE  rs1, rs2, imm12

SB

Gren större än eller lika Om rs1>= rs2

PC ß PC+imm12

BGEU  rs1, rs2, imm12

SB

Gren större än eller lika med osignerad Om rs1>= rs2

PC ß PC+imm12

BLT  rs1, rs2, imm12

SB

Filial mindre än Om rs1< rs2

PC ß PC+imm12

BLTU  rs1, rs2, imm12

SB

Filial mindre än  osignerad Om rs1< rs2

PC ß PC+imm12 <<1

JAL rd, imm20

UJ

Hoppa och länka rdßPC+4
PCß PC+imm20
JALR  rd, imm12(rs1)

jag

Hopp och länk register rdßPC+4
PCß rs1+imm12

Fördelar

De fördelarna med RISC V-processor inkluderar följande.

  • Genom att använda RISCV kan vi spara utvecklingstid, mjukvaruutveckling, verifiering etc.
  • Denna processor har många fördelar som enkelhet, öppenhet, modularitet, ren design och utbyggbarhet.
  • Detta stöds av flera språkkompilatorer som GCC (GNU Compiler Collection), en friprogramkompilator och genom Linux OS .
  • Detta kan användas av företag fritt på grund av inga royalties, inga licensavgifter och inga villkor.
  • RISC-V-processorn innehåller inga nya eller innovativa funktioner eftersom den helt enkelt följer etablerade principer för RISC.
  • I likhet med flera andra ISA definierar denna processorspecifikation helt enkelt olika instruktionsuppsättningsnivåer. Så detta innehåller 32 & 64-bitars varianter samt tillägg för att ge stöd för flyttal instruktioner.
  • Dessa är gratis, enkla, modulära, stabila, etc.

Nackdelar

De nackdelar med RISC V-processorn inkluderar följande.

  • Komplexa instruktioner används ofta av kompilatorer och programmerare.
  • O/p för en RISC kan ändras baserat på koden när efterföljande instruktioner inom en loop beror på den tidigare instruktionen för exekvering.
  • Dessa processorer behöver spara en mängd olika instruktioner snabbt, vilket kräver ett stort cacheminne för att svara på instruktionen inom rätt tid.
  • De kompletta funktionerna, funktionerna och fördelarna med RISC beror huvudsakligen på arkitekturen.

Ansökningar

De tillämpningar av RISC V processor inkluderar följande.

  • RISC-V används i inbyggda system, artificiell intelligens och maskininlärning.
  • Dessa processorer används i högpresterande inbyggda systemapplikationer.
  • Denna processor är lämplig att använda inom vissa speciella områden som edge computing, AI och lagringsapplikationer.
  • RISC-V är viktigt eftersom det tillåter mindre enhetstillverkare att designa hårdvara utan att betala.
  • Denna processor tillåter helt enkelt forskarna och utvecklarna att designa såväl som forskning med en fritt tillgänglig ISA- eller instruktionsuppsättningsarkitektur.
  • Tillämpningarna av RISC V sträcker sig från små inbyggda mikrokontroller till stationära datorer och superdatorer inklusive vektorprocessorer.

Detta är alltså en översikt över en RISC V-processor – arkitektur, arbete med applikationer. Här är en fråga till dig, vad är en CISC-processor?