Kas ir RISC V procesors: arhitektūra, darbība un tā lietojumprogrammas

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





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.

  RISC procesora arhitektūra
RISC procesora arhitektūra

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?