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.
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 |
aš |
Pridėkite nedelsiant | rdß rs1 + imm12 |
SLT rd, rs1, rs2 |
R |
Nustatyti mažiau nei | rdß rs1 -< rs2 |
SLTI rd, rs1, imm12 |
aš |
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 |
aš |
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 |
aš |
IR nedelsiant | rdß rs1 ir imm2 |
ORI rd, rs1, imm12 |
aš |
ARBA Nedelsiant | rdß rs1 | imm12 |
OXRI rd, rs1, imm12 |
aš |
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 |
aš |
Loginis perėjimas į kairę nedelsiant | rdß rs1 << shamt |
SRLI rd, rs1, shamt |
aš |
Nedelsiant perjungti į dešinę logiškai | rdß rs1 >> shamt |
SRAI rd, rs1, shamt |
aš |
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) |
aš |
Įkelti dvigubą žodį | rdß mem [rs1 +imm12] |
LW rd, imm12 (rs1) |
aš |
Įkelti žodį | rdß mem [rs1 +imm12] |
LH rd, imm12 (rs1) |
aš |
Pakrauti iki pusės | rdß mem [rs1 +imm12] |
LB rd, imm12 (rs1) |
aš |
Įkelti baitą | rdß mem [rs1 +imm12] |
LWU rd, imm12 (rs1) |
aš |
Įkelti žodį nepasirašytas | rdß mem [rs1 +imm12] |
LHU rd, imm12 (rs1) |
aš |
Įkelti pusę žodžio nepasirašytą | rdß mem [rs1 +imm12] |
LBU rd, imm12 (rs1) |
aš |
Į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 |
aš |
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) |
aš |
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?