Co je procesor RISC V: Architektura, práce a její aplikace

Vyzkoušejte Náš Nástroj Pro Odstranění Problémů





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.

  Architektura RISC procesoru
Architektura RISC procesoru

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

Přidejte okamžitě rdß rs1 + imm12
SLT rd, rs1, rs2

R

Nastavit méně než rdß rs1 -< rs2
SLTI rd, rs1, imm12

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

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

A okamžité rdß rs1 a imm2
ORI rd, rs1, imm12

NEBO Okamžitě rdß rs1 | imm12
OXRI rd, rs1, imm12

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

Shift vlevo logický okamžitě rdß rs1 << shamt
SRLI rd, rs1, shamt

Okamžitý logický posun doprava rdß rs1 >> shamt
SRAI rd, rs1, shamt

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)

Načíst dvojslovo rdß paměť [rs1 + imm12]
LW rd, imm12 (rs1)

Načíst slovo rdß paměť [rs1 + imm12]
LH rd, imm12 (rs1)

Naložte do poloviny rdß paměť [rs1 + imm12]
LB rd, imm12 (rs1)

Načíst bajt rdß paměť [rs1 + imm12]
LWU rd, imm12 (rs1)

Načíst slovo bez znaménka rdß paměť [rs1 + imm12]
LHU rd, imm12 (rs1)

Načíst půl slova bez znaménka rdß paměť [rs1 + imm12]
LBU rd, imm12 (rs1)

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

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)

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?