Mikä on RISC V -prosessori: arkkitehtuuri, työskentely ja sen sovellukset

Kokeile Instrumenttia Ongelmien Poistamiseksi





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.

  RISC-prosessoriarkkitehtuuri
RISC-prosessoriarkkitehtuuri

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?