RISC V ir instrukciju kopas arhitektūra, ko izstrādājusi Kalifornijas Universitāte Bērklijā. RISC koncepciju motivēja patiesība, ka lielākā daļa procesora instrukciju netika izmantotas lielākajā daļā datorprogrammu. Tātad, projektēšanā tika izmantota nevajadzīga dekodēšanas loģika procesori , patērē vairāk enerģijas, kā arī platības. Lai saīsinātu instrukciju kopu un vairāk ieguldītu reģistra resursos, RISC V procesors tika īstenots.
Šo tehnoloģiju pamanīja daudzi tehnoloģiju giganti un jaunuzņēmumi, jo tā ir pilnībā atvērtā koda un bezmaksas. Lielākā daļa procesoru veidu ir pieejami ar licences līgumu, taču ar šāda veida procesoriem; ikviens var izveidot savu jauno procesoru dizainu. Tātad šajā rakstā ir apskatīts RISC V procesora pārskats - tā darbība un tā lietojumprogrammas.
Kas ir RISC V procesors?
RISC V procesorā termins RISC apzīmē “samazinātas instrukciju kopas dators”, kas izpilda dažas datora instrukcijas, savukārt “V” apzīmē 5. paaudzi. Tā ir atvērtā koda aparatūras ISA (instrukciju kopas arhitektūra), kuras pamatā ir noteikts princips RISKS .
Salīdzinot ar citiem ISA modeļiem, šī ISA ir pieejama ar atvērtā pirmkoda licenci. Tātad vairāki ražošanas uzņēmumi ir paziņojuši un arī nodrošinājuši RISC-V aparatūru ar atvērtā pirmkoda operētājsistēmām.
Šī ir jauna arhitektūra, un tā ir pieejama atvērtās, neierobežojošās un bezmaksas licencēs. Šim procesoram ir plašs mikroshēmu un ierīču ražotāju atbalsts. Tāpēc tas galvenokārt ir izstrādāts tā, lai tas būtu brīvi paplašināms un pielāgojams lietošanai daudzās lietojumprogrammās.
RISC V vēsture
RISC izgudroja prof. Deivids Patersons ap 1980. gadu Kalifornijas Universitātē Bērklijā. Prof. Deivids un profesors Džons Hennessijs iesniedza savus centienus divās grāmatās, proti, “Datoru organizācija un dizains” un “Datoru arhitektūra Stenfordas universitātē. Tātad viņi saņēma ACM A.M. Tjūringa balva 2017. gadā.
No 1980. gada līdz 2010. gadam tika uzsākta RISC piektās paaudzes izstrādes izpēte, kas beidzot tika identificēta kā RISC-V, kas tiek izrunāta kā piektais risks.
RISC V arhitektūra un darbs
RV12 RISC V arhitektūra ir parādīta zemāk. RV12 ir ļoti konfigurējams ar viena kodola RV32I un RV64I saderīgu RISC centrālo procesoru, kas tiek izmantots iegultajos laukos. RV12 ir arī no 32 vai 64 bitu CPU saimes atkarībā no rūpnieciskā standarta RISC-V instrukciju kopas.
RV12 vienkārši izpilda Hārvardas arhitektūru, lai vienlaikus piekļūtu instrukcijām, kā arī datu atmiņai. Tas ietver arī 6 pakāpju cauruļvadu, kas palīdz optimizēt pārklāšanos starp izpildi, kā arī piekļuvi atmiņai, lai uzlabotu efektivitāti. Šī arhitektūra galvenokārt ietver zaru prognozēšanu, datu kešatmiņu, atkļūdošanas vienību, instrukciju kešatmiņu un izvēles reizinātāja vai dalītāju vienības.

RV12 RISC V galvenās iezīmes ir šādas.
- Tas ir nozares standarta instrukciju komplekts.
- Parametrēts ar 32 vai 64 bitu datiem.
- Tam ir precīzi un ātri pārtraukumi.
- Pielāgotas instrukcijas ļauj pievienot patentētus aparatūras paātrinātājus.
- Viena cikla izpilde.
- Sešu pakāpju cauruļvads ar optimizējošu salocītu.
- Atbalsts ar atmiņas aizsardzību.
- Izvēles vai parametrizētas kešatmiņas.
- Ārkārtīgi parametrizēts.
- Lietotāji var izvēlēties 32/64 bitu datu un zaru prognozēšanas vienību.
- Lietotāji var izvēlēties instrukciju/datu kešatmiņu.
- Lietotāja izvēles kešatmiņas struktūra, izmērs un arhitektūra.
- Aparatūras dalītāju vai reizinātāju atbalsts pēc lietotāja noteikta latentuma.
- Autobusu arhitektūra ir elastīga, kas atbalsta Wishbone un AHB.
- Šis dizains optimizē jaudu un izmēru.
- Dizains ir pilnībā parametrizēts, kas nodrošina veiktspējas vai jaudas kompromisus.
- CLK dizains, lai samazinātu jaudu.
- Programmatūras atbalsts saskaņā ar nozares standartu.
- Arhitektūras simulators.
- Eclipse IDE tiek izmantots operētājsistēmai Linux/Windows.
RISC V izpildes cauruļvads
Tas ietver piecus posmus, piemēram, IF (instrukciju ielāde), ID (instrukciju dekodēšana), EX (izpilde), MEM (piekļuve atmiņai) un WB (reģistrācijas atpakaļrakstīšana).
Instrukcija Fetch
Instruction Fetch vai IF stadijā no programmas skaitītāja (PC) un instrukciju atmiņas tiek nolasīta viena instrukcija, kas tiek atjaunināta uz nākamo instrukciju.
Instrukcija Pre-Decode
Kad RVC atbalsts ir atļauts, instrukcijas pirmsdekodēšanas posms atšifrēs 16 bitu saspiestu instrukciju vietējā 32 bitu instrukcijā.
Instrukcija Atšifrēt
Instrukcijas atšifrēšanas (ID) posmā ir atļauts reģistrēt datni un tiek izlemtas apiešanas vadīklas.
Izpildīt
Izpildes stadijā tiek aprēķināts rezultāts ALU, DIV, MUL instrukcijai, atmiņa, kas ir atļauta instrukcijai Store vai Load, un atzarojumi un lēcieni tiek mērīti pret to paredzamajiem rezultātiem.
Atmiņa
Šajā atmiņas posmā atmiņai piekļūst, izmantojot konveijeru. Šīs fāzes iekļaušana nodrošina cauruļvada augstu veiktspēju.
Rakstīt atpakaļ
Šajā posmā izpildes posma rezultāts tiek ierakstīts reģistra failā.
Nozares prognozētājs
Šajā procesorā ir iekļauta atzaru prognozēšanas vienība vai BPU, ko izmanto pagātnes datu glabāšanai, lai vadītu RISC V procesoru, lai izlemtu, vai tiek izmantota noteikta atzara. Šie prognozēšanas dati tiek vienkārši atjaunināti, tiklīdz filiāle tiek izpildīta.
Šī vienība ietver dažādus parametrus, kas nosaka tās uzvedību. Piemēram, HAS_BPU izmanto, lai noteiktu, vai filiāle paredz vienības klātbūtni, BPU_GLOBAL_BITS noteiks, cik pagātnes bitu ir jāizmanto, un BPU_LOCAL_BITS noteiks, cik programmas skaitītāja LSB ir jāizmanto. BPU_LOCAL_BITS un BPU_GLOBAL_BITS kombinācija radīs vektoru, kas galvenokārt tiek izmantots, lai risinātu zaru prognozēšanas tabulu.
Datu kešatmiņa
To galvenokārt izmanto, lai paātrinātu piekļuvi datu atmiņai, buferējot nesen piekļūtās atmiņas vietas. Tas var apstrādāt pusvārda, baitu un vārdu piekļuvi, ja XLEN = 32, ja tie atrodas uz savām robežām. Tas spēj arī apstrādāt pusvārda, baita, vārda un divvārdu piekļuvi, ja XLEN=64, ja tās atrodas uz savām robežām.
Cache miss laikā veselu bloku var ierakstīt atpakaļ atmiņā, tāpēc, ja nepieciešams, kešatmiņā var ielādēt jaunu bloku. Datu kešatmiņa ir atspējota, iestatot DCACHE_SIZE uz nulli. Pēc tam atmiņas vietām var piekļūt tieši, izmantojot Datu saskarne .
Instrukciju kešatmiņa
To galvenokārt izmanto, lai paātrinātu instrukciju ielādi, buferējot tikko ienestās instrukcijas. Šī kešatmiņa tiek izmantota, lai ielādētu vienu paku par katru ciklu uz jebkuras 16 bitu robežas, bet ne pāri bloka robežai. Cache miss laikā no instrukciju atmiņas var ielādēt veselu bloku. Šīs kešatmiņas konfigurāciju var veikt, pamatojoties uz lietotāja vajadzībām. Kešatmiņas lielums, aizstāšanas algoritms un bloka garums ir konfigurējams.
Instrukciju cikls tiks atspējots, iestatot ICACHE_SIZE uz nulli. Pēc tam pakas tiek iegūtas tieši no atmiņas, izmantojot Instrukciju saskarne.
Atkļūdošanas vienība
Atkļūdošanas vienība ļaus atkļūdošanas videi apturēt un pārbaudīt centrālo procesoru. Šīs galvenās funkcijas ir filiāļu izsekošana, viena soļa izsekošana līdz 8 aparatūras pārtraukuma punktiem.
Reģistrācijas fails
Tas ir paredzēts 32 reģistra vietām no X0 līdz X31, kur X9 reģistrs vienmēr ir nulle. Reģistra failā ir 1 rakstīšanas ports un 2 lasīšanas porti.
Konfigurējams interfeiss
Šī ir ārēja saskarne, kurā šis procesors atbalsta dažādas ārējās kopnes saskarnes.
Kā darbojas RISC V?
RISC-V ir instrukciju kopas arhitektūra, kuras pamatā ir RISC (reduced instruction set computer) principi. Šis procesors ir ļoti unikāls un arī revolucionārs, jo tas ir bezmaksas, izplatīts un atvērtā pirmkoda ISA, kurā var izstrādāt aparatūru, portēt programmatūru un izstrādāt procesorus, kas to atbalsta.
Atšķirība B/W RISC V pret MIPS
Atšķirība starp RISC V un MIPS ir šāda.
RISC V |
MIPS |
Termins RISC V apzīmē samazinātu instrukciju kopas datoru, kur “V” ir piektā paaudze. | Termins “MIPS” nozīmē “miljons instrukciju sekundē”. |
RISC-V vienkārši ļauj mazāku ierīču ražotājiem izstrādāt aparatūru, nemaksājot. | MIPS ļauj ražotājam izmērīt procesora ātrumu, maksājot, jo tas nav bezmaksas. |
MIPS ir efektīvi miris. | RISC-V nav efektīvi miris. |
Šis procesors nodrošina filiāles instrukcijas divu reģistru salīdzināšanai. | MIPS ir atkarīgs no salīdzināšanas instrukcijas, kas nosaka reģistra atrašanās vietu uz 1 vai 0, pamatojoties uz to, vai kontrasts ir patiess. |
ISA kodēšanas shēma ir fiksēta un mainīga RISC V. | ISA kodēšanas shēma ir fiksēta MIPS |
Instrukciju kopas lielums ir 16 biti vai 32 biti, vai 64 biti vai 128 biti. | Instrukciju kopas lielums ir 32 biti vai 64 biti. |
Tam ir 32 vispārējas nozīmes un peldošā komata reģistri | Tam ir 31 vispārējas nozīmes un peldošā komata reģistrs. |
Tam ir 26 viena un dubultas precizitātes peldošā komata darbības. | Tam ir 15 viena un dubultas precizitātes peldošā komata darbības. |
Atšķirība B/W RISC V pret ARM
Atšķirība starp RISC V un ARM ir šāda.
RISC V |
ARM |
RISC-V ir atvērtā koda, tāpēc tam nav nepieciešama licence. | ARM ir slēgts avots, tāpēc tam ir nepieciešama licence. |
Tā ir jauna procesora platforma, tāpēc programmatūras un programmēšanas vidēm ir ļoti mazs atbalsts. | ARM ir ļoti liela tiešsaistes kopiena, kas atbalsta bibliotēkas un struktūras, lai palīdzētu mērķa dizaineriem dažādās platformās, piemēram, mikroprocesoros, mikrokontrolleros un arī serveros. |
RISC V bāzes mikroshēmas patērē 1 vatu jaudu. | Uz ARM balstītas mikroshēmas patērē mazāk nekā 4 vatus. |
Tam ir fiksēta un mainīga ISA kodēšanas sistēma. | Tam ir fiksēta ISA kodēšanas sistēma. |
RISC V instrukciju kopas lielums svārstās no 16 bitiem līdz 128 bitiem. | Tā instrukciju lielums svārstās no 16 bitiem līdz 64 bitiem. |
Tas ietver 32 vispārējas nozīmes un peldošā komata reģistrus. | Tas ietver 31 vispārējas nozīmes un peldošā komata reģistru. |
Tam ir 26 viena precizitātes peldošā komata darbības. | Tam ir 33 viena precizitātes peldošā komata darbības. |
Tam ir 26 dubultas precizitātes peldošā komata darbības. | Tam ir 29 dubultas precizitātes peldošā komata darbības. |
RISC V Verilog kods
Tālāk ir parādīts RISC instrukciju atmiņas verilog kods.
// Verilog kods RISC procesoram
// Verilog kods instrukciju atmiņai
modulis Instruction_Memory(
ievade[15:0] dators,
izvades [15:0] instrukcija
);
reg [`col – 1:0] atmiņa [`row_i – 1:0];
vads [3 : 0] rom_addr = pc[4 : 1];
sākotnējā
sākt
$readmemb(“./test/test.prog”, atmiņa,0,14);
beigas
piešķirt instrukciju = atmiņa[rom_addr];
gala modulis
Verilog kods 16 bitu RISC V procesoram:
modulis Risk_16_bit(
ievade clk
);
stieples lēciens,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
vads[1:0] alu_op;
vadu [3:0] opkods;
// Datu ceļš
Datapath_Unit DU
(
.clk(clk),
.jump(lēkt),
.varde(varde),
.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)
);
// kontroles vienība
Control_Unit vadība
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.jump(lēkt),
.bne(bne),
.varde(varde),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
gala modulis
Instrukciju komplekti
RISC V instrukciju kopas ir apskatītas tālāk.
Aritmētiskās operācijas
RISC V aritmētiskās darbības ir uzskaitītas zemāk.
Mnemoniska | Tips | Instrukcija | Apraksts |
PIEVIENOT rd, rs1, rs2 |
R |
Pievienot | rdß rs1 + rs2 |
SUB rd, rs1, rs2 |
R |
Atņemt | rdß rs1 – rs2 |
ADDI rd, rs1, imm12 |
es |
Pievienojiet nekavējoties | rdß rs1 + imm12 |
SLT rd, rs1, rs2 |
R |
Iestatīt mazāk nekā | rdß rs1 -< rs2 |
SLTI rd, rs1, imm12 |
es |
Iestatīt mazāk nekā tūlītēju | rdß rs1 -< imm12 |
SLTU rd, rs1, rs2 |
R |
Iestatīt mazāk nekā neparakstīts | rdß rs1 -< rs2 |
SLTIU rd, rs1, imm12 |
es |
Iestatīt mazāk nekā uzreiz neparakstīts | rdß rs1 -< imm12 |
LUI rd, imm20 |
IN |
Nekavējoties ielādēt augšējo daļu | rdß imm20<<12 |
AUIP rd,imm20 |
IN |
Pievienojiet augšējo tūlītēju datoram | rdß PC+imm20<<12 |
Loģiskās operācijas
Tālāk ir norādītas RISC V loģiskās darbības.
Mnemoniska | Tips | Instrukcija | Apraksts |
UN rd, rs1, rs2 |
R |
UN | rdß rs1 un rs2 |
VAI rd, rs1, rs2 |
R |
VAI | rdß rs1 | rs2 |
XOR rd, rs1, rs2 |
R |
BEZMAKSAS | rdß rs1 ^ rs2 |
ANDI rd, rs1, imm12 |
es |
UN nekavējoties | rdß rs1 un imm2 |
ORI rd, rs1, imm12 |
es |
VAI Tūlītēji | rdß rs1 | imm12 |
OXRI rd, rs1, imm12 |
es |
XOR nekavējoties | rdß rs1 ^ rs2 |
SLL rd, rs1, rs2 |
R |
Loģiski pārbīdīt pa kreisi | rdß rs1 << rs2 |
SRL rd, rs1, rs2 |
R |
Loģiski pārslēdziet pa labi | rdß rs1 >> rs2 |
RAS rd, rs1, rs2 |
R |
Pārbīdīt pa labi aritmētiku | rdß rs1 >> rs2 |
SLLI rd, rs1, shamt |
es |
Tūlītēja loģiskā maiņa pa kreisi | rdß rs1 << shamt |
SRLI rd, rs1, shamt |
es |
Tūlītēja loģiskā maiņa pa labi | rdß rs1 >> shamt |
SRAI rd, rs1, shamt |
es |
Nekavējoties pārslēdziet labo aritmētisko | rdß rs1 >> shamt |
Iekraušanas/noliktavas darbības
Tālāk ir norādītas RISC V ielādes/glabāšanas darbības.
Mnemoniska | Tips | Instrukcija | Apraksts |
LD rd, imm12 (rs1) |
es |
Ielādēt dubultvārdu | rdß mem [rs1 +imm12] |
LW rd, imm12 (rs1) |
es |
Ielādēt vārdu | rdß mem [rs1 +imm12] |
LH rd, imm12 (rs1) |
es |
Ielādē līdz pusei | rdß mem [rs1 +imm12] |
LB rd, imm12 (rs1) |
es |
Ielādēt baitu | rdß mem [rs1 +imm12] |
LWU rd, imm12 (rs1) |
es |
Ielādēt vārdu bez paraksta | rdß mem [rs1 +imm12] |
LHU rd, imm12 (rs1) |
es |
Ielādēt pusi vārda neparakstīts | rdß mem [rs1 +imm12] |
LBU rd, imm12 (rs1) |
es |
Ielādes baits neparakstīts | rdß mem [rs1 +imm12] |
SD rs2, imm12 (rs1) |
S |
Saglabājiet dubultvārdu | rs2 uz atmiņu [rs1 +imm12] |
SW rs2, imm12 (rs1) |
S |
Glabājiet vārdu | rs2 (31:0) uz mem [rs1 +imm12] |
SH rs2, imm12 (rs1) |
S |
Uzglabāt pusceļā | rs2 (15:0) uz mem [rs1 +imm12] |
SB rs2, imm12 (rs1) |
S |
Saglabāt baitu | rs2 (15:0) uz mem [rs1 +imm12] |
SRAI rd, rs1, shamt |
es |
Nekavējoties pārslēdziet labo aritmētisko | rs2 (7:0) uz mem [rs1 +imm12] |
Atzarošanas operācijas
Tālāk ir norādītas RISC V atzarošanas darbības.
Mnemoniska | Tips | Instrukcija | Apraksts |
BEQ rs1, rs2, imm12 |
SB |
Filiāle vienāda | Ja rs1== rs2 PC ß PC+imm12 |
BNE rs1, rs2, imm12 |
SB |
Nozare nav vienāda | Ja rs1!= rs2 PC ß PC+imm12 |
BGE rs1, rs2, imm12 |
SB |
Filiāle ir lielāka par vai vienāda | Ja rs1>= rs2 PC ß PC+imm12 |
BGEU rs1, rs2, imm12 |
SB |
Filiāle ir lielāka vai vienāda ar neparakstītu | Ja rs1>= rs2 PC ß PC+imm12 |
BLT rs1, rs2, imm12 |
SB |
Filiāle mazāk nekā | Ja rs1< rs2 PC ß PC+imm12 |
BLTU rs1, rs2, imm12 |
SB |
Filiāle mazāk nekā neparakstīta | Ja rs1< rs2 PC ß PC+imm12 <<1 |
JAL rd, imm20 |
UJ |
Pārlēkt un savienot | rdßPC+4 PCß PC+imm20 |
JALR rd, imm12(rs1) |
es |
Jump and Link reģistrs | rdßPC+4 PCß rs1+imm12 |
Priekšrocības
The RISC priekšrocības V procesors iekļaujiet tālāk norādīto.
- Izmantojot RISCV, mēs varam ietaupīt izstrādes laiku, programmatūras izstrādi, verifikāciju utt.
- Šim procesoram ir daudz priekšrocību, piemēram, vienkāršība, atvērtība, modularitāte, tīrs dizains un paplašināmība.
- To atbalsta vairāki valodu kompilatori, piemēram, GCC (GNU Compiler Collection), bezmaksas programmatūras kompilators un izmantojot Linux OS .
- Uzņēmumi to var brīvi izmantot bez autoratlīdzības, bez licencēšanas maksas un bez savienojuma.
- RISC-V procesors neietver nekādas jaunas vai novatoriskas funkcijas, jo tas vienkārši atbilst noteiktajiem RISC principiem.
- Līdzīgi kā vairāki citi ISA, šī procesora specifikācija vienkārši definē dažādus instrukciju kopas līmeņus. Tātad tas satur 32 un 64 bitu variantus, kā arī paplašinājumus, lai atbalstītu peldošā komata norādījumus.
- Tie ir bezmaksas, vienkārši, modulāri, stabili utt.
Trūkumi
The RISC V procesora trūkumi iekļaujiet tālāk norādīto.
- Kompilatori un programmētāji bieži izmanto sarežģītas instrukcijas.
- RISC o/p var mainīties atkarībā no koda, ja turpmākās instrukcijas cilpas ietvaros ir atkarīgas no iepriekšējās izpildes instrukcijas.
- Šiem procesoriem ātri jāsaglabā dažādas instrukcijas, kas prasa lielu kešatmiņas komplektu, lai savlaicīgi reaģētu uz norādījumiem.
- Visas RISC funkcijas, iespējas un priekšrocības galvenokārt ir atkarīgas no arhitektūras.
Lietojumprogrammas
The RISC V lietojumprogrammas procesors iekļaujiet tālāk norādīto.
- RISC-V tiek izmantots iegultās sistēmās, mākslīgajā intelektā un mašīnmācībās.
- Šie procesori tiek izmantoti augstas veiktspējas iegulto sistēmu lietojumprogrammās.
- Šis procesors ir piemērots lietošanai dažās konkrētās jomās, piemēram, malu skaitļošanā, mākslīgā intelekta un uzglabāšanas lietojumprogrammās.
- RISC-V ir svarīgs, jo tas ļauj mazākiem ierīču ražotājiem izstrādāt aparatūru, nemaksājot.
- Šis procesors vienkārši ļauj pētniekiem un izstrādātājiem izstrādāt, kā arī veikt pētījumus, izmantojot brīvi pieejamu ISA vai instrukciju kopas arhitektūru.
- RISC V lietojumu diapazons ir no maziem iegultiem mikrokontrolleriem līdz galddatoriem un superdatoriem, tostarp vektoru procesoriem.
Tādējādi tas ir pārskats par RISC V procesoru – arhitektūra, darbs ar aplikācijām. Šeit ir jautājums jums, kas ir CISC procesors?