RISC V on Kalifornian Berkeleyn yliopiston kehittämä ohjesarjaarkkitehtuuri. RISC-konseptin motiivina oli totuus, että useimmat tietokoneohjelmat eivät käyttäneet suurinta osaa prosessorin käskyistä. Joten tarpeetonta dekoodauslogiikkaa hyödynnettiin suunnittelussa prosessorit kuluttaa enemmän virtaa ja pinta-alaa. Voit lyhentää ohjesarjaa ja investoida enemmän rekisteriresursseihin RISC V prosessori toteutettiin.
Monet teknologiajättiläiset ja start-upit huomasivat tämän tekniikan, koska se on täysin avoimen lähdekoodin ja ilmainen. Useimmat prosessorit ovat saatavilla lisenssisopimuksella, mutta tämäntyyppisillä prosessoreilla; kuka tahansa voi tehdä uuden prosessorimallinsa. Joten tämä artikkeli käsittelee yleiskatsauksen RISC V -prosessorista – toiminnasta ja sen sovelluksista.
Mikä on RISC V -prosessori?
RISC V -prosessorissa termi RISC tarkoittaa 'pienennetyn käskyjoukon tietokonetta', joka suorittaa vain vähän tietokonekäskyjä, kun taas 'V' tarkoittaa viidettä sukupolvea. Se on avoimen lähdekoodin laitteisto-ISA (käskysarjaarkkitehtuuri), joka perustuu vakiintuneeseen periaatteeseen RISKI .
Muihin ISA-malleihin verrattuna tämä ISA on saatavana avoimen lähdekoodin lisenssillä. Joten monet valmistusyritykset ovat ilmoittaneet ja myös toimittaneet RISC-V-laitteistoa avoimen lähdekoodin käyttöjärjestelmillä.
Tämä on uusi arkkitehtuuri, ja se on saatavilla avoimina, ei-rajoittavina ja ilmaisilla lisensseillä. Tällä prosessorilla on laaja tuki siru- ja laitevalmistajilta. Joten se on pääasiassa suunniteltu vapaasti laajennettavaksi ja muokattavissa käytettäväksi monissa sovelluksissa.
RISC V -historia
RISC:n keksi professori David Patterson noin 1980 Kalifornian yliopistossa Berkeleyssä. Professori David ja professori John Hennessy esittivät ponnistelunsa kahdessa kirjassa, jotka olivat 'Computer Organisation and Design' ja 'Computer Architecture at Stanford University. Joten he saivat ACM A.M. Turing-palkinto vuonna 2017.
Vuodesta 1980 vuoteen 2010 aloitettiin RISC:n viidennen sukupolven kehitystutkimus, joka lopulta tunnistettiin RISC-V:ksi, joka lausutaan riskinä viisi.
RISC V -arkkitehtuuri ja työskentely
RV12 RISC V -arkkitehtuuri on esitetty alla. RV12 on hyvin konfiguroitavissa yhden ytimen RV32I- ja RV64I-yhteensopivalla RISC-suorittimella, jota käytetään sulautetuissa kentissä. RV12 kuuluu myös 32- tai 64-bittiseen CPU-perheeseen riippuen teollisuusstandardin RISC-V-käskysarjasta.
RV12 yksinkertaisesti suorittaa Harvardin arkkitehtuurin, jotta se pääsee samanaikaisesti käsiksi ohjeisiin ja tietomuistiin. Se sisältää myös 6-vaiheisen liukuhihnan, joka auttaa optimoimaan päällekkäisyydet suorituksen välillä sekä muistin käytön tehokkuuden parantamiseksi. Tämä arkkitehtuuri sisältää pääasiassa haaran ennusteen, tietovälimuistin, virheenkorjausyksikön, käskyvälimuistin ja valinnaiset kerroin- tai jakajayksiköt.
RV12 RISC V:n pääominaisuudet ovat seuraavat.
- Se on alan standardiohjesarja.
- Parametrisoitu 32- tai 64-bittisellä tiedolla.
- Siinä on tarkat ja nopeat keskeytykset.
- Mukautetut ohjeet mahdollistavat patentoitujen laitteistokiihdyttimien lisäämisen.
- Yhden jakson suorittaminen.
- Kuusivaiheinen putkilinja, jossa optimointi taitettuna.
- Tuki muistisuojauksella.
- Valinnaiset tai parametroidut välimuistit.
- Erittäin parametroitu.
- Käyttäjät voivat valita 32/64-bittisen datan ja haaran ennustusyksikön.
- Käyttäjät voivat valita ohje-/tietovälimuistit.
- Käyttäjän valittavissa oleva välimuistin rakenne, koko ja arkkitehtuuri.
- Hardware Divider tai Multiplier Tuki käyttäjän määrittämän latenssin mukaan.
- Väyläarkkitehtuuri on joustava, mikä tukee Wishbonea ja AHB:tä.
- Tämä muotoilu optimoi tehon ja koon.
- Suunnittelu on täysin parametroitu, mikä tarjoaa suorituskyvyn tai tehon kompromisseja.
- Aidattu CLK-rakenne tehon vähentämiseksi.
- Ohjelmistotuki teollisuusstandardin mukaan.
- Arkkitehtoninen simulaattori.
- Eclipse IDE:tä käytetään Linuxissa/Windowsissa.
RISC V Execution Pipeline
Se sisältää viisi vaihetta, kuten IF (käskyn nouto), ID (käskyn purku), EX (suoritus), MEM (muistin käyttö) ja WB (rekisteröinnin takaisinkirjoitus).
Ohje Hae
Instruction Fetch- tai IF-vaiheessa ohjelmalaskurista (PC) ja käskymuistista luetaan yksi käsky, joka päivitetään seuraavaan käskyyn.
Ohje Pre-Decode
Kun RVC-tuki on sallittu, käskyn esipurkuvaihe purkaa 16-bittisen pakatun käskyn alkuperäiseksi 32-bittiseksi käskyksi.
Ohje Decode
Instruction Decode (ID) -vaiheessa rekisteritiedosto sallitaan ja ohitusohjaimet päätetään.
Suorittaa
Execute-vaiheessa tulos lasketaan ALU-, DIV-, MUL-käskylle, Store- tai Load-käskylle sallittu muisti, ja haarat ja hyppyt mitataan niiden odotettujen tulosten perusteella.
Muisti
Tässä muistivaiheessa muistiin päästään liukuhihnan kautta. Tämän vaiheen sisällyttäminen varmistaa putkilinjan korkean suorituskyvyn.
Kirjoita takaisin
Tässä vaiheessa suoritusvaiheen tulos kirjoitetaan rekisteritiedostoon.
Haaraennustaja
Tämä prosessori sisältää haaran ennustajayksikön tai BPU:n, jota käytetään tallentamaan menneitä tietoja ohjaamaan RISC V -prosessoria päättäessä, otetaanko tietty haara vai ei. Tämä ennustajadata yksinkertaisesti päivitetään, kun haara suoritetaan.
Tämä yksikkö sisältää erilaisia parametreja, jotka määrittävät sen käyttäytymisen. Esimerkiksi HAS_BPU:ta käytetään määrittämään, ennustaako haara yksikön olevan läsnä, BPU_GLOBAL_BITS määrittää, kuinka monta aikaisempaa bittiä tulee käyttää ja BPU_LOCAL_BITS määrittää, kuinka monta ohjelmalaskurin LSB:tä tulee käyttää. Yhdistelmä BPU_LOCAL_BITS & BPU_GLOBAL_BITS luo vektorin, jota käytetään pääasiassa Haaraennuste-taulukon käsittelemiseen.
Tietojen välimuisti
Tätä käytetään pääasiassa nopeuttamaan datamuistin käyttöä puskuroimalla uudet muistipaikat. Tämä pystyy käsittelemään puolisanan, tavun ja sanan käyttöjä, kun XLEN = 32, jos ne ovat omilla rajoillaan. Se pystyy myös käsittelemään puolisanan, tavun, sanan ja kaksoissanan käyttöjä, kun XLEN=64, jos ne ovat omilla rajoillaan.
Välimuistin puuttuessa kokonainen lohko voidaan kirjoittaa takaisin muistiin, joten tarvittaessa uusi lohko voidaan ladata välimuistiin. Tietovälimuisti poistetaan käytöstä asettamalla DCACHE_SIZE nollaan. Tämän jälkeen muistipaikkoihin päästään suoraan Tietojen käyttöliittymä .
Ohjevälimuisti
Tätä käytetään pääasiassa nopeuttamaan käskyjen hakemista puskuroimalla juuri haetut ohjeet. Tätä välimuistia käytetään hakemaan yksi paketti jokaista jaksoa kohden millä tahansa 16-bittisellä rajalla, mutta ei lohkorajan yli. Käskymuistista voidaan ladata kokonainen lohko välimuistin puuttuessa. Tämän välimuistin konfigurointi voidaan tehdä käyttäjän tarpeiden mukaan. Välimuistin koko, korvausalgoritmi ja lohkon pituus ovat määritettävissä.
Ohjejakso poistetaan käytöstä asettamalla ICACHE_SIZE nollaan. Tämän jälkeen paketit haetaan suoraan muistista palvelun kautta Käyttöliittymä.
Virheenkorjausyksikkö
Debug-yksikkö sallii Debug-ympäristön pysähtyä ja tutkia suoritinta. Tämän tärkeimmät ominaisuudet ovat haaran jäljitys, yksivaiheinen jäljitys 8 laitteiston katkeamispisteeseen asti.
Rekisteröi tiedosto
Tämä on suunniteltu 32 rekisterisijainnista X0 - X31, joissa X9 Register on aina nolla. Rekisteritiedosto sisältää 1 kirjoitusportin ja 2 lukuporttia.
Konfiguroitava käyttöliittymä
Tämä on ulkoinen liitäntä, jossa tämä prosessori tukee erilaisia ulkoisia väyläliitäntöjä.
Kuinka RISC V toimii?
RISC-V on käskysarjaarkkitehtuuri, joka perustuu RISC:n (reduced instruction set computer) periaatteisiin. Tämä prosessori on erittäin ainutlaatuinen ja myös vallankumouksellinen, koska se on ilmainen, yleinen ja avoimen lähdekoodin ISA, jossa voidaan kehittää laitteistoja, ohjelmistoja voidaan siirtää ja prosessorit voidaan suunnitella tukemaan sitä.
Ero B/W RISC V vs MIPS
Ero RISC V:n ja MIPS:n välillä sisältää seuraavan.
RISC V |
MIPS |
Termi RISC V tarkoittaa Reduced Instruction Set Computeria, jossa 'V' on viides sukupolvi. | Termi 'MIPS' tarkoittaa 'miljoonaa ohjetta sekunnissa'. |
RISC-V sallii pienempien laitteiden valmistajien suunnitella laitteistoja maksamatta. | MIPS:n avulla valmistaja voi mitata prosessorin nopeutta maksamalla, koska se ei ole ilmaista. |
MIPS on tehokkaasti kuollut. | RISC-V ei ole tehokkaasti kuollut. |
Tämä prosessori tarjoaa haaraohjeet kahden rekisterin vertailuun. | MIPS riippuu vertailukäskystä, joka paikantaa rekisterin arvoon 1 tai 0 sen mukaan, onko kontrasti tosi. |
ISA-koodaus on kiinteä ja muuttuva RISC V:ssä. | ISA-koodausjärjestelmä on kiinteä MIPS:ssä |
Käskyjoukon koko on 16-bittinen tai 32-bittinen tai 64-bittinen tai 128-bittinen. | Käskyjoukon koko on 32-bittinen tai 64-bittinen. |
Siinä on 32 yleiskäyttöistä ja liukulukurekisteriä | Siinä on 31 yleiskäyttöistä ja liukulukurekisteriä. |
Siinä on 26 yhden ja kaksinkertaisen tarkkuuden liukulukuoperaatioita. | Siinä on 15 yhden ja kaksinkertaisen tarkkuuden liukulukuoperaatioita. |
Ero B/W RISC V vs ARM
Ero RISC V:n ja ARM:n välillä sisältää seuraavat.
RISC V |
ARM |
RISC-V on avoimen lähdekoodin, joten se ei vaadi lisenssiä. | ARM on suljettu lähde, joten se tarvitsee lisenssin. |
Se on uusi prosessorialusta, joten ohjelmisto- ja ohjelmointiympäristöille on hyvin vähän tukea. | ARM:lla on erittäin laaja online-yhteisö, joka tukee kirjastoja ja rakenteita auttaakseen kohdesuunnittelijoita erilaisissa alustoissa, kuten mikroprosessoreissa, mikro-ohjaimissa ja myös palvelimissa. |
RISC V -pohjaiset sirut käyttävät 1 watin tehoa. | ARM-pohjaiset sirut käyttävät alle 4 wattia tehoa. |
Siinä on kiinteä ja muuttuva ISA-koodausjärjestelmä. | Siinä on kiinteä ISA-koodausjärjestelmä. |
RISC V -käskyjoukon koko vaihtelee 16-bittistä 128-bittiseen. | Sen käskykoko vaihtelee 16-bittistä 64-bittiseen. |
Se sisältää 32 yleiskäyttöistä ja liukulukurekisteriä. | Se sisältää 31 yleiskäyttöistä ja liukulukurekisteriä. |
Siinä on 26 yhden tarkkuuden liukulukuoperaatiota. | Siinä on 33 yhden tarkkuuden liukulukuoperaatiota. |
Siinä on 26 tuplatarkkuutta liukulukuoperaatioita. | Siinä on 29 tuplatarkkuutta liukulukuoperaatioita. |
RISC V Verilog Code
RISC:n käskymuistin verilog-koodi näkyy alla.
// Verilog-koodi RISC-suorittimelle
// Verilog-koodi käskymuistille
module Instruction_Memory(
input[15:0] PC,
output[15:0]-käsky
);
reg [`col – 1:0] muisti [`rivi_i – 1:0];
lanka [3 : 0] rom_addr = pc[4 : 1];
alkukirjain
alkaa
$readmemb(“./test/test.prog”, muisti,0,14);
loppu
anna käsky = muisti[rom_osoite];
loppumoduuli
Verilog-koodi 16-bittiselle RISC V -prosessorille:
moduuli Risc_16_bit(
syöttö clk
);
lankahyppy,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
lanka[1:0] alu_op;
lanka [3:0] opcode;
// Tieto polku
Datapath_Unit DU
(
.clk(clk),
.jump(hyppää),
.sammakko(sammakko),
.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)
);
// ohjausyksikkö
Ohjausyksikön ohjaus
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.jump(hyppää),
.bne(bne),
.sammakko(sammakko),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
loppumoduuli
Ohjesarjat
RISC V -käskysarjoja käsitellään alla.
Aritmeettiset operaatiot
RISC V -aritmeettiset operaatiot on lueteltu alla.
Muistomerkki | Tyyppi | Ohje | Kuvaus |
LISÄÄ rd, rs1, rs2 |
R |
Lisätä | rdß rs1 + rs2 |
SUB rd, rs1, rs2 |
R |
Vähentää | rdß rs1 – rs2 |
ADDI rd, rs1, imm12 |
minä |
Lisää heti | rdß rs1 + imm12 |
SLT rd, rs1, rs2 |
R |
Aseta vähemmän kuin | rdß rs1 -< rs2 |
SLTI rd, rs1, imm12 |
minä |
Aseta vähemmän kuin välitön | rdß rs1 -< imm12 |
SLTU rd, rs1, rs2 |
R |
Aseta vähemmän kuin allekirjoittamaton | rdß rs1 -< rs2 |
SLTIU rd, rs1, imm12 |
minä |
Aseta vähemmän kuin välittömästi allekirjoittamaton | rdß rs1 -< imm12 |
LUI rd, imm20 |
SISÄÄN |
Lataa ylempi välittömästi | rdß imm20<<12 |
AUIP rd,imm20 |
SISÄÄN |
Lisää ylempi välittömästi PC:lle | rdß PC+imm20<<12 |
Loogiset toiminnot
RISC V:n loogiset toiminnot on lueteltu alla.
Muistomerkki | Tyyppi | Ohje | Kuvaus |
JA rd, rs1, rs2 |
R |
JA | rdß rs1 ja rs2 |
TAI rd, rs1, rs2 |
R |
TAI | rdß rs1 | rs2 |
XOR rd, rs1, rs2 |
R |
VAPAA | rdß rs1 ^ rs2 |
ANDI rd, rs1, imm12 |
minä |
JA välitön | rdß rs1 & imm2 |
ORI rd, rs1, imm12 |
minä |
TAI Välittömästi | rdß rs1 | imm12 |
OXRI rd, rs1, imm12 |
minä |
XOR välittömästi | rdß rs1 ^ rs2 |
SLL rd, rs1, rs2 |
R |
Vaihto vasemmalle looginen | rdß rs1 << rs2 |
SRL rd, rs1, rs2 |
R |
Vaihto oikealle loogisesti | rdß rs1 >> rs2 |
RAS rd, rs1, rs2 |
R |
Siirrä oikealle aritmetiikkaa | rdß rs1 >> rs2 |
SLLI rd, rs1, shamt |
minä |
Vaihto vasemmalle looginen välittömästi | rdß rs1 << shamt |
SRLI rd, rs1, shamt |
minä |
Vaihto oikealle loogisesti välittömästi | rdß rs1 >> shamt |
SRAI rd, rs1, shamt |
minä |
Vaihda oikea aritmetiikka välittömästi | rdß rs1 >> shamt |
Load/Store-toiminnot
RISC V:n lataus/tallennustoiminnot on lueteltu alla.
Muistomerkki | Tyyppi | Ohje | Kuvaus |
LD rd, imm12 (rs1) |
minä |
Lataa kaksoissana | rdß mem [rs1 +imm12] |
LW rd, imm12 (rs1) |
minä |
Lataa sana | rdß mem [rs1 +imm12] |
LH rd, imm12 (rs1) |
minä |
Lataa puoliväliin | rdß mem [rs1 +imm12] |
LB rd, imm12 (rs1) |
minä |
Lataa tavu | rdß mem [rs1 +imm12] |
LWU rd, imm12 (rs1) |
minä |
Lataa sana allekirjoittamaton | rdß mem [rs1 +imm12] |
LHU rd, imm12 (rs1) |
minä |
Lataa puoli sanaa allekirjoittamaton | rdß mem [rs1 +imm12] |
LBU rd, imm12 (rs1) |
minä |
Lataustavu allekirjoittamaton | rdß mem [rs1 +imm12] |
SD rs2, imm12 (rs1) |
S |
Tallenna kaksoissana | rs2 muistiin [rs1 +imm12] |
SW rs2, imm12 (rs1) |
S |
Tallenna sana | rs2 (31:0) muistiin [rs1 +imm12] |
SH rs2, imm12 (rs1) |
S |
Säilytä puolivälissä | rs2 (15:0) muistiin [rs1 +imm12] |
SB rs2, imm12 (rs1) |
S |
Tallenna tavu | rs2 (15:0) muistiin [rs1 +imm12] |
SRAI rd, rs1, shamt |
minä |
Vaihda oikea aritmetiikka välittömästi | rs2 (7:0) muistiin [rs1 +imm12] |
Haaroittautumistoiminnot
RISC V -haaroitustoiminnot on lueteltu alla.
Muistomerkki | Tyyppi | Ohje | Kuvaus |
BEQ rs1, rs2, imm12 |
SB |
Haara yhtä suuri | Jos rs1== rs2 PC ß PC+imm12 |
BNE rs1, rs2, imm12 |
SB |
Haara ei ole sama | Jos rs1! = rs2 PC ß PC+imm12 |
BGE rs1, rs2, imm12 |
SB |
Haara suurempi tai yhtä suuri | Jos rs1>= rs2 PC ß PC+imm12 |
BGEU rs1, rs2, imm12 |
SB |
Haara suurempi tai yhtä suuri kuin etumerkitön | Jos rs1>= rs2 PC ß PC+imm12 |
BLT rs1, rs2, imm12 |
SB |
Haara alle | Jos rs1 < rs2 PC ß PC+imm12 |
BLTU rs1, rs2, imm12 |
SB |
Haara pienempi kuin allekirjoittamaton | Jos rs1 < rs2 PC ß PC+imm12 <<1 |
JAL rd, imm20 |
UJ |
Hyppää ja linkitä | rdßPC+4 PCß PC+imm20 |
JALR rd, imm12(rs1) |
minä |
Hyppää ja linkitä rekisteröinti | rdßPC+4 PCß rs1+imm12 |
Edut
The RISC:n edut V prosessori Sisällytä seuraavat.
- Käyttämällä RISCV:tä voimme säästää kehitysaikaa, ohjelmistokehitystä, todentamista jne.
- Tässä prosessorissa on monia etuja, kuten yksinkertaisuus, avoimuus, modulaarisuus, puhtaan pöydän muotoilu ja laajennettavuus.
- Tätä tukevat useat kielikääntäjät, kuten GCC (GNU Compiler Collection), ilmainen ohjelmistokääntäjä ja Linux OS .
- Yritykset voivat käyttää tätä vapaasti, koska siinä ei ole rojalteja, lisenssimaksuja tai yhteyksiä.
- RISC-V-prosessori ei sisällä uusia tai innovatiivisia ominaisuuksia, koska se yksinkertaisesti noudattaa RISC:n vakiintuneita periaatteita.
- Kuten useat muut ISA:t, tämä prosessorimäärittely yksinkertaisesti määrittelee eri käskyjoukon tasot. Joten tämä sisältää 32- ja 64-bittiset variantit sekä laajennukset tukemaan liukulukukäskyjä.
- Nämä ovat ilmaisia, yksinkertaisia, modulaarisia, vakaita jne.
Haitat
The RISC V -prosessorin haitat Sisällytä seuraavat.
- Kääntäjät ja ohjelmoijat käyttävät usein monimutkaisia ohjeita.
- RISC:n o/p voi muuttua koodin perusteella, kun silmukan seuraavat käskyt riippuvat aikaisemmasta suorituskäskystä.
- Näiden prosessorien on tallennettava useita käskyjä nopeasti, mikä vaatii suuren välimuistijoukon vastatakseen käskyyn ajoissa.
- RISC:n täydelliset ominaisuudet, ominaisuudet ja edut riippuvat pääasiassa arkkitehtuurista.
Sovellukset
The RISC V:n sovellukset prosessori Sisällytä seuraavat.
- RISC-V:tä käytetään sulautetuissa järjestelmissä, tekoälyssä ja koneoppimisessa.
- Näitä prosessoreita käytetään korkean suorituskyvyn sulautettujen järjestelmien sovelluksissa.
- Tämä prosessori soveltuu käytettäväksi tietyillä aloilla, kuten reunalaskenta, tekoäly ja tallennussovellukset.
- RISC-V on tärkeä, koska sen avulla pienemmät laitevalmistajat voivat suunnitella laitteistoja maksamatta.
- Tämän prosessorin avulla tutkijat ja kehittäjät voivat yksinkertaisesti suunnitella ja tutkia vapaasti saatavilla olevaa ISA- tai käskysarjaarkkitehtuuria.
- RISC V:n sovellukset vaihtelevat pienistä sulautetuista mikro-ohjaimista pöytätietokoneisiin ja supertietokoneisiin, mukaan lukien vektorisuorittimet.
Näin ollen tämä on yleiskatsaus RISC V -prosessorista – arkkitehtuuri, sovellusten kanssa työskentely. Tässä on kysymys sinulle, mikä on CISC-prosessori?