Kas yra RISC V procesorius: architektūra, darbas ir jo programos

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





RISC V yra instrukcijų rinkinio architektūra, sukurta Kalifornijos universiteto Berklyje. RISC koncepciją motyvavo tiesa, kad dauguma procesoriaus instrukcijų nebuvo panaudotos daugumoje kompiuterių programų. Taigi, projektuojant buvo panaudota nereikalinga dekodavimo logika procesoriai , sunaudoja daugiau energijos ir ploto. Norėdami sutrumpinti instrukcijų rinkinį ir daugiau investuoti į registro išteklius, RISC V procesorius buvo įgyvendintas.


Šią technologiją pastebėjo daugelis technologijų gigantų ir startuolių, nes ji yra visiškai atviro kodo ir nemokama. Daugumą procesorių tipų galima įsigyti su licencijos sutartimi, tačiau su šio tipo procesoriumi; Kiekvienas gali sukurti savo naują procesoriaus dizainą. Taigi šiame straipsnyje aptariama RISC V procesoriaus veikimo ir jo taikomųjų programų apžvalga.



Kas yra RISC V procesorius?

RISC V procesoriuje terminas RISC reiškia „sumažintą instrukcijų rinkinį kompiuterį“, kuris vykdo kelias kompiuterio instrukcijas, o „V“ reiškia 5-ąją kartą. Tai atvirojo kodo aparatinės įrangos ISA (instrukcijų rinkinio architektūra), pagrįsta nustatytu principu RIZIKA .

Palyginti su kitais ISA dizainais, šią ISA galima įsigyti su atvirojo kodo licencija. Taigi, daugelis gamybos įmonių paskelbė ir taip pat pateikė RISC-V aparatinę įrangą su atvirojo kodo operacinėmis sistemomis.



Tai nauja architektūra, kurią galima įsigyti su atviromis, neribojančiomis ir nemokamomis licencijomis. Šis procesorius plačiai palaiko lustų ir įrenginių gamintojų pramonę. Taigi jis daugiausia sukurtas taip, kad būtų laisvai plečiamas ir pritaikomas naudoti daugelyje programų.

RISC V istorija

RISC išrado prof. Davidas Pattersonas apie 1980 m. Kalifornijos universitete Berklyje. Prof. Davidas ir profesorius Johnas Hennessy pateikė savo pastangas dviejose knygose: „Kompiuterių organizavimas ir dizainas“ ir „Kompiuterinė architektūra Stanfordo universitete. Taigi, jie gavo ACM A.M. Turingo apdovanojimas 2017 m.

Nuo 1980 iki 2010 metų buvo pradėti penktosios kartos RISC plėtros tyrimai, kurie galiausiai buvo identifikuoti kaip RISC-V, kuri vadinama penkta rizika.

RISC V architektūra ir darbas

RV12 RISC V architektūra parodyta žemiau. RV12 galima lengvai konfigūruoti naudojant vieno branduolio RV32I ir RV64I suderinamą RISC procesorių, kuris naudojamas įterptuosiuose laukuose. RV12 taip pat yra iš 32 arba 64 bitų procesorių šeimos, priklausomai nuo pramoninio standarto RISC-V instrukcijų rinkinio.

RV12 paprasčiausiai vykdo Harvardo architektūrą, kad vienu metu galėtų pasiekti instrukcijas ir duomenų atmintį. Jame taip pat yra 6 pakopų vamzdynas, padedantis optimizuoti vykdymo sutapimus, taip pat prieigas prie atminties, siekiant pagerinti efektyvumą. Ši architektūra daugiausia apima atšakos numatymą, duomenų talpyklą, derinimo vienetą, instrukcijų talpyklą ir pasirenkamus daugiklio arba daliklio vienetus.

  RISC procesoriaus architektūra
RISC procesoriaus architektūra

Pagrindinės RV12 RISC V savybės yra šios.

  • Tai standartinis pramonės instrukcijų rinkinys.
  • Parametras naudojant 32 arba 64 bitų duomenis.
  • Jis turi tikslius ir greitus pertraukimus.
  • Pasirinktinės instrukcijos leidžia pridėti patentuotų aparatinės įrangos greitintuvų.
  • Vieno ciklo vykdymas.
  • Šešių pakopų vamzdynas su optimizavimu sulankstytas.
  • Palaikymas su atminties apsauga.
  • Pasirenkamos arba parametrinės talpyklos.
  • Itin parametrizuotas.
  • Vartotojai gali pasirinkti 32/64 bitų duomenų ir šakų numatymo vienetą.
  • Vartotojai gali pasirinkti instrukcijų / duomenų talpyklas.
  • Vartotojo pasirenkama talpyklos struktūra, dydis ir architektūra.
  • Aparatūros daliklio arba daugiklio palaikymas pagal vartotojo nustatytą delsą.
  • Autobuso architektūra yra lanksti, kuri palaiko Wishbone ir AHB.
  • Šis dizainas optimizuoja galią ir dydį.
  • Dizainas yra visiškai parametrizuotas, o tai suteikia našumo ar galios kompromisus.
  • CLK konstrukcija, skirta sumažinti galią.
  • Programinės įrangos palaikymas pagal pramonės standartą.
  • Architektūrinis simuliatorius.
  • „Eclipse IDE“ naudojama „Linux“ / „Windows“.

RISC V vykdymo vamzdynas

Jį sudaro penki etapai, pvz., IF (instrukcijų gavimas), ID (instrukcijų dekodavimas), EX (vykdymas), MEM (prieiga prie atminties) ir WB (registro įrašymas atgal).

Instrukcija Fetch

Instruction Fetch arba IF stadijoje viena komanda nuskaitoma iš programos skaitiklio (PC) ir instrukcijų atminties, kuri atnaujinama į kitą komandą.

Instrukcija Išankstinis dekodavimas

Kai RVC palaikymas bus leidžiamas, instrukcijų išankstinio iššifravimo etapas iššifruos 16 bitų suspaustą komandą į savąją 32 bitų komandą.

Instrukcija Dekoduoti

Instrukcijų dekodavimo (ID) etape leidžiama naudoti registro failą ir nusprendžiama dėl apėjimo valdiklių.

Vykdyti

Vykdymo etape apskaičiuojamas ALU, DIV, MUL komandos rezultatas, leistina atmintis saugoti arba įkelti komandai, o šakos ir šuoliai įvertinami atsižvelgiant į laukiamus rezultatus.

Atmintis

Šiame atminties etape atmintis pasiekiama per dujotiekį. Šio etapo įtraukimas užtikrina aukštą dujotiekio našumą.

Atrašyti

Šiame etape Vykdymo etapo rezultatas įrašomas į registro bylą.

Šakų prognozuotojas

Šiame procesoriuje yra atšakos numatymo blokas arba BPU, kuris naudojamas praeities duomenims saugoti, kad RISC V procesorius galėtų nuspręsti, ar konkreti šaka yra paimta, ar ne. Šie prognozavimo duomenys tiesiog atnaujinami, kai šaka vykdoma.

Šis įrenginys apima skirtingus parametrus, kurie lemia jo elgesį. Pavyzdžiui, HAS_BPU naudojamas nustatyti, ar filialas numato, kad yra vienetas, BPU_GLOBAL_BITS nustatys, kiek praeities bitų turėtų būti panaudota, o BPU_LOCAL_BITS nustatys, kiek programos skaitiklio LSB turėtų būti naudojama. BPU_LOCAL_BITS ir BPU_GLOBAL_BITS derinys sukurs vektorių, kuris daugiausia naudojamas šakos numatymo lentelei spręsti.

Duomenų talpykla

Tai daugiausia naudojama siekiant pagreitinti prieigą prie duomenų atminties, buferizuojant naujai pasiekiamas atminties vietas. Tai gali apdoroti pusės žodžio, baitų ir žodžių prieigą, kai XLEN = 32, jei jos yra savo ribose. Jis taip pat gali apdoroti pusės žodžio, baitų, žodžių ir dviejų žodžių prieigas, kai XLEN = 64, jei jos yra savo ribose.

Viso talpyklos praleidimo metu visas blokas gali būti įrašytas atgal į atmintį, todėl, jei reikia, į talpyklą galima įkelti naują bloką. Duomenų talpykla išjungiama nustačius DCACHE_SIZE į nulį. Po to atminties vietos pasiekiamos tiesiogiai per Duomenų sąsaja .

Instrukcijų talpykla

Tai daugiausia naudojama norint paspartinti instrukcijų gavimą, buferizuojant naujai gautas instrukcijas. Ši talpykla naudojama norint gauti vieną siuntinį kiekvienam ciklui bet kurioje 16 bitų riboje, bet ne per bloko ribas. Per talpyklos praleidimą iš instrukcijų atminties galima įkelti visą bloką. Šios talpyklos konfigūracija gali būti atliekama atsižvelgiant į vartotojo poreikius. Talpyklos dydį, pakeitimo algoritmą ir bloko ilgį galima konfigūruoti.

Instrukcijų ciklas bus išjungtas nustačius ICACHE_SIZE į nulį. Po to siuntiniai paimami tiesiai iš atminties per Instrukcijų sąsaja.

Derinimo vienetas

Debug Unit leis derinimo aplinkai sustoti ir ištirti procesorių. Pagrindinės šios funkcijos yra šakų sekimas, vieno žingsnio sekimas iki 8 aparatinės įrangos lūžio taškų.

Registracijos failas

Tai sukurta su 32 registro vietomis nuo X0 iki X31, kur X9 registras visada yra nulis. Registro faile yra 1 rašymo prievadas ir 2 skaitymo prievadai.

Konfigūruojama sąsaja

Tai išorinė sąsaja, kurioje šis procesorius palaiko skirtingas išorines magistralės sąsajas.

Kaip veikia RISC V?

RISC-V yra instrukcijų rinkinio architektūra, pagrįsta RISC (sumažinto instrukcijų rinkinio kompiuterio) principais. Šis procesorius yra labai unikalus ir taip pat revoliucinis, nes tai nemokama, įprasta ir atvirojo kodo ISA, kurioje galima kurti aparatinę įrangą, perkelti programinę įrangą, o procesorius galima sukurti taip, kad tai palaikytų.

Skirtumas B/W RISC V ir MIPS

Skirtumas tarp RISC V ir MIPS yra toks.

RISC V

MIPS

Terminas RISC V reiškia sumažintų instrukcijų rinkinio kompiuterį, kur „V“ yra penktoji karta. Terminas „MIPS“ reiškia „milijoną instrukcijų per sekundę“.
RISC-V paprasčiausiai leidžia mažesnių įrenginių gamintojams kurti techninę įrangą nemokant. MIPS leidžia gamintojui išmatuoti procesoriaus greitį mokant, nes jis nėra nemokamas.
MIPS veiksmingai miręs. RISC-V nėra veiksmingai miręs.
Šis procesorius pateikia šakų instrukcijas, skirtas palyginti du registrus. MIPS priklauso nuo palyginimo instrukcijos, kuri nustato registro vietą 1 arba 0 pagal tai, ar kontrastas yra teisingas.
ISA kodavimo schema yra fiksuota ir kintama RISC V. ISA kodavimo schema yra fiksuota MIPS
Instrukcijų rinkinio dydis yra 16 bitų arba 32 bitų arba 64 bitų arba 128 bitų. Instrukcijų rinkinio dydis yra 32 bitai arba 64 bitai.
Jame yra 32 bendrosios paskirties ir slankiojo kablelio registrai Jame yra 31 bendrosios paskirties ir slankiojo kablelio registras.
Jis turi 26 vieno ir dvigubo tikslumo slankiojo kablelio operacijas. Jis turi 15 vieno ir dvigubo tikslumo slankiojo kablelio operacijų.

Skirtumas B/W RISC V vs ARM

Skirtumas tarp RISC V ir ARM yra toks.

RISC V

RANKA

RISC-V yra atvirojo kodo, todėl jam nereikia jokios licencijos. ARM yra uždaras šaltinis, todėl jam reikia licencijos.
Tai nauja procesoriaus platforma, todėl programinės įrangos ir programavimo aplinkų palaikymas yra labai mažas. ARM turi labai didelę internetinę bendruomenę, kuri palaiko bibliotekas ir struktūras, kad padėtų tiksliniams dizaineriams įvairiose platformose, tokiose kaip mikroprocesoriai, mikrovaldikliai ir serveriai.
RISC V pagrindu pagaminti lustai naudoja 1 vatą galios. ARM pagrįsti lustai naudoja mažiau nei 4 vatus.
Jis turi fiksuotą ir kintamą ISA kodavimo sistemą. Jis turi fiksuotą ISA kodavimo sistemą.
RISC V instrukcijų rinkinio dydis svyruoja nuo 16 bitų iki 128 bitų. Jo nurodymų dydis svyruoja nuo 16 bitų iki 64 bitų.
Jame yra 32 bendrosios paskirties ir slankiojo kablelio registrai. Jame yra 31 bendrosios paskirties ir slankiojo kablelio registras.
Jame yra 26 vieno tikslios slankiojo kablelio operacijos. Jame yra 33 vieno tikslios slankiojo kablelio operacijos.
Jis turi 26 dvigubo tikslumo slankiojo kablelio operacijas. Jis turi 29 dvigubo tikslumo slankiojo kablelio operacijas.

RISC V Verilog kodas

RISC instrukcijos atminties verilog kodas parodytas žemiau.

// Verilog kodas, skirtas RISC procesoriui
// Verilog kodas instrukcijų atminčiai

modulis Instruction_Memory(
input[15:0] kompiuteris,
išvesties[15:0] instrukcija
);

reg [`col – 1:0] atmintis [`row_i – 1:0];
laidas [3 : 0] rom_addr = pc[4 : 1];
pradinė
pradėti
$readmemb(./test/test.prog”, atmintis,0,14);
pabaiga
priskirti instrukcija = atmintis[rom_addr];

pabaigos modulis

Verilog kodas 16 bitų RISC V procesoriui:

modulis Risc_16_bit(
įvestis clk
);

laidinis šuolis,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
laidas[1:0] alu_op;
laidas [3:0] opkodas;

// Duomenų kelias

Datapath_Unit DU
(
.clk(clk),
.jump(jump),
.varlė(varlė),
.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)
);

// valdymo blokas
Control_Unit valdymas
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.jump(jump),
.bne(bne),
.varlė(varlė),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
pabaigos modulis

Instrukcijų rinkiniai

RISC V instrukcijų rinkiniai aptariami toliau.

Aritmetiniai veiksmai

RISC V aritmetinės operacijos pateikiamos žemiau.

Mnemoninis Tipas Instrukcija apibūdinimas
PRIDĖTI  rd, rs1, rs2

R

Papildyti rdß rs1 + rs2
SUB rd, rs1, rs2

R

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

Pridėkite nedelsiant rdß rs1 + imm12
SLT rd, rs1, rs2

R

Nustatyti mažiau nei rdß rs1 -< rs2
SLTI rd, rs1, imm12

Nustatykite mažiau nei nedelsiant rdß rs1 -< imm12
SLTU rd, rs1, rs2

R

Nustatyti mažiau nei nepasirašyta rdß rs1 -< rs2
SLTIU rd, rs1, imm12

Nustatyti mažiau nei iš karto nepasirašytas rdß rs1 -< imm12
LUI rd, imm20

IN

Nedelsiant pakrauti viršutinę dalį rdß imm20<<12
AUIP rd, imm20

IN

Iš karto pridėkite viršutinę dalį prie kompiuterio rdß PC+imm20<<12

Loginės operacijos

RISC V loginės operacijos pateikiamos žemiau.

Mnemoninis Tipas Instrukcija apibūdinimas
IR  rd, rs1, rs2

R

IR rdß rs1 ir rs2
ARBA rd, rs1, rs2

R

ARBA rdß rs1 | rs2
XOR rd, rs1, rs2

R

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

IR nedelsiant rdß rs1 ir imm2
ORI rd, rs1, imm12

ARBA Nedelsiant rdß rs1 | imm12
OXRI rd, rs1, imm12

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

R

Loginis poslinkis į kairę rdß rs1 <<  rs2
SRL rd, rs1, rs2

R

Loginis poslinkis dešinėn rdß rs1 >>  rs2
RAS rd, rs1, rs2

R

Perkelkite į dešinę aritmetiką rdß rs1 >>  rs2
SLLI rd, rs1, shamt

Loginis perėjimas į kairę nedelsiant rdß rs1 << shamt
SRLI rd, rs1, shamt

Nedelsiant perjungti į dešinę logiškai rdß rs1 >> shamt
SRAI rd, rs1, shamt

Nedelsiant perkelkite į dešinę aritmetiką rdß rs1 >> shamt

Pakrovimo/sandėliavimo operacijos

RISC V įkėlimo / saugojimo operacijos yra išvardytos toliau.

Mnemoninis Tipas Instrukcija apibūdinimas
LD  rd, imm12 (rs1)

Įkelti dvigubą žodį rdß mem [rs1 +imm12]
LW rd, imm12 (rs1)

Įkelti žodį rdß mem [rs1 +imm12]
LH rd, imm12 (rs1)

Pakrauti iki pusės rdß mem [rs1 +imm12]
LB rd, imm12 (rs1)

Įkelti baitą rdß mem [rs1 +imm12]
LWU rd, imm12 (rs1)

Įkelti žodį nepasirašytas rdß mem [rs1 +imm12]
LHU rd, imm12 (rs1)

Įkelti pusę žodžio nepasirašytą rdß mem [rs1 +imm12]
LBU rd, imm12 (rs1)

Įkėlimo baitas nepasirašytas rdß mem [rs1 +imm12]
SD  rs2, imm12 (rs1)

S

Išsaugokite dvigubą žodį rs2 į atmintį [rs1 +imm12]
SW rs2, imm12 (rs1)

S

Saugokite žodį rs2 (31:0) į atmintį [rs1 +imm12]
SH rs2, imm12 (rs1)

S

Laikyti pusiaukelėje rs2 (15:0) į atmintį [rs1 +imm12]
SB rs2, imm12 (rs1)

S

Parduotuvės baitas rs2 (15:0) į atmintį [rs1 +imm12]
SRAI rd, rs1, shamt

Nedelsiant perkelkite į dešinę aritmetiką rs2 (7:0) į atmintį [rs1 +imm12]

Atšakų operacijos

Toliau pateikiamos RISC V šakojimo operacijos.

Mnemoninis Tipas Instrukcija apibūdinimas
BEQ rs1, rs2, imm12

SB

Šaka lygi Jei rs1== rs2

PC ß PC+imm12

BNE rs1, rs2, imm12

SB

Šaka nelygi Jei rs1!= rs2

PC ß PC+imm12

BGE  rs1, rs2, imm12

SB

Šaka didesnė arba lygi Jei rs1>= rs2

PC ß PC+imm12

BGEU  rs1, rs2, imm12

SB

Šaka didesnė nei nepasirašyta arba lygi Jei rs1>= rs2

PC ß PC+imm12

BLT  rs1, rs2, imm12

SB

Filialas mažiau nei Jei rs1< rs2

PC ß PC+imm12

BLTU  rs1, rs2, imm12

SB

Filialas mažiau nei nepasirašytas Jei rs1< rs2

PC ß PC+imm12 <<1

JAL rd, imm20

UJ

Peršokti ir susieti rdßPC+4
PCß PC+imm20
JALR rd, imm12(rs1)

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

Privalumai

The RISC pranašumai V procesorius įtraukti toliau nurodytus dalykus.

  • Naudodami RISCV galime sutaupyti laiko kūrimui, programinės įrangos kūrimui, tikrinimui ir pan.
  • Šis procesorius turi daug privalumų, tokių kaip paprastumas, atvirumas, moduliškumas, švarus dizainas ir išplečiamumas.
  • Tai palaiko keli kalbų kompiliatoriai, tokie kaip GCC (GNU Compiler Collection), nemokamos programinės įrangos kompiliatorius ir per Linux OS .
  • Tuo įmonės gali laisvai naudotis, nes nėra jokių honorarų, jokių licencijavimo mokesčių ir jokių prijungtų eilučių.
  • RISC-V procesorius neapima jokių naujų ar novatoriškų funkcijų, nes jis tiesiog atitinka nusistovėjusius RISC principus.
  • Panašiai kaip ir keletas kitų ISA, ši procesoriaus specifikacija tiesiog apibrėžia įvairius instrukcijų rinkinių lygius. Taigi jame yra 32 ir 64 bitų variantai, taip pat plėtiniai, palaikantys slankiojo kablelio instrukcijas.
  • Tai nemokami, paprasti, moduliniai, stabilūs ir kt.

Trūkumai

The RISC V procesoriaus trūkumai įtraukti toliau nurodytus dalykus.

  • Kompiliatoriai ir programuotojai dažnai naudoja sudėtingas instrukcijas.
  • RISC o/p gali keistis atsižvelgiant į kodą, kai vėlesnės instrukcijos cikle priklauso nuo ankstesnės vykdymo instrukcijos.
  • Šie procesoriai turi greitai išsaugoti įvairias instrukcijas, todėl reikia didelės talpyklos atminties, kad būtų galima laiku reaguoti į instrukcijas.
  • Visos RISC funkcijos, galimybės ir pranašumai daugiausia priklauso nuo architektūros.

Programos

The RISC V programos procesorius įtraukti toliau nurodytus dalykus.

  • RISC-V naudojamas įterptosiose sistemose, dirbtiniame intelekte ir mašininiame mokyme.
  • Šie procesoriai naudojami didelio našumo įterptųjų sistemų programose.
  • Šis procesorius tinkamas naudoti kai kuriose konkrečiose srityse, pvz., krašto skaičiavimo, AI ir saugojimo programose.
  • RISC-V yra svarbus, nes leidžia mažesniems įrenginių gamintojams kurti aparatinę įrangą nemokant.
  • Šis procesorius tiesiog leidžia tyrėjams ir kūrėjams kurti ir atlikti tyrimus naudojant laisvai prieinamą ISA arba instrukcijų rinkinio architektūrą.
  • RISC V taikymo sritis yra nuo mažų įterptųjų mikrovaldiklių iki stalinių kompiuterių ir superkompiuterių, įskaitant vektorinius procesorius.

Taigi, tai yra RISC V procesoriaus apžvalga – architektūra, darbas su programomis. Štai jums klausimas, kas yra CISC procesorius?