Mis on RISC V protsessor: arhitektuur, töö ja selle rakendused

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





RISC V on juhiste komplekti arhitektuur, mille on välja töötanud California ülikool Berkeleys. RISCi kontseptsiooni ajendiks oli tõde, et enamik protsessori juhiseid ei kasutanud enamikus arvutiprogrammides. Seega kasutati kujunduses tarbetut dekodeerimisloogikat protsessorid , tarbides rohkem energiat kui ka pindala. Käskude komplekti lühendamiseks ja registriressurssidesse rohkem investeerimiseks RISC V protsessor viidi ellu.


Seda tehnoloogiat märkasid paljud tehnoloogiahiiglased ja idufirmad, kuna see on täiesti avatud lähtekoodiga ja tasuta. Enamik protsessoreid on saadaval litsentsilepinguga, kuid seda tüüpi protsessoritega; igaüks saab teha oma uue protsessori kujunduse. Seega käsitletakse selles artiklis ülevaadet RISC V protsessori tööst ja selle rakendustest.



Mis on RISC V protsessor?

RISC V protsessoris tähistab termin RISC 'vähendatud käsukomplektiga arvutit', mis täidab vähe arvutikäske, samas kui 'V' tähistab viiendat põlvkonda. See on avatud lähtekoodiga riistvara ISA (käsukomplekti arhitektuur), mis põhineb kehtestatud põhimõttel RISK .

Võrreldes teiste ISA kujundustega on see ISA saadaval avatud lähtekoodiga litsentsiga. Niisiis on mitmed tootmisettevõtted teatanud ja varustanud avatud lähtekoodiga operatsioonisüsteemidega RISC-V riistvara.



See on uus arhitektuur ja see on saadaval avatud, mittepiiravate ja tasuta litsentsidena. Sellel protsessoril on laialdane tugi kiipide ja seadmete tootjatelt. Seega on see peamiselt loodud olema vabalt laiendatav ja kohandatav paljudes rakendustes kasutamiseks.

RISC V ajalugu

RISC-i leiutas prof David Patterson 1980. aasta paiku California ülikoolis Berkeleys. Prof David koos prof John Hennessyga esitasid oma jõupingutused kahes raamatus, nimelt 'Arvutikorraldus ja disain' ja 'Arvutiarhitektuur Stanfordi ülikoolis. Niisiis, nad said ACM A.M. Turingi auhind 2017. aastal.

Aastatel 1980 kuni 2010 alustati RISC viienda põlvkonna arendusuuringuid ja lõpuks hakati seda identifitseerima kui RISC-V, mida hääldatakse viie riskina.

RISC V arhitektuur ja töö

RV12 RISC V arhitektuur on näidatud allpool. RV12 on hästi konfigureeritav ühetuumalise RV32I ja RV64I-ga ühilduva RISC-protsessoriga, mida kasutatakse manustatud väljadel. RV12 on ka 32- või 64-bitise protsessori perekonnast, olenevalt tööstusstandardi RISC-V käsukomplektist.

RV12 täidab lihtsalt Harvardi arhitektuuri, et pääseda samaaegselt nii juhistele kui ka andmemälule. See sisaldab ka 6-astmelist konveier, mis aitab optimeerida täitmise kattuvust ja mälujuurdepääsu tõhususe parandamiseks. See arhitektuur sisaldab peamiselt haru ennustamist, andmevahemälu, silumisüksust, juhiste vahemälu ja valikulisi kordaja või jagaja ühikuid.

  RISC protsessori arhitektuur
RISC protsessori arhitektuur

RV12 RISC V peamised omadused hõlmavad järgmist.

  • See on tööstusharu standardne juhiste komplekt.
  • Parameetristatud 32- või 64-bitiste andmetega.
  • Sellel on täpsed ja kiired katkestused.
  • Kohandatud juhised võimaldavad lisada patenteeritud riistvarakiirendeid.
  • Ühe tsükli teostamine.
  • Kuueastmeline torujuhe optimeerimisega volditud.
  • Toetus mälukaitsega.
  • Valikulised või parameetrilised vahemälud.
  • Äärmiselt parameetritega.
  • Kasutajad saavad valida 32/64-bitise andme- ja haruennustusüksuse.
  • Kasutajad saavad valida juhiste/andmete vahemälu.
  • Kasutaja valitav vahemälu struktuur, suurus ja arhitektuur.
  • Riistvarajagaja või -kordaja tugi kasutaja määratud latentsusaja järgi.
  • Bussi arhitektuur on paindlik, mis toetab Wishbone'i ja AHB-d.
  • See disain optimeerib võimsust ja suurust.
  • Disain on täielikult parameetritega, mis tagab jõudluse või võimsuse kompromissid.
  • Piiratud CLK disain võimsuse vähendamiseks.
  • Tarkvara tugi tööstusstandardi järgi.
  • Arhitektuurne simulaator.
  • Eclipse IDE-d kasutatakse Linuxi / Windowsi jaoks.

RISC V täitmistoru

See sisaldab viit etappi, nagu IF (käskude toomine), ID (käskude dekodeerimine), EX (käivita), MEM (juurdepääs mälule) ja WB (registri tagasikirjutamine).

Juhend Hangi

Instruction Fetch või IF etapis loetakse programmiloendurilt (PC) ja käskude mälust üks käsk, mida värskendatakse järgmisele käsule.

Juhend Dekodeerimise eel

Kui RVC tugi on lubatud, dekodeerib juhiste eeldekodeerimise etapp 16-bitise tihendatud käsu natiivseks 32-bitiseks käsuks.

Juhend dekodeerida

Käskude dekodeerimise (ID) etapis on registrifail lubatud ja möödaviigu juhtelemendid on otsustatud.

Käivitage

Käivitatapis arvutatakse tulemus ALU, DIV, MUL käsu jaoks, salvestamise või laadimise käsu jaoks lubatud mälu ning harusid ja hüppeid mõõdetakse nende eeldatavate tulemuste põhjal.

Mälu

Selles mäluetapis pääseb mälule juurde torujuhtme kaudu. Selle faasi kaasamine tagab torujuhtme kõrge jõudluse.

Kirjuta tagasi

Selles etapis kirjutatakse täitmisetapi tulemus registrifaili.

Filiaali ennustaja

See protsessor sisaldab haru ennustavat üksust või BPU-d, mida kasutatakse varasemate andmete salvestamiseks, et suunata RISC V protsessor otsustama, kas konkreetne haru võetakse või mitte. Neid ennustavaid andmeid värskendatakse lihtsalt pärast haru käivitamist.

See seade sisaldab erinevaid parameetreid, mis määravad selle käitumise. Näiteks kasutatakse HAS_BPU-d selleks, et teha kindlaks, kas haru ennustab üksuse olemasolu, BPU_GLOBAL_BITS määrab, kui palju varasemaid bitte tuleks kasutada ja BPU_LOCAL_BITS määrab, kui palju programmiloenduri LSB-d tuleks kasutada. Kombinatsioon BPU_LOCAL_BITS ja BPU_GLOBAL_BITS loob vektori, mida kasutatakse peamiselt haru-ennustuse tabeli käsitlemiseks.

Andmete vahemälu

Seda kasutatakse peamiselt andmemälule juurdepääsu kiirendamiseks, puhverdades äsja juurdepääsetavad mälukohad. See on võimeline käsitlema poole sõna, baidi ja sõna juurdepääsu, kui XLEN = 32, kui need on oma piirides. Samuti on see võimeline käsitlema poole sõna, baidi, sõna ja kahesõnalisi pöördumisi, kui XLEN=64, kui need on oma piirides.

Vahemälu vahelejäämise ajal saab terve ploki mällu tagasi kirjutada, nii et vajadusel saab vahemällu laadida uue ploki. Andmevahemälu on keelatud, kui määrate DCACHE_SIZE väärtuseks null. Pärast seda pääseb mälukohtadele juurde otse rakenduse kaudu Andmeliides .

Juhendi vahemälu

Seda kasutatakse peamiselt juhiste toomise kiirendamiseks, puhverdades värskelt toodud juhised. Seda vahemälu kasutatakse ühe paki toomiseks iga tsükli kohta mis tahes 16-bitisel piiril, kuid mitte üle ploki piiri. Vahemälu vahelejäämise ajal saab käsumälust laadida terve ploki. Seda vahemälu saab seadistada vastavalt kasutaja vajadustele. Vahemälu suurus, asendusalgoritm ja ploki pikkus on konfigureeritavad.

Käskude tsükkel keelatakse, kui määrate ICACHE_SIZE väärtuseks null. Pärast seda tuuakse pakid otse mälust läbi Juhendi liides.

Silumisüksus

Silumisüksus võimaldab silumiskeskkonnal peatada ja protsessorit uurida. Selle peamised funktsioonid on haru jälgimine, üheastmeline jälgimine kuni 8 riistvaralise katkestuspunktini.

Registreeri fail

See on loodud 32 registri asukohaga vahemikus X0 kuni X31, kus X9 register on alati null. Registrifail sisaldab 1 kirjutusporti ja 2 lugemisporti.

Konfigureeritav liides

See on väline liides, kus see protsessor toetab erinevaid väliseid siiniliideseid.

Kuidas RISC V töötab?

RISC-V on käsukomplekti arhitektuur, mis põhineb RISC (vähendatud käsukomplekti arvuti) põhimõtetel. See protsessor on väga ainulaadne ja ka revolutsiooniline, kuna see on tasuta, tavaline ja avatud lähtekoodiga ISA, kus saab arendada riistvara, portida tarkvara ja kujundada protsessorid seda toetama.

Erinevus B/W RISC V vs MIPS

Erinevus RISC V ja MIPS-i vahel hõlmab järgmist.

RISC V

MIPS

Mõiste RISC V tähistab lühendatud juhiste komplekti arvutit, kus V on viies põlvkond. Mõiste 'MIPS' tähendab 'miljonit juhiseid sekundis'.
RISC-V lubab väiksemate seadmete tootjatel lihtsalt riistvara ilma maksmata kujundada. MIPS võimaldab tootjal mõõta protsessori kiirust makstes, kuna see pole tasuta.
MIPS on tõhusalt surnud. RISC-V ei ole tõhusalt surnud.
See protsessor pakub harujuhiseid kahe registri võrdlemiseks. MIPS sõltub võrdlusjuhisest, mis määrab registri asukoha 1 või 0 järgi vastavalt sellele, kas kontrast on tõene.
ISA kodeerimisskeem on RISC V-s fikseeritud ja muutuv. ISA kodeerimisskeem on fikseeritud MIPS-is
Käskude komplekti suurus on 16-bitine või 32-bitine või 64-bitine või 128-bitine. Käskude komplekti suurus on 32-bitine või 64-bitine.
Sellel on 32 üldotstarbelist ja ujukomaregistrit Sellel on 31 üldotstarbelist ja ujukomaregistrit.
Sellel on 26 ühe ja kahe täpsusega ujukomaoperatsioonid. Sellel on 15 ühe ja kahe täpsusega ujukomaoperatsiooni.

Erinevus B/W RISC V vs ARM

Erinevus RISC V ja ARM vahel hõlmab järgmist.

RISC V

ARM

RISC-V on avatud lähtekoodiga, seega ei vaja see litsentsi. ARM on suletud lähtekoodiga, seega vajab see litsentsi.
See on uus protsessoriplatvorm, seega on tarkvara ja programmeerimiskeskkondade tugi väga väike. ARM-il on väga suur veebikogukond, mis toetab teeke ja struktuure, et abistada sihtdisainereid erinevatel platvormidel, nagu mikroprotsessorid, mikrokontrollerid ja ka serverid.
RISC V-põhised kiibid kasutavad 1 vatti võimsust. ARM-põhised kiibid kasutavad alla 4 vatti võimsust.
Sellel on fikseeritud ja muutuv ISA-kodeerimissüsteem. Sellel on fikseeritud ISA kodeerimissüsteem.
RISC V käsukomplekti suurus on vahemikus 16-bitist kuni 128-bitiseks. Selle juhiste suurus on vahemikus 16-bitist kuni 64-bitiseks.
See sisaldab 32 üldotstarbelist ja ujukomaregistrit. See sisaldab 31 üldotstarbelist ja ujukomaregistrit.
Sellel on 26 ühekordse täpsusega ujukomaoperatsiooni. Sellel on 33 ühekordse täpsusega ujukomaoperatsiooni.
Sellel on 26 kahekordse täpsusega ujukomatehteid. Sellel on 29 kahekordse täpsusega ujukomatehteid.

RISC V Verilogi kood

Allpool on näidatud RISC käsumälu verilogi kood.

// Verilogi kood RISC protsessori jaoks
// Käsumälu Verilog-kood

moodul Instruction_Memory(
sisend[15:0] arvuti,
väljund[15:0] käsk
);

reg [`col – 1:0] mälu [`rida_i – 1:0];
juhe [3 : 0] rom_addr = pc[4 : 1];
esialgne
alustada
$readmemb(“./test/test.prog”, mälu,0,14);
lõpp
määra käsk = mälu[rom_adr];

lõppmoodul

Verilogi kood 16-bitise RISC V protsessori jaoks:

moodul Risk_16_bit(
sisend clk
);

traathüpe,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
traat[1:0] alu_op;
juhe [3:0] opkood;

// Andmetee

Datapath_Unit DU
(
.clk(clk),
.jump(hüppa),
.konn(konn),
.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)
);

// juhtseade
Juhtimisüksuse juhtimine
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.jump(hüppa),
.bne(bne),
.konn(konn),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
lõppmoodul

Juhendi komplektid

RISC V käsukomplekte käsitletakse allpool.

Aritmeetilised tehted

RISC V aritmeetilised tehted on loetletud allpool.

Mnemooniline Tüüp Juhend Kirjeldus
LISA  rd, rs1, rs2

R

Lisama rdß rs1 + rs2
SUB rd, rs1, rs2

R

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

I

Lisa kohe rdß rs1 + imm12
SLT rd, rs1, rs2

R

Määra vähem kui rdß rs1 -< rs2
SLTI rd, rs1, imm12

I

Määra vähem kui kohene rdß rs1 -< imm12
SLTU rd, rs1, rs2

R

Määra vähem kui allkirjastamata rdß rs1 -< rs2
SLTIU rd, rs1, imm12

I

Määra vähem kui kohe allkirjastamata rdß rs1 -< imm12
LUI rd, imm20

IN

Laadige ülemine kohe rdß imm20<<12
AUIP rd, imm20

IN

Lisa kohe ülemine arvutisse rdß PC+imm20<<12

Loogilised operatsioonid

RISC V loogilised toimingud on loetletud allpool.

Mnemooniline Tüüp Juhend Kirjeldus
JA  rd, rs1, rs2

R

JA rdß rs1 ja rs2
VÕI rd, rs1, rs2

R

VÕI rdß rs1 | rs2
XOR rd, rs1, rs2

R

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

I

JA kohe rdß rs1 ja imm2
ORI rd, rs1, imm12

I

VÕI kohe rdß rs1 | imm12
OXRI rd, rs1, imm12

I

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

R

Loogiline nihe vasakule rdß rs1 <<  rs2
SRL rd, rs1, rs2

R

Loogiline nihe paremale rdß rs1 >>  rs2
RAS rd, rs1, rs2

R

Nihuta aritmeetikat paremale rdß rs1 >>  rs2
SLLI rd, rs1, shamt

I

Vahetu loogiline nihe vasakule rdß rs1 << shamt
SRLI rd, rs1, shamt

I

Vahetu loogiline nihe paremale rdß rs1 >> shamt
SRAI rd, rs1, shamt

I

Vahetu aritmeetika nihutamine paremale rdß rs1 >> shamt

Laadimise/poe toimingud

RISC V laadimis-/salvestamistoimingud on loetletud allpool.

Mnemooniline Tüüp Juhend Kirjeldus
LD rd, imm12 (rs1)

I

Laadi topeltsõna rdß mem [rs1 +imm12]
LW rd, imm12 (rs1)

I

Laadi sõna rdß mem [rs1 +imm12]
LH rd, imm12 (rs1)

I

Laadige poole peale rdß mem [rs1 +imm12]
LB rd, imm12 (rs1)

I

Laadi bait rdß mem [rs1 +imm12]
LWU rd, imm12 (rs1)

I

Laadi sõna allkirjastamata rdß mem [rs1 +imm12]
LHU rd, imm12 (rs1)

I

Laadi pool sõna allkirjastamata rdß mem [rs1 +imm12]
LBU rd, imm12 (rs1)

I

Laadimisbait allkirjastamata rdß mem [rs1 +imm12]
SD  rs2, imm12 (rs1)

S

Salvestage topeltsõna rs2 mälule [rs1 +imm12]
SW rs2, imm12 (rs1)

S

Salvestage sõna rs2 (31:0) mälule [rs1 +imm12]
SH rs2, imm12 (rs1)

S

Hoida poolel teel rs2 (15:0) mälule [rs1 +imm12]
SB rs2, imm12 (rs1)

S

Salvesta bait rs2 (15:0) mälule [rs1 +imm12]
SRAI rd, rs1, shamt

I

Vahetu aritmeetika nihutamine paremale rs2 (7:0) mälule [rs1 +imm12]

Hargnemistoimingud

RISC V hargnemistoimingud on loetletud allpool.

Mnemooniline Tüüp Juhend Kirjeldus
BEQ rs1, rs2, imm12

SB

Haru võrdne Kui rs1== rs2

PC ß PC+imm12

BNE rs1, rs2, imm12

SB

Filiaal ei ole võrdne Kui rs1!= rs2

PC ß PC+imm12

BGE  rs1, rs2, imm12

SB

Haru, mis on suurem või võrdne Kui rs1>= rs2

PC ß PC+imm12

BGEU  rs1, rs2, imm12

SB

Haru, mis on suurem kui märgita või sellega võrdne Kui rs1>= rs2

PC ß PC+imm12

BLT  rs1, rs2, imm12

SB

Filiaal vähem kui Kui rs1< rs2

PC ß PC+imm12

BLTU  rs1, rs2, imm12

SB

Haru väiksem kui allkirjastamata Kui rs1< rs2

PC ß PC+imm12 <<1

JAL rd, imm20

UJ

Hüppa ja link rdßPC+4
PCß PC+imm20
JALR rd, imm12(rs1)

I

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

Eelised

The RISC eelised V protsessor sisaldama järgmist.

  • RISCV-d kasutades saame säästa arendusaega, tarkvaraarendust, verifitseerimist jne.
  • Sellel protsessoril on palju eeliseid, nagu lihtsus, avatus, modulaarsus, puhas disain ja laiendatavus.
  • Seda toetavad mitmed keelekompilaatorid, nagu GCC (GNU Compiler Collection), vabatarkvaraline kompilaator ja Linux OS .
  • Seda saavad ettevõtted vabalt kasutada, kuna puuduvad autoritasud, litsentsitasud ja ühendatud stringid.
  • RISC-V protsessor ei sisalda uusi ega uuenduslikke funktsioone, kuna see järgib lihtsalt RISC-i väljakujunenud põhimõtteid.
  • Sarnaselt mitmetele teistele ISA-dele määratleb see protsessori spetsifikatsioon lihtsalt erinevad käsukomplekti tasemed. Seega sisaldab see 32- ja 64-bitisi variante ning laiendusi, mis toetavad ujukomajuhiseid.
  • Need on tasuta, lihtsad, modulaarsed, stabiilsed jne.

Puudused

The RISC V protsessori puudused sisaldama järgmist.

  • Kompilaatorid ja programmeerijad kasutavad sageli keerulisi juhiseid.
  • RISC-i o/p võib koodi alusel muutuda, kui tsükli järgnevad käsud sõltuvad varasemast täitmise käsust.
  • Need protsessorid peavad kiiresti salvestama mitmesuguseid juhiseid, mis nõuab käsklustele õigeaegseks reageerimiseks suurt vahemälu.
  • RISC-i täielikud funktsioonid, võimalused ja eelised sõltuvad peamiselt arhitektuurist.

Rakendused

The RISC V rakendused protsessor sisaldama järgmist.

  • RISC-V-d kasutatakse manussüsteemides, tehisintellektis ja masinõppes.
  • Neid protsessoreid kasutatakse suure jõudlusega manustatud süsteemirakendustes.
  • See protsessor sobib kasutamiseks mõnes konkreetses valdkonnas, näiteks servade andmetöötlus, AI ja salvestusrakendused.
  • RISC-V on oluline, kuna see võimaldab väiksematel seadmetootjatel kujundada riistvara maksmata.
  • See protsessor võimaldab lihtsalt teadlastel ja arendajatel kujundada ja uurida vabalt saadaoleva ISA või käsukomplekti arhitektuuriga.
  • RISC V rakendused ulatuvad väikestest sisseehitatud mikrokontrolleritest kuni lauaarvutite ja superarvutiteni, sealhulgas vektorprotsessoriteni.

Seega on see ülevaade RISC V protsessorist – arhitektuur, rakendustega töötamine. Siin on teile küsimus, mis on CISC-protsessor?