Mi az a RISC V processzor: architektúra, működés és alkalmazásai

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





A RISC V egy utasításkészlet architektúra, amelyet a Kaliforniai Egyetem, Berkeley fejlesztett ki. A RISC koncepcióját az az igazság indokolta, hogy a legtöbb processzor utasítást a legtöbb számítógépes program nem használta. Tehát szükségtelen dekódolási logikát használtak a tervezésben processzorok , több energiát és területet fogyaszt. Az utasításkészlet lerövidítéséhez és a regiszter erőforrásokba való több befektetéshez a RISC V processzor megvalósult.


Ezt a technológiát sok technológiai óriás és induló vállalkozás vette észre, mivel teljesen nyílt forráskódú és ingyenes. A legtöbb processzortípus licencszerződéssel elérhető, azonban ezzel a processzortípussal; bárki elkészítheti új processzorterveit. Tehát ez a cikk a RISC V processzor működésének és alkalmazásainak áttekintését tárgyalja.



Mi az a RISC V processzor?

A RISC V processzorban a RISC kifejezés „csökkentett utasításkészletű számítógépet” jelent, amely kevés számítógépes utasítást hajt végre, míg a „V” az 5. generációt jelenti. Ez egy nyílt forráskódú hardveres ISA (utasításkészlet-architektúra), amely a megállapított elven alapul KOCKÁZAT .

Más ISA-tervekhez képest ez az ISA nyílt forráskódú licenccel érhető el. Így számos gyártó cég bejelentette és biztosította a RISC-V hardvert nyílt forráskódú operációs rendszerekkel.



Ez egy új architektúra, és nyílt, nem korlátozó és ingyenes licencekben érhető el. Ez a processzor széles körben támogatja a chip- és eszközgyártó iparágakat. Tehát elsősorban arra tervezték, hogy szabadon bővíthető és testreszabható legyen számos alkalmazásban.

RISC V története

A RISC-t Prof. David Patterson találta fel 1980 körül a Kaliforniai Egyetemen, Berkeleyben. Prof. David és Prof. John Hennessy két könyvben mutatta be erőfeszítéseit, nevezetesen a „Számítógépes szervezés és tervezés” és a „Számítógépes architektúra a Stanford Egyetemen” című könyvben. Tehát megkapták az ACM A.M. Turing-díj 2017-ben.

1980-tól 2010-ig megkezdődött a RISC ötödik generációs fejlesztési kutatása, amelyet végül RISC-V néven azonosítottak, amelyet az ötödik kockázatnak mondanak.

RISC V Architecture & Working

Az RV12 RISC V architektúra alább látható. Az RV12 nagymértékben konfigurálható egymagos RV32I és RV64I kompatibilis RISC CPU-val, amelyet beágyazott mezőkben használnak. Az RV12 szintén 32 vagy 64 bites CPU családból származik, az ipari szabvány RISC-V utasításkészletétől függően.

Az RV12 egyszerűen végrehajt egy Harvard architektúrát az utasításokhoz és az adatmemóriához való egyidejű hozzáférés érdekében. Tartalmaz egy 6 szakaszból álló folyamatot is, amely segít optimalizálni a végrehajtás közötti átfedéseket, valamint a memória-hozzáféréseket a hatékonyság növelése érdekében. Ez az architektúra főként az elágazás előrejelzését, az adatgyorsítótárat, a hibakeresési egységet, az utasítás-gyorsítótárat és az opcionális szorzó- vagy osztóegységeket tartalmazza.

  RISC processzor architektúra
RISC processzor architektúra

Az RV12 RISC V főbb jellemzői a következők.

  • Ez egy ipari szabványos utasításkészlet.
  • 32 vagy 64 bites adatokkal paraméterezve.
  • Pontos és gyors megszakításokkal rendelkezik.
  • Az egyéni utasítások lehetővé teszik saját hardveres gyorsítók hozzáadását.
  • Egy ciklus végrehajtása.
  • Hatlépcsős csővezeték optimalizálással hajtva.
  • Támogatás memóriavédelemmel.
  • Opcionális vagy paraméterezett gyorsítótárak.
  • Rendkívül paraméterezett.
  • A felhasználók választhatnak 32/64 bites adat- és ág-előrejelző egységet.
  • A felhasználók kiválaszthatják az utasítás-/adatgyorsítótárakat.
  • A felhasználó által választható gyorsítótár szerkezete, mérete és architektúrája.
  • Hardveres osztó vagy szorzó támogatás a felhasználó által meghatározott késleltetés alapján.
  • A busz architektúrája rugalmas, amely támogatja a Wishbone & AHB-t.
  • Ez a kialakítás optimalizálja a teljesítményt és a méretet.
  • A tervezés teljesen paraméterezett, ami teljesítmény- vagy teljesítmény kompromisszumot biztosít.
  • Kapuzott CLK kialakítás a teljesítmény csökkentése érdekében.
  • Szoftvertámogatás iparági szabvány szerint.
  • Építészeti szimulátor.
  • Az Eclipse IDE Linux/Windows rendszerhez használatos.

A RISC V végrehajtási csővezeték

Öt szakaszból áll, mint például az IF (utasítás lekérése), ID (utasítás dekódolás), EX (végrehajtás), MEM (memória hozzáférés) és WB (regiszter visszaírása).

Utasítás Fetch

Az Instruction Fetch vagy IF szakaszban egyetlen utasítás kerül kiolvasásra a programszámlálóból (PC) és az utasításmemóriából, amely a következő utasításra frissül.

Előzetes dekódolási utasítás

Amint az RVC támogatás engedélyezett, az Instruction Pre-Decode szakasz egy 16 bites tömörített utasítást natív 32 bites utasítássá dekódol.

Utasítás Dekódolás

Az utasítás-dekódolás (ID) szakaszban a regisztrációs fájl engedélyezett, és a bypass vezérlők meg vannak határozva.

Végrehajtás

Az Execute szakaszban a rendszer kiszámítja az eredményt egy ALU, DIV, MUL utasításra, a Store vagy Load utasítások számára engedélyezett memóriát, és az elágazásokat és ugrásokat a várt eredményekhez viszonyítja a rendszer.

memória

Ebben a memória szakaszban a memória a csővezetéken keresztül érhető el. Ennek a fázisnak a bevonása biztosítja a csővezeték nagy teljesítményét.

Írj vissza

Ebben a szakaszban a végrehajtási szakasz eredménye a regisztrációs fájlba kerül.

Branch Prediktor

Ez a processzor tartalmaz egy elágazás-előrejelző egységet vagy BPU-t, amely múltbeli adatok tárolására szolgál, és irányítja a RISC V processzort annak eldöntésében, hogy egy adott ágat felvesznek-e vagy sem. Ezek az előrejelző adatok egyszerűen frissülnek, amint az ág végrehajtódik.

Ez az egység különböző paramétereket tartalmaz, amelyek meghatározzák a viselkedését. Például a HAS_BPU annak meghatározására szolgál, hogy egy ág előrejelzi-e az egység jelenlétét, a BPU_GLOBAL_BITS határozza meg, hogy hány múltbeli bitet kell használni, és a BPU_LOCAL_BITS határozza meg, hogy a programszámláló LSB-jéből hányat kell használni. A BPU_LOCAL_BITS és BPU_GLOBAL_BITS kombinációja olyan vektort hoz létre, amelyet főként a Branch-Prediction-Table kezelésére használnak.

Adatgyorsítótár

Ezt elsősorban az adatmemória elérésének felgyorsítására használják az újonnan elért memóriahelyek pufferelésével. Ez képes kezelni a félszavas, bájtos és szóbeli hozzáféréseket, ha XLEN = 32, ha a saját határaikon vannak. Képes kezelni a félszavas, bájtos, szó- és kétszavas hozzáféréseket is, ha XLEN=64, ha a saját határaikon vannak.

A cache miss során egy egész blokk visszaírható a memóriába, így szükség esetén új blokkot lehet betölteni a gyorsítótárba. Az adatgyorsítótár letiltása a DCACHE_SIZE nullára állításával történik. Ezt követően a memóriahelyek közvetlenül a következőn keresztül érhetők el Adatfelület .

Utasítás gyorsítótár

Ez főként az utasítások lekérésének felgyorsítására szolgál az újonnan letöltött utasítások pufferelésével. Ez a gyorsítótár arra szolgál, hogy lekérjen egy-egy csomagot minden ciklushoz bármely 16 bites határon, de nem blokkhatáron. A cache miss során egy teljes blokk betölthető az utasításmemóriából. Ennek a gyorsítótárnak a konfigurálása a felhasználó igényei alapján történhet. A gyorsítótár mérete, a cserealgoritmus és a blokk hossza konfigurálható.

Az utasítási ciklus letiltásra kerül, ha az ICACHE_SIZE értéket nullára állítja. Ezt követően a csomagok közvetlenül a memóriából kerülnek lehívásra a Utasítási felület.

Hibakeresési egység

A Debug Unit lehetővé teszi a Debug környezet számára, hogy leállítsa és megvizsgálja a CPU-t. Ennek fő jellemzői az ágkövetés, az egylépéses nyomkövetés 8 hardveres töréspontig.

Fájl regisztrációja

Ezt 32 regiszterhellyel tervezték X0 és X31 között, ahol az X9 regiszter mindig nulla. A Register File 1 írási és 2 olvasási portot tartalmaz.

Konfigurálható interfész

Ez egy külső interfész, ahol ez a processzor különböző külső busz interfészeket támogat.

Hogyan működik a RISC V?

A RISC-V egy utasításkészlet-architektúra, amely a RISC (redukált utasításkészletű számítógép) elvein alapul. Ez a processzor nagyon egyedi és egyben forradalmi is, mivel ez egy ingyenes, általános és nyílt forráskódú ISA, ahol hardvert lehet fejleszteni, a szoftvereket át lehet vinni, és a processzorokat meg lehet tervezni támogatni.

Különbség B/W RISC V vs MIPS

A RISC V és a MIPS közötti különbség a következőket tartalmazza.

RISC V

MIPS

A RISC V kifejezés a csökkentett utasításkészletű számítógépet jelenti, ahol a „V” az ötödik generáció. A „MIPS” kifejezés a „másodpercenkénti millió utasítást” jelenti.
A RISC-V egyszerűen lehetővé teszi a kisebb eszközök gyártói számára, hogy fizetés nélkül tervezzenek hardvert. A MIPS segítségével a gyártó fizetéssel mérheti a processzor sebességét, mert az nem ingyenes.
A MIPS hatékonyan halott. A RISC-V nem hatékonyan halott.
Ez a processzor elágazási utasításokat ad két regiszter összehasonlításához. A MIPS egy összehasonlítási utasítástól függ, amely a kontraszt igaz-e alapján a regisztert 1-re vagy 0-ra helyezi.
Az ISA kódolási séma rögzített és változó a RISC V-ben. Az ISA kódolási séma a MIPS-ben rögzített
Az utasításkészlet mérete 16 bites vagy 32 bites vagy 64 bites vagy 128 bites. Az utasításkészlet mérete 32 bites vagy 64 bites.
32 általános célú és lebegőpontos regiszterrel rendelkezik 31 általános célú és lebegőpontos regiszterrel rendelkezik.
26 szimpla és dupla pontosságú lebegőpontos műveletekkel rendelkezik. 15 szimpla és dupla pontosságú lebegőpontos műveletekkel rendelkezik.

Különbség F/W RISC V vs ARM

A RISC V és az ARM közötti különbség a következőket tartalmazza.

RISC V

KAR

A RISC-V nyílt forráskódú, így nem igényel semmilyen licencet. Az ARM zárt forráskódú, ezért licenc szükséges.
Ez egy új processzorplatform, így nagyon csekély a támogatás a szoftver- és programozási környezetekhez. Az ARM egy nagyon nagy online közösséggel rendelkezik, amely könyvtárakat és struktúrákat támogat, hogy segítse a céltervezőket különböző platformokon, például mikroprocesszorokban, mikrokontrollerekben és szerverekben.
A RISC V-alapú chipek 1 wattot fogyasztanak. Az ARM-alapú chipek 4 watt alatti teljesítményt fogyasztanak.
Fix és változó ISA kódolási rendszerrel rendelkezik. Rögzített ISA kódolási rendszerrel rendelkezik.
A RISC V utasításkészlet mérete 16 bittől 128 bitig terjed. Az utasítás mérete 16 bittől 64 bitig terjed.
32 általános célú és lebegőpontos regisztert tartalmaz. 31 általános célú és lebegőpontos regisztert tartalmaz.
26 precíziós lebegőpontos művelettel rendelkezik. 33 precíziós lebegőpontos művelettel rendelkezik.
26 dupla pontosságú lebegőpontos művelettel rendelkezik. 29 dupla pontosságú lebegőpontos művelettel rendelkezik.

RISC V Verilog kód

A RISC utasításmemória verilog kódja alább látható.

// Verilog kód a RISC processzorhoz
// Verilog kód az utasításmemóriához

modul Instruction_Memory(
input[15:0] PC,
output[15:0] utasítás
);

reg [`col – 1:0] memória [`sor_i – 1:0];
vezeték [3 : 0] rom_addr = pc[4 : 1];
a kezdeti
kezdődik
$readmemb(“./test/test.prog”, memória,0,14);
vége
utasítás hozzárendelése = memória[rom_cím];

végmodul

Verilog kód a 16 bites RISC V processzorhoz:

modul Risc_16_bit(
bemeneti clk
);

huzalugrás,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
vezeték[1:0] alu_op;
vezeték [3:0] opcode;

// Adat útvonal

Datapath_Unit DU
(
.clk(clk),
.jump(ugrás),
.béka(béka),
.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)
);

// vezérlőegység
Control_Unit vezérlés
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.jump(ugrás),
.bne(bne),
.béka(béka),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
végmodul

Utasítási készletek

A RISC V utasításkészleteket az alábbiakban tárgyaljuk.

Aritmetikai műveletek

Az alábbiakban felsoroljuk a RISC V aritmetikai műveleteket.

Emlékezeterősítő típus Utasítás Leírás
HOZZÁADÁS  rd, rs1, rs2

R

Hozzáadás rdß rs1 + rs2
SUB rd, rs1, rs2

R

Kivonás rdß rs1 –  rs2
ADDI rd, rs1, imm12

én

Azonnali hozzáadása rdß rs1 + imm12
SLT rd, rs1, rs2

R

Állítsa be kevesebb mint rdß rs1 -< rs2
SLTI rd, rs1, imm12

én

Kevesebb, mint azonnali beállítás rdß rs1 -< imm12
SLTU rd, rs1, rs2

R

Kevesebbet állítson be, mint aláíratlan rdß rs1 -< rs2
SLTIU rd, rs1, imm12

én

Azonnalinál kevesebbet állítson be aláíratlan rdß rs1 -< imm12
LUI rd, imm20

BAN BEN

Azonnali felső terhelés rdß imm20<<12
AUIP rd,imm20

BAN BEN

Felső azonnali hozzáadása a PC-hez rdß PC+imm20<<12

Logikai műveletek

Az alábbiakban felsoroljuk a RISC V logikai műveleteit.

Emlékezeterősítő típus Utasítás Leírás
ÉS  rd, rs1, rs2

R

ÉS rdß rs1 és rs2
VAGY rd, rs1, rs2

R

VAGY rdß rs1 | rs2
XOR rd, rs1, rs2

R

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

én

ÉS azonnali rdß rs1 & imm2
ORI rd, rs1, imm12

én

VAGY Azonnali rdß rs1 | imm12
OXRI rd, rs1, imm12

én

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

R

Eltolás balra logikus rdß rs1 <<  rs2
SRL rd, rs1, rs2

R

Logikai eltolás jobbra rdß rs1 >>  rs2
RAS rd, rs1, rs2

R

Váltás jobbra aritmetika rdß rs1 >>  rs2
SLLI rd, rs1, shamt

én

Azonnali eltolás balra rdß rs1 << shamt
SRLI rd, rs1, shamt

én

Shift jobbra logikai azonnali rdß rs1 >> shamt
SRAI rd, rs1, shamt

én

Azonnali eltolás jobbra számtani rdß rs1 >> shamt

Betöltési/tárolási műveletek

Az alábbiakban felsoroljuk a RISC V betöltési/tárolási műveleteit.

Emlékezeterősítő típus Utasítás Leírás
LD rd, imm12 (rs1)

én

Duplaszó betöltése rdß mem [rs1 +imm12]
LW rd, imm12 (rs1)

én

Szó betöltése rdß mem [rs1 +imm12]
LH rd, imm12 (rs1)

én

Töltsön félúton rdß mem [rs1 +imm12]
LB rd, imm12 (rs1)

én

Bájt betöltése rdß mem [rs1 +imm12]
LWU rd, imm12 (rs1)

én

Szó betöltése aláíratlan rdß mem [rs1 +imm12]
LHU rd, imm12 (rs1)

én

Fél szó betöltése aláírás nélkül rdß mem [rs1 +imm12]
LBU rd, imm12 (rs1)

én

A betöltési bájt aláíratlan rdß mem [rs1 +imm12]
SD  rs2, imm12 (rs1)

S

Dupla szó tárolása rs2 a memóriához [rs1 +imm12]
SW rs2, imm12 (rs1)

S

Tárolja a szót rs2 (31:0) mem [rs1 +imm12]
SH rs2, imm12 (rs1)

S

Tárolja félúton rs2 (15:0) mem [rs1 +imm12]
SB rs2, imm12 (rs1)

S

Tárolási bájt rs2 (15:0) mem [rs1 +imm12]
SRAI rd, rs1, shamt

én

Azonnali eltolás jobbra számtani rs2 (7:0) mem [rs1 +imm12]

Elágazási műveletek

Az alábbiakban felsoroljuk a RISC V elágazási műveleteit.

Emlékezeterősítő típus Utasítás Leírás
BEQ rs1, rs2, imm12

SB

Branch egyenlő Ha rs1== rs2

PC ß PC+imm12

BNE rs1, rs2, imm12

SB

Az ág nem egyenlő Ha rs1!= rs2

PC ß PC+imm12

BGE  rs1, rs2, imm12

SB

Elágazás nagyobb vagy egyenlő Ha rs1>= rs2

PC ß PC+imm12

BGEU  rs1, rs2, imm12

SB

Elágazás nagyobb vagy egyenlő, mint előjel nélküli Ha rs1>= rs2

PC ß PC+imm12

BLT  rs1, rs2, imm12

SB

Branch kevesebb, mint Ha rs1< rs2

PC ß PC+imm12

BLTU  rs1, rs2, imm12

SB

Elágazás kisebb, mint  unsigned Ha rs1< rs2

PC ß PC+imm12 <<1

JAL rd, imm20

UJ

Ugrás és link rdßPC+4
PCß PC+imm20
JALR rd, imm12(rs1)

én

Jump and Link regisztráció rdßPC+4
PCß rs1+imm12

Előnyök

Az a RISC előnyei V processzor a következőket tartalmazzák.

  • A RISCV használatával fejlesztési időt takaríthatunk meg, szoftverfejlesztést, ellenőrzést stb.
  • Ennek a processzornak számos előnye van, mint például az egyszerűség, a nyitottság, a modularitás, a tiszta lapos kialakítás és a bővíthetőség.
  • Ezt számos nyelvi fordító támogatja, mint például a GCC (GNU Compiler Collection), egy ingyenes szoftverfordító és a Linux operációs rendszer .
  • Ezt a cégek szabadon használhatják jogdíjak, licencdíjak és kötöttségek nélkül.
  • A RISC-V processzor nem tartalmaz új vagy innovatív funkciókat, mert egyszerűen követi a RISC alapelveit.
  • Számos más ISA-hoz hasonlóan ez a processzorspecifikáció egyszerűen meghatározza az utasításkészlet-szinteket. Tehát ez 32 és 64 bites változatokat, valamint kiterjesztéseket tartalmaz, amelyek támogatják a lebegőpontos utasításokat.
  • Ezek ingyenesek, egyszerűek, modulárisak, stabilak stb.

Hátrányok

Az A RISC V processzor hátrányai a következőket tartalmazzák.

  • A fordítók és programozók gyakran használnak összetett utasításokat.
  • A RISC o/p értéke a kód alapján változhat, ha a cikluson belüli további utasítások a korábbi végrehajtási utasítástól függenek.
  • Ezeknek a processzoroknak különféle utasításokat kell gyorsan elmenteniük, amihez nagy gyorsítótár-memóriakészletre van szükség ahhoz, hogy az utasításokra időben válaszoljanak.
  • A RISC teljes szolgáltatásai, képességei és előnyei főként az architektúrától függenek.

Alkalmazások

Az A RISC V alkalmazásai processzor a következőket tartalmazzák.

  • A RISC-V-t beágyazott rendszerekben, mesterséges intelligenciában és gépi tanulásban használják.
  • Ezeket a processzorokat nagy teljesítményű beágyazott rendszeralkalmazásokban használják.
  • Ez a processzor bizonyos területeken, például szélső számítástechnikában, mesterséges intelligencia és tárolási alkalmazásokban használható.
  • A RISC-V azért fontos, mert lehetővé teszi a kisebb eszközgyártók számára, hogy fizetés nélkül tervezzenek hardvert.
  • Ez a processzor egyszerűen lehetővé teszi a kutatók és fejlesztők számára, hogy egy szabadon elérhető ISA vagy utasításkészlet architektúrával tervezzenek és kutassanak.
  • A RISC V alkalmazásai a kis beágyazott mikrokontrollerektől az asztali PC-kig és szuperszámítógépekig terjednek, beleértve a vektorprocesszorokat is.

Tehát ez az a RISC V processzor áttekintése – architektúra, alkalmazásokkal való munka. Itt egy kérdés, hogy mi az a CISC processzor?