RISC V je arhitektura nabora navodil, ki jo je razvila kalifornijska univerza v Berkeleyju. Koncept RISC je bil motiviran z resnico, da večina računalniških programov ne uporablja večine ukazov procesorja. Torej je bila v načrtih uporabljena nepotrebna logika dekodiranja procesorji , ki porabi več energije in površine. Da bi skrajšali nabor navodil in vložili več v vire registra, je RISC V procesor je bil izveden.
To tehnologijo so opazili številni tehnološki velikani in novoustanovljena podjetja, ker je popolnoma odprtokodna in brezplačna. Večina vrst procesorjev je na voljo z licenčno pogodbo, vendar s to vrsto procesorja; kdorkoli lahko naredi svoje nove modele procesorjev. Ta članek torej obravnava pregled delovanja procesorja RISC V in njegovih aplikacij.
Kaj je procesor RISC V?
V procesorju RISC V izraz RISC pomeni 'računalnik z zmanjšanim naborom ukazov', ki izvaja malo računalniških ukazov, medtem ko 'V' pomeni 5. generacijo. Je odprtokodna strojna oprema ISA (arhitektura nabora ukazov), ki temelji na uveljavljenem principu TVEGANJE .
V primerjavi z drugimi modeli ISA je ta ISA na voljo z odprtokodno licenco. Tako so številna proizvodna podjetja napovedala in tudi zagotovila strojno opremo RISC-V z odprtokodnimi operacijskimi sistemi.
To je nova arhitektura in je na voljo v obliki odprtih, neomejevalnih in brezplačnih licenc. Ta procesor ima obsežno podporo industrije proizvajalcev čipov in naprav. Zato je v glavnem zasnovan tako, da je prosto razširljiv in prilagodljiv za uporabo v številnih aplikacijah.
RISC V Zgodovina
RISC je izumil prof. David Patterson okrog leta 1980 na kalifornijski univerzi Berkeley. Prof. David in prof. John Hennessy sta predstavila svoja prizadevanja v dveh knjigah, in sicer »Računalniška organizacija in načrtovanje« in »Računalniška arhitektura na Univerzi Stanford. Tako so prejeli ACM A.M. Turingovo nagrado leta 2017.
Od leta 1980 do leta 2010 so se začele razvojne raziskave pete generacije RISC, ki so bile končno identificirane kot RISC-V, kar se izgovarja kot tveganje pet.
RISC V Arhitektura in delo
Arhitektura RV12 RISC V je prikazana spodaj. RV12 je zelo nastavljiv z enojedrnim CPE RISC, skladnim z RV32I in RV64I, ki se uporablja v vgrajenih poljih. RV12 je prav tako iz družine 32 ali 64-bitnih CPE, odvisno od nabora navodil industrijskega standarda RISC-V.
RV12 preprosto izvaja harvardsko arhitekturo za hkraten dostop do navodil in podatkovnega pomnilnika. Vključuje tudi 6-stopenjski cevovod, ki pomaga pri optimizaciji prekrivanja med izvajanjem in dostopom do pomnilnika za izboljšanje učinkovitosti. Ta arhitektura v glavnem vključuje predvidevanje vej, podatkovni predpomnilnik, enoto za odpravljanje napak, predpomnilnik navodil in izbirne enote množitelja ali delilnika.
Glavne značilnosti RV12 RISC V vključujejo naslednje.
- To je standardni nabor navodil za industrijo.
- Parametriziran z 32- ali 64-bitnimi podatki.
- Ima natančne in hitre prekinitve.
- Navodila po meri omogočajo dodajanje lastniških strojnih pospeševalnikov.
- Izvedba enega cikla.
- Šeststopenjski cevovod z optimizacijskim zgibom.
- Podpora z zaščito pomnilnika.
- Izbirni ali parametrirani predpomnilniki.
- Izjemno parametriran.
- Uporabniki lahko izberejo 32/64-bitne podatke in enoto za napovedovanje veje.
- Uporabniki lahko izberejo predpomnilnike navodil/podatkov.
- Uporabniško izbrana struktura, velikost in arhitektura predpomnilnika.
- Podpora delilnika ali množitelja strojne opreme z uporabniško določeno zakasnitvijo.
- Arhitektura vodila je prilagodljiva in podpira Wishbone & AHB.
- Ta oblika optimizira moč in velikost.
- Zasnova je popolnoma parametrirana, kar zagotavlja kompromise glede zmogljivosti ali moči.
- Gated CLK dizajn za zmanjšanje moči.
- Programska podpora po industrijskem standardu.
- Arhitekturni simulator.
- Eclipse IDE se uporablja za Linux/Windows.
Izvedbeni cevovod RISC V
Vključuje pet stopenj, kot so IF (pridobivanje navodil), ID (dekodiranje navodil), EX (izvedba), MEM (dostop do pomnilnika) in WB (povratni zapis registra).
Pridobivanje navodil
Na stopnji pridobivanja navodil ali IF se eno navodilo prebere iz programskega števca (PC) in pomnilnika navodil, ki se posodobi na naslednje navodilo.
Preddekodiranje navodil
Ko je podpora za RVC dovoljena, bo stopnja preddekodiranja navodil dekodirala 16-bitno stisnjeno navodilo v izvorno 32-bitno navodilo.
Dekodiranje navodil
V fazi dekodiranja navodil (ID) je registrska datoteka dovoljena in odločijo se o obvodnih kontrolah.
Izvedi
Na stopnji izvajanja se izračuna rezultat za ukaz ALU, DIV, MUL, pomnilnik, dovoljen za ukaz za shranjevanje ali nalaganje, veje in skoki pa se merijo glede na njihove pričakovane rezultate.
Spomin
V tej fazi pomnilnika se do pomnilnika dostopa prek cevovoda. Vključitev te faze zagotavlja visoko zmogljivost cevovoda.
Napiši nazaj
V tej fazi se rezultat izvedbene stopnje zapiše v registrsko datoteko.
Prediktor veje
Ta procesor vključuje enoto za napovedovanje veje ali BPU, ki se uporablja za shranjevanje preteklih podatkov za vodenje procesorja RISC V pri odločanju, ali je določena veja prevzeta ali ne. Ti podatki napovedovalca se preprosto posodobijo, ko se veja izvede.
Ta enota vključuje različne parametre, ki določajo njeno obnašanje. Na primer, HAS_BPU se uporablja za določitev, ali veja predvideva, da je enota prisotna, BPU_GLOBAL_BITS bo določil, koliko preteklih bitov je treba uporabiti, BPU_LOCAL_BITS pa bo določil, koliko LSB programskega števca je treba uporabiti. Kombinacija BPU_LOCAL_BITS & BPU_GLOBAL_BITS bo ustvarila vektor, ki se v glavnem uporablja za obravnavanje tabele napovedi vej.
Predpomnilnik podatkov
To se v glavnem uporablja za pospešitev dostopa do podatkovnega pomnilnika z medpomnjenjem na novo dostopanih lokacij pomnilnika. To je zmožno obravnavati dostope do polbesed, bajtov in besed, ko je XLEN = 32, če so na svojih lastnih mejah. Prav tako je sposoben obravnavati dostope polbesed, bajtov, besed in dvojnih besed, ko je XLEN=64, če so na lastnih mejah.
Med zamudo v predpomnilniku se lahko cel blok zapiše nazaj v pomnilnik, tako da se lahko po potrebi v predpomnilnik naloži nov blok. Podatkovni predpomnilnik je onemogočen z nastavitvijo DCACHE_SIZE na nič. Po tem se do pomnilniških lokacij dostopa neposredno prek Podatkovni vmesnik .
Predpomnilnik navodil
To se v glavnem uporablja za pospešitev pridobivanja navodil z medpomnjenjem na novo pridobljenih navodil. Ta predpomnilnik se uporablja za pridobivanje enega paketa za vsak cikel na kateri koli 16-bitni meji, vendar ne prek meje bloka. Med zgrešenim predpomnilnikom se lahko iz pomnilnika ukazov naloži cel blok. Konfiguracijo tega predpomnilnika lahko izvedete glede na potrebe uporabnika. Velikost predpomnilnika, nadomestnega algoritma in dolžine bloka je mogoče konfigurirati.
Cikel ukazov bo onemogočen z nastavitvijo ICACHE_SIZE na nič. Po tem se paketi pridobijo neposredno iz pomnilnika prek Vmesnik z navodili.
Enota za odpravljanje napak
Enota za odpravljanje napak bo omogočila okolju za odpravljanje napak, da se ustavi in pregleda CPE. Glavne značilnosti tega so sledenje vej, sledenje v enem koraku do 8 prelomnih točk strojne opreme.
Registriraj datoteko
Ta je zasnovan z 32 registrskimi lokacijami od X0 do X31, kjer je register X9 vedno nič. Registrska datoteka vključuje vrata za 1 pisanje in 2 vrata za branje.
Nastavljiv vmesnik
To je zunanji vmesnik, kjer ta procesor podpira različne zunanje vmesnike vodila.
Kako deluje RISC V?
RISC-V je arhitektura nabora ukazov, ki temelji na načelih RISC (reduced instruction set computer). Ta procesor je zelo edinstven in tudi revolucionaren, saj je brezplačen, skupen in odprtokoden ISA, kjer je mogoče razviti strojno opremo, prenesti programsko opremo in oblikovati procesorje, ki jo podpirajo.
Razlika Č/B RISC V proti MIPS
Razlika med RISC V in MIPS vključuje naslednje.
RISC V |
MIPS |
Izraz RISC V pomeni računalnik z zmanjšanim naborom ukazov, kjer je 'V' peta generacija. | Izraz 'MIPS' pomeni 'milijon navodil na sekundo'. |
RISC-V preprosto dovoljuje proizvajalcem manjših naprav, da oblikujejo strojno opremo brez plačila. | MIPS proizvajalcu omogoča merjenje hitrosti procesorja s plačilom, ker ni brezplačen. |
MIPS je dejansko mrtev. | RISC-V ni učinkovito mrtev. |
Ta procesor nudi navodila za razvejanje za primerjavo dveh registrov. | MIPS je odvisen od primerjalnega ukaza, ki poišče register na 1 ali 0 glede na to, ali je kontrast resničen. |
Shema kodiranja ISA je fiksna in spremenljiva v RISC V. | Shema kodiranja ISA je določena v MIPS |
Velikost niza ukazov je 16-bitna ali 32-bitna ali 64-bitna ali 128-bitna. | Velikost nabora navodil je 32-bitna ali 64-bitna. |
Ima 32 splošnih registrov in registrov s plavajočo vejico | Ima 31 splošnih registrov in registrov s plavajočo vejico. |
Ima 26 operacij s plavajočo vejico z enojno in dvojno natančnostjo. | Ima 15 operacij s plavajočo vejico z enojno in dvojno natančnostjo. |
Razlika Č/B RISC V proti ARM
Razlika med RISC V in ARM vključuje naslednje.
RISC V |
ROKA |
RISC-V je odprtokoden, zato ne potrebuje licence. | ARM je zaprta koda, zato potrebuje licenco. |
Gre za novo procesorsko platformo, zato je podpora za programsko in programsko okolje zelo majhna. | ARM ima zelo veliko spletno skupnost, ki podpira knjižnice in strukture za pomoč ciljnim oblikovalcem na različnih platformah, kot so mikroprocesorji, mikrokontrolerji in tudi strežniki. |
Čipi, ki temeljijo na RISC V, porabijo 1 vat moči. | Čipi, ki temeljijo na ARM, porabijo manj kot 4 vate energije. |
Ima fiksni in spremenljivi sistem kodiranja ISA. | Ima fiksni sistem kodiranja ISA. |
Velikost nabora navodil RISC V se giblje od 16 do 128 bitov. | Njegova velikost navodil se giblje od 16-bitnih do 64-bitnih. |
Vključuje 32 splošnih registrov in registrov s plavajočo vejico. | Vključuje 31 splošnih registrov in registrov s plavajočo vejico. |
Ima 26 operacij s plavajočo vejico z enojno natančnostjo. | Ima 33 operacij s plavajočo vejico z enojno natančnostjo. |
Ima operacije s plavajočo vejico 26 dvojne natančnosti. | Ima operacije s plavajočo vejico z 29 dvojno natančnostjo. |
Koda Verilog RISC V
Koda verilog pomnilnika navodil za RISC je prikazana spodaj.
// Koda Verilog za procesor RISC
// Koda Verilog za pomnilnik navodil
modul Instruction_Memory(
vhod [15:0] pc,
izhod [15:0] navodilo
);
reg [`col – 1:0] spomin [`row_i – 1:0];
žica [3 : 0] rom_addr = pc [4 : 1];
začetnica
začeti
$readmemb(“./test/test.prog”, spomin,0,14);
konec
dodeli navodilo = memory[rom_addr];
končni modul
Koda Verilog za 16-bitni procesor RISC V:
modul Risc_16_bit(
vhodni clk
);
žični skok,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
žica [1:0] alu_op;
žica [3:0] operacijska koda;
// Podatkovna pot
Datapath_Unit DU
(
.clk(clk),
.jump(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 enota
Control_Unit control
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.jump(skok),
.bne(bne),
.žaba (žaba),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
končni modul
Kompleti navodil
Nizi ukazov RISC V so obravnavani spodaj.
Aritmetične operacije
Aritmetične operacije RISC V so navedene spodaj.
Mnemotehnika | Vrsta | Navodilo | Opis |
DODAJ rd, rs1, rs2 |
R |
Dodaj | rdß rs1 + rs2 |
SUB rd, rs1, rs2 |
R |
Odštej | rdß rs1 – rs2 |
DODAJ rd, rs1, imm12 |
jaz |
Dodaj takoj | rdß rs1 + imm12 |
SLT rd, rs1, rs2 |
R |
Nastavite manj kot | rdß rs1 -< rs2 |
SLTI rd, rs1, imm12 |
jaz |
Nastavite manj kot takoj | rdß rs1 -< imm12 |
SLTU rd, rs1, rs2 |
R |
Nastavite manj kot nepodpisano | rdß rs1 -< rs2 |
SLTIU rd, rs1, imm12 |
jaz |
Nastavite manj kot takoj nepodpisano | rdß rs1 -< imm12 |
LUI rd, imm20 |
IN |
Obremenitev zgornjega takojšnjega | rdß imm20<<12 |
AUIP rd, imm20 |
IN |
Dodajanje zgornjega neposrednega računalniku | rdß PC+imm20<<12 |
Logične operacije
Spodaj so navedene logične operacije RISC V.
Mnemotehnika | Vrsta | Navodilo | Opis |
IN rd, rs1, rs2 |
R |
IN | rdß rs1 in rs2 |
ALI rd, rs1, rs2 |
R |
ALI | rdß rs1 | rs2 |
XOR rd, rs1, rs2 |
R |
PROST | rdß rs1 ^ rs2 |
ANDI rd, rs1, imm12 |
jaz |
IN takoj | rdß rs1 & imm2 |
ORI rd, rs1, imm12 |
jaz |
ALI Takoj | rdß rs1 | imm12 |
OXRI rd, rs1, imm12 |
jaz |
XOR takoj | rdß rs1 ^ rs2 |
SLL rd, rs1, rs2 |
R |
Premik levo logično | rdß rs1 << rs2 |
SRL rd, rs1, rs2 |
R |
Premik desno logično | rdß rs1 >> rs2 |
RAS rd, rs1, rs2 |
R |
Aritmetika premika v desno | rdß rs1 >> rs2 |
SLLI rd, rs1, šamt |
jaz |
Premik levo logično takoj | rdß rs1 << šamt |
SRLI rd, rs1, šamt |
jaz |
Premik desno logično takoj | rdß rs1 >> shamt |
SRAI rd, rs1, šamt |
jaz |
Takojšnji premik v desno aritmetika | rdß rs1 >> shamt |
Nalaganje/shranjevanje
Operacije nalaganja/shranjevanja RISC V so navedene spodaj.
Mnemotehnika | Vrsta | Navodilo | Opis |
LD rd, imm12 (rs1) |
jaz |
Naloži dvojno besedo | rdß mem [rs1 +imm12] |
LW rd, imm12 (rs1) |
jaz |
Naloži besedo | rdß mem [rs1 +imm12] |
LH rd, imm12 (rs1) |
jaz |
Naložite do polovice | rdß mem [rs1 +imm12] |
LB rd, imm12 (rs1) |
jaz |
Naloži bajt | rdß mem [rs1 +imm12] |
LWU rd, imm12 (rs1) |
jaz |
Naloži besedo brez predznaka | rdß mem [rs1 +imm12] |
LHU rd, imm12 (rs1) |
jaz |
Naloži pol besede brez podpisa | rdß mem [rs1 +imm12] |
LBU rd, imm12 (rs1) |
jaz |
Naloži bajt brez predznaka | rdß mem [rs1 +imm12] |
SD rs2, imm12 (rs1) |
S |
Shranite dvojno besedo | rs2 v mem [rs1 +imm12] |
SW rs2, imm12 (rs1) |
S |
Shranjujte besedo | rs2 (31:0) v mem [rs1 +imm12] |
SH rs2, imm12 (rs1) |
S |
Shranite na pol | rs2 (15:0) v mem [rs1 +imm12] |
SB rs2, imm12 (rs1) |
S |
Shrani bajt | rs2 (15:0) v mem [rs1 +imm12] |
SRAI rd, rs1, šamt |
jaz |
Takojšnji premik v desno aritmetika | rs2 (7:0) v mem [rs1 +imm12] |
Podružnice
Operacije razvejanja RISC V so navedene spodaj.
Mnemotehnika | Vrsta | Navodilo | Opis |
BEQ rs1, rs2, imm12 |
SB |
Podružnica enaka | Če je rs1== rs2 PC ß PC+imm12 |
BNE rs1, rs2, imm12 |
SB |
Veja ni enaka | Če je rs1!= rs2 PC ß PC+imm12 |
BGE rs1, rs2, imm12 |
SB |
Veja večja ali enaka | Če je rs1>= rs2 PC ß PC+imm12 |
BGEU rs1, rs2, imm12 |
SB |
Veja je večja ali enaka nepredznaku | Če je rs1>= rs2 PC ß PC+imm12 |
BLT rs1, rs2, imm12 |
SB |
Podružnica manj kot | Če je rs1< rs2 PC ß PC+imm12 |
BLTU rs1, rs2, imm12 |
SB |
Veja manj kot nepodpisana | Če je rs1< rs2 PC ß PC+imm12 <<1 |
JAL rd, imm20 |
UJ |
Skoči in poveži | rdßPC+4 PCß PC+imm20 |
JALR rd, imm12(rs1) |
jaz |
Jump and Link register | rdßPC+4 PCß rs1+imm12 |
Prednosti
The prednosti RISC V procesor vključujejo naslednje.
- Z uporabo RISCV lahko prihranimo čas razvoja, razvoja programske opreme, verifikacije itd.
- Ta procesor ima številne prednosti, kot so preprostost, odprtost, modularnost, čista zasnova in razširljivost.
- To podpira več jezikovnih prevajalnikov, kot je GCC (GNU Compiler Collection), prevajalnik brezplačne programske opreme in prek OS Linux .
- To lahko podjetja prosto uporabljajo, ker ni licenčnin, licenčnin in ni povezanih nizov.
- Procesor RISC-V ne vključuje nobenih novih ali inovativnih funkcij, ker preprosto sledi uveljavljenim načelom RISC.
- Podobno kot več drugih ISA-jev ta specifikacija procesorja preprosto definira različne ravni nabora ukazov. To torej vsebuje 32 in 64-bitne različice ter razširitve za podporo navodilom s plavajočo vejico.
- Ti so brezplačni, enostavni, modularni, stabilni itd.
Slabosti
The slabosti procesorja RISC V vključujejo naslednje.
- Kompleksna navodila pogosto uporabljajo prevajalniki in programerji.
- O/p RISC se lahko spremeni glede na kodo, ko so naslednja navodila znotraj zanke odvisna od prejšnjega navodila za izvedbo.
- Ti procesorji morajo hitro shraniti različna navodila, kar zahteva velik nabor predpomnilnika, da se na navodila odzove pravočasno.
- Celotne funkcije, zmožnosti in prednosti RISC so v glavnem odvisne od arhitekture.
Aplikacije
The aplikacije RISC V procesor vključujejo naslednje.
- RISC-V se uporablja v vgrajenih sistemih, umetni inteligenci in strojnem učenju.
- Ti procesorji se uporabljajo v visoko zmogljivih vgrajenih sistemskih aplikacijah.
- Ta procesor je primeren za uporabo na določenih področjih, kot so robno računalništvo, AI in aplikacije za shranjevanje.
- RISC-V je pomemben, saj manjšim proizvajalcem naprav omogoča oblikovanje strojne opreme brez plačila.
- Ta procesor preprosto omogoča raziskovalcem in razvijalcem načrtovanje in raziskovanje s prosto dostopno arhitekturo ISA ali nabora navodil.
- Aplikacije RISC V segajo od majhnih vgrajenih mikrokontrolerjev do namiznih osebnih računalnikov in superračunalnikov, vključno z vektorskimi procesorji.
Torej, to je pregled procesorja RISC V – arhitektura, delo z aplikacijami. Tukaj je vprašanje za vas, kaj je procesor CISC?