Što je RISC V procesor: arhitektura, rad i njegove primjene

Isprobajte Naš Instrument Za Uklanjanje Problema





RISC V je arhitektura skupa instrukcija koju je razvilo Sveučilište Kalifornija, Berkeley. Koncept RISC-a motiviran je istinom da većina računalnih programa ne koristi većinu procesorskih instrukcija. Dakle, nepotrebna logika dekodiranja korištena je unutar dizajna procesori , trošeći više energije kao i površine. Da biste skratili skup instrukcija i uložili više unutar resursa registra, RISC V procesor je provedeno.


Ovu tehnologiju primijetili su mnogi tehnološki divovi i start-upovi jer je potpuno otvorenog koda i besplatna. Većina tipova procesora dostupna je uz licencni ugovor, međutim s ovom vrstom procesora; svatko može napraviti svoj novi dizajn procesora. Dakle, ovaj članak govori o pregledu RISC V procesora – rada i njegovih aplikacija.



Što je RISC V procesor?

U RISC V procesoru, pojam RISC označava 'računalo sa smanjenim skupom instrukcija' koje izvršava nekoliko računalnih instrukcija, dok 'V' označava 5. generaciju. To je hardverski ISA otvorenog koda (arhitektura skupa instrukcija) koji se temelji na utvrđenom principu RIZIK .

U usporedbi s drugim ISA dizajnom, ovaj ISA dostupan je s licencom otvorenog koda. Stoga su brojne proizvodne tvrtke najavile i također osigurale RISC-V hardver s operativnim sustavima otvorenog koda.



Ovo je nova arhitektura i dostupna je u otvorenim, neograničenim i besplatnim licencama. Ovaj procesor ima opsežnu podršku industrije proizvođača čipova i uređaja. Stoga je uglavnom dizajniran da bude slobodno proširiv i prilagodljiv za korištenje u mnogim aplikacijama.

RISC V Povijest

RISC je izumio prof. David Patterson oko 1980. na Kalifornijskom sveučilištu Berkeley. Prof. David i prof. John Hennessy predali su svoje napore u dvije knjige, naime “Organizacija i dizajn računala” i “Arhitektura računala na Sveučilištu Stanford. Dakle, dobili su ACM A.M. Turingova nagrada 2017.

Od 1980. do 2010. godine započeto je razvojno istraživanje pete generacije RISC-a koje je konačno identificirano kao RISC-V što se izgovara kao rizik pet.

RISC V Arhitektura i rad

RV12 RISC V arhitektura prikazana je u nastavku. RV12 je visoko konfigurabilan s RISC CPU-om usklađenim s jednom jezgrom RV32I i RV64I koji se koristi u ugrađenim poljima. RV12 je također iz 32 ili 64-bitne CPU obitelji ovisno o industrijskom standardu RISC-V skupa instrukcija.

RV12 jednostavno izvršava harvardsku arhitekturu za istovremeni pristup uputama kao i memoriji podataka. Također uključuje 6-fazni cjevovod koji pomaže u optimiziranju preklapanja između izvršenja kao i pristupa memoriji za poboljšanje učinkovitosti. Ova arhitektura uglavnom uključuje predviđanje grananja, predmemoriju podataka, jedinicu za otklanjanje pogrešaka, predmemoriju instrukcija i izborne jedinice množitelja ili razdjelnika.

  Arhitektura RISC procesora
Arhitektura RISC procesora

Glavne značajke RV12 RISC V uključuju sljedeće.

  • To je standardni skup uputa za industriju.
  • Parametriziran s 32 ili 64-bitnim podacima.
  • Ima precizne i brze prekide.
  • Prilagođene upute dopuštaju dodavanje vlasničkih hardverskih akceleratora.
  • Izvođenje jednog ciklusa.
  • Šestostupanjski cjevovod s optimizirajućim sklopom.
  • Podrška sa zaštitom memorije.
  • Izborni ili parametrirani predmemorije.
  • Izuzetno parametriran.
  • Korisnici mogu odabrati 32/64-bitne podatke i jedinicu za predviđanje grananja.
  • Korisnici mogu odabrati predmemorije uputa/podataka.
  • Korisnički odabrana struktura, veličina i arhitektura predmemorije.
  • Podrška za hardverski razdjelnik ili množitelj prema korisnički definiranoj latenciji.
  • Arhitektura sabirnice je fleksibilna i podržava Wishbone & AHB.
  • Ovaj dizajn optimizira snagu i veličinu.
  • Dizajn je u potpunosti parametriran što omogućuje kompromise u pogledu performansi ili snage.
  • Gated CLK dizajn za smanjenje snage.
  • Softverska podrška prema industrijskom standardu.
  • Arhitektonski simulator.
  • Eclipse IDE se koristi za Linux/Windows.

Izvršni cjevovod RISC V

Uključuje pet faza kao što su IF (dohvaćanje instrukcija), ID (dekodiranje instrukcija), EX (izvršavanje), MEM (pristup memoriji) i WB (registriranje povratnog pisanja).

Dohvaćanje instrukcija

U fazi dohvaćanja instrukcija ili IF, jedna se instrukcija čita iz programskog brojača (PC) i memorije instrukcija koja se ažurira na sljedeću instrukciju.

Prethodno dekodiranje uputa

Jednom kada je podrška za RVC dopuštena, tada će stupanj prethodnog dekodiranja instrukcija dekodirati 16-bitnu komprimiranu instrukciju u izvornu 32-bitnu instrukciju.

Dekodiranje uputa

U fazi dekodiranja instrukcija (ID), dopuštena je registracijska datoteka i odlučene su kontrole premosnice.

Izvršiti

U fazi izvršenja, rezultat se izračunava za instrukcije ALU, DIV, MUL, memorija dopuštena za instrukcije Store ili Load, a grananja i skokovi se mjere u odnosu na njihove očekivane rezultate.

Memorija

U ovoj fazi memorije, memoriji se pristupa kroz cjevovod. Uključivanje ove faze osigurava visoke performanse cjevovoda.

Pisati natrag

U ovoj fazi, rezultat faze izvršenja zapisuje se u datoteku registra.

Prediktor grana

Ovaj procesor uključuje jedinicu za predviđanje grananja ili BPU koja se koristi za pohranjivanje prošlih podataka za usmjeravanje RISC V procesora u odlučivanju je li određena grana zauzeta ili ne. Ovi prediktorski podaci jednostavno se ažuriraju nakon što se grana izvrši.

Ova jedinica uključuje različite parametre koji određuju njezino ponašanje. Na primjer, HAS_BPU se koristi za određivanje predviđa li grana da je jedinica prisutna, BPU_GLOBAL_BITS će odrediti koliko prošlih bitova treba koristiti, a BPU_LOCAL_BITS će odrediti koliko LSB-a programskog brojača treba koristiti. Kombinacija BPU_LOCAL_BITS & BPU_GLOBAL_BITS stvorit će vektor koji se uglavnom koristi za adresiranje tablice predviđanja grana.

Predmemorija podataka

Ovo se uglavnom koristi za ubrzavanje pristupa podatkovnoj memoriji spremanjem u međuspremnik novopristupljenih lokacija memorije. Ovo može rukovati pristupima poluriječi, bajtova i riječi kada je  XLEN = 32 ako su na vlastitim granicama. Također je sposoban rukovati pristupima poluriječi, bajtova, riječi i dvostrukih riječi kada je XLEN=64 ako su na vlastitim granicama.

Tijekom promašaja predmemorije, cijeli blok se može zapisati natrag u memoriju, tako da ako je potrebno, novi blok se može učitati u predmemoriju. Predmemorija podataka je onemogućena postavljanjem DCACHE_SIZE na nulu. Nakon toga se memorijskim lokacijama pristupa izravno putem Podatkovno sučelje .

Predmemorija uputa

Ovo se uglavnom koristi za ubrzavanje dohvaćanja instrukcija spremanjem u međuspremnik novodohvaćenih instrukcija. Ova predmemorija se koristi za dohvaćanje jedne parcele za svaki ciklus na bilo kojoj 16-bitnoj granici, ali ne preko granice bloka. Tijekom promašaja predmemorije, cijeli blok se može učitati iz memorije instrukcija. Konfiguracija ove predmemorije može se izvršiti na temelju potreba korisnika. Veličina predmemorije, algoritam zamjene i duljina bloka mogu se konfigurirati.

Ciklus instrukcija bit će onemogućen postavljanjem ICACHE_SIZE na nulu. Nakon toga, paketi se dohvaćaju izravno iz memorije putem Sučelje s uputama.

Jedinica za otklanjanje pogrešaka

Jedinica za otklanjanje pogrešaka omogućit će okruženju za otklanjanje pogrešaka da zaustavi i ispita CPU. Glavne značajke ovoga su praćenje grana, praćenje u jednom koraku do 8 prijelomnih točaka hardvera.

Registriraj datoteku

Ovo je dizajnirano s 32 lokacije registra od X0 do X31 gdje je registar X9 uvijek nula. Registarska datoteka uključuje 1 port za pisanje i 2 porta za čitanje.

Podesivo sučelje

Ovo je vanjsko sučelje gdje ovaj procesor podržava različita vanjska sučelja sabirnice.

Kako radi RISC V?

RISC-V je arhitektura skupa instrukcija ukorijenjena u RISC (računalo sa smanjenim skupom instrukcija) principima. Ovaj procesor je vrlo jedinstven i također revolucionaran budući da je besplatan, uobičajen i ISA otvorenog koda gdje se hardver može razviti, softver prenijeti i procesori mogu biti dizajnirani da ga podržavaju.

Razlika C/B RISC V u odnosu na MIPS

Razlika između RISC V i MIPS uključuje sljedeće.

RISC V

MIPS

Izraz RISC V je skraćenica za Reduced Instruction Set Computer gdje je 'V' peta generacija. Izraz 'MIPS' znači 'milijun instrukcija u sekundi'.
RISC-V jednostavno dopušta proizvođačima manjih uređaja da dizajniraju hardver bez plaćanja. MIPS omogućuje proizvođaču mjerenje brzine procesora uz plaćanje jer nije besplatno.
MIPS je praktično mrtav. RISC-V nije učinkovito mrtav.
Ovaj procesor daje upute za grananje za usporedbu dva registra. MIPS ovisi o instrukciji za usporedbu koja locira registar na 1 ili 0 na temelju toga je li kontrast istinit.
ISA shema kodiranja je fiksna i varijabilna u RISC V. ISA shema kodiranja je fiksna u MIPS-u
Veličina skupa instrukcija je 16-bitna ili 32-bitna ili 64-bitna ili 128-bitna. Veličina skupa instrukcija je 32-bitna ili 64-bitna.
Ima 32 registra opće namjene i pomičnog zareza Ima 31 registar opće namjene i pomičnog zareza.
Ima 26 operacija s pomičnim zarezom jednostruke i dvostruke preciznosti. Ima 15 operacija s pomičnim zarezom s jednom i dvostrukom preciznošću.

Razlika C/B RISC V u odnosu na ARM

Razlika između RISC V i ARM uključuje sljedeće.

RISC V

RUKA

RISC-V je otvorenog koda, tako da ne zahtijeva nikakvu licencu. ARM je zatvoreni izvor, pa mu je potrebna licenca.
To je nova procesorska platforma, tako da postoji vrlo mala podrška za softverska i programska okruženja. ARM ima vrlo veliku internetsku zajednicu koja podržava biblioteke i strukture za pomoć ciljanim dizajnerima na različitim platformama kao što su mikroprocesori, mikrokontroleri i također poslužitelji.
Čipovi temeljeni na RISC V troše 1 vat energije. Čipovi temeljeni na ARM-u troše manje od 4 vata energije.
Ima fiksni i varijabilni ISA sustav kodiranja. Ima fiksni ISA sustav kodiranja.
Veličina skupa RISC V instrukcija kreće se od 16-bita do 128-bita. Njegova veličina instrukcija kreće se od 16-bita do 64-bita.
Uključuje 32 registra opće namjene i pomičnog zareza. Uključuje 31 registar opće namjene i pomičnog zareza.
Ima 26 operacija s pomičnim zarezom pojedinačne preciznosti. Ima 33 operacije s pomičnim zarezom pojedinačne preciznosti.
Ima operacije s pomičnim zarezom 26 dvostruke preciznosti. Ima operacije s pomičnim zarezom 29 dvostruke preciznosti.

RISC V Verilog kod

Verilog kod memorije instrukcija za RISC prikazan je u nastavku.

// Verilog kod za RISC procesor
// Verilog kod za memoriju instrukcija

modul Instruction_Memory(
ulaz [15:0] pc,
output[15:0] instrukcija
);

reg [`col – 1:0] memory [`row_i – 1:0];
žica [3 : 0] rom_addr = pc [4 : 1];
početni
početi
$readmemb(“./test/test.prog”, memorija,0,14);
kraj
dodijeliti instrukciju = memorija[rom_addr];

krajnji modul

Verilog kod za 16-bitni RISC V procesor:

modul Risc_16_bit(
ulazni clk
);

wire jump,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
žica[1:0] alu_op;
žica [3:0] operativni kod;

// Datapath

Datapath_Unit DU
(
.clk(clk),
.skok(skok),
.žaba(žaba),
.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)
);

// Kontrolna jedinica
Control_Unit kontrola
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.skok(skok),
.bne(bne),
.žaba(žaba),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
krajnji modul

Setovi instrukcija

O skupovima instrukcija RISC V raspravlja se u nastavku.

Aritmetičke operacije

RISC V aritmetičke operacije navedene su u nastavku.

Mnemonički Tip Uputa Opis
DODAJ  rd, rs1, rs2

R

Dodati rdß rs1 + rs2
SUB rd, rs1, rs2

R

Oduzeti rdß rs1 –  rs2
DODAJ rd, rs1, imm12

ja

Dodajte odmah rdß rs1 + imm12
SLT rd, rs1, rs2

R

Postavite manje od rdß rs1 -< rs2
SLTI rd, rs1, imm12

ja

Postavite manje od neposrednog rdß rs1 -< imm12
SLTU rd, rs1, rs2

R

Postavite manje od nepotpisanog rdß rs1 -< rs2
SLTIU rd, rs1, imm12

ja

Postavi manje od neposrednog bez potpisa rdß rs1 -< imm12
LUI rd, imm20

U

Opterećenje gornje odmah rdß imm20<<12
AUIP rd,imm20

U

Dodajte gornji neposredni na računalo rdß PC+imm20<<12

Logičke operacije

RISC V logičke operacije navedene su u nastavku.

Mnemonički Tip Uputa Opis
I  rd, rs1, rs2

R

I rdß rs1 & rs2
ILI rd, rs1, rs2

R

ILI rdß rs1 | rs2
XOR  rd, rs1, rs2

R

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

ja

I ODMAH rdß rs1 & imm2
ORI rd, rs1, imm12

ja

ILI Odmah rdß rs1 | imm12
OXRI rd, rs1, imm12

ja

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

R

Pomak lijevo logično rdß rs1 <<  rs2
SRL rd, rs1, rs2

R

Pomak desno logično rdß rs1 >>  rs2
RAS rd, rs1, rs2

R

Aritmetika pomaka udesno rdß rs1 >>  rs2
SLLI rd, rs1, šamt

ja

Pomak ulijevo logično odmah rdß rs1 << šamt
SRLI rd, rs1, šamt

ja

Pomak desno logično neposredno rdß rs1 >> šamt
SRAI rd, rs1, šamt

ja

Aritmetički pomak udesno odmah rdß rs1 >> šamt

Operacije učitavanja/spremanja

RISC V operacije učitavanja/spremanja navedene su u nastavku.

Mnemonički Tip Uputa Opis
LD  rd, imm12 (rs1)

ja

Učitaj duplu riječ rdß mem [rs1 +imm12]
LW rd, imm12 (rs1)

ja

Učitaj riječ rdß mem [rs1 +imm12]
LH rd, imm12 (rs1)

ja

Napunite do pola rdß mem [rs1 +imm12]
LB rd, imm12 (rs1)

ja

Učitaj bajt rdß mem [rs1 +imm12]
LWU rd, imm12 (rs1)

ja

Učitaj riječ bez potpisa rdß mem [rs1 +imm12]
LHU rd, imm12 (rs1)

ja

Učitaj pola riječi bez potpisa rdß mem [rs1 +imm12]
LBU rd, imm12 (rs1)

ja

Učitaj bajt bez predznaka rdß mem [rs1 +imm12]
SD  rs2, imm12 (rs1)

S

Pohranite dvostruku riječ rs2 u mem [rs1 +imm12]
SW rs2, imm12 (rs1)

S

Spremi riječ rs2 (31:0) u mem [rs1 +imm12]
SH rs2, imm12 (rs1)

S

Spremite na pola puta rs2 (15:0) u mem [rs1 +imm12]
SB rs2, imm12 (rs1)

S

Spremi bajt rs2 (15:0) u mem [rs1 +imm12]
SRAI rd, rs1, šamt

ja

Aritmetički pomak udesno odmah rs2 (7:0) u mem [rs1 +imm12]

Operacije grananja

Operacije grananja RISC V navedene su u nastavku.

Mnemonički Tip Uputa Opis
BEQ rs1, rs2, imm12

SB

Grana jednaka Ako je rs1== rs2

PC ß PC+imm12

BNE rs1, rs2, imm12

SB

Grana nije jednaka Ako je rs1!= rs2

PC ß PC+imm12

BGE  rs1, rs2, imm12

SB

Grana veća ili jednaka Ako je rs1>= rs2

PC ß PC+imm12

BGEU  rs1, rs2, imm12

SB

Grana veća ili jednaka bez predznaka Ako je rs1>= rs2

PC ß PC+imm12

BLT  rs1, rs2, imm12

SB

Grana manje od Ako je rs1< rs2

PC ß PC+imm12

BLTU  rs1, rs2, imm12

SB

Grana manja od  nepotpisana Ako je rs1< rs2

PC ß PC+imm12 <<1

JAL  rd, imm20

UJ

Skoči i poveži rdßPC+4
PCß PC+imm20
JALR  rd, imm12(rs1)

ja

Jump and Link register rdßPC+4
PCß rs1+imm12

Prednosti

The prednosti RISC-a V procesor uključuju sljedeće.

  • Korištenjem RISCV-a možemo uštedjeti vrijeme razvoja, razvoja softvera, verifikacije itd.
  • Ovaj procesor ima mnoge prednosti poput jednostavnosti, otvorenosti, modularnosti, čistog dizajna i mogućnosti proširenja.
  • Ovo je podržano od strane nekoliko prevoditelja jezika kao što je GCC (GNU Compiler Collection), prevoditelj besplatnog softvera i kroz OS Linux .
  • Tvrtke ga mogu koristiti slobodno jer nema tantijema, naknada za licenciranje i bez povezivanja nizova.
  • RISC-V procesor ne uključuje nikakve nove ili inovativne značajke jer jednostavno slijedi utvrđena načela RISC-a.
  • Slično nekolicini drugih ISA-ova, ova specifikacija procesora jednostavno definira različite razine skupa instrukcija. Dakle, ovo sadrži 32 i 64-bitne varijante kao i proširenja koja daju podršku za upute s pomičnim zarezom.
  • To su besplatni, jednostavni, modularni, stabilni itd.

Nedostaci

The nedostaci RISC V procesora uključuju sljedeće.

  • Kompilatori i programeri često koriste složene upute.
  • O/p RISC-a može se promijeniti na temelju koda kada sljedeće upute unutar petlje ovise o prethodnim uputama za izvršenje.
  • Ovi procesori moraju brzo spremati razne instrukcije, što zahtijeva veliki skup predmemorije da bi pravodobno odgovorili na instrukcije.
  • Kompletne značajke, mogućnosti i prednosti RISC-a uglavnom ovise o arhitekturi.

Prijave

The aplikacije RISC V procesor uključuju sljedeće.

  • RISC-V se koristi u ugrađenim sustavima, umjetnoj inteligenciji i strojnom učenju.
  • Ovi se procesori koriste u aplikacijama ugrađenih sustava visokih performansi.
  • Ovaj je procesor prikladan za upotrebu u određenim područjima kao što su rubno računalstvo, AI i aplikacije za pohranu.
  • RISC-V je važan jer dopušta manjim proizvođačima uređaja dizajn hardvera bez plaćanja.
  • Ovaj procesor jednostavno omogućuje istraživačima i programerima da dizajniraju kao i istražuju s besplatno dostupnom ISA arhitekturom ili arhitekturom skupa instrukcija.
  • Primjene RISC V kreću se od malih ugrađenih mikrokontrolera do stolnih računala i superračunala uključujući vektorske procesore.

Dakle, ovo je pregled RISC V procesora – arhitektura, rad s aplikacijama. Evo pitanja za vas, što je CISC procesor?