Hva er RISC V-prosessor: arkitektur, arbeid og applikasjoner

Prøv Instrumentet Vårt For Å Eliminere Problemer





RISC V er en instruksjonssettarkitektur utviklet av University of California, Berkeley. Konseptet med RISC var motivert av sannheten om at de fleste prosessorinstruksjonene ikke ble brukt av de fleste dataprogrammer. Så unødvendig dekodingslogikk ble brukt i designene til prosessorer , bruker mer strøm så vel som areal. For å forkorte instruksjonssettet og for å investere mer innenfor registerressurser, kan RISC V-prosessor ble implementert.


Denne teknologien ble lagt merke til av mange teknologigiganter og oppstartsbedrifter fordi den er helt åpen kildekode og gratis. De fleste typer prosessorer er tilgjengelige med en lisensavtale, men med denne typen prosessorer; hvem som helst kan lage sine nye prosessordesign. Så denne artikkelen diskuterer en oversikt over en RISC V-prosessor – som fungerer og dens applikasjoner.



Hva er RISC V-prosessor?

I RISC V-prosessoren står begrepet RISC for 'redusert instruksjonssett datamaskin' som utfører få datamaskininstruksjoner mens 'V' står for 5. generasjon. Det er en åpen kildekode maskinvare ISA (instruction set architecture) basert på det etablerte prinsippet om FARE .

Sammenlignet med andre ISA-design, er denne ISA tilgjengelig med en åpen kildekode-lisens. Så en rekke produksjonsbedrifter har annonsert og også levert RISC-V-maskinvare, med åpen kildekode-operativsystemer.



Dette er en ny arkitektur og er tilgjengelig i åpne, ikke-begrensende og gratis lisenser. Denne prosessoren har omfattende støtte fra brikke- og enhetsprodusenter. Så den er hovedsakelig designet for å være fritt utvidbar og tilpassbar for bruk i mange applikasjoner.

RISC V historie

RISC ble oppfunnet av prof. David Patterson rundt 1980 ved University of California, Berkeley. Prof. David med prof. John Hennessy leverte sin innsats i to bøker, nemlig 'Computer Organization and Design' og 'Computer Architecture at Stanford University. Så de mottok ACM A.M. Turing-prisen i 2017.

Fra år 1980 til 2010-året ble RISCs femte generasjons utviklingsforskning startet og ble til slutt identifisert som RISC-V, som uttales som risiko fem.

RISC V Architecture & Working

RV12 RISC V-arkitekturen er vist nedenfor. RV12 er svært konfigurerbar med en enkeltkjerne RV32I og RV64I-kompatibel RISC CPU som brukes i innebygde felt. RV12 er også fra en 32- eller 64-bits CPU-familie avhengig av industristandard RISC-V-instruksjonssettet.

RV12 utfører ganske enkelt en Harvard-arkitektur for samtidig tilgang til instruksjoner så vel som dataminne. Den inkluderer også en 6-trinns pipeline som hjelper til med å optimalisere overlappinger mellom utførelsen samt minnetilganger for å forbedre effektiviteten. Denne arkitekturen inkluderer hovedsakelig Branch Prediction, Data Cache, Debug Unit, Instruction Cache og valgfrie multiplikator- eller divider-enheter.

  RISC-prosessorarkitektur
RISC-prosessorarkitektur

Hovedtrekkene til RV12 RISC V inkluderer følgende.

  • Det er et industristandard instruksjonssett.
  • Parametrisert med 32 eller 64 bit data.
  • Den har presise og raske avbrudd.
  • Egendefinerte instruksjoner tillater tillegg av proprietære maskinvareakseleratorer.
  • Utførelse av enkelt syklus.
  • Seks-trinns rørledning med optimaliserende foldet.
  • Støtte med minnebeskyttelse.
  • Valgfrie eller parametriserte cacher.
  • Ekstremt parametrisert.
  • Brukere kan velge 32/64-bits data og grenprediksjonsenhet.
  • Brukere kan velge instruksjons-/datacacher.
  • Brukervalgbar struktur, størrelse og arkitektur for cache.
  • Maskinvaredeler eller multiplikatorstøtte etter brukerdefinert ventetid.
  • Bussarkitekturen er fleksibel som støtter Wishbone & AHB.
  • Denne designen optimerer kraften og størrelsen.
  • Designet er fullstendig parametrisert som gir ytelse eller kraftavveininger.
  • Gated CLK-design for å redusere kraften.
  • Programvarestøtte etter industristandard.
  • Arkitektonisk simulator.
  • Eclipse IDE brukes for Linux/Windows.

RISC V Execution Pipeline

Det inkluderer fem stadier som IF (instruksjonshenting), ID (instruksjonsdekoding), EX (execute), MEM (minnetilgang) og WB (register-tilbakeskrivning).

Henting av instruksjoner

I Instruction Fetch eller IF-stadiet leses en enkelt instruksjon fra programtelleren (PC) og instruksjonsminnet som oppdateres til neste instruksjon.

Instruksjon Pre-Decode

Når RVC-støtte er tillatt, vil Instruction Pre-Decode-stadiet dekode en 16-bits komprimert instruksjon til en naturlig 32-bits instruksjon.

Instruksjonsdekoding

I instruksjonsdekodingsstadiet (ID) er registerfilen tillatt og omkjøringskontrollene bestemmes.

Henrette

I Utfør-stadiet beregnes resultatet for en ALU-, DIV-, MUL-instruksjon, minnet som er tillatt for en Store- eller Load-instruksjon, og grener og hopp måles mot deres forventede utfall.

Hukommelse

I dette minnestadiet får du tilgang til minnet gjennom rørledningen. Inkluderingen av denne fasen sikrer rørledningens høye ytelse.

Skriv tilbake

I dette stadiet skrives resultatet av utførelsesfasen inn i registerfilen.

Branch Predictor

Denne prosessoren inkluderer en grenprediktorenhet eller BPU som brukes til å lagre tidligere data for å veilede RISC V-prosessoren i å avgjøre om en spesifikk gren er tatt eller ikke. Disse prediktordataene oppdateres ganske enkelt når grenen kjøres.

Denne enheten inkluderer forskjellige parametere som bestemmer dens oppførsel. For eksempel brukes HAS_BPU til å bestemme om en gren forutsier at en enhet er tilstede, BPU_GLOBAL_BITS vil bestemme hvor mange tidligere biter som skal brukes og BPU_LOCAL_BITS vil bestemme hvor mange av LSB-ene til programtelleren som skal brukes. Kombinasjonen av BPU_LOCAL_BITS og BPU_GLOBAL_BITS vil skape en vektor som hovedsakelig brukes til å adressere grenprediksjonstabellen.

Databuffer

Dette brukes hovedsakelig for å øke hastigheten på tilgangen til dataminne ved å bufre nylig åpnede minneplasseringer. Dette er i stand til å håndtere halvords-, byte- og ordtilganger når  XLEN = 32 hvis de er på sine egne grenser. Den er også i stand til å håndtere halv-ord, byte, ord og dobbeltord-tilganger når XLEN=64 hvis de er på sine egne grenser.

Gjennom en cache-miss kan en hel blokk skrives tilbake til minnet, så om nødvendig kan en ny blokk lastes inn i cachen. Databufferen deaktiveres ved å sette DCACHE_SIZE til null. Etter det får du tilgang til minneplasseringer direkte gjennom Datagrensesnitt .

Instruksjonsbuffer

Dette brukes hovedsakelig for å fremskynde henting av instruksjoner ved å bufre nylig hentede instruksjoner. Denne hurtigbufferen brukes til å hente én pakke for hver syklus på en hvilken som helst 16-bits grense, men ikke over en blokkgrense. Gjennom en cache-miss kan en hel blokk lastes fra instruksjonsminnet. Konfigurasjonen av denne cachen kan gjøres basert på brukerens behov. Størrelsen på hurtigbufferen, erstatningsalgoritmen og blokklengden kan konfigureres.

Instruksjonssyklusen vil bli deaktivert ved å sette ICACHE_SIZE til null. Etter det hentes pakker direkte fra minnet gjennom Instruksjonsgrensesnitt.

Feilsøkingsenhet

Feilsøkingsenheten lar feilsøkingsomgivelsene stoppe og undersøke CPU'en. Hovedtrekkene til dette er Branch Tracing, Single Step Tracing opp til 8- Hardware Breakpoints.

Registrer fil

Dette er designet med 32 registerplasseringer fra X0 til X31 hvor X9 Register alltid er null. Registerfilen inkluderer 1- skriveport og 2- leseporter.

Konfigurerbart grensesnitt

Dette er et eksternt grensesnitt hvor denne prosessoren støtter forskjellige eksterne bussgrensesnitt.

Hvordan fungerer RISC V?

RISC-V er en instruksjonssettarkitektur forankret i RISC-prinsippene (redusert instruksjonssett-computer). Denne prosessoren er veldig unik og også revolusjonerende ettersom den er en gratis, vanlig og åpen kildekode ISA hvor maskinvare kan utvikles, programvaren kan porteres og prosessorer kan designes for å støtte den.

Forskjellen S/H RISC V Vs MIPS

Forskjellen mellom RISC V og MIPS inkluderer følgende.

RISC V

MIPS

Begrepet RISC V står for Reduced Instruction Set Computer hvor 'V' er femte generasjon. Begrepet 'MIPS' står for 'Million instruksjoner per sekund'.
RISC-V tillater ganske enkelt produsentene av mindre enheter å designe maskinvare uten å betale. MIPS lar produsenten måle prosessorens hastighet ved å betale fordi det ikke er gratis.
MIPS er effektivt dødt. RISC-V er ikke effektivt død.
Denne prosessoren gir greninstruksjoner for å sammenligne to registre. MIPS avhenger av en sammenligningsinstruksjon som lokaliserer et register til 1 eller 0 basert på om kontrasten er sann.
ISA-kodingsskjemaet er fast og variabelt i RISC V. ISA-kodingsskjemaet er fikset i MIPS
Instruksjonssettstørrelsen er 16-bit eller 32-bit eller 64-bit eller 128-bit. Størrelsen på instruksjonssettet er 32-bit eller 64-bit.
Den har 32 registre for generelle formål og flyttall Den har 31 registre for generelle formål og flyttall.
Den har 26-single og doble presisjon flytepunkt operasjoner. Den har 15-single og doble presisjon flytepunkt operasjoner.

Forskjell S/H RISC V Vs ARM

Forskjellen mellom RISC V og ARM inkluderer følgende.

RISC V

VÆPNE

RISC-V er åpen kildekode, så den krever ingen lisens. ARM er en lukket kilde, så den trenger en lisens.
Det er en ny prosessorplattform, så det er svært liten støtte for programvare- og programmeringsmiljøer. ARM har et veldig stort nettsamfunn, som støtter biblioteker og strukturer for å hjelpe måldesignerne på forskjellige plattformer som mikroprosessorer, mikrokontrollere og også servere.
RISC V-baserte brikker bruker 1 watt strøm. ARM-baserte brikker bruker under 4 watt strøm.
Den har et fast og variabelt ISA-kodingssystem. Den har et fast ISA-kodingssystem.
Størrelsen på RISC V-instruksjonssett varierer fra 16-bit til 128-bit. Instruksjonsstørrelsen varierer fra 16-bit til 64-bit.
Den inkluderer 32 registre for generelle formål og flyttall. Den inkluderer 31 registre for generelle formål og flyttall.
Den har 26-enkelt presisjon flytepunkt operasjoner. Den har 33-enkelt presisjon flytepunkt operasjoner.
Den har 26-dobbel presisjon flytepunkt operasjoner. Den har 29-dobbel presisjon flytepunkt operasjoner.

RISC V Verilog-kode

Verilog-koden for instruksjonsminnet for RISC er vist nedenfor.

// Verilog-kode for RISC-prosessor
// Verilog-kode for instruksjonsminne

modul Instruction_Memory(
input[15:0] pc,
output[15:0] instruksjon
);

reg [`col – 1:0] minne [`row_i – 1:0];
wire [3 : 0] rom_addr = pc[4 : 1];
første
begynne
$readmemb(“./test/test.prog”, minne,0,14);
slutt
tilordne instruksjon = minne[rom_addr];

endemodul

Verilog-kode for 16-biters RISC V-prosessor:

modul Risc_16_bit(
input clk
);

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

// Databane

Datapath_Unit DU
(
.clk(clk),
.hopp(hopp),
.frosk(frosk),
.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)
);

// kontrollenhet
Kontroll_Enhetskontroll
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.hopp(hopp),
.bne(bne),
.frosk(frosk),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
endemodul

Instruksjonssett

RISC V-instruksjonssettene er omtalt nedenfor.

Aritmetiske operasjoner

RISC V aritmetiske operasjoner er oppført nedenfor.

Mnemonic Type Instruksjon Beskrivelse
ADD  rd, rs1, rs2

R

Legge til rdß rs1 + rs2
SUB rd, rs1, rs2

R

Trekke fra rdß rs1 –  rs2
ADDI rd, rs1, imm12

Jeg

Legg til umiddelbart rdß rs1 + imm12
SLT rd, rs1, rs2

R

Sett mindre enn rdß rs1 -< rs2
SLTI rd, rs1, imm12

Jeg

Sett mindre enn umiddelbart rdß rs1 -< imm12
SLTU rd, rs1, rs2

R

Sett mindre enn usignert rdß rs1 -< rs2
SLTIU rd, rs1, imm12

Jeg

Sett mindre enn umiddelbart usignert rdß rs1 -< imm12
LUI rd, imm20

I

Last øvre umiddelbart rdß imm20<<12
AUIP rd,imm20

I

Legg til øvre umiddelbar til PC rdß PC+imm20<<12

Logiske operasjoner

RISC V logiske operasjoner er listet opp nedenfor.

Mnemonic Type Instruksjon Beskrivelse
OG  rd, rs1, rs2

R

OG rdß rs1 og rs2
ELLER rd, rs1, rs2

R

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

R

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

Jeg

OG umiddelbar rdß rs1 og imm2
ORI rd, rs1, imm12

Jeg

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

Jeg

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

R

Skift til venstre logisk rdß rs1 <<  rs2
SRL rd, rs1, rs2

R

Skift høyre logisk rdß rs1 >>  rs2
RAS rd, rs1, rs2

R

Skift til høyre aritmetikk rdß rs1 >>  rs2
SLLI rd, rs1, shamt

Jeg

Skift til venstre logisk umiddelbart rdß rs1 << shamt
SRLI rd, rs1, shamt

Jeg

Skift høyre logisk umiddelbart rdß rs1 >> shamt
SRAI rd, rs1, shamt

Jeg

Skift høyre aritmetikk umiddelbart rdß rs1 >> shamt

Laste-/butikkdrift

RISC V laste-/lageroperasjoner er oppført nedenfor.

Mnemonic Type Instruksjon Beskrivelse
LD  rd, imm12 (rs1)

Jeg

Last inn dobbeltord rdß mem [rs1 +imm12]
LW rd, imm12 (rs1)

Jeg

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

Jeg

Last halvveis rdß mem [rs1 +imm12]
LB rd, imm12 (rs1)

Jeg

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

Jeg

Last inn ord usignert rdß mem [rs1 +imm12]
LHU rd, imm12 (rs1)

Jeg

Last inn et halvt ord usignert rdß mem [rs1 +imm12]
LBU rd, imm12 (rs1)

Jeg

Last inn byte usignert rdß mem [rs1 +imm12]
SD  rs2, imm12 (rs1)

S

Lagre dobbeltord rs2 til mem [rs1 +imm12]
SW rs2, imm12 (rs1)

S

Lagre ord rs2 (31:0) til mem [rs1 +imm12]
SH rs2, imm12 (rs1)

S

Lagre halvveis rs2 (15:0) til mem [rs1 +imm12]
SB rs2, imm12 (rs1)

S

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

Jeg

Skift høyre aritmetikk umiddelbart rs2 (7:0) til mem [rs1 +imm12]

Forgreningsoperasjoner

RISC V-forgreningsvirksomheten er oppført nedenfor.

Mnemonic Type Instruksjon Beskrivelse
BEQ rs1, rs2, imm12

SB

Gren lik Hvis rs1== rs2

PC ß PC+imm12

BNE rs1, rs2, imm12

SB

Gren ikke lik Hvis rs1!= rs2

PC ß PC+imm12

BGE  rs1, rs2, imm12

SB

Gren større enn eller lik Hvis rs1>= rs2

PC ß PC+imm12

BGEU  rs1, rs2, imm12

SB

Gren større enn eller lik usignert Hvis rs1>= rs2

PC ß PC+imm12

BLT  rs1, rs2, imm12

SB

Filial mindre enn Hvis rs1< rs2

PC ß PC+imm12

BLTU  rs1, rs2, imm12

SB

Filial mindre enn  usignert Hvis rs1< rs2

PC ß PC+imm12 <<1

JAL rd, imm20

UJ

Hopp og Link rdßPC+4
PCß PC+imm20
JALR  rd, imm12(rs1)

Jeg

Hopp og Link register rdßPC+4
PCß rs1+imm12

Fordeler

De fordelene med RISC V-prosessor Inkluder følgende.

  • Ved å bruke RISCV kan vi spare utviklingstid, programvareutvikling, verifisering osv.
  • Denne prosessoren har mange fordeler som enkelhet, åpenhet, modularitet, ren-slate-design og utvidbarhet.
  • Dette støttes av flere språkkompilatorer som GCC (GNU Compiler Collection), en gratisprogramvarekompilator og gjennom Linux OS .
  • Dette kan brukes av selskaper fritt på grunn av ingen royalties, ingen lisensavgifter og ingen strenger.
  • RISC-V-prosessoren inkluderer ingen nye eller innovative funksjoner fordi den ganske enkelt følger etablerte prinsipper for RISC.
  • I likhet med flere andre ISA-er, definerer denne prosessorspesifikasjonen ganske enkelt forskjellige instruksjonssettnivåer. Så dette inneholder 32 og 64-bits varianter samt utvidelser for å gi støtte for flyttallinstruksjoner.
  • Disse er gratis, enkle, modulære, stabile, etc.

Ulemper

De ulemper med RISC V-prosessoren Inkluder følgende.

  • Komplekse instruksjoner brukes ofte av kompilatorer og programmerere.
  • O/p til en RISC kan endres basert på koden når påfølgende instruksjoner i en sløyfe avhenger av den tidligere instruksjonen for utførelse.
  • Disse prosessorene må lagre en rekke instruksjoner raskt, noe som krever et stort cache-minnesett for å svare på instruksjonene innen rimelig tid.
  • De komplette funksjonene, egenskapene og fordelene med RISC avhenger hovedsakelig av arkitekturen.

applikasjoner

De anvendelser av RISC V prosessor Inkluder følgende.

  • RISC-V brukes i innebygde systemer, kunstig intelligens og maskinlæring.
  • Disse prosessorene brukes i høyytelsesbaserte innebygde systemapplikasjoner.
  • Denne prosessoren er egnet for bruk i enkelte felt som edge computing, AI og lagringsapplikasjoner.
  • RISC-V er viktig siden det tillater mindre enhetsprodusenter å designe maskinvare uten å betale.
  • Denne prosessoren lar ganske enkelt forskerne og utviklerne designe så vel som forskning med en fritt tilgjengelig ISA- eller instruksjonssettarkitektur.
  • Bruksområdene til RISC V spenner fra små innebygde mikrokontrollere til stasjonære PC-er og superdatamaskiner inkludert vektorprosessorer.

Dermed er dette en oversikt over en RISC V-prosessor – arkitektur, arbeid med applikasjoner. Her er et spørsmål til deg, hva er en CISC-prosessor?