RISC V je architektúra inštrukčnej sady vyvinutá Kalifornskou univerzitou v Berkeley. Koncept RISC bol motivovaný skutočnosťou, že väčšina inštrukcií procesora nebola využívaná väčšinou počítačových programov. Takže v rámci návrhov bola použitá zbytočná dekódovacia logika spracovateľov , spotrebuje viac energie aj plochy. Ak chcete skrátiť sadu pokynov a investovať viac do zdrojov registra, Procesor RISC V bola implementovaná.
Túto technológiu si všimli mnohí technologickí giganti a začínajúce podniky, pretože je úplne open source a je bezplatná. Väčšina typov procesorov je dostupná s licenčnou zmluvou, avšak s týmto typom procesora; každý môže vytvoriť svoj nový dizajn procesora. Tento článok teda pojednáva o prehľade procesora RISC V – práce a jeho aplikácií.
Čo je to procesor RISC V?
V procesore RISC V termín RISC znamená „počítač s redukovanou inštrukčnou sadou“, ktorý vykonáva niekoľko počítačových inštrukcií, zatiaľ čo „V“ znamená 5. generáciu. Ide o open-source hardvér ISA (architektúra inštrukčnej sady) založený na zavedenom princípe RIZIKO .
V porovnaní s inými návrhmi ISA je tento ISA dostupný s licenciou open source. Takže niekoľko výrobných spoločností oznámilo a tiež poskytlo hardvér RISC-V s operačnými systémami s otvoreným zdrojom.
Toto je nová architektúra a je k dispozícii v otvorených, neobmedzujúcich a bezplatných licenciách. Tento procesor má rozsiahlu podporu zo strany výrobcov čipov a zariadení. Je teda navrhnutý hlavne tak, aby bol voľne rozšíriteľný a prispôsobiteľný na použitie v mnohých aplikáciách.
História RISC V
RISC vynašiel prof. David Patterson okolo roku 1980 na Kalifornskej univerzite v Berkeley. Prof. David s prof. Johnom Hennessym predložili svoje úsilie v dvoch knihách, a to „Computer Organization and Design“ a „Computer Architecture at Stanford University“. Takže dostali ACM A.M. Turingovu cenu v roku 2017.
Od roku 1980 do roku 2010 sa začal vývojový výskum piatej generácie RISC, ktorý bol nakoniec identifikovaný ako RISC-V, ktorý sa označuje ako riziko päť.
RISC V Architektúra a práca
Architektúra RV12 RISC V je zobrazená nižšie. RV12 je vysoko konfigurovateľný s jednojadrovým RISC CPU kompatibilným s RV32I a RV64I, ktorý sa používa vo vstavaných poliach. RV12 je tiež z 32 alebo 64-bitovej rodiny CPU v závislosti od inštrukčnej sady priemyselného štandardu RISC-V.
RV12 jednoducho vykonáva architektúru Harvard pre simultánny prístup k inštrukciám, ako aj k dátovej pamäti. Zahŕňa tiež 6-stupňový kanál, ktorý pomáha pri optimalizácii prekrývania medzi vykonávaním, ako aj prístupmi k pamäti, aby sa zvýšila efektivita. Táto architektúra zahŕňa najmä predikciu vetvy, vyrovnávaciu pamäť údajov, ladiacu jednotku, vyrovnávaciu pamäť inštrukcií a voliteľné jednotky multiplikátora alebo rozdeľovača.
Medzi hlavné vlastnosti RV12 RISC V patria nasledujúce.
- Ide o štandardnú inštrukčnú sadu.
- Parametrizované s 32 alebo 64 bitovými údajmi.
- Má presné a rýchle prerušenia.
- Vlastné pokyny umožňujú pridanie proprietárnych hardvérových akcelerátorov.
- Vykonanie jedného cyklu.
- Šesťstupňové potrubie s optimalizáciou skladané.
- Podpora s ochranou pamäte.
- Voliteľné alebo parametrizované vyrovnávacie pamäte.
- Extrémne parametrizované.
- Používatelia si môžu vybrať 32/64-bitové údaje a jednotku predikcie vetvy.
- Používatelia si môžu vybrať vyrovnávaciu pamäť inštrukcií/údajov.
- Užívateľsky voliteľná štruktúra, veľkosť a architektúra vyrovnávacej pamäte.
- Podpora hardvérového rozdeľovača alebo multiplikátora pomocou užívateľom definovanej latencie.
- Architektúra zbernice je flexibilná a podporuje Wishbone & AHB.
- Tento dizajn optimalizuje výkon a veľkosť.
- Dizajn je kompletne parametrizovaný, čo poskytuje kompromisy medzi výkonom alebo výkonom.
- Gated CLK dizajn na zníženie výkonu.
- Softvérová podpora podľa priemyselného štandardu.
- Architektonický simulátor.
- Eclipse IDE sa používa pre Linux/Windows.
Realizačný kanál RISC V
Zahŕňa päť fáz, ako je IF (načítanie inštrukcie), ID (dekódovanie inštrukcie), EX (vykonanie), MEM (prístup do pamäte) a WB (spätný zápis registrácie).
Vyzdvihnutie pokynov
Vo fáze Instruction Fetch alebo IF sa z programového počítadla (PC) a pamäte inštrukcií načíta jedna inštrukcia, ktorá sa aktualizuje na ďalšiu inštrukciu.
Predbežné dekódovanie pokynov
Akonáhle je povolená podpora RVC, potom fáza Instruction Pre-Decode dekóduje 16-bitovú komprimovanú inštrukciu na natívnu 32-bitovú inštrukciu.
Dekódovanie pokynov
Vo fáze dekódovania inštrukcií (ID) je povolený súbor registra a rozhoduje sa o ovládacích prvkoch premostenia.
Vykonať
Vo fáze Execute sa výsledok vypočíta pre inštrukciu ALU, DIV, MUL, pamäť povolenú pre inštrukciu Store alebo Load a vetvenia a skoky sa merajú oproti ich očakávaným výsledkom.
Pamäť
V tejto fáze pamäte sa k pamäti pristupuje cez kanál. Zahrnutie tejto fázy zabezpečuje vysoký výkon potrubia.
Odpísať
V tejto fáze sa výsledok fázy vykonania zapíše do súboru registra.
Prediktor vetvy
Tento procesor obsahuje jednotku prediktora vetvy alebo BPU, ktorá sa používa na ukladanie minulých údajov na vedenie procesora RISC V pri rozhodovaní, či sa konkrétna vetva vyberie alebo nie. Tieto prediktorové údaje sa jednoducho aktualizujú po spustení vetvy.
Táto jednotka obsahuje rôzne parametre, ktoré určujú jej správanie. Napríklad HAS_BPU sa používa na určenie, či vetva predpovedá prítomnosť jednotky, BPU_GLOBAL_BITS určí, koľko minulých bitov by sa malo použiť a BPU_LOCAL_BITS určí, koľko LSB programového počítadla by sa malo použiť. Kombinácia BPU_LOCAL_BITS & BPU_GLOBAL_BITS vytvorí vektor, ktorý sa používa hlavne na riešenie tabuľky predpovede vetví.
Dátová vyrovnávacia pamäť
Používa sa hlavne na urýchlenie prístupu k dátovej pamäti ukladaním novopristupovaných miest pamäte do vyrovnávacej pamäte. Toto je schopné spracovať polslovné, bajtové a slovné prístupy, keď XLEN = 32, ak sú na vlastných hraniciach. Je tiež schopný spracovať polslovné, bajtové, slovné a dvojslovné prístupy pri XLEN=64, ak sú na vlastných hraniciach.
Počas vynechania vyrovnávacej pamäte môže byť celý blok zapísaný späť do pamäte, takže ak je to potrebné, môže sa do vyrovnávacej pamäte načítať nový blok. Dátová vyrovnávacia pamäť sa deaktivuje nastavením DCACHE_SIZE na nulu. Potom sa k miestam pamäte pristupuje priamo cez Dátové rozhranie .
Vyrovnávacia pamäť pokynov
Toto sa používa hlavne na urýchlenie načítania inštrukcie ukladaním novo načítaných pokynov do vyrovnávacej pamäte. Táto vyrovnávacia pamäť sa používa na načítanie jedného balíka pre každý cyklus na ľubovoľnej 16-bitovej hranici, ale nie cez hranicu bloku. Počas vynechania vyrovnávacej pamäte je možné načítať celý blok z pamäte inštrukcie. Konfiguráciu tejto vyrovnávacej pamäte je možné vykonať na základe potrieb používateľa. Veľkosť vyrovnávacej pamäte, algoritmus nahradenia a dĺžka bloku sú konfigurovateľné.
Inštrukčný cyklus bude deaktivovaný nastavením ICACHE_SIZE na nulu. Potom sa balíky načítajú priamo z pamäte cez Inštrukčné rozhranie.
Debug Unit
Debug Unit umožní okoliu Debug zastaviť a preskúmať CPU. Hlavnými črtami tohto sú sledovanie pobočiek, jednokrokové sledovanie až po 8 bodov zlomu hardvéru.
Registrovať súbor
Toto je navrhnuté s 32 miestami registrov od X0 do X31, kde je register X9 vždy nula. Register File obsahuje 1 port na zápis a 2 porty na čítanie.
Konfigurovateľné rozhranie
Toto je externé rozhranie, kde tento procesor podporuje rôzne externé rozhrania zbernice.
Ako RISC V funguje?
RISC-V je architektúra inštrukčnej sady zakorenená v princípoch RISC (reduced installation set computer). Tento procesor je veľmi jedinečný a tiež revolučný, pretože ide o bezplatný, bežný a open-source ISA, kde je možné vyvíjať hardvér, prenášať softvér a navrhovať procesory na jeho podporu.
Rozdiel B/W RISC Vs MIPS
Rozdiel medzi RISC V a MIPS zahŕňa nasledovné.
RISC V |
MIPS |
Termín RISC V znamená počítač s redukovanou inštrukčnou sadou, kde „V“ je piata generácia. | Termín „MIPS“ znamená „milión pokynov za sekundu“. |
RISC-V jednoducho umožňuje výrobcom menších zariadení navrhovať hardvér bez platenia. | MIPS umožňuje výrobcovi merať rýchlosť procesora zaplatením, pretože nie je zadarmo. |
MIPS je efektívne mŕtvy. | RISC-V nie je efektívne mŕtvy. |
Tento procesor poskytuje príkazy vetvenia na porovnanie dvoch registrov. | MIPS závisí od porovnávacej inštrukcie, ktorá lokalizuje register na 1 alebo 0 na základe toho, či je kontrast pravdivý. |
Schéma kódovania ISA je v RISC V pevná a variabilná. | Schéma kódovania ISA je v MIPS pevne stanovená |
Veľkosť sady inštrukcií je 16-bitová alebo 32-bitová alebo 64-bitová alebo 128-bitová. | Veľkosť sady inštrukcií je 32-bitová alebo 64-bitová. |
Má 32 všeobecných registrov a registrov s pohyblivou rádovou čiarkou | Má 31 všeobecných registrov a registrov s pohyblivou rádovou čiarkou. |
Má 26 operácií s jednoduchou a dvojitou presnosťou s pohyblivou rádovou čiarkou. | Má 15 operácií s jednoduchou a dvojitou presnosťou s pohyblivou rádovou čiarkou. |
Rozdiel B/W RISC Vs ARM
Rozdiel medzi RISC V a ARM zahŕňa nasledovné.
RISC V |
ARM |
RISC-V je open source, takže nevyžaduje žiadnu licenciu. | ARM je uzavretý zdroj, takže potrebuje licenciu. |
Je to nová procesorová platforma, takže podpora softvérových a programovacích prostredí je veľmi malá. | ARM má veľmi veľkú online komunitu, ktorá podporuje knižnice a štruktúry na pomoc cieľovým dizajnérom v rôznych platformách, ako sú mikroprocesory, mikrokontroléry a tiež servery. |
Čipy na báze RISC V spotrebujú 1 watt energie. | Čipy založené na ARM spotrebujú menej ako 4 watty. |
Má pevný a variabilný systém kódovania ISA. | Má pevný systém kódovania ISA. |
Veľkosť inštrukčnej sady RISC V sa pohybuje od 16-bit do 128-bitov. | Veľkosť jeho inštrukcie sa pohybuje od 16-bit do 64-bitov. |
Obsahuje 32 všeobecných registrov a registrov s pohyblivou rádovou čiarkou. | Obsahuje 31 všeobecných registrov a registrov s pohyblivou rádovou čiarkou. |
Má 26 presných operácií s pohyblivou rádovou čiarkou. | Má 33 presných operácií s pohyblivou rádovou čiarkou. |
Má 26 operácií s dvojnásobnou presnosťou s pohyblivou rádovou čiarkou. | Má 29 operácií s dvojnásobnou presnosťou s pohyblivou rádovou čiarkou. |
RISC V Verilog kód
Verilog kód pamäte inštrukcie pre RISC je zobrazený nižšie.
// Verilog kód pre RISC procesor
// Verilog kód pre pamäť inštrukcií
modul Instruction_Memory(
vstup[15:0] pc,
výstup[15:0] pokyn
);
reg [`col – 1:0] pamäť [`riadok_i – 1:0];
drôt [3 : 0] rom_addr = pc[4 : 1];
počiatočné
začať
$readmemb(./test/test.prog”, pamäť,0,14);
koniec
priradiť inštrukciu = pamäť[rom_addr];
koncový modul
Verilog kód pre 16-bitový RISC V procesor:
modul Risc_16_bit(
vstup clk
);
drôtový skok,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
drôt[1:0] alu_op;
drôtový [3:0] operačný kód;
// Datapath
Datapath_Unit DU
(
.clk(clk),
.skok(skok),
.žaba(žaba),
.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(operačný kód)
);
// kontrolná jednotka
Control_Ovládanie jednotky
(
.opcode(operačný kód),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.skok(skok),
.bne(bne),
.žaba(žaba),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
koncový modul
Inštrukčné sady
Inštrukčné sady RISC V sú diskutované nižšie.
Aritmetické operácie
Aritmetické operácie RISC V sú uvedené nižšie.
Mnemotechnický prostriedok | Typ | Inštrukcia | Popis |
PRIDAŤ rd, rs1, rs2 |
R |
Pridať | rdß rs1 + rs2 |
SUB rd, rs1, rs2 |
R |
Odčítať | rdß rs1 – rs2 |
ADDI rd, rs1, imm12 |
ja |
Pridajte okamžite | rdß rs1 + imm12 |
SLT rd, rs1, rs2 |
R |
Nastavte menej ako | rdß rs1 -< rs2 |
SLTI rd, rs1, imm12 |
ja |
Nastavte menej ako okamžite | rdß rs1 -< imm12 |
SLTU rd, rs1, rs2 |
R |
Nastaviť menej ako nepodpísané | rdß rs1 -< rs2 |
SLTIU rd, rs1, imm12 |
ja |
Nastaviť menej ako okamžité nepodpísané | rdß rs1 -< imm12 |
LUI rd, imm20 |
IN |
Okamžité zaťaženie hornej časti | rdß imm20<<12 |
AUIP rd, imm20 |
IN |
Pridajte hornú okamžitú do PC | rdß PC+imm20<<12 |
Logické operácie
Logické operácie RISC V sú uvedené nižšie.
Mnemotechnický prostriedok | Typ | Inštrukcia | Popis |
AND rd, rs1, rs2 |
R |
A | rdß rs1 a rs2 |
ALEBO rd, rs1, rs2 |
R |
ALEBO | rdß rs1 | rs2 |
XOR rd, rs1, rs2 |
R |
ZADARMO | rdß rs1 ^ rs2 |
ANDI rd, rs1, imm12 |
ja |
A okamžite | rdß rs1 a imm2 |
ORI rd, rs1, imm12 |
ja |
ALEBO Okamžite | rdß rs1 | imm12 |
OXRI rd, rs1, imm12 |
ja |
XOR okamžite | rdß rs1 ^ rs2 |
SLL rd, rs1, rs2 |
R |
Logický posun doľava | rdß rs1 << rs2 |
SRL rd, rs1, rs2 |
R |
Logický posun doprava | rdß rs1 >> rs2 |
RAS rd, rs1, rs2 |
R |
Posun doprava aritmetika | rdß rs1 >> rs2 |
SLLI rd, rs1, shamt |
ja |
Posun doľava logický okamžite | rdß rs1 << shamt |
SRLI rd, rs1, shamt |
ja |
Okamžitý logický posun doprava | rdß rs1 >> shamt |
SRAI rd, rs1, shamt |
ja |
Okamžite posunúť pravú aritmetiku | rdß rs1 >> shamt |
Operácie načítania/ukladania
Operácie načítania/ukladania RISC V sú uvedené nižšie.
Mnemotechnický prostriedok | Typ | Inštrukcia | Popis |
LD rd, imm12 (rs1) |
ja |
Načítať dvojité slovo | rdß mem [rs1 + imm12] |
LW rd, imm12 (rs1) |
ja |
Načítať slovo | rdß mem [rs1 + imm12] |
LH rd, imm12 (rs1) |
ja |
Naložte do polovice | rdß mem [rs1 + imm12] |
LB rd, imm12 (rs1) |
ja |
Načítať bajt | rdß mem [rs1 + imm12] |
LWU rd, imm12 (rs1) |
ja |
Načítať slovo nepodpísané | rdß mem [rs1 + imm12] |
LHU rd, imm12 (rs1) |
ja |
Načítať polovicu slova bez znamienka | rdß mem [rs1 + imm12] |
LBU rd, imm12 (rs1) |
ja |
Načítať bajt nepodpísaný | rdß mem [rs1 + imm12] |
SD rs2, imm12 (rs1) |
S |
Uložte dvojité slovo | rs2 to mem [rs1 + imm12] |
SW rs2, imm12 (rs1) |
S |
Uložiť slovo | rs2 (31:0) do pamäte [rs1 + imm12] |
SH rs2, imm12 (rs1) |
S |
Skladujte na pol ceste | rs2 (15:0) do pamäte [rs1 + imm12] |
SB rs2, imm12 (rs1) |
S |
Uložiť bajt | rs2 (15:0) do pamäte [rs1 + imm12] |
SRAI rd, rs1, shamt |
ja |
Okamžite posunúť pravú aritmetiku | rs2 (7:0) do pamäte [rs1 + imm12] |
Operácie vetvenia
Operácie vetvenia RISC V sú uvedené nižšie.
Mnemotechnický prostriedok | Typ | Inštrukcia | Popis |
BEQ rs1, rs2, imm12 |
SB |
Vetva rovná | Ak rs1== rs2 PC ß PC+imm12 |
BNE rs1, rs2, imm12 |
SB |
Pobočka nie je rovnaká | Ak rs1!= rs2 PC ß PC+imm12 |
BGE rs1, rs2, imm12 |
SB |
Vetva väčšia alebo rovnaká | Ak rs1>= rs2 PC ß PC+imm12 |
BGEU rs1, rs2, imm12 |
SB |
Vetva väčšia alebo rovná unsigned | Ak rs1>= rs2 PC ß PC+imm12 |
BLT rs1, rs2, imm12 |
SB |
Pobočka menej ako | Ak rs1< rs2 PC ß PC+imm12 |
BLTU rs1, rs2, imm12 |
SB |
Vetva menšia ako nepodpísaná | Ak rs1< rs2 PC ß PC+imm12 <<1 |
JAL rd, imm20 |
UJ |
Skočiť a prepojiť | rdßPC+4 PCß PC+imm20 |
JALR rd, imm12(rs1) |
ja |
Zaregistrujte sa skokom a odkazom | rdßPC+4 PCß rs1+imm12 |
Výhody
The výhody RISC V procesor zahŕňajú nasledujúce.
- Použitím RISCV môžeme ušetriť čas na vývoj, vývoj softvéru, overovanie atď.
- Tento procesor má mnoho výhod, ako je jednoduchosť, otvorenosť, modularita, čistý dizajn a rozšíriteľnosť.
- Toto je podporované niekoľkými jazykovými kompilátormi, ako je GCC (GNU Compiler Collection), bezplatný kompilátor softvéru a prostredníctvom OS Linux .
- Spoločnosti to môžu voľne používať bez licenčných poplatkov, bez licenčných poplatkov a bez pripojených reťazcov.
- Procesor RISC-V neobsahuje žiadne nové alebo inovatívne funkcie, pretože jednoducho dodržiava zavedené princípy RISC.
- Podobne ako niekoľko iných ISA, táto špecifikácia procesora jednoducho definuje rôzne úrovne inštrukčnej sady. Takže toto obsahuje 32 a 64-bitové varianty, ako aj rozšírenia na podporu inštrukcií s pohyblivou rádovou čiarkou.
- Tieto sú bezplatné, jednoduché, modulárne, stabilné atď.
Nevýhody
The nevýhody procesora RISC V zahŕňajú nasledujúce.
- Kompilátory a programátori často používajú zložité inštrukcie.
- O/p RISC sa môže meniť na základe kódu, keď následné inštrukcie v rámci slučky závisia od predchádzajúcej inštrukcie na vykonanie.
- Tieto procesory potrebujú rýchlo ukladať množstvo inštrukcií, čo si vyžaduje veľkú vyrovnávaciu pamäť, aby reagovala na inštrukciu včas.
- Kompletné funkcie, možnosti a výhody RISC závisia hlavne od architektúry.
Aplikácie
The aplikácie RISC V procesor zahŕňajú nasledujúce.
- RISC-V sa používa vo vstavaných systémoch, umelej inteligencii a strojovom učení.
- Tieto procesory sa používajú vo vysokovýkonných aplikáciách vstavaných systémov.
- Tento procesor je vhodný na použitie v niektorých konkrétnych oblastiach, ako sú edge computing, AI a úložné aplikácie.
- RISC-V je dôležitý, pretože umožňuje menším výrobcom zariadení navrhovať hardvér bez platenia.
- Tento procesor jednoducho umožňuje výskumníkom a vývojárom navrhovať a tiež skúmať s voľne dostupnou architektúrou ISA alebo inštrukčnej sady.
- Aplikácie RISC V siahajú od malých vstavaných mikrokontrolérov po stolové počítače a superpočítače vrátane vektorových procesorov.
Teda toto je prehľad procesora RISC V – architektúra, práca s aplikáciami. Tu je otázka pre vás, čo je procesor CISC?