Hvad er RISC V-processor: arkitektur, arbejde og dens applikationer

Prøv Vores Instrument Til At Fjerne Problemer





RISC V er en instruktionssætarkitektur udviklet af University of California, Berkeley. Begrebet RISC var motiveret af sandheden om, at de fleste af processorinstruktionerne ikke blev brugt af de fleste computerprogrammer. Så unødvendig afkodningslogik blev brugt inden for design af processorer , der bruger mere strøm såvel som areal. For at forkorte instruktionssættet og investere mere i registerressourcer, RISC V processor blev gennemført.


Denne teknologi blev bemærket af mange teknologigiganter og nystartede virksomheder, fordi den er fuldstændig open source og gratis. De fleste typer processorer er tilgængelige med en licensaftale, dog med denne type processor; alle kan lave deres nye processordesign. Så denne artikel diskuterer en oversigt over en RISC V-processor – funktion og dens applikationer.



Hvad er RISC V-processor?

I RISC V-processoren står udtrykket RISC for 'reduceret instruktionssæt computer', som udfører få computerinstruktioner, mens 'V' står for 5. generation. Det er en open source hardware ISA (instruction set architecture) baseret på det etablerede princip om RISIKO .

Sammenlignet med andre ISA-designs er denne ISA tilgængelig med en open source-licens. Så en række produktionsvirksomheder har annonceret og også leveret RISC-V-hardware med open source-operativsystemer.



Dette er en ny arkitektur og er tilgængelig i åbne, ikke-begrænsende og gratis licenser. Denne processor har omfattende support fra chip- og enhedsproducenter. Så den er hovedsageligt designet til at være frit udvidelig og tilpasselig til brug i mange applikationer.

RISC V historie

RISC blev opfundet af prof. David Patterson omkring 1980 ved University of California, Berkeley. Prof. David og Prof. John Hennessy indsendte deres indsats i to bøger, nemlig 'Computer Organization and Design' & 'Computer Architecture at Stanford University. Så de modtog ACM A.M. Turing-prisen i 2017.

Fra år 1980 til 2010 år blev RISCs femte generations udviklingsforskning startet og blev endelig identificeret som RISC-V, der udtales som risiko fem.

RISC V Architecture & Working

RV12 RISC V-arkitekturen er vist nedenfor. RV12 er meget konfigurerbar med en single-core RV32I og RV64I kompatibel RISC CPU, som bruges i indlejrede felter. RV12 er også fra en 32- eller 64-bit CPU-familie afhængigt af det industrielle standard RISC-V-instruktionssæt.

RV12 udfører simpelthen en Harvard-arkitektur for samtidig adgang til instruktion samt datahukommelse. Det inkluderer også en 6-trins pipeline, som hjælper med at optimere overlapninger mellem udførelsen samt hukommelsesadgange for at forbedre effektiviteten. Denne arkitektur inkluderer hovedsageligt Branch Prediction, Data Cache, Debug Unit, Instruction Cache og valgfri multiplikator- eller divider-enheder.

  RISC-processorarkitektur
RISC-processorarkitektur

De vigtigste funktioner i RV12 RISC V omfatter følgende.

  • Det er et industristandard instruktionssæt.
  • Parametriseret med 32 eller 64 bit data.
  • Den har præcise og hurtige afbrydelser.
  • Brugerdefinerede instruktioner tillader tilføjelse af proprietære hardwareacceleratorer.
  • Udførelse af enkelt cyklus.
  • Seks-trins rørledning med optimering foldet.
  • Support med hukommelsesbeskyttelse.
  • Valgfri eller parametriserede caches.
  • Ekstremt parametriseret.
  • Brugere kan vælge 32/64-bit data & Branch Prediction Unit.
  • Brugere kan vælge instruktions-/datacache.
  • Brugervalgbar struktur, størrelse og arkitektur af cache.
  • Hardware Divider eller Multiplikator Understøttelse af brugerdefineret latens.
  • Busarkitekturen er fleksibel, hvilket understøtter Wishbone & AHB.
  • Dette design optimerer kraften og størrelsen.
  • Designet er fuldstændigt parametriseret, hvilket giver ydeevne eller kraftafvejninger.
  • Gated CLK-design for at reducere kraften.
  • Softwaresupport efter industristandard.
  • Arkitektonisk simulator.
  • Eclipse IDE bruges til Linux/Windows.

RISC V-udførelsesrørledningen

Det inkluderer fem trin som IF (instruktionshentning), ID (instruktionsafkodning), EX (execute), MEM (hukommelsesadgang) & WB (register-tilbageskrivning).

Hent instruktion

I Instruction Fetch- eller IF-stadiet læses en enkelt instruktion fra programtælleren (PC) og instruktionshukommelsen, som opdateres til den næste instruktion.

Instruktion Pre-Decode

Når RVC-understøttelse er tilladt, vil instruktionspræ-afkodningsfasen afkode en 16-bit-komprimeret instruktion til en indbygget 32-bit-instruktion.

Instruktion afkode

I Instruction Decode (ID)-stadiet er registerfilen tilladt, og bypass-kontrollerne bestemmes.

Udfør

I Udfør-stadiet beregnes resultatet for en ALU-, DIV-, MUL-instruktion, hukommelsen tilladt for en Store- eller Load-instruktion, og grene og spring måles i forhold til deres forventede resultater.

Hukommelse

I dette hukommelsestrin er der adgang til hukommelsen gennem pipelinen. Medtagelsen af ​​denne fase sikrer rørledningens høje ydeevne.

Skrive tilbage

I dette trin skrives resultatet af udførelsesfasen ind i registerfilen.

Branch Predictor

Denne processor inkluderer en gren forudsigelsesenhed eller BPU, der bruges til at lagre tidligere data for at guide RISC V processoren til at beslutte, om en specifik gren er taget eller ej. Disse forudsigelsesdata opdateres simpelthen, når grenen udføres.

Denne enhed indeholder forskellige parametre, som bestemmer dens opførsel. For eksempel bruges HAS_BPU til at bestemme, om en gren forudsiger, at en enhed er til stede, BPU_GLOBAL_BITS vil bestemme, hvor mange tidligere bits, der skal bruges, og BPU_LOCAL_BITS vil bestemme, hvor mange af programtællerens LSB'er, der skal bruges. Kombinationen af ​​BPU_LOCAL_BITS & BPU_GLOBAL_BITS vil skabe en vektor, der hovedsageligt bruges til at adressere gren-forudsigelsestabellen.

Data cache

Dette bruges hovedsageligt til at fremskynde adgangen til datahukommelse ved at buffere nyligt tilgåede hukommelsesplaceringer. Dette er i stand til at håndtere halvords-, byte- og ordadgange, når  XLEN = 32, hvis de er på deres egne grænser. Den er også i stand til at håndtere halvords-, byte-, ord- og dobbeltordsadgange, når XLEN=64, hvis de er på deres egne grænser.

Igennem en cache-miss kan en hel blok skrives tilbage til hukommelsen, så om nødvendigt kan en ny blok indlæses i cachen. Datacachen deaktiveres ved at sætte DCACHE_SIZE til nul. Derefter tilgås hukommelsesplaceringer direkte gennem Datagrænseflade .

Instruktions cache

Dette bruges hovedsageligt til at fremskynde hentning af instruktioner ved at buffere nyligt hentede instruktioner. Denne cache bruges til at hente en pakke for hver cyklus på enhver 16-bit grænse, men ikke på tværs af en blokgrænse. Gennem en cache-miss kan en hel blok indlæses fra instruktionshukommelsen. Konfigurationen af ​​denne cache kan udføres baseret på brugerens behov. Størrelsen af ​​cachen, erstatningsalgoritmen og bloklængden kan konfigureres.

Instruktionscyklussen vil blive deaktiveret ved at sætte ICACHE_SIZE til nul. Derefter hentes pakker direkte fra hukommelsen gennem Instruktionsgrænseflade.

Debug enhed

Debug-enheden vil tillade fejlretningsomgivelserne at stoppe og undersøge CPU'en. De vigtigste funktioner i dette er Branch Tracing, Single Step Tracing op til 8- Hardware Breakpoints.

Registrer fil

Dette er designet med 32 registerplaceringer fra X0 til X31, hvor X9 Register altid er nul. Registerfilen inkluderer 1-skriveporte og 2-læseporte.

Konfigurerbar grænseflade

Dette er en ekstern grænseflade, hvor denne processor understøtter forskellige eksterne busgrænseflader.

Hvordan virker RISC V?

RISC-V er en instruktionssæt-arkitektur, der er forankret i RISC-principperne (reduced instruction set computer). Denne processor er meget unik og også revolutionerende, da den er en gratis, almindelig og open source ISA, hvor hardware kan udvikles, softwaren kan porteres og processorer kan designes til at understøtte det.

Forskel S/H RISC V Vs MIPS

Forskellen mellem RISC V og MIPS inkluderer følgende.

RISC V

MIPS

Udtrykket RISC V står for Reduced Instruction Set Computer, hvor 'V' er den femte generation. Udtrykket 'MIPS' står for 'Million instruktioner pr. sekund'.
RISC-V tillader simpelthen producenter af mindre enheder at designe hardware uden at betale. MIPS giver producenten mulighed for at måle processorens hastighed ved at betale, fordi det ikke er gratis.
MIPS er effektivt dødt. RISC-V er ikke effektivt dødt.
Denne processor giver greninstruktioner til sammenligning af to registre. MIPS afhænger af en sammenligningsinstruktion, der lokaliserer et register til 1 eller 0 baseret på, om kontrasten er sand.
ISA-kodningsskemaet er fast og variabelt i RISC V. ISA-kodningsskemaet er fastsat i MIPS
Instruktionssættets størrelse er 16-bit eller 32-bit eller 64-bit eller 128-bit. Instruktionssættets størrelse er 32-bit eller 64-bit.
Den har 32 registre til generelle formål og flydende komma Den har 31 registre til generelle formål og flydende komma.
Den har 26 enkelt og dobbelt præcision flydende komma operationer. Den har 15 enkelt og dobbelt præcision flydende komma operationer.

Forskel S/H RISC V Vs ARM

Forskellen mellem RISC V og ARM inkluderer følgende.

RISC V

ARM

RISC-V er open source, så det kræver ingen licens. ARM er en lukket kilde, så den har brug for en licens.
Det er en ny processorplatform, så der er meget lille support til software & programmeringsmiljøer. ARM har et meget stort online-fællesskab, som understøtter biblioteker og strukturer for at hjælpe måldesignerne på forskellige platforme som mikroprocessorer, mikrocontrollere og også servere.
RISC V-baserede chips bruger 1 watt strøm. ARM-baserede chips bruger under 4 watt strøm.
Den har et fast og variabelt ISA-kodningssystem. Den har et fast ISA-kodningssystem.
RISC V-instruktionssættets størrelse spænder fra 16-bit til 128-bit. Dens instruktionsstørrelse spænder fra 16-bit til 64-bit.
Det inkluderer 32 registre til generelle formål og flydende komma. Det inkluderer 31 registre til generelle formål og flydende komma.
Den har 26-enkelt præcision flydende komma operationer. Den har 33-enkelt præcision flydende komma operationer.
Den har 26-dobbelt præcision flydende komma operationer. Den har 29-dobbelt præcision flydende komma operationer.

RISC V Verilog-kode

Instruktionshukommelsens verilog-kode for RISC er vist nedenfor.

// Verilog-kode til RISC-processor
// Verilog-kode til instruktionshukommelse

modul Instruction_Memory(
input[15:0] pc,
output[15:0] instruktion
);

reg [`col – 1:0] memory [`row_i – 1:0];
wire [3 : 0] rom_addr = pc[4 : 1];
initial
begynde
$readmemb(“./test/test.prog”, memory,0,14);
ende
tildel instruktion = memory[rom_addr];

slutmodul

Verilog-kode til 16-bit RISC V-processoren:

modul Risc_16_bit(
input clk
);

trådspring,bne,beq,mem_read,mem_write,alu_src,reg_dst,mem_to_reg,reg_write;
wire[1:0] alu_op;
wire [3:0] opcode;

// Datasti

Datapath_Unit DU
(
.clk(clk),
.jump(spring),
.frog(frø),
.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)
);

// styreenhed
Kontrol_Enhedskontrol
(
.opcode(opcode),
.reg_dst(reg_dst),
.mem_to_reg(mem_to_reg),
.alu_op(alu_op),
.jump(spring),
.bne(bne),
.frog(frø),
.mem_read(mem_read),
.mem_write(mem_write),
.alu_src(alu_src),
.reg_write(reg_write)
);
slutmodul

Instruktionssæt

RISC V instruktionssættene er beskrevet nedenfor.

Aritmetiske operationer

RISC V aritmetiske operationer er angivet nedenfor.

Mnemonisk Type Instruktion Beskrivelse
TILFØJ  rd, rs1, rs2

R

Tilføje rdß rs1 + rs2
SUB rd, rs1, rs2

R

Trække fra rdß rs1 –  rs2
ADDI rd, rs1, imm12

jeg

Tilføj straks rdß rs1 + imm12
SLT rd, rs1, rs2

R

Indstil mindre end rdß rs1 -< rs2
SLTI rd, rs1, imm12

jeg

Indstil mindre end øjeblikkeligt rdß rs1 -< imm12
SLTU rd, rs1, rs2

R

Indstil mindre end usigneret rdß rs1 -< rs2
SLTIU rd, rs1, imm12

jeg

Indstil mindre end øjeblikkelig usigneret rdß rs1 -< imm12
LUI rd, imm20

I

Indlæs øverste øjeblikkeligt rdß imm20<<12
AUIP rd, imm20

I

Tilføj øvre øjeblikkelig til pc rdß PC+imm20<<12

Logiske operationer

RISC V logiske operationer er anført nedenfor.

Mnemonisk Type Instruktion Beskrivelse
OG  rd, rs1, rs2

R

OG rdß rs1 & rs2
ELLER rd, rs1, rs2

R

ELLER rdß rs1 | rs2
XOR rd, rs1, rs2

R

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

jeg

OG øjeblikkelig rdß rs1 & imm2
ORI rd, rs1, imm12

jeg

ELLER Straks rdß rs1 | imm12
OXRI rd, rs1, imm12

jeg

XOR øjeblikkeligt rdß rs1 ^ rs2
SLL rd, rs1, rs2

R

Skift til venstre logisk rdß rs1 <<  rs2
SRL rd, rs1, rs2

R

Skift til højre logisk rdß rs1 >>  rs2
RAS rd, rs1, rs2

R

Skift til højre aritmetik rdß rs1 >>  rs2
SLLI rd, rs1, shamt

jeg

Skift logisk til venstre med det samme rdß rs1 << shamt
SRLI rd, rs1, shamt

jeg

Skift logisk til højre med det samme rdß rs1 >> shamt
SRAI rd, rs1, shamt

jeg

Skift højre aritmetik med det samme rdß rs1 >> shamt

Indlæsnings-/lageroperationer

RISC V-indlæsnings-/lageroperationerne er anført nedenfor.

Mnemonisk Type Instruktion Beskrivelse
LD rd, imm12 (rs1)

jeg

Indlæs dobbeltord rdß mem [rs1 +imm12]
LW rd, imm12 (rs1)

jeg

Indlæs ord rdß mem [rs1 +imm12]
LH rd, imm12 (rs1)

jeg

Læs halvvejs rdß mem [rs1 +imm12]
LB rd, imm12 (rs1)

jeg

Indlæs byte rdß mem [rs1 +imm12]
LWU rd, imm12 (rs1)

jeg

Indlæs ord usigneret rdß mem [rs1 +imm12]
LHU rd, imm12 (rs1)

jeg

Indlæs halvt ord usigneret rdß mem [rs1 +imm12]
LBU rd, imm12 (rs1)

jeg

Indlæs byte usigneret rdß mem [rs1 +imm12]
SD  rs2, imm12 (rs1)

S

Gem dobbeltord rs2 til mem [rs1 +imm12]
SW rs2, imm12 (rs1)

S

Gem ord rs2 (31:0) til mem [rs1 +imm12]
SH rs2, imm12 (rs1)

S

Opbevar halvvejs rs2 (15:0) til mem [rs1 +imm12]
SB rs2, imm12 (rs1)

S

Gem byte rs2 (15:0) til mem [rs1 +imm12]
SRAI rd, rs1, shamt

jeg

Skift højre aritmetik med det samme rs2 (7:0) til mem [rs1 +imm12]

Forgreningsdrift

RISC V-forgreningsaktiviteterne er anført nedenfor.

Mnemonisk Type Instruktion Beskrivelse
BEQ rs1, rs2, imm12

SB

Gren lig Hvis rs1== rs2

PC ß PC+imm12

BNE rs1, rs2, imm12

SB

Gren ikke lige Hvis rs1!= rs2

PC ß PC+imm12

BGE  rs1, rs2, imm12

SB

Gren større end eller lig Hvis rs1>= rs2

PC ß PC+imm12

BGEU  rs1, rs2, imm12

SB

Gren større end eller lig med usigneret Hvis rs1>= rs2

PC ß PC+imm12

BLT  rs1, rs2, imm12

SB

Filial mindre end Hvis rs1< rs2

PC ß PC+imm12

BLTU  rs1, rs2, imm12

SB

Filial mindre end  usigneret Hvis rs1< rs2

PC ß PC+imm12 <<1

JAL rd, imm20

UJ

Hop og Link rdßPC+4
PCß PC+imm20
JALR  rd, imm12(rs1)

jeg

Hop og Link register rdßPC+4
PCß rs1+imm12

Fordele

Det fordelene ved RISC V processor omfatte følgende.

  • Ved at bruge RISCV kan vi spare udviklingstid, softwareudvikling, verifikation mv.
  • Denne processor har mange fordele som enkelhed, åbenhed, modularitet, rent tavledesign og udvidelsesmuligheder.
  • Dette understøttes af adskillige sprogkompilere som GCC (GNU Compiler Collection), en gratis software-kompiler og gennem Linux OS .
  • Dette kan bruges af virksomheder frit på grund af ingen royalties, ingen licensgebyrer og ingen bindinger.
  • RISC-V-processoren indeholder ingen nye eller innovative funktioner, fordi den blot følger etablerede principper for RISC.
  • I lighed med flere andre ISA'er definerer denne processorspecifikation blot forskellige instruktionssætniveauer. Så dette indeholder 32 & 64-bit varianter samt udvidelser for at give support til floating point instruktioner.
  • Disse er gratis, enkle, modulære, stabile osv.

Ulemper

Det ulemper ved RISC V-processoren omfatte følgende.

  • Komplekse instruktioner bruges ofte af compilere og programmører.
  • O/p af en RISC kan ændre sig baseret på koden, når efterfølgende instruktioner i en loop afhænger af den tidligere instruktion til udførelse.
  • Disse processorer skal gemme en række instruktioner hurtigt, hvilket kræver et stort cachehukommelsessæt for at reagere på instruktionen inden for en rettidig måde.
  • De komplette funktioner, muligheder og fordele ved RISC afhænger hovedsageligt af arkitekturen.

Ansøgninger

Det anvendelser af RISC V processor omfatte følgende.

  • RISC-V bruges i indlejrede systemer, kunstig intelligens og maskinlæring.
  • Disse processorer bruges i højtydende-baserede indlejrede systemapplikationer.
  • Denne processor er egnet til at bruge i nogle bestemte områder som edge computing, AI og lagringsapplikationer.
  • RISC-V er vigtigt, da det giver mindre enhedsproducenter mulighed for at designe hardware uden at betale.
  • Denne processor giver simpelthen forskerne og udviklerne mulighed for at designe såvel som forskning med en frit tilgængelig ISA- eller instruktionssæt-arkitektur.
  • Anvendelsen af ​​RISC V spænder fra små indlejrede mikrocontrollere til stationære pc'er og supercomputere inklusive vektorprocessorer.

Dette er således en oversigt over en RISC V-processor – arkitektur, arbejde med applikationer. Her er et spørgsmål til dig, hvad er en CISC-processor?