RISC V je architektura instrukční sady vyvinutá Kalifornskou univerzitou v Berkeley. Koncept RISC byl motivován skutečností, že většina instrukcí procesoru nebyla využívána většinou počítačových programů. Takže v návrzích byla použita zbytečná dekódovací logika procesory , spotřebovává více energie i plochy. Chcete-li zkrátit sadu instrukcí a investovat více do zdrojů registru, procesor RISC V byla implementována.
Této technologie si všimlo mnoho technologických gigantů a start-upů, protože je zcela open source a zdarma. Většina typů procesorů je dostupná s licenční smlouvou, avšak s tímto typem procesoru; každý může vytvořit svůj nový design procesoru. Tento článek tedy pojednává o přehledu procesoru RISC V – fungování a jeho aplikacích.
Co je procesor RISC V?
V procesoru RISC V termín RISC znamená „počítač s redukovanou instrukční sadou“, který provádí několik počítačových instrukcí, zatímco „V“ znamená 5. generaci. Jedná se o open-source hardware ISA (architektura instrukční sady) založený na zavedeném principu RIZIKO .
Na rozdíl od jiných návrhů ISA je tento ISA dostupný s open source licencí. Takže řada výrobních společností oznámila a také poskytla hardware RISC-V s operačními systémy s otevřeným zdrojovým kódem.
Toto je nová architektura a je k dispozici v otevřených, neomezujících a bezplatných licencích. Tento procesor má rozsáhlou podporu ze strany výrobců čipů a zařízení. Je tedy navržen především tak, aby byl volně rozšiřitelný a přizpůsobitelný pro použití v mnoha aplikacích.
Historie RISC V
RISC byl vynalezen prof. Davidem Pattersonem kolem roku 1980 na Kalifornské univerzitě v Berkeley. Prof. David s prof. Johnem Hennessym předložili své úsilí ve dvou knihách, jmenovitě „Computer Organization and Design“ a „Computer Architecture at Stanford University“. Takže obdrželi ACM A.M. Turingova cena v roce 2017.
Od roku 1980 do roku 2010 byl zahájen vývojový výzkum páté generace RISC a nakonec byl identifikován jako RISC-V, což je vyslovováno jako riziko pět.
RISC V Architektura a práce
Architektura RV12 RISC V je zobrazena níže. RV12 je vysoce konfigurovatelný s jednojádrovým RISC CPU kompatibilním s RV32I a RV64I, který se používá ve vestavěných polích. RV12 je také z rodiny 32 nebo 64bitových CPU v závislosti na instrukční sadě průmyslového standardu RISC-V.
RV12 jednoduše provádí harvardskou architekturu pro současný přístup k instrukcím i datové paměti. Zahrnuje také 6stupňový kanál, který pomáhá optimalizovat překryvy mezi prováděním a přístupy do paměti, aby se zvýšila efektivita. Tato architektura zahrnuje především predikci větví, mezipaměť dat, ladicí jednotku, mezipaměť instrukcí a volitelné jednotky násobiče nebo rozdělovače.
Mezi hlavní vlastnosti RV12 RISC V patří následující.
- Jedná se o standardní instrukční sadu.
- Parametrizované s 32 nebo 64bitovými daty.
- Má přesné a rychlé přerušení.
- Vlastní pokyny umožňují přidání proprietárních hardwarových akcelerátorů.
- Provedení jednoho cyklu.
- Šestistupňové potrubí s optimalizací skládané.
- Podpora s ochranou paměti.
- Volitelné nebo parametrizované mezipaměti.
- Extrémně parametrizované.
- Uživatelé si mohou vybrat 32/64bitová data & Branch Prediction Unit.
- Uživatelé si mohou vybrat mezipaměť instrukcí/dat.
- Uživatelsky volitelná struktura, velikost a architektura mezipaměti.
- Podpora hardwarového rozdělovače nebo násobiče pomocí uživatelem definované latence.
- Architektura sběrnice je flexibilní a podporuje Wishbone & AHB.
- Tento design optimalizuje výkon a velikost.
- Design je kompletně parametrizován, což poskytuje kompromisy výkonu nebo výkonu.
- Gated CLK design pro snížení výkonu.
- Softwarová podpora podle průmyslového standardu.
- Architektonický simulátor.
- Eclipse IDE se používá pro Linux/Windows.
Prováděcí potrubí RISC V
Zahrnuje pět fází jako IF (načtení instrukce), ID (dekódování instrukce), EX (provedení), MEM (přístup do paměti) a WB (zpětný zápis registrace).
Vyzvednutí instrukcí
Ve fázi Instruction Fetch nebo IF je jedna instrukce načtena z programového čítače (PC) a paměti instrukcí, která je aktualizována na další instrukci.
Instrukce Pre-Decode
Jakmile je povolena podpora RVC, pak fáze Instruction Pre-Decode dekóduje 16bitovou komprimovanou instrukci na nativní 32bitovou instrukci.
Instrukce Dekódovat
Ve fázi dekódování instrukcí (ID) je povolen registrační soubor a rozhodují se ovládací prvky bypassu.
Vykonat
Ve fázi Execute je výsledek vypočítán pro instrukci ALU, DIV, MUL, paměť povolená pro instrukci Store nebo Load a větvení a skoky jsou měřeny proti jejich očekávaným výsledkům.
Paměť
V této fázi paměti se k paměti přistupuje prostřednictvím potrubí. Zahrnutí této fáze zajišťuje vysoký výkon potrubí.
Odepsat
V této fázi je výsledek fáze provádění zapsán do souboru registru.
Prediktor větve
Tento procesor obsahuje jednotku prediktoru větve nebo BPU, která se používá k ukládání minulých dat, aby vedla procesor RISC V při rozhodování, zda je určitá větev převzata nebo ne. Tato prediktorová data se jednoduše aktualizují, jakmile se větev spustí.
Tato jednotka obsahuje různé parametry, které určují její chování. Například HAS_BPU se používá k určení, zda větev předpovídá přítomnost jednotky, BPU_GLOBAL_BITS určí, kolik minulých bitů by se mělo použít, a BPU_LOCAL_BITS určí, kolik LSB programového čítače by se mělo použít. Kombinace BPU_LOCAL_BITS & BPU_GLOBAL_BITS vytvoří vektor, který se používá hlavně k adresování větve-predikce-tabulky.
Datová mezipaměť
To se používá hlavně pro urychlení přístupu k datové paměti ukládáním nově přístupných míst paměti do vyrovnávací paměti. To je schopno zpracovat poloviční slovo, bajt a přístup ke slovu, když XLEN = 32, pokud jsou na vlastních hranicích. Je také schopen zpracovat poloslovní, bajtové, slovní a dvouslovné přístupy při XLEN=64, pokud jsou na vlastních hranicích.
Během vynechání mezipaměti může být celý blok zapsán zpět do paměti, takže v případě potřeby lze do mezipaměti načíst nový blok. Datová mezipaměť je deaktivována nastavením DCACHE_SIZE na nulu. Poté jsou paměťová místa přístupná přímo přes Datové rozhraní .
Instrukční mezipaměť
To se používá hlavně pro urychlení načítání instrukce ukládáním nově načtených instrukcí do vyrovnávací paměti. Tato mezipaměť se používá k načtení jednoho balíku pro každý cyklus na libovolné 16bitové hranici, ale ne přes hranici bloku. Během vynechání mezipaměti lze z paměti instrukce načíst celý blok. Konfigurace této mezipaměti může být provedena na základě potřeb uživatele. Velikost mezipaměti, náhradní algoritmus a délka bloku je konfigurovatelná.
Instrukční cyklus bude deaktivován nastavením ICACHE_SIZE na nulu. Poté se balíky načítají přímo z paměti přes Instrukční rozhraní.
Debug Unit
Debug Unit umožní okolí Debug zastavit a prozkoumat CPU. Hlavními rysy tohoto jsou Branch Tracing, Single Step Tracing až do 8 hardwarových zlomů.
Registrovat soubor
Toto je navrženo s 32 umístěními registrů od X0 do X31, kde X9 Register je vždy nula. Registrační soubor obsahuje 1 port pro zápis a 2 porty pro čtení.
Konfigurovatelné rozhraní
Toto je externí rozhraní, kde tento procesor podporuje různá externí rozhraní sběrnice.
Jak RISC V funguje?
RISC-V je architektura instrukční sady zakořeněná v principech RISC (počítač s redukovanou instrukční sadou). Tento procesor je velmi unikátní a také revoluční, protože se jedná o bezplatný, běžný a open-source ISA, kde lze vyvíjet hardware, přenášet software a navrhovat procesory, aby jej podporovaly.
Rozdíl B/W RISC Vs MIPS
Rozdíl mezi RISC V a MIPS zahrnuje následující.
RISC V |
MIPS |
Termín RISC V znamená počítač se sníženou instrukční sadou, kde „V“ je pátá generace. | Termín „MIPS“ znamená „milion instrukcí za sekundu“. |
RISC-V jednoduše umožňuje výrobcům menších zařízení navrhovat hardware bez placení. | MIPS umožňuje výrobci měřit rychlost procesoru zaplacením, protože není zdarma. |
MIPS je efektivně mrtvý. | RISC-V není účinně mrtvý. |
Tento procesor poskytuje větvené instrukce pro porovnání dvou registrů. | MIPS závisí na porovnávací instrukci, která lokalizuje registr na 1 nebo 0 na základě toho, zda je kontrast pravdivý. |
Schéma kódování ISA je v RISC V pevné a variabilní. | Schéma kódování ISA je v MIPS pevně dané |
Velikost sady instrukcí je 16bitová nebo 32bitová nebo 64bitová nebo 128bitová. | Velikost instrukční sady je 32bitová nebo 64bitová. |
Má 32 obecných registrů a registrů s pohyblivou řádovou čárkou | Má 31 obecných registrů a registrů s pohyblivou řádovou čárkou. |
Má 26 operací s jednoduchou a dvojitou přesností s plovoucí desetinnou čárkou. | Má 15 operací s jednoduchou a dvojitou přesností s pohyblivou řádovou čárkou. |
Rozdíl B/W RISC Vs ARM
Rozdíl mezi RISC V a ARM zahrnuje následující.
RISC V |
PAŽE |
RISC-V je open source, takže nevyžaduje žádnou licenci. | ARM je uzavřený zdroj, takže potřebuje licenci. |
Je to nová procesorová platforma, takže podpora pro softwarová a programovací prostředí je velmi malá. | ARM má velmi rozsáhlou online komunitu, která podporuje knihovny a struktury, které pomáhají cílovým návrhářům na různých platformách, jako jsou mikroprocesory, mikrokontroléry a také servery. |
Čipy na bázi RISC V spotřebují 1 watt energie. | Čipy založené na ARM spotřebují méně než 4 watty energie. |
Má pevný a variabilní systém kódování ISA. | Má pevný systém kódování ISA. |
Velikost instrukční sady RISC V se pohybuje od 16 bitů do 128 bitů. | Jeho velikost instrukce se pohybuje od 16 bitů do 64 bitů. |
Obsahuje 32 obecných registrů a registrů s pohyblivou řádovou čárkou. | Obsahuje 31 obecných registrů a registrů s pohyblivou řádovou čárkou. |
Má 26 jednoduchých operací s pohyblivou řádovou čárkou. | Má 33 jednoduchých operací s pohyblivou řádovou čárkou. |
Má 26 operací s plovoucí desetinnou čárkou s dvojitou přesností. | Má 29 operací s dvojitou přesností v pohyblivé řádové čárce. |
RISC V Verilog kód
Verilog kód paměti instrukce pro RISC je uveden níže.
// Kód Verilog pro procesor RISC
// Verilog kód pro paměť instrukcí
modul instrukce_paměť(
vstup[15:0] pc,
výstup[15:0] instrukce
);
reg [`col – 1:0] paměť [`row_i – 1:0];
drát [3 : 0] rom_addr = pc[4 : 1];
počáteční
začít
$readmemb(./test/test.prog”, paměť,0,14);
konec
přiřadit instrukce = memory[rom_addr];
koncový modul
Verilog kód pro 16bitový RISC V procesor:
modul Risc_16_bit(
vstupní 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át [3:0] operační kód;
// Datapath
Datapath_Unit DU
(
.clk(clk),
.skok(skok),
.frog(frog),
.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)
);
// řídící jednotka
Control_Ovládání jednotky
(
.opcode(operační kód),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.skok(skok),
.bne(bne),
.frog(frog),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
koncový modul
Instrukční sady
Instrukční sady RISC V jsou diskutovány níže.
Aritmetické operace
Aritmetické operace RISC V jsou uvedeny níže.
mnemotechnická pomůcka | Typ | Návod | Popis |
PŘIDAT rd, rs1, rs2 |
R |
Přidat | rdß rs1 + rs2 |
SUB rd, rs1, rs2 |
R |
Odčítat | rdß rs1 – rs2 |
ADDI rd, rs1, imm12 |
já |
Přidejte okamžitě | rdß rs1 + imm12 |
SLT rd, rs1, rs2 |
R |
Nastavit méně než | rdß rs1 -< rs2 |
SLTI rd, rs1, imm12 |
já |
Nastavte méně než okamžitě | rdß rs1 -< imm12 |
SLTU rd, rs1, rs2 |
R |
Nastavit méně než bez znaménka | rdß rs1 -< rs2 |
SLTIU rd, rs1, imm12 |
já |
Nastavit méně než okamžité nepodepsané | rdß rs1 -< imm12 |
LUI rd, imm20 |
V |
Okamžité zatížení horní části | rdß imm20<<12 |
AUIP rd, imm20 |
V |
Přidejte okamžitě horní do PC | rdß PC+imm20<<12 |
Logické operace
Logické operace RISC V jsou uvedeny níže.
mnemotechnická pomůcka | Typ | Návod | Popis |
AND rd, rs1, rs2 |
R |
A | rdß rs1 a rs2 |
NEBO rd, rs1, rs2 |
R |
NEBO | rdß rs1 | rs2 |
XOR rd, rs1, rs2 |
R |
VOLNÝ, UVOLNIT | rdß rs1 ^ rs2 |
ANDI rd, rs1, imm12 |
já |
A okamžité | rdß rs1 a imm2 |
ORI rd, rs1, imm12 |
já |
NEBO Okamžitě | rdß rs1 | imm12 |
OXRI rd, rs1, imm12 |
já |
XOR okamžitě | rdß rs1 ^ rs2 |
SLL rd, rs1, rs2 |
R |
Logický posun doleva | 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 |
já |
Shift vlevo logický okamžitě | rdß rs1 << shamt |
SRLI rd, rs1, shamt |
já |
Okamžitý logický posun doprava | rdß rs1 >> shamt |
SRAI rd, rs1, shamt |
já |
Okamžitý aritmetický posun doprava | rdß rs1 >> shamt |
Operace načítání/ukládání
Operace načítání/ukládání RISC V jsou uvedeny níže.
mnemotechnická pomůcka | Typ | Návod | Popis |
LD rd, imm12 (rs1) |
já |
Načíst dvojslovo | rdß paměť [rs1 + imm12] |
LW rd, imm12 (rs1) |
já |
Načíst slovo | rdß paměť [rs1 + imm12] |
LH rd, imm12 (rs1) |
já |
Naložte do poloviny | rdß paměť [rs1 + imm12] |
LB rd, imm12 (rs1) |
já |
Načíst bajt | rdß paměť [rs1 + imm12] |
LWU rd, imm12 (rs1) |
já |
Načíst slovo bez znaménka | rdß paměť [rs1 + imm12] |
LHU rd, imm12 (rs1) |
já |
Načíst půl slova bez znaménka | rdß paměť [rs1 + imm12] |
LBU rd, imm12 (rs1) |
já |
Načíst bajt nepodepsaný | rdß paměť [rs1 + imm12] |
SD rs2, imm12 (rs1) |
S |
Uložte dvojité slovo | rs2 to mem [rs1 + imm12] |
SW rs2, imm12 (rs1) |
S |
Uložit slovo | rs2 (31:0) do paměti [rs1 + imm12] |
SH rs2, imm12 (rs1) |
S |
Skladujte napůl | rs2 (15:0) do paměti [rs1 + imm12] |
SB rs2, imm12 (rs1) |
S |
Uložit bajt | rs2 (15:0) do paměti [rs1 + imm12] |
SRAI rd, rs1, shamt |
já |
Okamžitý aritmetický posun doprava | rs2 (7:0) do paměti [rs1 + imm12] |
Pobočkové operace
Operace větvení RISC V jsou uvedeny níže.
mnemotechnická pomůcka | Typ | Návod | Popis |
BEQ rs1, rs2, imm12 |
SB |
Větev rovná | Pokud rs1== rs2 PC ß PC+imm12 |
BNE rs1, rs2, imm12 |
SB |
Pobočka není stejná | Pokud rs1!= rs2 PC ß PC+imm12 |
BGE rs1, rs2, imm12 |
SB |
Větev větší nebo rovno | Pokud rs1>= rs2 PC ß PC+imm12 |
BGEU rs1, rs2, imm12 |
SB |
Větev větší nebo rovna unsigned | Pokud rs1>= rs2 PC ß PC+imm12 |
BLT rs1, rs2, imm12 |
SB |
Větev méně než | Pokud rs1< rs2 PC ß PC+imm12 |
BLTU rs1, rs2, imm12 |
SB |
Větev méně než nepodepsaná | Pokud rs1< rs2 PC ß PC+imm12 <<1 |
JAL rd, imm20 |
UJ |
Přejít a odkaz | rdßPC+4 PCß PC+imm20 |
JALR rd, imm12(rs1) |
já |
Jump and Link register | rdßPC+4 PCß rs1+imm12 |
Výhody
The výhody RISC V procesor zahrnout následující.
- Použitím RISCV můžeme ušetřit čas na vývoj, vývoj softwaru, ověřování atd.
- Tento procesor má mnoho výhod, jako je jednoduchost, otevřenost, modularita, čistý design a rozšiřitelnost.
- To je podporováno několika jazykovými kompilátory, jako je GCC (GNU Compiler Collection), bezplatný kompilátor softwaru a prostřednictvím OS Linux .
- To mohou společnosti volně používat bez licenčních poplatků, bez licenčních poplatků a bez připojených řetězců.
- Procesor RISC-V neobsahuje žádné nové nebo inovativní funkce, protože jednoduše dodržuje zavedené principy RISC.
- Podobně jako u několika dalších ISA tato specifikace procesoru jednoduše definuje různé úrovně instrukční sady. Takže to obsahuje 32 a 64bitové varianty a také rozšíření pro podporu instrukcí s pohyblivou řádovou čárkou.
- Tyto jsou bezplatné, jednoduché, modulární, stabilní atd.
Nevýhody
The nevýhody procesoru RISC V zahrnout následující.
- Kompilátory a programátoři často používají složité instrukce.
- O/p RISC se může změnit na základě kódu, když následné instrukce v rámci smyčky závisí na dřívější instrukci pro provedení.
- Tyto procesory potřebují rychle ukládat různé instrukce, což vyžaduje velkou vyrovnávací paměť, aby reagovaly na instrukce včas.
- Kompletní funkce, možnosti a výhody RISC závisí především na architektuře.
Aplikace
The aplikace RISC V procesor zahrnout následující.
- RISC-V se používá ve vestavěných systémech, umělé inteligenci a strojovém učení.
- Tyto procesory se používají ve vysoce výkonných aplikacích vestavěných systémů.
- Tento procesor je vhodný pro použití v některých konkrétních oblastech, jako jsou edge computing, AI a úložné aplikace.
- RISC-V je důležitý, protože umožňuje menším výrobcům zařízení navrhovat hardware bez placení.
- Tento procesor jednoduše umožňuje výzkumníkům a vývojářům navrhovat i zkoumat s volně dostupnou architekturou ISA nebo instrukční sady.
- Aplikace RISC V sahají od malých vestavěných mikrokontrolérů po stolní počítače a superpočítače včetně vektorových procesorů.
Tedy, toto je přehled procesoru RISC V – architektura, práce s aplikacemi. Zde je pro vás otázka, co je to procesor CISC?